Anda di halaman 1dari 26

Bab 4 Array PASCAL

Bab 4 Array Array adalah tipe data terstruktur yang terdiri dari sejumlah komponen-komponen yang mempunyai tipe sama. Komponen-komponen tersebut disebut sebagai komponen type, larik mempunyai jumlah komponen yang jumlahnya tetap. Banyaknya komponen dalam larik ditunjukkan oleh suatu index, dimana tiap komponen di array dapat diakses dengan menunjukkan nilai indexnya atau subskript. Array dapat bertipe data sederhana seperti byte, word, integer, real, bolean, char, string dan tipe data scalar atau subrange. Tipe larik mengartikan isi dari larik atau komponen- komponenya mempunyai nilai dengan tipe data tersebut. Contoh: Var Untai : array[1..50] of Integer; Pada contoh Array dengan nama untai telah dideklarasikan dengan tipe integer, dengan jumlah elemen maksimum 50 elemen, nilai dari elemen array tersebut diatas harus bertipe integer.

Contoh Program : Program Contoh_Array_Input; Uses Crt; Var Bilangan : array[1..50] of Integer; Begin ClrScr; Bilangan[1]:=3; Bilangan[2]:=29; Bilangan[3]:=30; Bilangan[4]:=31; Bilangan[5]:=23; Writeln('nilai varibel bilangan ke 3 =',Bilangan[3]); Readln; End.

Array juga dapat dideklarasikan bersama dengan tipe yang beragam seperti contoh dibawah ini : Program Contoh_Deklarasi_Array_Beragam; Uses Crt; Var

NPM : array[1..20] of string[10]; Nama : array[1..20] of string[25]; Nilai : array[1..20] of real; Umur : array[1..20] of byte; banyak,i : integer; Begin ClrScr; Write('Isi berapa data array yang diperlukan :');Readln(banyak); For i := 1 to banyak Do Begin Write('NPM =');Readln(NPM[i]); Write('Nama =');readln(Nama[i]); Write('Nilai=');readln(Nilai[i]); Write('Umur =');readln(Umur[i]); End; {cetak varibel array} Writeln('NPM NAMA NILAI UMUR '); For i:= 1 to banyak Do Begin Writeln(Npm[i]:10,Nama[i]:25,Nilai[i]:3:2,' ',Umur[i]:3); End; Readln; End.

Untuk deklarasi array dapat digunakan beberapa cara seperti berikut ini : Type Angka = String[20]; Var Nama : Array [1..50] of Angka; Begin . . End.

Deklarasi tipe indeks subrange integer Indeks pada array dapat tipe skalar atau subrange, tetapi tidak bisa real. Contoh: Var

Nilai : Array[1..10] of Integer; pada contoh ini array nilai mempunyai 10 buah elemen yaitu dari 1 sampai 10. Array tersebut dapat dideklarasikan dengan type seperti berikut ini :

Type Skala = 1..10; Var Nilai : Array [skala] of Integer; atau : Type Skala = 1..10; Y = Array[skala] of Integer; Var Nilai : Y; atau : Type Y = Array[1..10] of Integer; Var Nilai : Y; atau : Const Atas =1; Bawah = 5; type Y = Array[Atas..Bawah] of Integer; Var Nilai : Y;

I. Deklarasi Type Indeks Skalar Indeks dari larik dapat berupa tipe skalar. Contoh. : Program Deklarasi_Indeks_Array_Skalar; Uses Crt; Var Jum : Array[(jan,feb,mar,apr,mei)] of Integer; Begin Jum[jan]:=25; Jum[feb]:=45;

Jum[mar]:=21; Jum[apr]:=23; Jum[mei]:=50; Writeln('Jumlah nilai bulan maret =',Jum[mar]); Readln; End. dapat juga ditulis : type Bln = (jan,feb,mar,apr,mei); Var Jum : Array[bln] of Integer; atau : type Bln =(jan,feb,mar,apr,mei); Var Jum : Array[jan..mei] of Integer;

