You are on page 1of 28

BAB I Algoritma dan Flowchart Pendahuluan Beberapa langkah dalam prosen pembuatan suatu program atau software : 1.

Mendefinisikan masalah dan menganalisanya Langkah awal yang harus dilakukan adalah mengidentifikasikan masalah antara lain tujuan dari pembuatan program, parameter-parameter yang digunakan, fasilitas apa saja yang akan disediakan oleh program. Kemudian menentukan metode atau algoritma apa yang akan diterapkan untuk menyelesaikan masalah tersebut dan terakhir menentukan bahasa program yang digunakan untuk pembuatan program. 2. Merealisasikan dengan langkah-langkah berikut :
Start

Desain Algoritma & Flowchart

Menulis program

Test Kebenaran Program

Dokumentasi

Secara umum, struktur suatu program terdiri dari beberapa bagian yaitu : 1. Input Bagian ini merupakan proses untuk memasukkan data ke komputer melalui device yang ada misalnya keyboard, mouse, scanner dll. Program melakukan proses membaca data yang akan diolah dari device tersebut. 2. Output Bagian ini merupakan proses untuk menampilkan data yang telah diolah, melaporkan hasil pegolahan data melalui device seperti monitor, printer dll. Program melakukan proses mencetak data ke device tersebut. 3. Proses Pengolahan Data Bagian ini merupakan proses mengolah data yang diinputkan dengan nenerapkan metode-metode, teknik-teknik, algoritma-algoritma yang ada. Proses ini menghasilkan data output yang akan dioutputkan kepada pengguna program. 4. Penyimpanan Data Bagian ini merupakan proses menyimpan data dalam memori atau device penyimpanan data seperti disket, harddisk, CD dll. Berikut ini adalah blok diagram struktur dari suatu program secara umum.
Input Proses Pengolahan Data Output

Arsip

Memory

Algoritma

Algoritma adalah urutan langkah-langkah logika yang menyatakan suatu tugas dalam menyelesaikan suatu masalah atau problem. Contoh : Buat algoritma untuk menentukan apakah suatu bilangan merupakan bilangan ganjil atau bilangan genap. Algoritmanya : 1. Bagi bilangan dengan bilangan 2 2. Hitung sisa hasil bagi pada langkah 1. 3. Bila sisa hasil bagi sama dengan 0 maka bilangan itu adalah bilangan genap tetapi bila sisa hasil bagi sama dengan 1 maka bilangan itu adalah bilangan ganjil.

Flowchart Flowchart adalah gambaran dalam bentuk diagram alir dari algoritma-algoritma dalam suatu program, yang menyatakan arah alur program tersebut. Berikut adalah beberapa simbol yang digunakan dalam menggambar suatu flowchart : SIMBOL NAMA TERMINATOR FUNGSI Permulaan/akhir program

GARIS ALIR (FLOW LINE)

Arah aliran program Proses inisialisasi/pemberia n harga awal Proses perhitungan/proses pengolahan data Proses input/output data, parameter, informasi Permulaan sub program/proses menjalankan sub program Perbandingan pernyataan, penyeleksian data yang memberikan pilihan untuk langkah selanjutnya Penghubung bagianbagian flowchart yang berada pada satu halaman Penghubung bagianbagian flowchart yang berada pada halaman berbeda

PREPARATION

PROSES

INPUT/OUTPUT DATA PREDEFINED PROCESS (SUB PROGRAM)

DECISION

ON PAGE CONNECTOR

OFF PAGE CONNECTOR

Dari contoh algoritma di atas tentang menentukan apakah suatu bilangan adalah bilangan ganjil atau bilangan genap, flowchart dari program adalah sebagai berikut :
Start

Input Bilangan

Apakah Sisa = 0

Hitung sisa bagi antara bilangan dengan 2

Y
Cetak Genap Cetak Ganjil

End

