array dengan pascal
DESCRIPTION
Pemrograman Array dengan PascalTRANSCRIPT
LAPORAN PEMROGRAMAN DASAR MENGULANG
PROGRAM, ANALISA DAN PEMBAHASAN BEBERAPA PROGRAM PASCAL
DI SUSUN :
NAMA : Husaen Al Fatah
NIM : M3110077
KELAS : TIB 2010
I. PENDAHULUAN
Seringkali dalam pemrograman diperlukan suatu cara untuk dapat menyimpan banyak nilai
sekaligus untuk dapat digunakan atau ditampilkan lagi. Nilai tersebut dapat berupa nilai
yang dibangkitkan dalam program, atau nilai yang dimasukkan oleh pengguna. Diperlukan
metode untuk menyiapkan sejumlah tempat kosong dalam memori komputer yang hanya
akan dipakai untuk menyimpan nilai tersebut selama program berjalan, dan nilai tersebut
dapat digunakan lagi sewaktu-waktu.
Pascal menyediakan kemampuan ini dengan menggunakan kata cadangan array. Array
adalah tipe terstruktur yang terdiri dari sejumlah komponen-komponen yang mempunyai
tipe yang sama. Komponen-komponen ini disebut dengan component type atau base type.
Suatuarray memiliki jumlah komponen yang banyaknya tetap. Komponen dapat
menggunakan tipe data apa saja. Banyaknya komponen dalam suatuarray ditunjukkan oleh
suatu indeks yang disebut dengan index type dan harus bertipe ordinal. Tiap komponen
array diakses dengan mereferensikan index value.
Tipe suatu array haruslah berupa tipe sederhana, tidak boleh bertipe kompleks. Bila nilai-
nilai dari elemen array dibatasi nilainya dalam suatu jangkauan range tertentu, maka dapat
dideklarasikan dengan tipe arrayberbentuk subrange. Sedangkan bilai nilai-nilai elemen
array dibatasi dengan nilai-nilai tertentu yang tidak dapat ditulis dalam suatu range, tetapi
dapat ditentukan secara berurutan, maka dapat digunakan arraytipe skalar.
II. DASAR TEORI
Array
Definisi
Array adalah koleksi data yang tipenya sama, tersusun dalam bentuk barisan linier berurutan
(sequence) dan jumlah elemen atau datanya tidak berubah (statis) sesuai dengan deklarasi awal.
Semua elemen array diidentifikasi dengan sebuah nama (nama array) dan untuk setiap elemennya
diidentifikasi/dibedakan dengan sebuah index.
Deklarasi
Bentuk umum deklarasi array adalah:
type tipe_array = array [range_index] of ipe_data;
var var_array : tipe_array; (1.1)
Atau dapat langsung dituliskan sebagai berikut:
var var_array = array [range_index] of tipe_data; (1.1)
var_array adalah nama variabel array yang dipakai untuk mengidentifikasi array. Pemilihan nama
variabel array mengikuti aturan pemberian nama variabel secara umum.
Range_index adalah batasan index yang digunakan untuk mengidentifikasi elemen array.
Range_index menentukan jumlah elemen array, yang jumlahnya tidak akan berubah (statis) mulai
saat awal disediakan (program dijalankan) hingga program selesai dijalankan. Misalnya range 0..9
atau 1..10 atau –1..8 atau ‘A’..’J’ akan menentukan jumlah elemen array sebanyak 10 buah.
Setiap elemen array diidentifikasi oleh salah satu index yang berada dalam range yang telah
ditentukan. Penggunaan index yang berada di luar range Index akan mengakibatkan kesalah, Index
ini tidak harus berupa bilangan positif, tetapi harus berupa bilangan bulat atau data-data yang
masuk kategori tipe data ordinal (seluruh tipe data dasar selain real dan double), seperti semua
varian integer, char, boolean atau tipe data enumerasi yang dibuat sendiri oleh user.
Tipe_data adalah tipe data untuk elemen array. Tipe data elemen array tidak harus berupa integer,
atau tipe data dasar yang lain, tetapi dapat berupa tipe data terstruktur seperti array.
Matriks
Definisi
Matriks adalah struktur penyimpanan data di dalam memori utama yang setiap individu elemennya
diacu dengan menggunakan dua buah indeks (yang biasanya dikonotasikan dengan baris dan kolom).
Sebagaimana halnya pada larik, pada modul ini kita menggambarkan matriks sebagai kumpulan
kotak bujur sangkar yang tersusun berjajar pada setiap baris dan kolom.
Karena matriks sebenarnya adalah larik, maka konsep umum dari larik berlaku juga untuk matriks
yaitu:
1. Kumpulan elemen yang bertipe sama. Tipe elemen matriks dapat berupa tipe dasar (integer,
real, Boolean, char dan string), atau tipe terstruktur seperti record.
2. Setiap elemen data dapat diakses secara acak (random) jika indeksnya diketahui, yang dalam
hal ini indeks menyatakan posisi relative di dalam kumpulannya.
3. Merupakan struktur data yang statik.
Struktur matriks praktis untuk dipakai (pengaksesannya cepat karena langsung melalui indeksnya)
tetapi memakan banyak tempat di memori. Misalnya matriks integer berukuran 100 X 100,
membutuhkan 10000 X ukuran integer (2 byte).
Elemen matriks diacu dengan indeks baris dan indeks kolom. Jika indeks baris dinyatakan dengan i
dan indeks kolom dengan j, maka notasi algoritmatik untuk mengacu elemen pada baris i dan kolom
j adalah
Nama_matriks[i,j]
Pendeklarasian matriks
Sebelum matriks digunakan untuk menyimpan data, terlebih dahulu matriks harus dideklarasikan.
Mendeklarasikan matriks artinya menentukan nama matriks, tipe datanya dan ukuran matriks.
Pendeklarasian matriks di dalam teks algoritma di tulis di dalam bagian deklarasi. Pendeklarasian
matriks itu dapat memudahkan membuat suatu program dengan cara pendeklarasian matriks
tersebut. Dimana kita ketahui pada program computer I tentang pendeklarasian pada array tersebut.
Ada beberapa cara pendeklarasian matriks:
1. Sebagai peubah.
2. Sebagai tipe baru.
3. Mendefinisikan ukuran maksimum matriks sebagai sebuah tetapan.
Procedure
Program procedure dalam pascal adalah pemprograman dengan menggunakan bahasa pascal
dengan menggunakan bantua struktur procedure. Jadi procedure itu sendiri adalah sebuah salah
satu struktur penulisan yang ada dalam penulisan program dengan menggunakan bahasa pasca.
Penggunaan procedure ini sebenarnya sama dengan penggunaan function pada pascal. Tujuan dari
penggunaan procedure dalam pascal adalah untuk mempermudah dan mempersingkat programer
dalam membuat program, khususnya untuk program yang membutuhkan analisa tinggi. Jika dalam
postingan sebelumnya telah disampaikan mengenai seleksi kondisi sekarang akan disampaikan
mengenai procedur dalam pascal.
III. PEMBAHASAN
Mencari Rata-Rata, Standar Deviasi, Nilai Max, Dan Nilai Min
write('Masukkan Banyak Data : '); readln(bada);
jum:=0;
min:=999;
max:=0;
menuliskan “masukkan banyak data” dengan pembacaan variable (bada).
Variable deklarasi awal dari jum adalah 0, min adalah 999 dan max adalah0
for data:= 1 to bada do
begin
write('data ke -',data,' = '); readln(dake);
perulangan dengan menggunakan for acuan data dimulai 1 hingga var bada, akan dituliskan “data
ke- =..” dengan pembacaan variable dake.
jum:=jum+dake;
var jum adalah hasil penjumlahan jum + dake untuk proses penjumlahan masukan
k:=k+sqr(dake);
var k ini digunakan untuk pemroses dari standar deviasi nantinya dengan menggunakan sqr
if(dake<min) then min:=dake;
if(dake>max) then max:=dake;
inilah kunci algoritma dari pendeklarasian awal variable min=999 dan max=0 digunakan untuk
perulangan if then yaitu kalau dake/inputan maximal itu lebih kecil dari variable min maka min
adalah dake dan apabila dake ini lebih besar dari max maka dake dituiskan sebagai maximalnya.
rata:= jum/bada;
stdev:=sqrt((k-bada*sqr(rata))/(bada-1));
code ini adalah code rumus untuk mean dan standar deviasi
perhitungan rata rata rata:= jum/bada;
perhitungan standar deviasi sqrt((k-bada*sqr(rata))/(bada-1));
writeln('Nilai Terkecil : ',min);
writeln('Nilai Terbesar : ',max);
writeln('Rata-rata : ',rata:0:2);
write('standar deviasinya : ',stdev:2:3);
pengeksekusian perintah minimum, maximum, rata-rata dan standar deviasi hasil dari code
algoritma diatas.
Source code lengkap
Program Banyak_Data;
Uses crt;
Var
bada,data,dake,jum,min,max:integer;
rata,k,stdev:real;
Begin
clrscr;
write('Masukkan Banyak Data : '); readln(bada);
jum:=0;
min:=999;
max:=0;
for data:= 1 to bada do
begin
write('data ke -',data,' = '); readln(dake);
jum:=jum+dake;
k:=k+sqr(dake);
if(dake<min) then min:=dake;
if(dake>max) then max:=dake;
end;
rata:= jum/bada;
stdev:=sqrt((k-bada*sqr(rata))/(bada-1));
writeln('Nilai Terkecil : ',min);
writeln('Nilai Terbesar : ',max);
writeln('Rata-rata : ',rata:0:2);
write('standar deviasinya : ',stdev:2:3);
readkey; End.
Running program
Mencari Penjumlahan Dan Perkalian Dari 2 Matriks
procedure tambah;
begin
writeln ('matriks A+B');
if (ka=kb)and(ba=bb) then
begin j:=1;
for h:=1 to ba do
begin k:=1;
for i:=1 to ka do
begin
write (' ',(a[h,i]+b[j,k]),' ');k:=k+1;
end;
writeln; j:=j+1;
end;
end; if ka<>kb then writeln('maaf.. jumlah kolom kedua matriks berbeda');
if ba<>bb then writeln('maaf.. jumlah baris kedua matriks berbeda');
end;
penulisan code procedure tambah, yang operasi nya kita letakkan pada procedure agar mudah
dalam hal pengoreksian bila terjadi error dan mudah dalam hal pemanggilan bila dikehendaki.
procedure kurang;
begin
writeln ('matriks A-B');
if (ka=kb)and(ba=bb) then
begin j:=1;
for h:=1 to ba do
begin k:=1;
for i:=1 to ka do
begin
write (' ',(a[h,i]-b[j,k]),' ');k:=k+1;
end;
writeln; j:=j+1;
end;
end; if ka<>kb then writeln('maaf.. jumlah kolom kedua matriks berbeda');
if ba<>bb then writeln('maaf.. jumlah baris kedua matriks berbeda');
end;
code ini adalah aplikatif dari algoritma pengurangan namaun coba saya kotakkan dalam
sebuah procedure agar mudah mengecek bila terjadi kesalahan pada program.
procedure transpose;
begin
writeln ('Transpose matriks a');
for i:=1 to ka do
begin
for h:=1 to ba do
write (' ',a[h,i],' ');
writeln;
end;
writeln;
gotoxy(27,y+1);writeln ('Transpose matriks b');
y:=y+2;
for k:=1 to kb do
begin
x:=27;
for j:=1 to bb do begin
gotoxy(x,y);write (' ',b[j,k],' ');x:=x+3; end;y:=y+1;
writeln;
end;writeln;
end;
code ini adalah aplikatif dari algoritma prosedure transpose yang kalau kita matematika kan
perubahan baris menjadi kolom atau kolom menjadi baris.
Procedure cetak;
begin
clrscr; writeln ('>>>>>>>>>> OPERASI ARITMATIKA 2 BUAH MATRIKS<<<<<<<<<< ') ; writeln;
writeln ('Data yang anda masukan adalah :');writeln;
writeln ('Matriks a');
for h:=1 to ba do
begin
for i:=1 to ka do
write (' ',a[h,i],' ');
writeln;
end;
writeln;
gotoxy (27,5);writeln ('Matriks b');
y:=6;
for j:=1 to bb do
begin
x:=27;
for k:=1 to kb do begin
gotoxy(x,y);write (' ',b[j,k],' '); x:=x+3;end; y:=y+1;
end;writeln;
end;
selanjutnya adalah prosedur cetak, yang saya sendirikan untuk mencetak beberapa hasil dari
prosedur-prosedur yang telah ada. Sehingga kita hanya langsung memanggil beberapa prosedur
yang telah terpampang sebelumnya.
procedure input;
begin
writeln (' -= OPERASI ARITMATIKA 2 BUAH MATRIKS =- ') ; writeln;
write ('Masukan jumlah baris matriks A: '); readln (ba);
write ('Masukan jumlah kolom matriks A: '); readln (ka);writeln;
write ('Masukan jumlah baris matriks B: '); readln (bb);
write ('Masukan jumlah kolom matriks B: '); readln (kb);
writeln;
writeln ('Masukan komponen data Matriks A');
for h:=1 to ba do
begin
for i:=1 to ka do
begin
write ('Data ke-(',h,',',i,')= ');
readln (a[h,i]);
end;
end;
writeln;
writeln ('Masukan komponen data matriks B');
for j:=1 to bb do
begin
for k:=1 to kb do
begin
write ('Data ke-(',j,',',k,')= ');
readln (b[j,k]);
end;
end;
end;
procedure input ini adalah prosedur penginputan beberapa elemen data matriks untuk digunakan
acuan pengoperasian array matriks.
procedure keluar;
begin
gotoxy(0,10);
writeln(' Terima kasih telah menggunakan program ini'); writeln;writeln;
exit;
end;
procedure garis;
begin
writeln ('-------------------------------------------------------------------------------');
writeln ('===============================================================================');
end;
procedure keluar ini untuk proses keluar dari program matriks penjumlahan dan transpose.
procedure menu;
begin
writeln;
writeln ('Menu Operasi');
writeln ('1. Penambahan Matriks');
writeln ('2. Pengurangan Matriks');
writeln ('3. Transpose Matriks');
writeln ('4. Keluar');writeln;
write ('Masukan nomor pilihan anda : '); readln (p);
if p= 1 then begin cetak; garis; tambah; garis; menu; end;
if p= 2 then begin cetak; garis; kurang; garis; menu; end;
if p= 3 then begin cetak; garis; transpose; garis; menu; end;
if p= 4 then begin clrscr; keluar; end else begin
cetak; writeln('Maaf.. angka yang anda masukan tidak sesuai perintah');menu; end;
end;
{program Utama}
begin
input;
cetak;
garis;
writeln;writeln;
writeln;
garis;
menu;
end
procedure menu ini adalah procedure penampilan menu-menu yang ada yang disajikan dalam
numeric.
1. Tambah
2. Kurang
3. Transpose
4. Keluar
Dan bila kita ingin memanggil 1 berarit otomatis kita memanggil procedure tambah, memanggil 2
untuk procedure kurang, 3 untuk procedure transpose dan 4 untuk procedure keluar.
Source code lengkap
program matriks;
uses crt;
var
a : array [0..100,0..100] of integer;
b : array [0..100,0..100] of integer;
c : array [0..10,0..10] of integer;
p,f,g,ba,ka,bb,kb,i,h,j,k,r,x,y: integer;
procedure tambah;
begin
writeln ('matriks A+B');
if (ka=kb)and(ba=bb) then
begin j:=1;
for h:=1 to ba do
begin k:=1;
for i:=1 to ka do
begin
write (' ',(a[h,i]+b[j,k]),' ');k:=k+1;
end;
writeln; j:=j+1;
end;
end; if ka<>kb then writeln('maaf.. jumlah kolom kedua matriks berbeda');
if ba<>bb then writeln('maaf.. jumlah baris kedua matriks berbeda');
end;
procedure kurang;
begin
writeln ('matriks A-B');
if (ka=kb)and(ba=bb) then
begin j:=1;
for h:=1 to ba do
begin k:=1;
for i:=1 to ka do
begin
write (' ',(a[h,i]-b[j,k]),' ');k:=k+1;
end;
writeln; j:=j+1;
end;
end; if ka<>kb then writeln('maaf.. jumlah kolom kedua matriks berbeda');
if ba<>bb then writeln('maaf.. jumlah baris kedua matriks berbeda');
end;
procedure transpose;
begin
writeln ('Transpose matriks a');
for i:=1 to ka do
begin
for h:=1 to ba do
write (' ',a[h,i],' ');
writeln;
end;
writeln;
gotoxy(27,y+1);writeln ('Transpose matriks b');
y:=y+2;
for k:=1 to kb do
begin
x:=27;
for j:=1 to bb do begin
gotoxy(x,y);write (' ',b[j,k],' ');x:=x+3; end;y:=y+1;
writeln;
end;writeln;
end;
Procedure cetak;
begin
clrscr; writeln ('>>>>>>>>>> OPERASI ARITMATIKA 2 BUAH MATRIKS<<<<<<<<<< ') ; writeln;
writeln ('Data yang anda masukan adalah :');writeln;
writeln ('Matriks a');
for h:=1 to ba do
begin
for i:=1 to ka do
write (' ',a[h,i],' ');
writeln;
end;
writeln;
gotoxy (27,5);writeln ('Matriks b');
y:=6;
for j:=1 to bb do
begin
x:=27;
for k:=1 to kb do begin
gotoxy(x,y);write (' ',b[j,k],' '); x:=x+3;end; y:=y+1;
end;writeln;
end;
procedure input;
begin
writeln (' -= OPERASI ARITMATIKA 2 BUAH MATRIKS =- ') ; writeln;
write ('Masukan jumlah baris matriks A: '); readln (ba);
write ('Masukan jumlah kolom matriks A: '); readln (ka);writeln;
write ('Masukan jumlah baris matriks B: '); readln (bb);
write ('Masukan jumlah kolom matriks B: '); readln (kb);
writeln;
writeln ('Masukan komponen data Matriks A');
for h:=1 to ba do
begin
for i:=1 to ka do
begin
write ('Data ke-(',h,',',i,')= ');
readln (a[h,i]);
end;
end;
writeln;
writeln ('Masukan komponen data matriks B');
for j:=1 to bb do
begin
for k:=1 to kb do
begin
write ('Data ke-(',j,',',k,')= ');
readln (b[j,k]);
end;
end;
end;
procedure keluar;
begin
gotoxy(0,10);
writeln(' Terima kasih telah menggunakan program ini'); writeln;writeln;
exit;
end;
procedure garis;
begin
writeln ('-------------------------------------------------------------------------------');
writeln ('===============================================================================');
end;
procedure menu;
begin
writeln;
writeln ('Menu Operasi');
writeln ('1. Penambahan Matriks');
writeln ('2. Pengurangan Matriks');
writeln ('3. Transpose Matriks');
writeln ('4. Keluar');writeln;
write ('Masukan nomor pilihan anda : '); readln (p);
if p= 1 then begin cetak; garis; tambah; garis; menu; end;
if p= 2 then begin cetak; garis; kurang; garis; menu; end;
if p= 3 then begin cetak; garis; transpose; garis; menu; end;
if p= 4 then begin clrscr; keluar; end else begin
cetak; writeln('Maaf.. angka yang anda masukan tidak sesuai perintah');menu; end;
end;
{program Utama}
begin
input;
cetak;
garis;
writeln;writeln;
writeln;
garis;
menu;
end
Running program
IV. KESIMPULAN
1. Array adalah tipe terstruktur yang terdiri dari sejumlah komponen-komponen yang
mempunyai tipe yang sama. Komponen-komponen ini disebut dengan component type atau
base type.
2. Matriks adalah struktur penyimpanan data di dalam memori utama yang setiap individu
elemennya diacu dengan menggunakan dua buah indeks (yang biasanya dikonotasikan
dengan baris dan kolom).
3. Tujuan dari penggunaan procedure dalam pascal adalah untuk mempermudah dan
mempersingkat programer dalam membuat program, khususnya untuk program yang
membutuhkan analisa tinggi.
4. Procedure berfungsi untuk mempermudah dalam pemanggilan procedure serta
pengoreksian beberapa code yang error dan menuntuk perbaikan.
V. DAFTAR PUSTAKA
http://sahrulwijaya.blogspot.com/2012/04/matriks-dalam-turbo-pascal.html
https://kuliahkomputer.wordpress.com/2007/12/05/mengenal-array-pada-pascal/
http://pmat.uad.ac.id/prosedur-dalam-pascal
http://zulfikariz.com/program-procedur-dalam-pascal/