II. Deklarasi Konstanta Array Array tidak hanya dapat berupa suatu varibel yang dideklarasikan di bagian deklarasi variabel, tetapi dapat juga berupa konstanta (const). Contoh Program : Program Contoh_Deklarasi_Array_Konstan; Uses Crt; Const Tetap : Array[1..4] of Integer=(7,10,21,20); Var i : Integer; Begin For i:= 1 to 4 Do Writeln('Nilai Konstan array ke ',i:2,' =',Tetap[i]); Readln; End. konstanta array dapat juga berupa ketetapan dalam bentuk karakter seperti berikut. Contoh Program : Program Contoh_Konstan_Array_Char_; Uses Crt; Const Huruf : Array[0..5] of Char=('A','B','C','D','E','F');

Var i : Integer; Begin For i:= 0 to 5 Do Writeln('Nilai konstan array ke',i:2,' = ',Huruf[i]); Readln; End. Konstanta array dapat juga berupa string seperti berikut ini. Contoh Program : Program Constanta_Array_String; Uses Crt; Type A = Array [1..5] of String; Const Nama : A = ('basic','pascal','cobol','paradox','dbase'); Var i : Integer; Begin For i:= 1 to 5 Do Writeln('Nilai Array ke-',i:2,'= ',Nama[i]); readln; end.

Dalam pascal string merupakan array dari elemen- elemen karakter seperti berikut : Contoh Program : Program String_Adalah_Array_Tipe_Char; Uses Crt; Var Nama : string; i : Integer; Begin Nama:='Turbo Pascal'; For i:= 1 to Length(nama) Do Writeln('Elemen ',i,' dari ',Nama,'= ',Nama[i]); Readln; End.

contoh program bilangan prima dengan menggunakan bantuan array.

Contoh program : Program Mencari_Bilangan_Prima_Dengan_Array; Uses Crt; Var Prima : Array[1..100] of Integer; i,j : Integer; bil : Integer; Begin ClrScr; For i := 2 to 100 Do Begin Prima[i]:=i; For j:= 2 to i-1 Do Begin bil := (i mod j); {* i dibagi j dicek apakah 0*} If bil = 0 then Prima[i]:=0; {*jika habis dibagi,berarti bkn prima*} End; If Prima[i]<> 0 Then Write(Prima[i],' '); {*cetak array yg prima*} End; Readln; End.

Contoh pengurutan data dengan metode buble sort, yaitu dengan cara penukaran, dapat dilihat pada contoh dibawah ini : Contoh Program : Program Penggunaan_Array_Untuk_Sortir_Buble_Sort; Uses Crt; Var nil1 : Array[1..100] of Integer; n,i,j,dum : Integer; Begin ClrScr; Write('mau isi berapa data acak (integer) ='); readln(n); For i := 1 to n Do Begin Write('Data Ke ',i,':');Readln(nil1[i]); End; {* penyapuan proses}

for i:= 1 to n-1 do begin for j:= i to n do begin if nil1[j] begin dum:=nil1[j]; nil1[j]:=nil1[i]; nil1[i]:=dum; end; end; end; writeln; writeln('Hasil Sortir'); for i := 1 to n do write(nil1[i]:3); readln; end.

III. Array Dua Dimensi Di dalam pascal Array dapat berdimensi lebih dari satu yang disebut dengan array dimensi banyak (Multidimensional array), disini akan dibahas array 2 dimensi saja. Array 2 dimensi dapat mewakili suatu bentuk tabel atau matrik, yaitu indeks pertama menunjukkan baris dan indeks ke dua menunjukkan kolom dari tabel atau matrik. 12 123 Untuk mengetahui cara mendeklarasikan dari penggunaan aray dua dimensi dapat dilihat pada listing program dibawah ini .

Contoh Program: Program Deklarasi_Array_Dua_Dimensi; Uses Crt; Var Tabel : Array[1..3,1..2] of Integer; i,j : Integer; Begin ClrScr; Tabel[1,1]:=1;

Tabel[1,2]:=2; Tabel[2,1]:=3; Tabel[2,2]:=4; Tabel[3,1]:=5; Tabel[3,2]:=6; For I := 1 to 3 Do Begin For J:= 1 to 2 Do Begin Writeln('Elemen ',i,',',j,'= ',tabel[i,j]); End; End; Readln; End.

