rangkuman materi turbo pascal

21
RANGKUMAN MATERI TURBO PASCAL PUSAT ILMU KOMPUTER dan MANAJEMEN INDONESIA 2006 ©husnan_sarofi 2006

Upload: ismail-adha-kesuma

Post on 18-Jun-2015

15.751 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Rangkuman Materi Turbo Pascal

RANGKUMAN MATERI

TURBO PASCAL

PUSAT ILMU KOMPUTER dan MANAJEMEN INDONESIA 2006

©husnan_sarofi 2006

Page 2: Rangkuman Materi Turbo Pascal

Pengenalan Pemrograman Pascal

© Husnan Sarofi 2006 i

DAFTAR ISI DAFTAR ISI ................................................... .......................................... i DAFTAR ISI ............................................................................................... iBAB I PENULISAN CODE PROGRAM DI TURBO PASCAL ........................................... 1 BAB I PENULISAN CODE PROGRAM DI TURBO PASCAL ........................................... 1

I.1 STRUKTUR PROGRAM PASCAL................................................................................................................................ 1 I.2 MENAMPILKAN TULISAN DI LAYAR................................................................................................................... 1 I.3 TIPE DATA.................................................................................................................................................................... 1 I.4 TEXTCOLOR DAN TEXTBACKROUND...................................................................................................................2 I.5 PROGRAM DENGAN PENGGUNAAN VARIABEL .................................................................................................3

I.5.1 PROGRAM PENAMBAHAN.................................................................................................................................................3 I.5.2 PROGRAM PENILAIAN ......................................................................................................................................................3

BAB II STRUKTUR PERNYATAAN IF dan IF-ELSE.................................................. 4 BAB II STRUKTUR PERNYATAAN IF dan IF-ELSE.................................................. 4II.1 PERNYATAAN IF.........................................................................................................................................................4

II.1.1 CONTOH PROGRAM DENGAN LOGIKA IF ..................................................................................................................4 II.2 PERNYATAAN IF-ELSE .............................................................................................................................................5

II.2.1 CONTOH PROGRAM IF-ELSE ..........................................................................................................................................5 II.3 PERNYATAAN IF BERSARANG (NESTED-IF) ....................................................................................................6

II.3.1 CONTOH PROGRAM dengan NESTED IF......................................................................................................................7 II.4 PERNYATAAN CASE-OF............................................................................................................................................7

II.4.1 CONTOH PROGRAM dengan CASE-OF ..........................................................................................................................8 BAB III PENGULANGAN/ LOOPING ................................................... .............. 9 BAB III PENGULANGAN/ LOOPING ................................................................... 9

III.1 COUNTED LOOP ..........................................................................................................................................................9 III.1.1 Pernyataan FOR-TO-DO................................................................................................................................................9 III.1.2 Pernyataan FOR-DOWNTO-DO..................................................................................................................................9 III.1.3 Contoh lain FOR-TO -DO ............................................................................................................................................ 10

III.2 CONDITIONAL LOOP..............................................................................................................................................10 III.2.1 REPEAT – UNTIL .......................................................................................................................................................... 10 III.2.2 WHILE - DO....................................................................................................................................................................11 III.2.3 CONTOH LAIN REPEAT – UNTIL ............................................................................................................................11 III.2.4 CONTOH LAIN WHILE - DO.................................................................................................................................... 12

III.3 NESTED LOOP............................................................................................................................................................12 III.3.1 Beberapa contoh penggunaaan NESTED LOOP ..................................................................................................... 12

BAB IV SUB ALGORITMA ................................................... .........................14 BAB IV SUB ALGORITMA ..............................................................................14IV.1 PROCEDURE (Prosedur)............................................................................................................................................14 IV.2 PARAMETER................................................................................................................................................................17 IV.3 FUNCTION (FUNGSI)..............................................................................................................................................18

Page 3: Rangkuman Materi Turbo Pascal

Pengenalan Pemrograman Pascal

BAB I PENULISAN CODE PROGRAM DI TURBO PASCAL

II..11 STRUKTUR PROGRAM PASCALSTRUKTUR PROGRAM PASCAL Struktur dari suatu program Pascal terdiri dari sebuah judul program(program heading) dan suatu blok program(program block) atau badan program(body programf). Blok program dibagi lagi menjadi dua bagian, yaitu : bagian deklarasi(declaration part) dan bagian pernyataan( statement part). Bagian deklarasi dapat terdiri dari deklarasi label(labels declaration), deklarasi konstanta(constants declaration), deklarasi tipe(type declaration), deklarasi variabel(variables declaration), deklarasi prosedur(procedures declaration), dan deklarasi fungsi(function declaration). Secara ringkas dapat digambarkan sebagai berikut :

1. Judul Program 2. Blok Program

a. Bagian Deklarasi - deklarasi label - definisi constanta - definisi tipe - deklarasi variabel - deklarasi prosedur - deklarasi fungsi

b. Bagian pernyataan.

II..22 MENAMPILKAN TULISAN DI LAYARMENAMPILKAN TULISAN DI LAYAR program tulisan; judul program uses crt; deklarasri fungsi begin awal memulai program clrscr; membersihkan layar writeln('SELAMAT DATANG DI PIKMI’); menampilkan tulisan SELAMAT DATANG DI PIKMI write('SEMOGA ANDA PUAS’); menampilkan tulisan SEMOGA ANDA PUAS readln; menyetop utk sementara eksekusi program end. Akhir dari program

#bagian yang dicetak tebal(dari begin – end.) adalah bagian pernyataan (statement)

II..33 TIPE DATA TIPE DATA Tipe Data Jangkauan

Numerik Byte 0 … 255 Word 0 … 65535 Longint -2147483648 … 2147483647 Integer -32768 … 32767 Shortint -128 … 127 Real -2.9E-39 … 1.7E38

