I T E N A S
Institut Teknologi Nasional
Jurusan Teknik Informatika
DASAR
ALGORITMA DAN
PEMROGRAMAN
Disusun Oleh
Uung Ungkawa, Ir. MT
Pendahuluan
Dalam kuliah ini akan dipaparkan pengenalan (dasar) bahasa pemrograman untuk menyamakan persepsi di antara mahasiswa baru. Topik yang akan disajikan adalah:
• Pemrograman • Algoritma • Flowchart
• Bahasa Algoritmik
• Bahasa Pemrograman: Pascal • Type Data
• Input/Output • Runtunan • Pemilihan • Pengulangan
• Pemrograman Modular
Sejarah Pemrograman
Ilmu pengetahuan dan teknologi tidaklah lahir begitu saja dari tidak ada ke ada. Tidak kecuali pemrograman dan komputer, mengalami sejarah yang bersamaan dengan matematika dan mekanika/elektronika. Berikut ini garis besar sejarah penemuan komputer dan pemrograman:
• 2400 SM: Abacus di Babilonia • 1115 SM: Differential gear • 500 SM: bil nol
• 300 SM: sistem bilangan biner • 87 SM: analog computer • 60 (M): Dasar Robotik • 724: Jam mekanik di Cina
• 820: Algoritma oleh Alkhawarizmi • 850: Kriptografi oleh AlKindi • 850: Musik yang bisa diprogram • 996 Jam mekanik roda gigi: Al Biruni • 1000: Komputer analog: Al Biruni
• 1015: Analog komputer untuk menentukan posisi bulan, matahari dan planet – Al Zarkali
• 1492: Klkulator mekanik – Leonardo da Vinci • 1588: Logaritma natural – Joost Buerghi • 1642: Kalkulator mekanik – Pascal
• 1811: tenun otomatis - Joseph-Marie Jacquard • 1822: Komputer mekanik – Babbage
• 1834: Analytical Engine: Program yang disimpan - Babbage • 1848: Aljabar Boole – George Boole
Pemrograman Komputer
Komputer merupakan mesin yang canggih yang dapat digunakan untuk berbagai keperluan kita. Sebelum digunakan, komputer harus diprogram agar dapat bekerja sesuai dengan kebutuhan kita.
Dahulu mesin diprogram secara perangkat keras, artinya bagian tertentu dari mesin diubah-ubah sedemikian sehingga cara kerjanya berubah sesuai kehendak kita. Dalam pemrograman sekarang, bagian mesin tidak berubah tetapi yang diubah kumpulan perintah yang berupa perangkat lunak. Kumpulan perintah demikian disebut program komputer.
Kumpulan perintah yang disebut program itu berupa kode-kode yang kita buat, misalnya kode demikian akan menjumlahkan dua angka berikutnya. Kode yang demikian lagi akan loncat ke instruksi berikutnya dan seterusnya. Kode-kode tersebut disebut bahasa mesin. Bahasa ini bebas ambigu (bermakna ganda) karena menterjemahkan dari satu ke satu (satu istilah bahasa asembli ke satu kode bahasa mesin)
Dalam perkembangan selanjutnya, bahasa mesin ini sangat rumit untuk diingat manusia. Maka dibuatlah bahas rakitan (assembly) yakni bahasa mirip bahasa manusia yang melambangkan bahasa mesin, seperti menjumlahkan dua angka seperti di atas dengan add. Tentu saja bukan add ini yang dimengerti atau dieksekusi oleh mesin tetapi tetap mesin itu menjalankan program dalam bahasa mesin. Di sinilah maka perlu penterjemahan bahasa rekitan ini ke dalam bahasa mesin. Dalam hal ini diperlukan perangkat uyang disebut assembler yang berfungsi menterjemahkan bahasa rakitan ke bahasa mesin.
tingkat tinggi ini ada dua: interpreter dan kompiler. Interpreter melakukan terjemahan langsung satu kalimat (statement) demi statement dan hasilnya langsung disajikan ke pengguna melalui layar monitor sedangkan kompiler melakukan penterjemahan sekaligus. Setelah menjadi bahasa mesin, baru program dapat digunakan.
Bagaimana program dijalankan komputer? Pemeran utama dalam komputer adalah prosesor. Pertama prosesor memuat program ke memori. Dari memori ini komputer membaca dan menjalankan program satu perintah, satu demi satu sampai selesai. Biasanya program disipan dulu di tempat penyimpanan (disk). Dari disk ini dimuat ke memori oleh prosesor.
Lalu apa bedanya program dengan software, secara sederhana, software merupakan kumpulan program. Apkah software itu kecil atau besar.
Pemrograman adalah Solusi
Kita sekarang dihadapkan pada berbagai produk canggih yang serba digital, angka. Kita sekarang berada di dalam abad digital. Selain komputer, kita melihat produk canggih lain seperti HP, ATM, pengendali pesawat, pengendali reaktor nuklir, internet dan lainnya. Semua itu perlu diprogram agar semua alat canggih itu bisa bekerja sesuai dengan kebutuhan kita seperti
• Bagaimana Mesin ATM bekerja? • Bagaimana HP Bekerja?
• Bagaimana komputer pengendali pesawat bekerja? • Bagaimana komputer pengendali reaktor nuklir bekerja? • Bagaimana internet bekerja?
• dsb dsb
Pemrograman adalah penterjemahan solusi yang ada pada kita untuk disalin ke dalam bahasa komputer. Dengan kata lain pemrograman adalah merumuskan solusi yang ada di dalam pikiran kita untuk dapat dikerjakan komputer. Seringkali kita tahu solusinya tetapi kita sulit menterjemahkannya (menjabarkannya) ke dalam bahasa mesin.
Program bisa dipandang sebagai proses yang mengolah input menjadi output:
Proses
Algoritma dan Diagram Alir
Algoritma merupakan sekumpulan perintah (instruksi) yang disusun secara berurutan, untuk dapat menghasilkan pengaruh yang sesuai dengan kebutuhan. Algoritma merupakan kumpulan tugas yang jika dikerjakan pada kondisi tertentu dengan proses tertentu akan dihasilkan kondisi tertentu pula. Sebagai ilustrasi, kita perhatikan algoritma untuk menanak nasi:
Asumsi awal, semua bahan dan alat tersedia. - Pertama ambil beras dengan jumlah tertentu. - Cuci beras sampai bersih.
- Masak air secukupnya. - Tunggu sampai mendidih.
- Jika air sudah mendidih, masukkan beras. - Tunggu lagi sampai mendidih.
- Kecilkan apinya agar tidak gosong. - Biarkan sampai airnya habis. - Kecilkan lagi apinya.
- Tunggu sampai matang
- Nasi sudah matang (kondisi akhir).
Diagram Alir
Diagram alir dapat dipandang sebagai visualisasi algoritma. Dengan diagram alir kita dapat lebih mudah memahami algoritma. Dengan demikian diagram alir ini dapat digunakan untuk mengkomunikasikan algoritma yang kita buat kepada pihak lain dengan lebih baik dan juga untuk dokumentasi algoritma agar kelak kita mudah memahami kembali algoritma yang telah kita buat.
Berikut ini beberapa bentuk umum diagram alir yang paling sering digunakan:
Terminator: Mulai/Selesai Proses
Ambil Beras dan Cuci
Mulai
Masak air
Tunggu sampai mendidih
Mendidih? Tidak
Masukkan Beras
Kecilkan apinya
Mendidih? Tidak
1
1
Tunggu sampai mendidih
masak? Tidak
Tunggu sampai nasi masak
Selesai
Penghubung dalam halaman yang sama. Diberi nomor pada bagian yang disambung
Notasi Algoritmik
Notasi Arti
write(x, y) tuliskan nilai x dan y a b isikan nilai b ke a a < b apakah a lebih kecil b? a > b apakah a lebih besar b? +, -, *, / tambah, kurang, kali, bagi
Tugas
Buatlah algoritma, diagram alir dan notasi algoritmik untuk tugas berikut: 1. Menjumlahkan kedua bilangan?
Pengantar Bahasa Pascal
Sejarah Bahasa Pascal
Pascal dikembangkan pada tahun 1970 oleh Niklaus Wirth sebagai bahasa yang ringkas dan efisien. Bahasa ini dirancang untuk pemrograman modular, pemrograman terstruktur dan struktur data.
Pascal diturunkan dari bahasa Algol dan nama Pascal diambil untuk menghormati matematikawan dan filosof Perancis Blaise Pascal. Mulanya Pascal digunakan untuk mengajarkan pemrograman terstruktur kepada para mahasiswa.
Pada era pemrograman berorientasi objek, Pascal menjadi Object Pascal atau Delphi.
Karakteristik
Bahasa pemrograman Pascal merupakan bahasa tingkat tinggi. Karakteristik lain adalah:
• General purpose: Bahasa ini digunakan untuk berbagai jenis keperluan dan terapan.
• Terstruktur: Program dipandang sebagai suatu tugas yang kemudian dibagi (dirinci) menjadi beberapa tugas. Setiap tugas bisa dibagi (dirinci) lagi menjadi beberapa tugas yang lain
• Bertype: Data dideklarasikan dalam jenis tertentu
• Imperatif: tersusun dari sekumpulan perintah tertentu yang harus dilaksanakan. • Sekuensial: berurutan; perubahan urutan akan mengubah hasil.
• Tidak case-sensitif (case-insensitif): tidak membedakan huruf besar/kapital dan kecil
Struktur Program
Program Pascal terdiri dari: Header
Blok
Deklarasi Label Konstanta Definisi Jenis Variabel
Contoh Program Pascal
Program HitLuasLing; {header atau kepala}
Var {deklarasi}
jari2, luas : real; {Minta alokasi tempat di memori}
Begin {blok Pernyataan program}
readln(jari2); {input}
luas := 3.14 * sqr(jari2); {Proses}
writeln(‘Luas : ‘, luas) {Output}
end. {Akhir program}
Struktur Program di atas terdiri dari nama program yaitu HitLuasLing yang berarti program untuk menghitung luas lingkaran. Kurung kurawal merupakan tanda untuk komentar, untuk memberi catatan ketika membuat program. Bagian ini tidak diproses oleh kompilator. Baris kedua ada bagian deklarasi variabel yang ditandai dengan Var,
digunakan untuk memberi tahu komputer (kompilator) agar menyediakan ruang di memori (alokasi) untuk variabel sebanyak yang dibutuhkan (tergeantung jenisnya). Di sini ada dua jenis variabel real yaitu jari2 dan luas.
Bagian yang diawali begin dan diakhiri end merupakan bagian utama (tubuh) program. Program terdiri dari input, proses dan output. Di sini input berupa jari-jari yang dilambangkan dengan variabel jari2 dan diberi nilai melalui operasi readln yang berarti membaca data dari piranti input (di sini layar monitor). Setelah operasi readln, variabel jari2 yang semula tidak tertentu nilainya, sekarang mengandung data jari-jari. Prosesnya berupa menghitung luas yang dilambangkan variabel luas. Fungsi sqr()
adalah fungsi di dalam Pascal untuk menghitung pangkat dua (square) karena luas merupakan pi dikali kuadrat jari-jari. Nilai pi didekati dengan 3,14. Tanda * merupakan perkalian di dalam Pascal dan tanda := berarti hasil perhitungan diberikan
ke sisi kiri (di sini variabel luas). Variabel luas yang semula tidak diketahui (tidak tentu) nilainya sekarang bernilai luas lingkaran. Outputnya berupa menampilkan isi variabel luas melalui writeln ke piranti output (di sini monitor juga).
Latihan
1. Ubah program di atas agar pengguna tahu bahwa dia harus memberikan nilai jari-jari ke komputer
2. Ubah program di atas untuk bisa menghitung luas dan keliling lingkaran sekaligus, serta tampilkan keduanya
2. Menukar nilai dua buah variabel.
Bagian-Bagian Program
Komentar
Komentar digunakan untuk memberi catatan pada program dan tidak diproses oleh kompiler. Komentar diawali { atau (* dan diakhiri } atau *).
Pengenal
Pengenal (identifier) digunakan untuk memberi nama pada unsur program seperti label, konstanta, variabel dan lainnya.
Pengenal terdiri dari huruf, angka, dalam susunan apa saja kecuali yang pertama harus huruf.
Huruf besar atau kecil diperbolehkan dan tidak dibedakan.
Pengenal tidak boleh sama dengan kata yang dicadangkan (reserved words) untuk bahasa Pascal.
Label
Label digunakan untuk menomori baris program (pernyataan), digunakan untuk perintah goto. Harus dideklarasikan sebelumnya.
Contoh:
Label 10, selesai …
10 : read(a); …
Goto 10; …
Goto selesai …
Selasai: …
Konstanta
Konstanta adalah pengenal yang digunakan untuk nilai yang tetap. Contoh:
CONST pecahan = 0,166667;
Deklarasi Jenis
Digunakan untuk deklarasi jenis baru yang kita buat sendiri: Contoh:
Variabel
Pengenal untuk variabel, nilai yang bisa berubah. Contoh deklarasi:
Var
nomor : integer;
Jenis Data
Jenis data sederhana terdiri dari: Standard:
Integer: bilangan bulat Real: bilangan real Char: karakter
Boolean: nilai boolean (benar/salah) user-defined (bentukan)
enumerated (terbilang) subrange
Jenis data yang lain adalah yang terstruktur yang terdiri dari: array
record set file Pointer
Operasi Data Sederhana
• Operator
– biner: a+b – uner: not(a)
Operasi Integer:
Operator Arti Operan Hasil
+ penjumlahan integer integer
- pengurangan integer integer
DIV Pembagian terpotong integer integer
Mod Sisa pembagian integer integer
• Contoh operasi integer: • Misal a = 13, b = 5 a+b = 18
a-b = 8 a*b = 65 a div b = 2 a mod b = 3 a/b = 2.6
Real
Operator Arti Operan Hasil
+ penjumlahan real real
- pengurangan real real
* perkalian real real
/ pembagian real real
Boolean
Operator Arti= Sama dengan?
<> Tidak sama dengan? < Lebih kecil?
> Lebih besar?
Char
chr(65)=‘A’ ord(‘A’) = 65 pred(‘B’) = ‘A’ succ(‘A’)=‘B’Jenis Enumerated
type hari = (Ahad, Senin, Selasa, Rabu, Kamis, Jum’at, Sabtu)
pred(Ahad) -- run-time error
pred(Senin) = Ahad ord(Ahad)=0 ord(Selasa)=2 Ahad < Senin = true
write(pred(Senin)); -- compile error.
write(ord(Senin)) tertulis 1
Jenis Subrange:
mengambil sebagian dari rentang data:
type nama = data_pertama .. data_terakhir
Contoh:
type hari = (Ahad, Senin, Selasa, Rabu, Kamis, Jum’at, Sabtu) harikerja = Senin .. Jum’at;
bulan = 1..12; tanggal = 1..31;
Fungsi Standard
Fungsi Arti jenis jenis hasil
cos(x) menentukan nilai cosinus int, real real
exp(x) menentukan ex.
e=2.718282..
int, real real
ln(x) menghitung log natural int, real real odd(x) menentukan x apakah ganjil
atau genap
int boolean: true jika ganjil
ord(x) menentukan nilai untuk repr x
char integer
pred(x) menentukan nilai sebelumnya
int, char, boolean
seperti x
round(x) membulatkan ke nilai terdekat
real int
sin(x) nilai sinus int, real real
sqr(x) menentukan nilai x kuadrat int, real seperti x sqrt(x) menentukan akar x int, real real succ(x) menentukan nilai
sesudahnya
int, char, boolean
seperti x
trunc(X) memotong nilai pecahan real int
Fungsi Contoh
abs(x) abs(-0.3)=0.3 chr(x) chr(65)=‘A’ odd(x) odd(5) = true ord(x) ord(‘A’)=65
pred(x) pred(3)=2, pred(‘e’)=‘d’, pred(true)=false round(x) round(2.3)=2, round(3.7)=4
succ(x) succ(3)=4, succ(‘e’)=‘f’, succ(true)=false trunc(X) trunc(2.3)=2, trunc(3.7)=3
Presedensi
Presedensi Operator
1 (tertinggi) not
3 + - or
4 (terendah) = <> < <= > >=
Ungkapan (Ekspresi)
• Ekspresi:
sekumpulan operan (bilangan, konstanta, variabel) yang disatukan oleh operator untuk membentuk suku seperti aljabar yang mempunyai nilai
• Contoh: (b*b – 4*a*c)/(2*a)
Pernyataan (statement)
• Pernyataan: instruksi atau sekumpulan instruksi yang menyebabkan komputer melakukan suatu tindakan.
• Pernyataan:
– sederhana (tunggal) – majemuk (compound) • Contoh:
sederhana:
D := (b*b – 4*a*c) majemuk:
Begin
read (radius);
luas := 3.14159*sqr(radius); write(radius, luas)
End.
Input dan Output Data
Data input dan output:
a. Dapat disimpan di dalam file yang akan dibaca dan ditulis pada saat program berjalan
b. Diberikan atau disajikan melalui layar dan keyboard Contoh:
Read dan Readln
Sintaks:
read(var2_input); readln(var2_input);
Perbedaan keduanya:
Fungsi EOLN dan EOF
– eoln memberi nilai true jika mencapai akhir baris – eof memberi nilai true jika dijumpai akhir file
Write dan Writeln
Sintaks:
write(data2_output); writeln(data2_output);
Perbedaan keduanya:
writeln menyebabkan write atau writeln berikutnya menuliskan outpun di baris baru, sedangkan write tidak demikian
•
Contoh 1VAR p1, p2, p3, p4 : integer; .
. read(p1, p2); read(p3, p4);
file input berisi: 1 2 3 4 5 6 7 8
Hasil: p1=1, p2=2, p3=3, p4=4
•
Contoh 2VAR p1, p2, p3, p4 : integer; .
. readln(p1, p2); readln(p3, p4); file input berisi: 1 2 3 4 5 6 7 8
Hasil: p1=1, p2=2, p3=5, p4=6
Contoh 1:
writeln(‘a ’, ‘b ’); writeln(‘c ’, ‘d ’); Hasil:
a b c d
Contoh 2:
write(‘a ’, ‘b ’); writeln(‘c ’, ‘d ’); Hasil:
a b c d
Contoh 3:
writeln(‘a ’, ‘b ’); write(‘c ’, ‘d ’); Hasil:
a b c d
Contoh 4:
write(‘a ’, ‘b ’); write(‘c ’, ‘d ’); Hasil:
Output Berformat:
– Menentukan lebar medan data Sintaks:
data : lebar Contoh:
write(‘Jumlahnya adalah’, j : 4);
jika j=-15 hasilnya adalah
Jumlahnya adalah -15
Contoh:
write(‘Jumlahnya adalah’, j : 3);
jika j=-15 hasilnya adalah
Jumlahnya adalah-15
Contoh:
write(‘Jumlahnya adalah’, j : 4);
jika j = 5 hasilnya adalah
Jumlahnya adalah 5
Contoh:
write(‘Jumlahnya adalah’, j : 3);
jika j=15000 hasilnya adalah
Menentukan Jumlah angka desimal:
data : lebar_medan : jumlah_angka_desimalContoh:
Jika j = 12345.678
pernyataan Hasil
write(‘J =‘, j) J = 1.2345678E+04
write(‘J =‘, j : 12) J = 1.23457E+04 write(‘J =‘, j : 18) J = 1.23456780000E+04 write(‘J =‘, j : 10 : 3) J = 12345.678
write(‘J =‘, j : 8 : 1) J = 12345.7
Struktur Kontrol
• Loop Bersyarat vs Tidak Bersyarat
– Bersyarat: Melakukan pekerjaan berulang, berhenti karena kondisi tertentu
– Tidak Bersyarat: melakukan pekerjaan berulang sampai hitungan tertentu
• Eksekusi Bersyarat
– Dieksekusi jika kondisi tertentu terpenuhi
While – Do
loop bersyarat (kondisional) Sintaks:
While ungkapan_boolean Do pernyataan Contoh:
digit:=1;
while digit <= 10 Do Begin
writeln(digit); digit:=digit+1 End;
Repeat - Until
loop bersyarat (kondisional) Sintaks:
Repeat pernyataan2 Until ungkapan_boolean Contoh:
digit:=1; repeat
Begin
writeln(digit); digit:=digit+1 end
Until digit > 10;
For - Do
loop tidak bersyarat Sintaks:
for var_kontrol := nilai_1 to nilai_2 Do pernyataan Contoh:
juml := 0;
for hit := 1 to n Do Begin
readln(x); juml:=juml+x end;
writeln(‘Jumlah = ‘, juml);
Nested (Bersarang)
Bersarang: Struktur kontrol bisa berada di struktur yang lain (embedded). Struktur dalam tidak harus sama dengan struktur luar
Struktur yang tercakup (embedded) seluruhnya berada dalam struktur luar Tdk ada overlap: tercakup sebagian
Contoh
For lp := 1 to lpmak Do Begin
repeat … until hit > n; …
end
If – then – else
Struktur kontrol bersyarat: tindakan diambil jika kondisi terpenuhi Sintaks:
If ungkapan_boolean then pernyataan Contoh:
If hitungan <= 100 then hitungan := hitungan + 1;
Case – of
Kontrol kondisional yang memungkinkan sekelompok pernyataan dipilih Sintaks:
Case ungkapan of
label_kasus_1 : pernyataan_1; label_kasus_2 : pernyataan_2; …
label_kasus_n : pernyataan_n End
Contoh:
Case pilihan of
‘M’ : writeln(‘Merah’); ‘J’ : writeln(‘Jingga’); ‘K’ : writeln(‘Kuning’) End
Goto
Digunakan untuk loncat ke suatu titik (label) Sintaks:
Label 10, selesai …
10 : read(a); …
Goto 10; ..
Prosedur dan Fungsi
Prosedur dan Fungsi merupakan wujud pemrograman modular. Modul (Prosedur dan Fungsi) menangani sub (bagian) masalah.
Modul digunakan jika ada bagian program yang akan dikerjakan beberapa kali (berulang) dari banyak tempat.
Program menjadi lebih ringkas.
Program lebih mudah dipahami (logical clarity).
Prosedur
ProsedurBagian struktur program, dikenal sebagai subroutine. Diacu dengan namanya, diikuti parameter jika ada.
Parameter berada di dalam tanda kurung, dipisahkan dengan koma jika banyak Mengacu prosedur berarti mengakses atau memanggil.
Jika prosedur dipanggil, kendali berpindah ke prosedur dan jika sudah selesai, kendali kembali ke pemanggil.
Prosedur bisa bersarang (nested)
Cakupan Nama (scope)
Pemrograman modular mengenal variabel/konstanta global dan lokal Program
global
Prosedur1 lokal1
Prosedur2 lokal2
•Variabel/konstanta global dikenal di seluruh program
•Variabel/konstanta lokal1 dikenal di Prosedur1 saja
•Variabel/konstanta lokal2 dikenal di Prosedur2 saja
Variabel Global
– Variabel global sedapat mungkin dihindari karena perubahan pada nilai variabel global harus diketahui oleh semua pengguna agar tidak menimbulkan kekeliruan. Ini sulit dilakukan.
– Jika kita mengambil nilai variabel global, kita tidak tahu mungkin nilainya sudah tidak valid.
– Komunikasi data/informasi (yang besar) sulit diwujudkan dengan variabel global
Parameter
Digunakan untuk komunikasi data antar prosedur/program. Solusi terhadap masalah variabel global.
Parameter aktual: parameter milik pemanggil. Parameter formal: parameter milik prosedur.
Jumlah param aktual dalam pemanggilan harus sama dengan jumlah param formal. Type param aktual sama dgn type param formal.
Contoh
Program x;
Var a, b, c, d: real; (* aktual *)
procedure p(x, y: real); begin
(* mengolah x dan y *) end;
Begin …
p(a, b); (* aktual *) …
Parameter Nilai
Parameter input karena merupakan input (sudah bernilai) bagi prosedur.fungsi. Dalam kasus ini nilai parameter aktual diberikan ke formal dan parameter aktual harus sudah bernilai sebelum pemanggilan atau berupa konstanta, ungkapan.
Nilai param aktual tetap.
Ini disebut juga komunikasi data dgn nilai (pass by value) Contoh
Program x;
Var a, b, c, d: integer;
procedure p(x, y: real); begin
(* mengolah x dan y *) end;
Begin … p(2, 3); … p(1, 2); … End.
Parameter Variabel
Nilai parameter aktual disubstitusi ke formal. Nilai aktual mengikuti formal. Dideklarasikan dengan VAR di dalam tanda kurung.
Ini dikenal sebagai komunikasi data dengan acuan (pass by reference)
Contoh
Program x;
Var a, b, c, d: real; (* aktual *)
(* mengolah x dan y *) end;
Begin …
p(a, b); (* mengikuti x, y *) …
p(c, d); (* mengikuti x, y *) …
End.
Fungsi
Seperti prosedur kecuali ada pengembalian satu nilai Deklarasi
Function nama_fungsi(param) : jenis_nilai Contoh
Function faktorial (n : integer) : integer; var faktor:integer;
begin … end;
Rekursi
Pascal mengenal rekursi: prosedur/fungsi yang memanggil dirinya sendiri.
Karena itu harus ada cara untuk mengakhiri pemanggilan agar tidak terus looping. Contoh
Function faktorial (n : integer) : integer; var faktor:integer;
begin
if n<= 1 then faktorial := 1; (* mengakhiri rekursi *) else
faktorial := n*faktorial(n-1); (* setiap pemanggilan n berkurang 1
Lampiran
Turbo Pascal for Windows
Jika belum ada, install program • Cara:
– Dari cd, klik install.exe – Biarkan melakukan install
– Jika sudah selesai instalasi, klik ganda TPW atau dari menu start All Program
– Muncul window integrated development environment (IDE)