IV. Alternatif Deklarasi Array Dua Dimensi. Ada beberapa cara dalam mendeklarasikan array dua dimensi, beberapa cara tersebut dapat dilihat dibawah ini : Contoh : Var Tabel : Array[1..3] of Array[1..2] of Byte; atau : Type Matrik = Array[1..3,1..2] of Byte; Var Tabel : Matrik; atau : Type Baris = 1..3; Kolom = 1..2; Matrik = Array[Baris,Kolom] of Byte; Var Tabel : Matrik; atau : Type Baris = 1..3; Kolom=1..2; Matrik= Array[Baris] of Array[Kolom] of Byte; Var Tabel : Matrik; Dibawah ini akan diberikan listing program penggunaan array dua dimensi dalam aplikasi

penjumlahan matrik : Contoh Prorgam: Program Penjumlahan_Matrik; Uses Crt; Var Matrik1,Matrik2, Hasil : Array[1..3,1..2] of Integer; i,j : Integer; Begin ClrScr; { input matrik ke satu } Writeln(' Elemen matrik satu'); For i := 1 to 3 Do Begin For j := 1 to 2 Do Begin Write('Elemen baris -',i,' Kolom -',j,'= '); Readln(matrik1[i,j]); End; End; {input matrik ke dua} Writeln('input elemen matrik dua'); For i:= 1 to 3 Do Begin For j:= 1 to 2 Do Begin Write('Elemen baris -',i,' kolom -',j,'= '); Readln(matrik2[i,j]); End; End; {proses penjumlahan tiap elemen} For i := 1 to 3 Do Begin For j:= 1 to 2 Do Begin Hasil[i,j]:=Matrik1[i,j]+Matrik2[i,j]; End; End; {proses cetak hasil}

For i:= 1 to 3 Do Begin For j:= 1 to 2 Do Begin Write(Hasil[i,j]:6); End; Writeln; End; Readln; End.

V. Array Sebagai Parameter Array dapat digunakan sebagai parameter yang dikirimkan baik secara nilai (by value) atau secara acuan (by reference) ke procedure atau ke function. Procedure yang menggunakan parameter berupa array harus dideklarasikan di dalam judul procedure yang menyebutkan parameternya bertipe array.

Contoh Program : Program Contoh_Pengiriman_Parameter_Array_Di_Procedure; Uses Crt; Const Garis ='---------------------------------------------------'; Type Untai = Array[1..10] of String[15]; Bulat = Array[1..10] of Integer; Huruf = Array[1..10] of Char; Var i,Banyak : Integer; Procedure Proses(Nama:Untai;Nilai:Bulat); Var Ket : String; Abjad : Char; Begin Writeln(Garis); Writeln('Nama Nilai Abjad Keterangan'); Writeln(Garis); For i := 1 to Banyak Do

Begin If Nilai[i] > 90 Then Begin Abjad:='A'; Ket :='Istimewa'; End; If (Nilai[i]<90) And (Nilai[i]>70) Then Begin Abjad:='B'; Ket :='Memuaskan'; End; If (Nilai[i]<70) And (Nilai[i]>60) Then Begin Abjad:='C'; Ket :='Cukup'; End; If (Nilai[i]<60) And (Nilai[i]>45) Then Begin Abjad:='D'; Ket :='Kurang'; End; If Nilai[i]< 45 Then Begin Abjad:='E'; Ket :='Sangat kurang'; End; Writeln(Nama[i]:15,' ',Nilai[i]:4,' ',Abjad,' ',Ket:15); End; Writeln(Garis); End; Procedure Masuk_Data; Var Nama : Untai; Nilai : Bulat; Begin Write('Banyak data =');Readln(Banyak); For i:= 1 to Banyak Do Begin

ClrScr; Writeln('Data ke - ',i); Write('Nama =');readln(Nama[i]); Write('Nilai =');readln(Nilai[i]); End; Proses(Nama,Nilai); End; {modul Utama} Begin Masuk_Data; Readln; End. Referensi : # Lepkom Universitas Gunadarma. # Dasar-dasar Pemrograman Pascal, Teori dan Program terapan , Ir.P. Insap Santosa, M.Sc.

