2. MODUL PEMROGRAMAN DASAR
PASCAL
DIGUNAKAN UNTUK MATERI KULIAH DAN PRAKTIKUM
Untuk Kalangan Sendiri
Tahun Ajaran 2010/2011
Oleh : I Ketut Adi Purnata
Pengenalan Algoritma
dan Struktur Dasar Bahasa Pascal
A. Sejarah Bahasa Pascal
2
3. Bahasa Pascal di desain pertama kali oleh Prof. Niklaus Wirth, Dari Polytechnic of
Zurich Swiss, pada tahun 1971. pascal di ciptakan sebagai penyederhanaan dari dari
bahasa slgol yang sudah ada sejak tahun 1960. Pada saat itu juga sudah ada bahasa
FORTRAN, C, Assembler dan COBOL.
Perbedaan mendasar dari pascal adalah digunakanya urutan tertentu
pemrograman yang berdasar atas konsep type data yang kuat, memerlukan deklarasi
variabel terlebih dahulu dan kendali program yang terstruktur. Bahsa ini di desain
sebagai alat bantu pengajaran bagi siswa di kelas / mata kuliah pemrograman (di
Polytechnic of Zurich,Swees).
Turbo Pascal (TP) adalah sebuah program compiler Pascal dari Borland
International yang dikeluarkan pada tahun 1983, yang merupakan implementasi
dar”Pascal User Manual and Report” [Jensen & Wirth]. TP merupakan bahasa
pemrograman yang sangat populer pada komputer-komputer ber-platform PC. TP
mengenalkan konsep IDE (Integrated Development Environment), sebuah tampilan /
lingkungan dimana programer dapat dengan mudah mengedit kode (dalam editor teks
yang kompatible dengan wordstar), menjalankan compiler, melihat kesalahan (bila ada
kesa;ahan penulisan kode program) dan dapat ’meloncat’ ke baris dimana kesalahan itu
ada. Pada saat itu, untuk memperbaiki kesalahan, seorang programmer harus keluar
dari editor, kembali ke DOS, menjalankan compiler, menuliskan kesalahan, membuka
kembali editor dst, namun sekarang kita dapat menggunakan versi for windows dimana
pengeditan lebih mudah dilakukan, misalnya TPW 1.5
B. Defenisi Algoritma
ALGORITMA adalah suatu urutan langkah-langkah (Steps) Yang disusun secara logis
untuk menyelesaikan masalah dengan menggunakan komputer.
Dengan kriteria sebagai berikut :
1. Setiap langkah/Step harus jelas dan pasti (Definite)
2. Diperbolehkan tanpa ada input tetapi minimal harus ada 1 output.
3. Jumlah langkah harus berhingga atau dengan kata lain harus ada stopping
criteria.
4. Ditulis dengan format yang mudah dipahami sehingga tidak menimbulkan arti
ganda.
5. Logika yang benar dan terstruktur dan semua operasi terdefensi dengan jelas.
Penyajian Suatu Algoritma :
Algoritma dapat disajikan dengan dua cara :
1. Secara Tulisan
3
4. - Struktur Bahasa / Diskripsi
- Pseudocode (kode semu)
2. Tehnk Gambar (Flowchart)
Simbol-simbol dalm Flowchart (Bagan Alir)
Terminator / Proses (awal / akhir)
Input /Output
Proses
Titik keputusan
Sambungan dalam satu halaman
Sambungan ke lain halaman
Arah arus
C. Aturan Dalam Bahasa Pascal
1. Nama File
Karena Pascal dibuat untuk digunakan dilingkungan DOS atau dilingkungan
Windows (TPW 1.5), maka biasakn menggunakan aturan penamaan file di DOS.
Jumlah karakter nama file adalah 8 karakter (8.3). Program yang dibuat dengan
pascal mempunyai ekstensi .PAS. (unit / uilitas : .TPU, .BGI, .CHR).
Tidak diperbolehkan :
1. awalan angka (misalnya : 1st_prog.pas)
2. mengandung karakter tidak lazim, misalnya : * , ! # ^ dst.
3. Mengandung spasi misalnya : Prog ku.pas
4
5. 2. Komentar
Komentar di Pascal ditulis dengan tanda :
(* ....Komentar....*) atau {....Komentar....}
Apapun yang ditulis di dalam tanda ini tidak akan dikerjakan oleh kompiler,
kecuali bila diikuti oleh tanda $, Misalnya { $ X+ } yang menunjukan simbol
direktif tertentu. Direktif digunakn agar compiler menggunakn kemampuan
tertentu dari prosesor.
3. Huruf Besar
Pascal tidak membedakan huruf besar atau kecil dalm penulisan perintah,
misalnya : sin(x), Sin(x), SIN(x). Kecuali penggunaan kata register, semata-
mata untuk kompatibalitas dengan bahasa C. Untuk kemudahan (dan kerapian),
penulisan variabel lebih baik diawali dengan huruf besar.
Misalnya : JumlahAkhir, Jumlah, Jumlah_Awal
D. Struktur Program Pascal
Skema dari program Pascal adalah sebagai berikut :
ALGORITMA BAHASA PASCAL
Algoritma nama_algoritma 1. Program nama_algoritma;
{kepala algoritma, berisi {program latiahan;}
penjelasan} 2. Bagian Deklarasi
Label (nama_labelnya);
Deklarasi Var(nama_variabelnya);
{ Berisi variabel yang telibat } Const(nama = nilai konstanya);
Procedure(Nama_prosedurnya);
Deskripsi Fuction (nama_fungsinya);
{ Berisi detail dari algoritma } 3. Bagian Pernyataan
Begin
< <ernyataan – pernyataan >
End.
Keterangan Struktur Program
1. Judul program (opsional)
Format : {judul program} atau program_nama program;
2. Deklarasi program :
Var {Variabel program}
Const {Constanta program}
Label {Label}
Funct {Function}
Procedure {Prosedur program}
5
6. Catatan :
Deklarasi program bersifat opsional khusus, artinya jika di perlukan maka
harus ada dalam program dan apabila tidak diperlukan maka boleh tidak dicantumkan.
Deklarasi program termasuk Identifier (pengenal), yaitu kata-kata yang diciptakan oleh
pemrogram untuk mengidentifikasi sesuatu.
Syarat Identifier :
a) Harus diawali oleh alphabet
b) Huruf besar / kecil yang digunakan dianggap sama
c) Penyusun dari sebuah identifier tidak boleh berupa : tanda baca, tanda relasi,
symbol arithmatik, karakter khusus atau reserved word.
d) Tidak boleh dipisahkan dengan spasi, apabila hendak dipisahkan maka harus
menggunakan tanda UnderScore ( _ )
e) Panjang identifier tidak dibatasi tetapi sebaiknya digunakan se-efektif mungkin.
3. Program Utama
Diawali dengan Begin dan diakhiri dengan End.
Kata-kata yang Tidak Boleh digunakan sebagai nama variabel
AND ASM ARRAY BEGIN
Case CONST CONSTRUCTOR DESTRUCTUR
DIV DO DOWNTO ELSE
END EXPORTS FILE FOR
FUNCTION GOTO IF IMPLEMENTATION
IN INHERITED INLINE INTERFACE
LABEL LIBRARY MOD NIL
NOT OBJECT OF OR
PACKED POCEDURE PROGRAM RECORD
REPEAT SET SHL SHR
STRING THEN TO TYPE
UNIT UNTIL USES VAR
WHILE WITH XOR PI
Perintah Dasar / Sederhana Pascal
Write(‘Text / Tulisan ‘,Variabel);
Perintah untuk menampilkan atau cetak dilayar monitor tanpa pindah baris
Writeln(‘Text / Tulisan ‘,Variabel);
Perintah untuk menampilkan / cetak dilayar monitor lalu pindah baris bawah
Read(Variabel);
Perintah utuk menginput / mengisi data tanpa pindah baris
Readln(Variabel);
Perintah untuk menginput / mengisi data lalu pindah baris
6
7. Contoh :
Listing Programnya
Program tulis;
Uses Crt;
Begin
Clrscr;
Writeln(’Saya’);
Write(’Belajar’);
Writeln(’Turbo’);
Write(‘Pascal’);
Write(‘Versi 7.1’);
Readln;
End.
Tekan ctrl F9 untuk eksekusi program
Hasilnya :
Saya
Belajar Turbo
Pascal Versi 7.1
Identifier / Pengenal Data
Digunakan untuk penamaan elemen-elemen deklarasi seperti label, Constanta, Type,
Variabel, Procedure, Function.
Syarat Identifier
Diawali huruf
Tidak boleh ada spasi / blank
Tidak boleh menggunkan reserved word
Tidak boleh menggunakn symbol khusus,kecuali underscore (tanda bawah)
Panjang maximal 63 charakter
Contoh :
Luas_Segi_Tiga
LuasSegiTiga
LuasS3
LS3
7
8. Tipe Data Dalam Turbo Pascal
Tipe data berfungsi membatasi jangkauan data yang akan dilaksanakan.
Macam-macam tipe data :
a) Tipe data standard, terdiri atas :
- Ordinal (Tipe data yang mempunyai urutan pasti / tidak mengandung decimal)
- Non-Ordinal
b) Tipe data terstruktur
c) Tipe data pointer
Tipe Data Standard
I. Type Ordinal
Tipe data yang mempunyai urutan pasti, dan masdih terbagi menjadi :
a) Type Integer (tipe data yang tidak mempunyai unsur desimal)
Type Jangkauan Ukura
Sortint -128....127 8 bit
Integer -32768....32767 16 bit
Longint - 32 bit
2147483648....2147483647
Byte 0....255 8 bit
Word 0....65535 16 bit
Operator-operator yang berlaku padatipe data integer, yaitu :
- Operator arithmatika : +, -, *, /, div, mod
- Operator logic : <, =, >, <=, >=, <>
Catatan : semua tipe integer adalah tipe ordinal.
b) Tipe Char (Karakter)
Tipe data tunggal yang berhubungan dengan tombol-tombol di keyboard.
Char adalah semua tombol yang terdapat pada keyboard atau lebih
lengkapnya semua karakter yang terdapat pada kode ASCII.
Catatan :
Apabila Char ingin dijadikan sebagai konstanta maka karakter yang
dimasukan harus diapit dengan tanda kutip satu. Dan apabila karakter itu
berupa tanda kutip satu maka harus diapit dengan dua tanda kutip satu.
8
9. Misalnya : ’A’
c) Tipe Boolean
Mempunyai nilai benar / salah. Operator yang penghubung untuk tipe boolean
adalah : =, <>, >, <, >=, <=
Boolean akan menghasilkan false jika nilai = 0 dan akan menghasilkan true
jika nilai = 1.
II. Real (Tipe data yang mengandung unsur desimal)
Tipe real dibagi menjadi 4 macam yaitu :
- Real ( 6 byte )
- Single ( 4 byte )
- Extended ( 10 byte )
- Double ( 8 byte )
Type Jangkauan Ketelitian Digit
Real 2.9e-39..1.7e38 11 – 12 digit
Single 1.5e-45..3.4e38 7 – 8 digit
Double 5.0e-324..1.7e308 15 – 16 digit
Extended 3.4e-4932..1.1e4932 19 – 20 digit
III. String (adalah kumpulan type data yang berbentuk karakter)
Tipe data string digunakan untuk menampung nilai dalam bentuk huruf,
dimana batas maximal adalah sebanyak 255 karakter.
Contoh :
Var nama : String [25] ;
Untuk pengolahan Type Variabel di atas, disediakan berbagai jenis operator
diantaranya :
Operator Kegunaan
+ Penambahan
- Pengurangan
* Perkalian
/ Pembagian Real Type
Div Hasil Bagi Integer
Mod Sisa Bagi Integer
:= Menyatakan Nilai
= Sama Dengan
< , <= Kurang dari sama dengan
9
10. > , >= Lebih dari sama dengan
<> Tidak sama dengan
Berhubungan dengan
Benar / Salah
Deklarasi Variabel
Adalah eleman data yang belum memiliki nilai dan nilainya dapat berubah ubah,
kecuali kita sengaja memberikan nilai awalnya.
Contoh :
USES CRT;
VAR Nama : String[25];
Nilai : Integer;
Begin
Write(’Nama Siswa :’);Readln(Nama);
Write(’Nilai Ujian :’);Readln(Nilai);
End.
Ctrl F9 lalu isi datanya
Deklarasi Konstanta
Adalah suatu elemen data yang sudah ada nilainya dan nilainya tetap.
Contoh :
USES CRT;
CONST Namasis = ’BUDI’;
IPK = 3.35;
10
11. Mutu = ‘A’;
Begin
Clrscr;
Write(‘Nama Siswa :’,Namasis);
Write(‘Nilai IPK :’,IPK);
Write(‘Mutu Ujian :’,Mutu);
End.
Ctrl F9
Nama Siswa : BUDI
Nilai IPK : 3.350000E+0
Mutu Ujian : A
Operasi Kondisional, String dan Struktur Kontrol
Selain operasi-operasi standard yang sudah kita bahas pada modul sebelumnya, operasi-
operasi tambahan untuk menyelesaikan permasalahan dalam pascal, di antaranya :
1. Operasi Aritmatika
Adalah operasi yang digunakan untuk menyelesaikan perhitungan-perhitungan
matematika, operasi yang bisa anda gunakan di dalam pascal diantaranya :
Fungsi Argumen Hasil Keterangan
Sqr(x) Integer/Real Integer/Real Menghitung kuadrat dari x
Sqrt(x) Integer/Real Integer/Real Menghitung akar kuadrat dari x
Trunc(x) Real Integer Memotong nilai x
Round(x) Real Integer Membulatkan nilai x
Contoh :
11
12. Trunc(19.8) Menghasilkan 19
Trunc(19.0001) Menghasilkan 19
Round(19.8) Menghasilkan 20 (pembulatan ke atas)
Round(19.0001) Menghasilkan 19 (pembulatan Ke bawah)
2. Operasi Kondisional (Pembandingan)
Adalah opersai yang digunakan untuk menyelesaikan masalah-masalah yang
berhubungan dengan pengambilan keputusan (benar/salah) dari satu atau lebih
kondisi (pernyataan), penggunaan Operator Kondisional biasanya disertai dengan
membandingkan dua atau lebih nilai.
Semua hasil dari Operator Kondisional, akan menghasilkan nilai dengan tipedata
Boolean, artinya akan menghasilkan nilai Benar / Salah ( True or False ).
Operator Pembanding yang bisa anda guinakan diantaranya :
Operator Keterangan Operator Keterangan
= Sama dengan <= Kurang dari sama dengan
< Kurang dari >= Lebih dari sama dengan
> Lebih Dari <> Tidak sama dengan
Adapun nilai-nilai yang bisa dibandingkan bisa berupa :
- Angka dengan Angka ( 14 < 10 ) bernilai False
- Huruf dengan Huruf (’A’ = ’B’) bernilai False
- Variabel dengan Angka (Umur < 17), Jika Umur :=10; bernilai True
- Variabel dengan Huruf (Nama =’Adi’),Jika Nama :=’Eko’; bernilai True
- Variabel dengan Variabel ( p <> L ), Jika P :=13; L :=10; bernilai True
Catatan : Variabel adalah tempat untuk menampung sebuah nilai
(Nilai yang bisa berubah-ubah)
Apabila terdapat lebih dari satu kondisi, maka anda bisa mencari hasil kebenaran
atau kesimpulan dari kondisi-kondisi yang ada dengan Operato Kondisional,
diantaranya :
A. NOT ( Bukan )
Operasi ini digunakn untuk mengingkari suatu pernyataan Boolean
( Kondisi )
Contoh :
NOT ( 14 < 10 ), maka akan bernilai True
B. AND ( Jika salah satu salah akan bernilai salah )
Operasi ini akan menentukan kesimpulan dari kondisi-kondisi yang ada
dengan kriteria Nilai hanya akan Bernilai True apabila semua kondisi
bernilai True.
Contoh :
( 14 < 10 ) AND ( 20 < 100 ), maka bernilai True
( 5 < 17 ) AND ( 14 <= 14 ), maka bernilai True
C. OR ( Jika salah satu benar akan bernilai benar )
Operasi ini akan menentukan kesimpulan dari kondisi-kondisi yang ada
dengan kriteria nilai yang akan bernilai True apabila ada salah satu saja
kondisi yang bernilai Benar ( True ), sehingga hanya kondisi (pernyataan)
12
13. yang semuanya bernilai False yang akan menghasilkan nilai/kesimpulan
yang salah.
Contoh :
( 14 < 10 ) OR ( 5 < 20 ), maka bernilai True
( 10 > 20 ) OR ( 3 > 2 ), maka bernilai True
3. Operasi String (Kumpulan Karakter)
Adapun Operasi – operasi yang bisa digunakan untuk memanipulasi nilai string
(Huruf), adalah sebagai berikut :
a. DELETE ( Var S : String, Index : Integer, Count : Integer );
Digunakan untuk menghapus sejumlah karakter dari sebuah nilai String.
Keterangan :
- Var S : String, adalah variabel tempat nilai string disimpan.
- Index : Integer, adalah dimulai dari posisi ke....
- Count : Integer, adalah sebanyak berapa karakter yang akan
dihapus.
Contoh :
Var S : String ;
S := ’DATUK’ ; Maka akan Menghasilkan : DAK
Delete ( S, 3, 2 ) ;
b. INSERT ( Source : String. Var S : Integer, Index :Integer ) ;
Digunakan untuk menambahkan sejumlah karakter dari sebuah nilai String.
Keterangan :
- Source : String, adalah sejumlah karakter (Huruf) yang akan
ditambahkan
Contoh :
Var S : String ;
S := ’DATUK’ Maka akan Menghasilkan : DA!!!TUK
Insert ( ’!!!’ , S, 3 )
c. COPY ( S : String, Index : Integer, Count : Integer ) ;
Perintah ini digunakan untuk menyalin (Copy) sejumlah karakter dari sebuah
nilai String.
Contoh :
Var S, Hasil : String ;
S := ’DATUK’ ; Maka akan Menghasilkan : ATU
Hasil := COPY ( S, 2, 3 ) ;
13
14. d. CONCAT ( S_ke1 [, S_ke2, ... , S_ke-n] : String);
Digunakan untuk menggabungkan beberapa String yang di tunjukan oleh
variabel S(n).
Contoh :
Const
Nama : String = ’PASCAL’ ;
Dll : String = ’dan keluarga’ ;
Var
Hasil : String ;
Begin
Hasil := CONCAT (’Bahasa’,Nama,’untuk anda’,Dll);
Write (Hasil);
End.
OUTPUT :
Bahasa Pascal untuk anda dan keluarga
e. POS (Var Substring : String , S : String) ; Menghasilkan angka
(Byte)
Digunakan untuk mencari posisi letak dari suatu string (ditunjukan oleh
substring)
Yang ada didalam nilai String yang lain (ditunjukan oleh s). Nilai yang
dihasilkan adalah berupa nilai byte yang menuinjukan letaknya. Bila bernilai
nol berarti nilai string yang di cari tidak ada.
Contoh :
Const
S : String =’ABCDEFGHIJKLMNOPQRSTUVWXYZ’ ;
Var
Substring : String ;
14
15. Posisi : Byte ;
Begin
Substring : = ’ I ’ ;
Posisi : = POS (Substring , S) ;
Write (’ Huruf ’,Substring,’berada pada karakter ke –’, posisi) ;
End.
OUTPUT :
Huruf I Berada pada karakter ke – 9
f. LENGTH (S : String) ; Menghasilkan angka (Integer)
Digunakan untuk menghitung panjang atau jumlah karakter yang ada di nilai
String yang ditunjukan oleh S. Hasil dari fungsi ini adalah nilai numerik
ineteger positif.
Contoh :
Var
NamaAnda : String[50] ;
Pangkar : Integer ;
Begin
Write (’Nama Anda : ’) ; Readln(NamaAnda);
Pangkar : = Length(NamaAnda);
Writeln(’Panjang nama anda adalah ’, Pangkar ,’ Karakter,’) ;
End.
OUTPUT : Nama Anda : TUKUL
Panjang nama anda adalah 5 karakter.
STRUKTUR CONTROL
15
16. Istilah control didalam pascal adalah perintah untuk mengontrol jalanya program,
sehingga dimungkinkan dalam sebuah program akan melakukan proses yang tidak
berurutan antara baris pertama dengan baris selanjutnya, atau program akan
mengabaikan perintah pada baris-baris kode tertentu sesuai kontrol yang diberikan.
Adapun macam-macam kontrol didalam pascal yakni :
Kontrol Percabangan (Switching and Branching) dan Kontrol Perulangan (Looping).
Kontrol Percabangan dan Penyelesaianya
Adalah perintah yang digunakan untuk menentukan /memilih blok statement
yang mana yang akan dikerjakan, dan mengabaikan blok statement tertentu.
Perintah yang bisa digunakan adalah:
1 . IF Stateman
IF, artinya JIKA, Adapun Bentuk dari penggunaan IF adalah secara :
a. IF Tunggal
Adalah IF yang hanya mempunyai satu pilihan, yakni {Blockstatement}.
Akan dieksekusi/dikerjakan apabila kondisi Bernilai Benar (True),
sehingga apabila Kondisi salah (False), maka akan langsung
mengeksekusi/mengerjakan perintah pada baris selanjutnya. Bentuk
Strukturnya :
IF (Kondisi ) Then { Blok Statement } ;
Contoh Praktek 1 :
Const
A : Integer = 10;
B : Integer = 250;
Begin
IF (A < B) Then Writein [` A Lebih kecil dari B `];
Write[` Belajar Struktur Percabangan`];
End.
? Outputnya (Harapdiisi sendiri) adalah :
Jawab :
A Lebih kecil dari B
Belajar Struktur Percabangan
? Jika A = 35, dan B = 24, maka Outputnya :
Jawab :
Belajar Struktur Percabangan
16
17. b. IF Majemuk dan Bersarang ( NESTED IF )
Adalah IF yang Mempunyai {Blok Statement Benar} Yang akan
dikerjakan apabila Kondisi Benar Kemudian Mengabaikan {Blok
Statement Salah}, dan sebaliknya.
Apabila Terdapat Lebih dari satu Baris Blok Statemetn, maka hendaknya
menggunakan pemisah BEGIN dan END; (end dengan titik koma).
Bentuk Penggambaran Flowchart nya adalah :
If ( umur < 17 ) Ya
Tidak
Fungsi Begin dan End adlah Untuk membatasi langkah program apabila
terdapat lebih dari 1 perintah/statement.
Adapun Struktur penulisannya :
IF ( Kondisi _ke_1 ) Then
Begin
{ Blok Statement Benar Kondisi ke – 1 };
IF ( Kondisi_Ke_2 }; Then
Begin
{ Blok Statement Benar Kondisi Ke – 2 } ;
{ Blok Statement Benar Kondisi Ke – 2 } ;
End Awas : TIDAK BOLEH ADA TITIK KOMA SEBELUM ELSE
ELSE
Begin
{ Blok Statement Benar Kondisi Ke – 2 } ;
{ Blok Statement Benar Kondisi Ke – 2 } ;
End ;
{ ini juga Blok Statement Benar Kondisi Ke – 1 };
End Awas : TIDAK BOLEH ADA TITIK KOMA SEBELUM ELSE
ELSE
Begin
{ Blok Statement Benar Kondisi Ke – 1 } ;
{ Blok Statement Benar Kondisi Ke – 1 } ;
End;
17
18. Struktur Kontrol, Readkey dan Goto Label
Statement Case...Of...
Adalah struktur kontrol yang biasanya digunakn untuk menentukan satu pilihan
dari daftar pilihan yang banyak. Kelebihan dari penggunakan kontrol adalah kita tidak
perlu membuat sebuah kondisi seperti halnya yang kita lakukan pada saat
menggunakan kontrol If Then Else.
Syntax :
CASE < selector > OF
< case – label 1 > : < perintah >
< case – label 2 > : < perintah >
ELSE Bila dibutuhkan fungsinya sama dengn ELSE pada If
< case – label X > : < perintah >
END;
Ingat !!!........ : Case...Of tidak mebutuhkan BEGIN tetapi memerlukan END ;
Struktur Case – Of mempunyai ungkapan logika yang disebut dengan selector atau
nilai /isi variabel yang dibacanya dan sejumlah perintah yang diawali dengan suatu case
label yang mempunyai tipe yang sama dengan selector. Perintah yang mempunyai case
label yang bernilai sama dengan nilai selector akan diproses sedangkan perintah lain-nya
tidak. Bila nilai selector diluar nilai-nilai yang ada pada case label maka struktur Case –
Of tidak dijalankan atau keperintah ELSE-nya.
Daftar case label dapat berupa sebuah konstanta, atau range dari konstanta yang bukan
bertipe real. Tipe variabelnya dapat berupa Integer atau Character.
Contoh jangkauan dari case label yang diberikan :
1 : nilai Integer 1
1,2,3,4 : nilai Integer 1,2,3,4
1..5 : nilai Integer 1,2,3,4,5
’A’ : nilai karakter A
’A’,’B’ : nilai karakter A,B
’A’..’D’ : nilai karakter A,B,C,D
’*’ : nilai karakter *
18
19. Contoh penggunaan Case – Of :
Var
Nilai : Char;
Grade : String [12];
Begin
Write (’ Nilai Huruf yang didapat ? ’) ;
Readln(Nilai) ;
Case Nilai Of
’A’ : Grade := ’ Sangat Baik ’ ;
’B’ : Grade := ’ Baik ’ ;
’C’ : Grade := ’ Cukup ’ ;
’D’ : Grade := ’ Kurang ’ ;
’E’ : Grade := ’ Gagal ’ ;
End;
Write (’ Grade yang kamu dapat = ’,Grade) ;
Readln ;
End.
Output dari program ini :
Nilai huruf yang didapat ? C Input yang dimasukan
Cukup
Pada contoh diatas yang dimaksud dengan SELECTOR adalah variabel NILAI dan CASE
LABEL adalah index A,B,...,E.
TAMBAHAN SYNTAK :
1. GOTO LABEL
Dugunakan untuk mengalihkan langkah eksekusi program kepad label yang
dituju.
Bentuk Umum : GOTO label Statement
Contoh :
Program Lat_GOTO ;
Uses Crt ;
Label Berpindah,Selesai ;
Begin
Clrscr ;
Writeln (’ Bahasa ’) ;
Goto Berpindah ;
Writeln (’ Basic ’) ;
Berpindah :
Writeln (’ Pascal ’) ;
Goto Selesai ;
19
20. Writeln (’ Cobol ’) ;
Selesai :
Readln ;
End.
2. READKEY
Readkey digunakan untuk memasukan satu karakter kedalam sebuah variabel
tanpa menampilkan berapa nilai yang diberikan di layar.
Contoh :
Program Lat_Readkey ;
Uses Crt ;
Label keluar ;
Var
Pilihan : Char ;
Begin
Clrscr ;
Write (’ masukan Pilihan : ’) ;
Pilihan := Readkey ;
Case (pilihan) Of
’a’ : Write (’ anda memilih menu MAKANAN pada daftar PAKET A ’) ;
’b’ : Write (’ anda memilih menu MAKANAN pada daftar PAKET B ’) ;
Else
Begin
Writeln (’ tidak ada daftar untuk menu tersebut ’) ;
Writeln (’ terima kasih sudah mencoba program ini ’) ;
Goto keluar ;
End ;
End ;
Write(’terima kasih telah makan di restouran kami ’) ;
Keluar ;
Readln ;
End.
20
21. Kontrol Perulangan dengan FOR . . TO . . DO
KONTROL PERULANGAN
Adalah perintah yang digunakan untuk menyelesaikan masalah-masalah yang
membutuhkan perulangan (Looping) dalam setiap mengeksekusi perintah-
perintah logika yang berada pada rentang yang terhingga (ada batasnya).
Penggunaan kontrol perulangan bertujuan untuk meng-efisien-kan pembuatan
program, sehingga programer tidak perlu menuliskan langkah-langkah program yang
sifatnya bisa diulang, cukup disederhanakan bentuk penulisanya dengan menggunakan
kontrol perulangan.
Gambaran :
Writeln (’ ADI ’) ; Bentuk ini bisa diulang, cukup menuliskan
Writeln (’ ADI ’) ; satu perintah saja, lalu di ulang sebanyak
Writeln (’ ADI ’) ; tiga kali.
Macam – Macam Bentuk Syntax Looping
Adapun perintah perulangan yang bisa kita gunakan sesuai dengan konsep dan
fungsinya adalah sebagai berikut :
1. FOR
Adalah perintah perulangan yang digunakan apabila jumlah atau banyaknya
perulangan yang akan dilakukan sudah diketahui, artinya perulangan menitik
beratkan pada berapa kali perulangan akan dilakukan.
Strukturnya adalah :
FOR [Variabel_Kontrol] := [Index_Awal] TO/Downto [Index_Akhir] DO
Begin
{Blok statement yang akan diulang}
End;
Keterangan :
21
22. Variabel_Kontrol : Variabel bertipe ordinal sebagai penampung perulangan
ke-...
Index_Awal : Nilai/Variabel bertipe ordinal dimulainya perulangan
Index_Akhir : Nilai/Variabel bertipe ordinal berakhirnya perulangan
TO : Secara Ascending (dari nilai Kecil ke nilai Besar)
Downto : Secara Descending (dari nilai Besar ke nilai Kecil)
Contoh :
Program Perulangan ; Di ulang sebanyak tiga kali
Outputnya :
ADI
ADI
ADI
Uses Crt ;
Var
Ulang : Integer ;
Begin
For Ulang := 1 To 3 Do
Begin
Writeln(’ADI’) ;
End;
End.
Outputnya :
5
4
3
2
1
Anda juga bisa menggunakan Opsi DOWNTO untuk mengulang secara Descending (dari
besar ke kecil), dan juga bisa memanfaatkan nilai yang ada pada Variabel_Kontrol sesuai
dengan kebutuhan anda.
Contoh :
For Bilangan := 5 Downto 1 Do
Begin
Writeln(Bilangan) ;
End ;
22
23. FOR TO DO Bertingkat / Majemuk
Adalah penggunaan perintah For To Do yang lebih dari satu bagian perulangan,
cara ini biasanya digunakan dalam memproses perulangan secara baris dan
kolom.
Baris : dari atas ke bawah
Kolom : dari kiri ke kanan
Catatan : struktur perulangan For To Do yang berada di bagian lebih dalam akan
diselesikan terlebih dahulu sebelum melanjutkan menyelesaikan bagian For To Do yang
lebih luar.
Contoh Program
1. Jika masukan baris dari keyboard = 5, maka :
*
* *
* **
* ***
* ****
Cara berfikir : .................???
Program Bintang ;
Uses winCrt ;
Var
baris, kolom : Integer ;
Jmlh : Integer ;
Begin
Clrscr;
Write (' Masukan Jumlah Baris : ') ; Readln (Jmlh) ;
For Baris := 1 to Jmlh Do
23
24. Begin
For kolom := jmlh-baris to jmlh-1 do
Begin
Write(' * ') ;
End;
Writeln;
End;
Readln ;
End.
2. Jika masukan baris dari keyboard = 5, maka :
* ****
* ***
* **
* *
*
Cara berfikir : .................???
Program Bintang ;
Uses winCrt ;
Var
baris, kolom : Integer ;
Jmlh : Integer ;
Begin
Clrscr;
Write (' Masukan Jumlah Baris : ') ; Readln (Jmlh) ;
For Baris := 1 to Jmlh Do
24
25. Begin
For kolom := baris to jmlh do
Begin
Write(' * ') ;
End;
Writeln;
End;
Readln ;
End.
Kontrol Perulangan While . . Do dan Repeat . .Until
Statemen While . . Do (Selama . . .lakukan)
While artinya selama , statemen ini digunakan bila satu atau lebih statemen akan
dieksekusi berulang kali sampai kondisi yang dinyatakan dalam statemen WHILE tidak
dipenuhi (FALSE).
Konsep :
1. Perulangan dititik beratkan kepada Selama apa perulangan akan dilakukan
2. Selama kondisi bernilai Benar, maka Kerjakan / Ulangi perintah didalam blok
perulanganya.
Bentuk umumnya :
While (kondisi) do
25
26. Begin
Blok statement atau perintah yang diulang ;
End;
Keterangan
Kondisi : ungkapan boolean (kondisi) yang digunakan sebagai syarat agar
statemen dikerjakan berulang kali.
Statemen : satemen tunggal atau statemen majemuk yang akan diproses ulang.
Adapun hal-hal yang digunakan dalam while :
Increment : adalah penambahan satu
Decrement : adalah perulangan satu
Inc (bilangan) ; Bilangan := bilangan + 1 ;
Inc (jumlah,bilangan) ; Jumlah := Jumlah + Bilangan ;
Dec (bilangan,2) ; Bilangan := Bilangan – 2 ;
Ini adalah pemberian nilai awal karena variable bilangan akan dikondisikan dalam while, dengan kata lain,
supaya ada nilainya
Contoh :
Program Selama ;
Uses crt ;
Var
Di dalam while terdapat kondisi, terletak di awal, artinya selama kondisi ini bernilai benar, maka perulangan
akan terus dilakukan, jadi perulangan akan berhenti apabila kondisinya sudah bernilai salah.
Bilangan Integer ;
Begin
Clrscr
Bilangan := 0 ;
While (bilangan < 10 ) do
Begin
Write(bilangan) ;
Ini adalah perintah yang harus anda buat agar perulangan mempunyai batas, sengaja harus anda buat dan
tentukan sehingga memungkinkan anda tidak terjebak di dalam perulangan yang tiada hentinya
Bilangan := Bilangan + 1 ;
End ;
Readln ;
End.
Statemen Repeat . . Until (Ulangi . . . Sampai)
Cara kerja statemen ini merupakan kebalikan dari statemen while. Karena untuk
statemen while, test penghentian looping (kondisi) ada di awal, tetapi untuk repeat ini
ada di akhir. Dan dalam statemen repeat ini proses berulang akan dilaksanakan terus
selama kondisi dipenuhi.
Konsep : Kerjakan/Ulangi perintah dalam blok perulangannya, sampai kondisi bernilai
Benar.
26
27. Konsep : Perintah perulangan Mionimal sekali dikerjakan, karena kondosi terdapat di
akhir.
Bentuk umumnya :
Repeat
Begin
Blok Statement atau peintah yang diulang
End ;
Until (kondisi) ;
Ini adalah pemberian nilai awal, karena variabel bilangan akan di kondisikan di akhir, dengan kata lain, supaya
ada nilainya.
Contoh :
Program Selama ;
Uses Crt ;
Var
Bilangan : Integer ;
Ini adalah perintah yang harus anda buat agar perulangan mempunyai batas, sengaja harus anda buat dan
tentukan sehingga memungkinkan anda tidak terjebak didalam perulangan yang tiada hentinya
Begin
Clrscr ;
Bilangan := 0 ;
Repeat
Begin
Write(Bilangan) ;
Bilangan := Bilangan + 1 ;
End;
Until (Bilangan > 10) ;
Ini adalah kondisi, terletak di akhir, dan disertai titik koma
Readln ;
End.
ARRAY atau Variabel ber – Index
Wacana :
27
28. Misal kita ingin menampilkan 3 buah bilangan yang dimasukkan dari keyboard oleh user,
selama ini menggunakan cara seperti dibawah ini :
Output :
Masukan Bilangan Ke – 1 : 25
Masukan Bilangan Ke – 2 : 700
Masukan Bilangan Ke – 3 : 1245
-------------------------------------------------
Bilangan Ke - 1 = 25
Bilangan Ke - 2 = 700
Bilangan Ke - 3 = 1245
Program tampilan_bilangan ;
Uses Crt ;
Var
Bil_satu : integer ;
Bil_dua : integer ;
Bil_tiga : integer ;
Begin
Clrscr ;
Write(’Masukan Bilangan Ke – 1 : ’) ; readln(Bil_Satu) ;
Write(’Masukan Bilangan Ke – 2 : ’) ; readln(Bil_Dua) ;
Write(’Masukan Bilangan Ke – 3 : ’) ; readln(Bil_Tiga) ;
Write(’----------------------------------------------------’);
Write(’Bilangan Ke – 1 = ’,Bil_Satu) ;
Write(’Bilangan Ke – 2 = ’,Bil_Dua) ;
Write(’Bilangan Ke – 3 = ’,Bil_Tiga) ;
Readln ;
End.
Meskipun outputnya benar, namun cara diatas mempunyai bebarapa kelemahan :
1. Bagaimana jika bilanganya diatas 100 ? pasti capek nulisnya ☺
2. Kita harus memakai dan mendeklarasikan banyak variabel.
3. Kalaupun dipecahkan dengan perulangan FOR TO DO, pasti bilangan-bilangan
yang di-input-kan tidak bisa ditampilkan, karena kita pasti hanya akan
menggunakan satu variabel saja.
Pemecahan/ Solusi dari ketidak efektifan untuk penanganan kasus diatas adalah dengan
menggunakan bantuan Variabel Ber-Index (ARRAY).
ARRAY adalah sebuah Variabel (yang fungsinya untuk menampung sebuah nilai),
namun mempunyai kemmpuan untuk menyimpan beberapa nilai yang ber –
tipe data sama dengan sekaligus kedalam elemen-elemen variabelnya yang
diwakili oleh Index of Array.
Pendeklarasian Array :
1. Ditulis dalam Blok Deklarasi Variabel
2. Membuat nama Variabel Array
3. Menentukan Jangkauan Index (berapa kotak mau dibuat)
4. Menentukan Tipe-Data dari nilai yang akan dimasukan kedalam Array
Bentuk umum Pendeklarasian Array :
Var nama : Array [Index] of Tipe-Data
Dengan
28
29. Var, array, of : kata kunci yang harus ada.
Nama : nama array yang akan dideklarasikan.
Index : batasan index yang akan ada pada array yang akan dideklarasikan misal :[1..3] dan [1..1000]
Tipe : tipe data array
Misal :
Var
Bilangan : Array [1 . . 3] Of Integer ;
Nama Variabel
Bilangan
25
1
Nilai yang disimpan dalam Array
700
2
1245
3
Index, dimulai dari Index Ke - 1
29
30. Memberikan nilai kedalam Array
Ada beberapa cara dalm memberikan nilai kedalam array, yakni secara langsung dengan
menggunakan operator penugasan ( :=), atau dengan menggunakan bantuan Perintah
Perulangan.
1. Dengan Menggunakan Operator Penugasan
Contoh :
Output :
5 + 10 = 15
5 + 7 = 12
10 + 7 = 17
Program tambah ;
Uses Crt ;
Var
Bilangan : Array [1..3] of Integer ;
Jumlah : Array [1..3] of Integer ;
Begin
Clrscr ;
Bilangan [1] := 5 ;
Bilangan [2] := 10 ;
Bilangan [3] := 7 ;
Jumlah [1] := bilangan[1] + bilangan[2] ;
Jumlah [2] := bilangan[1] + bilangan[2] ;
Jumlah [3] := bilangan[2] + bilangan[3] ;
Writeln(’---------------------------------------------’) ;
Writeln(bilangan[1],’+’, bilangan[2],’=’,jumlah[1]) ;
Writeln(bilangan[1],’+’, bilangan[3],’=’,jumlah[2]) ;
Writeln(bilangan[2],’+’, bilangan[3],’=’,jumlah[3]) ;
Writeln(’---------------------------------------------’) ;
Readln ;
End.
30
31. 2. Dengan Menggunakan Perintah Perulangan
Contoh :
Output :
Masukan bilangan ke-1 : 5
Masukan bilangan ke-1 : 10
Masukan bilangan ke-1 : 7
Bilangan ke-1 = 5
Bilangan ke-1 = 10
Bilangan ke-1 = 7
Program Tambah ;
Uses Crt ;
Var
Bilangan : Array [1..30] of integer ;
I , j : integer ;
Begin
Clrscr ;
Writeln(’----------------------------------------’);
For i:=1 To 3 Do
Begin
Write(’masukan bilangan ke-’,i,’ : ’); readln(bilangan[i]) ;
End;
Writeln(’----------------------------------------’);
For j:=1 To 3 Do
Begin
Writeln(’bilangan ke-’,i,’ = ’, bilangan[j]) ;
End;
Readln ;
End.
ARRAY DUA DIMENSI
Adalah Array yang digunakan dalam pemrosesan data/ nilai secara baris dan kolom.
Artinya Index-index yang ada adalah mewakili letak koordinat baris dan kolom.
Jadi anda bisa menggunkana bantuan FOR BERTINGKAT untuk bisa memasukan nilai-
nilai nya
Kedalam Array.
Contoh Kasus :
31
32. NILAI
NAMA PESERTA RATA-RATA
TUGAS QUIZ UTS UAS
SAPUTRA 40 45 65 55 51.25
ASTUTI 65 90 70 95 80.00
HENDRA 75 80 60 65 70.00
Untuk memasukan nilai ke dalam Array-nya, kita harus analisa terlebih dahulu,
sehingga :
1. Variabel NAMA, merupakan Array 1 Dimensi bertipe-data STRING, Sehingga :
’SAPUTRA’ Nama[1] ; cara : GOTOXY(1,3) ; Readln(NAMA[1]) ;
’ASTUTI’ Nama[2] ; cara : GOTOXY(1,4) ; Readln(NAMA[2]) ;
’HENDRA’ Nama[3] ; cara : GOTOXY(1,5) ; Readln(NAMA[3]) ;
2. Variabel NILAI, merupakan Array 2 Dimensi bertipe-data INTEGER, Sehingga :
40 NILAI [1,1] ; cara : GOTOXY(20,3) ; READLN(NILAI[1,1]) ;
45 NILAI [1,2] ; cara : GOTOXY(30,3) ; READLN(NILAI[1,2]) ;
65 NILAI [1,3] ; cara : GOTOXY(40,3) ; READLN(NILAI[1,3]) ;
55 NILAI [1,4] ; cara : GOTOXY(50,3) ; READLN(NILAI[1,4]) ;
65 NILAI [2,1] ; cara : GOTOXY(20,4) ; READLN(NILAI[2,1]) ;
90 NILAI [2,2] ; cara : GOTOXY(30,4) ; READLN(NILAI[2,2]) ;
: :
: :
60 NILAI [3,4] ; cara : GOTOXY(50,5) ; READLN(NILAI[3,4]) ;
3. Variabel RATA, merupkan Array 1 Dimensi bertipe-data REAL, Namun anda harus
menghitung beberapa jumlah nilai-nilainya, kemudian dibagi dengan 4,
sehingga:
RATA[1]:=(40+45+65+55)/4; Cara : GOTOXY(60,3) ; WRITE(RATA[1]:0:2);
RATA[1]:=(65+90+70+95)/4; Cara : GOTOXY(60,4) ; WRITE(RATA[2]:0:2);
RATA[1]:=(75+80+60+65)/4; Cara : GOTOXY(60,5) ; WRITE(RATA[3]:0:2);
Jadi Listing Perulangan yang bisa digunakan :
VAR
NAMA : ARRAY [1..3] OF STRING ;
RATA : ARRAY [1..3] OF REAL ;
NILAI : ARRAY [1..3,1..4] OF INTEGER ;
32
33. BARIS, KOLOM, JUMLAH : INTEGER ;
RATA1 : REAL ;
FOR BARIS := 1 TO 3 DO
BEGIN
Gotoxy(1,BARIS+2) ; Readln(NAMA[BARIS]);
Jumlah := 0;
FOR KOLOM := 1 TO 4 Do
Begin
Case KOLOM OF
1 : Begin
Gotoxy(20,BARIS+2);
Readln(NILAI[BARIS,KOLOM]);
End;
2 : Begin
Gotoxy(30,BARIS+2);
Readln(NILAI[BARIS,KOLOM]);
End;
3 : Begin
Gotoxy(40,BARIS+2);
Readln(NILAI[BARIS,KOLOM]);
End;
5 : Begin
Gotoxy(50,BARIS+2);
Readln(NILAI[BARIS,KOLOM]);
End;
End;
Jumlah := Jumlah + NILAI[BARIS,KOLOM];
End;
RATA[BARIS] := Jumlah / 4 ;
Gotoxy(60,Baris+2) ; Write(RATA[BARIS],:0:2);
END;
PEMROGRAMAN MODULAR
33
34. PROCEDURE dan FUNCTION
PEMROGRAMAN MODULAR
Catatan ini akan membahas mengenai ” Pemrograman Modular” . dimana
pemrograman modular ini merupakan salah satu kemudahan yang diberikan oleh Turbo
Pascal terhadap programmer, karena disini programmer dapat membagi program yang
sedang dibuatnya kedalam modul-modul program tertentu. Sehingga dapat menghindari
penulisan teks program yang sama berkali-kali dan dapat juga memudahkan dalam
melakukan pelacakan kesalahan dalam program yang sedang dibuatnya.
Ada 2 jenis pemrograman modular yang dibahas yaitu :
1. PROCEDURE (Prosedur)
2. FUNCTION (Fungsi)
PROCEDURE
Deklarasi :
Procedure nama procedure (daftar parameter) ;
{Deklarasi}
Begin
..........
..........
End ;
Pemanggilan Procedure :
Suatu procedure bukan merupakan program yang berdiri sendiri sehingga tidak
dapat dieksekusi secara langsung. Untuk itu suatu procedure memerlukan sebuah akses
pada program utama / modul lain yang berfungsi sebagai pemanggil. Sedangkan cara
pemanggilanya adalah dengan : menuliskan nama procedurenya berikut parameternya
(jika ada).
Hal-hal yang berhubungan dengan Procedure :
Ada beberapa hal yang berhubungan dengan penulisan sebuah procedure
program yaitu :
1. Variabel Global dan Variabel
Variabel Global adalah variabel yang dapat dikenali diseluruh bagian program,
biasanya variabel ini merupakan variabel yang dideklarasikan pada deklarasi
program umum.
Variabel Lokal adalah variabel yang dikenal pada lingkup yang lebih sempit dari
pada variabel global.
2. Parameter
Ada 2 Parameter yang berlaku dalam sebuah Procedure yaitu :
a. Parameter Formal
Yaitu Parameter yang dideklarasikan mengikuti pendeklarasian program
utama.
b. Parameter Aktual
Yaitu Parameter yang dituliskan mengikuti pemanggilan Procedure.
34
35. Aturan antara parameter formal dan parameter aktual :
1) Banyaknya parameter aktual harus sama dengan banyaknya paremeter formal
2) Tiap-tiap parameter aktual harus bertipe sama dengan parameter formal yang
bersesuaian
3) Tiap-tiap parameter aktual harus diekspresikan yang sesuai dengan parameter
formal
Pengiriman Parameter :
a. Pengiriman parameter secara nilai (by Value)
- Tiap-tiap parameter dalam procedure utama akan berisi nilai yang dikirim
oleh parameter aktual dan bersifat lokal procedure.
- Pengirima nilai parameter secara by value merupakan pengiriman searah,
artinya hanya dari parameter aktual ke parameter formal.
- Perubahan parameter formal tidak mempengaruhi terhadap nilai
parameter aktual.
Contoh :
Program_by_value ;
Uses Crt;
Procedure Hitung(A,B,C : Integer) ;
Begin
B:= A ;
C:= A+B ;
Writeln(’nilai A = ’,A,’ | nilai B = ’,B,’ | nilaiC = ’,C) ;
End;
{---------------------------------------------------------}
{Berikut Program Utamanya}
Var X,Y,Z : Integer ;
Begin
Clrscr ;
Write(’masukan nilai x : ’) ; Readln(x) ;
Write(’masukan nilai Y : ’) ; Readln(y) ;
Write(’masukan nilai Z : ’) ; Readln(z) ;
Writeln ;
Hitung (x,y,z) ; {Perintah memberikan nilai ke procedure}
Writeln ;
Writeln (’nilai x =’,X,’ | nilai y =’,Y,’ | nilai z =’,Z) ;
Readln ;
End.
Keterangan :
Misalkan dimasukan nilai dari x=5, y=7 dan z=15 maka nilai ini akan dikirim ke
parameter formal pada procedure yaitu A,B,C sehingga nilai awal A=5, B=7 dan C=15.
Setelah melalui proses maka hasil outputnya adalah bahwa nilai X=5, Y=7 dan Z=15.
Sebab apapun yang diproses pada procedure tidak akan mempengaruhinilai dari
parameter aktual X,Y,Z.
b. Pengiriman parameter secara acuan (by Reference)
35
36. - Merupakan pengiriman dua arah yaitu dari parameter aktual ke parameter
formal dan dari parameter formal ke parameter aktual sebagai hasil
output dari procedure.
- Perubahan nilai pada parameter formalmempengaruhi pada parameter
aktual.
- Dicirikan dengan penggunaan deklarasi VAR, pada parameter procedure-
nya.
Contoh :
Procedure Hitung (Var :A,B,C : Integer) ;
Begin
B:=A ;
C:=A+B ;
Writeln(A,B,C) ;
End ;
Var X,Y,Z : integer ;
Begin
Readln(X) ; Readln(Y) ; Readln(Z) ;
Hitung(X,Y,Z) ;
Writeln(X,Y,Z) ;
Readln;
End.
Keterangan :
Misalkan dimasukan nilai X=5, Y=8 dan Z=15 maka nilai ini akan dikirim ke
parameter formal pada procedure yaitu A,B,C sehingga nilai awal A=5,B=8 dan C=15.
Setelah melalui proses maka hasil outputnya adalah bahwa nilai X=A=5, Y=b=5 dan
Z=C=10. Sebab apapun yang diproses pada procedure akan mempengaruhi nilai dari
parameter aktual X,Y,Z.
FUNCTION
A. Pengenalan Function
Function dalam pascal sebenarnya tidak berbeda seperti fungsi dalam matemtika,
seperti F(X) = X+1
F nama Fungsi
(X) parameter yang diberikan
X+1 proses yang dilakukan terhadap parameter
Hasil dari fungsi f(X) adalah f(x) yang nilainya telah berubah sesuai dengan nilai
parameter x yang diberikan, maka dalam PASCAL, function sering disebut memiliki sifat
mengembalikan nilai.
Function tidak berbeda jauh dengan procedure, kunci perbedaanya adalah function
mengembalikan suatu nilai sedangkan procedure tidak. Sifat pengembalian nilai suatu
function disebabkan karena hasil dari pelaksanaan suatu function disimpan dalam suatu
variabel dalam function itu dimana nama variabel tersebut sama dengan nama function-
nya.
B. SYNTAX
36
37. Sebelum function digunakan, terlebih dahulu harus dideklarasikan (diberitahukan
pada program bahwa terdapat function yang akan digunakan oleh program utama)
beserta proses yang akan dijalankan oleh program tersebut.
Deklarasi Function dilakukan sebelum program utama (sebelum begin...end.)
Function nama_fungsi (parameter : tipe_data) : tipe_data ;
Begin
.... ;
{Penjabaran}
... ;
Nama_fungsi := ....
End ;
Parameter : nilai yang diberikan kepada fungsi, seperti x dalam fungsi f diatas.
Suatu fungsi mungkin tidak memerlukan parameter.
Tipe_data : Character, numerik (integer,real,dll),string,dll.
Contoh :
Program Fungsi_numerik ;
Uses crt ;
Function f(x : real):real ;
Begin
F:= x+1 ;
End ;
Begin
Writeln(’Fungsi f(x) untuk x = 2 bernilai ’,f(2)) ;
End.
Program Fungsi_String ;
Uses crt ;
Var kata : string ;
Function f(x:string) : String ;
Var i :byte ;
Begin
For i:=1 to lenght(x) do x[i] := upcase(x[i]) ;
F := x ;
End ;
Begin
Write(’kata yang ingin dimasukan : ’) ; readln(kata) ;
Writeln(’kata setelah dikapitalisasi : ’,f(kata)) ;
End.
C. Jenis-jenis variabel yang digunakan dalam function
Ada dua jenis variabel yang digunakan oleh function, yaitu : Variabel Global dan Variabel
Lokal.
Variabel Global variabel yang dideklarasikan dari awal program dan berlaku secara
umum. Variabel ini (dan nilai yang dikandungnya) dapat digunakan
baik oleh program utama maupun Sub-program seperti function dan
procedure.
37
38. Variabel Lokal variabel yang dideklarasikan dalam sub-program seperti function dan
procedure. Variabel ini hanya dapat digunakan oleh sub program itu
sendiri. Jika dalam sub-program terdapat kesamaan nama antara
variabel lokal dan variabel global, nilai variabel yang digunakan
adalah nilai variabel lokal.
Saran : gunakan variabel global seminimal mungkin dan gunakan variabel lokal
seoptimal mungkin.
Contoh :
Program Jenis_variabel ;
Uses crt ;
Var i : integer ; {deklarasi ” i ” sebagai variabel global}
Function hitung : integer ; {deklarasi function tanpa parameter}
Var temp : integer ; {deklarasi ” temp ” sebagai variabel lokal}
Begin
Temp:=2 * i ; {proses variabel global ” i ” dan variabel lokal ” temp ”}
Hitung:=temp ; {funcftion mengembalikan nilai}
End;
Function hitung2(a:integer):integer; {deklarasi function berparameter}
Begin
Hitung2:=2 * a ; {cara lain penulisan, tidak memerlukan variabel lokal}
End;
{Program Utama}
Begin
Write(’masukan nilai i : ’) ;readln(i) ;
Writeln(’hasil fungsi hitung : ’,hitung) ;
Writeln(’hasil fungsi hitung2 : ’,hitung2(i)) ;
{hasil sama}
End;
38
39. RECORD dan Type Data Buatan
RECORD
Record memiliki kemiripan dengan Array, tetapi data-data yang disimpan dalam
sebuah record tidak harus memiliki tipe variabel yang sama. Jadi dalam suatu sebuah
record bisa saja ada data bertipe string, data bertipe real, dan bertipe integer secara
bersamaan.
Data atau variabel yang berada didalam record dinamakan field dari record yang
bersangkutan. Sebagai ilustrasi, sebuah mobil memiliki informasi seperti produsennya,
merknya, warnanya, tipenya, hargany, jenisnya dan kapasitas mesinya. Maka, mobil
tersebut dapat disebut sebagai sebuah record dan informasi pada mobil itu (produsen,
merk, warna dan sebagainya) sebagai field.
Contoh Record Contoh Field
Mahasiswa NRP, Nama, Angkatan, Kelas, IPK
Karyawan Nama, golongan, jabatan, gaji
Penjualan Periode, item, harga, cara pembayaran
Phonebook Nama, alamat, no tlp rumah, hp, e-mail
Mp3 Artist, title, album, year, genre
No pelanggan, item yang dipinjam,
Movie-Rental
tanggal pinjam, tanggal kembali, biaya
39
40. Syntax Record
Type Recname = Record
Field1 : type ;
Field2 : type ;
:
:
Fieldx : type ;
End;
Recname : nama yang digunakan untuk mengidentifikasi record. Pemanggilan record
dilakukan dengan menggunakan nama ini.
Field1, field2,....fieldx : nama-nama fields yang menjadi elemen dari record ini,
pemanggilan field dilakukan dengan menggunakan nama record dan nama fieldnya,
seperti recname.field1
Type : tipe data untuk field yang bersangkutan, misalnya field1 bertipe data byte, field2
bertipe String.
Contoh Pendeklarasian record
TYPE mobil = RECORD
Prod, merk, warna : STRING[10] ;
Tipe : STRING [5] ;
Harga : LONGINT ;
End ;
Var
Mob : ARRAY [1..25] of mobil ;
Kegunaan statement with adalah mempersingkat penulisan record. Dengan
menggunakan statement with, pemanggilan record cukup dilakukan dengan menuliskan
field-nya saja, tidak perlu ditulis lengkap bersama dengan nama record-nya.
OPERASI Input – Output Record & penggunaan With
PROGRAM InOuRec ;
TYPE mobil = RECORD
Prod, merk, warna : STRING ;
Tipe : STRING [5] ;
Harga : LINGINT ;
End;
VAR
Mob : ARRAY [1..25] of Mobil ;
Begin
{contoh input}
Mob[1].prod:=”Toyota” ;
Mob[1].merk:=”New Camry” ;
Mob[1].warna:=”Coal Black” ;
Mob[1].tipe:=”G M/T” ;
Mob[1].harga:=42000000 ;
{penggunaan statement with}
WITH mob[2] Do
Begin
Prod:=”Honda” ;
40
41. Merk:=”New Accord” ;
Warna:=”Snow White” ;
Tipe:=”C A/T” ;
Harga:=450000000 ;
End ;
{Sama artinya dengan
Mob[2].prod:=” Honda” ;
Mob[2].Merk:=”New Accord” ;
Mob[2].Warna:=”Snow White” ;
Mob[2].Tipe:=”C A/T” ;
Mob[2].Harga:=450000000 ; }
{Contoh Output}
For a:=1 to 2 Do
Begin
White mob[a] Do
Begin
Writeln(prod) ;
Writeln(merk) ;
Writeln(warna) ;
Writeln(tipe) ;
Writeln(harga) ;
End ;
End ;
Contoh Program Sederhana Menggunakan Record
Program Record_Mhs ;
TYPE Rmhs = Record
Nrp : integer ;
nama : String[15] ;
ipk : real ;
kelas : char ;
end ;
Var
Amhs : Array [1..100] of Rmhs ;
a,k : integer ;
Procedure input ;
begin
a:= a+1 ;
Write('Nrp (3 digit terakhir) : ') ; readln(Amhs[a].nrp) ;
Write('Nama : ') ; readln(Amhs[a].nama) ;
Write('IPK : ') ; readln(Amhs[a].ipk) ;
41
42. end;
Procedure Output ;
Var b:integer ;
begin
{penentuan kelas mahasiswa berdasrkan nrp !}
For b:=1 to a do
begin
if Amhs[b].nrp < 51 then Amhs[b].kelas:='A'
else if Amhs[b].nrp > 100 then Amhs[b].kelas:='C'
Else Amhs[b].kelas:='B' ;
Writeln('Kelas : ',Amhs[b].kelas) ;
Writeln('Nrp : ',Amhs[b].nrp) ;
Writeln('Nama : ',Amhs[b].nama) ;
Writeln('IPK : ',Amhs[b].ipk:5:2) ;
end;
end;
Begin
Repeat
Writeln('1. Input data mahasiswa - nrp,nama,ipk') ;
Writeln('2. Output data mahasiswa - kelas,nrp,nama,ipk') ;
Writeln('3. Exit') ;
Readln (k) ;
case k of
1 : Input ;
2 : Output ;
End ;
Until K > 2 ;
End.
Pemrograman Database Text dalam Pascal
FILE (BERKAS)
File (Berkas) adalah kumpulan sejumlah komponen yang bertipe data sama, yang
jemlahnya tidak tertentu.
Pengertian file atau berkas dianalogikan dengan simpanan arsip.
Di dalam Pascal, berkas menyediakan data yang nantinya akan digunakan oleh suatu
program. Berkas dapat berupa diskfile yaitu media penyimpanan yang berupa cakram
magnetis, pita megnetis, kartu plong dan media-media penyimpanan lainya.
Berkas mempunyai sifat sebagai berkas berurutan (Sequential File), pembacaan datanya
dari baris satu ke baris berikutnya.
MENDEKLARASIKAN FILE
42
43. TYPE Var1 = FILE OF var2 ; Contoh :
Atau
VAR Var1 = FILE OF var2 ; TYPE
Tipe_Data = RECORD
Nama : String[25] ;
Alamat : String[30] ;
No_tlp : String[15] ;
Usia : Integer ;
End ;
VAR
File_Data : File of Tipe_Data ;
D_Data : Tipe_Data ;
OPERASI PADA FILE
1. Statemen ASSIGN
Statemen ini digunakan untuk memilih/membuka berkas yang akan dioprasikan
sesuai dengan tipe berkas yang kita deklarasikan.
ASSIgn (Variabel_berkas, nama_berkas) ;
Contoh : Assign (File_Data,’biodata.dat’) ;
2. Statemen CLOSE
Close digunakan untuk menutup berkas yang telah dibuka oleh statemen assign.
Dan hanya menyebutkan variabel_berkas-nya saja tanpa nama berkas.
Contoh : Close (File_Data) ;
3. Statemen REWRITE
Digunakan untuk membuat berkas baru yang telah dinyatakan dengan variabel
berkas. Jika berkas tersebut sudah ada dalam media penyimpanan, maka berkas
tersebut akan digantikan dengan berkas yang baru.
Contoh : Rewrite(File_Data) ;
4. Statemen RESET
Digunakan untuk mengeset penunjuk komponen kembali ke nomor 0.
Contoh : Reset (File_Data) ;
5. Satatemen WRITE
Statemen ini digunakan untuk menuliskan komponen berkas (data) kedalam
media penyimpanan. Dan akan menempatkan komponen baru tersebut diakhir
record.
WRITE(variabel_berkas, variabel_komponen_berkas) ;
Contoh : Write(File_Data,D_data) ;
6. Statemen READ
43
44. Read digunakan untuk membaca komponen berkas dari dalam media
penyimpanan. Pembacaan disesuaikan dengan posisi penunjuk komponen,
setelah selesai membaca, posisi penunjuk komponen akan ditempatkan ke
komponen berkas berikutnya.
READ(Variabel_berkas, variabel_komponen_berkas) ;
Contoh : Read(File_Data,D_data) ;
7. Statemen SEEK
Digunakan untuk menggerakan penunjuk komponen ke nomor komponen
tertentu. Dengan nomor awal record adalah 0.
SEEK(Variabel_berkas,nomor_record) ;
Contoh : Seek (File_data,3) ; {diarahkan kekomponen yang ketiga}
8. Fungsi FILEPOS
Fungsi ini digunakan untuk mengetahui letak penunjuk komponen berbeda. Dan
hasilnya berupa bilangan bulat yang menunjukan posisi penunjuk komponen pada
saat itu.
FILEPOS(variabel_berkas) ;
Contoh : Filepos(File_data) ;
9. Fungsi FILESIZE
Digunakan untuk mengetahui ukuran dari suatu berkas. Jika fungsi ini bernilai 0
berarti berkas tersebut masih kosong.
FILESIZE (variabel_berkas) ;
Contoh : Ukuran := Filesize(File_data) ; {ukuran dalam satuan byte}
10. Fungsi EOF
Fungsi ini digunakan untuk mengetahui apakah penunjuk komponen berada
diakhir bekas (End Of File = EOF), Jika Ya maka bernilai TRUE dan jika TIDAK
maka bernilai FALSE.
EOF(variabel_berkas) ;
Contoh : Akhir_file := EOF(file_data) ;
11. Statemen FLUSH
Flush digunakan untuk mengosongkan penyangga(buffer) dari berkas, dengan
demikian akan memastikan bahwa isi penyangga telah ditusikan dalam media
penyimpan setelah statemen WRITE selesai dikerjakan.
44
45. FLUSH(variabel_berkas) ;
Contoh : FLUSH(file_data) ;
12. Statemen ERASE
Erase digunakan untuk menghapus file atau berkas yang telah tertutup atau
sedang tidak digunakan.
ERASE(variabel_berkas) ;
Contoh : ERASE(file_data) ;
13. Statemen RENAME
Digunakan untuk memberi nama baru pada berkas yang dinyatakan oleh variabel
berkas. Dan hanya dapat dilakukan pada berkas yang tertutup.
RENAME(variabel_berkas,nama_baru) ;
Contoh : RENAME(file_data,’baru.dat’) ;
45