Logika True or False Karakter

Char 1 karakter String 1 … 255 karakter

© Husnan Sarofi 2006 1

Page 4: Rangkuman Materi Turbo Pascal

Pengenalan Pemrograman Pascal

II..44 TEXTCOLOR DAN TEXTBACKROUNDTEXTCOLOR DAN TEXTBACKROUND Berfungsi untuk memberikan warna pada text dan warna background text, warna yang ditampilkan tergantung pada kode warna yang digunakan (lihat tabel warna berikut ini)

Kode warna Warna Kode warna Warna 0 Black 8 Dark Grey 1 Green 9 Light Blue 2 Blue 10 Light Green 3 Cyan 11 Light Cyan 4 Red 12 Light Red 5 Magenta 13 Light Magenta 6 Brown 14 Yellow 7 Light Gray 15 White

CONTOH1 program hello; uses crt; begin textcolor(6); textbackground(11); clrscr; write('AAAkuuuuuuuuuuu’); write('Kaaaaaanggggggggggennn’); write('Ama Kamuuuuuuuuuuuuuuu'); end. CONTOH1 program hello; uses crt; var nama:string; gender:char; umur:byte; begin clrscr; textcolor(6); textbackground(11); write('Masukkan nama anda : ');readln(nama); write('Masukkan gender : ');readln(gender); textcolor(7); textbackground(11); write('Masukkan Usia : ');readln(umur); writeln('Nama anda : ',nama,', gender : ',gender,', berusia : ', umur,' tahun'); readln; end.

© Husnan Sarofi 2006 2

Page 5: Rangkuman Materi Turbo Pascal

Pengenalan Pemrograman Pascal

II..55 PPRROOGGRRAAMM DDEENNGGAANN PPEENNGGGGUUNNAAAANN VVAARRIIAABBEELL I.5.1 PROGRAM PENAMBAHAN

Program tambah; Uses crt; Var a,b:integer; mendeklarasikan variabel untuk angka pertam(a)dan angka kedua(b) yg berjenis integer Hasil:integer; mendeklarasikan variabel “hasil” untuk menampung hasil dari penjumlahan a dan b Begin Clrscr; Write(‘Masukkan angka pertama : ’); readln(a); menampilkan text dan membaca masukan sebagai variabel a Write(‘Masukkan angka kedual : ’);readln(b); menampilkan text dan membaca masukan sebagai variabel b Hasil:=a+b; memproses variable hasil dengan rumus a+b Write(‘Hasil penambahan adalah : ‘,hasil); menampilkan hasil dari proses yg sudah dilakukan Readln; memberhentikan sementara proses pembacaan program agar tidak langsung keluar dr layar End.

I.5.2 PROGRAM PENILAIAN Program nilai; Uses crt; Var nim,nama:string; Utk,uak,tugas:integer; mendeklarasikan variabel yang digunakan N_akhir:real; Begin Clrscr; write('NIM :');readln(nim); menampilkan text NIM dan memasukkan isiannya ke variabel nim write('nama :');readln(nama); menampilkan text NAMA dan memasukkan isiannya ke variabel nama write('Nilai UTK : ');readln(utk); write('Nilai UAK : ');readln(uak); write('Nilai Tugas: ');readln(tugas); N_akhir:=(0.2*utk)+(0.4*uak)+(0.4*tugas); memproses n_akhir dengan rumus yg sdh ditentukan write('Nilai Akhir yang diperoleh adalah :',N_akhir:10:2); memunculkan nilai akhir readln; memberhentikan sementara proses pembacaan program agar tidak langsung keluar dr layar end. *:10:2 di belakang variabel n_akhir maksudnya n_akhir yg berjenis real ditampilkan maksimal 10 digit dan 2 angka di belakang koma

program tulisan; uses crt; begin clrscr; gotoxy(10,2);writeln('SELAMAT DATANG DI PIKMI’); gotoxy(10,3);writeln('SEMOGA ANDA PUAS’); readln; end

Kita bisa mengatur peletakan/ posisi dari text yang ditampilkan (seperti di FoxPro) dengan menggunakan perintah GOTOXY(x,y), untuk lebih jelasnya lihat contoh berikut : (perintah ini hanya bisa anda gunakan jika anda mengaktifkan crt unit(uses crt) )

© Husnan Sarofi 2006 3

Page 6: Rangkuman Materi Turbo Pascal

Pengenalan Pemrograman Pascal

BAB II STRUKTUR PERNYATAAN IF dan IF-ELSE

IIII..11 PPEERRNNYYAATTAAAANN IIFF Struktur logika dari penyataan IF adalah sbb : Sintax logika IF dalam PASCAL IF <kondisi> THEN <pernyataan>; Bila pernyataan yang dihasilkan, lebih dari satu baris maka sintaxnya menjadi : IF <kondisi> THEN BEGIN <pernyataan_1>; <pernyataan_2>; <pernyataan_n>; END;

kondisi PERNYATAAN PERNYATAAN

F

T

II.1.1 CONTOH PROGRAM DENGAN LOGIKA IF Contoh1 Program cth_if; uses crt; var jml_beli:integer; begin clrscr; Write('Masukkan jumlah beli : ');readln(jml_beli); IF jml_beli>=20 THEN write('anda dapat diskon'); readln; end. Contoh 2 Program cth_if; uses crt; var jml_beli:integer; begin clrscr; Write('Masukkan jumlah beli : ');readln(jml_beli); IF jml_beli>=20 THEN begin writeln('anda dapat diskon'); write('anda dapat voucher belanja Rp 5000'); end; readln; end.

Dalam program ini jika jumlah beli dimasukan dengan angka lebih dari atau sama dengan 20 maka akan muncul tulisan “Anda dapat Diskon” jika tidak tidak akan memunculkan apa-apa