Contoh ARRAY pada PASCAL


October 9th, 2009 Related Filed Under Program contoh_array_dimensi1; Uses crt; Var: A,Y: integer; X:array [14] as integer; Begin For A:= 1 to 4 do Begin Write (Masukan angka ke-, A); Readln (X[A]); End; For A:= 1 to 2 do Begin Y := Y + X[A]; If X[A] > X[A-1] then Max := X[A] Else Max := X[A-1];

If X[A] < X[A-1] then Min := X[A] Else Min := X[A-1]; End; For A:= 1 to 4 do Begin Write ( Nilai data ke-,a, :); Writeln (X[A]); End; Writeln (Nilai terbesar :, Max); Writeln (Nilai terendah :, Min); Writeln (Total nilai semua data :, Y); Readln; End.

ARRAY / LARIK Array ( larik ) adalah tipe terstruktur yang terdiri dari sejumlah komponen yang mempuyai tipe sama. B.U : Array [ 1 . . 20 ] of tipe_data ; (Dimensi 1) B.U : Array [1 . . 3 , 1 . . 2] of tipe_data; (Dimensi 2) Contoh Program Array : Uses crt ; Var Nama : array [1..30 ] of string ; Tugas, uts, uas, absen : array [1..30] of integer ; Rata : array [1..30] of real ; x , jd : byte; BEGIN CLRSCR ; Write ( Masukan Jumlah data : ) ; readln ( jd ) ; For x : = 1 to jd do begin

Writeln ( ***************************** ); Writeln ( PENILAIAN UJIAN MAHASISWA BSI ); Writeln ( ***************************** ); Write ( Input Nama : ) ; readln (nama[x] ) ; Write ( Input Nilai Tugas : ) ; readln (tugas[x] ) ; Write ( Input Nilai Absen : ) ; readln (absen[x] ) ; Write ( Input Nilai UTS : ) ; readln (uts[x] ) ; Write ( Input Nilai UAS : ) ; readln (uas[x]) ;

Rata[x]:=(0.1*tugas[x])+(0.2*absen[x])+(0.3*uts[x])+(0.4*uas[x]); End ; CLRSCR ;

For i : = 1 to j do Begin Writeln ( ***************************** ); Writeln ( PENILAIAN UJIAN MAHASISWA BSI ); Writeln ( ***************************** ); Writeln ( Nama : , nama[i] ) ; Writeln ( Nilai Tugas : , tugas[i] ) ; Writeln ( Nilai Absen : , absen[i] ) ; Writeln ( Nilai UTS : , uts[i] ) ; Writeln ( Nilai UAS : , uas[i]) ; Writeln ( ****************************

); Writeln ( Rata-rata : , rata : 1: 0 ) ; Readln ; End; END. Contoh dari Program Array program ayam_goreng; uses crt; var i,b:byte; jenis,kdjenis:array [1..50]of string; banyak,jmlharga,harga:array [1..50]of real; totb,ppn,totjml,total:real; begin clrscr; writeln(Ayam Goreng Fried Chicken); writeln(========================); writeln(Kode Jenis potong Harga); writeln(=============================); writeln(D Dada 3000 ); writeln(P Paha 2500 ); writeln(S Sayap 1500 ); writeln(=============================); write(Masukan Jumlah Jenis : );readln(b); for i:=1 to b do begin writeln; writeln(Jenis Ayam ke- ,i); writeln; write(Jenis Ayam Bagian [D/P/S] : );readln(kdjenis[i]); write(Jumlah Beli / Potong : );readln(banyak[i]); end; writeln; clrscr; writeln( PROGRAM AYAM GORENG FRIED CHICKEN); writeln(================================================================== ====); writeln(NO JENIS POTONG HARGA SATUAN BANYAK BELI JUMLAH HARGA ); writeln; totb:=0; for i:=1 to b do begin if kdjenis[i]=D then begin jenis[i]:=Dada; harga[i]:=3000; end

