Pascal buku

6,320 views

Published on

Published in: Education
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,320
On SlideShare
0
From Embeds
0
Number of Embeds
182
Actions
Shares
0
Downloads
369
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Pascal buku

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

×