Dalam program ini jika jumlah beli dimasukan dengan angka lebih dari atau sama dengan 20 maka akan muncul tulisan “Anda dapat Diskon” dan “Anda dapat voucher belanja Rp.5000”, jika tidak tidak akan memunculkan apa-apa

© Husnan Sarofi 2006 4

Page 7: Rangkuman Materi Turbo Pascal

Pengenalan Pemrograman Pascal

IIII..22 PPEERRNNYYAATTAAAANN IIFF--EELLSSEE Struktur Logika IF-ELSE adalah sbb: Jika syarat yang ditentukan

terpenuhi( T ) maka pernyataan akan dijalankan, jika syarat tidak terpenuhi ( F ) maka pernyataan2 yang dijalankan

kondisi PERNYATAAN 1

PERNYATAAN 2F

T

Sintax IF-ELSE dalam PASCAL IF <kondisi> THEN <pernyataan1> ELSE <pernyataan2>; Bila pernyataan yang dihasilkan, lebih dari satu maka sintaxnya menjadi : IF <kondisi> THEN BEGIN <pernyataan_1>; <pernyataan_2>; <pernyataan_n>; END ELSE BEGIN <pernyataan_A>; <pernyataan_B>; <pernyataan_n>; END;

II.2.1 CONTOH PROGRAM IF-ELSE Contoh 1 Program cth_if; uses crt; var nama1,nama2:string; j_kel1,j_kel2:char; begin

Dalam program ini jika jenis kelamin yang dimasukkan berbeda(tidak sama) maka akan memunculkan tulisan “ANDA BERDUA SANGAT BERJODOH” jika tidak maka tulisan yang muncul adalah “ANDA BERDUA TIDAK COCOK”

clrscr; Write('Masukkan nama anda : ');readln(nama1); write('Jenis kelamin anda [l/p] : ');readln(j_kel1); write('Masukkan nama pasangan : ');readln(nama2); write('Jenis kelaminnya [l/p] : ');readln(j_kel2); IF j_kel1<>j_kel2 THEN Write('Anda berdua sangat berjodoh') ELSE Write('Anda berdua tidak cocok'); readln; end.

© Husnan Sarofi 2006 5

Page 8: Rangkuman Materi Turbo Pascal

Pengenalan Pemrograman Pascal

Contoh 2 Program cth_if; uses crt; var nama1,nama2:string; j_kel1,j_kel2:char; begin clrscr; Write('Masukkan nama anda : ');readln(nama1); write('Jenis kelamin anda [l/p] : ');readln(j_kel1); l write('Masukkan nama pasangan : ');readln(nama2); write('Jenis kelaminnya [l/p] : ');readln(j_kel2); L IF upCase(j_kel1) <> upCase(j_kel2) THEN

Dalam program ini jika jenis kelamin yang dimasukkan berbeda(tidak sama) maka akan memunculkan tulisan “ANDA BERDUA SANGAT BERJODOH” dan “TERUSKAN HUBUNGAN ANDA” jika tidak maka tulisan yang muncul adalah “ANDA BERDUA TIDAK COCOK” dan “ANDA BERDUA EDANNNNNNN”

BEGIN Write('Anda berdua sangat berjodoh'); Write(‘Teruskan hubungan anda’); END ELSE BEGIN Write('Anda berdua tidak cocok'); Write(‘Anda berdua edannnnnn’); END; readln; end.

IIII..33 PPEERRNNYYAATTAAAANN IIFF BBEERRSSAARRAANNGG ((NNEESSTTEEDD--IIFF)) Pernyataan NESTED IF adalah suatu pernyataan yang mungkin membutuhkan lebih dari satu syarat agar hasil yang diinginkan diperoleh. Contoh: seorang atlet akan menembus babak final setelah melewati babak penyisihan, kemudian perempat

final, dan akhirnya babak semifinalfinal, baru kemudian ia akan bersaing di babak final. Dalam hal tersebut untuk mencapai babak final, maka babak-babak sebelumnya harus berhasil ia lewati, jika tidak maka hal tersebut tidak akan pernah terjadi. ( untuk lebih jelasnya lihat flowchartnya sebagai berikut)

Melewati Babak

penyisihann

Melewati Babak

per4final

Melewati Babak

semifinal

Babak final

T T T

F F F

Struktur logika NESTED IF adalah sbb:

Syarat 1 T

F

Syarat 2 Pernyataan

syarat/ pernyataan yg lain

............................

T

F Struktur pernyataan NESTED IF bergantung pada kondisi dari masalah yang akan diselesaikan. Bisa jadi setelah syarat 1 dipenuhi langsung menghasilkan sebuah pernyataan, tetapi jika syarat tdk terpenuhi akan menghasilkan syarat yang lain agar pernyataan yang ditentukan bisa terpenuhi. Bisa juga kondisinya berbeda.

© Husnan Sarofi 2006 6

Page 9: Rangkuman Materi Turbo Pascal

Pengenalan Pemrograman Pascal

Sintax NESTED IF dalam PASCAL IF <syarat> THEN IF <syarat> THEN BEGIN <pernyataan>; END ELSE BEGIN <pernyataan>; END ELSE IF <syarat> THEN BEGIN <pernyataan>; END

ELSE BEGIN

<pernyataan>; END;

II.3.1 CONTOH PROGRAM dengan NESTED IF

program nest_if; uses crt; var a,b,c:integer; begin clrscr; write('Masukkan angka pertama : ');readln(a); write('Masukkan angka kedua : ');readln(b); write('Masukkan angka ketiga : ');readln(c); IF a>b THEN IF a>c THEN

WRITE('Yang terbesar adalah angka pertama') ELSE WRITE('Yang terbesar adalah angka ketiga') ELSE IF b>c THEN WRITE('Yang terbesar adalah angka kedua') ELSE WRITE('Yang terbesar adalah angka ketiga'); READLN; END.