else if kdjenis[i]=P then begin jenis[i]:=Paha; harga[i]:=2500; end else if kdjenis[i]=S then begin jenis[i]:=Sayap; harga[i]:=1500; end else begin jenis[i]:=Kepala; harga[i]:=1000; end; jmlharga[i]:=harga[i]*banyak[i]; totb:=totb+jmlharga[i]; ppn:=totb*0.1; totjml:=totjml+banyak[i]; total:=totb+ppn end; for i:=1 to b do begin writeln(i:1,jenis[i]:9,harga[i]:14:0,banyak[i]:18:0,jmlharga[i]:19:0); end; writeln(=================================================================) ; writeln( Jumlah Potong : ,totjml:2:0); writeln( Jumlah bayar : ,totb:2:0); writeln( PPN 10 % : ,ppn:2:0); writeln( Total bayar : ,total:2:0); readln; end. Contoh Array Nilai siswa uses crt; var Nilai : array[1..50] of real; jumlah, rata : real; i,a, JumDat : byte; nama : string; begin clrscr; {jumlah:=0;} writeln( Nilai Rata Rata Praktikum Kelas TK2A); Writeln(); write(Nama Mahasiswa = );readln(nama); Write(Berapa Jumlah data = );readln(JumDat); for i := 1 to Jumdat do

begin Write(Nilai Praktiklum ke ,i,=');Readln(Nilai[i]); end; jumlah:=0; for i:= 1 to JumDat do begin Jumlah := jumlah + Nilai[i]; rata := Jumlah/JumDat; end; writeln; clrscr; writeln(Nama Mahasiswa =,nama); for i := 1 to jumdat do begin writeln(Nilai Praktekm ke-,i, =,nilai[i]:3:0); end; writeln(Total Nilai = , jumlah:8:0); writeln(Nilai Rata rata = , Rata:8:1); readln; end. Contoh Array uses crt; var Nilai : array[1..50] of real; jumlah, rata : real; i,a, JumDat : byte; nama : string; begin clrscr; {jumlah:=0;} writeln( Nilai Rata Rata Praktikum Kelas TK2A); Writeln(); write(Nama Mahasiswa = );readln(nama); Write(Berapa Jumlah data = );readln(JumDat); for i := 1 to Jumdat do begin Write(Nilai Praktiklum ke ,i,=');Readln(Nilai[i]); end; jumlah:=0; for i:= 1 to JumDat do begin Jumlah := jumlah + Nilai[i]; rata := Jumlah/JumDat; end; writeln; clrscr; writeln( Nilai Rata Rata Praktikum Kelas TK2A); Writeln();

writeln(Nama Mahasiswa =,nama); writeln( ); writeln( Praktikum Nilai ); writeln( ); for i := 1 to jumdat do begin writeln(, ke-,i, , nilai[i]:3:0, ); end; writeln(); writeln(Total Nilai = , jumlah:8:0); writeln(Nilai Rata rata = , Rata:8:1); readln; end. Contoh Array Agen Bus Program Harga_Tiket; uses crt; var np:array[1..50] of string; jb:array[1..50] of real; jbyr:array[1..50] of real; jml,a:byte; tot:real; ask:char; label baru; begin baru: clrscr; textcolor(7); writeln(AGEN BUS MALAM LENGAH TENTREM); writeln; write(Masukkan Jumlah Penumpang : );readln(jml); writeln; for a:=1 to jml do begin writeln(Data Ke -,a); write(Nama Penumpang : );readln(np[a]); write(Jumlah Beli : );readln(jb[a]); end; clrscr; writeln(DATA PENJUALAN TIKET); writeln(AGEN BUS MALAM LENGAH TENTREM); writeln(-); writeln(No. Nama Penumpang Jumlah Beli Jumlah Pembayaran); writeln(-); for a:=1 to jml do jbyr[a]:=jb[a]*25000; for a:=1 to jml do writeln(a:1,np[a]:10,jb[a]:10:0,jbyr[a]:27:3);

