var
panjang, lebar : integer;
procedure intro;
begin
writeln; writeln;
writeln('Hai, aku Pascal!');
writeln('Aku butuh bantuanmu.');
writeln('Aku sedang membuat kandang burung.');
writeln('Aku butuh papan segiempat');
writeln('Jika kamu punya. Beritahu aku.');
end;
procedure input;
begin
write('Berapa panjang papannya (satuan meter)? '); readln(panjang);
write('Berapa lebar papannya (satuan meter)? '); readln(lebar);
end;
function luas (a, b : integer) : integer;
begin
luas := a * b;
end;
function keliling : integer;
begin
keliling := 2 * (panjang + lebar);
end;
BEGIN
intro;
writeln;
writeln('Tentang papan persegi milikmu.....');
input;
writeln;
writeln('Hmm... kalau aku hitung-hitung.');
writeln('Luas papanmu adalah ',luas(panjang, lebar),' meter persegi.');
writeln('Dan keliling papanmu adalah ',keliling,' meter.');
writeln('Terima kasih. Aku membutuhkannya.');
readln;
END.
- Dari BEGIN ke END adalah program utama. Seperti variabel, sebelum digunakan prosedur dan fungsi harus dideklarasikan apa-apa saja perintahnya. Pendeklarasian terjadi sebelum program utama dan sesudah pendeklarasian variabel.
- Masing-masing fungsi dan prosedur bisa diberi nama. Nama itu berguna untuk memanggil fungsi/prosedur pada program utama. Coba lihat pada fungsi luas dan keliling. Kamu bisa lihat nama dari fungsi itu diberikan nilai, seperti luas := a * b dan keliling := 2 * (panjang + lebar). Itulah bagian dimana fungsi mengembalikan nilai nantinya.
- Fungsi itu mirip seperti variabel. Variabel hanya bisa dimasukan nilai, tapi fungsi bisa menjalankan perintah-peritah tertentu dan kemudian memiliki nilai. Oleh karena itu, pada nama fungsi, disertai juga tipe data, seperti pada function luas (a, b : integer) : integer. Lihat integer yang di bold berwarna merah, itu adalah penentuan tipe data dari fungsi luas.
- Bedakan dengan prosedur yang tidak mengembalikan nilai apa-apa. Prosedur hanya menjalankan kumpulan-kumpulan perintah.
- Coba kamu perhatikan fungsi luas dan keliling. Ada perbedaan? Saya sengaja membuat perbedaan itu supaya kamu dapat mengetahui variasi menulis fungsi. Pada fungsi luas, terdapat yang disebut parameter. Lihat, function luas (a, b : integer) : integer. Bagian berwarna merah disebut parameter. Pengertian mudahnya, parameter adalah pengambilan nilai. Coba lihat saat fungsi luas dipanggil, luas(panjang, lebar). Nah, sudah bisa menebak? Nilai a akan sama dengan nilai panjang, dan nilai b akan sama dengan nilai lebar. Seandainya kamu ganti seperti ini, luas(10, 12). Nilai a akan sama dengan 10 dan nilai b akan sama dengan 12. Got it?
- Kenapa fungsi keliling tidak menggunakan parameter? Manfaat menggunakan parameter, nilai asli variabel yang berhubungan tidak akan berganti nilai oleh karena menjalankan fungsi. Pada fungsi luas, variabel yang berhubungan adalah variabel panjang dan lebar. Terkadang, pada fungsi tertentu, nilai variabel itu perlu diubah-ubah, padahal kita masih butuh nilai aslinya. Oleh karena itu, variabel itu digantikan dengan variabel dalam parameter dengan mengambil nilai dari variabel panjang dan lebar. Tapi, jika tidak masalah menggunakan variabel aslinya, ya tidak perlu ada parameter.
- Terakhir, mengenai pemanggilan fungsi/prosedur. Memanggil fungsi/prosedur hanya tinggal menuliskan nama fungsi/prosedur itu. Oh iya, kamu bisa lho memanggil fungsi untuk mengisi nilai variabel, seperti ini: nilai := fungsi(3, 4); Variabel nilai nanti akan bernilai hasil dari pengembalian nilai fungsi.
var
angka : integer;
function faktorial (n : integer) : longint;
begin
if n > 1 then
begin
faktorial := n * faktorial(n - 1);
end else
faktorial := 1;
end;
BEGIN
write('Masukan angka: '); readln(angka);
writeln('Faktorial ',angka,' = ',faktorial(angka));
readln;
END.
- Kita memasukan (input) nilai pada variabel angka.
- Output writeln memanggil fungsi faktorial dengan memasukan nilai variabel angka sebagai parameter dan akan sama nilainya dengan variabel n.
- Misal nilai angka adalah 5, maka n juga 5.
- Mulai fungsi faktorial(5).
- Masuk ke percabangan fungsi faktorial. Program menjalankan cabang yang pertama, karena nilai n adalah 5 dan 5 nilainya lebih dari 1. Kemudian, fungsi faktorial mengembalikan nilai senilai 5 * faktorial(5 - 1). Artinya adalah 5 * faktorial(4).
- Fungsi faktorial dipanggil lagi. Kali ini dengan nilai n sama dengan 4. Program menjalankan cabang pertama lagi, karena nilai n masih lebih dari 1. Kemudian, fungsi faktorial mengembalikan nilai lagi senilai 4 * faktorial(4 - 1), yang artinya 4 * faktorial(3).
- Begitu seterusnya, fungsi faktorial dipanggil terus dengan nilai parameternya yang semakin berkurang.
- Hingga akhirnya pada saat nilai n sama dengan 2, fungsi faktorial akan mengembalikan nilai senilai 2 * faktorial(2 - 1), yang berarti 2 * faktorial(1).
- faktorial(1) dipanggil. Kali ini masuk ke cabang 2, karena nilai n tidak lebih dari 1, melainkan sama dengan 1. Kemudian, fungsi faktorial mengembalikan nilai 1.
- Apa kesimpulannya? Fungsi ini akan membentuk pola perkalian yang dalam Matematika disebut faktorial. Fungsi faktorial(5), menghasilkan: 5 x 4 x 3 x 2 x 1 = 120.
"Rasa ingin tahu adalah kekuatan hebat yang mendorong eksperimen dan yang menghasilkan pengetahuan. Rasa ingin tahu adalah hal penting meraih kesuksesan."
terima kasih atas blognya .. saya sudah bljar dri awal hingga fungis dan procedure ... mnurt saya sangat bagus .. saya awal blum mngerti skarng jdi mngerti pmrograman pascal (sebagian) .. dijlaskannya lebih jelas lagi agar dpt lbih cepat memahami .. alhamdulilla saya udh paham pascal yg dijelaskan di blog ini .. oke terimakasih good luck
BalasHapusBest website ever, dari semua web/blog yg gw kunjungin, ini yang paling jelas
BalasHapusmakasih
Good blog
BalasHapusthank u, sangat membantu
BalasHapus