Di atas adalah program untuk mencari angka terbesar dari 3 angka yang dimasukkan. Pertama jika angka pertama lebih besar dari angka kedua, maka akan angka pertama akan dibandingkan lagi dengan angka ketiga untuk kemudian ditentukan mana yang terbesar jika tidak maka angka kedua yang akan dibandingkan dengan angka ketiga kemudian ditentukan mana yang terbesar.

IIII..44 PPEERRNNYYAATTAAAANN CCAASSEE--OOFF Pernyataan CASE-OF dibutuhkan jika suatu kondisi katakanlah expresi utama jika dibandingkan dengan

pembanding1 maka akan menghasilkan suatu keputusan(keputusan1), jika expresi utama dibandingkan dengan pembanding2 akan menghasilkan keputusan yan lain(keputusan2), atau jika expresi utama dibandingkan dengan pembanding3 maka keputusan yang berbeda(keputusan3) pun akan diperoleh. Sebagai contoh adalah Golongan dalam suatu pekerjaan : Jika Golongan=A maka gaji pokok Rp 500000,- Jika Golongan=B maka gaji pokok Rp 400000,- Jika Golongan=C maka gaji pokok Rp 300000,- Jika Golongan=D maka gaji pokok Rp 200000,- Sintax CASE OF dalam PASCAL CASE <expresi_utama> OF <pembanding1> : <keputusan1> <pembanding2> : <keputusan2> <pembanding3> : <keputusan3> ELSE <keputusan4> END;

Dalam hal ini golongan dapat dikatakan sebagai sebagai expresi utama sedangkan A,B,C,D dapat dikatkan sbg pembnding1,2,3 atau 4 sedangkan banyaknya Gaji pokok dikatakan sebagai keputusan yang diperoleh menurut golongannnya masing-masing

© Husnan Sarofi 2006 7

Page 10: Rangkuman Materi Turbo Pascal

Pengenalan Pemrograman Pascal

II.4.1 CONTOH PROGRAM dengan CASE-OF

Contoh 1 program case_of; uses crt; var nip,nama:string; gol:char; gapok:real; begin write('NIP :');readln(nip); write('NAMA :');readln(nama); write('GOLONGAN :');readln(gol); case gol of 'A':gapok:=500000; 'B':gapok:=400000; 'C':gapok:=300000; else gapok:=200000; end; writeln('GAJI POKOK :Rp',gapok:10:2); readln; end. Contoh 2 program pembelian; uses crt; var beli,potongan:integer; BEGIN CLRSCR; write('Total Pembelian : ');readln(beli); CASE beli OF 0..1000 :potongan:=0; 1001..10000:potongan:=400; 10001..30000:potongan:=1000; ELSE potongan:=2000; END; Writeln; writeln('Total pembeliannya : Rp.',beli); writeln('Potongan : Rp.',potongan); writeln('*********************************'); writeln('Total Bayar : Rp.',beli-potongan); READLN; END.

© Husnan Sarofi 2006 8

Page 11: Rangkuman Materi Turbo Pascal

Pengenalan Pemrograman Pascal

BAB III PENGULANGAN/ LOOPING

Pengulangan atau biasa disebut dengan looping digunakan untuk melakukan pengulangan sebuah proses

pada program yang dibuat. Sebagai contoh bila kita memasukkan password untuk memasuki sebuah program/ sistem operasi, maka jika password kita keliru dengan otomatis akan meminta password ulang (tidak langsung keluar dari program), baru setelah password yang dimasukkan benar program yang diminta akan dijalankan. Nah untuk membuat seperti hal tersebut maka kita memerlukan yang namanya LOOPING

Looping ada dua jenis 1. Counted Loop(pengulangan pasti) 2. Conditional Loop(pengulangan berkondisi) 3. Nested Loop(pengulangan bersarang)

IIIIII..11 CCOOUUNNTTEEDD LLOOOOPP Counted Loop(pengulangan Pasti) adalah sebuah bentuk pengulangan yang disertai counter(penghitung) di

dalamnya, selama loop ini mengulang suatu proses maka nilai akan bertambah atau berkurang sejumlah tertentu. Sehingga banyaknya pengulangan dapat dipastikan jumlahnya melalui angka(10x, 5x atau yang lain).

Pada bahasa pascal, Counted Loop digunakan melalui perintah FOR- TO-DO dan FOR-DOWNTO-DO.

III.1.1 Pernyataan FOR-TO-DO SINTAX:

FOR <counter_1> TO <counter_2> DO BEGIN <proses /code program yang diulang>; END;

CONTOH 1 PROGRAM for_do;

uses crt; var a:integer; begin clrscr; for a:=1 to 5 do begin writeln('PIKMI Jember'); writeln('For The Real World'); end; readln; end.

Dalam contoh disamping counternya menggunakan variable a, dimana counter pertama a bernilai 1 dan counter kedua bernilai 5, jadi jumlah pengulangan adalah 5 dihitung dari angka 1 sampai 5 (1,2,3,4,5)

Contoh disamping untuk mengulangi proses secara sederhana. Dimana yang diulang adalah tulisan “PIKMI Jember” dan “For The Real World” Dalam perintah FOR-TO -DO jumlah counter akan bertambah 1 tiap pengulangan proses terjadi

III.1.2 Pernyataan FOR-DOWNTO-DO SINTAX :

FOR <counter_1> DOWNTO <counter_2> DO BEGIN <proses /code program yang diulang>; END;

CONTOH 1 PROGRAM for_down; uses crt; var a:integer; begin clrscr; for a:=5 downto 1 do begin writeln('PIKMI Jember'); writeln('For The Real World'); end;

Dalam perintah FOR-DOWNTO-DO jumlah counter akan berkurang sebanyak 1 angka, tiap proses pengulangan terjadi.

© Husnan Sarofi 2006 9

