Array dengan Pascal

21
LAPORAN PEMROGRAMAN DASAR MENGULANG PROGRAM, ANALISA DAN PEMBAHASAN BEBERAPA PROGRAM PASCAL DI SUSUN : NAMA : Husaen Al Fatah NIM : M3110077 KELAS : TIB 2010

description

Pemrograman Array dengan Pascal

Transcript of Array dengan Pascal

Page 1: Array dengan Pascal

LAPORAN PEMROGRAMAN DASAR MENGULANG

PROGRAM, ANALISA DAN PEMBAHASAN BEBERAPA PROGRAM PASCAL

DI SUSUN :

NAMA : Husaen Al Fatah

NIM : M3110077

KELAS : TIB 2010

Page 2: Array dengan Pascal

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)

Page 3: Array dengan Pascal

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]

Page 4: Array dengan Pascal

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.

Page 5: Array dengan 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;

Page 6: Array dengan Pascal

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);

Page 7: Array dengan Pascal

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

Page 8: Array dengan Pascal

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.

Page 9: Array dengan Pascal

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;

Page 10: Array dengan Pascal

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

Page 11: Array dengan Pascal

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

Page 12: Array dengan Pascal

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');

Page 13: Array dengan Pascal

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.

Page 14: Array dengan Pascal

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;

Page 15: Array dengan Pascal

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;

Page 16: Array dengan Pascal

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;

Page 17: Array dengan Pascal

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

Page 18: Array dengan Pascal

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;

Page 19: Array dengan Pascal

writeln;writeln;

writeln;

garis;

menu;

end

Running program

Page 20: Array dengan Pascal
Page 21: Array dengan Pascal

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/