I. KATA PENGANTAR
Dewasa ini sudah banyak berkembang bahasa-bahasa pemrograman tingkat tinggi yang pemakaiannya sudah sangat mudah, hanya klik dan drag saja. Namun meskipun demikian tetap saja programmer harus menuliskan kode-kode program agar objek-objek yang sudah mereka buat dapat bertingkah laku/bekerja sesuai dengan yang diinginkan. Secara singkat dapat dikatakan bahwa sebuah program pasti terdapat alur logika yang menyebabkan program tersebut dapat bekerja dengan benar. Modul algoritma dan pemrograman ini sangat penting bagi mahasiswa program studi Ilmu Komputer pada khususnya karena menjadi dasar bagi mahasiswa untuk mempelajari bahasa pemrograman. Pada modul ini diberikan contoh-contoh kasus untuk mempermudah memahami konsep. Karena sebuah contoh dapat memberikan inspirasi pemecahan masalah yang mirip. Tetapi patut diingat bahwa sebuah masalah di dalam pemrograman, bila diberikan kepada pemrogram yang berbeda, boleh jadi mempunyai aneka ragam solusi (dalam hal ini algoritma), mulai algoritma yang kusut karena banyak sekali percabangannya, sampai pada algoritma yang kurang efisien karena banyak sekali pengulangan instruksi yang sama dalam menganalisa kasus. Dengan mempelajari modul ini diharapkan nantinya Anda dapat memecahkan masalah secara metodologis, yaitu sesuai dengan skema (model) yang benar. Ketaatan menggunakan skema niscaya akan menghasilkan algoritma yang efisien dan mudah dipahami sehingga menghasilkan program yang baik pula. Sebagai akhir kata, semoga modul ini dapat diterima oleh para pembaca dalam mempelajari komputer, khususnya yang mempelajari mengenai bahasa penrograman Pascal serta dapat menambah wawasan bagi para pembaca dalam pembuatan program secara terstruktur.
Penulis
II. PENDAHULUAN
Pascal adalah suatu bahasa pemrograman terstruktur yang cukup terkenal sampai saat ini dan terus mengalami perkembangan. Pencipta bahasa Pascal adalah Niclaus Wirth (EidgenOssische Technishe Hoschule, Zurich, Swiss). Nama pascal sendiri diambil untuk mengenang dan mengabadikan seorang matematikawan Perancis bernama Blaise Pascal (1623-1662), penemu mesin penjumlah mekanis yang pertama kali. Bahasa Pascal lahir sebagai hasil pengembangan dari bahasa ALGOL60. Versi pertama Pascal muncul pada tahuin 1970, dan laporan pertama mengenai bahasa ini baru dipublikasikan pada tahun 1971. Pada tahun 1974, buku berjudul Pascal User manuial dan Report dipublikasikan. Buku ini ditulis oleh Niklaus Wirth dan Kathleen Jensen. Kepopuleran Pascal berkembang seiring dengan berkembangnya PC. Pada platform ini terdapat sejumlah compiler Pascal. Salah satunya adalah Turbo Pascal, yang dikeluarkan oleh Borland
International. Turbo Pascal telah mengalami pembaharuan semenjak versinya yang pertama. Tercatat pada tahun 1992, Turbo Pascal versi 7.0 telah dirilis. Yang menarik, Turbo Pascal bukan hanya sekedar compiler. Turbo Pascal menyediakan suatu lingkungan terpadu (dikenal dengan sebutan IDE, Integreted Development Environment), yang diantaranya berisi: Kompiler (untuk mengkompilasi program menjadi suatu objek yang dipahami computer) Debugger (untuk membantu mencari kesalahan program) Linker (Untuk menggabungkan file objek dan file pustakka serta membentuk file exutable) Editor (untuk menulis program sumber) Pada modul ini akan menjelaskan mengenai cara-cara penyusunan program menggunakan bahasa Pascal beserta pembuatan dan penulisan struktur data menggunakan tipe-tipe data yang ada pada bahasa Pascal.
membangun program yang sederhana. b. menyebutkan dan menjelaskan element-element pada bahasa
PASCAL minimal 2 element dengan benar. c. Membedakan cara pendeklarasian type data yang ada dalam Pascal minimal 80 % benar. d. menyebutkan operator yang digunakan dalam bahasa Pascal minimal 5 jenis operator dengan benar.
B. URAIAN MATERI
1) Mengenal Lingkungan Turbo Pascal
Turbo Pascal memiliki menu batang pada bagian atas layer. Item-item dari menu ini berupa: File Berisi berbagai perintah untuk operasi yang berhubungan dengan file, seperti: membuat program baru, menyimpan file, mencetak program ke printer, memuat program ke editor, mengubah direktori kerja, keluar ke DOS untuk sementara, keluar dari Turbo Pascal
Edit Berisi berbagai perintah yang berhubungan dengan operasi penyuntingan program, sperti: menyalin dan membuang teks melihat isi clipboard.
Search Diantaranya berguna untuk mencari dan mengganti teks Run Diantaranya untuk: menjalankan/mengeksekusi program, mengatur eksekusi perintah per langkah mengisikan parameter baris perintah.
Compile Diantaranya untuk: Debug Untuk melakukan debugging (pencarian kesalahan). Tools Diantaranya untuk menampilkan jendela pesan kesalahan Options Untuk mengatur berbagai pilihan untuk: Debugger Linker mengkompilasi program ke disk atau ke memori mengkompilasi secara cerdas terhadap program yang multifile menampilkan informasi mengenai program, memori dan EMS.
Cara menggunakan menu ditunjukkan pada tabel 1. Tabel 1. Cara menggunakan menu dalam turbo Pascal Tindakan Menampilkan menu Dengan Mouse Dengan Keyboard
sebuah Gerakan penunjuk mouse ke Tekan tombol <alt> dan nama menu dan kemudian tekan huruf kunci dari klik tombol. menu yang dikehendaki tombol kunci yang dari
Menuliskan perintah
Gerakkan pnunjuk mouse ke Tekan suatu perintah dalam menu. menjadi Klik tombol kiri perintah
Membatalkan perintah
Tekan <Esc>
Menulis Program
Anda dapat memulai untuk membuat program dengan mengikuti langkah sebagai berikut: (1) (2) Pilih menu File (Alt+F), Pilih New
Sebagai contoh, Anda dapat menulis program berikut ini: PROGRAM Lat1 BEGIN WriteLn(Selamat Belajar Turbo Pascal); END. Tombol Enter perlu ditekan untuk pindah dari baris akhir ke baris baru.
Menyimpan Program
Program yang telah dibuat atau dimodifikasi sebaiknya disimpan ke disk sebelum dijalankan. Langkah ini perludilakuakan agar program yang baru saja ditulis tidak hilang bila computer mendadak mati saat program dieksekusi atau karena sebab-sebab lain. Cara menyimpan program adalah sebagi berikut: (1) Pilih menu File (Alt+F), (2) Pilih Save
Setelah Misalnya:
Menjalankan/mengeksekusi Program
Utuk menjalankan program yang telah berda pada editor, lakukan langkah berikut: (1) Pilih menu Run (Alt+R), (2) Pilih Run Langkah ini akan menyebabkan: Program akan dikompilasi terlebih dulu (kecuali kalau pernah dikompilasi dan tidak ada perubahan lagi). Sekiranya tak ada kesalahan sintaks pada program, program akan segera dijalankan.
Menutup Program
Program yang sedang berada pada editor sekarang dapat di tutup dengan cara sebagai berikut: (1) Tekan Alt+W (menu Window), (2) Pilih Close.
Demikian halnya dengan bahasa pemrograman Pascal yang merupakan salah satu dari bahasa procedural. Bentuk program Pascal mirip dengan kebanyakan program bahasa tingkat tinggi lainnya. Bentuk umumnya adalah : 1. JUDUL PROGRAM 2. BLOK PROGRAM a. Bagian deklarasi (Tidak selalu digunakan semua, bisa satu bisa sebagian saja deklarasi yang digunakan) deklarasi label deklarasi konstanta deklarasi type deklarasi variabel deklarasi subroutine (deklarasi prosedur /deklarasi fungsi)
nilai awal suatu variable. Dengan kata lain, deklarasi digunakan untuk memperkenalkan suatu nama kepada Compiler program. Bagian deklarasi diatas tentu saja belum tentu ada didalam program. Malahan, sebuah program dapat saja tidak melibatkan bagian deklarasi sama sekali. Urutan bagian-bagian yang ada pada bagian deklarasi dapat dibolak-balik. Yang penting, sebelum menggunakan sesuatu tersebut harus ada terlebih dulu (sudah dideklarasikan).
Bentuk umumnya :
Penjelasan: Untuk mendeklarasikan variable pada Pascal, digunakan reserved word var, kemudian diikuti dengan nama variable (identifier) yang ingin digunakan, dan kemudian tipe data dari variable tersebut. Syarat penamaan variabel / pengenal : 1. panjang karakter dari suatu variabel terdiri dari antara 1 sampai dengan 40 karakter. 2. pada pascal identifier tidak bersifat case sensitive (huruf besar dan kecil tidak dibedakan ) 3. kombinasi huruf dengan angka dengan posisi pertama harus huruf 4. tidak boleh mengandung spasi, spasi dapat diganti dengan garis bawah 5. tidak boleh menggunakan character khusus seperti (*, /, %,@ dsb).
Pembuatan tipe baru bisa dilakukan untuk tipe data terstruktur seperti record atau array. Tipe yang dideklarasikan pada TYPE ini dapat dipakai untukmendeklarasikan variable (ataupun argument dari suatu subprogram). Contoh :
Bagian ini diawali kata tercadang BEGIN, diikuti nol atau sejumlah pernyataan dan kemudian diakhiri dengan kata tercadang END dan tanda titik (.). dengan demikian statemen
BEGIN END. Merupakan contoh program terpendek pada Turbo Pascal, mengingat: Bagian kepala program hanya bersifat opsional, Bagian deklarasi boleh tidak ada Peryataan di dalam bagaian pernyataan boleh tidak ada
Tentu saja, program tersebut tidak akan menghasilkan apa-apa kalau dijalankan, karena memang tidak ada tindakan yang menyuruh computer untuk melakukan sesuatu. Bagian pernyataan sering disebut program utama (main program). Bgaian inilah yang menjadi titik awal pengeksekusian program. Ketentuan penulisan statemen 1. Diakhiri dengan titik koma jika blok statement bukan blok utama program, sedangkan apabila blok statement adalah blok utama program, maka reserved word end harus diakhiri dengan tanda titik(.) 2. Huruf besar atau huruf kecil tidak dibedakan 3. Dalam satu baris boleh lebih dari satu statemen.
4. Satu statemen boleh terdiri dari beberapa baris 5. Konstanta tidak boleh dipecah dalam beberapa baris
Statemen terdiri dari : 1. Statemen pengerjaan Digunakan utk memasukkan suatu nilai tertentu ke dalam suatu variabel. Sintaks : pengenal_variabel := ungkapan; Contoh :
2. Statemen prosedur Digunakan utk mengaktifkan suatu prosedur yg telah didefinisikan pemakai atau oleh Pascal Contoh :
3. Statemen Lompatan statement yang digunakan untuk melompati statement-statement lain. Yang termasuk dalam kategori statement ini yaitu:
4. Statemen kosong statemen yg tidak berisi symbol apapun contoh : begin end;
dengan bahasa yang lain. Hal itu dikarenakan elemen-elemen tersebut merupakan bagian dari tata bahasa pemrograman yang bersangkutan. Berikut adalah element-element pada bahasa pemrograman Pascal 1. Tipe data 2. Aturan Leksikal 3. Expression
mendeklarasikan tipe data yang dapat ditampung oleh variabel tersebut. Tipe data dalam Pascal dibagi menjadi 3 bagian A. Tipe Data sederhana Tipe data sederhana merupakan tipe data yang paling kecil, yang hanya melibatkan satu item data, misalnya tipe data integer, string, real, Boolean, dan sebagainya. Kita dapat juga mendefinisikan sendiri tipe data ini. Tipe data yang didefinisikan sendiri tersebut diistilahkan enumerated data type a. Tipe bilangan bulat Tipe data ini digunakan untuk menyimpan bilangan bulat. Macammacam tipe bilangan bulat dalam Pascal adalah sbb : Tipe Shortint Integer Longint Byte word Jangkauan -128 127 -32768 32767 -2147483648 2147483647 0 255 0 65535 Ukuran 8 bit 16 bit 32 bit 8 bit 16 bit
Untuk memberi nilai pada tipe bilangan bulat dapat menggunakan basis decimal maupun heksadesimal yang ditandai dengan tanda $ Contoh : Var x, y : integer; begin x := 16; y := $0A;
b. Tipe Boolean Tipe data ini hanya dapat bernilai benar dan salah. Tipe Boolean ukurannya 1 byte. Contoh : Var B1 : boolean; begin b1 := true; b1 := false;
c. Tipe Karakter Tipe data ini digunakan untuk menyimpan data alfanumeris seperti A, Z, @, dsb.. Tipe data char ukurannya 1 byte. Contoh : Var ch : char; begin ch := A; ch := #65 { sama artinya dengan ch := A} ch := chr(65); { sama artinya dengan ch := A} d. Tipe Subajangkauan Tipe data ini memungkinkan Anda mendeklarasikan tipe yang berada pada jangkauan tertentu. Tipe ini hamper sama dengan tipe bilangan bulat, bedanya Anda bebas menentukan jangkauan dari tipe ini. Contoh : Type Bulan = 1 .. 12; Var Januari : Bulan; begin Januari := 1;
e. Tipe Terbilang Tipe data ini memungkinkan Anda memberi nama pada beberapa nilai tertentu.
Contoh : Type TipeHari = (Minggu, Senin, Selasa, Rabu, Kamis, Jumat, Sabtu); Var hari : TipeHari; begin hari := Minggu; hari := Senin;
f. Tipe Real Tipe data ini digunakan untuk menyimpan bilangan real. Macammacamnya sebagai berikut : Tipe Real Single Double Extended comp Jangkauan 2.9*10-39 1.7*1038 1.5*10-45 3.4*1038 5.0*10-324 1.7*10308 3.4*10-4932 1.1*104932 -263+1 263 - 1 Digit penting 11 12 78 15 16 19 20 19 - 20 Ukuran 6 byte 4 byte 8 byte 10 byte 8 byte
Contoh : Var x, y : real; begin x := 123.45; {menuliskan nilai dengan tanda titik} y := 1.2345E+2 { menuliskan nilai dengan eksponen}
g. Tipe string Tipe data ini digunakan untuk menyimpan data yang berupa untaian karakter. Contoh : Var kalimat : string; begin kalimat := ISTA;
String adalah suatu jenis variabel yang tidak dapat di operasikan dengan operator matematika. String lebih banyak menyebut sebagai variabel yang berupa teks. Suatu variabel string tidak harus berisi suatu teks (rangkaian karakter/huruf) tetapi bisa juga berisi suatu angka. Contoh :
B.
Tipe Data terstruktur Tipe data terstruktur merupakan tipe data yang menampung beberapa
item data. Bentuk dari tipe data ini dapat berupa array (terdiri dari item-item yang memiliki tipe data yang sama) ataupun record (terdiri dari item-item yang boleh memiliki tipe data yang berbeda).
a. Type Larik (Array) Yang dimaksud array yaitu tipe data berindeks yang terdiri dari satu atau lebih elemen/komponen yang memiliki tipe data yang sama. Sintaks : Var type_larik; Contoh : nama_larik : array [batas_bawah batas_atas] of
b. Tipe Rekaman Tipe data ini digunakan untuk merepresentasikan kumpulan (set) elemen/komponen yang memiliki satu jenis atau lebih tipe data. Tiap element disebut juga field atau property atau attribute Contoh :
c. Tipe Himpunan Tipe ini digunakan untuk menyimpan kumpulan nilai yang bertipe sama. Sintak : Type Nama_himpunan = set of tipeData Contoh : Type Karakter = set of char; C. Tipe Data Pointer Tipe data pointer digunakan untuk menunjuk pada alamat memory suatu data yang lain. Jadi tipe data pointer pada dasarnya tidak menyimpan nilai data secara langsung,melainkan hanya menyimpan alamat dimana data berada. Pendeklarasian pointer hampir sama dengan pendeklarasian variabel biasa, bedanya Anda harus menambahkan tanda ^ di depan tipe pointer. Contoh : Var P1 : ^integer; P2 : ^char;
A. Token Token yaitu element terkecil pada bahasa pemrograman yang memiliki arti penting bagi compiler. Yang termasuk token antara lain: identifier, keywords(reserved words), operator, dan sebagainya.
Token yang satu dengan yang lain dipisahkan dengan satu atau lebih spasi, tab, baris baru, atau komentar.
B. Komentar Komentar yaitu teks (kumpulan karakter) yang diabaikan oleh Compiler. Komentar sangat berguna untuk memberi catatan mengenai bagian program tertentu sebagai referensi baik bagi programmer itu sendiri maupun orang lain yang membaca kode program tersebut. Pada bahasa Pascal, teks yang berada di antara kurung kurawal pembuka {dan kurung kurawal tutup } akan dianggap sebagai komentar. Selain itu, dapat pula menggunakan tanda (* sebagai pembuka komentar, dan tanda *) sebagai penutup. Contoh:
C. Identifier Identifier merupakan kumpulan karakter yang digunakan sebagai penanda untuk nama variable, nama tipe data, fungsi, prosedur, dan sebagainya. Aturan penulisan identifier pada bahasa Pascal Yaitu: suatu identifier harus diawali oleh karakter non angka sebagai berikut:
tersebut di atas, namun tidak boleh menggunakan karakter khusus/spesial seperti + - * / ? ! { } [ ] dan sebagainya. Berikut adalah contoh-contoh identifier yang benar maupun salah.
Tetapi sebagai catatan yang perlu diingat, identifier pada bahasa Pascal bersifat case insensitive (huruf besar dan huruf kecil dianggap sama). Sebagai contoh, identifier No_Telpon dan no_telpon pada bahasa Pascal dianggap sama.
D.
Keywords (Reserved Words) Keywords atau Reserved words merupakan kata-kata yang telah
ada/didefinisikan oleh bahasa pemrograman yang bersangkutan. Kata-kata tersebut telah memiliki definisi yang sudah tetap dan tidak dapat diubah. Karena telah memiliki definisi tertentu, maka kata-kata ini tidak dapat digunakan sebagai identifier. Pada bahasa Pascal, yang termasuk reserved words antara lain:
E.
Operator Operator digunakan untuk menyatakan suatu perhitungan/operasi. Operator yang digunakan untuk operasi yang melibatkan satu operand disebut unary operator. Jika melibatkan dua operand maka disebut binary operator, dan jika melibatkan tiga operand, operator tersebut disebut ternary operator. Di dalam suatu operasi dapat terdapat banyak operator. Urutan eksekusi dari operator-operator disebut juga operator precedence. Precedence yang lebih rendah akan dieksekusi belakangan, misalnya: A = 10 + 5 * 2 Karena precedence operator * lebih tinggi daripada operator + maka nilai A adalah 20, diperoleh dari perkalian 5 dan 2, kemudian dijumlahkan dengan 10. Untuk mendahulukan eksekusi precedence yang lebih rendah dapat digunakan tanda ( dan ) sebagai contoh: A = (10 + 5) * 2 Variable A akan memiliki nilai 30, diperoleh dari penjumlahan 10 dan 5, kemudian dikalikan 2.
Operator dapat dikategorikan menjadi beberapa jenis antara lain: 1. Assignment Operator 2. Arithmetic Operator 3. Bitwise dan Logical Operator 4. Relational Operator 5. Pointer Operator Berikut akan dibahas lima kelompok operator tersebut di atas. Sebagai catatan, masih terdapat operator-operator yang belum tercakup pada kelompok tersebut di atas. Yang dibahas di sini hanya bagian-bagian yang sangat umum. a. Assignment Operator Operator ini digunakan untuk memberi nilai suatu identifier. Pada bahasa Pascal, digunakan tanda titik dua dan tanda sama dengan := untuk memberi nilai pada variable. Contoh: C := A + B; atau C := 4; b. Arithmetic Operator Yang termasuk di dalam operator arithmetic yaitu operator yang digunakan untuk melakukan operasi aritmatika, seperti:
Operator-operator yang disebut di atas termasuk binary operator karena melibatkan dua operand. Terdapat pula operator unary, yaitu tanda dan + yang digunakan sebagai penanda bilangan negative atau positif. Contoh :
X := y + z; X := a b c d; X := 5 * 9 * 3.14; X:= a / b; X := a + b c * d; X := 10 div 2; X := I mod j;
Yang perlu Anda perhatikan disini adalah bahwa Pascal mengenal dua macam pembagian. Yang pertama pembagian dengan operator /. Pembagian ini selalu menghasilkan bilangan real / pecahan. Yang kedua adalah pembagian dengan operator DIV. Pembagian ini sellu menghasilkan bilangan bulat dan
c. Bitwise dan Logical Operator Operator ini digunakan untuk melakukan operasi bit dan logika. Operasi ini hanya dapat dikenakan pada operan bertipe bilangan bulat dan hasil operasinya juga selalu bilangan bulat. Yang termasuk di dalam operator ini antara lain: Operator Not And Or Xor Shl shr Operasi Invers Logika and Logika or Logika xor Penggeseran bit ke kiri Penggeseran bit ke kanan
Operator Not Operator ini digunakan untuk membalik nilai logika dari operand Boolean. Selain itu juga memungkinkan operator NOT digunakan pada operand numeric integer, yang akan mengakibatkan pembalikan bitwise. Contoh : Begin Writeln(not true); Writeln(not false); Writeln(not 0); Writeln(not 5); End. Hasil Run : False True -1 -6
Keterangan : o Nilai dari Not 1 adalah -1, disebabkan karena nilai 0 tersebut akan tersimpan di memori dengan bentuk bilangan binary. 0000000000000000 o Operator not akan membalik nilai bit (bitwise),yang bernilai 1 menjadi 0 dan sebaliknya, sehingga Not 0 akan menjadi 1111111111111111 sign bit o Bit yang paling kanan menunjukkan sign bit, yaitu menunjukkan tanda positif (bila bilangannya nol) dan negative (bila
bilangannya 1). Pad kasus diatas karena tandanya satu maka menunjukkan bilai negative. Pada Pascal menggunakan cara komplemen dua, yaitu bila nilainya negative diartikan dengan cara mengurangi nilai biner tersebut dengan satu kemudian nilai bit dibalik. 1111111111111111 1 1111111111111110 dibalik nilai bit menjadi 0000000000000001 = 1 dan sign bit sebelumnya menunjukkan nilai negative, berarti 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 = -1 o Jadi (not 0) nilainya menjadi -1
Operator AND Operator ini digunakan untuk mengevaluasi masing-masing bit pada operan-operannya. Untuk operand AND, jika bit dari kedua operan bernilai 1 maka bit hasiloperasinya juga bernilai 1, jika tidak bit hasil bernilai 0. Contoh : Begin Writeln(12 and 23); End. Hasil Run : 4
Keterangan : o Operator arithmetic AND bekerja dengan membandingkan bit demi bit dari lemen-elemen yang dibandingkan sebagai berikut : 12 nilai binarynya 23 nilai binarynya 12 AND 23 bernilai o : 0000000000001100 : 0000000000010111 : 0000000000000100 =4
Operator OR Operator ini digunakan untuk mengevaluasi masing-masing bit pada operan-operannya. Untuk operand OR, jika bit dari kedua operan bernilai 0 maka bit hasil operasinya juga bernilai 0, jika tidak bit hasil bernilai 1. Contoh : Begin Writeln(12 OR 23); End. Keterangan : o Operator arithmetic OR bekerja sama dengan operator AND 12 nilai binarynya 23 nilai binarynya 12 OR 23 bernilai o : 0000000000001100 : 0000000000010111 : 000000000001111 = 31 Hasil Run : 31
Operator XOR Operator ini digunakan untuk mengevaluasi masing-masing bit pada operan-operannya. Untuk operand XOR, jika bit dari kedua operan bernilai 0 atau 1 maka bit hasil operasinya bernilai 0, jika tidak bit hasil bernilai 1. Contoh : Begin Writeln(12 XOR 23); End. Hasil Run : 27
Keterangan : o Operator arithmetic XOR bekerja dengan membandingkan bit demi bit dari lemen-elemen yang dibandingkan sebagai berikut : 12 nilai binarynya 23 nilai binarynya 12 XOR 23 bernilai o : 0000000000001100 : 0000000000010111 : 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 = 27
Operator SHL Operator ini digunakan untuk menggeser (shift) sejumlah bit ke kiri (left) dengan nilai bit 0 Contoh : Begin Writeln(12 OR 5); End. Keterangan : o Bit dari lemen-elemen yang akan digeser sebagai berikut : 12 nilai binarynya : 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 digeser 5 bit kekiri : 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 = 384 Operator SHR Operator ini digunakan untuk menggeser (shift) sejumlah bit ke kanan (right) Contoh : Begin Writeln(160 SHR 5); End. Keterangan : o Bit dari lemen-elemen yang akan digeser sebagai berikut : 12 nilai binarynya digeser 5 bit kekiri d. Relational Operator Operator relasional digunakan untuk membandingkan nilai dua operand. Sebagai catatan, operand yang dibandingkan harus memiliki tipe data : 0000000010100000 : 0000000000000101 = 5 Hasil Run : 5 Hasil Run : 384
yang sama, kecuali untuk bilangan bulat (bertipe integer) dan bilangan pecahan (bertipe real atau float). Yang termasuk operator relasional yaitu: Operator Operasi = <> < > <= >= <= >= Contoh : Const A = 5; B = 3; Begin Writeln(a=b); Writeln(a=5); Writeln(a<>b); Writeln(a>b); Writeln(a>=b); Writeln(a<b); Writeln(a<=b); End. e. Pointer Operator Operator pointer digunakan untuk melakukan operasi pada operand yang berupa pointer. Pada bahasa Pascal, digunakan tanda ^ sebagai deference pointer seperti dijelaskn pada deklarasi pointer pada pembahasan sebelumnya. Hasil Run : False True True True True False False Sama dengan Tidak sama dengan Kurang dari Lebih dari Kurang dari atau sama dengan Lebih dari atau sama dengan Subset dari Superset dari Tipe Operan Tipe sederhana, himpunan, string Tipe sederhana, himpunan, string Tipe sederhana, string Tipe sederhana, string Tipe sederhanastring Tipe sederhana, string Tipe himpunan Tipe himpunan pointer pointer
3)
Expression
Yang dimaksud dengan expression (ekspresi) yaitu suatu pernyataan
yang menghasilkan suatu nilai. Expression tersusun dari operator dan operand
yang digunakan untuk menghitung atau memberi suatu nilai suatu variable atau identifier. Expression yang paling sederhana yaitu nama variable. Expression yang lebih kompleks akan melibatkan operator-operator, maupun pemanggilan function atau procedure. Berikut adalah contoh expression:
C. EVALUASI FORMATIF
1 ). Sebutkan struktur dari bahasa pemrograman PASCAL ! 2 ). Sebutkan 4 jenis statemen yang ada dalam bahasa Pascal 3 ). Sebutkan 5 element yang termasuk aturan leksikal pada bahasa Pascal 4 ). Sebutkan minimal 5 jenis operator yang digunakan pada bahasa Pascal 5 ). Diasumsikan A, B, dan C adalah variabel Boolean dan nilai A dan B adalah true, sedangkan C adalah False. Evaluasi setiap ekspresi berikut ini : a. A and C b. A or B and C c. A and B or C d. A xor B and C e. A or (not B) f. Not (A or B xor C)
6 ). Jika diketahui x adalah variabel bertipe integer, dari nilai-nilai berikut, manakah yang dapat diberikan pada x ? a. $a b. 10.1 c. 40000 d. -$FF e. $AAAA f. 0010
B. URAIAN MATERI
1. Perintah Output
Untuk mencetak hasil pengolahan data (keluaran), Pascal mempunyai dua statemen yaitu write dan writeln. Dengan adanya kedua perintah ini tentunya ada interaksi antara manusia/pemakai dengan program yang dijalankannya. Kedua statemen ini dapat berisi sembarang argumen. Bentuk Umum statemen output adalah : Write(<variabel | string | numeric>); atau
Jika Anda akan menampilkan string (kalimat, kata, karakter ataupun symbol) tertentu maka harus diikuti dengan tanda kutip tunggal ( ) dan diakhiri dengan tanda kutip tunggal juga. Contoh : Yang akan ditampilkan ke layar sebuah kalimat
Program satu; Begin Write ( SELAMAT ); Writeln( BELAJAR PEMROGRAMAN KOMPUTER ); Writeln( ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ); Write( di Lab Kom III Jl I Dewa Nyoman Oka ); Write(32); End.
Jika yang akan ditampilkan adalah isi dari variabel atau konstanta, maka Anda tidak perlu menuliskan kutip tunggal pada awal dan akhirvariabel atau konstanta tersebut. Anda cukup menuliskan nama variabel atau konstanta tersebut yang diapit tanda kurung dan diakhiri dengan titik koma.
Contoh :
Program satu; Const A = 5; JumlahSiswa = 10; Begin Write ( A ); Writeln( JumlahSiswa ); End.
2. Format Angka
format angka digunakan untuk mengatur hasil tampilan sebuah variabel integer ataupun real. Sebagai contoh
Tampilan hasil variabel b ternyata ditampilkan dalam bentuk eksponensial. Bagaimana kalau diinginkan tampilan hasilnya adalah 30.00. Untuk
menampilkan maka Anda harus memformat tampilannya menggunakan aturan yang telah ditentukan oleh bahasa PASCAL. Format untuk variabel integer Bentuk Umum statemen output menggunakan format angka integer adalah : Write(<variabel>:m); atau
Format untuk variabel real Bentuk Umum statemen output menggunakan format angka real adalah : Write(<variabel>:m:n); atau
kolom
Satu kotak digunakan untuk memisahkan decimal (titik) kolom 4 Satu kotak digunakan untuk angka dibelakang titik 5 o Writeln(ISI A = , A:7:3) Perintah A:7:3 mempunyai arti bahwa kolom
kolom
Satu kotak digunakan untuk memisahkan decimal (titik) kolom 4 Satu kotak digunakan untuk angka dibelakang titik 5,6,7 kolom
Contoh :
3. Perintah Input
Untuk contoh pada bagian 4.2.1.1. semua proses masukan tidak
melibatkan pemakai. Conoth program tersebut mempunyai nilai yang tetap. Sehingga apabila di run berulang kali maka hasil keluarannya akan tetap sama apabila dilakukan proses running satu kali. Untuk melibatkan pemakai, dalam hal ini pemakai dapat menginputkan data dari keyboard, maka pemakai dapat memanfaatkan statement READ dan READLN yang telah disiapkan oleh PASCAL. Bentuk umum :
READ (variabel_penampung_data) atau READLN(variabel_penampung_data) Perbedaan antara READ dan READLN adalah bila memakai READ maka kelebihan data yang diinputkan tidak akan dibuang, sedangkan apabila menggunakan READLN kelebihan data yang diinputkan akan dibuang.
Contoh :
C. EVALUASI FORMATIF
1.
2.
3.
Buatlah algoritma dan program untuk mengkonversi suhu dari Celcius ke Fahrenheit. Masukan program ini adalah suhu dalam Celcius berupa bilangan real. Keluaran dari program adalah suhu dalam Fahrenheit.
EVALUASI
Pilihlah salah satu jawaban yang Anda anggap paling benar 1. Ciri-ciri bahasa terstruktur di bawah ini adalah, kecuali : A. Berurutan B. Tidak Ada Loncatan C. Memiliki Blok Yang Jelas D. Satu pintu masuk dan satu pintu keluar pada blok pengulangan. 2. Deklarasikan manakah yang tidak diizinkan oleh compiler Pascal ? A. type X = string[1]; B. type X = array[1..50000]of char; C. type X = array[-1000..1000] of longint; D. type X = array[0..30000]of longint; 3. Cara yang benar untuk mendeklarasikan string adalah : A. var a : string of char; B. var a : string[1..255]; C. var a : string[255]; D. var a : string[255] of char; 4. Manakah yang mendeklarasikan A sebagai konstanta bertipe dengan tepat ? A. const A = 350; B. const B = 350; A = B * 10; C. const A : Real = 350; D. const A = integer (350); 5. Manakah yang benar dari deklarasi dibawah ini : A. program a; const k = 10; B. program pqr; const r := 8; C. program abc; const p : 6; D. program satu; const x > y;
6.
Deklarasi manakah yang tidak benar A. var E : set of char; B. var E : set of (sapi, kelinci, domba, ayam); C. var E : set of (S,..,Z); D. var E : set of 1 .. 15;
7. Layout program dalam Pascal yang benar adalah A. program [identifier]; begin type [identifier]; var [identifier]; [program utama]; end; C. program [identifier]; var [identifier]; begin [program utama]; end; procedure [identifier]; begin end. B. begin end. D. var [identifier]; Begin [program utama]; end; 8. Berikut adalah pernyataan yang benar tentang identifier, KECUALI . A. karakter pertama dari suatu identifier harus berupa huruf
B. hanya huruf, angka, dan underscore(_) yang diperbolehkan untuk dijadikan unsure pembentuk identifier. C. panjang karakter dari suatu identifier bebas tetapi hanya 40 karakter pertama yang signifikan. D. tanda titik koma dipergunakan untuk membentuk qualified identifier
9.
Daftar manakah yang hanya berisi operator dalam bahasa Pascal ? A. B. C. D. mod, div, or, in not, and, mod, for read, eof, write, writeln array, record, set, object.
10.
Var n, m : integer; begin n := 16 shl 4; m := 16 shr 4; end. Berapakah nilai n setelah program diatas selesai dieksekusi ? A. 1 B. 16 C. 256 D. 64
11. Dari program pada soal no. 10, berapakah nilai m setelah selesai dieksekusi A. 1 B. 12. 16 C. 256 D. 64
Var a, b : integer; begin a := 10; b := 25; a := a xor b; b := a xor b; a := a xor b; writeln(a, ,b); end. Output program diatas adalah : A. 10 25 B. 25 25 C. 10 10 D. 25 10
13.
Bila D, M, Y bertipe integer dan D = 2, M = 9, Y = 86, apakah output dari writeln( D and M or Y ) ? A. true B. 22 C. 86 D. 9
14. var r : real; begin r := 147.0; writeln(r:10:5); end; Apa tampilan program diatas ? A. 00147 B. 0147.0 C. 147.0000 D. 147.00000
15. Diketahui program berikut ini var U : integer; begin U := 3; Writeln(Umur saya ,U:3, tahun); End. Apakah output program diatas A. Umur saya 3 tahun B. Umur saya 3.00 tahun C. Umur saya 3 tahun
16. Bagaimana cara Anda mengetikkan input untuk program berikut ini ? var Umur, Tinggi, Berat : real; begin write(Masukkan umur, tinggi dan berat badan Anda : ); readln(Umur,Tinggi, Berat); End. A. 16, 170, 61.5 B. 16; 170; 61.5 C. 16 170 61.5 D. 16 170 61,5
17. var a : real; begin a:= 34.555; writeln(a:4:2); end; Apa tampilan program diatas ? a. 34.55 C. 34.56 D. 34.6
C. 3455
A. .3 B. 1E2 C. 3E+4.2
19. Berapakah nilai variabel z pada program berikut ini Var x, y, z : byte; Begin x := 20; y := 20; z := x * y; End. 20. Berapakah nilai variabel cek pada program berikut ini const R = 0.01; Var a, b, c , d : real; cek : Boolean; Begin a := 2.0; b := 3.0; c := 5.0; d := a * R + b * R + c * R; cek := ( d = 0.2); End. 21.
22.
23 .
program kata; var a, b, c : integer; begin a := 10.4; b := 20; c := a*b; writeln(hasil perhitungan : ); writeln(A,+,B,=,C:5:0); write(C:8:2); end.
a. Pesan
dieksekusi. b. Bagaimana deklarasi variabel yang benar apabila bagian statemen tidak berubah. c. Apabila program sudah benar, apakah output dari program diatas
Rumus :
Tingkat penguasaan =
Arti tingkat penguasaan yang anda capai : 90% - 100% = baik sekali 80% - 89% = baik 70% - 79% = sedang - 69% = kurang Kalau Anda mencapai tingkat penguasaan 80% atau lebih, Anda dapat meneruskan ke modul berikutnya. Bagus ! Tetapi kalau nilai Anda dibawah 80%, Anda harus mengulang Modul ke-1 terutama yang belum Anda kuasai.
BAHAN BACAAN
Brassard, Gilles, and Bratley, Paul, 1996, Fundamentals of Algorithmics, Prentice Hall, Englewood Cliffs, New Jersey. Budiyanto, Alex, 2003, Pengantar Algoritma dan Pemrograman, www.Ilmu Komputer.com Jogiyanto H.M, 1995, Turbo Pascal versi 5.0, jilid 1, Andi Offset, Yogyakarta. Munir, Rinaldi, Ir, dan Lidya, Leoni, Ir., 1998, Algoritma dan Pemrograman I, Informatika, Bandung. Pranata, Antony, 2000, Algoritma dan Pemrograman, J & J Learning, Yogyakarta.
LAMPIRAN
10. C 11. A 12. D 13. C 14. D 15. C 16. C 17. C 18. B DAN E 19. 144 (Karena Byte Hanya Bisa Menampung Nilai 0 Sampai 255) 20. FALSE 21. Isi variabel gol = AB yang merupakan tipe string sedangkan type data yang dipesankan adalah bertype char 22. isi variabel a tidak sesuai dengan nilai a yang sudah dikonstankan. 23 a. Terdapat pesan kesalahan type mismatch, karena isi variabel tidak sesuai dengan deklarasi type data yang dipesankan b. c. type variabel a dan c diubah menjadi type data real hasil perhitungan : A+B= 280 280.00