Page 12: Rangkuman Materi Turbo Pascal

Pengenalan Pemrograman Pascal

© Husnan Sarofi 2006 10

readln; end.

III.1.3 Contoh lain FOR-TO -DO Bila diperlukan dalam pernyataan FOR-DO kita bisa menghentikan pengulangan langsung berdasarkan kondisi tertentu. Contohnya program password berikut ini. PROGRAM PASSWORD program password; uses crt; var sandi:string; a:integer; begin clrscr; for a:=1 to 3 do begin write('Masukkan Password : ');readln(sandi); if sandi='PIKMI' then begin a:=3; writeln('Selamat Anda Berhasil'); end else writeln('Password Salah Goblok'); end; readln; end.

Pada contoh di samping. Jika password yang dimasukkan salah maka akan mengulang untuk menanyakan password lagi. Dan akan terus mengulang sampai 3 kali jika password yang dimasukkan masih salah. Namun jika password yang dimasukkan benar maka akan menampilkan tulisan “SELAMAT ANDA BERHASIL” dan pengulangan langsung dihentikan. Untuk menghentikan pengulangan, langsung dimasukkan angka counter terakhir(lihat syntax yg tebal) dimana dalam contoh disamping jika password yang dimasukkan benar(PIKMI), maka angka counter langsung berubah menjadi 3(pengulangan terakhir). Sekaligus menampilkan tulisan “SELAMAT ANDA BERHASIL”

IIIIII..22 CCOONNDDIITTIIOONNAALL LLOOOOPP Dalam Conditional Loop jumlah pengulangan tergantung pada kondisi tertentu, dengan kata lain jumlah

pengulangan tidak bisa ditentukan dengan menggunakan angka. Dalam bahasa pascal dikenal 2 bentuk conditional Loop, yaitu : 1. REPEAT - UNTIL 2. WHILE – DO

III.2.1 REPEAT – UNTIL Repeat Until adalah sebuah bentuk pengulangan dimana proses pengulangan akan terus terjadi sampai syarat yang telah ditentukan terpenuhi. Misal : seorang anak mendapat perintah untuk mengelilingi lapangan sampai pingsan. Dalam keadaan tersebut yang dimaksud dengan syarat adalah “sampai pingsan”, jadi jika si anak belum pingsan maka ia akan terus mengelilingi lapangan. Baru setelah dia pingsan maka proses mengelilingi lapangan akan langsung berhenti. SINTAX :

REPEAT <proses yang diulang>; UNTIL <syarat yang ditentukan>;

CONTOH 1 program demo_repuntil; uses crt; var Nilai:char; begin repeat write('Nilai Anda(x-berhenti):');readln(Nilai); until (Nilai='x') or (Nilai='X'); end.

CONTOH 2 program demo_repuntil; uses crt; var Nilai:char; begin clrscr; repeat writeln('Aku sayang kamu'); writeln('Dan selalu merindumu'); write('Mau mengulang [y/t]: ');readln(nilai); until (Nilai='T') or (Nilai='t'); end.

Page 13: Rangkuman Materi Turbo Pascal

Pengenalan Pemrograman Pascal

Pada CONTOH 1 tulisan “Nilai Anda(x-berhenti):” akan terus ditampilkan sampai anda memasukkan huruf ‘x’ atau ‘X’ pada inputan Sedang pada CONTOH 2, tulisan “AKU SAYANG KAMU” dan “DAN SELALU MERINDUMU” akanditampilkan lagi jika anda memasukkan huruf selain ‘t’ dan ‘T’ pada inputan. Dan pada saat memasukkan huruf‘t’ atau ‘T’ maka langsung keluar dari proses pengulangan dan karena tidak ada perintah lagi di bawahperintah pengulangan maka, program pun langsung berakhir.

III.2.2 WHILE - DO Dalam pernyataan WHILE – DO, sebuah proses akan terus diulang selama syarat yang ditentukan masih terpenuhi. Bisa dikatakan bahwa perintah WHILE – DO adalah kebalikan dari perintah REPEAT- UNTIL SINTAX :

WHILE <syarat yang ditentukan> DO BEGIN <proses yang akan diulang>; END;

CONTOH 1 program demo_whiledo; uses crt; var Nilai:char; begin clrscr; while(Nilai<>'x') and (Nilai<>'X') do begin write ('Nilai Anda(x-berhenti:'); readln(Nilai); end; end.

CONTOH 2 program while_do1; uses crt; var ulang:char; begin clrscr; while (ulang<>'T') and (ulang<>'t') do begin writeln('Aku sayang kamu'); writeln('Dan selalu merindumu'); write('Mau ngulang[y/t]? : ');readln(ulang); end; end.

III.2.3 CONTOH LAIN REPEAT – UNTIL

program repeat_until; uses crt; var ulang:char; pass,nama:string; begin clrscr; repeat clrscr; write('Masukkan Nama Anda');readln(nama); write('Masukkan Passwordnya');readln(pass); IF (nama='Asep') and (pass='supernova') then begin writeln('Selamat Memasuki Program kami'); sound(1467); delay(1000);

sound(4563); delay(100); NoSound; ulang:='t' end else begin writeln('Sorry men'); writeln('Cek lagi nama dan password anda'); sound(1004); delay(1000); sound(6666); delay(100); ulang:='y'; NoSound; end; until (ulang='T') or (ulang='t'); end.

