Anda di halaman 1dari 94

MODUL PRAKTIKUM

ALGORITMA DAN PEMROGRAMAN

TURBO PASCAL
Modul 1 s/d Modul 16
BORLAND DELPHI
Modul 1 s/d Modul 5

Dosen :
- Armijon., ST., MT

Diploma III
Survey dan Pemetaan (Geodesi)
Fakultas Teknik
Universitas Lampung
2011

MATERI PRAKTIKUM PEMROGRAMAN KOMPUTER - TURBO PASCAL


MODUL - 1
(Memakai konstanta, Pernyataan masukkan, Variabel string,
MODUL 2
(
Fungsi Fungsi Trigono Metrik
fungsi karakter)

Fungsi-fungsi )

, Operator, Fungsi-Fungsi Numerik, Fungsi-

MODUL 3
(Fungsi Fungsi String, Struktur, Operator Relasi)
MODUL - 4
(Memakai IF Majemuk)
MODUL - 5
(Struktur Case dan variasinya)
MODUL - 6
(Pengulangan FOR DO dan

Pengulangan FOR DO Majemuk

MODUL - 7
(
Struktur Pengulangan WHILE-DO dan REPEAT- UNTIL

MODUL - 8
(Repeat-Until untuk Iterasi dan Validasi data)
MODUL - 9
(Array dan pembuatan tabel serta pengurutan data)
MODUL - 10
(Penggunaan Array untuk pencacahan majemuk dan pendefinisian type data)
MODUL - 11
(Procedure sebagai sub program, Memanggil procedure dari program utama
atau procedure lain)
MODUL - 12
(Deklarasi Global dan Deklarasi Lokal)
MODUL - 13
(Pemakaian Parameter pada Procedure)
MODUL - 14
(Parameter nilai dan Parameter Variabel)
MODUL - 15
(Function, pendefinisian function, pemanggilan function sebagai operan
dalam ekspresiaritmatik)
MODUL - 16
(Membuat menu sederhana, menu memasukkan data, menu mengkoreksi
data, dan menu menampilkan data)

MATERI PRAKTIKUM PEMROGRAMAN KOMPUTER - BORLAND DELPHI

MODUL - 1
Pengenalan Borland Delphi

MODUL 2
Dasar Pemrograman Dengan Borland Delphi

MODUL 3
Aplikasi Pemilihan

MODUL 4
Pengulangan dan Subrutin

MODUL 5
Tahap Pembuatan File Instalasi

Kerangka Laporan Praktikum


I. Pendahuluan
II. Maksud
III. Tujuan
IV. Landasan Teori
V. Pelaksanaan Praktikum
VI. Hasil Praktikum
VII. Jawaban Soal-soal Tugas
VIII. Kesimpulan
IX. Daftar Pustaka

Catatan:
Laporan Praktikum diserahkan Pada Saat Praktikum Selanjutnya
Laporan Di Tulis Tangan Diatas Kertas HVS A4

TURBO
PASCAL

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

MODUL - 1
(Unsur Unsur Program, Memakai konstanta, Pernyataan masukkan, Variabel
string,Fungsi-fungsi)
1.1. Unsur Unsur Program
- Nama Program
...........
- Kata Simpan dan Identifier
...............
- Variabel
...............
- Ekspresi Aritmatik
..................
- Format Bilangan
..................
- Komentar
1.2 Konstanta
Konstanta adalah suatu harga yang tidak dapat berubah. Konstanta sering dipakai dalam
rumus-rumus fisika dan matematika.
Contoh pemakaian contanta dapat dilihat pada kasus program Hukum Kekekalan Energi
Einstein.
E mc2
Konstanta yang dipakai adalah c = 3 x 10 8 m/det
{Contoh 1.1: Memaka konstanta}
program Welcome;
uses WinCrt;
const c = 300000000;
var E,m:real;
begin
m:=1;
E:=m*c*c;
writeln('Energi yang terkandung di dalam ',m:6:3,
' kg benda adalah ',E:10,' Joule');
end.
c adalah konstanta sehingga kita tidak boleh memakainya sebagai nama variabel dan juga
tidak boleh melakukan pengisian.
Turbo pascal telah menyediakan fungsi-fungsi dan prosedur -prosedur dasar. Fungsi dan
prosedur sejenis disimpan di dalam sebuah unit, atau biasanya disebut library. Sehingga
untuk dapat menggunakan fungsi-fungsi dan prosedur-prosedur dasar pada turbo pascal kita
harus menyatakan pemakaian unit CRT untuk turbo pascal versi Dosdan WINCRT untuk
turbo pasacal versi Windows . Pernyataan pemakaian unit uses crt
atau uses
wincrt harus diletakkan tepat setelah nama program.

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

1.3. Pernyataan Masukkan


Jika Contoh 1.1 di beri variasi dengan pertanyan masukkan nilai terhadap masa benda maka
perubahan program sebagai berikut.
{Contoh 1.2: Memaka konstanta dan pernyataan masukkan}
program Welcome;
uses WinCrt;
const c = 300000000;
var E,m:real;
begin
write('Masukkan Massa Benda (kg) : ); Readln(m);
E:=m*c*c;
writeln('Energi yang terkandung di dalam ',m:6:3,
' kg benda adalah ',E:10,' Joule');
end.
1.4 Variabel String
Variabel string deklarasinya adalah:
var
Nama : string[25];
Artinya variabel nama bertipe string dengan panjang maksimum 25 karakter. Jika kita
mendeklarasikan
var
Nama : string;
Berarti variabel nama bertipe string dengan panjang maksimum 255 karakter.
1.5. Fungsi
Beberapa fungsi telah disediakan oleh turbo pascal, seperti :
Pi = ( ) = 22/7 = 3,14...
SQR = Fungsi kuadrat
SQRT = Fungsi akar kuadrat
EXP = Pemangkatan dengan bilangan dasar e
LN = menghasilkan bilangan logaritma dengan bilangan dasar e.
Penerapan Fungsi dapat di lihat pada contoh penghitungan keliling dan luas lingkaran
Luas Lingkaran

Jari

AR@2011

* r2

Jari Lingkaran

Keliling Lingkaran

2*

*r

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

{Contoh 1.3: Memakai Fungsi}


Program Lingkaran;
Uses WinCrt;
Var r,L,K : real;
Begin
Clrscr;
Write('Masukkan Jari-Jari Lingkaran (cm) = ') ;
Readln(r);
L := pi * sqr(r);
K := 2 *pi * r;
Writeln;
Writeln('Luas Lingkaran = ',L: 10:2,cm2);
Writeln('Keliling Lingkaran = ',K: 10:2,cm);
End.
Penerapan Fungsi Lainnya dapat di lihat juga pada contoh penerapan rumus pitagoras.
Rumus Segitiga
c2

a2

b2

Masukkan : a dan b
Keluaran : Panjang sisi miring (c)
Fungsi : Menggunakan fungsi SQR dan SQRT

{Contoh 1.4}
Program Pitagoras;
Uses WinCrt;
Var a,b,c : real;
Begin
Clrscr;
Write('Sisi a = ') ; Readln(a);
Write('Sisi b = ') ; Readln(b);
C:=SQRT(sqr(a)+SQR(b));
Writeln;
Writeln('Panjang sis c adalah = ',c:8:2);
End.

AR@2011

a
b

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

MODUL 2
(Fungsi Fungsi Trigonometri, Operator, Fungsi-Fungsi Numerik, Fungsi-fungsi
karakter)
Contoh pemakaian fungsi trigono metri dapat dilihat pada kasus penghitungan tingi menara.

Sudut Vertikal
Pengamat ke
Menara = s

Jarak dari pengamat ke menara = D


Tinggi Menara adalah: h = D * tan (S)
Masukkan : jarak pengamat ke kaki menara dan sudut vertikal pengamat ke puncak
menaradalam satuan derajat
Keluaran : Tinggi menara
Petunjuk : tan (x) = sin (x) / cos (x)
radian = 180 derajat
{Contoh 5}
Program Menara;
Uses WinCrt;
Var jarak,h,s: real;
Begin
Clrscr;
Write('Jarak Pengamat ke kaki menara [D] = ') ;
Readln(jarak);
Write('Sudut vertikal [s] (dalam derajat) = ') ;
Readln(s);
S := s * pi / 180;
H := jarak * (sin (s) / cos (s));
Writeln;
Writeln('Tinggi menara adalah [h] = ',h:6:2);
End.

AR@2011

Tinggi
Menara
=h

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

MODUL 3
(Fungsi Fungsi String, Struktur, Operator Relasi)
Contoh Penggunaan Stuktur dapat dilihat pada contoh dibawah:
Sebuah pasar swalayan akan memberikan discount sebesar 10% jika pembelian lebih besar
dari Rp 50.000,-.
{Contoh 6}
Program Discount_1;
Uses WinCrt;
Var jumlah,disc,bayar: real;
Begin
Clrscr;
Write('Jumlah Pembelian = Rp ') ; Readln(jumlah);
Disc :=0;
If jumlah > 50000 then Disc := jumlah *0.1;
Bayar := jumlah - Disc;
Writeln;
Writeln('Jumlah Pembelian = Rp ',jumlah:10:2);
Writeln('Jumlah Discount = Rp ',Disc:10:2);
Writeln('============================================');
Writeln('Jumlah Pembayaran = Rp ',Bayar:10:2);
End.
Contoh Selanjutnya sama dengan kasus contoh 6 namun discount diberikan pada jumlah
kelebihan dari Rp 50.000,- (jika belanja 60.000 maka discount hanya diberikan pada
kelebihan 10.000 sehingga pembayaran hanya 59.000)
{Contoh 7}
Program Discount_2;
Uses WinCrt;
Var jumlah,disc,bayar: real;
Begin
Clrscr;
Write('Jumlah Pembelian = Rp ') ; Readln(jumlah);
Disc :=0;
If jumlah > 50000 then Disc := (jumlah-50000) *0.1
else disc := 0;
Bayar := jumlah - Disc;
Writeln;
Writeln('Jumlah Pembelian = Rp ',jumlah:10:2);
Writeln('Jumlah Discount = Rp ',Disc:10:2);
Writeln('============================================');
Writeln('Jumlah Pembayaran = Rp ',Bayar:10:2);
End.
TUGAS: Susun dan Kerjakan Laporan Praktikum.
Jawab soal berikut di lembar laporan praktikum.

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

Jelaskan hal dibawah beserta contoh dengan kasus sederhana (jika diperlukan jelaskan dengan
contoh program) untuk penerapannya;
- Operator MOD dan DIV
- Fungsi ARCTAN, TRUNC, FRANCH, ROUND, ORD, CHR, UPCASE, LENGTH,
COPY, POS
- Prosedur VAL dan STR
Contoh Penyelesaian: fungsi Phi ( ) =
Jawab:
fungsi pi {Phi ( )} adalah fungsi yang sudah disediakan oleh Pascal. Nilai phi adalah
3.14159.. atau

22
7

Contoh penggunaan pi adalah pada kasus perhitungan keliling dan luas lingkaran
Luas Lingkaran

* r2

Keliling Lingkaran

2*

r Jari Jari Lingkaran


{Contoh Memakai Fungsi pi}
Program Lingkaran;
Uses WinCrt;
Var r,L,K : real;
Begin
Clrscr;
Write('Masukkan Jari-Jari Lingkaran (cm) = ') ; Readln(r);
L := pi * sqr(r);
K := 2 *pi * r;
Writeln;
Writeln('Luas Lingkaran
= ',L: 10:2,cm2);
Writeln('Keliling Lingkaran = ',K: 10:2,cm);
End.

AR@2011

*r

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

MODUL - 4
(Memakai IF Majemuk)
Contoh pemakaian IF majemuk dapat dilihat pada kasus program Garmen.
Sebuah pabrik garmen memproduksi 3 jenis ukuran jaket yaitu S, M, dan L. Harga satuan adalah
S = Rp 6500
M = Rp 7100
L = Rp 7400
Selesaikan masalah tersebut dengan
a. Menggunakan Struktur IF THEN Biasa
b. Menggunakan Struktur IF THEN ELSE Majemuk
{Contoh 1: Memaka if then biasa}
Program Garmen;
Uses WinCrt;
Var ukuran : char;
Banyak : integer;
Harga, jumlah : real;
Begin
Write('ukuran jaket ( S / M / L ) : '); readln(ukuran);
Write('banyak jaket : '); readln(banyak);
If upcase(ukuran) = 'S' then harga := 6500;
If upcase(ukuran) = 'M' then harga := 7100;
If upcase(ukuran) = 'L' then harga := 7400;
Jumlah := banyak * harga;
Writeln; writeln;
Writeln('jumlah yang harus dibayar = Rp ',jumlah:8:0);
end.
{Contoh 2: Memaka if then else majemuk}
Program Garmen;
Uses WinCrt;
Var ukuran : char;
Banyak : integer;
Harga, jumlah : real;
Begin
Write('ukuran jaket ( S / M / L ) : '); readln(ukuran);
Write('banyak jaket : '); readln(banyak);
If upcase(ukuran) = 'S'
then harga := 6500
else If upcase(ukuran) = 'M'
then harga := 7100
else harga := 7400;
Jumlah := banyak * harga;
Writeln; writeln;
Writeln('jumlah yang harus dibayar = Rp ',jumlah:8:0);
end.
AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

MODUL - 5
(Struktur Case dan variasinya)
Sama Seperti Contoh 1 pada module 4, ubah program tersebut dengan menggunakan struktur case
{Contoh 3a: Memaka Case}
Program Garmen;
Uses WinCrt;
Var ukuran : char;
Banyak : integer;
Harga, jumlah : real;
Begin
Write('ukuran jaket ( S / M / L ) : '); readln(ukuran);
Write('banyak jaket : '); readln(banyak);
case ukuran of
'S' : harga := 6500;
'M' : harga := 7100;
'L' : harga := 7400;
end;
Jumlah := banyak * harga;
Writeln; writeln;
Writeln('jumlah yang harus dibayar = Rp ',jumlah:8:0);
end.
PERHATIKAN
1. Jika memasukan ukuran selain S M L Tidak satupun memenihi sehingga harga sembarang
2. Jika Kita memasukan dengan huruf kecil maka harga tetap Nol.
PENYELESAIAN
{Contoh 3b: Memaka Case}
Program Garmen;
Uses WinCrt;
Var ukuran : char;
Banyak : integer;
Harga, jumlah : real;
Begin
Write('ukuran jaket ( S / M / L ) : '); readln(ukuran);
Write('banyak jaket : '); readln(banyak);
case ukuran of
'S' : harga := 6500;
'M' : harga := 7100;
else harga := 7400;
end;
Jumlah := banyak * harga;
Writeln; writeln;
Writeln('jumlah yang harus dibayar = Rp ',jumlah:8:0);
end.
AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

{Contoh 3c: Memaka Case }


Program Garmen;
Uses WinCrt;
Var ukuran : char;
Banyak : integer;
Harga, jumlah : real;
Begin
Write('ukuran jaket ( S / M / L ) : '); readln(ukuran);
Write('banyak jaket : '); readln(banyak);
Case upcase(ukuran) of
'S' : harga := 6500;
'M' : harga := 7100;
else harga := 7400;
end;
Jumlah := banyak * harga;
Writeln; writeln;
Writeln('jumlah yang harus dibayar = Rp ',jumlah:8:0);
end.
Catatan:
Case of dapat juga menggunakan beberapa konstanta dan dapat di campur dengan struktur lainya
Contoh 1
Contoh 2
Case nomor of
1,2 : harga := 5000
.
.
End;
Contoh 4
Case of
: begin

End;
: begin

Case of
:
:
End;
End;
: if
then
else
End;

AR@2011

Contoh 3
Case nomor of
1..5, 7,11 : harga := 5000
.
.
End;

Case nomor of
1..5 : harga := 5000
.
.
End;

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

MODUL - 6
(Pengulangan FOR DO dan Pengulangan FOR DO Majemuk )

Contoh pemakaian Pengulangan FOR DO dapat dilihat pada kasus progr am faktorial.
Bilangan Faktorial didefinisikan sebagai berikut:
n! = n * (n -1) * ( n 2) ... * 2 * 1
Buat Program untuk menghitung sebuah bilangan faktorial bulat positif.
Masukkan : bilangan bulat positif
Keluaran : faktorial
Petunjuk: n! = n * (n -1) * ( n 2) ... * 2 * 1
Atau dgn hukum komutatif dapat ditulis
n! = 1 * 2 * ... * ( n 2) * (n -1) * n
Harga awal f aktorial adalah 1 karena unsur identitas perkalian adalah 1.

{Contoh 4: Memaka FOR DO}


Program BilanganFaktorial;
Uses WinCrt;
Var i , n , Fac : integer;
Begin
Writeln('PROGRAM BILANGAN FAKTORIAL');
Writeln('===============================');
Write(' Masukan bilangan yang akan difaktorialkan (n!) : '); readln(n);
Fac := 1;
For i := 1 to n do
Fac := fac * i;
Writeln; writeln;
Writeln('Factorial = ',Fac);
end.
Contoh pemakaian Pengulangan FOR DO majemuk dapat dilihat pada kasus dibawah.
Buatlah Progr am untuk menampilkan hasil cetakkan pada layar sebagai berikut:
(a) 123456789
dan
(b) 987654321
dan
(c) 1
2
3
4
5
AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

{Contoh 5a: Memaka FOR DO }


Program Menampilkan_Angka;
Uses WinCrt;
Var i : integer;
Begin

HASIL: 123456789

For i := 1 to 9 do
Write(i);
End.

{Contoh 5b: Memaka FOR DO }


Program Menampilkan_Angka;
Uses WinCrt;
Var i : integer;
Begin

HASIL: 987654321

For i := 9 downto 1 do
Write(i);
End.

{Contoh 5c: Memaka FOR DO }


Program Menampilkan_Angka;
Uses WinCrt;
Var i : integer;
Begin

HASIL: 1
2
3
4
5

For i := 1 to 5 do
Writeln(i);
End.

Buatlah Progr am untuk menampilkan hasil cetakkan pada layar sebagai berikut:
*****
*****
*****
{Contoh 6a: Memaka FOR DO }
Program FOR_Majemuk;
Uses WinCrt;
Var i : integer;
Begin
For i := 1 to 5 do
Write('*');
End.
AR@2011

HASIL: *****

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

{Contoh 6b: Memaka FOR DO}


Program FOR_Majemuk;
Uses WinCrt;
Var I , j : integer;
Begin

HASIL: ***************

For i := 1 to 3 do
For j := 1 to 5 do
Write('*');
End.
{Contoh 6c: Memaka FOR DO}
Program FOR_Majemuk;
Uses WinCrt;
Var i , j : integer;
Begin
For i := 1 to 3 do
begin
For j := 1 to 5 do

HASIL: *****
*****
*****

Write('*');
Writeln;
End;
End.
Ubahlah Program tersebut diatas untuk menampilkan hasil cetakkan pada layar sebagai berikut:
(a) *
(b) *****
**
****
***
***
****
**
*****
*
TUGAS: Susun dan Kerjakan Laporan Praktikum.
Jawab soal berikut di lembar laporan praktikum.
SOAL:Selesaikan kasus dibawah dengan bahasa program serta Jelaskan langkah-langkah
Prosesnya:
**
***
****
*****
****
**
*
AR@2011

***

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

MODUL - 7
(Struktur Pengulangan WHILE-DO dan REPEAT- UNTIL)
Struktur WHILE-DO menyatakan bahwa pengulangan akan dilakukan terus selama syarat
terpenuhi.
Struktur REPEAT-UNTIL menyatakan bahwa pengulangan akan dilakukan sampai syarat tertentu
Jadi: Syarat di dalam WHILE-DO menyatakan syarat dilakukan pengulangan sedangakan syarat di
dalam REPEAT-UNTIL menyatakan syarat berhentinya pengulangan.
Perbedaan mendasar antara FOR-DO dengan WHILE-DO dan REPEAT-UNTIL adalah
pengulangan FOR-DO akan berhenti jika pengulangan sudah dilakukan sekian kali.
Didalan struktur REPEAT-UNTIL pernyataan minimal dilakukan sekali sedangkan pada struktur
WHILE-DO mungkin tidak dikerjakan sama sekali karena syarat tidak terpenuhi pada awal
pengulangan.
Penewapan WHILE-DO dan REPEAT-UNTIL dapat dilihat pada contoh program Menayakan
Mahasiswa dibawah.
Buat program yang akan menanyakan nama-nama mahasiswa yang hadir.
Karena tidak tahu banyaknya mahasiswa yang hadir maka kita tidak bisa menggunakan FOR-DO.
Karena program akan terus menanyakan mahasiswa yang hadir dan berhenti jika nama mahasiwa
yang hadir di isikan dengan 0 (nol)
{Contoh 7.1: Memaka WHILE-DO}
Program TanyaMahasiswa;
Uses WinCrt;
Var nama : string[25];
Begin
Write('Nama Mahasiswa (isikan 0 {nol} jika Selesai ) : ');
readln(nama);
While (nama) <> '0' do
Begin
Write('Nama Mahasiswa (isikan 0 {nol} jika Selesai ) : ');
readln(nama);
end;
writeln('SELESAI');
end.
Ubah program tersebut dengan REPEAT-UNTIL
{Contoh 7.2: Memaka REPEAT-UNTIL}
Program TanyaMahasiswa;
Uses WinCrt;
Var nama : string[25];
Begin
repeat
Write('Nama Mahasiswa (isikan 0 {nol} jika Selesai ) : ');
AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

readln(nama);
Until (nama) = '0';
writeln('SELESAI');
end.

Tambahkan dalam program untuk menayakan Nilai.


Jika nama di isikan dengan 0 (nol), maka program berhenti tanpa menanyakan nilai.
{Contoh 7.3: Memaka WHILE-DO}
Program TanyaMahasiswa;
Uses WinCrt;
Var nama : string[25];
Nilai: real;
Begin
Write('Nama Mahasiswa (isikan 0 {nol} jika Selesai ) : ');
readln(nama);
While (nama) <> '0' do
Begin
Write('Nilai Ujian (0 - 100): ');
readln(nilai);
Write('Nama Mahasiswa (isikan 0 {nol} jika Selesai ) : ');
readln(nama);
end;
writeln('SELESAI');
end.
PERHATIKAN!
Untuk masalah pada kasus diatas hanya bisa diselesaikan dengan WHILE-DO. Karena jika
menggunakan pengulangan REPEAT-UNTIL maka akan terjadi kegagalan. Perhatikan contoh
dibawah dengan menggunakan REPEAT-UNTIL pada kasus diatas.
{Contoh 7.4: Memaka REPEAT-UNTIL}
Program TanyaMahasiswa;
Uses WinCrt;
Var nama : string[25];
nilai: real;
Begin
repeat
Write('Nama Mahasiswa (isikan 0 {nol} jika Selesai ) : ');
readln(nama);
Write('Nilai Ujian (0 - 100) : ');
readln(nilai);
Until (nama) = '0';
writeln('SELESAI');
end.
Perhatikan kegagalan apa yang terjadi.
Jika kita isikan nama 0 (nol) maka program tidak akan langsung berhenti tetapi tetap menanyakan
nilai setelah itu baru berhenti. Sehingga penggunaan WHILE-DO adalah solusi yang tepat.

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

PELAJARI CONTOH SOAL DIBAWAH INI DIRUMAH


Lakukan modifikasi Program Tanya Mahasiswa diatas ( Contoh 7.4) , untuk menghasilkan dan
menapilkan nilai Rata-Rata.
Perhatikan Penggunaan Counter pada BanyakMahasiswa.
{Contoh 7.5: Memakai WHILE-DO untuk niali rata-rata}
Program TanyaMahasiswa;
Uses WinCrt;
Var nama : string[25];
Nilai, JumlahNilai,rata: real;
BanyakMahasiswa : byte;
Begin
{inisiasi}
BanyakMahasiswa := 0;
JumlahNilai := 0;
Write('Nama Mahasiswa (isikan 0 {nol} jika Selesai ) : ');
readln(nama);
While (nama) <> '0' do
Begin
Write('Nilai Ujian (0 - 100): ');
readln(nilai);
BanyakMahasiswa := BanyakMahasiswa + 1;
JumlahNilai := JumlahNilai + Nilai;
Writeln;
Write('Nama Mahasiswa (isikan 0 {nol} jika Selesai ) : ');
readln(nama);
end;
Writeln;
Rata := JumlahNilai / BanyakMahasiswa;
Writeln('Nilai Rata - Rata : ',rata:6:2);
end.

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

NILAI MAKSIMUM DAN MINIMUM


Kasus B
Lakukan modifikasi Program Tanya Mahasiswa diatas , untuk menghasilkan dan menapilkan nilai
maksimum.
{Contoh 7.6: Mencari nilai maksimum}
Program TanyaMahasiswa;
Uses WinCrt;
Var nama : string[25];
Nilai, JumlahNilai,rata: real;
BanyakMahasiswa : byte;
NilaiMaksimum : real;
Begin
BanyakMahasiswa := 0;
JumlahNilai := 0;
NilaiMaksimum := -999;
Write('Nama Mahasiswa (isikan 0 {nol} jika Selesai ) : ');
readln(nama);
While (nama) <> '0' do
Begin
Write('Nilai Ujian (0 - 100): ');
readln(nilai);
BanyakMahasiswa := BanyakMahasiswa + 1;
JumlahNilai := JumlahNilai + Nilai;
{mencari nilai Maksimum}
If Nilai > Nilaimaksimum
Then NilaiMaksimum := Nilai;
Writeln;
Write('Nama Mahasiswa (isikan 0 {nol} jika Selesai ) : ');
readln(nama);
end;
Writeln;
Rata := JumlahNilai / BanyakMahasiswa;
Writeln('Nilai Rata - Rata : ',rata:6:2);
Writeln('nilai Maksimum : ',NilaiMaksimum:6:2);
end.

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

Kasus C
Lakukan modifikasi Program Tanya Mahasiswa diatas, untuk menghasilkan dan menapilkan siswa
yang memperoleh nilai maksimum.
{Contoh 7.7: Mencari nilai maksimum dan minimum}
Program TanyaMahasiswa;
Uses WinCrt;
Var nama, NamaMaksimum : string[25];
Nilai, JumlahNilai,rata: real;
BanyakMahasiswa : byte;
NilaiMaksimum : real;
Begin
BanyakMahasiswa := 0;
JumlahNilai := 0;
NilaiMaksimum := -999;
NamaMaksimum := '';
Write('Nama Mahasiswa (isikan 0 {nol} jika Selesai ) : ');
readln(nama);
While (nama) <> '0' do
Begin
Write('Nilai Ujian (0 - 100): ');
readln(nilai);
BanyakMahasiswa := BanyakMahasiswa + 1;
JumlahNilai := JumlahNilai + Nilai;
{mencari nilai dan Nama Maksimum}
If Nilai > Nilaimaksimum
Then
begin
NilaiMaksimum := Nilai;
NamaMaksimum := Nama;
end;
Writeln;
Write('Nama Mahasiswa (isikan 0 {nol} jika Selesai ) : ');
readln(nama);
end;
writeln;
Rata := JumlahNilai / BanyakMahasiswa;
Writeln('Nilai Rata - Rata : ',rata:6:2);
Writeln('nilai Maksimum : ',NilaiMaksimum:6:2);
Writeln('----------------------------------------');
Writeln('Nama Mahasiswa Juara 1 : ',NamaMaksimum);
end.
Kasus D
TUGAS
Lakukan Modifikasi untuk kasus Program mahasiswa sehingga dihasilkan dan ditampilkan:
1. Nilai rata rata
2. Nilai minimum
3. Nilai terendah
4. Nama Mahasiswa dengan nilai tertinggi (tampilkan nilai dan nama mahasiswa tersebut)
5. Nama Mahasiswa dengan nilai terendah (tampilkan nilai dan nama mahasiswa tersebut)

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

MODUL - 8

(Repeat-Until untuk Iterasi dan Validasi data)


Repeat-Until untuk Iterasi
Iterasi adalah cara untuk menghitung besaran yang sudah ditentukan besaran awalnya, dengan
menggunakan pendekatan, dan kemudian sisanya ditung berulang-ulang sehingga memenuhi syarat
tertentu.
Contoh penggunaan iterasi adalah pada perhitungan deret euler dibawah.
Rumus:
ex

x2
2!

x3
3!

x4
4!

...

Masukan: harga x
Keluaran: Hasil perhitungan deret euler
Petunjuk: pergunakan pengulangan repeat until untuk iterasi sampai mencapai ketelitian 0,000005
Contoh 8.1
Program DeretEuler;
Uses WinCrt;
Var x, Xpangkat, Hasil, Suku, Fac : real ;
i, j
: integer ;
begin
writeln;
Writeln('
x ') ;
Writeln('Program penghitungan e ') ;
Writeln('===================') ;
Write('masukkan harga x : ') ; readln(x);
Writeln;writeln;
Hasil := 1;
{mula-mula hasil pemangkatan adalah 1, suku pertama}
I := 0 ;
{counter yang menunjukan pangkat dari x dan factorial}
Xpangkat := 1 ;
Fac := 1 ;
Repeat
Inc(i);
{menghitung pangkat x}
XPAngkat := XPAngkat * x ;
{Menghitung Factorial}
Fac := Fac *i ;
Suku := Xpangkat / Fac ; {suku terakhir}
Hasil := hasil + suku ;
Until Suku < 0.000005 ;
Writeln;
Writeln('Hasil Akhir adalah : ',hasil :15 : 6 );
End.

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

Validasi Data
Terkadang kita memerlukan masukkan data dari sebuah program tidak menyingpang dari dari
ketentuan yang diberikan. Artinya data masukan tidak akan diproses jika data tidak valid. Contoh
program yang hanya menerima data yang sesuai dengan yang telah ditentukan adalah pada contoh
program 2.
Masukan: data masukkan dengan kisaran 0 samai 100
Keluaran: Petunjuk apakah data sudah benar (dalam kisaran yang di tetapkan);
Petunjuk: Tolak masukkan data yang berada di luar kisaran 1 ... 100
Contoh 8.2
Program ValidasiNilai;
Uses WinCrt;
Var nilai : Integer ;
Benar : boolean ;
Begin
Repeat
Write ('Masukkan nilai [0 sampai 100] : ') ; readln(nilai) ;
Benar := Nilai in [0..100] ;
If not (Benar)
Then Writeln('*** Nilai yang dimasukkan SALAH! ***');
Writeln;Writeln;
Until (benar) ;
End.

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

MODUL - 9
(Array dan pembuatan tabel serta pengurutan data)
Array dan pembuatan tabel
Array adalah variabel berindeks. Array berbeda dengan variabel sudah kita ketahui. Variabel hanya
mempunyai satu tempat,sedangkan array bisa mempunyai beberapa tempat tergantung Deklarasinya
Contoh 9.1
Program TanyaMahasiswa;
Uses WinCrt;
Var Nama
: array [1..25] of string[25] ;
Nilai : array [1..25] of real ;
JumlahNilai,rata : real;
i,BanyakMahasiswa : byte;
Begin
{Membaca data}
I := 1 ;
Write('Nama Mahasiswa (isikan 0 {nol} jika Selesai ) : ');
readln(nama[i]);
While nama[i] <> '0' do
Begin
Write('Nilai Ujian (0 - 100): ');
readln(nilai[i]);
inc(i);
{penambahan Indeks}
Write('Nama Mahasiswa (isikan 0 {nol} jika Selesai ) : ');
readln(nama[i]);
end;
BanyakMahasiswa := i - 1;
{Bagian menghitung nilai rata-rata}
JumlahNilai := 0 ;
For i := 1 to BanyakMahasiswa do
JumlahNilai := JumlahNilai + Nilai[i] ;
Rata := JumlahNilai / banyakMahasiswa ;
{Bagian CETAK}
{Bagian Judul}
Writeln(' DAFTAR NILAI UJIAN PASCAL KELAS [C]');
Writeln('===========================================');
Writeln(' Nama Mahasiswa
Nilai Ujian ');
Writeln('===========================================');
{Bagian Data}
For i := 1 to BanyakMahasiswa do
Writeln(Nama[i],Nilai[i]: 6 : 2) ;
{Bagian Penutup}
Writeln;
Writeln('===========================================');
Writeln('Nilai Rata-Rata : ',rata:6:2);
End.
AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

Program diatas kurang Bagus karena Hasil Tabel kurang rapih maka untuk itu dilakukan perubahan
pada Bagian CETAK hasil. Sebagai berikut
Contoh 9.2
Program TanyaMahasiswa;
Uses WinCrt;
Var Nama
: array [1..25] of string[25] ;
Nilai : array [1..25] of real ;
JumlahNilai,rata : real;
i, BanyakMahasiswa : byte;
Begin
{Membaca data}
I := 1 ;
Write('Nama Mahasiswa (isikan 0 {nol} jika Selesai ) : ');
readln(nama[i]);
While nama[i] <> '0' do
Begin
Write('Nilai Ujian (0 - 100): ');
readln(nilai[i]);
inc(i); {penambahan Indeks}
Write('Nama Mahasiswa (isikan 0 {nol} jika Selesai ) : ');
readln(nama[i]);
end;
BanyakMahasiswa := i - 1;
{Bagian menghitung nilai rata-rata}
JumlahNilai := 0 ;
For i := 1 to BanyakMahasiswa do
JumlahNilai := JumlahNilai + Nilai[i] ;
Rata := JumlahNilai / banyakMahasiswa ;
{Bagian CETAK}
{Bagian Judul}
Clrscr;
Writeln(' DAFTAR NILAI UJIAN PASCAL KELAS [C]');
Writeln('===========================================');
Writeln(' Nama Mahasiswa
Nilai Ujian ');
Writeln('===========================================');
{Bagian Data}
For i := 1 to BanyakMahasiswa do
begin
gotoxy(3, 4+i) ; Writeln(Nama[i]) ;
gotoxy(33,4+i); Write(Nilai[i]: 6 : 2) ;
end;
{Bagian Penutup}
Writeln;
Writeln('===========================================');
Writeln('Nilai Rata-Rata : ',rata:6:2);
End.
AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

Pengurutan Data
Contoh penggunaan array dapat dilihat pada contoh program pengurutan data dibawah.
Urutkan data : 15 35 29 7 47 12 90 50 dengan menggunakan metoda Bubble Sort.
Rumus: bubble sort adalah membandingkan sebuah bilangan dengan bilangan yang ada tepat
disebelah kanannya. Metode ini harus mengikuti aturan: bilangan disebelah kiri harus lebih kecil
atau sama dengan bilangan yang tepat disebelah kanannya.
Masukkan : Tidak ada
Keluaran : Hasilpengurutan bilangan dari nilai yang kecil ke nilai yang paling besar
Fungsi : Menggunanakan Array dan metoda pembanding bubble sort
Contoh 9.3;
Program BubbleSort;
Uses wincrt;
Var bil
: array[1..100] of integer;
Putaran, x, i, j, n, k : integer;
Tukar
: boolean;
Begin
N:=8 ;
Bil[1]:=15; Bil[2]:=35; Bil[3]:=29;
Bil[4]:=7; Bil[5]:=47; Bil[6]:=12;
Bil[7]:=90; Bil[8]:=50;
{cetak susunan awal}
Writeln('susunan bilangan sebelum diurutkan: ');
For i := 1 to 8 do
Writeln(bil[i] : 6);
Writeln; writeln;
{pengurutan}
Putaran := 0 ;
Repeat
Inc(putaran);
Tukar := false ;
For j := 1 to (n-putaran) do
If bil[j] > bil [j+1]
Then begin
{tukar}
X := bil [j];
Bil[j] := bil [j+1];
Bil[j+1] := x;
Tukar := true ;
End;
Until not (tukar) ;
{Cetak susunan akhir}
Writeln('Susunan bilangan setelah diurutkan :') ;
For i := 1 to 8 do
Writeln(bil[i] : 6) ;
Writeln; writeln;
End.

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

PERHATIKAN:
Variabel tukar bertipe boolean, pada awal putaran tukar diinisiasikan dengan false artinya belum
ada pertukaran. Jika ada pertukaran, minimal satu, tukar menjadi true. Putaran diulang dengan
repeat-until, until not(tukar), artinya dalam satu putaran tidak ada pertukaran.
Untuk menukar isi dua variabel , maka diperlukan sebuah variabel sementara. Ilustrasinya seperti
menukar isi dua buah gelas berisi kopi dan susu maka diperlukan satu gelas kosong sebagai
perantara penukar sementara.
Contoh Selanjutnya Lakukan hal yang sama untuk kasus contoh 4 dengan ketentuan bahwa
bilangan di inputkan (gunakan fungsi read)
Masukkan : Bilangan acak.
Keluaran : Hasilpengurutan bilangan dari nilai yang kecil ke nilai yang paling besar
Fungsi : Menggunanakan Array dan metoda pembanding bubble sort
Contoh 9.4;
Program BubbleSort;
Uses wincrt;
Var bil : array[1..100] of integer;
Putaran, x, i, j, n : integer;
Tukar : boolean;
Begin
{masukkan}
Write('Masukkan Jumlah bilangan [Max 100 bilangan] : ');
read(n);
For i := 1 to n do
begin
Write('masukkan bilangan ke[', i,'] = '); read(bil[i]);
end;
Writeln;writeln;
{pengurutan}
Putaran := 0 ;
Repeat
Inc(putaran);
Tukar := false ;
For j := 1 to (n-putaran) do
If bil[j] > bil [j+1]
Then begin
{tukar}
X := bil [j];
Bil[j] := bil [j+1];
Bil[j+1] := x;
Tukar := true ;
End;
Until not (tukar) ;
{Cetak susunan akhir}
Writeln('Susunan bilangan setelah diurutkan :') ;
For i := 1 to n do
Writeln(bil[i] : 6) ;
Writeln; writeln;
End.
AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

MODUL - 10
(Penggunaan Array untuk pencacahan majemuk dan pendefinisian type data)
Pencacahan majemuk dan pendefinisian type data
Pencacahan dipakai untuk menghitung banyaknya object. Dengan array kita bisa juga
mendifinisikan tipe data. Tipe yang kita definisikan dapat dipakai untuk pendeklarasian konstanta
atau variabel..
Contoh untuk pendefinisian tipe data dapat dilihat pada kasus program penjumlahan duabuah
matriks.
3
A

4
5

4
1
0

1
0

Masukkan : tidak ada


Keluaran : Hasil Penjumlahan Matriks
Petunjuk : Lakukan operasi penjumlahan matrik
Contoh 10.1
Program PenjumlahanMatriks;
Uses WinCrt;
type
Matriks33 = array[1..3,1..3] of byte ;
const A : matriks33=((3,4,1) ,
(4,-1,0)) ,
(5,0,2)) ;
B : matriks33=((1,0,3) ,
(6,1,5) ,
(3,2,2)) ;
Var
C : Matriks33 ;
i , j : byte;
Begin
{bagian Penjumlahan}
for i := 1 to 3 do
for j := 1 to 3 do
C[i,j] := A[i,j] + B[i,j];
{Bagian Cetak}
Writeln('Hasil Penjumlahan Matrik Adalah :');
for i := 1 to 3 do
begin
for j := 1 to 3 do
write(C[i,j]:4);
Writeln;
end;
end.
AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

Contoh selanjutnya untuk pendefinisian tipe data dapat dilihat pada kasus program perkalian dua
buah matriks.
3 1 5 2
3 0 1
A
; B
0 0 2 4
4 2 1
5 2 1 0
Masukkan : Tidak ada
Keluaran : Hasil Perkalian Matriks
Petunjuk : Lakukan operasi perkalian matrik matrik
Contoh 10.2
Program PerkalianMatriks;
Uses WinCrt;
type
Matriks23 = array[1..2,1..3] of byte;
Matriks34 = array[1..3,1..4] of byte;
Matriks24 = array[1..2,1..4] of byte;
const A : matriks23=((3,0,1),
(4,2,1));
B : matriks34=((3,1,5,2),
(0,0,2,4),
(5,2,1,0));
Var
C : Matriks24;
i,j,k : byte;
Begin
{bagian Perkalian}
for i := 1 to 2 do
for j := 1 to 4 do
begin
C[i,j] := 0;
for k := 1 to 3 do
C[i,j] := C[i,j] + A[i,k] * B[k,j];
end;
{Bagian Cetak}
Writeln(HASIL PERKALIAN MATRIK ADALAH ');
for i := 1 to 2 do
begin
for j := 1 to 4 do
write(C[i,j]:4);
Writeln;
end;
end.
Hasil: matriks C =

14

16

17

25

16

Lakukan hal yang sama seperti soal sebelumnya diatas dgn ketentuan bahwa bilangan diinputkan
(gunakan fungsi read)
Masukkan : Matrik A dan Matrik B (Ukuran matrik Fleksibel dari 1 sampai 100)
Keluaran : Hasil Perkalian Matriks
Petunjuk : Lakukan operasi perkalian matrik

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

Contoh 10.3
Program PerkalianMatriks;
Uses WinCrt;
type
MatriksA = array[1..100,1..100] of byte;
MatriksB = array[1..100,1..100] of byte;
MatriksC = array[1..100,1..100] of byte;
Var
A
: MatriksA ;
B
: MatriksB ;
C
: MatriksC ;
i,j,k,n,m,x,y : byte ;
Begin
Writeln('========================================');
Writeln('PROGRAM PERKALIAN MATRIK (Mat A x Mat B)');
Writeln('========================================');
Writeln;
{input matriks}
For k := 1 to 2 do
begin
Writeln('Masukkan Dimensi Baris dan Kolom Matrik
[',chr(k+64), ']');
Write('BARIS matriks [',chr(k+64), '] : '); readln(n);
Write('KOLOM matriks [',chr(k+64), '] : '); readln(m);
Writeln;
Writeln('Memasukkan nilai matriks [',chr(k+64), '] : ');
For i := 1 to n do
begin
For j := 1 to m do
begin
Write(' Nilai [',i,',',j, '] : '); readln(B[i,j]);
if k = 1 then A[i,j]:=B[i,j]
End;
writeln;
end;
Writeln('--------------------------------------------');
if k = 1 then x:=n else
End;
for i := 1 to x do
{bagian Perkalian}
for j := 1 to m do
begin
C[i,j] := 0;
for k := 1 to n do
C[i,j] := C[i,j] + A[i,k] * B[k,j];
end;
Writeln('HASIL PERKALIAN MATRIK ADALAH :');
{Bagian Cetak}
for i := 1 to x do
begin
for j := 1 to m do
write(C[i,j]:4);
Writeln;
end;
end.

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

MODUL - 11

(Procedure sebagai sub program, Memanggil procedure dari program utama atau
procedure lain)
Procedure sebagai sub program dan memanggil procedure dari program utama
Procedue adalah bagian program yang berisi serangkaian langkah langkah tertentu. Perhatikan
contoh procedure sebagai sub program dimana procedure dipanggil dari program utama dibawah
ini.
Contoh 11.1
Program TanyaMahasiswa; {Memakai Procedure}
Uses WinCrt;
Var Nama
: array [1..25] of string[25] ;
Nilai
: array [1..25] of real ;
JumlahNilai,rata : real;
i,BanyakMahasiswa : byte;
Procedure BacaData;
Begin
{Membaca data}
I := 1 ;
Write('Nama Mahasiswa (isikan 0 {nol} jika Selesai ) : ');
readln(nama[i]);
While nama[i] <> '0' do
Begin
Write('Nilai Ujian (0 - 100): ');
readln(nilai[i]);
inc(i);
{penambahan Indeks}
Write('Nama Mahasiswa (isikan 0 {nol} jika Selesai ):');
readln(nama[i]);
end;
BanyakMahasiswa := i - 1;
End;
Procedure HitungRata;
Begin
{Bagian menghitung nilai rata-rata}
JumlahNilai := 0 ;
For i := 1 to BanyakMahasiswa do
JumlahNilai := JumlahNilai + Nilai[i] ;
Rata := JumlahNilai / banyakMahasiswa ;
End;
Procedure Cetak;
Begin
{Bagian CETAK}
{Bagian Judul}
Clrscr;
Writeln(' DAFTAR NILAI UJIAN PASCAL KELAS [C]');
Writeln('===========================================');
Writeln(' Nama Mahasiswa
Nilai Ujian ');
AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

Writeln('===========================================');
{Bagian Data}
For i := 1 to BanyakMahasiswa do
begin
gotoxy(3, 4+i) ; Writeln(Nama[i]) ;
gotoxy(33,4+i); Write(Nilai[i]: 6 : 2) ;
end;
{Bagian Penutup}
Writeln;
Writeln('===========================================');
Writeln('Nilai Rata-Rata : ',rata:6:2);
End;
{Program Utama}
Begin
BacaData;
HitungRata;
Cetak;
End.
Memanggil procedure dari procedure lain
Dalam contoh diatas (contoh 9) pemanggil procedure adalah program utama, terkadang diperlukan
procedure dipanggil oleh procedure lain. Perhatikan perubahan contoh 9 menjadi conto 10 dibawah.
Dimana jika procedure satu buah procedure (misal prosedure satu) memanggil procedure yang lain
(misal procedure dua), maka procedur e yang akan dipanggil(misal procedure dua) oleh prosedure
lain tersebut dengan kata FORWARD.
Contoh 11.2
Program TanyaMahasiswa; {Memakai Procedure}
Uses WinCrt;
Var Nama
: array [1..25] of string[25] ;
Nilai : array [1..25] of real ;
JumlahNilai,rata : real;
i, BanyakMahasiswa : byte;
Procedure Cetak; Forward;
Procedure BacaData;
Begin
{Membaca data}
I := 1 ;
Write('Nama Mahasiswa (isikan 0 {nol} jika Selesai ) : ');
readln(nama[i]);
While nama[i] <> '0' do
Begin
Write('Nilai Ujian (0 - 100): ');
readln(nilai[i]);
inc(i);
{penambahan Indeks}
Write('Nama Mahasiswa (isikan 0 {nol} jika Selesai ):');
readln(nama[i]);
end;
BanyakMahasiswa := i - 1;

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

End;

Procedure HitungRata;
Begin
{Bagian menghitung nilai rata-rata}
JumlahNilai := 0 ;
For i := 1 to BanyakMahasiswa do
JumlahNilai := JumlahNilai + Nilai[i] ;
Rata := JumlahNilai / banyakMahasiswa ;
Cetak;
End;
Procedure Cetak;
Begin
{Bagian CETAK}
{Bagian Judul}
Clrscr;
Writeln(' DAFTAR NILAI UJIAN PASCAL KELAS [C]');
Writeln('===========================================');
Writeln(' Nama Mahasiswa
Nilai Ujian ');
Writeln('===========================================');
{Bagian Data}
For i := 1 to BanyakMahasiswa do
begin
gotoxy(3, 4+i) ; Writeln(Nama[i]) ;
gotoxy(33,4+i); Write(Nilai[i]: 6 : 2) ;
end;
{Bagian Penutup}
Writeln;
Writeln('===========================================');
Writeln('Nilai Rata-Rata : ',rata:6:2);
End;
Begin {Program Utama}
BacaData;
HitungRata;
End.

TUGAS
Kasus Modifikasi program contoh 7 dan 8
Lakukan Modifikasi untuk kasus Program Matriks (penjumlahan dan perkalian seperti pada contoh
7 dan contoh 8) sehingga dihasilkan dan ditampilkan:
1. Buat Tambahan program Tranverse dan Inverse Matrik
2. Input Matrik harus fleksibel dengan dimensi maksimum 1000
3. Buat Menu untuk dapat memilih program (penjumlahan perkalian transpose
inverse) matrik
4. Gunakan metode procedure untuk menggabungakan program (penjumlahan perkalian
transpose inverse) matrik tersebut
AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

MODUL - 12

(Deklarasi Global dan Deklarasi Lokal)


Deklarasi Const, Var, Type atau procedure dapat bersifat global atau lokal. Global artinya berlaku
untuk program utama dan semua procedurenya. Sedangkan lokal artinya hanya berlaku untuk satu
procedure tertentu.
Deklarasi global didefinisikan selama program tersebut dijalankan, sehingga dapat dipakai di
program utama maupun disetiap procedure. Deklarasi lokal hanya didefinisikan saat procedure
tertentu dikerjakan,, setelah procedure tr esebut selesai dikerjakan deklarasi lokal tidak berlaku lagi.
Deklarasi procedure lokal dipakai jika suatu procerure hanya dipanggil dari procedure tertentu.
Dalam sebuah program diperbolehkan deklarasi global dan deklarasi lokal denagn nama yang sama.
Dalam hal ini, diprogram utama akan dipakai deklarasi global dan didalam procedure dipakai
deklarasi lokal, dan kedua deklarasi tersebut tidak saling berhubungan.
Bentuk umum deklarasi global dan lokal:
Program <nama_program>;
Uses wincrt;
Const .
Var .
.

Deklarasi global

Program <nama_program>;
Uses wincrt;
Const .
Var .
.
Begin .
.
End;

Deklarasi lokal

Begin {program utama}


.
.
End.
Beberapa hal penting yang perlu diperhatikan dalam memilih variabel lokal dan variabel global:
1. sedapat mungkin pakai variabel lokal untuk menghemat tempat.
2. variabel yang hanya dipakai dalam suatu procedure deklarasikan sebagai variabel lokal.
3. variabel pencacah yang dipakai dalam loop FOR atau indeks array, deklarasikan sebagai
variabel lokal meskipun dipakai di dalam beberapa procedure dan nama yang sama.
4. variabel yang dipakai dalam program utama harus di deklarasikan secara global.
Contoh penggunaan deklarasi lokal dan global dapat di lihat pada contoh program dibawah
dibawah.
Contoh 12.1
Program TanyaMahasiswa; {Memakai Procedure}
Uses WinCrt;
Var Nama
: array [1..25] of string[25] ;
Nilai
: array [1..25] of real ;
rata
: real;
BanyakMahasiswa : byte;
AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

Procedure BacaData;
var
i : integer;
Begin
{Membaca data}
i := 1 ;
Write('Nama Mahasiswa (isikan 0 {nol} jika Selesai ) : ');
readln(nama[i]);
While nama[i] <> '0' do
Begin
Write('Nilai Ujian (0 - 100): ');
readln(nilai[i]);
inc(i); {penambahan Indeks}
Write('Nama Mahasiswa (isikan 0 {nol} jika Selesai ):');
readln(nama[i]);
end;
BanyakMahasiswa := i - 1;
End;
Procedure HitungRata;
var
i
: integer ;
JumlahNilai : real ;
Begin
{Bagian menghitung nilai rata-rata}
JumlahNilai := 0 ;
For i := 1 to BanyakMahasiswa do
JumlahNilai := JumlahNilai + Nilai[i] ;
Rata := JumlahNilai / banyakMahasiswa ;
End;
Procedure Cetak;
var
i : integer;
Begin
{Bagian CETAK}
{Bagian Judul}
Clrscr;
Writeln(' DAFTAR NILAI UJIAN PASCAL ');
Writeln('===========================================');
Writeln(' Nama Mahasiswa
Nilai Ujian ');
Writeln('===========================================');
{Bagian Data}
For i := 1 to BanyakMahasiswa do
begin
gotoxy(3, 4+i) ; Writeln(Nama[i]) ;
gotoxy(33,4+i); Write(Nilai[i]: 6 : 2) ;
end;
{Bagian Penutup}
Writeln;
Writeln('===========================================');
Writeln('Nilai Rata-Rata : ',rata:6:2);
End;
Begin {Program Utama}
;
BacaData;
HitungRata;
Cetak;
End.
AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

MODUL - 13

(Pemakaian Parameter pada Procedure)


Untuk pemahaman Procedure dengan menggunakan Parameter kita akan melihat kembali contoh
soal pada modul 8 contoh 1 (kasus contoh 8.1), yaitu program menghitung deret Euler.misalkan
kita akan menghitung exponen dari dua harga X, yaitu 3 dan 10. jika kita tidak memakai procedure
maka kita harus menulis program bagiannya sebanyak dua kali. Kita akan mengubah program
sehingga mempunyai procedure yang bernama euler dan procedure tersebut sudah memakai
variabel lokal.
Di dalam memanggil procedure kita dapat menggunakan parameter yaitu nialai yang dikirimkan
dari procedure pemanggil ke procedure yang dipanggil. Kita akan mengubah procedure euler
sehingga menggunakan parameter. Deret euler hanya bergantung pada nilai x. Oleh sebab itu
program hanya mempunyai sebuah parameter, yaitu x.
Yang perlu juga diperhatiakan. Jika yang dikirim ke procedure sebuah konstanta bukan variabel,
procedure dapat dipanggil dengan konstanta tersebut.
Contoh penggunaan Procedure dengan menggunakan Parameter dapat di lihat pada contoh program
dibawah dibawah.
Contoh 13.1
Program DeretEuler;
Uses WinCrt;
Var
Bil, Hasil : real ;
Procedure Euler(x:real);
Var Xpangkat, Suku : Real;
i, j, fac : integer ;
begin
Hasil := 1 ;{Mula-mula hasil pemangkatan adalah 1, suku pertama}
I := 0 ;
{Counter yang menunjukkan pangkat dari x dan
Factorial}
Xpangkat := 1 ;
{Inisiasi Pemangkatan X}
Fac := 1 ;
{Inisiasi Factorial}
Repeat
Inc(i);
{Menghitung Pemangkatan X}
Xpangkat := Xpangkat * x ;
{Menghitung Factorial}
Fac := fac * i ;
suku := XPangkat / fac ;
Hasil := hasil + Suku ;
Until Suku < 0.000005 ;
End;
Begin {PROGRAM UTAMA}
writeln;
Writeln('
x ') ;
Writeln('Program penghitungan e ') ;
Writeln('===================') ;
Write('masukkan harga x : ') ; readln(Bil);
Euler(Bil);
Writeln('Hasil Akhir adalah : ',hasil :15 : 6 );
Write('masukkan harga x : ') ; readln(Bil);
Euler(Bil);
Writeln('Hasil Akhir adalah : ',hasil :15 : 6 );
End.
AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

MODUL - 14

(Parameter nilai dan Parameter Variabel)


Parameter yang telah kita pakai pada module 13 adalah parameter nilai. Artinya nilai tersebut
dikirimkan ke procedure untuk diprosdes diprocedure tersebut.
Parameter variabel adalah parameter yang nilainya akan berubah sesuai dengan perubahan yang
terjadi di dalam procedure.
Contoh penggunaan Procedure dengan menggunakan Parameter dapat di lihat pada contoh program
dibawah dibawah.
Contoh 14.1
Program DeretEuler;
Uses WinCrt;
Var
Bil, Hasil : real ;
Procedure BacaData(var hargaX : Real);
Begin
Write('Masukkan Harga x : ') ; readln(HargaX) ;
End;
Procedure Euler(x: real);
Var Xpangkat, Suku : Real;
i, j, fac : integer ;
begin
Hasil := 1 ;
{Mula-mula hasil pemangkatan adalah 1, suku pertama}
i := 0 ;
{Counter yang menunjukkan pangkat dari x dan Factorial}
Xpangkat := 1 ;
{Inisiasi Pemangkatan X}
Fac := 1 ;
{Inisiasi Factorial}
Repeat
Inc(i);
{Menghitung Pemangkatan X}
Xpangkat := Xpangkat * x ;
{Menghitung Factorial}
Fac := fac * i ;
suku := XPangkat / fac ;
Hasil := hasil + Suku ;
Until Suku < 0.000005 ;
End;
Begin {PROGRAM UTAMA}
writeln;
Writeln('
x') ;
Writeln('Program penghitungan e ') ;
Writeln('===================') ;
{Perhitungan Pertama}
BacaData(Bil);
Euler(Bil);
Writeln('Hasil Akhir adalah : ',hasil :15 : 6 );
{Perhitungan Kedua}
BacaData(Bil);
Euler(Bil);
Writeln('Hasil Akhir adalah : ',hasil :15 : 6 );
End.
AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

MODUL - 15

(Function, pendefinisian function, pemanggilan function sebagai operan dalam


ekspresiaritmatik)
Fungction dideklrarasikan sebagian program yang menghasilkan sebuah nilai.pemanggilan function
merupakan sebuah operan dalam sebuah ekspresi. Ketika ekspresi tersebut dikerjakan, function
akan dipanggil dan nilai dari operan adalah nilai yang dihasilkan oleh function.
Bentuk umum pemakaian function adalah:
Program <nama_program>;
Var hasil, b : real
Function A ( x : real ): real;
Begin pernyataan
.
.
.
A := <Ekspresi> ;
End;
Begin {program utama}
.
.
Hasil := A(b) ;
End.
Contoh penggunaan Function perhatikan contoh program deret ueler dibawah. Dalam penerapan
deklrarasi procedure euler dalam contoh sebelumnya sebenarnya kur ang cocok, sebab procedure
tersebut menghasilkan sebuah nilai.
Untuk itu kita akan perbaiki, yaitu program deret Euler yang sebelumya menggunakan procedure
akan di ubah menggunakan function atau dengan kata lain akan mengubah procedure euler menjadi
function euler.
Contoh 15.1
Program DeretEuler; {Dengan tampilan berbentuk tabel}
Uses WinCrt;
Const MaxBil = 25 ;
Var
Bil, ePangkat : array[1..MaxBil] of real ;
BanyakBil : integer ;
Procedure BacaData(var n : integer);
Var i : integer ;
Begin
i := 1 ;
Write ('Masukkan harga x ( 0 - Jika Selesai): ') ;
Readln(Bil[i]) ;
While Bil[i] <> 0 do
Begin
Inc(i) ;
Write ('Masukkan harga x ( 0 - Jika Selesai): ') ;
Readln(Bil[i]) ;
End ;
N := i - 1 ;
End;
AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

Procedure IsiArrayEPangkat(n:integer) ;
Var I : integer ;

Function Euler(x: real) : real ;


Var Xpangkat, Suku, Has : Real;
i, j, fac : integer ;
begin
Has := 1 ;
Mula-mula hasil pemangkatan adalah 1, suku pertama}
i := 0 ;
{Counter yang menunjukkan pangkat dari x dan Factorial}
Xpangkat := 1 ;
{Inisiasi Pemangkatan X}
Fac := 1 ;
{Inisiasi Factorial}
Repeat
Inc(i);
{Menghitung Pemangkatan X}
Xpangkat := Xpangkat * x ;
{Menghitung Factorial}
Fac := fac * i ;
suku := XPangkat / fac ; {Suku Terakhir}
Has := has + Suku ;
Until Suku < 0.000005 ;
Euler := Has ;
End;
Begin {IsianArrayEPangkat}
For I := 1 to n do
EPangkat[i] := Euler(Bil[i]) ;
End;
{IsianArrayEPangkat}
Procedure Cetak(n : integer) ;
Var i : integer;
Begin
Clrscr ;
writeln;
Writeln('
x ') ;
Writeln('Tabel Perhitungan e ') ;
Writeln('==========================') ;
Writeln('
x') ;
Writeln(' x
e') ;
Writeln('==========================') ;
For I := 1 to n do
Writeln(Bil[i]:8:2, Epangkat[i]:15:2) ;
Writeln('==========================') ;
End;
Begin {PROGRAM UTAMA}
Clrscr ;
writeln;
Writeln('
x ') ;
Writeln('Program Perhitungan e ') ;
Writeln('==========================') ;
BacaData(BanyakBil);
IsiArrayEPangkat(BanyakBil) ;
Cetak(BanyakBil) ;
End.
AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

MODUL - 16
(Membuat menu sederhana, menu memasukkan data, menu mengkoreksi data,
dan menu menampilkan data)
Pada Akhirnya untuk membantu dalam mempermudah kita untuk menentukan suatu pilihan
diperlukan sarana yang disebut Menu. Sebagai contoh pemanfaatan menu dapat dilihat paada kasus
program 16.1 dibawah.
Contoh Program 16.1 di susun dengan mempunyai 3 menu, yaitu:
1. Memasukkan data mahasiswa.
mengisi data mahasiswa dimulai dari indeks ke JumMhs+1 hal ini memungkinkan untuk
memilih menu ini lebih dari sekali dan data sebelumnya tidak hilang. Misalkan pada
pengisian pertama diisi 3 data, sehingga JumMhs adalah 3, jika dipanggil lagi pengisian
akan dimulai pada indeks ke-4.
2. Pengkoreksian Data Siswa
menu ini menanyatkan data ke berapa yang akan dikoreksi. Jika nomor tersebut lebih dari
jumMhs berarti data tersebut belum ada dan akan ditampilkan pesan belum ada data , jika
tidak data lama akan ditampilkan. Untuk pengubahan akan digunakan variabel sementara
TNPM, Tnama, Talamat. Jika variabel-variabek tersebut di isi dengan menekan tombol enter
maka berarti tidak ada peubahan.
3. Menampilkan Data Mahasiswa
Menampilkan data dalam bentuk Tabel.
Contoh 16.1
Program MenuSederhana ;
Uses WinCrt ;
Const MaxMhs = 20 ;
Type STR7 = string[7] ;
STR25 = string[25] ;
Var NoMenu : char ;
JumlahMhs : byte ;
NPM : array[1..MaxMhs] of STR7 ;
Nama,Alamat : array[1..MaxMhs] of STR25 ;
Procedure Kotak(X1,Y1,X2,Y2,C1,C2,C3,C4,C5,C6 : integer) ;
Var
I : integer ;
Begin
{Pembuatan Kotak}
Gotoxy(x1,Y1) ; Write(chr(C1)) ;
For I := X1 + 1 to X2 - 1 do
begin
Gotoxy(i,Y1) ; Write(chr(C2)) ;
End ;
Gotoxy(X2,Y1) ; Write(chr(C3)) ;
For I := Y1 + 1 to Y2 - 1 do
begin
Gotoxy(X2,i) ; Write(chr(C4)) ;
End ;
AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

Gotoxy(X2,Y2) ; Write(chr(C5)) ;
For I := X2 - 1 downto X1 + 1 do
begin
Gotoxy(i,Y2) ; Write(chr(C2)) ;
End ;
Gotoxy(X1,Y2) ; Write(chr(C6)) ;
For I := Y2 - 1 downto Y1 + 1 do
begin
Gotoxy(X1,i) ; Write(chr(C4)) ;
End ;
End ;
Procedure PilihMenu(Var N : Char) ;
Var ch : char ;
Benar : Boolean ;
Procedure TampilkanMenu ;
Begin
Clrscr;
Kotak(20,3,60,18,201,205,187,186,188,200) ;
GotoXY(25, 5) ; Write('
Menu UTAMA ') ;
GotoXY(25, 7) ; Write('===============================') ;
GotoXY(25, 9) ; Write(' 1. Masukkan Data Mahasiswa ') ;
GotoXY(25, 10) ; Write(' 2. Mengkoreksi Data Mahasiswa ') ;
GotoXY(25, 11) ; Write(' 3. Menampilkan Data Mahasiswa ') ;
GotoXY(25, 12) ; Write(' 4. Selesai
') ;
End ;
Begin
TampilkanMenu;
GotoXY(15,16) ; Write('
Pilihan (1 - 4) :') ;
Repeat
gotoXY(47,16) ; Write(' ') ;
GotoXY(47,16) ; Readln(N) ;
Benar := N in ['1'..'4'] ;
If not (Benar)
Then Begin
{Membuat Pesan Salah}
Kotak(20,20,60,23,218,196,191,179,217,192) ;
GotoXY(21,21);Write('
Anda SALAH Memilih ...!') ;
GotoXY(21,22);Write('Tekan Tombol Sembarang Untuk Mengulang');
Ch := readkey ;
{menghapus Pesan}
GotoXY(20,20) ; ClrEol ;
GotoXY(20,21) ; ClrEol ;
GotoXY(20,22) ; ClrEol ;
GotoXY(20,23) ; ClrEol ;
End ;
Until Benar ;
End ;
Procedure TambahData(Var JumMhs : byte) ;
Var i : byte ;
AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

Begin
Clrscr;
i := JumMhs + 1 ;
{indeks mulai pengisian adalah satu setelah data terakhir}
Writeln ;
Writeln('Data Mahasiswa ke ',I,' : ') ;
Writeln('=====================') ;
Write('NPM Mahasiswa (tekan tombol "X" jika selesai) : ') ;
Readln(NPM[i]) ;
While (NPM[i] <> 'X') and (NPM[i] <> 'x') do
Begin
Write('Nama Mahasiswa : ') ;
Readln(Nama[i]) ;
Write('Alamat Mahasiswa :') ;
Readln(Alamat[i]) ;
Inc(i) ;
Writeln;
Writeln('Data Mahasiswa ke ',I,' : ') ;
Writeln('=====================') ;
Write('NPM Mahasiswa (tekan tombol "X" jika selesai) : ') ;
readln(NPM[i]) ;
end ;
JumMhs := i - 1 ;
End ;
Procedure KoreksiData(JumMhs : byte);
Var i : integer ;
TNPM : STR7 ;
TNama, Talamat : STR25;
Ch : char ;
Begin
Clrscr ;
Write('Yang Akan Di Koreksi Data No : ') ; Readln(i) ;
Writeln ; Writeln ;
If i > JumMhs
Then begin
{Pesan Kesalahan Belum ada data ke i}
Writeln('Data Tersebut Belum Ada') ;
Writeln('Data Terakhir : ',JumMhs) ;
Writeln('{Tekan Sembarang Tombol Untuk Melanjutkan}') ;
Writeln ; Writeln ;
Ch := readkey ;
End
Else Begin
{Data Yang Diminta Sudah Ada}
{Tampilkan Data Lama}
Writeln('Data Lama
:');
Writeln('==================') ;
Writeln('NPM
: ',NPM[i]) ;
Writeln('NAMA : ',Nama[i]) ;
Writeln('ALAMAT : ',Alamat[i]) ;
Writeln;

AR@2011

{Pengisian Data Baru Tekan ENTER Jika tidak Ada Perubahan}

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

Write('Data Baru :') ;


Writeln('...{Tekan <ENTER> Jika tidak Ada Perubahan}...') ;
Writeln('=====================================') ;
Writeln('NPM
: ') ; Readln(TNPM) ;
Writeln('NAMA : ') ; Readln(TNPM) ;
Writeln('ALAMAT : ') ; Readln(TNPM) ;
{Ganti ke Array jika Bukan Kosong}
If TNPM <> '' then NPM[i] := TNPM ;
If TNama <> '' then Nama[i] := TNama ;
If TAlamat <> '' then Alamat[i] := TAlamat ;
End ;
End;
Procedure TampilData(JumMhs : Byte) ;
Const grs = '-------------------------------------------------' ;
Var
i : byte ;
ch : char ;
begin
clrscr ;
Writeln(' Data Mahasiswa Universitas Lampung ') ;
Writeln(grs) ;
Writeln(' No. NPM
NAMA
ALAMAT ') ;
Writeln(grs) ;
For i := 1 to JumMhs do
Begin
gotoXY(4,4+i) ; write(i:2) ;
gotoXY(10,4+i) ; write(NPM[i]) ;
gotoXY(20,4+i) ; write(Nama[i]) ;
gotoXY(42,4+i) ; write(Alamat[i]) ;
end;
Writeln ;
Writeln(grs) ;
Writeln('Tekan Tombol Sembarang Untuk Melanjutkan ...') ;
ch := readkey ;
end;
{PROGRAM UTAMA}
Begin
JumlahMhs := 0 ;
repeat
PilihMenu(NoMenu) ;
Case NoMenu of
'1' : TambahData(jumlahMhs) ;
'2' : KoreksiData(JumlahMhs);
'3' : TampilData(JumlahMhs);
End;
Until NoMenu = '4' ;
End.

TUGAS
Kerjakan Kasus program contoh 16.1
Kumpulkan Hasil Runing Program dan File Program Hasil Compile (File EXE)
AR@2011

BORLAND
DELPHI

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

PEMROGRAMAN BORLAND DELPHI TM


1. PENGANTAR BORLAND DELPHI
Borland Delphi TM sering disebut dengan Delphiadalah sebuah perangkat lunak
(software) yang digunakan untuk membuat aplikasi berbasis antarmuka (interface)
Windows. Delphi dibuat oleh perusahaan
grafts di lingkungan sistem operasi Microsoft
Borland Software Corporation. Keberadaan Delphi telah ada sejak 1993 dengan
dirilisnya Delphi versi 1. Pada saat itu, Delphi telah mendapat julukan "Visual Basic
Killer" karena berbagai keunggulan yang dimilikinya dibandingkan dengan Visual Basic
buatan Microsoft . Setelah mengeluarkan versi 8, pada 2005 Borland merilis versi
terbaru yang dinamakan Delphi 2005.
Bahasa pemrograman yang digunakan Delphi adalah bahasa Pascal. Awalnya, bahasa
Pascal dibuat oleh Niclaus Wirth pada 1969. Pada masa -masa berikutnya, bahasa Pascal
hadir dalam berbagai versi dan mengalami perkembangan pesat. Para pengembang di
perusahaan Borland Software Corporation juga mengembangkan bahasa Pascal hingga
akhirnya berhasil menciptakan Object Pascal, yaitu bahasa Pascal yang berorientasi
objek. Object Pascal inilah yang digunakan untuk membuat aplikasi menggunakan
Delphi.
Salah satu kemudahan yang ditawarkan Delphi untuk membuat suatu aplikasi adalah
tersedianya banyak komponen yang siap pakai. Selain komponen yang telah disediakan
oleh Delphi, pernrogram bisa menambahkan komponen buatan sendiri atau buatan
pihak-ketiga (third-party) ke dalam Component Palette.
Kehadiran Delphi 2005 membuktikan bahwa Delphi telah menjadi pilihan utama
pembuat aplikasi atau pemrogram (programmer) di seluruh dunia. Ada banyak
keuntungan mempelajarl Delphi, di antaranya
:
1. Bahasa Pascal - yang menjadi dasar Delphi - didesain o le h Niclau s Wir th se car a
kh usus u ntuk pe la jar / mahasiswa yang akan mempelajari pemrograman.
2. Kode bahasa Pascal mudah dimengerti karena strukturnya seperti kalimat biasa.
3. P e nd ek ata n p e mr og r a ma n vi sua l m em p er m ud a h pemrogram untuk
merancang antarmuka yang mudah di g un a ka n ta n pa ha r us m e r a sa
k es uli tan un tuk menuliskan kodenya.
4. Aplika si yan g da pa t dibu at me ng gu na kan D elp hi me liputi caku pan yang
lua s, m ula i d ari ska la ke cil hingga skala perusahaan besar (enterprise). Aplikasi
un tuk in ter net juga tidak ke tingg alan dari sentuhan Delphi.
5. Kode yang te lah dibu at me ngg unakan De lp hi untuk sistem operasi Microsoft
Windows dapat dikompilasi ulang menggunakan Borland Kylix agar dapat berjalan
di sistem operasi GNU/Linux tanpa perubahan berarti. Hal in i sang at
me ngun tun gkan ka re na pe nyeba ran a plika si
(deploym ent)
di be rb ag a i
siste m op er a si dapat dilakukan tanpa harus mempelajari bahasa pernrograman
baru dan menulis ulang kode program.

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

MENGENAL IDE DELPHI

S aat m ulai m enja la nkan Delphi, se mua p era ngkat yang dibutuhkan untuk membuat
aplikasi telah tersedia. Ta mp ila n ID E De lphi te rliha t pa da Gam bar 1- 2. ID E a ta u
I n teg r ate d D e ve lop me n t E nv ir on me n t a d a la h tempat untuk membuat aplikasi
mulai dari mendesain antarmuka, menulis kode program
(coding), menjalankan
(running), mendebug, mengkompilasi (compile), dan menyebarluaskan aplikasi yang
dibuat (deploy).

Gambar Lingkungan Pengembangan Aphkasi (IDE) Delphi

Bagian-bagian penting IDE Delphi adalah sebagai berikut:


4.1 MENU BAR

Gambar Menu Bar

Menu bar merupakan tempat menggulung


(pull-down) menu-menu perintah. Sebuah
menu terdiri dari beberapa daftar perintah
(menu command). Di sebelah kiri masingmasing perintah terdapat sebuah ikon yang menggambarkan fungsinya.

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

4.2 Tool Bar

Gambar Tool Bar

Yang dimaksud dengan tool bar adalah sekumpulan tombol yang dapat digunakan
untuk melakukan suatu perintah. Fungsi tool bar sama dengan m enu bar, tetapi
dengan satu keunggulan, yaitu lebih cepat diakses untuk menjalankan perintah
tertentu.
4.3 Componen Palette

Gambar Component Palette

Component palette digunakan untuk mengumpulkan komponen Delphi yang dibagi


menjadi beberapa kategori. U ntuk Delphi 7 Person al E dition a da delapan kate gor i,
yaitu Standard, Additional, Win32, System, Dialogs, Win 3. 1, Samples, dan ActiveX.
S ecar a gar is besar kom ponen De lp hi da pat d ibe dakan menjadi dua jenis, yaitu
komponen visual dan komponen non- visua l. Komp onen visua l a dalah komp onen
yan g terlihat saat proses mendesain aplikasi maupun setelah aplikasi dijalankan.
Salah satu contohnya adalah komponen Label. Sedangkan komponen non-visual
adalah komponen yang hanya terlihat saat proses mendesain aplikasi, tetapi saat
ap likasi dijala nkan komponen jenis ini tidak a kan terlihat. Salah satu contohnya
adalah komponen Timer.
4.4 Form Designer
Form designer atau biasa disebut Form adalah tempat meletakkan komponenkomponen yang diambil dari C om pone nt P ale tte saa t me m bua t de sa in
a nta rm uka aplikasi. Ketika Anda menjalankan Delphisecara
defaultsebuah Form
(dan Code Editor) telah disediakan oleh Delphi secara otomatis.

Gambar Form Designer

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

4.5 Code Editor


Code Editor adalah tempat untuk menuliskan kode-kode program. Di dalam Code
Editor telah ada beberapa baris kode yang dibuat oleh Delphi secara otomatis. Di
tempat inilah Anda m en yisipkan da n me nuliskan kode - kod e program untuk
membangun sebuah aplikasi yang lengkap. Saat membangun sebuah aplikasi, Anda
seringkali harus b er pinda h an ta ra Code E ditor da n For m. Ha l in i bisa dilakukan
secara cepat dengan menggunakan tombol
F12.

Gambar Code Editor

4.6 Object Inspector


Object Inspector digunakan untuk mengubah properti komponen terpilih yang berada
di Form. Pada bagian paling atas jendela Object Inspector tercantum nama komponen
yang sedang aktif. A da dua b ag ia n u ta m a pa da Ob ject I n sp ector , ya itu
Properties dan Events. Pada setiap bagian tersebut terdapat dua bua h kolom. Kolom
sebelah kiri mer upakan nam anama properti atau event, sedangkan kolom sebelah
kanan adalah nilai-nilai yang diisikan pada properti atau eve nt yang bersangkutan.

Gambar Object Inspector

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

4.7 Object TreeView


Object TreeView berfungsi untuk menampilkan berbagai komponen yang digunakan
saat membuat aplikasi. Komponen-komponen ditampilkan dengan struktur pohon.

Gambar Object TreeView

Komponen Delphi

Komponen adalah "jantung" bagi pemrograman visual. Component Palette telah terbagi
menjadi berbagai jenis kom ponen, di a nta ranya a dalah Standa rd, Additiona l, Win32,
System, dan beberapa lainnya. Pada saat mendesain antarmuka, dapat memindahkan
dan mengatur letak komponen di Form agar tampak lebih rapi. Hal ini bisa dilakukan
dengan metode klik-dan-geser
(click-and-drag) pada komponen yang diinginkan.
Beberapa komponen yang sering digunakan saat pembuatan ap likasi a da lah se ba gai
berikut:

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

MEMBUAT APLIKASI DENGAN BORLAND DELPHI

4.1

Konsep Dasar

Secara umum, Delphi dapat digunakan untuk membuat berbagai jenis aplikasi. Mulai
dari aplikasi konsol, aplikasi yang berbasis grafis
(Graphical User Interface, GUI), aplikasi
layanan (service application), dan pustaka (Dynamic Link Librar/ DLL) Serta paket
(package).
Aplikasi konsol merupakan aplikasi yang paling sederhana. Aplikasi jenis ini dijalankan
pada sebuah jendela konsol tanp a m em er luka n antar muka g ra fis. Aplika si konsol
memiliki kekurangan dari segi tampilan. Tampilan konsol yang berbasis teks terlihat
"gelap" dan tidak menarik.
Aplikasi GUI hadir untuk mengatasi kekurangan yang dimiliki aplikasi konsol. Aplikasi
GUI dibuat menggunakan berba ga i fitur sep erti je ndela, tombol, maup un me nu.
Aplikasi jenis ini sangat mudah digunakan dan merupakan je n is a p lika si ya n g
b an yak dija la nka n pa da siste m operasi berbasis grafis, seperti Microsoft Windows,
Apple Macintosh, maupun GNU/Linux.
Beberapa langkah yang perlu dilakukan untuk membangun aplikasi dengan Delphi
adalah sebagai berikut.
1. Mendesain aplikasi . Langkah-langkah yang dilakukan:
Menganalisa masalah
Membuat algoritma
Merancang desain antarmuka
2. Membuat proyek . Langkah-langkah yang dilakukan:
Membuat folder untuk menyimpan proyek
Menjalankan Delphi
Menyimpan file-file proyek
Membuat desain antarmuka dan mengatur properti komponen-komponen yang
digunakan pada Form Menulis kode
3. Mengkompilasi aplikasi
4. Mendebug aplikasi
5. Mengirim aplikasi
4.2 Mengenal File Delphi
Ketika membuat sebuah aplikasi di Delphi berarti sed ang m embua t se buah proyek.
S ebuah p roye k adalah sekumpulan file yang diperlukan untuk membangun sebuah
aplikasi. Beberapa file ini akan dibuat saat proses me ndesain aplikasi, sedangkan
beberap a lainnya dibuat saat proses kompilasi kode sumber
(source code).
S ebuah proyek De lp hi akan te rdir i dari beber apa file. Ada file yang menyimpan
kode program dan ada file lain un tuk m enyimpa n nilai bina ri da n g amba r. Ka re na
AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

setia p aplikasi terdiri dari beberapa file, sangat disarankan untuk menyimpan sebuah
aplikasi hanya pada sebuah folder untuk mempermudah pengorganisasian file di
komputer. Bila sebuah proyek akan dipindahkan, cukup lakukan dengan memindahkan
folder tersebut.
Berbagai jenis file yang dibuat saat membangun aplikasi menggunakan Delphi adalah
sebagai berikut.
Jenis file Keterangan
.dpr
File-file Proyek
.dfm File-file Form
.dpk File-file paket (package)
.res File-file
resource
.cfg File-file konfigurasi proyek
.dof File-file pilihan
.dcu File unit yang terkompilasi
.exe File yang dapat dijalankan
.dsk Pengaturan desktop
.~* File-file cadangan

(options)

proyek
(executable)

(backup)

misal .~pas, .~dpr

Dari berbagai jenis file di atas, ada file -file penting yang tid ak bo le h dih a p us da n
a da p ula fi le - fi le ya ng bo le h dihapus untuk menghemat ruang harddisk.
Be b e ra p a je n is fi le p e ntin g ya n g ti da k bo le h di ha p us adalah:
*.dpr *.dfm *.pas *.res *.exe
File- file yang bole h dihapus adalah se ba gai be rikut:
*.~* *.dcu *.cfg *.dof *.dsk

4.3 Membuat Aplikasi GUI


Kini kita akan membuat sebuah aplikasi GUI bernama HelloGUI. Aplikasi ini sama
fungsinya se perti aplikasi aplikasi he llo sebelumnya . Hanya saja, aplikasi ini
menggunakan antarmuka grafts.

PROYEK -1: HelloGUI


Langkah 1: Mendesain Aplikasi:
Ap lika si i ni a kan me na m pilka n ju dul p rog r am , menerima sebuah input dar i
use r ber upa nama user, dan menampilkan sebuah output kepada user pada sebuah
jendela yang terpisah.
Desain antarmuka yang akan dibuat adalah sebagai berikut:

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

Desain Antar muka Hello GUI

Langkah 2
1. Buat folder baru untuk menyimpan proyek. Gunakan Windows Explorer untuk
membuat folder baru, misalnya di

D:\ProyekDelphi\HelloGUI .

2. Jalankan Delphi.
3. Selanjutnya, klik menu File | New | Application .
4. Menyimpan proyek. Klik menu

Fil e| Save All , lalu simpan di folder yang telah

dibuat sebelumnya. S a a t m un c ul d ia l og - b ox , s im p a nl a hU nit 1. pas dengan


nama unitGUI.pas .
Delphi akan menampilkan lagi dialog-box. Kali ini untuk menyimpan file proyek.
Simpanlah file Project1. dpr dengan nama HelloGUI.dpr
5. Membuat antarmuka. Untuk membuat aplikasi antarmuka sesuai dengan desain
yang telah dirancang, diperlukan sebuah komponen
Edit, dan dua buah komponen

Label , sebuah komponen

Button .

6. Mengatur properti komponen.


Mengubah properti

Form1

Klik di sembarang tempat di ruang kosong pada Form, aktifkan Object


Inspector (tekan

F11).

U b a h p r o p e r t Na
i me dari Form1 menjadi
Ubah properti Caption dari Projects menjadi

FormHelloGUI.
HelloGUI.

Mengubah properti komponen Label1.


Klik komponen Label yang ada di Form, aktifkan

Object Inspector (tekan

F11).
Ubah properti Name, dari Label1 menjadi LabelInput .
Ubah properti Caption, dari Labels menjadi Masukkan Nama Anda:
Mengubah properti komponen Edit1.
Klik komponen Edit1 yang ada di Form, aktifkan Object Inspector (tekan
AR@2011

F11),

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

Uba h properti

Na me , d a r i E dit 1 m e n ja d iEditNamaAnda

Uba h properti

Text, da ri Edit1 menjadi kosong (hapus semua)

Mengubah properti komponen Button1. Klik komponen

Button1 yang ada di

Form, aktifkan Object Inspector (tekan F11). Ubah properti Name, dari
Buttonl menjadi ButtonSala . Ubah properti Caption, dari Buttonl menjadi
Salam...
Mengubah properti komponen Button2
Klik komponen Button2 yang ada di Form, aktifkan Object Inspector (tekan F11)
Ubah properti Name, dari Button2 menjadi
Ubah properti Caption, dari Button2 menjadi

ButtonKeluar
Keluar

Langkah-langkah mengubah properti dapat dirangkum pada tabel berikut.


Komponen Properti
Form 1 Name
Ca ption
Labe l1 Name
Ca ption
Edit1 Name
Text
Button1 Name
Ca ption
Button2 Name
Ca ption

Nilai
FormHelloGUI
HelloGUI
Labellnput
Masukkan Nama Anda:
EditNamaAnda
dikosongkan)
ButtonSalam
Salam...
ButtonKeluar
Keluar

Langkah 3 Menulis Kode


Klik ganda Buttonsalam , ketik kode berikut:
ShowMessage('Halo + EditNamaAnda.Text +', Senang
berkenalan dengan anda');

Kode untuk tombol ButtonSalam

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

Klik-g a nda tom bol Bu ttonKeluar , tulis kode berikut di antara begin dan end;
Close;

Kode untuk tombol ButtonKeluar

Langkah 4 Mengkompilasi Aplikasi


Untuk melihat hasil dari program ini harus dilakukan proses kompilasi, yaitu
mengubah file proyek (.dpr)

menjadi file executable (.exe).

La ng ka h u n tu k m e ng kom p ila si a da la h de n ga n m em ilih m en Proj


u ect |
Com pile He lloGU I ata u dengan menekan kombinasi tombol

Ctrl+F9.

Bila aka n m en ja lan kann ya seca ra lan gsun g bisa d ilaku kan de ng an
me mili h m en u Run | R un a ta u dengan menekan tombol

F9.

Tampilan HelloGUI saat dijalankan

Langkah 5: Mendebug Aplikasi


Lang kah ini be rg una un tuk m en ga ma ti jala nnya program baris-per-baris.
Penting dilakukan untuk m en ca r i k esa la h an ya n g m un g kin te r jad i pa d a
program. Lakukan dengan menekan tombol

F8 beberapa kali untuk melihat

eksekusi yang dilakukan Delphi pada kode baris-per-baris. Langkah ini biasanya
diakhiri dengan menekan

F9.

Langkah 6: Mengirim Aplikasi


Bisa dilakukan se ca ra muda h den gan ca ra me ngcopy file .exe ke komputer
lain.

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

5. DASAR PEMROGRAMAN DENGAN BORLAND DELPHI


Dasar-dasar pemrograman Pa scal te rdiri dari: pengenal, program dan unit, aturan
penulisan Delphi, tipe data, variabel, operator, dan pernyataan.
5.1

Pe ng ena l

Pengenal atau identifier adalah nama yang diberikan pada suatu elemen program.
Pengenal digunakan pada konstanta
(constants), variabel (variables), fields, tipe (types),
properti (pr operties), pr ose dur (pr ocedures), fu ngsi (functions), program, unit,
pustaka (libraries), dan paket (packages).
Berikut aturan penulisan pengenal.
Panjang karakter bebas, tetapi hanya 255 karakter pertama yang dikenali.
Karakter awal harus berupa huruf atau garis bawah
Tidak boleti dipisahkan dengan tanda spasi.
S e m b a r a ng h u r uf , a n g ka , da n g a r is - b a wa h diperbolehkan setelah
karakter pertama.
Kata khusus (reserved word) seperti pada tabel dibawah tidak boleh digunakan sebagai
pengenal.

Bah asa Pasca l/ De lphi be rsifa t


ma upun huruf biasa).
5.2

case insensitive

(tidak mem bedakan hur uf kap ital

Program dan Unit

Ada dua jenis file program yang dikenal Pascal, yaitu program utama dan program
AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

bantu. Program utama ditandai dengan "judul program" di awal baris program. Program
bantu atau yang disebut unit ditandai dengan "judul unit" di awal baris program. Baik
program utama maupun program bantu memiliki aturan penulisan yang sama.
Pada pemrograman Pascal tradisional - misalnya dengan menggunakan tool Turbo
Pascal - file program utama dan program bantu disimpan dengan ekstensi file
.pas. Pada
pemrograman Pascal menggunakan Delphi, file program utama disimpan dengan
ekstensi .dpr, sedangkan file pr ogra m bantu disimpa n deng an ekstensi
.pas. S etia p
aplikasi (atau proyek) hanya mempunyai sebuah file proyek (.dpr) dan satu atau beberapa
file program bantu (.pas).
Sintaks program utama (program) adalah sebagai berikut.
program
uses

Unit1, Unit2, Unit3;

const
type
var

NamaProgram;

Konstanta1, Konstanta2;
TipeData1, TipeData2;
Variabel1, Variabe12;

begin
{tempat meletakkan pernyataan program}

end.
Sintaks program bantu (unit) adalah sebagai berikut.
unit NamaUnit;
interface
uses

Unit11, Unit22, Unit33;

const
type
var

Konstanta1, Konstanta2;
TipeData1, TipeData2;
Variabe11, Variabe12;

implementation
begin
{tempat meletakkan pernyataan program}

end.
Terlihat bahwa sintaks program utama dan program bantu sa ngat mirip. S in taks
tersebut se ca ra g ar is besar dapat dibagi menjadi tiga bagian, yaitu bagian judul,
AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

deklarasi, dan pernyataan. Berikut diberikan penjelasan untuk masing-masing bagian.


a.

Bagian judul
Bagian ini digunakan untuk memberi nama pada pr og ra m /u nit. Pe nu lisa nn ya
d ia wa li d en ga n kata program (atau unit) diikuti dengan nama yang akan
diberikan. Penulisan nama untuk program (atau unit) tidak boleh dipisah dengan
tanda spasi.

b.

Bagian deklarasi
Ba gian ini digun akan untuk m end e kla rasikan sem ua pe ng e na l yan g a ka n
d ip aka i di ba g ia n pe r nya taa n (statement). Ada beberapa jenis deklarasi, yaitu:
a. Deklarasi Label
b. Deklarasi Const
c. Deklarasi Type
d. Deklarasi Var
e. Deklarasi Function
f. Deklarasi Procedure

c.

Bagian pernyataan ( statement )


Ba gia n ini dig una kan u ntuk me nuliskan ko de - kod e yan g a kan dilaku kan
p r ogr am , d itu liska n d i an ta r a begin dan end . Pada setiap akhir penulisan
sebuah pernyataan ha rus diakhiri de nga n tanda titik koma (;).

5.3

Aturan Penulisan Delphi

Berikut beberapa aturan penting penulisan yang ditentukan oleh Delphi.


Bah asa Pascal/ De lp hi ditulis m en gg unaka n h uru f, ang ka, dan sim bol
khusus. Hur uf ya ng dig una ka n adalah huruf ahingga zdan/atau Ahingga Z.
Angka yang digunakan adalah angka 0hingga 9. Simbol khusus yang dikenali
adalah + - * / = ^ < > ( )
. # $
Tidak membedakan huruf kapital
(uppercase) maupun huruf kecil (lowercase).
Penulisan kode bisa dimulai dari kolom ke berapa saja dan bisa memanjang
sampai kolom berapa pun.
Setiap akhir pernyataan diakhiri dengan tanda titikkoma (; )
Akhir program (atau unit) ditandai dengan penulisan tanda titik (.)
Komentar program dapat ditulis di belakang tanda
double- slash "/ /"
hing ga
a khir ba ris atau d itu lis di antara tanda "{" dan "}" atau di antara tanda (*
dan tanda *)
5.4

Ti pe Dat a

Ada enam jenis tipe data pada Borland Delphi 7, yaitu:


1. Tipe simple
Tipe simple terbagi menjadi dua tipe, yaitu:
AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

a. Tipe ordinal
Tipe ordinal ma sih terba gi lagi m enjadi 5 tipe , yaitu:
1. tipe integer
2. tipe character
3. tipe Boolean
4. tipe enumerated
5. tipe subrange
b. Tipe real
2. Tipe string
3. Tipe structured
4. Tipe pointer
5. Tipe procedural
6. Tipe variant
Berikut ini akan dibahas beberapa jenis tipe data yang sering digunakan.
a.

b.
c.

d.

e.

5.5

Tipe Integer. Tipe ini digunakan untuk menyimpan semua bilangan bulat. Tipe
integer fundamental terdiri dari Shortint, Smallint, Longint, Int64, Byte, Word,
dan Longword.
Tipe Real. Tipe ini digunakan untuk menyimpan bilangan real.
Tipe Character. Tipe ini digunakan untuk menyimpan data alfanumeris, misalnya
'a', 'A', '1', &, dan sebagainya. Tipe character terdiri dari dua jenis, yaitu AnsiChar
dan WideChar. AnsiChar berukuran 8-bit, sedangkan WideChar berukuran 16bit. Tipe character dideklarasikan dengan kata kunci
char .
Tipe String. Sebuah string adalah urutan sekumpulan karakter (huruf). Variabel
kalimat yang bertipe string dapat diisikan dengan suatu nilai yang diletakkan
diantara tanda petik ( ).
Tipe Boolean. Tipe Boolean hanya dapat bernilai benar (true) atau salah (false).

Mengubah Tipe Data

Salah satu syarat sebuah program yang baik adalah dapat menerima masukan
(input)
dari pengguna (user) dan me nampilkan sua tu keluara n
(output) yang benar . Input
bisa beru pa ang ka, huru f (character ), ka lim at (str ing), ataupun jenis input lainnya.
Output suatu program juga beragam bentuknya, bisa berupa angka, grafik, ataupun
animasi.
Pada pemrograman Delphi, jenis komponen yang sering digunakan untuk menerima
input dari user adalah TEdit. Komponen ini hanya dapat menerima input berupa teks
(character, string). Bila menggunakan komponen tersebut pada program dan akan
digunakan untuk menerima in put ber upa ang ka , m aka diperlukan pen gubaha n tipe
data.
Delphi telah menyediakan berbagai fungsi untuk melakukan konversi tipe data. Empat
AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

fungsi yang akan dibahas adalah:


StrToInt, StrToFloat, IntToStr,

dan FloatToStr.
I

a. Fungsi StrTolnt
Digunakan untuk mengubah string yang merepresentasikan data bertipe integer
menjadi sebuah angka bertipe integer.
Sintaks:
function StrToInt(const S: string): Integer;
Contoh:

NilaiInteger := StrToInt (Edit1.Text);

Artinya mengubah data bertipe string di komponen Edit1 menjadi data bertipe
integer yang disimpan di variabel NilaiInteger.
b. Fungsi StrToFloat
Digunakan untuk mengubah string yang merepresentasikan data bertipe integer
menjadi sebuah nilai floating-point (bilangan real).
Sintaks:
function StrToFloat(const S: string): Extended; overload;
function StrToFloat(const S: string; const FormatSettings:
TFormatSettings): Extended; overload;
Contoh:

BilanganReal := StrToFloat (Edit1.Text);

Artinya mengubah data bertipe string di komponen Edit menjadi data bertipe
Extended (real) yang disimpan di variabel BilanganReal.
c. Fungsi IntToStr
Digunakan untuk mengubah data bertipe integer menjadi sebuah string.
Sintaks:
function IntToStr(Value:Integer):string;overload;
function IntToStr(Value:Int64):string;overload;
Contoh:

MyString := IntToStr (5*6);

Artin ya data bertipe integ er (ya itu 30, ya ng mer upaka n hasil perhitungan 5*6)
diubah menjadi data bertipe string yang disimpan di variabel MyString.
d. Fungsi FloatToStr
Digunakan untuk mengubah nilai floating-point menjadi string.
Sintaks:
AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

function FloatToStr(Value:Extended):string; overload;


function FloatToStr(Value: Extended;const
FormatSettings:TFormatSettings):string;overload;
Contoh:

MyString := FloatToStr (3.14 * 4);

Artin ya da ta be rtipe r eal (yaitu 12.56, yang merupa ka n hasil per hitungan
3.14*4) diuba h menjadi data ber tipe string yang disimpan di variabel MyString.
5.6

Variabel

Variabel adalah pengenal yang nilainya dapat berubah pada saat program dijalankan
(runtime). Variabel serupa dengan p ena mp ung untuk da ta . Var iabe l dap at me mb eri
tahu compiler untuk menerjemahkan data yang dipegangnya.
Sintaks umum variabel:
var identifierList: type;
dengan
identifierList adalah daftar yang dipisahkan tanda koma, type adalah sembarang tipe
yang dikenal.
Contoh:
var I: Integer;
mendeklarasikan sebuah variabel I dengan tipe integer, sedangkan
var X, Y: Real;
mendeklarasikan dua variabel yaitu X dan Y dengan tipe real.
Contoh lain:
var
X, Y, Z: Double;
Digit: 0..9;
Okay: Boolean;
5.7

Operator

Variabel bisa dioperasikan menggunakan operator tertentu sehingga menghasilkan nilai


baru. Ada 9 jenis operator yang dikenal Delphi, yaitu: (Operator Aritmatika, Operator
Boolean, Operator Logical (bitwise), Operator String, Operator Relational, Operator
Pointer, Operator Set, Operator Class, dan Operator @). Untuk beberapa operator yang
sering digunakan adalah:

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

a. Operator aritmatika
O p e r a t or a r i tm a ti ka te r d i r i d a r i + , - , *, / , d i v, d a n m od . O pe ra tor in i
b eke rja pa da op er an (oper and) be rtipe r ea l atau integer.
Operator aritmatika biner
(binary)

Operator aritmatika tunggal

(unary)

Berikut ini beberapa aturan penting pada operator aritmatika.


1. Nilai dari x / y adalah bertipe Extended.
2. Nilai dari x div y adalah nilai dari x / y yang dibulatkan ke bilangan bulat (integer)
terdekat.
3. Operator mod menghasilkan sisa yang diperoleh dari pembagian operannya.
Dengan kata lain, x mod y = x -(x div y) *y.
4. Jika y bernilai nol, maka x / y, x div y, atau x mod y akan menghasilkan suatu
kesalahan (error).
b. Operator boolean
Operator Boolean bekerja pada tipe data Boolean dan menghasilkan nilai bertipe
Boolean.

c. Operator logical (bitwise)


AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

O per ator in i diguna kan untuk me man ipulasi bit pada operan bilangan bulat
(integer).
d. Operator string
Ada satu jenis operator string, yaitu "
string.

+ ", yang digunakan untuk menggabungkan dua

e. Operator relational
Operator relational (pembanding) digunakan untuk membandingkan dua operan.
Sebagai contoh, I = Jbernilai Benar ( True ) bila Idan Jmempunyai nilai yang sama.

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

f. Derajat operator
Di dalam sebuah program yang mengandung ekspresi kompleks, diperlukan suatu
aturan yang digunakan untuk menentukan operasi mana yang harus diselesaikan
terlebih dahulu.
Berikut ini adalah derajat operator menurut Delphi.

Contoh:
Hasil1 3+4*5;
Hasil2 (3+4)*5;
Nilai dari Hasil1 adalah 23, sedangkan Hasil2 adalah 35.
Agar suatu operasi dengan derajat yang lebih rendah dikerjakan terlebih dahulu,
tempatkanlah operasi yang diinginkan di dalam tanda kurung.
5.8
Pernyataan
Pernyataan (statement) menunjukkan tindakan/jalannya algoritma dalam sebuah
program. Pernyataan sederhana seperti penugasan (assignment) dan pemanggilan
prosedur dapat dikombinasikan untuk membentuk perulangan, pernyataan kondisional,
maupun pernyataan terstruktur lainnya. Sebuah pernyataan dengan pernyataan lainnya
dipisahkan dengan tanda titik-koma (;). Ada dua bentuk pernyataan sederhana, yaitu:
p emanggilan fungsi (function) dan
Pernyataan penugasan (statement assignment) dan
prosedur (procedure).
a. Pernyataan penugasan
Bentuk
variable := expression
dengan
variable
adalah sembarang referensi variabel simbol adalah simbol
penugasan (assignment)
Contoh
I := 3;
yang berarti memberikan nilai 3 kepada variabel I. Variabel di ruas kiri dapat muncul
di ruas kanan.
Contoh:
I := I + 1;
yang berarti penambahan kepada nilai I sebesar 1 dan disimpan sebagai I yang baru.
Contoh-Contoh lainnya:
X := Y + Z;
Done := (I >= 1) and (I < 100);
I := Sqr(J) - I * K;
AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

b. Pemanggilan fungsi dan prosedur


Pemanggilan sebuah fungsi atau prosedur dilakukan dengan cara menuliskan nama
fungsi atau prosedur, diikuti dengan parameter-parameter yang sesuai (
Fungsidan
Prosedur akan dibahas lebih rinci pada materi selanjutnya).
PROYEK-2 : Jarak Tempuh
Buatlah program untuk menghitung
Jarak tempuh objek yang bergerak bila
Mempunyai kecepatan

v, percepatan a,

dan waktu t!

Gambar Tampilan Aplikasi Jarak Tempuh

Penyelesaian
Langkah 1 : Mendesain Aplikasi
R um u s
s = v.t + .a.t2
Algoritma
1. Masukkan v
2. Masukkan t
3. Masukkan a
4. s v * t + 0 . 5 * a * t * t
5. Tampilkan s
Rancangan antarmuka aplikasi
Gambar Rancangan antarmuka Aplikasi Jarak Tempuh

Langkah 2: Membuat Proyek


B ua t f o ld e r b a r u , m i sa l d i D :\ P r o ye kD e l ph i \ JarakTempuh.
jalankan Delphi.
D ar i I DE D elphi, sim pa n proye k deng an pe rintah

File | Save All. Sim pan

U nit1.pas deng an n ama UnitJarakTempuh.pas dan

Project1.dpr dengan nama

JarakTempuh.dpr
Buat antarmuka aplikasi seperti rancangan di atas.
Gunakan Object Inspector, ubah beberapa properti seperti berikut:

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

Komponen Pro perti Nil ai


Form1 Name FormJarakTempuh
Caption Jarak Tempuh, s=vt+1/2atA^2
GroupBox1 Name GroupBoxData
Caption Data yang diketahui
GroupBox2 Name GroupBoxHasil
Caption Besaran yang dicari
Label1
Name LabelKecepatan
Caption Kecepatan (m/s)
Label2 Name LabelWaktu
Caption Waktu (s)
Label3 Name LabelPercepatan
Caption Percepatan (m/s^2)
Edit1 Name EditKecepatan
Text (dikosongkan)
Edit2 Name EditWaktu
Text (dikosongkan)
Edit3 Name EditPercepatan
Text (dikosongkan)
Button1 Name ButtonHitung
Caption Hitung
Button2 Name ButtonKeluar
Caption Keluar
Simpan perubahan yang telah dilakukan dengan perintah

File | Save .

Langkah 3 : Menulis Kode


K lik- ga nd a to mb ol ButtonHitung

, tulis kode berikut.

procedure
TFormJarakTempuh. ButtonHitungClick
(Sender: TObject);
var
v, t, a, s : real;
begin
// Data
V := StrToFloat (EditKecepatan.Text);
T := StrToFloat (EditWaktu.Text);
A := StrToFloat (EditPercepatan.Text);
// Hitung
s := v*t+0.5*a*t*t;
// Tampilkan hasil
LabelHasil.Caption := FloatToStr (s) + m';
end;

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

Gambar Kode untuk tombol ButtonHitung

K li k- g a n da to m bo lBut tonKe luar

, tu li s k od e berikut di antara

dan end;
Close;

Gambar Kode untuk tombol ButtonKeluar

Langkah 4: Mengkompilasi Aplikasi


P ilih menu P roje ct | Comp ile [Na ma pr oyek]. Lan gkah ini bisa dipersingkat
dengan menekan tombol

Ctrl +F9.

Hasilnya adalah sebuah file .exe dan sebuah file .dcu.


Langkah 5 : Mendebug Aplikasi
Bisa dilakukan dengan menekan tombol

AR@2011

F8.

begin

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

6. PEMILIHAN
S eleksi kondisi (Pe miliha n) a dalah sala h sa tu unsu r pe mr og ra man yang
digunakan untuk melakukan seleksi terhadap suatu kondisi agar dapat dilakukan suatu
tindakan berikutnya. A da d ua je ni s se leksi kon disi yan g di ken al D elp hi, yaitu
seleksi menggunakan pernyataan
if dan dengan menggunakan pernyataan
case .
6.1. Pernyataan if
Ada dua bentuk pernyataan if , yaitu if...then
dan if...then ... else
Sintaks penulisan pemyataanif...then
adalah sebagai berikut:
if Ekspresi
then pernyataan

Ek spresi me nge mbalika n nilai Boole an. Bila


E kspresi bernilai benar (True), maka
Pernyataan akan dikerjakan. Sebaliknya, bila
Ekspresi bernilai salah (False), maka
Pernyataan tidak akan dikerjakan.
Contoh:
if NilaiUjian > 60 then Label.Caption := 'Lulus';
Untuk pernyataan if...then...else
sintaks penulisannya adalah sebagai berikut:
if Ekspresi then Pernyataan1 else Pernyataan2
Ek spresi me nge mbalika n nilai Boole an. Bila
E kspresi bernilai benar (True), maka
Pernyataanl akan dikerjakan, bila sebaliknya, maka
Pernyataan2 yang akan dikerjakan.
Contoh:
if NilaiUjian=100
then Label. Caption := 'Sempurna'
else
Label.Caption := 'Paculah prestasimu.';
Pada penjelasan di atas, pernyataan i f hanya diterapkan pada sintaks sederhana yang
menyertakan satu buah pernyataan. Pernyataan i f juga bisa diterapkan pada beberapa
buah pernyataan.
Sintaks penulisan if...then
pada beberapa buah pernyataan adalah sebagai berikut.
if Ekspresi
then
begin
Pernyataan1;
Pernyataan2;

PernyataanN;
end;

Sintaks penulisan if...then...else


berikut.
AR@2011

pada beberapa buah pernyataan adalah sebagai

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

if

Ekspresi
begin

then
Pernyataan1;

PernyataanN;

else

end;
begin

end;

PernyataanA;

PernyataanNN;

Ha l yan g p er lu d ipe r ha tika n a da lah jan ga n m e leta kka n ta nda titik - kom a ( ;)
d i a nta r a the n da n e lse . D i a nta r a the n d a n e lse h an ya b ole h di pisa h ka n ole h
sp as i da n atau pe nekanan tombol E nter
(carriage-r eturn). Ke salaha n yang ser ing
terjadi a dalah m ele takkan ta nda titik-koma (;) sebelurn else.
6.2. Pernyataan case
Pe rnyataan case m empu nyai dua bentuk, yaitu:
case...of
dan case... of...else
.
Bentuk pernyataan case ... of adalah sebagai berikut.
case

Pilihan
of
PilihanNomer1 : Pernyataan1;
PilihanNomer2 : Pernyataan2;

PilihanNomerN : PernyataanN;

end;
P i li ha n p a d a p e r n y a ta a n d i a t a s a d a la h se m b a r a n g ekspresi tipe
ordinal (bukan tipe string), sedangkan setiap
PilihanNomer adalah salah satu di
antara hal berikut ini.
Ang ka, kon sta nta yan g didekla ra sika n, a ta u sem bar an g ekspresi lainnya
yang dapat dievaluasi oleh compiler. Contohnya: 3, False, 1+2 * 3, X dapat
digunakan sebagai PilihanNomer.
S u b ja n g k a u a n m e m il i k i b e n t u k P e r t a m a . . Te ra khir . Con to hnya :
1. .10, 2 3..4 5 da pa t dig un aka n sebagai PilihanNomer.
S uatu daftar ya ng m em iliki bentuk ite m 1, ... , item N, di mana setia p item
me menuhi salah sa tu da ri persya rata n di atas.
Contoh:
case I of
1..5 : Label.Caption := "Rendah';
6..9 : Label.Caption := 'Tinggi';
0, 10..99 : Label.Caption := 'Di luar jangkauan';
end;

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

Bentuk pernyataan caseofelse adalah sebagai berikut.


case

else
end;

Pilihan
of
PilihanNomer1 : Pernyataan1;
PilihanNomer2 : Pernyataan2;

PilihanNomerN : PernyataanN;
Pernyataan;

Bentuk case...of
case

untuk pernyataan yang kompleks adalah sebagai berikut.

Pilihan
of
PilihanNomer1

begin
Pernyataanl;

end;
begin
Pernyataan2;

end;
begin
PernyataanN;

end;

PilihanNomer2

PilihanNomerN

end;
Bentuk case...of... else
case

untuk pernyataan yang kompleks adalah sebagai berikut.

P i li h a n
of
Pil ihanNomer1 :

PilihanNomer2 :

begin
Pe rnya taan 1;

end;

begin
Pe rnya taan 2;

end;
PilihanNomerN :

begin
Pe rnya taan N;

end;

else
begin
end;
end;

AR@2011

Pernyataan;

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

PROYEK - 3: Operasi Aritmatika


Buatlah pr og ram ya ng da pat mena nga ni be ber apa operasi aritmatika antara dua
variabel!

Tampilan Aplikasi Operasi Aritmatika

Penyelesaian
Langkah 1 : Mendesain Aplikasi
Rumus.
Rumus-rumus operasi; aritmatika sederhana, meliputi penjumlahan,
pengurangan, perkalian, pembagian, dan operasi mod.
Algoritma.
Masukkan variabel A
Masukkan variabel B
Pilih salah satu operasi:

+, - , x, , mod

Tulis hasilnya
Rancangan antarmuka aplikasi.

Rancangan Antarmuka Aplikasi Operasi aritmatika

Langkah 2: Membuat Proyek


Buat folder baru, misal di D:\ProyekDelphi\OperasiAritmatika.
Jalankan Delphi
Dari IDE Delphi, simpan proyek dengan perintah

File | Save ALL. Simpan

Unit1.pas dengan nama UnitAritmatika.pas dan Project1.dpr dengan nama Operasi


Aritmatika.dpr
AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

Buat antarmuka aplikasi, seperti rancangan diatas.


Gunakan Object Inspector , ubah beberapa properti seperti berikut:

Komponen Properti Ni lai


Form 1 Nam e
Labe l1

Ca ption
Nam e
Ca ption

Labe l2 Nam e
Ca ption
Edit1 Nam e
Text
Edit2 Nam e
Text
RadioGroup1 Nam e
Ca ption
Item s

Pa nel1

Nam e
Ca ption
BevelInner
BevelOuter
BevelWidth
BorderWidth

Button1 Nam e
Ca ption
Button2 Nam e
Ca ption

FormAritmatika
Operasi Aritmatika
LabelA
Variabel A
LabelB
Variabel B
EditA
(dikosongkan)
EditB
(dikosongkan)
RadioGroupAritmatika
Jenis operasi
Klik tombol [...], lalu
tulis lima baris kata sbb:
Penjumlahan
Pengurangan
Perkalian
Pembagian
mod
PanelHasil
(dikosongkan)
bvLowered
bvRaised
2
2
ButtonHitung
Hitung
ButtonKeluar
Keluar

Simpan perubahan yang telah dilakukan dengan perintah

Langkah 3: Menulis Kode


Klik ganda tombol ButtonHitung , lalu tulis kode berikut:

AR@2011

File | Save .

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

procedure
var

TFormAritmatika.ButtonHitungClick (Sender: TObject);

A,B : integer;
C : real;

begin
A := StrToInt(EditA.Text);
B := StrToInt(EditB.Text);
case RadioGroupAritmatika.ItemIndex
of
0: // penjumlahan
begin
C := A + B;
PanelHasil.Caption := A+B= + FloatToStr(C);
end;
1: // pengurangan
begin
C := A - B;
PanelHasil.Caption := A - B = + FloatToStr(C);
end;
2: // perkalian
begin
C := A * B;
PanelHasil.Caption := A * B = + FloatToStr(C);
end;
3: // pembagian
begin
C := A / B;
PanelHasil.Caption := A / B = + FloatToStr(C);
end;
4: // sisa pembagian
begin
C := A mod B;
PanelHasil.Caption := A mod B= + FloatToStr(C);
end;
end;
end.

Tampilan Operasi Aritmatiak saat dijalankan


AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

7. PENGULANGAN
P e r n ya ta a n p en g u l a n ga n m e m u n g ki nk a n ki ta un tu k melakukan sederetan
perintah/pernyataan secara berulang, m engg unakan suatu
. kondisi peng enda lian
atau variabe l u n tuk me n e ntu ka n ka p an p e r nya ta a n ter se b ut a ka n dihentikan.
D e lph i m e mi liki ti ga j en is ke n da li pe ng u lan g an , yaitu pernyataan
repeat,
while , dan for .
S e lain ti ga jen is ken da li pe n gu lan g an te r seb ut, D elp hi m e m i lik i d ua je n is
p r os ed u r ya n g da p a t di g un a ka n untuk m eng en dalikan pr ose s pe ng ulang an ,
yaitu Break
dan Continue . Break digunakan untuk menghentikan pengulangan,
sedangkan Continue akan memulai kembali pengulangan yang terhenti.
5.1 Pengulangan Repeat
Pernyataan pengulangan repeat...until
digunakan untuk mengulang pernyataan
atau beberapa pernyataan di dalam suatu blok prog ra m sam pa i d ip en uhinya suatu
kondisi tertentu.
Sintaks
Repeat
Pernyataan1;
;
PernyataanN;
until
Ekspresi
d i m an a Ek s pr es i a ka n m e ng e m ba li ka n se bu a h ni la i Boolean. Pernyataan repeat
akan melakukan sederetan perintah secara terus-menerus, menguji
Ekspresi setiap kali
selesai melakukan satu pengulangan (iterasi). Ketika
Ekspresi bernilai True, pernyataan
repeat akan dihentikan. Pe ng ulan ga n me ng gu na ka n
re peat pa ling tida k a kan
dijalankan satu kali karena Ekspresi tidak akan dievaluasi sampai setelah iterasi pertama
dilakukan.
Contoh:
repeat
until

x := x + 1;
x = 20;

5.2 Pengulangan while


Pengulangan
while mirip dengan pengulangan
repeat . Perbedaannya, pada
pengulangan while kondisi kendali dievaluasi sebelum peng ulangan pertama
dilakukan. Jadi, jika kondisi kendali bernilai False maka pernyataan tidak akan pernah
dijalankan.
Sintaks:
while Ekspresi
do pernyataan
AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

di m a na Ek spr es i me n ge mb alika n n ilai Boolea n d an pernyataan dapat berupa


pernyataan majemuk. Pengulangan
while akan menjalankan pernyataan secara
berulang, menguji Ekspresi sebelum menjalankan iterasi. Selama
Ekspresi bernilai True,
program akan terus dilakukan.
Contoh:
while Data[I] <> X
do I := I + 1;
5.3 Pengulangan For
Tid a k se p e r ti d ua j en is p e ng u la ng a n se be lu m nya , p ad a p e n g ul an g a nf or
h a r us d ite n tu ka n se ca r a je l as be r apa kali ite ra si a ka n dila kuka n. Ja di,
p en gula ng an for akan dilakukan sebanyak jumlah yang telah ditentukan.
Sintaks:
for Counter := InitialValue

to FinalValue

do Statement

atau
for Counter := InitialValue

downto FinalValue

do Statement

di mana
Counter adalah variabel lokal dengan tipe ordinal.
InitialValue dan FinalValue adalah ekspresi yang sesuai dengan
Counter.
Statement adalah pernya taan sederhana atau terstruktur yang tidak
mengubah nilai Counter.
p e r n ya ta a n f or a ka n m e ne r i m a n il a iI nit ial V alu e ke Co un te r , k e m u d ia n
m e n ja l a n ka n p e r n ya ta a n se ca r a be r ul an g , m en a m ba h a ta u m en g ur a ng i
C ou nter se tia p kali iter a si. P ada f or ...to, d ilaku ka n pr oses pe nam ba ha n Counter
sedangkan pada for ... downto dilakukan proses pengurangan
Counter.
Sa at Counter bernila i sam a deng an FinalValue, pe rnyataan akan dilakukan sekali lagi
dan kemudian proses pengulangan dihentikan.

Proyek-4 : Statistika
Buatlah program untuk menghitung jumlah & rata-rata dari data yang dimasukkan user.

Gambar Tampilan Aplikasi S tatistika

Penyelesaian

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

Langkah 1 : Mendesain Aplikasi


Rumus Jumlah X

Rata-rata

Algoritma
jumlah X
1. jumlah
0.0
2. i
0
3. Kerjakan baris 4 dan 5 sampai i = 5
4. i
i+1
5. jumlah
jumlah + x[ i ]
6. Tulis jumlah
Rata-rata
1. jumlah
0.0
2. I 0
3. Kerjakan baris 4 dan 5 sampai i = 5
4. 1
i+1
5. jumlah
jumlah + x[ i ]
6. RataRata
1/5 * jumlah
7. Tulis RataRata
Rancangan antarmuka aplikasi

Gambar Rancangan antarmuka aplikasi Statistika

Langkah 2: Membuat Proyek

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

Bua t folde r bar u, misa l di D :\P r oye kDe lphi\ Statistika


Jalankan Delphi
Dari IDE Delphi, simpan dengan perintah
File | Save A l l . S im p a nU nit1 .pa s
d en g a n n a m aUnitStatistika.pas dan Project1.dpr dengan nama Statistika. dpr
Buat antarmuka aplikasi seperti rancangan di atas.
Gunakan Object Inspector, ubah beberapa properti seperti berikut.

Komponen Properti Ni lai


Form1 Name FormStatistika
Caption Statistika
StringGrid1 Name StringGridData
ColCount 2
Options

[goFixedVertLine,
goFixedHorzLine,
goVertLine, goHorzLine,
goRangeSelect,goEditing]

R owC ou n 6
ScrollBars ssVertical
Button1 Name ButtonHitung
Caption Hitung
Button2 Name ButtonKeluar
Caption Keluar
Memo1 Name MemoHasil
Lines Klik tombol [...], lalu
Hapus Semua Teks
Caption ssVertical
Simpan perubahan yang telah dilakukan dengan perintah

File | Save

Langkah 3: Menulis Kode


Klik-ganda Form FormStatistika

di tempat kosong, tulis kode berikut ini.

procedure
TFormStatistika.FormCreate(Sender: TObject);
var i :
integer;
begin
StringGridData.Cells [0,0] := 'Nomer';
StringGridData.Cells [1,0] := 'Data';
for i := 1
to 5 do
StringGridData.Cells [0,i] IntToStr(i);
end;
Klik-ganda tombol ButtonHitung, tulis kode berikut ini.
procedure
AR@2011

TFormStatistika.ButtonHitungClick (Sender: TObject);

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

var I

: integer;
Jumlah, Mean : real;

begin
MemoHasil.Lines.Clear;
Jumlah := 0.0;
i := 0;
repeat
begin
i := i+1 ;
StringGridData.Cells[i,1];
MemoHasil.Lines.Add(StringGridData.Cells[1,i]);
Jumlah := Jumlah + StrToFloat(StringGridData.Cells[1,i));
end;
until
i=5;
Mean := Jumlah / 5;
MemoHasil.Lines.Add(' ');
MemoHasil.Lines.Add('Jumlah + FloatToStr(Jumlah));
MemoHasil.Lines.Add(' ');
MemoHasil.Lines.Add('Rata-rata + FloatToStr(Mean));
end;

Klik- ga nda tomb ol ButtonKe luar , tulis kode berikut.


procedure
TFormStatistika.ButtonKeluarClick(Sender: TObject);
begin
Close;
end;
end.

8.

SUBROUTINE

Rutin (routine) adalah blok program yang dapat dipanggil dari tempat berbeda di dalam
AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

program. Pada bab ini akan dibahas dua macam rutin, yaitu prosedur
fungsi (function).

(procedure) dan

6.1 Prosedur
Pr osedur adalah r utin yang tidak meng embalika n suatu nilai. Pemanggilan prosedur
dapat dituliskan sebagai suatu pernyataan.
Contoh:
HitungNilaiX;
Bentuk umum pendeklarasian prosedur
procedure NamaProsedur(DaftarParameter);
directives;
deklarasiLokal;
begin
... {statement-statement diletakkan disini}
...
end;
dengan
o NamaProsedur adalah sebarang identifier yang valid.
o Statement adalah urutan perintah yang akan dijalankan ketika prosedur
dipanggil.
o Daf tar Par am eter, dir ectives, da n dek larasiLokal bersifat opsional, boleh ada
ataupun tidak.
Contoh:
program ContohProsedur;
procedure CetakTulisan;
var i: integer;
begin
for i:=1 to 3 do
writeln ('Pemrograman Delphi');
end;
begin
CetakTulisan;
end.
6.2 Fungsi

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

Fungsi adalah rutin yang akan mempunyai nilai-kembalian (


return value ) bila dijalankan.
Pemanggilan fungsi dapat dilakukan dengan cara pernyataan penugasan (
assignment
statement ).
Pemanggilan fungsi tidak dapat diletakkan di sebelah kiri tanda assignment ( := ).
Contoh:
X := FungsiABC (Z);
Bentuk umum pendeklarasian fungsi
functionNamaFungsi(DaftarParameter):returnType;
directives;
localDeclarations;
begin
...{statement-statement diletakkan disini}
...
end;
dengan
o
o
o
o

NamaFungsi adalah sebarang identifier yang valid.


returnType adalah pengenal tipe.
Statement adalah urutan perintah yang akan dijalankan ketika fungsi dipanggil.
D aftar Par ame ter, dir ective s, da n dek lar asiLok al bersifat opsional, boleh
ada ataupun tidak.

Contoh:
program ContohFungsi;
var TulisanKu : string;
o
function CetakTulisan : string;
begin
writeln ('Pemrograman Delphi');
end;
begin
TulisanKu := CetakTulisan;
end.

PROYEK-5: Luas dan Volume Bola

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

Buatlah program untuk menghitung luas


dan volume bola menggunakan procedure!
Langkah 1 : Mendesain Aplikasi
Rumus

Algoritma
Luas Bola
1. Masukkan r
4*3.14*sqr(r)
2. LuasBola
3. Tulis LuasBola
Volum e Bola
1. Masukkan r
4/3 * 3.14*sqr(r) * r
2. VolumeBola
3. Tulis VolumeBola
Rancangan antarmuka aplikasi
Gambar Tampilan Aplikasi Luas

Langkah 2: Membuat Proyek

dan Volume Bola

Buat folder baru, di D:\ProyekDelphi\ LuasVolumeBola lalu Jalankan Delphi.


D ari ID E D elphi, sim pan pr oye k den gan pe rintah
File | Save All . Simpan
Unit1.pas dengan nama U nitL uas V olum eBol a.pa s da n P r oject 1.dp r dengan
nama ProsedurLuasVolumeBola. dpr
Buat antarmuka aplikasi seperti rancangan di atas.
Gunakan Object Inspector, ubah beberapa properti seperti berikut.
Komponen Pro perti Nil ai
Form1 Name FormLuasVolumeBola
Caption Luas dan Volume Bola
Label1
Name LabelR
Caption Jejari Bola
Edit1 Name EditR
Text 14
Panel1 Name PanelLuas
Text Luas bola
Panel2 Name PanelVolume
Text Volume bola
BitBtn1 Name BitBtnHitung
Caption &Hitung
BitBtn2 Name BitBtnKeluar
Caption &Keluar
S impa n pe ruba han ya ng te lah dila ku ka n de ng an perintah

AR@2011

File | Save .

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

Langkah 3: Menulis Kode


Akti fka n je nd ela Cod e E dito r, sisip ka n kod e berikut di bawah baris
{$R *.dfm}
procedure
LuasVolumeBola
(const
Luas,Volume: real);
begin
Luas := 4 * 3.14 * Sqr(Jejari);
Volume := 4 / 3 * 3.14 * Sqr(Jejari)*Jejari;
end;

Jejari: real;

Klik g and a tomb ol BitBtnHitung , tu lis kode berikut.


procedure
FormLuasVolumeBola.BitBtnHitungClick(Sender:
TObject);
var
JariJari : real;
LuasBola, VolumeBola : real;
begin
JariJari := StrToFloat (EditR.Text);
LuasVolumeBola (JariJari, LuasBola, VolumeBola);
PanelLuas.Caption := 'Luas bola + FloatToStr(LuasBola);
PanelVolume.Caption := 'Volume bola +
FloatToStr(VolumeBola);
end;
Klik- ga nda tomb ol BitBtn Kelua r , tu lis kod e berikut.
procedure
FormLuasVolumeBola.BitBtnKeluarClick(Sender:
TObject);
begin
Application.Terminate;
end;
end.

AR@2011

var

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

TAHAPAN PEMBUATAN FILE INSTALASI


Sebelum membuat file instalasi, maka anda diwajibkan untuk menginstalasikan dulu software
Instalshield Expressnya kedalam computer anda.
1. Langkah pertama Buat folder baru misal di drive C: bernama foldernya LatihanInstalasi,
anda akan membuat insataller untuk sebuah aplikasi. Pisahkan project anda yang terdiri
dari file executable dan databasenya kedalam folder tersebut agar tidakbercampur dengan
source code dari project yang anda buat.
2. Setelah itu baru jalankan instalshield express sehingga muncul tampilan utama seperti
[gambar-1] dibawah ini.

Gambar-1. Tampilan Utama Instalshield Express


3. kemudian pilih menu File lalu pil ih New maka akan ditampilkan dialog New Project seperti
[gambar-2].

Gambar-2. New Project

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

4. kemudian pada Project name and location klik gambar folder sehingga tampil dialog yang
menyuruh anda untuk menyimpan project anda, kemudian berinama misalkan, nama
filenya Latihan yang disimpan pada directory C:\my document kemudian klik Save.

Gambar-3. Dialog Penyimpanan File Project


5. Setelah itu akan kembali ke dialog New Project, kemudian pada isian project language, pilih
English, lalu tekan OK.
6. kemudian akan ditampilkan lembar project seperti [gambar-4], yang terdiri dari panel
treeview yang berisi Organize Your Setup, Specify Application Data, dan lainlain.

Gambar-4. Organize Your Setup

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

7. Kemudian langkah selanjutnya kita tinggal mengorganisaikan file setup anda, klik General
Information pada Organize Your Setup, sehingga terlihat tanda Ceklis, lalu pada panel kanan
isikan product properties seperti product name isi dengan nama Aplikasi Outlet, kemudian
product version dan yang lainnya bila perlu, namun pada baris
INSTALLDIR anda isikan
seperti berikut :
[ProgramFilesFolder]LatihanInstalasi
maksudnya file aplikasi akan
nanti akan tersimpan di dalam folder program files di drive C: dengan nama foldernya
LatihanInstalasi. Dan untuk isian yang lainnya boleh anda abaikan atau jika perlu isikan
informasi sesuai kebutuhan.

Gambar-5. Mengisi General Information

8. Selanjutnya masih pada Organize Your Setup pilih Features, Setup Types sehingga terlihat
tanda ceklis dan isiannya biarkan diset secara default atau jika perlu boleh anda isikan.
9. Selanjutnya pilih Specify Application Data, kemudian pilih Files sehingga diberi tanda ceklis,
selanjutnya pada panel kanan Feature isikan Always Install, kemudian pada Source
Computer folder s cari Folder LatihanInstalasi yang berisi file executable dan database
yang telah dipisahkan sebelumnya dengan cara mengklik tanda (+), kemudian kopikan file
executable beserta databasenya kedalam directory yang ada pada Destination Computer
Folders kemudian klik kanan lalu paste pada folder [program files]LatihanInstalasi beserta
databasenya. Atau bisa dengan cara drag and droup dari Source Computer folder s kedalam
directory yang ada di Destination Computer Folder s. seperti terlihat pada [gambar-6].
Keterangan Files tersebut nanti yang akan diinstalasikan kedalam computer.

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

Gambar-6. Memasukan file aplikasi yang akan diinstalasi

10. Selanjutnya masih pada Specify Application Data klik Object/Merge Modules hingga terlihat
tanda ceklis, nach disinilah kita akan menentukan file system serta driver yang dibutuhkan
oleh aplikasi database yang kita buat, namun untuk drivernya kita tidak perlu memasukan
semuanya cukup driver dan file system yang dibutuhkan oleh aplikasi kita, dan itu
tergantung dari aplikasi database yang kita gunakan misalnya databasenya menggunakan
fokpro atau akases maka kita hanya perlu driver seperti ADO Control, untuk akses atau
foxpro namun dalam hal ini kita ambil contoh aplikasinya dibuat dengan Delphi sehingga
memerlukan driver untuk paradox dan enginenya yaitu BDE, maka pada panel kanan ceklis
BDE_ENT sehingga akan ditampilkan dialog BDE Designer seperti [gambar-8] kemudian
anda klik Next, lalu pilih New BDE Configuration File, lalu klik Browse seperti pada
[gambar-9], maka akan ditampilkan dialog untuk menyimpan file konfigurasi beri nama file
missal config lalu save seperti [gambar-10]., kemudian klik Next kemudian akan
ditampilkan dialog berikutnya, lalu klik tombol Launch, maka akan ditampilkan dialog
konfigurasi untuk memilih driver database yang kita perlukan kemudian ceklis database
Interbase, Microsoft Driver Paradox, kemudian pada tab alias bisa anda isikan jika program
yang anda buat koneksi databasenya menggunakan alias dengan cara menekan tombol add
lalu pilih aliasnya, jika tidak bisa anda abaikan, setelah itu klik Close jika ada konfirmasi
untuk untuk menyimpan perubahan Klik Yes, Setelah itu klik Next Kemudian Finish.

Keterangan : Jik a proses konfigurasi berjalan lancar maka nanti dalam pendistribusian
program akan otomatis menginstal file system beserta driver yang diperlukan.

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

Gambar-7. Object/Merge Modul

Gambar-8. BDE Designer

Gambar-9. Membuat Konfigurasi BDE

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

Gambar-10. Menyimpan Konfigurasi

Gambar-11. Mendefinisikan Alias Database

Gambar-12. BDE Merge Modul Dengan Alias Database

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

Gambar-13. Dialog Konfigurasi BDE Selesai


11. Selanjutnya anda pilih Configure the target system, kemudian pilih shortcut/folder
kemudian pada panel kanan buat folder berinama LatihanInstalasi, lalu buat shortcut
dengan cara mengklik kanan pada folder start menu yang selanjutnya akan ditampilkan
dialog untuk menunjukan path target dari file executable program aplikasi yang akan dibuat
shorcutnya pilih file exe kemudian klik open, kemudian isikan nama shortcutnya.

Gambar-14. Membuka Path target shortcut program aplikasi.


12. Kemudian klik pada shortcut yang telah dibuat lalu pada panel kanan pada baris Working
directory isikan dengan memilih [INSTALLDIR]. Dengan menentukan [installdir] ini
berguna apabila program aplikasi yang kita buat tidak menggunakan alias database.

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

Gambar-15. Menentukan Working Directory Dari Shortcut.


13. Selanjutnya masih pada configure the target system pilih ODBC Resources, kemudian ceklis
file system yang diperlukan oleh aplikasi yang kita buat dalam hal ini dengan menceklis
Microsoft Paradox Driver dan pastikan features always installnya di ceklis.

Gambar-16. Menentukan/memilih ODBC Resources


14. Selanjutnya pilih Customize The Setup Appreance, kemudian pilih Dialog hingga terlihat
tanda ceklis.

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

Gambar-17. Dialog
15. Selanjutnya pilih Define Setup Requirement and Actions, kemudian pilih Requirement,
kemudian tandai pilihan spesifikasi minimal program dapat dijalankan seperti besarnya
RAM, Jenis Sistem Operasi, Jenis Procesor, Resolusi dan warna.

Gambar-18. Menentukan spesifikasi komputer yang digunakan


16. Selanjutnya pilih Prepare for Release, kemudian pilih Build Your Release hingga terlihat
tanda Ceklis, setelah itu pada panel kanan pilih single image.

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

Gambar-19. Menentukan Jenis File setup Yang Akan Di Compile


17. Langkah terakhir yaitu dengan memilih menu Build| kemudian pilih Build Single Image atau
dengan menekan tombol keyboard F7. setelah itu instalshield akan melakukan proses
compile bila tidak terjadi error, maka proses compile berhasil dengan menghasilkan file
setup yang nanti akan didistribusikan ke tiap computer. Adapun untuk file setupnya
tersimpan di directory ketika anda menyimpan project untuk pertama kalinya yaitu di:
C:\My Documents\Latihan\Express\SingleImage\DiskImages\DISK1\setup.exe

Gambar-20. Proses Compile

AR@2011

Modul Praktikum Algoritma Dan Pemrograman DIII Survei dan Pemetaan Unila 2011

Gambar-21. File instalasi hasil compile.


SELESAI, Anda telah berhasil membuat file setup untuk program aplikasi database, kini anda dapat
dengan mudah mendistribusikannya ke computer lain tanpa harus mengisntalasikan driver atau
file system, karena semua sudah include dalam satu file setup yang dibuat tadi, adapun untuk
menggunakan file setup/instalasi yang anda buat bisa dengan Double klik file setup yang telah di
buat tadi maka instalasi akan dijalankan setelah itu klik next dan ikuti instruksi selanjutnya. Setelah
selesai anda bisa lihat di start menu program terdapat instalasi aplikasi baru dengan nama
LatihanInstalasi.

AR@2011