laporan delphi 2 kelompok 46

31
MOBILE SYSTEM & SOFTWARE LABORATORY Computer System Engineering Diponegoro University Semarang JL. 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.

Upload: edo-akito-firmansyah

Post on 12-Feb-2015

227 views

Category:

Documents


6 download

DESCRIPTION

laporan delphi

TRANSCRIPT

Page 1: Laporan Delphi 2 Kelompok 46

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.

Page 2: Laporan Delphi 2 Kelompok 46

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

Page 3: Laporan Delphi 2 Kelompok 46

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.

Page 4: Laporan Delphi 2 Kelompok 46

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;

Page 5: Laporan Delphi 2 Kelompok 46

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;

Page 6: Laporan Delphi 2 Kelompok 46

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;

Page 7: Laporan Delphi 2 Kelompok 46

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 ;

Page 8: Laporan Delphi 2 Kelompok 46

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

Page 9: Laporan Delphi 2 Kelompok 46

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.

Page 10: Laporan Delphi 2 Kelompok 46

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.

Page 11: Laporan Delphi 2 Kelompok 46

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

Page 12: Laporan Delphi 2 Kelompok 46

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

Page 13: Laporan Delphi 2 Kelompok 46

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;

Page 14: Laporan Delphi 2 Kelompok 46

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

Page 15: Laporan Delphi 2 Kelompok 46

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

Page 16: Laporan Delphi 2 Kelompok 46

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;

Page 17: Laporan Delphi 2 Kelompok 46

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

Page 18: Laporan Delphi 2 Kelompok 46

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

Page 19: Laporan Delphi 2 Kelompok 46

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.

Page 20: Laporan Delphi 2 Kelompok 46

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

Page 21: Laporan Delphi 2 Kelompok 46

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.

Page 22: Laporan Delphi 2 Kelompok 46

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 :

Page 23: Laporan Delphi 2 Kelompok 46

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.

Page 24: Laporan Delphi 2 Kelompok 46

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.

Page 25: Laporan Delphi 2 Kelompok 46

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.