3. DEKLARASI TIPE (TYPE DECLARATION)
Deklarasi tipe biasanya digunakan bila kita bekerja dengan ARRAY atau larik. Deklarasi Tipe mempunyai banyak sekali jenis dan type yang ditanganinya, saya tidak bisa menjelaskannya satu persatu kepada Anda dikarenakan terbatasnya space atau ruang yang disediakan pada situs ini, disamping itu pokok bahasan tutorial ini adalah PEMROGRAMAN DELPHI, saya kuatir nantinya pokok bahasan tersebut tidak bisa dimuat karena keterbatasan ini. Untuk itu saya sekali lagi menugaskan kepada Anda untuk mencari dari situs atau media lain mengenai DEKLARASI TYPE ini.
Contoh Program yang menggunakan deklarasi tipe
|
{ Program : Contoh penggunaan deklarasi tipe
Design By : Suryatekno©2008 }
uses crt;
type J = array[1..8] of string[20];
const
Jadwal : J=('Mandi','Sarapan','Meeting',
'Menemui Pak Badrun','Pulang',
'Mandi','Makan Malam','Istirahat');
var
I : word;
begin
clrscr;
writeLn('Jadwal Hari ini');
writeLn('===============');
writeLn;
for I:=1 to 8 do
writeLn(' ',I,'. ',Jadwal[I]);
writeLn('Tekan enter untuk Keluar.....');
readLn;
end.
4. DEKLARASI LABEL (LABEL DECLARATION)
Deklarasi label adalah suatu deklarasi yang digunakan untuk memberi tanda (MARK) pada program agar program dapat berpindah atau meloncat pada tanda (MARK) yang ditentukan. Deklarasi ini mirip dengan bahasa PEMROGRAMAN BASIC yang menggunakan NOMOR BARIS untuk berpindah dari baris ke baris. Penulisan Deklarasi label ini harus menggunakan perintah LABEL yang dipisahkan dengan tanda koma ( , ).
Contoh program yang menggunakan deklarasi Label.
|
{ Program : Memilih dengan deklarasi Label
Design By : Suryatekno©2008 }
uses crt;
label
1,2,3,4,keluar; {Deklarasi label yang ditentukan}
var
ketik,ulang : char;
begin
1: { label ke - 1 sebagai pokok program }
clrscr;
writeLn('Menu Masakan Hari ini');
writeLn('---------------------');
writeLn;
writeLn('a. Nasi Putih + Rendang');
writeLn('b. Nasi Putih + Telur Dadar');
writeLn('c. Nasi Putih + Tempe Goreng');
writeLn;
writeLn('Masukan Huruf a , b atau c untuk Pesanan Anda.');
write('Pilihan Anda..? ');readLn(ketik);
{ Jika user memilih pilihan tersebut, maka program akan
meng-eksekusi program sesuai dengan LABEL yang dituju }
if ketik='a' then
begin
goto 2;
end;
if ketik='b' then
begin
goto 3;
end;
if ketik='c' then
begin
goto 4;
end
{ User tidak memilih atau salah dalam memasukan pilihan
selain yang ditentukan maka program akan meng-eksekusi
program yang lainnya, dalam program ini akan ditampil
kan kalimat "Anda tidak pesan apa-apa." lalu
meng-eksekusi LABEL keluar yang mengakhiri program }
else
begin
clrscr;
writeLn('Anda tidak pesan apa-apa.');
writeLn('Mungkin Anda tidak Lapar..);
writeLn;
writeLn('Tekan Enter untuk keluar..');
readLn;
goto keluar;
end;
2: { label ke - 2 bila user memilih pilihan a }
clrscr;
writeLn('Pesanan Anda Nasi Putih + Rendang, Terima Kasih.');
writeLn;
write('Pilih Lagi..(y/t) ? ');ReadLn(ulang);
if (ulang='y') or (ulang='Y') then
begin
goto 1;
end
else
begin
goto keluar;
end;
3: { label ke - 3 bila user memilih pilihan b }
clrscr;
writeLn('Pesanan Anda Nasi Putih + Telur Dadar,Terima Kasih.');
writeLn;
write('Pilih Lagi..(y/t) ? ');ReadLn(ulang);
if (ulang='y') or (ulang='Y') then
begin
goto 1;
end
else
begin
goto keluar;
end;
4: { label ke - 4 bila user memilih pilihan c }
clrscr;
writeLn('Pesanan Anda Nasi Putih + Tempe Goreng,Terima Kasih.');
writeLn;
write('Pilih Lagi..(y/t) ? ');ReadLn(ulang);
if (ulang='y') or (ulang='Y') then
begin
goto 1;
end
else
begin
goto keluar;
end;
keluar: { label keluar yang mengakhiri program }
end.
|
Penulisan label bebas sesuai dengan keinginan anda, bisa sebuah kata atau karakter, yang penting nama label tidak boleh sama dengan nama variabel, type, atau konstanta yang anda tetapkan. Bila itu terjadi maka kemungkinan akan terjadi konflik variabel dalam pengeksekuasian program. Contoh diatas akan terus dilakukan selama anda memilih pilihan yang di tetapkan. Ada cara yang lebih praktis ketimbang menggunakan LABEL yaitu dengan printah CASE - OF yang akan dibahas nanti.
4. DEKLARASI PROSEDUR (PROCEDURE DECLARATION)
Deklarasi prosedur adalah sebuah deklarasi yang dibuat dalam program agar bisa digunakan lagi dalam program, jadi deklarasi prosedur merupakan sebuah SUB PROGRAM yang bisa dipanggil sewaktu-waktu dalam program bila dibutuhkan. Dalam sebuah program yang terstruktur, Deklarasi Prosedur ini sangat dibutuhkan agar program menjadi lebih simpel. Untuk mengerti arti dari PROSEDUR ini saya berikan contoh kasus sebagai berikut : misalkan ada sebuah proses yang yang harus dikerjakan berulang kali untuk menampilkan kata "SURYATEKNO" , maka dalam program yang terstruktur kata tersebut disimpan dalam sebuah prosedur yang dapat dipanggil lagi dimanapun kata tersebut diperlukan.
Contoh program yang menggunakan Deklarasi Prosedur.
|
uses crt;
{ini adalah prosedur dgn nama s
yang akan menampilkan kata suryatekno}
Procedure s;
begin
write('Suryatekno');
end;
{akhir prosedur}
{program utama}
begin
clrscr;
s; { prosedur yang dipanggil }
WriteLn(' adalah suatu organisasi yang menghimpun');
writeLn('orang-orang yang mempunyai minat sama.');
writeLn;
s; { prosedur yang dipanggil }
writeLn(' juga merupakan sebuah kelompok belajar.');
writeLn;
writeLn('Tekan Enter untuk keluar...');
readLn;
end.
{akhir program utama}
|
Prosedur mempunyai banyak jenisnya, disini saya hanya akan menjelaskan suatu prosedur yang mudah-mudah saja agar anda sebagai pemula mengerti dalam menggunakan prosedur ini.
Prosedur yang paling terkenal adalah Prosedur REKURSI (RECURSION PROCEDURE) . Prosedur ini adalah sebuah prosedur yang menggunakan sendiri prosedurnya, jadi prosedur ini adalah prosedur yang memakan prosedur . Contoh kasus proses rekursi yang rumit adalah sebagai berikut :
Anda diminta untuk memindahkan sebuah piringan yang berbeda satu dengan yang lainnya secara satu persatu dari sebuah tumpukan ke tumpukan yang lainnya, dengan syarat piringan yang lebih kecil tidak boleh berada dibawah piringan yang lebih besar, dan pemindahan nya harus satu persatu tidak boleh sekalian. Lihat gambar.
Rekursi yang rumit, disebut juga sebagai MENARA HANOI
Anda harus memindahkan piringan yang berjumlah 20 buah piringan yang berbeda dari menara A ke menara C, untuk keperluan tersebut Anda diberikan sebuah menara lagi yaitu menara B. Yang menjadi pertanyaan adalah : Berapa kali Anda memindahkan sebuah piringan yang sama, dan berapa langkah yang Anda tempuh serta berapa lama Anda memindahkannya ?. Sebagai bantuan lagi Anda diberikan contoh untuk 2 buah piringan sebagai berikut : Pertama Anda pindahkan piringan yang ke 2 ke menara B lalu pindahkan piringan ke 1 ke menara C setelah itu pindahkan piringan ke 2 yang berada di menara B ke menara C selesai ( Ingat piringan yang lebih kecil tidak boleh berada dibawah piringan yang besar..! ). Sekarang cobalah untuk 20 piringan yang ditugaskan kepada anda !.
Pusing menghitung nya yah..?, kalau pusing berapa langkah yang Anda tempuh untuk tugas itu, dibawah ini saya berikan contoh program yang memakai prinsip REKURSI untuk menghitung langkah yang diperlukan. serta akan diperlihatkan piringan mana saja yang akan dipindahkan terlebih dahulu, Anda bisa saja memasukan 1000 piringan misalnya, tetapi Anda harus sabar menunggunya, sebab bila Anda memasukan waktu yang diinginkan sebesar 1 detik saja untuk setiap piringan, berarti Anda harus sabar menunggu program untuk menghitung dan memperagakan kepada Anda selama 3 Hari. Untuk contoh ini cobalah Anda masukan Tugas memindahkan piringan diatas dengan bantuan program ini..hehehe malas ni yeee .
|
Uses crt;
{ Awal Prosedur Rekursi }
procedure MenaraHanoi(Jumlah : Integer;
Sumber,Tujuan,Bantuan : Char;
var Langkah,Jumlah_A,
Jumlah_B,Jumlah_C,Waktu : Integer);
Var
Baris_Sumber,Kolom_Sumber,
Baris_Tujuan,Kolom_Tujuan : Integer;
Begin
if Jumlah > 0 Then
Begin
MenaraHanoi(Jumlah-1,Sumber,Bantuan,Tujuan,
Langkah,Jumlah_A,Jumlah_B,Jumlah_C,Waktu);
Langkah := Langkah+1;
if Sumber = 'A' Then
Begin
Kolom_Sumber := 30;
Baris_Sumber := 24-Jumlah_A;
Jumlah_A := Jumlah_A-1;
End
Else
if Sumber = 'B' Then
Begin
Kolom_Sumber := 40;
Baris_Sumber := 24-Jumlah_B;
Jumlah_B := Jumlah_B-1;
End
Else
Begin
Kolom_Sumber := 50;
Baris_Sumber := 24-Jumlah_C;
Jumlah_C := Jumlah_C-1;
End;
if Tujuan = 'A' Then
Begin
Kolom_Tujuan := 30;
Jumlah_A := Jumlah_A+1;
Baris_Tujuan := 24-Jumlah_A;
End
Else
if Tujuan = 'B' Then
Begin
Kolom_Tujuan := 40;
Jumlah_B := Jumlah_B+1;
Baris_Tujuan := 24-Jumlah_B;
End
Else
Begin
Kolom_Tujuan := 50;
Jumlah_C := Jumlah_C+1;
Baris_Tujuan := 24-Jumlah_C;
End;
Delay(Waktu*1000);
GotoXY(Kolom_Sumber,Baris_Sumber); Write(' ');
GotoXY(Kolom_Tujuan,Baris_Tujuan); Write(Jumlah);
GotoXY(18,24); Write(Langkah);
MenaraHanoi(Jumlah-1,Bantuan,Tujuan,Sumber,
Langkah,Jumlah_A,Jumlah_B,Jumlah_C,Waktu);
End;
End;
{Akhir Rekursi}
{Program Utama}
Var
Jumlah, Langkah : Integer;
Sumber,Bantuan,Tujuan : Char;
I,Baris : Integer;
Jumlah_A,Jumlah_B,Jumlah_C : Integer;
Waktu : Integer;
Begin
ClrScr;
Write('Berapa Piringan Yang akan dipindah ? ');
ReadLn(Jumlah);
Write('Waktu yang Anda inginkan (0-32) detik ? ');
ReadLn(waktu);
ClrScr;
GotoXY(25,24); WriteLn(' Sumber Bantuan Tujuan');
For I:=Jumlah DownTo 1 Do
Begin
Baris := 23-(Jumlah-I);
GotoXY(30,Baris); WriteLn(I);
End;
Langkah := 0;
Sumber :='A';
Bantuan :='B';
Tujuan :='C';
Jumlah_A := Jumlah;
Jumlah_B := 0;
Jumlah_C := 0;
GotoXY(1,24); Write('Jumlah Langkah = ');
MenaraHanoi(Jumlah,Sumber,Tujuan,Bantuan,
Langkah,Jumlah_A,Jumlah_B,Jumlah_C,Waktu);
ReadLn;
End.
{Akhir Program Utama}
|
5. DEKLARASI FUNGSI (FUNCTION DECLARATE)
Deklarasi fungsi adalah deklarasi gabungan antara deklarasi Prosedur, type dan variabel. Kumpulan deklarasi ini disediakan oleh pascal untuk mempermudah dalam penyusunan program sehingga berbentuk sebuah fungsi. Pada sebuah fungsi komponen-komponen dari ketiga deklarasi tersebut dijadikan satu kesatuan yang dapat digunakan pada program yang majemuk. Adapun tata cara penulisan deklarasi fungsi adalah sebagai berikut :
Tata Cara Penulisan Deklarasi Fungsi
Dari gambar diatas terlihat bahwa ketiga deklarasi yang telah diuraikan sebelumnya dijadikan satu kesatuan yang lebih simple dan praktis. Untuk lebih jelasnya cobalah Anda ketik di editor Pascal program dibawah ini, setelah itu Anda jalankan program tersebut dengan perintah RUN.
|
{ Program contoh Deklarasi fungsi
create by : Suryatekno@2008 }
Function Hasil(A,B,C : longint) : longint;
Begin
Hasil := A*A+B*B+C;
end;
Var X,Y,Z : longint;
Begin
WriteLn('Hasil dari X^2 + Y^2 + Z adalah..?');
Write('Jika Nilai X = ');ReadLn(X);
Write('Dan Nilai Y = ');ReadLn(Y);
Write('Serta Nilai Z = ');ReadLn(Z);
Write('Maka Hasil dari X^2 + Y^2 + Z');
WriteLn(' adalah : ',Hasil(X,Y,Z);
{Hasil - adalah nama fungsi yang dipanggil}
WriteLn;
WriteLn('Tekan Enter untuk Keluar..');
ReadLn;
end.
|
Dari contoh program diatas, mungkin sebagian dari Anda ada yang bertanya mengapa fungsi yang dinyatakan dengan variabel-variabel A,B dan C bisa berhubungan dengan Variabel X,Y dan Z ?. Begini..,Fungsi yang dijabarkan dengan variabel A,B,C hanya merupakan operasi yang harus dikerjakan oleh fungsi Hasil := A*A+B*B+C; , jadi Variabel A,B dan C tidak bernilai atau kosong. Sedangkan Variabel X,Y dan Z adalah Variabel Identifier (Pengenal) yang Ada nilainya dan nilai ini harus dilaksanakan oleh fungsi seperti yang dikehendaki. Untuk lebih jelas lagi Sekarang cobalah Anda rubah baris program WriteLn(' adalah :,Hasil(X,Y,Z); dengan mengganti variabelnya dengan A,B dan C kemudian Anda RUN lagi, maka COMPILER PASCAL akan mengeluarkan peringatan bahwa variabel A,B,dan C tidak diketahui identitasnya (Unknow Identifier), sebab A,B dan C tidak bernilai. Bagian inilah yang harus Anda Pahami dan Perhatikan dengan serius tentang Tata Cara membuat Deklarasi Fungsi.
Kalau diterjemahkan dalam konteks bahasa manusia, perintah Hasil(X,Y,Z) adalah : Kerjakan Nilai yang ada dalam kurung, yang nilainya dimasukan melalui input keyboard dengan operasi Hasil , Dimana operasi tersebut adalah A*A+B*B+C dengan A sebesar X, B sebesar Y, dan C sebesar Z.. Paham..!!, Kalau belum paham juga saya menyerah.., tidak bisa menerangkan lagi kepada Anda secara detail mengenai fungsi ini, dan dapat membuat Anda mengerti.
|
Blog copy paste adalah blog yang saya buat Dari COPAS di dumay, Maaf dan trimakasih bagi semua pemilik artikel yang tercopas, saya tidal mengurangi ataupun menambahi dan penulis artikelpun ikut serta. SUKSES n seLAMAT bERkreASI.
text maarque kanan
salju
Rabu, 30 November 2011
DELPHI ADALAH PASCAL TAPI PASCAL BUKAN DELPHI
Langganan:
Posting Komentar (Atom)
Tidak ada komentar:
Posting Komentar