Upload
edo-akito-firmansyah
View
226
Download
6
Embed Size (px)
DESCRIPTION
laporan delphi
Citation preview
MOBILE SYSTEM & SOFTWARE LABORATORYComputer System Engineering
Diponegoro University SemarangJL. Prof.Sudharto, SH – Tembalang Semarang
Jawa Tengah
BAB IV
PEMROGRAMAN DELPHI BAGIAN II
4.1 Tujuan
1. Praktikan mengerti konsep dari array dan record serta cara
pengaplikasiannya.
2. Praktikan paham dengan penggunaan pemilihan dan perulangan dalam
memanipulasi array.
3. Praktikan mengerti konsep Queue dan Stack dalam array.
MOBILE SYSTEM & SOFTWARE LABORATORYComputer System Engineering
Diponegoro University SemarangJL. Prof.Sudharto, SH – Tembalang Semarang
Jawa Tengah
4.2 Dasar Teori
4.2.1. Array
Array adalah sebuah variabel yang dapat menyimpan lebih dari satu nilai sejenis (memiliki tipe sama). Setiap nilai yang tersimpan dalam array disebut elemen array, sedangkan nilai urut yang digunakan untuk mengakses array disebut indeks array.
A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] A[9]1 2 3 4 5 6 7 8 9P A S C A L 0 K E
Nilai elemen arrayIndeks ArrayElemen Array
Deklarasi Array :var
A : array [1..10] of integer;B : array [‘A’..’B’] of integer;
4.2.2. Record
Record merupakan tipe data yang tersusun atas beberapa variabel yang
berbeda (atau sama) tipe datanya. Variabel-variabel yang terdapat di dalam
suatu record biasa dikenal dengan istilah “field” atau “member” (anggota dari
record). Contoh penggunaan tipe record
typeTSiswa = recordNIM: string[9];Nama: string[25];Umur: integer;
end;
Setelah didefinisikan, record bisa digunakan. Berikut cara penggunaannya
S : TSiswa;
S.NIM := ‘L2N009020’;S.Nama := ‘Praktikum Pascal’;S.Umur := 18;
4.2.3. Pengulangan Dalam Array
4.2.3.3. Mengakses Elemen Array
MOBILE SYSTEM & SOFTWARE LABORATORYComputer System Engineering
Diponegoro University SemarangJL. Prof.Sudharto, SH – Tembalang Semarang
Jawa Tengah
4.2.3.2. Mencari Data Dalam Array
Metode pencarian yang digunakan dalam pencarian ini adalah
metode pencarian beruntun dimana program akan mencari data yang
dimaksud dalam array secara berurutan dari indeks 0 sampai data yang
dimaksud ditemukan.
program Program2;
uses win32crt;
constA : array[1..5] of integer = (23, 45, 22, 71, 34);
vari, x, indeks: integer;
beginclrscr;write (‘masukkan nilai yang akan dicari: ’);readln (x);indeks := 0;
for i:=0 to 5 do beginif A[i] = x then begin
program Program1;
uses win32crt;
constMAX = 26;
varA: array[1..MAX] of char;c: char;i: integer;
beginclrscr;{mengisikan elemen array}c:= ‘a’; {c diisi dengan karakter pertama}i:=1;while (i<=MAX) do begin
A[i] := c;Inc(c);Inc(i);
end;{menampilkan nilai yang terdapat pada setiap elemen array}for i:=1 to MAX do begin
write(A[i]), ‘ ’);end;
readln;end.
MOBILE SYSTEM & SOFTWARE LABORATORYComputer System Engineering
Diponegoro University SemarangJL. Prof.Sudharto, SH – Tembalang Semarang
Jawa Tengah
indeks := i;break;
end;end;
writeln(x, ‘ditemukan pada indeks ke-’, indeks);readln;
end.
4.2.3.3. Mengurutkan Data dalam Array Metode Maksimum
Dalam metode ini, elemen array dengan nilai maksimum
akan disimpan ke bagian ujung array (elemen terakhir). Selanjutnya
nilai tersebut akan disimpan dan tidak diikutkan lagi dalam proses
selanjutnya.
program Program3;
uses win32crt;
constN = 5;A : array[1..5] of integer = (23, 45, 22, 71, 34);
varX, j, k, maks, imaks, temp: integer;
beginclrscr;{menampilkan data sebelum proses pengurutan}writeln (‘data sebelum diurutkan: ’);for j:=1 to N do begin
writeln (‘A[‘ ,j,’] = ’, A[j]);end;
{melakukan proses pengurutan data}X:=N; {mula-mula data belum terurut}for j:=1 to N-1 do begin
maks := A[1];imaks := 1;for k:=2 to X do begin
if (A[k] > maks) then beginmaks:= A[k];imaks:= k;
end;end;{tukarkan maks dengan A[X]}temp:= A[X];A[X]:= A[imaks];A[imaks]:= temp;{ikat elemen terakhir dengan menurunkan nilai X}X:= X-1;
end;
MOBILE SYSTEM & SOFTWARE LABORATORYComputer System Engineering
Diponegoro University SemarangJL. Prof.Sudharto, SH – Tembalang Semarang
Jawa Tengah
{menampilkan data setelah proses pengurutan}writeln;writeln(‘Data setelah diurutkan’);for j:=1 to N do begin
writeln(‘A[‘,j,’]= ’, A[j]);end;readln;
end.
4.2.4. Queue
Queue atau antrian sebenarnya juga merupakan suatu list. Penambahan
elemen dilakukan pada salah satu ujung (ujung depan) dan pengambilan
dilakukan pada ujung yang lain (ujung belakang). Dengan demikian queue
menggunakan prinsip FIFO (First In First Out), yaitu elemen yang pertama
masuk akan pertama kali pula dikeluarkan.
program Program4;
Uses win32crt;
const max = 5;
type Tumpukan = array[1..10] of char;
type stack=record nilai : Tumpukan ; Depan : integer ; Belakang : integer ; Isi : 0..max ;end;
varantrian : Stack ;
Procedure PUSH(var antrian : Stack; x : char);Begin if antrian.isi = max then write(' Antrian Penuh ') else Begin if antrian.Belakang = max then antrian.Belakang:=1 else antrian.Belakang:= antrian.Belakang+1; antrian.nilai[antrian.Belakang]:=x; antrian.Isi:=antrian.Isi+1; end;
MOBILE SYSTEM & SOFTWARE LABORATORYComputer System Engineering
Diponegoro University SemarangJL. Prof.Sudharto, SH – Tembalang Semarang
Jawa Tengah
end;
Procedure POP(var antrian : Stack; var x : char);Begin if antrian.isi = 0 then write('Antrian Kosong') else Begin if antrian.Depan = max then antrian.Depan:=1 else if antrian.Depan < max then antrian.Depan:=antrian.Depan+1; x:=antrian.nilai[antrian.Depan]; antrian.nilai[antrian.Depan]:=' '; antrian.isi:=antrian.isi-1; end;end;
var i,pilih : integer;x : char ;Begin
repeat
writeln;
writeln(' 1. Push ');writeln(' 2. Pop ');writeln(' 0. Selesai ');writeln('Pilihan Anda : ');readln(pilih);
if pilih<>0 then case pilih of 1: begin clrscr; write('Nilai yang dimasukan : ');readln(x); PUSH(antrian,x); for i := 1 to max do write(antrian.nilai[i],' '); writeln; end; 2: begin clrscr; x:=' '; pop(antrian,x); writeln;
MOBILE SYSTEM & SOFTWARE LABORATORYComputer System Engineering
Diponegoro University SemarangJL. Prof.Sudharto, SH – Tembalang Semarang
Jawa Tengah
writeln('Data Keluaran = ',x ); for i:=1 to max do write(antrian.nilai[i],' '); writeln; end;
end;until pilih=0;end.
4.2.5. Stack
Stack (tumpukan) sebenarnya secara mudah dapat diartikan sebagai list
(urutan) dimana penambahan dan pengambilan elemen hanya dilakukan pada
satu sisi yang disebut top (puncak) dari stack. Dengan melihat definisi tersebut
maka jelas bahwa pada stack berlaku aturan LIFO (Last In First Out), yaitu
elemen yang terakhir masuk akan pertama kali diambil atau dilayani. Salah
satu analogi yang dapat dikemukakan di sini adalah tumpukan. Pada saat kita
hendak menumpuk piring-piring tersebut tentulah yang kita lakukan adalah
meletakkan piring pertama pada tempatnya, selanjutnya meletakkan piring
kedua di atas piring pertama dan demikian seterusnya. Pada saat kita hendak
mengambil satu piring dari tumpukan tersebut, tentu yang diambil adalah
piring teratas (yang terakhir kali ditaruh), bukan yang terbawah (yang pertama
kali diletakkan).
program Program5;
Uses win32crt;
const max = 5;
type Tumpukan=array[1..10] of char;
type tumpuk=record nilai : Tumpukan; Depan : integer; Belakang : integer; Isi : 0..max;end;
varantrian : tumpuk ;
MOBILE SYSTEM & SOFTWARE LABORATORYComputer System Engineering
Diponegoro University SemarangJL. Prof.Sudharto, SH – Tembalang Semarang
Jawa Tengah
Procedure PUSH(var antrian : tumpuk; x : char);Begin if antrian.isi=max then write(' Antrian Penuh ')elseBeginif antrian.Belakang=max then antrian.Belakang:=maxelse antrian.Belakang:= antrian.Isi+1; antrian.nilai[antrian.Belakang]:=x; antrian.Isi:=antrian.Isi+1; end;end;
Procedure POP(var antrian : tumpuk; var x : char);Beginif antrian.isi=0 thenwrite('Antrian Kosong')elseBeginantrian.Belakang:= antrian.Isi;x:=antrian.nilai[antrian.Belakang];antrian.nilai[antrian.Belakang]:=' ';antrian.isi:=antrian.isi-1;end;end;
var i,pilih : integer;x : char ;Begin
repeatwriteln;writeln('1. PUSH');writeln('2. POP');writeln('0. Keluar');writeln('Masukan pilihan Menu Anda : ');
readln(pilih);if pilih <> 0 then case pilih of 1: begin clrscr; write('Nilai yang dimasukan : ');readln(x); PUSH(antrian,x); for i := 1 to max do
MOBILE SYSTEM & SOFTWARE LABORATORYComputer System Engineering
Diponegoro University SemarangJL. Prof.Sudharto, SH – Tembalang Semarang
Jawa Tengah
write(antrian.nilai[i],' '); writeln; end; 2: begin clrscr; x:=' '; pop(antrian,x); writeln('Data Keluaran = ',x ); for i:=1 to max do write(antrian.nilai[i],' '); writeln; end;
end;until pilih=0;end.
MOBILE SYSTEM & SOFTWARE LABORATORYComputer System Engineering
Diponegoro University SemarangJL. Prof.Sudharto, SH – Tembalang Semarang
Jawa Tengah
4.3. Hasil Analisis dan Percobaan
4.3.1. Program Mengakses Elemen Array
Fungsi program ini untuk mengakses elemen – elemen array sesuai
indeks array secara urut. Contoh program untuk mengurutkan huruf dari a
sampai z sesuai indeks array adalah sebagai berikut :
program mengakses_array; //judul program
{$APPTYPE CONSOLE} //tipe aplikasi
uses SysUtils; //library yg digunakan
constmax = 26 ; //deklarasi konstanta
varA: array[1..max] of char; //deklarasi variabel array C: char; //deklarasi variabel karakteri: integer; //deklarasi variabel i adalah tipe integer
beginC:= 'a'; //C diisi dengan karakter pertamai := 1;while (i <= max) do begin //perulangan while doA[i]:= C;inc(C);inc(i);end;
for i:=1 to max do begin //perulangan for to dowrite ((A[i]), ' '); //menampilkan nilai dalam setiap elemen arrayend;readln;
end.
MOBILE SYSTEM & SOFTWARE LABORATORYComputer System Engineering
Diponegoro University SemarangJL. Prof.Sudharto, SH – Tembalang Semarang
Jawa Tengah
Gambar 4.1 Screenshot program mengakses elemen array
Penjelasan program : saat proses compiling source code diatas, maka output akan menampilkan urutan abjad dari a sampai ke z
seperti terlihat pada gambar 4.1.
4.3.2. Program Mencari Data dalam Array
Fungsi program ini untuk mencari indeks dari data yang telah
ditentukan. Jika kita melakukan pencarian diluar angka yang telah kita
tentukan, maka angka itu akan berada pada indeks 0.
program mencari_data ; //judul program
{$APPTYPE CONSOLE} //tipe aplikasi
UsesSysUtils; //library yang digunakan
constA: array[1..5] of integer = (19,45,23,68,46); //deklarasi konstanta
vari, m, index : integer; //deklarasi variabel menggunakan tipe integer
MOBILE SYSTEM & SOFTWARE LABORATORYComputer System Engineering
Diponegoro University SemarangJL. Prof.Sudharto, SH – Tembalang Semarang
Jawa Tengah
beginwrite ('masukan nilai yang akan dicari: ');readln (m);index:= 0; //mengurutkan arrayfor i:=0 to 5 do begin //loop pencarian indeksif A[i]=m then begin //fungsi yang digunakan //untuk mencari nilai yang telah dimasukkanindex := i;//fungsi tersebut akan memproses angka yang telah//dimasukkan untuk dicari letaknya berdasarkan indeks//array yang telah disusun pada konstantabreak;end;end;writeln(m, ' ditemukan pada indeks ke-',index);readln;end.
Gambar 4.2 Screenshot program mencari data array
Penjelasan program : saat program dijalankan, maka akan muncul teks
yang meminta kita untuk memasukkan nilai yang akan dicari. Di dalam
gambar 4.2 dapat kita lihat nilai yang dimasukkan adalah 46, karena angka 46
sudah kita tentukan sebelumnya di dalam array maka program akan mencari
angka 46 dan karena angka 46 berada di indeks ke-5 maka akan muncul teks
yang memberitahu kita bahwa angka 46 berada di indeks ke-5. Jika kita
MOBILE SYSTEM & SOFTWARE LABORATORYComputer System Engineering
Diponegoro University SemarangJL. Prof.Sudharto, SH – Tembalang Semarang
Jawa Tengah
memasukkan nilai yang belum terdaftar di dalam array maka program akan
memberi tahu kita bahwa angka tersebut berada di indeks ke-0.
4.3.3. Program Mengurutkan Data dalam Array
Fungsi program ini untuk mengurutkan data dalam elemen – elemen
array. Contoh program dibawah ini akan megurutkan dari nilai terkecil ke
terbesar :
program mengurutkan_data; //nama program{$APPTYPE CONSOLE}Uses //memilih deklarasi unitSysUtils; //tipe library yang digunakanconstArraySize = 5; //deklarasi konstantaType //pendeklarasian tipeRange = 1..ArraySize;NumbersArray = ARRAY[Range] OF INTEGER;Var //deklarasi variabelNumbers :NumbersArray;I, J , Pot :integer;Begin
for I := 1 to ArraySize dobeginwrite('Masukkan angka #', I,': ');readln(Numbers[I])end;
//mengurutkan array
for I := 1 to ArraySize-1 dobeginfor J := I+1 to ArraySize dobeginif Numbers[I] > Numbers[J] then//fungsi untuk mengurutkan array besar ke array kecilbeginPot := Numbers[J];Numbers[J] := Numbers[I];Numbers[I] := Potendendend;writeln;writeln('Angka yang diurutkan : ');for I := 1 to ArraySize dowriteln(Numbers[I]);readln;
MOBILE SYSTEM & SOFTWARE LABORATORYComputer System Engineering
Diponegoro University SemarangJL. Prof.Sudharto, SH – Tembalang Semarang
Jawa Tengah
end.
Gambar 4.3 Screenshot program mengurutkan data array
Penjelasan program : saat program dijalankan kita diminta untuk
memasukkkan 5 angka secara acak. Disini kita mengambil contoh angka 4,6,3,1,2.
Setelah menginput angka tersebut program akan mengurutkan angka-angka
tersebut dimulai dari angka terkecil sampai terbesar, sehingga nanti akan muncul
urutan angka 1,2,3,4,6.
4.3.4. Program Queue
Fungsi program ini untuk melakukan penambahan suatu elemen di
salah satu ujung ( ujung depan ) dan jika ada pengambilan akan diambil paada
ujung lainnya ( ujung belakang ) yang menggunakan metode FIFO ( First In
First Out ).
program queue; //judul program
{$APPTYPE CONSOLE} //tipe aplikasi
Uses //deklarasi unit }SysUtils; //library yang digunakan
MOBILE SYSTEM & SOFTWARE LABORATORYComputer System Engineering
Diponegoro University SemarangJL. Prof.Sudharto, SH – Tembalang Semarang
Jawa Tengah
const max = 5; //deklarasi nilai konstanta
type tumpukan = array[1..10] of char;//mendeklarasian tipe baru array sebagai tumpukan yang//akan digunakan sebagai penyimpan masukan dengan tipe nilai//char, agar angka maupun karakter dapat tersimpantype stack=record //deklarasi tipenilai:tumpukan;depan:integer;belakang:integer;isi:0..max;end;
varantrian:stack; //deklarari variabelprocedure PUSH(var antrian:stack; x:char); //prosedur push{ antrian sebagai record untuk setiap masukan yangtersimpan dan x sebagai variabel penyimpan sementaranilai masukan }
begin//kondisi fungsi jika jumlah maksimalif antrian.isi = max thenwrite('antrian penuh');
beginif antrian.belakang=max thenantrian.belakang:=1elseantrian.belakang:=antrian.Belakang+1;antrian.nilai[antrian.belakang]:=x;antrian.isi:=antrian.isi+1;end;end;procedure POP(var antrian:stack; x:char);//prosedur pop
begin//pengkondisian fungsi jika nilainya 0if antrian.isi=0 thenwrite('antrian kosong')//statement diatas digunakan untuk memberitahukan bahwa antrian masih kosong//
elsebegin{ pengkondisian fungsi untuk mengeluarkan nilaiarray dan mengeluarkan nilai yang pertama
MOBILE SYSTEM & SOFTWARE LABORATORYComputer System Engineering
Diponegoro University SemarangJL. Prof.Sudharto, SH – Tembalang Semarang
Jawa Tengah
dimasukkan }if antrian.depan=max thenantrian.depan:=1{statement di atas akan menginstruksikan fielddepan sebagai penunjuk lokasi untuk fungsi pop,kembali ke posisi penyimpanan pertama, apabilapenunjuk lokasi berada di posisi akhir. Prosesini akan menciptakan siklus perulangan hinggasemua lokasi dalam antrian terisi}
elseif antrian.depan <= max thenantrian.depan:=antrian.depan+1;x:=antrian.nilai[antrian.depan];antrian.nilai[antrian.depan]:=' ';antrian.isi:=antrian.isi-1;end;end;
var i, pilih :integer;x:char;
beginrepeatwriteln;writeln('1. push');writeln('2. pop');writeln('0. selesai');writeln('Pilihan Anda : ');readln(pilih);if pilih<>0 thencase pilih of1: begin //memasukkan nilaiwrite('Nilai yang dimasukan : ');readln(x);PUSH(antrian,x);for i:=1 to max do //loop untuk memasukkan nilai hingga maxwrite(antrian.nilai[i],' ');writeln;end;2: begin //memasukkan nilai}x:=' ';POP(antrian,x);writeln;writeln('data keluaran = ',x);for i:=1 to max do //loop untuk mengeluarkan ilai hingga habiswrite(antrian.nilai[i],' ');writeln;
MOBILE SYSTEM & SOFTWARE LABORATORYComputer System Engineering
Diponegoro University SemarangJL. Prof.Sudharto, SH – Tembalang Semarang
Jawa Tengah
end; //akhir loop}{ untuk indeks perulangan sebanyak max kali,program akan menampilkan setiap nilai yangtersimpan dalam array nilai }end;until pilih=0;end.
Gambar 4.4 Source code program queue
Penjelasan program : saat program dijalankan maka akan ada beberapa opsi
yang dapat kita pilih. Opsi push digunakan untuk memasukkan data yang
akan disimpan. Opsi pop digunakan untuk mengambil data yang telah
disimpan, karena disini kita menggunakan program queue maka data yang
diambil pertama adalah data yang pertama masuk. Misalnya kita masukkan
urutan angka 1,2,3,4,5 maka angka yang pertama keluar adalah angka 1,
kemudian 2, dst.
4.3.5. Program Stack
MOBILE SYSTEM & SOFTWARE LABORATORYComputer System Engineering
Diponegoro University SemarangJL. Prof.Sudharto, SH – Tembalang Semarang
Jawa Tengah
Fungsi program inihampir sama dengan queue, namun untuk pe-
nambahan dan pengambilan data hanya dilakukan di satu sisi yang disebut top
( puncak ). Dengan kata lain apabila dilakukan penambahan pada satu ujung,
maka pengambilan juga dilakukan pada ujng yang sama, sesuai prinsip LIFO (
Last In First Out ).
program stack; //judul program
{$APPTYPE CONSOLE} //tipe aplikasi
Uses //memilih deklarasi programSysUtils; //library yang digunakanconst max = 5; //deklarasi konstantatype Tumpukan=array[1..10] of char;{pendeklarasian tipe baru array sebagai Tumpukanyang akan digunakan sebagai penyimpan masukandengan tipe nilai char, agarbaik angka maupun karakter dapat tersimpan}type tumpuk=record //deklarasi tipenilai : Tumpukan;depan : integer;belakang : integer;isi : 0..max;end;varantrian : tumpuk; //deklarasi variabelprocedure PUSH(var antrian : tumpuk; x: char); //prosedur push{antrian sebagai record untuk setiap masukan yangtersimpan dan x sebagai variabel penyimpansementara nilai masukan}Begin //pengkondisian fungsi jika jumlah maksimalif antrian.isi=max thenwrite('antrian penuh')elsebegin //pengkondisian fungsi untuk memasukan nilai array dan mengatur posisi masukanif antrian.belakang=max thenantrian.belakang:=maxelseantrian.belakang:=antrian.isi+1;antrian.nilai[antrian.belakang]:=x;antrian.isi:=antrian.isi+1;end;end;procedure POP(var antrian : tumpuk; x: char);begin
MOBILE SYSTEM & SOFTWARE LABORATORYComputer System Engineering
Diponegoro University SemarangJL. Prof.Sudharto, SH – Tembalang Semarang
Jawa Tengah
if antrian.isi=0 thenwrite('antrian kosong')elsebeginantrian.belakang:=antrian.isi;x:=antrian.nilai[antrian.belakang];antrian.nilai[antrian.belakang]:=' ';antrian.isi:=antrian.isi-1;end;end; //pengkondisian fungsi untuk memasukan nilai array dan mengatur posisi masukanvar i, pilih : integer;x: char;beginrepeatwriteln;writeln('1. Push');writeln('2. Pop');writeln('0. Keluar');Writeln('masukan nilai pilihan anda :');readln(pilih);if pilih <>0 thencase pilih of1: beginwrite('nilai yang dimasukan : ');readln(x);PUSH(antrian,x);for i :=1 to max dowrite(antrian.nilai[i],'');writeln;end;2: beginx:=' ';POP(antrian,x);writeln('data keluaran = ', x);for i:=1 to max dowrite(antrian.nilai[i],' ');writeln;end;end;until pilih = 0;end.
MOBILE SYSTEM & SOFTWARE LABORATORYComputer System Engineering
Diponegoro University SemarangJL. Prof.Sudharto, SH – Tembalang Semarang
Jawa Tengah
Gambar 4.5 Screenshot program stack
Penjelasan program : saat program dijalankan maka akan ada beberapa opsi yang
dapat kita pilih. Opsi push digunakan untuk memasukkan data yang akan
disimpan. Opsi pop digunakan untuk mengambil data yang telah disimpan, karena
disini kita menggunakan program stack maka data yang diambil pertama adalah
data yang terakhir masuk. Misalnya kita masukkan urutan angka 1,2 maka angka
yang pertama keluar adalah angka 2, kemudian angka 1.
4.4 Tugas
4.4.1 Program Menghitung Nilai Rata – Rata dengan Array
Fungsi program ini untuk menghitung nilai rata-rata dengan array dari
sejumlah nilai yang dimasukkan. Saat menghitung nilai rata-rata, terlebih
dahulu kita menuliskan banyak data yang akan dihitung rata-ratanya kemudian
MOBILE SYSTEM & SOFTWARE LABORATORYComputer System Engineering
Diponegoro University SemarangJL. Prof.Sudharto, SH – Tembalang Semarang
Jawa Tengah
masukkan nilai-nilai yang akan dihitung. Contoh program dan source code se-
bagai berikut :
program ratarata; //judul program
{$APPTYPE CONSOLE} //tipe aplikasi
uses SysUtils; //library yang digunakan
var data : array [1..100] of integer; //deklarasi variabel array i, n, max,jum, min: integer; //deklarasi variabel integer rata : real; //deklarasi variable real x:char; //deklarasi variable char
begin //awal statement x:='Y'; while (x='Y') or (x='y') do //perulangan while do begin //awal statement write('Banyak data : '); //fungsi menampilkan “banyak data” readln(n); writeln(''); jum:=0; rata:=0;
for i:=1 to n do //perulangan for to dobegin //awal statementwrite('Data ',i,' : ');readln(data[i]);jum := jum + data[i]; //perumusan jumlahend; //akhir statementrata:= jum/n; //perumusan rata - ratafor i:=1 to n do //perulangan for to dobegin //awal programif data[i] > max then max := data[i]; //pengkondisian ifif data[i] < min then min := data[i]; //pengkondisian ifend;writeln('Jumlah : ',jum);writeln('Rata-Rata : ',rata:0:2); //penampil hasil rata - ratawriteln('');end;readln;end.
MOBILE SYSTEM & SOFTWARE LABORATORYComputer System Engineering
Diponegoro University SemarangJL. Prof.Sudharto, SH – Tembalang Semarang
Jawa Tengah
Gambar 4.6 Screenshot program nilai rata – rata dengan array
Penjelasan program : saat program dijalankan maka kita akan diminta untuk
memasukkan banyak data yang nantinya akan kita hitung rata-ratanya. Disini
kita memasukkan 4 nilai yang selanjutnya 4 nilai tersebut akan dijumlahkan
dan dihitung rata-ratanya.
4.4.2 Program Mencari Nilai Maksimal dengan Array
Fungsi program ini untuk mencari nilai maksimal dari sejumlah data
yang ada. Untuk mencarinya kita masukkan nilai yang akan kita cari nilai
maksimumnya, maka nilai yang dimasukkan pertama akan dideklarasikan
sebagai nilai maksimum nilai yang dimasukkan berikutnya akan dibandingkan
dengan nilai maksimum sebelumnya jika nilai ini lebih tinggi dari nilai
maksimum sebelumnya maka nilai ini akan dideklarasikan sebagai nilai
maksimum begitu seterusnya sampai nilai terakhir yang dimasukkan maka
output atau hasilnya akan keluar. Contoh program dan source code sebagai
berikut :
MOBILE SYSTEM & SOFTWARE LABORATORYComputer System Engineering
Diponegoro University SemarangJL. Prof.Sudharto, SH – Tembalang Semarang
Jawa Tengah
program nilai_max; //judul program
{$APPTYPE CONSOLE} //tipe program
uses
SysUtils; //library yang digunakan
var
bil:array[1..100] of integer; //deklarasi array
maks,I,n :integer; //deklarasi variable integer
begin
write(' Ada Berapa Bilangan = ');
readln(n); //input
for i:= 1 to n do //perulangan for to do
begin //awal statement
write(' Bilangan ke ',i,' = ');readln(bil[i]); //input bilangan
end;
maks:=bil[1]; //perumusan nilai maks
for i:= 2 to n do //perulangan for to do
if bil[i] > maks then //pengkondisian if nilai maks
maks:=bil[i]; //perumusan nilai maks
writeln(' Bilangan Terbesar Adalah = ',maks); //menampilkan hasil
//nilai maks
readln;
end.
MOBILE SYSTEM & SOFTWARE LABORATORYComputer System Engineering
Diponegoro University SemarangJL. Prof.Sudharto, SH – Tembalang Semarang
Jawa Tengah
Gambar 4.7 Screenshot program mencari nilai maks dengan array
Penjelasan program : saat program dijalankan kita diminta untuk memasukkan
beberapa bilangan sesuai keinginan kita. Disini kita memasukkan angka 4 yang
berarti kita akan menghitung 4 bilangan yang nantinya akan dicari angka yang
paling besar.
MOBILE SYSTEM & SOFTWARE LABORATORYComputer System Engineering
Diponegoro University SemarangJL. Prof.Sudharto, SH – Tembalang Semarang
Jawa Tengah
4.5 Kesimpulan
1. Array adalah sebuah variabel yang dapat menyimpan lebih dari satu nilai
sejenis (memiliki tipe sama). Setiap nilai yang tersimpan dalam array
disebut elemen array, sedangkan nilai urut yang digunakan untuk
mengakses array disebut indeks array.
2. Record merupakan tipe data yang tersusun atas beberapa variabel yang
berbeda (atau sama) tipe datanya. Variabel-variabel yang terdapat di dalam
suatu record biasa dikenal dengan istilah “field” atau “member” (anggota
dari record).
3. Queue merupakan salah satu cara untuk menambahkan data dengan
metode FIFO (First In First Out). Contoh aplikasi dalam kehidupan sehari-
hari yaitu antrian tiket.
4. Stack merupakan salah satu cara untuk menambahkan data dengan metode
LIFO (Last In First Out). Contoh aplikasi dalam kehidupan sehari-hari
yaitu tumpukan piring.
5. Array, record, queue, dan stack merupakan dasar yang harus dikuasai un-
tuk membuat program yang lebih kompleks.