Contoh diatas adalah sebuah contoh program password Dalam contoh tersebut jika nama dan password yang dimasukkan sesuai persyaratan( dalam contoh tersebutnama memakai ‘Asep’ dan passwordnya ‘supernova). Maka akan memunculkan tulisan ‘SELAMAT ANDAMEMASUKI PROGRAM KAMI’ dan mengeluarkan bunyi tertentu (lihat perintah SOUND(….) dan DELAY(…..) yang berwarna merah), sekaligus keluar dari perulangan. Tapi jika salah, maka tampilan yang muncul adalahtulisan ‘SORRY MEN’ dan ‘CEK LAGI NAMA DAN PASSWORD ANDA’, dan juga mengeluarkan bunyi sepertiyang dideklarasikan pada perintah SOUND. Sekaligus melakukan pengulangan (karena variable ULANG diberinilai ‘y’, dimana syarat mengakhiri perulangan ialah jika variable ULANG bernilai ‘t’ atau ‘T’).

© Husnan Sarofi 2006 11

Page 14: Rangkuman Materi Turbo Pascal

Pengenalan Pemrograman Pascal

III.2.4 CONTOH LAIN WHILE - DO program demo_whiledo; uses crt; var ulang:char; r,t:integer; vol,luas:real; begin clrscr; while (ulang<>'t') and (ulang<>'T') do begin clrscr; writeln('MENGHITUNG VOLUME dan LUAS PERMUKAAN TABUNG'); writeln('*******************************************'); write('Masukkan panjang jari-jari : ');readln(r); write('Masukkkan tinggi tabung : ');readln(t); vol:=3.14*r*r*t; luas:=(2*3.14*r*r)+(2*3.14*r*t); writeln('*******************************************'); writeln('Volume tabung adalah : ',vol:10:2); writeln('Luas permukaan tabung adalah :',luas:10:2); writeln('*******************************************'); write('Mau mengulang [y/t]: ');readln(ulang); end; end.

IIIIII..33 NNEESSTTEEDD LLOOOOPP Adalah sebuah perulangan (looping) yang berada di dalam perulangan yang lainnya. Perulangan yang lebih

dalam akan diulang terlebih dahulu sampai habis, kemudian perulangan yang lebih luar akan diproses selanjutnya. Perulongan seperti ini bisa terdiri dari beberapa perulangan yang jenisnya sama ataupun berbeda. Misal didalam perulangan menggunakan FOR – DO terdapat perulangan FOR-DO lagi atau di dalam perulangan FOR – DO terdapat perulangan menggunakan REPEAT – UNTIL atau yang lainnya.

III.3.1 Beberapa contoh penggunaaan NESTED LOOP CONTOH 1 program NESLOOP1; uses crt; var a,b:integer; BEGIN CLRSCR; for a:=1 to 5 do BEGIN for b:=1 to 3 do begin writeln('Kutunggu kedatanganmu'); writeln('Karena aku selalu merindukanmu'); writeln; end; end; readln; end.

© Husnan Sarofi 2006 12

Page 15: Rangkuman Materi Turbo Pascal

Pengenalan Pemrograman Pascal

CONTOH 2 program nestedloop1; uses crt; var ulang:char; i:integer; begin clrscr; repeat for i:=1 to 5 do begin writeln('Aku tak bisa memiliki'); writeln('Kamu tak sendirian'); end; write('Mau ngulang lagi[y/t] : ' );readln(ulang); until (ulang='t') or (ulang='T') end. CONTOH 3 program nestedloop1; uses crt; var ulang:char; i:integer; begin clrscr; repeat writeln('Belajar Pascal'); writeln('Ueeenak tenannn'); repeat write('Mau ngulang lagi[y/t] : ' );readln(ulang); until (ulang='t') or (ulang='T') or (ulang='y') or (ulang='Y') until (ulang='t') or (ulang='T') end. CONTOH 3 program nestedloop; uses crt; var ulang:char; i:integer; nama,cita:string; begin clrscr; repeat clrscr; gotoxy(2,4);write('Nama : ');readln(nama); gotoxy(2,5);write('Cita-cita : ');readln(cita); repeat gotoxy(2,7); write('Mau ngulang lagi[y/t] : ' );readln(ulang); until (ulang='t') or (ulang='T') or (ulang='y') or (ulang='Y') until (ulang='t') or (ulang='T') end.

© Husnan Sarofi 2006 13

Page 16: Rangkuman Materi Turbo Pascal

Pengenalan Pemrograman Pascal

BAB IV

SUB ALGORITMA

Sub Algoritma adalah sebuah algoritma pendek yang ditulis terpisah dari Algoritma utama, dimana setiap saat dibutuhkan dapat dipanggil tanpa menulis ulang. Dalam pembuatan program Sub Algoritma disebut juga dengan Sub Program

Dengan adanya Sub Algoritma atau Sub Program dapat memberikan kemudahan dalam pembuatan atau pemahaman terhadap program, karena program yang panjang dapat dipisah menjadi blok-blok kecil yang mempunyai tugas sendiri sendiri.

Keuntungan lain dari Sub Program adalah bila dalam sebuah program terdapat proses tertentu yang sering digunakan dalam program, maka dengan adanya sub algoritma kita tidak perlu menuliskan proses tersebut berulang ulang, cukup memanggil sub program yang sudah disiapkan.

Bentuk Sub Program dapat berupa sebuah Prosedur ataupun Fungsi, dan dalam setiap Prosedur atau Fungsi tersebut dapat dilewatkan sebuah Parameter agar Prosedur/ Fungsi tersebut mampu menerima inputan dari program utama.

IIVV..11 PPRROOCCEEDDUURREE ((PPrroosseedduurr)) Procedure adalah sebuah sub program yang dapat dipanggil sewaktu – waktu jika diperlukan oleh program

utama. Sebuah procedure dapat dipanggil langsung oleh program utama ataupun dipanggil berdasarkan kondisi-kondisi tertentu. Sebuah procedure biasa tidak dapat menerima masukan dari program utama, jadi hanya dapat dipanggil saja. Jadi semua blok program yang diperlukan (dari input, proses, sampai output) harus diletakkan pada procedure, dan program utama hanya bertugas memanggil saja jika diperlukan.\

Procedure biasa seperti ini biasa diapakai dalam pembuatan, program yang menggunakan pilihan-pilihan atau menu

