SEJARAH PASCAL Bahasa Turbo Pascal dikembangkan oleh Niklaus Wirth, bahasa Turbo Pascal berawal dari bahasa Perancis, diambil dari nama seorang ahli matematika Perancis yaitu Blaise Pascal (16231662) (penemu mesin penjumlahan mekanis yang pertama kali). Turbo Pascal merupakan salah satu bahasa pemrograman tingkat tinggi yang masuk kategori bahasa pemograman terstruktur yaitu Bahasa pemrograman yang mendukung abtraksi data, pengkodean terstruktur, dan kontrol program terstruktur Bahasa Pemrograman Beraras Tinggi: bahasa pemrograman yang mudah dibuat dan dipahami oleh orang awam, dimana kode-kodenya tidak berorientasi pada bahasa mesin. Contoh: C dan C++ Fortran Cobol DASAR PASCAL Program adalah instruksi-instruksi yang diberikan kepada komputer agar komputer dapat melaksanakan tugs-tugas tertentu. Tahap-tahap penulisan program: a. Menulis program b. Menjalankan program untuk menguji kebenaran program c. Dalam penulisn logika ataupun kaidah, jika ada kesalahan maka program tersebut diperbaiki dan kembali ke langkah 2. Gambar Langkah Pemrograman Mulai
Menulis Program
Menjalankan Program
Ya
Ada Kesalahan
Memperbaiki Program
Tidak Selesai
1
Langkah pemrograman dimulai dengan menuliskan program, setelah program ditulis dilakukan pengujian / menjalankan program, jika dalam menjalankan program terdapat kesalahan maka program tersebut diperbaiki kembali sampai tidak ada kesalahan dan jika program sudah valid atau tidak ada kesalahan maka program tersebut dikatakan selesai atau sukses. Diagram alir berfungsi untuk alat bantu membuat program dan untuk kepentingan pendokumentasian. Problem
Diagram Alir
Program Sumber
Jenis diagram alir ada 2: diagram alir program dan diagram alir sistem Diagram Alir program : gambar yang menjelaskan urutan: Pembacaan data Pemrosesan data Pengambilan keputusan terhadap data Penyajian hasil pemrosesan data Diagram alir sistem: gambar yang menjelaskan : File-file yang diproses oleh program Jenis piranti yang digunakan oleh file Operasi terhadap file (masukan maupun keluaran) Mengaktifkan editor turbo pascal Turbo Pascal menyediakan fasilitas editor TURBO PASCAL yang memberikan pelayanan terpadu antara editor dan compiler. Turbo Pascal dapat diaktifkan dari prompt C (dapat menyesuaikan) dengan mengetikkan: C:>TURBO<Enter> File Edit Search Run Compile Debug Tools Options Window Help ╔═[■]════════════════════════════ NONAME00.PAS ║ ▲ ║ ▓ ║ ▓ ║ ▓ ║ ▓ ║ ▓ ║ ▓ ║ ▓ ║ ▓ ║ ▓ ║ ▓ ║ ▓ ║ ▓ ║ ▓ ║ ▓ ║ ▓ ║ ▓ ║ ▓ ║ ▓ ║ ▓ ║ ▼ ╚═══════ 1:1 ═════◄■▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒►─┘ F1 Help F2 Save F3 Open Alt+F9 Compile F9 Make Alt+F10 Local menu
2
Menu-menu 1. Menu File Load (F3) membuka program Pick (Alt+F3) membuka salah satu diantara program yang diedit. New membuka program baru Quit (Alt+X) keluar dari editor 2. Menu Edit (Alt+E): berhubungan dengan penyuntingan/ edit program 3. Menu Search: mencari dan mengganti teks 4. Menu Run (Alt+R) mengeksekusi program (Ctrl+F9) 5. Menu CompileMenu Options (Alt+F9): untuk mengkompilasi program 6. Menu Debug: pencarian kesalahan 7. Menu Tools: menampilkan jendela kesalahan 8. Menu Options 9. Menu Windows:menutup jendelea yangs edang aktif, memperbesar ukuran jendela, memilih jendela aktif 10. Menu Help: bantuan untuk memperoleh informasi tentang Turbo Pascal Aktifitas dalam pembuatan Program: 1. Menulis Program: tekan Alt+F atau tekan N (New) 2. Mengedit program: Tekan F3 3. Mengkompilasi Program: tekan Alt+C 4. Menjalankan program: tekan Alt+R atau F9 5. Melihat hasil pogram: tekan Ctrl+F9 6. Memperbaiki program: memberitahu kesalahan sintaks atau penulisan program, setelah diperbaiki kemudian program di-compile kembali 7. Menyimpan Program: tekan F2 Struktur Program Pascal 1. Kepala Program Bentuk umumnya: PROGRAM nama; Syarat penulisannya Sesudah nama konstanta, harus diakhiri tanda titik koma ( ; ) Kata PROGRAM merupakan kata tercadang, yaitu mempunyai makna khusus dalam Turbo Pascal. Nama konstanta di definisikan sendiri oleh pemrogram untuk mengidentifikasi program yang dibuat 2. Bagian Deklarasi Bentuk umumnya: PROGRAM <StructureSample>; LABEL
; CONST ; VAR < VariableDeclarations>; PROCEDURE/FUNCTION <Example>; BEGIN 3
; END; BEGIN <MainBodyProgram>; END. 3. Bagian Pernyataan Bentuk umumnya: BEGIN Pernyataan; … Pernyataan END. Komentar adalah tulisan pada program, yang tidak berarti apa-apa bagi komputer, tetapi sangat berguna bagi orang karena berfungsi sebagai dokumentasi. Aturannya: 1. sepasang tanda (* *) boleh berada didalam sepasang tanda {} 2. sepasang tanda {}bole berada di dalam sepasang tanda (* *) 3. tanda (* *) tidak boleh berpotongan Dasar Turbo Pascal Karakter {elemen terkecil pada Turbo Pascal) dan simbol meliputi: Spasi / kosong: Karakter : a,b,c,…,z,A,B,C,…,Z Karakter ASCII : karakter dengan kode ASCII di bawah dan diats 127 Simbol 1 karakter : + - * / = < > [] {} , . ; : ^ @ $ # () Simbol 2 karakter : <= >= := (* *)<> Angka desimal : 0,1,2,3,4,5,6,7,8,9,10,… Angka heksadesimal : 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,10,…
4
ELEMEN DASAR TURBO PASCAL Karakter adalah elemen terkecil pada Turbo Pascal. Karakter dapat berupa: 1. Huruf (A sampai dengan Z, a sampai dengan z) 2. Angka (0 sampai dengan 9) 3. Simbol khusus satu karakter ( + - * / = , . [ ] . , ( ) ; : ^ @ { } ) Simbol khusus dua karakter: Simbol Keterangan <= Operator relasi >= Operator relasi := Operator penugasan <> Operator relasi (* Tanda awal komentar *) Tanda akhir komentar (. Identik dengan [ .) Identik dengan ] .. Tanda subjangkauan 4. Spasi ( ) 5. Karakter kontrol (karakter dengan nilai ASCII di bawah 32, misalnya Tab dan Backspace) 6. Karakter ASCII (American Standard Code for Information Interchange atau American Standard Comittee on Information Interchange) tidak standar pada PC (karakter dengan nilai ASCII antara 128 hingga 255) Reserved Word (Kata Tercadang): kata baku yang telah disediakan oleh Turbo Pascal dan memiliki arti khusus. Antara lain: absolute Do Forward interface or and Downto Function interupt packed array Else Goto label procedure begin End If mod program case External implementation nil record const File In not repeat div For in line of set shl Type While then var shr Unit With uses to string Until Xor Catatan: penulisan reserved word atau lata tercadang dapat menggunakan huruf kecil atau kapital. Pengenal / identife digunakan untuk memberi nama program, unit, prosedur, label, fungsi, konstanta, atau variabel. Syarat pengenal/ identifier adalah: Karakter pertama dimulai dengan huruf Tidak mengandung spasi/ blank Tidak boleh ada simbol khusus Tidak boleh sama dengan reserved word Setelah karakter pertama dapat berupa angka, huruf, atau underscore Panjang tidak dibatasi, hanya 63 karakter yang dibedakan 5
Penggunaan huruf kecil atau huruf kapital dianggap sama Ex: yang benar: Semester_1 (identik dengan : SEMESTER_1) N HargaBarang Ex: yang salah: Semester 1 (salah karena ada spasi) 12bulan (salah karena diawali dengan angka) Bulan-2 (salah karena ada tanda minus) Konstanta / Const, merupakan nilai yang tetap selama program dijalankan, yang dapat berupa karakter atau angka. Contoh program menggunakan Constanta program konstanta; uses crt; const nama='Budi'; Berat='54'; tinggi='156'; begin writeln('nama:',nama); writeln('berat:',berat); writeln('tinggi:',tinggi); readln; end. Data, macam dan pengelompokan tipe data dalam Turbo Pascal ordinal
Integer=data bilangan bulat Shortint Longint Boolean Char=sebuah karakter Byte Subrange Enumerated / terbilang
Sederhana
String real Tipe data
Larik / array Rekaman Himpunan (set) Berkas (file)
Terstruktur
Pointer
6
Ungkapan/ ekspresi digunakan untuk menyatakan pemberian nilai atau menuliskan rumus. Umumnya ungkapan tersusun atas operand dan operator Contoh: 10 + 2 – 3 ungkapan / ekspresi tanda + dan – disebut operator angka 10 2 3 disebut operand Macam operator yang dapat digunakan Aritmatika, terdiri atas: Operator binary : + - / * DIV MOD Operator unary : + (plus) dan – (minus) Prioritas : + (plus) dan – (minus) prioritas tertinggi / * DIV MOD prioritas menengah + - prioritas terendah
Tabel operator matematika: Operator * / DIV MOD + -
Arti Kali Bagi (real) Bagi (bulat) Sisa pembagian Tambah Kurang
Prioritas 1 1 1 1 2 2
Contoh 2*3 6 7/2 3.5 7 div 2 3 7 mod 2 1 2+35 2 – 3 -1
Contoh program menggunakan Operasi Matematik Program hitungan_1; uses wincrt; var A,B,C:integer; F,Q,L:real; Z:string; begin A:=10; B:=2; C:=A div B; F:=100.5; Q:=5.5; L:=F + Q; Z:='soni'; writeln('isi A= ',A); writeln('isi B= ',B); writeln('isi C= ',C); writeln('isi F=',F); 7
writeln('isi Q=',Q); writeln('isi L=',L); writeln('isi Z= ',Z); readln; end.
Boolean (True False), terdiri atas: AND, OR, NOT, XOR Tabel kebenaran hasil dari operator boolean: Operand 1
Operand 2
FALSE FALSE TRUE TRUE
FALSE TRUE FALSE TRUE
Hasil operasi AND OR XOR FALSE FALSE FALSE FALSE TRUE TRUE FALSE TRUE TRUE TRUE TRUE FALSE
Contoh Program menggunakan konstanta boolean uses wincrt; const benar=true; salah=false; begin writeln('nilai benar=',benar); writeln('nilai salah=',salah); writeln('true and true=',benar and benar); readln; end.
Relasional, terdiri atas =, >, <, >=, <=, <> Concate / penggabungan Khusus untuk tipe data string, operator + berarti menggabung 2 string Contoh: ‘AR’ + ‘UM’ akan menghasilkan string ‘ARUM’
Contoh program menggunakan string program identitas_diri; uses wincrt; var namaAnda:string[10]; begin clrscr; write('Nama Anda?'); readln(namaanda); write('Nama Anda=',namaanda,'!'); readln; end. 8
9
TIPE DASAR INTEGER: terdiri dari bilangan bulat dalam rentang tertentu Operator Integer Operator Arti + Penjumlahan Pengurangan * Perkalian DIV Division, hasil pembagian bulat MOD Modulo, sisa pembagian REAL: terdiri dari bilangan pecahan dalam rentang tertentu Operator Arti + Penjumlahan Pengurangan * Perkalian / pembagian BOOLEAN:Terdiri dari dua harga yaitu TRUE dan FALSE. Ekspresi TRUe dan FALSE disebut ekspresi Boolean. Terdapat dua jenis operator yang dapat digunakan dalam ekspresi Boolean, yaitu Operator Boolean dan Operator Relasional Operator Boolean terdiri dari AND, OR, XOR dan NOT Operand 1
Operand 2
FALSE FALSE TRUE TRUE
FALSE TRUE FALSE TRUE
AND FALSE FALSE FALSE TRUE
OR FALSE TRUE TRUE TRUE
Hasil operasi XOR NOT Operand 1 FALSE TRUE TRUE TRUE TRUE FALSE FALSE FALSE
Operator relasional Operator = < > <= >= := <>
Arti Sama dengan Kurang dari Lebih dari kurang dari sama dengan Lebihd ari sama dengan Operator penugasan Tidak sama dengan
10
PERNYATAAN BERSTUKTUR/ MAJEMUK
1. Pernyataan majemuk adalah kumpulan beberapa pernyataan yg diawali dengan Begin dan diakhiri dengan pernyataan End. 2. Pernyataan Bersyarat (If Then, If Then Else, If Then Else If, Case Of) A. If Then Pernyataan bersyarat akan dilaksanakan jika syarat terpenuhi (bernilai True) Ada 2 sintaks untuk pernyataan If Then Sintaks 1 If SyaratLogika Then Pernyataan; Sintaks 2 If SyaratLogika Then Begin Pernyataan1; Pernyataan2; ……………; PernyataanN; End; SyaratLogika adalah operasi relasi yang apabila syarat logika terpenuhi (True), maka pernyataan atau blok pernyataan setelah Then akan dilakasanakan. Apabila syarat kondisi logika tidak terpenuhi (bernilai False), maka pernyataan atau blok pernyataan tidak akan dikerjakan Contoh 1 Program Bersyarat IF THEN program derajat_celcius; uses wincrt; var suhu:real; begin write('suhu tubuh:'); readln(suhu); if suhu > 37 then writeln ('SUHU TINGGI') end. Contoh 2 Program Bersyarat IF THEN
PROGRAM KELULUSAN NILAI; USES CRT VAR NAMA :STRING [10]; NILAI:REAL KET:STRING[20]; 11
BEGIN CLRSCR; WRITE ('NAMA SISWA='); READ(nama; WRITE('NILAI ANGKA='); READln(nilai); KET:=ANDA TIDAK LULUS'; IF (NILAI>55) THEN KET:='ANDA LULUS'; write; WRITELN('HASIL=',KET); READln; END.
Contoh 3 Program Bersyarat IF THEN Program pernyataan_if_then; uses wincrt; var nilai:integer; siswa,ket:string; P:char; begin writeln('masukkan nama siswa='); readln(siswa); writeln('masukkan nilai ujian=;); readln(nilai); if nilai >=85 then P:='A'; if nilai >=75 then P:='B'; if nilai >=60 then P:='C'; if nilai >=50 then P:='D'; if nilai <50 then P:='E'; writeln('nama siswa=',siswa, 'Nilainya=',p) readln; end. Latihan: jalankan program dengan input nilai= 86,78,64,56,40 Contoh 4 Program Menggunakan If Then Program pernyataan_if_then; uses wincrt; var nilai:integer; siswa,ket:string; P:char; begin writeln('masukkan nama siswa='); readln(siswa); writeln('masukkan nilai ujian=;); 12
readln(nilai); if (nilai<=100) and (nilai>=85) then P:='A'; if (nilai<85) and (nilai>=75) then P:='B'; if (nilai<75) and (nilai>=60) then P:='C'; if (nilai<60) and (nilai>=50) then P:='D'; if (nilai<50) and (nilai>=0) then P:='E'; writeln('nama siswa=',siswa, 'Nilainya=',p) readln; end. B. If Then Else Mirip dengan pernyataan If Then. Ada 2 sintaks untuk pernyataan If Then Else Sintaks 1 If SyaratLogika Then; Pernyataan1; Else Pernyataan2; Sintaks 2 If SyaratLogika Then Begin Pernyataan1; Pernyataan2; ……………; End {tanpa tanda titik koma} Else Begin PernyataanA; PernyataanB; ……………; End; SyaratLogika apabila syarat logika terpenuhi (True), maka pernyataan atau blok pernyataan setelah Then akan dilaksanakan. Apabila syarat kondisi logika tidak terpenuhi (bernilai False), maka pernyataan atau blok pernyataan setelah Else yang akan dikerjakan. Contoh 1 Program Bersyarat IF THEN ELSE Program pernyataan_if_then; uses wincrt; var nilai:integer; siswa,ket:string; P:char; begin writeln('masukkan nama siswa='); readln(siswa); writeln('masukkan nilai ujian=;); readln(nilai); if nilai >=85 then P:='A' else 13
if nilai >=75 then P:='B'else if nilai >=60 then P:='C'else if nilai >=50 then P:='D'else if nilai <50 then P:='E'; writeln('nama siswa=',siswa, 'Nilainya=',p) readln; end. Contoh 2 Program Bersyarat IF THEN ELSE Program kelulusan; Var Nama:integer[20]; Nilai:real; Ket, Pesan:string[30]; Begin write('Nama Siswa:'); readln(Nama); write('Nilai Angka'); readln(Nilai); Ket:='Aduh Sayang Sekali, Anda Tidak Lulus...'; Pesan:='Ulangi Tahun depan Yach!'; If (Nilai > 55) Then Begin Ket='Horeee Anda Lulus!!!!'; Pesan:='Selamat Ya..makan-makannya mana dong!'; End Else Begin Ket:='Anda Tidak Lulus Tuh...'; Pesan:='Belajar Yang Giat LAgi Yo!!!’ End writeln; write('Hasil:'); writeln(Ket,'',Pesan) readln; End.
C. If Then Else If If Then Else If sebenarnya merupakan pernyataan bersyarat dalam pernyataan bersyarat yang lain. Ada 2 sintaks untuk pernyataan If Then Else If Sintaks 1 If SyaratLogika Then; Pernyataan1 Else If SyaratLogika Then Pernyataan2 Else Pernyataan3; 14
Sintaks 2 If SyaratLogika Then Begin Pernyataan1; Pernyataan2; ……………; End Else If SyaratLogika Then Begin Pernyataan21; Pernyataan22; ……………; End Else Begin Pernyataan31; Pernyataan32; ……………; End; SyaratLogika terpenuhi (bernilai True), maka pernyataan atau blok pernyataan setelah Then akan dilaksanakan. Apabila syarat kondisi logika tidak terpenuhi (bernilai False) maka program akan mengecek kondisi kedua, jika kondisi kedua bernilaiTrue, maka pernyataan atau blok pernyataan setelah Then akan dikerjakan. Jika kondisi kedua bernilai False, maka pernyataan atau blok pernyataan setelah False akan dikerjakan. Contoh Program Bersyarat IF THEN ELSE IF PROGRAM NILAI; USES CRT; VAR NAMA: STRING[15]; NILAIANGKA:REAL; NILAIHURUF:CHAR; BEGIN CLRSCR; WRITE('NAMA SISWA:'); READLN(NAMA); WRITE('NILAI ANGKA='); READLN(NILAIANGKA); IF (NILAIANGKA>=75) THEN NILAIHURUF='A' ELSE IF (NILAIANGKA>=50) AND (NILAI ANGKA<75) THEN NILAIHURUF:='B' ELSE NILAI HURUF:='C'; WRITELN('NILAI HURUF=',NILAIHURUF); READLN; 15
END. D. Case Of Pernyataan Case of dipakai untuk seleksi ganda. Misal untuk membuat menu pilihan atau pilihan proses. Sintaks: Case NamaVar Of Pernyataan1; Pernyataan2; ……………; End; Nama Var dalam hal ini adalah sebuah variabel yang harus bertipe ordinal seperti char, byte atau integer. Contoh 1 program case of. program pernyataan_case_of; uses wincrt; var nilai:integer; nama:string; begin writeln('mencoba pernyataan case of'); writeln; writeln('masukkan nama anda:'); readln(nama); write('masukkan nilai 1-10'); readln(nilai); case nilai of 1 : writeln('anda menekan angka satu:'); 2 : writeln('anda menekan angka dua:'); 3 : writeln('anda menekan angka tiga:'); 4 : writeln('anda menekan angka empat:'); 5 : writeln('anda menekan angka lima:'); 6 : writeln('anda menekan angka enam:'); 7 : writeln('anda menekan angka tujuh:'); 8 : writeln('anda menekan angka delapan:'); 9 : writeln('anda menekan angka sembilan:'); 10 : writeln('anda menekan angka sepuluh:'); end; readln end.
16
Contoh 2 program case of program pernyataancaseof; uses wincrt; var nilai:char; nama:string; begin writeln('mencoba pernyataan case of'); writeln; writeln('masukkan nama anda:'); readln(nama); write('masukkan nilai A...E'); readln(nilai); case nilai of A : writeln('anda menekan angka A:'); B : writeln('anda menekan angka B:'); C : writeln('anda menekan angka C:'); D : writeln('anda menekan angka D:'); E : writeln('anda menekan angka E:'); end; readln end. Contoh 3 pogram case of Program Nilai; uses wincrt; var nilai: integer; nama:string; begin writeln('mencoba pernyataan case of'); writeln; writeln('masukkan nama anda:'); readln(nama); write('masukkan nilai 0-100 (nilai bilangan bulat)'); readln(nilai); case nilai of 85..100 begin writeln ('nama anda=',nama); writeln ('mendapat nilai:A'); 75..84 begin writeln ('nama anda=',nama); writeln ('mendapat nilai:B'); 60..74 begin writeln ('nama anda=',nama); writeln ('mendapat nilai:C'); 50...59 begin writeln ('nama anda=',nama); writeln ('mendapat nilai:D'); 17
0..49 begin writeln ('nama anda=',nama); writeln ('mendapat nilai:E'); end; end; readln end. Contoh 4 Program Case Of Menentukan Hitungan Geometri Program caseof; uses crt; label pilihan; var pilih: char; P,L,Luas_SE: integer; A,T,Jari,Luas_ST,Luas_L,Keliling_L,Volume_Bola:real; begin pilihan: clrscr; writeln('-----------------------'); writeln ( 'PILIHAN PROSES'); writeln('-----------------------'); writeln ('1. Luas Segi Empat'); writeln ('2. Luas Segi Tiga'); writeln ('3. Luas Lingkaran'); writeln ('4. Keliling Lingkaran'); writeln ('5. Volume Bola'); writeln ('6. Selesai'); writeln('-----------------------'); write('Masukkan Pilihan Anda:'); readln(pilih); case pilih of '1': begin write('Panjang:'); readln(P); write('Lebar:'); readln(L); Luas_SE:=P*L; write('Luas Segi Empat:',Luas_SE); readln(pilih); end; '2': begin write('Alas:'); readln(A); write('Tinggi:'); readln(T); Luas_ST:=0.5*A*T; write('Luas:',Luas_ST:6:2); readln(pilih); end; 18
'3': begin write('Jari-jari:'); readln(Jari); Luas_L:=3.14*Jari*Jari; write('Luas:', Luas_L:6:2); readln(pilih); end; '4': begin write('Jari-jari:'); readln(Jari); Keliling_L:=3.14*2*Jari; write ('Keliling Lingkaran:',Keliling_L:6:2); readln(pilih); end; '5': begin write('Jari_Jari:'); readln(Jari); Volume_Bola:=4/3*3.14*Jari*Jari*Jari; write('Volume Bola:',Volume_Bola:6:2); readln(pilih); end; '6':halt; end; write('S E L E S A I . . . . .'); goto pilihan; end. Output: ----------------------PILIHAN PROSES ----------------------1. Luas Segi Empat 2. Luas Segi Tiga 3. Luas Lingkaran 4. Keliling Lingkaran 5. Volume Bola 6. Selesai ----------------------Masukkan Pilihan Anda:2 Alas:5 Tinggi:7 Luas: 17.50
3. Pernyataan Pengulangan (For To Do, For Downto Do, While Do, Repeat Until) A. For To Do dan For Downto Do For To Do digunakan untuk mengulang proses dengan cacah perulangan tertentu, artinya pernyataan (tunggal atau majemuk) akan dikerjakan secara berulang sebanyak N kali, dimana nilai N telah diketahui sebelumnya. Sintaks 1 For NamaVarCounter:= Awal To Akhir Do 19
Pernyataan;
Sintaks 2 For NamaVarCounter:= Awal To Akhir Do Begin Pernyataan1; Pernyataan2; ……………; End;
Dalam bentuk ini pernyataan atau blok pernyataan akan dikerjakan sebanyak Akhir dikurangi Awal. Nilai NamaVarCounter pertama kali akan sama dengan nilai dalam variabel Awal. Selanjutnya NamaVarCounter akan bertambah satu pada setiap kali selesai dilaksanakan satu kali perulangan. Akhirnya prose perulangan akan dihentikan setelah NamaVarCounter lebih dari nilai pada variabel Akhir. Contoh 1 program for to do Program for_to_do; uses wincrt; var i:integer; begin for i:=1 to 5 do writeln('SMA 3'); writeln('Yogyakarta'); writeln('never ending Asia'); readln; end contoh 2 program for to do Program for_to_do; uses wincrt; var i:integer; begin for i:=1 to 5 do begin writeln('SMA 3'); writeln('Yogyakarta'); writeln('i=',i); writeln('never ending Asia'); end; readln; end. ForDown To Do 20
Sintaks 1 For NamaVarCounter:= Awal Downto Akhir Do Pernyataan; Sintaks 2 For NamaVarCounter:= Awal Downto Akhir Do Begin Pernyataan1; Pernyataan2; ……………; End; Catatan: Jika Awal < Akhir digunakan perintah For To Do Jika Awal > Akhir digunakan perintah For Downto Do
Contoh Program For Downto Do Program fordowntodo; uses wincrt; var i:integer; begin for i:=8 downto 1 do begin writeln('i=',i); writeln('SMA 3'); writeln('Yogyakarta'); writeln('never ending Asia'); end; writeln('i=',i); readln; end.
B. While Do Pernyataan While Do biasanya dipakai untuk melakukan pengulangan yang jumlahnya tidak diketahui sebelumnya. While do mengeksekusi pernyataan lain selama beberapa kondisi bernilai true. Sintaks 1 While SyaratLogika Do Pernyataan; Sintaks 2 While SyaratLogika Do Begin Pernyataan1; 21
Pernyataan2; ……………; End; Selama SyaratLogika terpenuhi (bernilai True), maka pernyataan atau blok pernyataan akan terus menurs diekrjakan, dan baru akan berhenti dikerjakan jika SyaratLogika tidak lagi terpenuhi (bernilai False). Contoh Program Menggunakan WhileDo Program Putaran_while_do; uses wincrt; var k:integer; begin K:=0; While k<10 do writeln('Malam Minggu'); K:=K+1; Writeln('Hayo ke Bioskop'); writeln('Atrium 21'); readln; end.\
Catatan: Untuk menghentikan proses berulang secara terus menerus tekan Ctrl+Break pada Keyboard. Contoh 2 Program While Do Program Putaran_while_do; uses wincrt; var k:integer; begin K:=0; While k<10 do begin writeln('Malam Minggu'); K:=K+1; end; Writeln('Hayo ke Bioskop'); writeln('Atrium 21'); readln; end. Soal: 1. Jalankan progam tersebut: Berapa kali kata Malam Minggu, Hayo ke Bisokop dan Atrium 21 tercetak? 2. buatlah program dari output berikut ini:
22
C. Repeat Until Mirip dengan While Do,dimana setiap pernyataan perulangan dengan For To Do dapat diubah menjadi pernyataan menggunakan Repeat Until. Sintaks 1 Repeat Pernyataan; Until SyaratLogika; Sintaks 2 Repeat Pernyataan1; Pernyataan2; ……………; Until SyaratLogika; Pernyataan atau blok pernyataan akan terus menerus dikerjakan selama SyaratLogika terpenuhi (bernilai True) Contoh 1 Program menggunakan repeat until Program Putaran_repeat_until; uses wincrt; var k:integer; begin K:=0; Repeat writeln('Ada Pameran'); K:=K+1; until k>8; Writeln('Hayo liat pameran'); 23
writeln('di JEC'); readln; end.
24
LARIK (ARRAY) Array adalah sebuah struktur data yang terdiri atas banyak variabel dengan tipe data sama, dimana masing-masing elemen variabel mempunyai nilai indeks. Setiap elemen array mampu untuk menyimpan satu jenis data (yaitu variabel). Contoh: Type A=array [1..10] of integer; Definisi array diatas dapat diilustrasikan sbb: A1 Data A ke-1
A2 Data A ke-2
A3 Data A ke-3
…
AN Data A ke-N
Secara logika pendefinisan array diatas merupakan suatu kotak, dimana setiap kotak mempunyai nilai indeks integer 1,2,3,…,N setiap elemen array ditandai dengan: A[1],A[2],A[3],…,A[N] Sifat array merupakan struktur data yang statis, yaitu jumlah elemen yang ada harus ditentukan terlebih dahulu dan tak bisa diubah saat program berjalan.. untuk menyatakan dalam PASCAL, yang harus dilakukan adalah: 1. mendefinisikan jumlah elemen array 2. mendefiniskan tipe data dari elemen array contoh: const N=10; type A=array [1…N] of integer; Contoh program menggunakan Array dengan tipe integer program array_tipe_integer_tipe_index_integer; uses wincrt; var A:array[1..10] of integer; n,i:integer; begin n:=0; for i:=1 to 10 do begin a[i]:=n; n:=n+1 end; writeln('I A[I]'); for i:=1 to 10 do writeln(' ',i:2,' ',a[i]); readln; end. 25
A. Array Satu Dimensi (penjelasan sama dengan diatas). Intinya jika ingin membuat beberapa array dengan tipe/ jenis yang sama, lebih baik mendeklarasikan dengan type selanjutnya dengan deklarasi var. Sintaks: Type nama_array=ARRAY [bawah…atas] of tipe_data; Var variabel_array:nama_array; Atau dengan menggunakan pernyataan var; Var variabel_array:ARRAY[bawah…atas] of tipe_data; Keterangan: Bawah dan atas menyatakan batas untuk array. Tipe_data adalah merupakan tipe variabel yang dipunyai array (misal:Integer, char, real, dsb). Contoh: Type intarray=ARRAY [1..20] of integer;
B. Array Multidimensi Dalam array multidimensi terdiri atas baris (row) dan kolom (column). Indeks pertama adalah baris dan kedua adalah kolom. Sintaks Type nama-array=ARRAY[bawah..atas, bawah..atas] of tipe_data; Var variabel_array:nama_array; Atau dengan menggunakan pernyataan var; Sintaks Type matriks=ARRAY [1..10, 1..10] of integer; Var AKU: matriks
26
PROSEDUR DAN FUNGSI
Procedure atau Function merupakan modul tersendiri atau program terpisah dalam blok tersendiri, fungsinya sebagai sub program (program bagian). Procedure atau Function dibuat untuk menyelesaikan suatu tugas spesifik, artinya hanya perlu dituliskan sekali dan dapat digunakan berulang kali di bagian manapun dalam program. Prosedure / Procedure Merupakan sub program yang dapat dipanggil dalam program ataupun sub program lainnya, dan berdiri sebagai sebuah pernyataan. Prosedure diawali dengan kata Procedure. Bentuk deklarasi Prosedure: Procedure NamaProsedur (var parameter: tipedata); Keterangan NamaProsedur : nama prosedur Parameter : daftar parameter formal, tidak harus ada Contoh : Contoh program unt menghitung luas lingkaran dengan menggunakan prosedur. Prosedur yang digunakan adalah judul, input, cetak, dan tahan_tampilan. Program prosedur; Uses crt; Var R,Luas:real; Procedure judul; Begin Clrscr; Writeln(‘Menghitung Luas Lingkaran dengan Prosedur’); Writeln(‘--------------------------------------------------------’); End; Procedure input; Begin Write(‘Masukkan jari-jari=’); Readln(R); Writeln; End; Procedure cetak; Begin Writeln(‘jari-jari=’,R:4:1); Writeln(‘Luas Lingkaran=’,Luas(r):4:1); Writeln; End;
27
Procedure tahan_tampilan; Begin Writeln(‘Selesai…..’); Readln; End; Begin {Ini Program Utama lho!!!} judul; input; Luas:=3.14*R*R; cetak; tahan_tampilan; End. Fungsi / Function Hampir sama dengan blok prosedur, hanya harus dideklarasikan dengan tipe datanya. Tipe data yang dideklarasikan tersebut menunjukkan tipe data hasil dari fungsi. Tipe tersebut dituliskan pada akhir deklarasi fungsi yang didahului dengan titik koma (;). Deklarasi fungsi: Function NamaFungsi (parameter): Tipedata; Keterangan: Namafungsi Parameter
: nama fungsi : daftar parameter formal
Contoh: Contoh program menghitung luas lingkaran dengan menggunakan fungsi. Nama fungsi yang digunakan adalah luas. Program fungsi; Uses crt; Var R: real; Function Luas (r:real):real; {fungsi} Begin Luas:=3.14*R*R; End; Begin {Program Utama} Clrscr; Writeln(‘Menghitung Lingkaran dengan Fungsi’); Writeln(‘-----------------------------------------------’); Write(‘Masukkan jari-jari=’); Readln(R); Writeln; Writeln(‘jari-jari=’,R:4:1); Writeln(‘jari-jari=’,Luas (R):4:1); Writeln; Writeln(‘Selesai….’); 28
Readln; End.
Contoh: Contoh program, menghitung luas lingkaran dengan melibatkan fungsi dan prosedur sekaligus. Program luas_lkr; Uses crt; Var R:real; Function luas(R:real):real; Begin Luas:=3.14*R*R; End;
{fungsi}
Procedure judul; Begin Clrscr; Writeln(‘Menghitung Luas Lingkaran dengan Prosedur dan Fungsi’); Writeln(‘---------------------------------------------------------------------’); End;
Procedure input; Begin Write(‘Masukkan jari-jari=’,R:4:1); Writeln(‘Luas Lingkaran=’,R:4:1); Writeln; End; Procedure tahan_tampilan; Begin Writeln(‘Selesai……….’); Readln; End; Begin {Program Utama Lho!!!} judul; input; luas(R); cetak; tahan_tampilan; End.
29