begin writeln(-); tot:=0; tot:=tot+jbyr[a]; writeln(Total Pembayaran Rp.,tot:10:3); writeln(-); writeln; write(Anda Ingin Memasukkan Data Selanjutnya [Y/T] ? );readln(ask); if (ask=Y')or(ask=y') then goto baru; end; end. Contoh Array data karyawan uses crt; var nama:array[1..10]of string[20]; alamat:array[1..20]of string[30] ; jml_gaji:array[1..20]of real; i,j:byte; begin clrscr; write(masukan jumlah Data :);readln(j); for i:=1 to j do begin writeln(data ke- ,i); write(nama Karyawan :);readln(nama[i]); write(masukan Alamat :);readln(alamat[i]); write(jumlah Gaji :);readln(jml_gaji[i]); end; clrscr; writeln( DATA GAJI KARYAWAN); writeln(======================================); writeln(No. Nama Karyawan Total Gaji ); writeln(=======================================); for i:=1 to j do begin writeln(i:1,nama[i]:15,jml_gaji[i]:15:0); end; writeln(=======================================); readln end. Contoh Array Penjualan Susu Uses crt; Var i,j:integer; merk:array[1..5] of string[10]; ukuran:array[1..5] of char; jumbel,harsat:array[1..5] of integer;

harkot,pot,harsih:array[1..5] of real; Begin clrscr; Write(Banyaknya Pembelian : );readln(i); Writeln; For j:=1 to i do Begin Writeln(Data Ke-,j); Write(Merk Susu : );Readln(merk[j]); Write(Ukuran [K/S/B] : );Readln(ukuran[j]); Write(Jumlah Beli : );Readln(jumbel[j]); If merk[j]=Dancow then Case ukuran[j] of K:harsat[j]:=6500; S:harsat[j]:=9500; B:harsat[j]:=13500; End Else If merk[j]=Bendera then Case ukuran[j] of K:harsat[j]:=8500; S:harsat[j]:=13500; B:harsat[j]:=18500; End Else Case ukuran[j] of K:harsat[j]:=9500; S:harsat[j]:=16500; B:harsat[j]:=23500; End; If jumbel[j]>=15 then Begin harkot[j]:=jumbel[j]*harsat[j]; pot[j]:=0.1*harkot[j]; harsih[j]:=jumbel[j]*harsat[j]-pot[j]; End Else if jumbel[j]>=30 then Begin harkot[j]:=jumbel[j]*harsat[j]; pot[j]:=0.2*harkot[j]; harsih[j]:=jumbel[j]*harsat[j]-pot[j]; End Else Begin harkot[j]:=jumbel[j]*harsat[j]; pot[j]:=0*harkot[j]; harsih[j]:=jumbel[j]*harsat[j]-pot[j]; End; End; clrscr;

Gotoxy(1,1);Writeln(======================================================== ===================); Gotoxy(2,2);Writeln(No); Gotoxy(7,2);Writeln(Merk); Gotoxy(16,2);Writeln(Ukuran); Gotoxy(24,2);Writeln(Jumlah); Gotoxy(32,2);Writeln(Harga); Gotoxy(55,2);Writeln(Potongan); Gotoxy(70,2);Writeln(Total); Gotoxy(1,3);Writeln(Urut); Gotoxy(7,3);Writeln(Susu); Gotoxy(16,3);Writeln(Kaleng); Gotoxy(25,3);Writeln(Beli); Gotoxy(32,3);Writeln(Satuan); Gotoxy(70,3);Writeln(Bayar); Gotoxy(1,4);Writeln(======================================================== ===================); For j:=1 to i do Begin Gotoxy(1,j+4);Writeln(j); Gotoxy(7,j+4);Writeln(merk[j]); Gotoxy(18,j+4);Writeln(ukuran[j]); Gotoxy(26,j+4);Writeln(jumbel[j]); Gotoxy(32,j+4);Writeln(Rp,harsat[j]); Gotoxy(55,j+4);Writeln(Rp ,pot[j]:0:2); Gotoxy(67,j+4);Writeln(Rp ,harsih[j]:5:2); End; Writeln(================================================================== =========); Readln; End. Contoh Array Toko serba ada uses crt; var np:string[20]; jd,i:byte; nb:array[1..50]of string; jb,ttl,hrg:array[1..50]of real; tot:real; lagi:char; label awal,akhir; begin awal: clrscr; writeln(TOKO SERBA ADA); writeln(-); write(masukan nama pembeli :);readln(np); write(masukan jumlah data :);readln(jd); for i:=1 to jd do begin writeln(data ke- ,i);