Pada pemrograman pascal sebuah procedure dideklarasikan sebelum program utama. SINTAX :

PROCEDURE <nama procedure>; BEGIN <blok program yang merupakan isi procedure>; END;

Untuk memanggil Procedure cukup dengan menuliskan nama prosedurnya diikuti dengan tanda (;). Contoh Satu; ‘satu’ merupakan nama procedure yang dipanggil Untuk lebih jelasnya lihat contoh berikut ini : CONTOH 1 program proc1; uses crt; procedure satu; begin writeln('-----------'); writeln(' P I K M I '); writeln('-----------'); end; procedure dua; begin writeln('--------------------'); writeln(' FOR THE REAL WORLD '); writeln('--------------------'); end; begin clrscr; DUA; readln; end.

Pendeklarasian nama prosedure

Isi prosedure

Pemanggilan Procedure

Program Utama

© Husnan Sarofi 2006 14

Page 17: Rangkuman Materi Turbo Pascal

Pengenalan Pemrograman Pascal

Pada Contoh 1. ada dua procedure yang dideklarasikan yaitu PROCEDURE SATU, dan PROCEDURE DUA.Dimana procedure satu berisi perintah menampilkan tulisan ‘PIKMI’ sedang procedure dua menampilkantulisan ‘FOR THE REAL WORLD’. Pada program utama (di dalam lingkaran ) dilakukan pemanggilan procedure, dimana yang dipanggil adalahPROCEDURE DUA. Sehingga perintah-perintah di dalam PROCEDURE DUA yang akan dijalankan yaitu menampilkan tulisan ‘FOR THE REAL WORLD’ sedang PROCEDURE SATU tidak dipanggil sehingg tidakdijalankan.

Pemanggilan procedure dapat dilakukan berdasarkan suatu kondisi misal dalam program menu berikut ini CONTOH 2 program proc2; uses crt; var pilihan:string; procedure satu; var a,b,hasil:integer; begin write('Masukkan angka pertama : ');readln(a); write('Masukkan angka kedua : ');readln(b); hasil:=a-b; writeln('Hasil pengurangan adalah : ',hasil); end; procedure dua; var a,b,hasil:integer; begin write('Masukkan angka pertama : ');readln(a); write('Masukkan angka kedua : ');readln(b); hasil:=a+b; writeln('Hasil penjumlahan adalah : ',hasil); end; begin clrscr; WRITELN('1. Pengurangan'); writeln('2. Penambahan '); writeln('MASUKKAN PILIHAN ANDA : ');readln(pilihan); IF pilihan='1' then satu else dua; readln; end. Contoh diatas akan menghasilkan tampilan awal sebagai berikut

Jika anda memasukkan inputan angka 1 maka yang dijalankan adlah procedure satu (sesuai dengan perintah IF pada program utama) yaitu algoritma pengurangan sebagaimana yang ditunjukkan pada gambar 1 dibawah. Gambar 2 menunjukkan tampilan yang muncul jika yang diinputkan adalah selain angka 1.

Gambar 1

© Husnan Sarofi 2006 15

Gambar 2

Page 18: Rangkuman Materi Turbo Pascal

Pengenalan Pemrograman Pascal

CONTOH 3 program procedure_gabungan; uses crt; var pilih,ulang:char; procedure lingkar; var r:integer; luas_l:real; begin writeln(''); writeln('PENGHITUNGAN LUAS LINGKARAN'); write('Masukkan Jari-jari lingkaran');readln(r); luas_l:=3.14*r*r; write('Luas lingkarannya adalah : ',luas_l:10:2); readln; end; procedure persegi; var p,l:integer; luas_p:real; begin writeln(''); writeln('PENGHITUNGAN LUAS PERSEGI PANJANG'); write('Masukkan panjangnya : ');readln(p); write('Masukkan lebarnya : ');readln(l); luas_p:=p*l; write('Luas Persegi Panjang adalah : ',luas_p:10:2); readln; end; BEGIN CLRSCR; repeat CLRSCR; writeln(' MENU UTAMA '); Writeln('******************************'); writeln('1. Menghitung Luas Lingkaran'); writeln('2. Menghitung Luas Persegi Panjang'); writeln(''); write('Masukkan pilihan anda [1/2] : ');readln(pilih); IF pilih='1' THEN LINGKAR ELSE persegi; write('Mau mengulang[y/t] ? ');readln(ulang); until (ulang='t') or (ulang='T'); END.

© Husnan Sarofi 2006 16

Page 19: Rangkuman Materi Turbo Pascal

Pengenalan Pemrograman Pascal

IIVV..22 PPAARRAAMMEETTEERR Perlu diingat bahwa sebuah prosedur biasa tidak bisa menerima inputan nilai dari program utama (hanya

bisa dipanggil saat diperlukan). Tetapi sebuah prosedur akan bisa menerima inputan dari program utama jika dilengkapi dengan sebuah

PARAMETER. Parameter adalah variabel dalam sebuah prosedur atau fungsi yang gunanya untuk menampung nilai yang dikirimkan oleh program yang memanggil prosedur atau fungsi tersebut.

PARAMETER dideklarasikan setelah nama prosedur, diikuti dengan jenis variabelnya. Contoh :

PROCEDURE satu(n_akhir:integer); Nama Procedure Nama Parameter diikuti jenis parameternya

Untuk lebih jelasnya lihatlah contoh berikut ini CONTOH 1 program prmtr1; uses crt; var n:integer; Procedure yang dideklarasikan

Dimana procedurenya bernama ULANGI dan didalamnya terdapat PARAMETER dengan nama JML_ULANG berjenis INTEGER

procedure ulangi(jml_ulang:integer); var i:integer; begin for i:=1 to jml_ulang do writeln('I Love YOU'); end; begin write('MASUKKAN JUMLAH PERULANGAN: ');readln(n); ulangi(n); readln; end.