Soal Latihan 1. Buat algoritma untuk menentukan apakah suatu bilangan merupakan bilangan prima atau bukan, kemudian buat flowchart untuk program tersebut ! 2. Buat algoritma untuk mencetak N buah bilangan prima yang pertama, kemudian buat flowchart untuk program tersebut ! 3. Buat algoritma untuk menentukan jenis akar dari suatu persamaan kuadrat, kemudian buat flowchart untuk program tersebut ! 4. Buatlah Algoritma dan Flowchart program untuk menampilkan bilangan genap antara 1 100, berikut jumlah bilangannya 5. Buat algoritma untuk menghitung nilai faktorial dari suatu bilangan, kemudian buat flowchart untuk program tersebut ! 6. Buat flowchart untuk mencetak pasangan nilai X dan Y dimana hubungan antara X dan Y memenuhi persamaan Y = X3 2X +1 dan nilai x berubah dari 10 sampai 10 ! 7. Buatlah algoritma dan flowchart untuk menghitung luas dan keliling lingkaran ! 8. Buatlah algoritma dan flowchart untuk mengecek bilangan diantara 2 bilangan masukan, apakah sama ataukah lebih besar salah satunya, dan tampilkan hasilnya. 9. Buatlah algoritma dan Flowchart program yang dapat mengetahui apakah suatu bilangan yang dimasukkan merupakan sebuah bilangan genap, ganjil dan nol ? 10. Buatlah algoritma dan Flowchart program untuk menghitung dan menampilkan volume balok dengan rumus (panjang x lebar x tinggi) sedangkan panjang, lebar dan tinggi balok diinputkan melalui keyboard pada saat program dieksekusi.

BAB II PENULISAN CODE PROGRAM DI PASCAL

1. STRUKTUR PROGRAM PASCAL

Struktur dari suatu program Pascal terdiri dari sebuah judul program(program heading) dan suatu blok program(program block) atau badan program (body program). 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 Kodedeklarasi warna konstanta(constants Warna Kodedeclaration), warna Warna tipe(type declaration), deklarasi variable (variables declaration), 0 Black deklarasi 8 prosedur (procedures Dark Grey declaration), dan deklarasi 1 Green declaration). Secara 9 ringkas Light Blue fungsi(function dapat digambarkan sebagai berikut : 2 Blue 10 Light Green 1. Judul Program 3 Blok Program Cyan 2. 4 a. Bagian Red Deklarasi 5 - Magenta deklarasi label 6 7 - Brown definisi constanta - Light definisi tipe Gray - deklarasi variabel - deklarasi prosedur - deklarasi fungsi b. Bagian pernyataan. Tipe Data Jangkauan 2 MENAMPILKAN TULISAN DI LAYAR Numerik 0 255 Byte program tulisan; judul program Word 0 65535 uses crt; deklarasri fungsi Longint 2147483648 2147483647 begin awal memulai program Integer -32768 32767 clrscr; membersihkan layar writeln('SELAMAT DATANG); menampilkan tulisan SELAMAT DATANG Shortint -128 127 -39 38 write('SEMOGA ANDA PUAS); menampilkan tulisan SEMOGA ANDA PUAS -2.9E 1.7E Real readln; menyetop utk sementara eksekusi program Logika True or False end. Akhir dari program Karakter 1 karakter Char yang dicetak tebal (dari #bagian begin end.) adalah bagian pernyataan (statement) String 1 255 karakter 3 TIPE DATA 11 12 13 14 15 Light Cyan Light Red Light Magenta Yellow White

4 TEXTCOLOR 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)

CONTOH1 program hello; uses crt; begin textcolor(6); textbackground(11); clrscr; write('AAAkuuuuuuuuuuu); write('Kaaaaaanggggggggggennn); write('Ama Kamuuuuuuuuuuuuuuu'); end.

CONTOH2 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.

5. PROGRAM DENGAN PENGGUNAAN VARIABEL

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

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) ) program tulisan; uses crt; begin clrscr; gotoxy(10,2);writeln('SELAMAT DATANG DI PIKMI); gotoxy(10,3);writeln('SEMOGA ANDA PUAS); readln; end