write(nama barang :);readln(nb[i]); write(jumlah beli :);readln(jb[i]); write(harga :);readln(hrg[i]); end; clrscr; writeln( TOKO SERBA ADA); writeln( TABEL PENJUALAN BARANG); writeln(); writeln(No. Nama pembeli Nama barang Jumlah harga total ); writeln(); tot:=0; for i:=1 to jd do begin ttl[i]:=hrg[i]*jb[i]; tot:=tot+ttl[i]; end; for i:=1 to jd do begin writeln(i:1,np:10,nb[i]:13,jb[i]:12:0,hrg[i]:8:0,ttl[i]:10:0); end; writeln(-); writeln(total bayar = ,tot:3:0); writeln(-); write(Mau input data lagi[Y/T]=);readln(lagi); if (lagi=Y') or (lagi=y') then goto awal else goto akhir; akhir: readln; end. Contoh Array Bengkel program bengkel; uses crt; var i,b:byte; nm,nmoli,jnsmbl:array [1..50]of string; hrg,bonus,hrgsev,hrgoli,tot:array [1..50]of real; totb:real; begin clrscr; writeln(BENGKEL MAJU MUNDUR); writeln(========================);

write(Masukan data: );readln(b); for i:=1 to b do begin writeln(data ke- ,i); writeln; write(nama pengunjung :);readln(nm[i]); write(jenis kendaraan [1. mobil| 2. motor]:);readln(jnsmbl[i]); write(jenis oli [ 1. castrol| 2. pelumas pertamina]:);readln(nmoli[i]); end; writeln; writeln( PROGRAM SERVIC BENGKEL MAJU MUNDUR); writeln(================================================================== ====); writeln(NO NAMA PENGUNJUNG JENIS KENDARAAN JENIS OLI TOTAL ); writeln; totb:=0; for i:=1 to b do begin if jnsmbl[i]=1 then hrgsev[i]:=30000 else hrgsev[i]:=20000; if nmoli[i]=2 then hrgoli[i]:= 20000 else hrgoli[i]:=30000; tot[i]:=hrgsev[i]+hrgoli[i]; totb:=totb+tot[i]; end; for i:=1 to b do begin writeln(i:1,nm[i]:9,hrgsev[i]:14:0,hrgoli[i]:18:0,tot[i]:19:0); end; writeln(=================================================================) ; writeln(total bayar :,totb:2:0); readln; end. Contoh Array Kereta uses crt; var jp,i:byte; np,nk:array[1..50]of string; fsl:array[1..50]of char; jml,hrg,ttl:array[1..50]of real; tot:real;

lagi:char; label awal,akhir; begin awal: clrscr; writeln(STASIUN HARUS BERHENTI ); writeln(================================); write(masukan jumlah pemesan :);readln(jp); for i:=1 to jp do begin writeln(Data ke- ,i); write(Nama pemesan :);readln(np[i]); write(Nama kereta :);readln(nk[i]); writeln(fasilitas [ 1.VVIP 3.BISNIS '); write(' 2.VIP 4.EKONOMI ] =);readln(fsl[i]); write(jumlah pesan :);readln(jml[i]); end; writeln( STASIUN HARUS BERHENTI ); writeln( PROGRAM PENJUALAN TIKET KERETA API); writeln(-); writeln(NO. Nama Pemesan Nama Kereta Fasilitas Jumlah Pesan harga total); tot:=0; for i:=1 to jp do begin if fsl[i]=1 then hrg[i]:=200000 else if fsl[i]=2 then hrg[i]:=180000 else if fsl[i]=3 then hrg[i]:=140000 else hrg[i]:=80000; ttl[i]:=hrg[i]*jml[i]; tot:=tot+ttl[i]; end; for i:=1 to jp do begin writeln(i:1,np[i]:10,nk[i]:12,fsl[i]:15,jml[i]:14:0,hrg[i]:12:0,ttl[i]:10:0); end; writeln(); writeln(total pembayaran =,tot:9:0); writeln(); write(Mau input data lagi[Y/T]=);readln(lagi); if (lagi=Y') or (lagi=y') then goto awal

else goto akhir; akhir: readln; end.