Pemanggilan procedure sambil mengirimkan sebuah nilai yaitu N

Pada saat program diatas dijalankan, tampilan pertama adalah tulisan ‘MASUKKAN JUMLAH PERULANGAN’ Kemudian jika diinputkan sebuah angka maka angka tersebut akan dibaca sebagai variable n, setelah inputandimasukkan, ada pemanggilan procedure ULANGI sekaligus mengirimkan nilai n (ulangi(n);). Setelah masuk ke procedure ULANGI, nilai n akan ditampung ke dalam parameter JML_ULANG. Kemudian ada proses menampilkan tulisan ‘I LOVE YOU’ yang diulang sebanyak inputan yang kita masukkan

CONTOH 2 program prmtr1; uses crt; var a,b:integer; procedure tambah(x,y:integer); var hasil:integer; begin hasil:=x+y; write('hasilnya :',hasil); end; begin clrscr; write('a: ');readln(a); write('b: ');readln(b); tambah(a,b); readln; end.

© Husnan Sarofi 2006 17

Page 20: Rangkuman Materi Turbo Pascal

Pengenalan Pemrograman Pascal

CONTOH 3 program prmtr1; uses crt; var p,l,r:integer; pilih,ulang:char; procedure persegi(x,y:integer); var hasil:integer; begin hasil:=x*y; write('hasilnya :',hasil); end; procedure lingkar(jari:integer); var hasil:real; begin hasil:=3.14*jari*jari; write('hasilnya :',hasil:10:2); end; begin repeat clrscr;

writeln('PILIH MENU BERIKUT INI'); writeln('1. Menghitung Luas Persegi Panjang'); writeln('2. Menghitung Luas Lingkaran'); write('Tentukan Pilihan Anda : ');readln(pilih); IF pilih='1' Then begin writeln('PENGHITUNGAN LUAS PERSEGI PANJANG'); write('Masukkan lebarnya : ');readln(l); write('Masukkan panjangnya : ');readln(p); persegi(l,p); end ELSE begin writeln('PENGHITUNGAN LUAS LINGKARAN'); write('Masukkan jari-jari lingkaran : ');readln(r); lingkar(r); end; writeln(''); write('Mau ngulangi[y/t] : ');readln(ulang); until (ulang='t') or (ulang='T'); end.

IIVV..33 FFUUNNCCTTIIOONN ((FFUUNNGGSSII)) Function hampir sama dengan prosedur, bedanya function hanya menghasilkan satu nilai output, dan

sebuah function bisa mengembalikan nilai output yang dihasilkannya tersebut ke program utama(pemanggilnya). PENDEKLARASIAN FUNCTION :

FUNCTION <namafunction>(parameter):<tipe function>; VAR <variabel yg diperlukan>; BEGIN <baris proses>; END;

CONTOH 1 program fungsi1; uses crt; var c:integer; hasil:real; function conv(cel:integer):real; var r:real; begin r:=(cel*4/5); conv:=r; end; begin clrscr; write('Masukkan suhu celcius: ');readln(c); hasil:=conv(c); write('Hasilnya adalah:',hasil:10:2); readln; end.

Pendeklarasian fungsi

Tampilan pertama akan muncul tulisan ‘MASUKKAN SUHUCELCIUS ‘ jika dimasukkan angka maka yang anda masukkanakan terbaca sebagai variable c, proses selanjutnya adapemanggilan fungsi (conv(c) ), yang artinya fungsi conv dipanggil oleh program dan sekaligus mengirimkan nilai c kefungsi yang dipanggil. Pada saat fungsi dipanggil nilai c yang dibawa akan dimasukkanpada variable ‘cel’ (lihat pendeklarasian fungsi) setelah itudiproses Berdasarkan perintah yang ada dan hasilnya dikembalikan lagi ke program utama(pemanggilnya);

© Husnan Sarofi 2006 18

Page 21: Rangkuman Materi Turbo Pascal

Pengenalan Pemrograman Pascal

CONTOH 2 program prmtr1; uses crt; var c:integer; hasil:real; function conv(cel:integer):real; begin conv:=(cel*4/5); end;

begin clrscr; write('Masukkan suhu celcius: ');readln(c); hasil:=conv(c); write('Hasilnya adalah:',hasil:10:2); readln; end.

CONTOH 3 program fungsi_gabungan; uses crt; var pilih,ulang:char; r,p,l:integer; luas_l,luas_p:real; function lingkar(jari:integer):real; begin lingkar:=3.14*jari*jari; end; function persegi(panjang,lebar:integer):real; begin persegi:=panjang*lebar; end; BEGIN CLRSCR; repeat CLRSCR; writeln(' MENU UTAMA '); Writeln('******************************'); writeln('1. Menghitung Luas Lingkaran'); writeln('2. Menghitung Luas Persegi Panjang'); writeln(''); write('Masukkan pilihan anda [1/2] : ');readln(pilih); IF pilih='1' THEN begin writeln(''); writeln('PENGHITUNGAN LUAS LINGKARAN'); write('Masukkan Jari-jari lingkaran : ');readln(r); Pemanggilan

Fungsi

Pemanggilan Fungsi

Luas_l:=lingkar(r); writeln('Luas Lingkaran adalah : ',Luas_l:10:2); end ELSE begin writeln(''); writeln('PENGHITUNGAN LUAS PERSEGI PANJANG'); write('Masukkan panjangnya : ');readln(p); write('Masukkan lebarnya : ');readln(l); Luas_p:=persegi(p,l); writeln('Luas Persegi Panjang adalah : ',luas_p:10:2); end; writeln(''); write('Mau mengulang[y/t] ? ');readln(ulang); until (ulang='t') or (ulang='T'); END.

© Husnan Sarofi 2006 19