Husnan Sarofi 20063 Pengenalan Pemrograman Pascal

BAB II STRUKTUR PERNYATAAN IF dan IF-ELSE


II.1 PERNYATAAN IF 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; 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.

kondisi
PERNYATAAN

T
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

F
PERNYATAAN

Husnan Sarofi 20064 Pengenalan Pemrograman Pascal

II.2 PERNYATAAN IF-ELSE Struktur Logika IF-ELSE adalah sbb: 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 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.

Jika syarat yang ditentukan terpenuhi( T ) maka pernyataan akan dijalankan, jika syarat tidak terpenuhi ( F ) maka pernyataan2 yang dijalankan 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 kondisi PERNYATAAN 1PERNYATAAN 2F T

Husnan Sarofi 20065 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 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.

tetapi jika syarat tdk terpenuhi akan menghasilkan syarat yang lain agar pernyataan yang ditentukan bisa terpenuhi. Bisa juga kondisinya berbeda. Melewati Babak

Babak final T T T F F F Syarat 1 T F Syarat 2 Pernyataan syarat/ pernyataan yg lain ............................ T F Husnan Sarofi 20066 Pengenalan Pemrograman Pascal
semifinal

penyisihann Melewati Babak per4final Melewati Babak

II.3 PERNYATAAN IF BERSARANG (NESTED-IF)


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) Struktur logika NESTED IF adalah sbb: 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 Struktur pernyataan NESTED IF bergantung pada kondisi dari masalah yang akan diselesaikan. Bisa jadi setelah syarat 1 dipenuhi langsung menghasilkan sebuah pernyataan,

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.

II.4 PERNYATAAN CASE-OF


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;

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. 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 20067 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 20068 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)

III.1 COUNTED LOOP


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 FORDOWNTO-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.

III.1.2 Pernyataan FOR-DOWNTO-DO 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;

SINTAX :

for a:=5 downto 1 do begin writeln('PIKMI Jember'); writeln('For The Real World'); end; 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

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) Dalam perintah FOR-DOWNTO-DO jumlah counter akan berkurang sebanyak 1 angka, tiap proses pengulangan terjadi.

Husnan Sarofi 20069 Pengenalan Pemrograman Pascal Husnan Sarofi 2006 10

readln;

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.

end.

III..2 CONDITIONAL LOOP


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 <proses yang diulang>; UNTIL <syarat yang ditentukan>;


CONTOH 1

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 :

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.

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 Pengenalan Pemrograman Pascal

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 :

SMA 2 SEMARANG
WHILE <syarat yang ditentukan> DO BEGIN <proses yang akan diulang>; END; 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 huruft atau T maka langsung keluar dari proses pengulangan dan karena tidak ada perintah lagi di bawahperintah pengulangan maka, program pun langsung berakhir. 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;

10 IPA 1

7 ARINDRA MARTHA S 19

SMA 2 SEMARANG
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'

10 IPA 1

7 ARINDRA MARTHA S 20

SMA 2 SEMARANG
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

10 IPA 1

7 ARINDRA MARTHA S 21

SMA 2 SEMARANG
perintah SOUND. Sekaligus melakukan pengulangan (karena variable ULANG diberinilai y, dimana syarat mengakhiri perulangan ialah jika variable ULANG bernilai t atau T).

10 IPA 1

7 ARINDRA MARTHA S 22

SMA 2 SEMARANG
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.

10 IPA 1

7 ARINDRA MARTHA S 23

SMA 2 SEMARANG

III..3 NESTED LOOP 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;

10 IPA 1

7 ARINDRA MARTHA S 24

SMA 2 SEMARANG
readln; end.

10 IPA 1

7 ARINDRA MARTHA S 25

SMA 2 SEMARANG

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);

10 IPA 1

7 ARINDRA MARTHA S 26

SMA 2 SEMARANG
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.

10 IPA 1

7 ARINDRA MARTHA S 27

SMA 2 SEMARANG

10 IPA 1

7 ARINDRA MARTHA S 28

You might also like