PASCAL TUTORIAL
DIBUAT OLEH : WILLIAM EARNEST X 27
SEKOLAH MENENGAH ATAS KRISTEN TRI TUNGGAL SEMARANG 2010/2011 1
DAFTAR ISI 1. JUDUL 2. DAFTAR ISI 3. BAB I PENDAHULUAN 4. BAB II COMPILER 5. BAB III STRUKTUR PASCAL 6. BAB IV PENGENALAN (IDENTIFIER) 7. BAB V KONSTANTA 8. BAB VI VARIABEL DAN TIPE DATA 9. BAB VII ASSIGNMENT DAN OPERASI 10. BAB VIII STANDARD FUNCTION 11. BAB IX INPUT DAN OUTPUT 12. BAB X DAFTAR PUSTAKA
1 2 3 4-5 6-7 8 9 10 11-12 13 14-15 16
~SELAMAT MEMBACA~ ~TUHAN YESUS MEMBERKATI~
2
BAB I PENDAHULUAN Pascal dikembangkan dari bahasa ALGOL, yang merupaka bahasa pemrograman komputasi scientific. ALGOL memiliki beberapa kelemahan seperti pada tipe data pointer, karakter, dan sulitnya mengimplementasikan bahasa tersebut ke dalam compiler menyebabkan ALGOL tidak berkembang dan sedikit demi sedikit ditinggalkan. Pada akhirnya, tahun 1971, salah seorang pengembang ALGOL telah berhasil mengembangkan bahasa pemrograman baru yang diberinama PASCAL, yang mengadopsi nama ilmuwan Perancis pada abad ke 17 Blaise Pascal. Kelebihan dari bahasa PASCAL adalah merupakan bahasa pemrograman yang terstruktur, bahasa pemrograman tingkat tinggi (high level language), serta mudah bagi programmer untuk menentukan tipe data yang diinginkan. Di awal tahun 1980 an, PASCAL telah menjadi bahasa pemrograman standard di berbagai universitas. Terdapat dua peristiwa yang menyebabkan PASCAL menjadi sangat populer pada saat itu yaitu digunakannya PASCAL sebagai bahasa untuk membuat aplikasi/software guna keperluan ujian di beberapa sekolah, serta dirilisnya Turbo Pascal Compiler oleh perusahaan Borland International untuk komputer IBM. Sampai saat ini, Turbo Pascal sudah mencapai rilis 7.0 bahkan sudah ada yang berjalan di platform Windows (Turbo Pascal for Windows). Terdapat pula varian dari Turbo Pascal yang lebih bersifat open source yaitu Free Pascal. Namun, pada saat ini. PASCAL sudah mulai banyak ditinggalkan. Kebanyakan para programmer saat ini lebih memilih bahasa C/C++ dan Java karena lebih mendukung untuk pemrograman berorientasi obyek. Meskipun demikian, bukan berarti PASCAL juga harus ditinggalkan pada saat ini. PASCAL masih layak dipelajari, khususnya bagi mereka yang baru belajar bahasa pemrograman karena perintah-perintahnya menggunakan bahasa tingkat tinggi (mirip bahasa manusia - Inggris) sehingga mudah dipahami. Selain itu, dengan belajar PASCAL akan diperoleh modal untuk dapat menguasai pemrograman visual DELPHI. Karena pada prinsipnya, DELPHI merupakan PASCAL yang dikombinasikan dengan efek visual.
3
BAB II COMPILER Ketika berbicara tentang bahasa pemrograman komputer, ada 3 jenis bahasa yang digunakan, yaitu · Bahasa mesin, yang hanya terdiri dari kode-kode biner (0 dan 1). Sering pula bahasa ini disebut bahasa tingkat rendah (low level language) · Bahasa rakitan (assembly), yang berupa perintah-perintah yang mirip bahasa manusia (sudah tidak dalam bentuk kode biner). Biasanya satu buah perintah hanya digunakan untuk melakukan satu proses saja. Sebagai contoh adalah perintah MOV dan ADD dalam bahasa Intel x86. · Bahasa tingkat tinggi (high level language). Pada bahasa ini, perintah sudah menggunakan bahasa manusia (bahasa Inggris), sebagai contoh adalah perintah WRITE, READ. Tidak seperti bahasa assembly, dalam bahasa ini biasanya suatu perintah sudah melibatkan banyak proses. Misalkan perintah untuk melakukan proses perkalian (yang di dalamnya melibatkan banyak proses penjumlahan), hanya cukup menggunakan operator *. Beberapa bahasa pemrograman yang termasuk dalam jenis bahasa ini adalah PASCAL, C/C++, FORTRAN, BASIC, JAVA. Supaya perintah dalam bahasa pemrograman yang digunakan (bahasa assembly dan bahasa tingkat tinggi) dapat dipahami oleh komputer dan dapat dijalankan oleh mikroprosessor, maka perintah tersebut harus diterjemahkan terlebih dahulu ke dalam bahasa mesin. Proses penterjemahan inilah yang disebut proses kompilasi (compiling). Program atau software yang digunakan untuk proses kompilasi dinamakan compiler. Untuk PASCAL terdapat beberapa compiler yang dapat digunakan yaitu Turbo Pascal, Free Pascal. Terdapat beberapa istilah yang terkait dengan bahasa tingkat tinggi: · Source code, merupakan kumpulan perintah dalam bentuk program yang dibuat oleh programmer. Dalam PASCAL, source code ini disimpan dalam bentuk file berekstensi .pas. Source code inilah yang akan dikompilasi oleh compiler. · Object code, merupakan file sebagai hasil dari proses kompilasi. File ini biasanya berekstensi .obj. · Executable code, merupakan file sebagai hasil akhir dari proses pemrograman. Dalam DOS/Windows, file ini berekstensi .exe. File ini dapat dijalankan langsung melalui promt DOS atau double click pada Windows Explorer.
Menjalankan FREE PASCAL Untuk mendapatkan master program Free Pascal (terbaru rilis 2.0.04), dapat diunduh dari situs http://www.freepascal.org/download.var Untuk dapat diinstal di DOS/Windows, pilihlah master dalam bentuk BINARIES DOS atau Win32. Setelah file program diunduh, proses berikutnya adalah sbb: 1. Jalankan file setup dan ikuti petunjuk instalasi 2. Setelah instalasi selesai, Free Pascal sudah dapat dijalankan dengan membuka START > FREE PASCAL 3. Tuliskan program (source code) dalam halaman biru (blue page) 4. Simpan program dengan SAVE atau SAVE AS 4
5. Jalankan program dengan menggunakan menu RUN. Dalam hal ini, proses kompilasi sudah otomatis akan dijalankan. Apabila terdapat perintah dalam program yang salah/ tidak sesuai aturan maka akan muncul pesan peringatan yang biasanya disertakan pula nomor baris letak kesalahan.
5
BAB III STRUKTUR PASCAL Berikut ini adalah cara menulis program dan menjalankan program PASCAL untuk pertama kalinya. Sebagai contoh, diberikan program sebagai berikut program Hello; begin (* Main *) writeln ('Hello, world.') end. (* Main *) Apabila program di atas dijalankan pada IDE Free Pascal, maka output hanya akan ditampilkan secepat kilat kemudian hilang lagi. Akan tetapi apabila file executable dari program di atas dijalankan dalam command prompt akan terlihat teks Hello, World Supaya tampilan program di atas tidak ditampilkan secepat kilat dalam IDE, maka dapat ditambahkan perintah readln sebelum end. program Hello; begin (* Main *) writeln ('Hello, world.'); readln end. (* Main *)
Struktur Program PASCAL Bahasa Pascal memiliki struktur sbb: PROGRAM NamaProgram (FileList); CONST (* pendeklarasian konstanta *) TYPE (* pendeklarasian tipe *) VAR (* pendeklarasian variabel *) (* pendefinisian subprogram-procedure atau function *) BEGIN (* batang tubuh/ main body *) END. Susunan/ urutan struktur di atas harus dipenuhi. Meskipun demikian, kita dapat menghilangkan beberapa bagian struktur apabila tidak diperlukan. Berikut ini adalah contoh program sederhana yang tidak melakukan proses apapun (terdapat bagian dari struktur yang dihilangkan) program DoNothing; begin end. Dalam Pascal, penulisan perintah yang di dalamnya terdapat spasi, tab akan diabaikan. Sebagai contoh, diberikan dua program berikut ini program Hello; begin writeln ('Hello, world.'); 6
readln end. dan program Hello; begin writeln ('Hello, world.'); readln end. Dua program akan menghasilkan output yang sama. Dalam hal ini, spasi akan diabaikan. Begitu pula dengan program berikut program Hello; begin writeln ('Hello, world.'); readln end. Program tersebut juga sama dengan dua program sebelumnya. Dengan demikian, penulisan program dapat disajikan secara vertikal maupun horizontal. Supaya program yang dibuat oleh seorang programmer dapat dibaca dan dipahami oleh orang lain, sebaiknya dibuat komentar dalam source code. Komentar yang diberikan tersebut tidak akan dijalankan atau diproses oleh compiler. Untuk memberikan komentar dalam PASCAL, digunakan perintah { komentar } atau (* komentar *). Sebagai contoh, dapat Anda lihat kembali contoh pertama dari bab ini (program Hello World).
7
BAB IV PENGENAL (IDENTIFIER) Identifier merupakan sebuah nama yang digunakan untuk keperluan penyimpanan suatu nilai, pendaklarasian variabel, konstanta, type dan nama program maupun subprogram. Seorang programmer tidak boleh sembarangan menuliskan nama identifier. Berikut ini adalah beberapa aturan penulisannya: 1. Nama identifier harus dimulai (karakter pertama) dengan karakter huruf alfabet a-z atau A-Z 2. Setelah karakter pertama, dapat dilanjutkan dengan karakter alfanumerik (angka maupun huruf), dan underscore (_) 3. Dalam penulisan identifier tidak boleh menggunakan karakter-karakter berikut ini ~!@#$%^&*()+`-={}[]:";'<>?,./| 4. Tidak boleh menuliskan identifier dengan nama yang sesuai kata tercadang (reserved word) dalam PASCAL, seperti and, array, begin, case, const, div, do, downto, else, end, file, for, forward, function, goto, if, in, label, mod, nil, not, of, or, packed, procedure, program, record, repeat, set, then, to, type, until, var, while, with. Kalaupun Anda ingin tetap menggunakan kata tercadang di atas, kata tersebut harus dirangkai dengan karakter lain. Misal program_if, begin1, dll. PASCAL tidak bersifat case sensitive yang berarti bahwa besar kecilnya huruf dalam perintah tidak dibedakan. Sebagai contoh, apabila diberikan 3 identifier MyProgram, MYPROGRAM, dan mYpRoGrAm, maka ketiga identifier tersebut adalah sama.
8
BAB V KONSTANTA (CONSTANT) Suatu konstanta direferensikan oleh sebuah identifier dan dapat diassign oleh suatu nilai pada awal program. Nilai yang disimpan pada suatu konstanta tidak dapat diubah. Konstanta dideklarasikan pada bagian const. const Identifier1 = value; Identifier2 = value; Identifier3 = value; Sebagai contoh, berikut ini adalah perintah untuk mendeklarasikan beberapa konstanta const Name = 'Tao Yue'; (* string *) FirstLetter = 'a'; (* karakter *) Year = 1997; (* integer *) pi = 3.1415926535897932; (* real *) UsingNCSAMosaic = TRUE; (* boolean *) Catatan: Dalam Pascal, nilai dalam bentuk string maupun karakter harus diapit dengan tanda petik satu (single quote). Suatu konstanta dapat pula ditulis seperti contoh berikut const a : real = 12; maksud dari perintah di atas adalah nilai 12 bukanlah bilangan bulat (integer) namun merupakan bilangan real (12.0). Nilai 12.0 ini disimpan dalam konstanta a.
9
BAB VI VARIABEL DAN TIPE DATA Variabel hampir mirip dengan konstanta. Nilai yang disimpan dalam variabel ini dapat diubah sewaktu-waktu. Setiap variabel yang akan digunakan dalam program harus dideklarasikan terlebih dahulu dalam bagian var. var IdentifierList1 : DataType1; IdentifierList2 : DataType2; IdentifierList3 : DataType3; ... IdentifierList merupakan nama-nama identifier (variabel) yang akan digunakan. Masingmasing nama tersebut dipisahkan dengan tanda koma. Sedangkan datatype merupakan tipe data dari nama-nama variabel tersebut. Berdasarkan nilai yang akan disimpan dalam variabel, terdapat 4 tipe data: · Integer, merupakan tipe data bilangan bulat yang memiliki jangkauan antara -32768 s/d 32767. Selain itu terdapat pula tipe data longint yang juga masih terkait dengan bilangan bulat. Jangkauan dari longint jauh lebih besar daripada integer. · Real, merupakan tipe data bilangan riil yang memiliki jangkauan 3.4 x 10-38 s/d 3.4 x 1038, demikian pula untuk bilangan negatifnya. Untuk menuliskan suatu nilai bilangan riil dapat menggunakan format scientific maupun desimal. Berikut ini adalah dua nilai yang ekuivalen 452.13 dan 4.5213e2 Selain real, terdapat pula tipe data extended yang juga bernilai bilangan riil. Jangkauan dari tipe data extended ini jauh lebih besar daripada real. · Char, merupakan tipe data untuk nilai yang berupa karakter. · Boolean, merupakan tipe data yang hanya bernilai TRUE atau FALSE saja. Berikut ini adalah contoh pendeklarasian beberapa variabel var age, year, grade : integer; circumference : real; LetterGrade : char; DidYouFail : Boolean; Pada contoh di atas, variabel age, year, dan grade sama-sama bertipe data integer.
10
BAB VII ASSIGNMENT DAN OPERASI Setelah sebuah variabel dideklarasikan, selanjutnya dapat digunakan untuk menyimpan sebuah nilai. Proses penyimpanan nilai dalam sebuah variabel ini dinamakan proses assignment. Sintaks untuk assignment ini adalah: variable_name := expression; sebagai contoh: some_real := 385.385837; cara lain bentuk assignment some_real := 37573.5 * 37593 + 385.8 / 367.1; Macam-macam operator aritmatik pada Pascal Operator Operation Operands Result + Penjumlahan real or integer real or integer - Pengurangan real or integer real or integer * Perkalian real or integer real or integer / Pembagian riil real or integer real div Pembagian integer integer integer mod Modulus integer integer Setiap variabel hanya bisa diassign dengan nilai yang sesuai dengan tipe data dari variabel tersebut. Contoh: var a : integer; b : real; selanjutnya diberikan statement sbb pada bagian body b := 3.567; a := b; Apabila program di atas dikompilasi, maka akan terdapat error (type mismatch). Hal ini disebabkan karena tipe data dari a adalah integer, sedangkan a diassign dengan nilai berupa real. Sedangkan apabila diberikan perintah sbb: a := 3; b := a; tidak akan ada kesalahan. Hal ini disebabkan nilai 3 yang disimpan dalam b adalah dalam bentuk riil (3.0). Dalam Pascal tanda minus (-) dapat digunakan untuk menyatakan tanda negatif dari suatu bilangan. Berikut ini adalah beberapa contoh penggunannya: some_real := 37.5 * (-2); jangan seperti di bawah ini some_real := 37.5 * -2; Statement di atas akan membuat bingung Pascal untuk menentukan operasi yang akan dilakukan terlebih dahulu. Dalam pemrograman pada umumnya terdapat tingkat presedensi yang menyatakan prioritas operasi mana yang akan didahulukan. Untuk operasi perkalian dan pembagian terlebih dahulu akan diprioritaskan daripada penjumlahan dan pengurangan. Contoh: hasil := 3 + 4 * 5; 11
nilai yang akan disimpan dalam variabel hasil adalah 23 (bukannya 35). Sedangkan apabila diberikan perintah berikut hasil := (3 + 4) * 5; barulah hasilnya adalah 35. Catatan: Operator aritmatik dalam Pascal tidak dapat diterapkan pada variabel bertipe data boolean dan char.
12
BAB VIII STANDARD FUNCTIONS Dalam Pascal telah tersedia beberapa fungsi standard yang dapat digunakan untuk perhitungan matematika, misalnya adalah perintah sin(). Apabila kita ingin menghitung nilai sinus dari 3.14 radian dalam Pascal dan hasilnya akan disimpan dalam variabel hasil, maka perintahnya adalah hasil := sin(3.14); Sebuah fungsi dipanggil dengan cara menuliskan nama fungsi dan diikuti dengan argumen yang diapit dengan kurung. Berikut ini adalah beberapa fungsi standard dalam Pascal yang dapat digunakan Function Description Argument type Return type abs Nilai absolut real or integer Sama seperti argumen arctan arctan dalam radian real or integer Real cos cosinus sudut dalam radian real or integer Real exp pangkat bilangan natural real or integer Real ln Logaritma natural real or integer Real round Pembulatan ke bilangan bulat terdekat real Integer sin sinus sudut dalam radian real or integer Real sqr pangkat dua real or integer Sama seperti argumen sqrt akar pangkat dua real or integer Real trunc Pembulatan ke bawah real or integer Integer Selain itu juga terdapat beberapa fungsi yang lain yang hanya digunakan untuk tipe data terurut/ ordinal (integer dan char) Function Description Argument type Return type chr Menampilkan karakter ASCII dari suatu bilangan bulat integer char ord Menampilkan nomor ASCII dari suatu karakter integer or char integer pred predecessor integer or char same as argument type succ successor integer or char same as argument type
13
BAB IX INPUT DAN OUTPUT INPUT Input merupakan sesuatu data yang dimasukkan ke dalam program untuk diproses. Dalam hal ini, hanya akan dibahas input yang diperoleh dari entri data melalui keyboard. Perintah Pascal untuk menyatakan input adalah: readln(variabel); Melalui perintah di atas, data yang dientrikan melalui keyboard akan diassign ke dalam suatu variabel. Setelah data dientrikan, user harus menekan tombol ENTER (RETURN) Contoh: Program ContohInput; Var Bil : integer; Begin Write(‘Masukkan sebarang bilangan bulat : ‘); Readln(bil); Write(‘Bilangan yang Anda masukkan adalah : ‘,bil); End. Misalkan ketika program di atas dijalankan kita masukkan bilangan 6, maka tampilannya: Masukkan sebarang bilangan bulat : 6 [enter] Bilangan yang Anda masukkan adalah : 6 Catatan: - Untuk input berupa bilangan real yang memuat desimal, digunakan tanda titik yang menyatakan koma, misal 345.12. Selain itu dapat pula dituliskan dalam bentuk format scientific, misal 1E-5 (sama dengan 0.00001) atau 3.5E+4 (sama dengan 35000) - Sedangkan input yang berupa karakter tidak perlu diapit dengan tanda petik, demikian pula untuk tipe data boolean.
OUTPUT Setelah data diinput dan selanjutnya diproses, selanjutnya harus ditampilkan sebagai output supaya user dapat mengetahui solusi dari permasalahan. Untuk menampilkan data ke layar (output), terdapat dua perintah dalam Pascal, yaitu Write(argumen); Writeln(argumen); Perbedaan dari kedua perintah di atas adalah sbb: Apabila digunakan write, maka argumen yang ditulis akan ditampilkan ke layar. Setelah itu kursor akan berada di sebelah kanan dari argumen yang telah ditulis tadi. Sehingga apabila setelah write tersebut terdapat write atau writeln lagi, maka argumen yang baru akan ditulis di sebelah kanan dari argumen yang lama. Sedangkan apabila digunakan writeln, maka argumen yang ditulis akan ditampilkan ke layar. Setelah itu kursor akan berada di bawah argumen yang telah ditulis tadi. Sehingga apabila setelah write tersebut terdapat write atau writeln lagi, maka argumen yang baru akan ditulis di 14
bawah dari argumen yang lama. Catatan: Argumen dapat berupa variabel, string, operasi, maupun function. Contoh: a := 4; {misalkan a dan b adalah integer} b := 5; write(‘Ini contoh write’); write(‘Ini contoh write’); writeln(‘Ini contoh writeln’); writeln(‘Ini contoh writeln’); writeln(a); write(a+b); writeln(sqr(a+b)); writeln(a,’ ditambah ‘,b,’ adalah ‘, a+b); output dari potongan program di atas adalah Ini contoh writeIni contoh writeIni contoh writeln Ini contoh writeln 4 981 4 ditambah 5 adalah 9
FORMATTING OUTPUT Tampilan output dapat diatur jaraknya. Untuk tipe data karakter/string serta integer dapat menambahkan sintaks berikut ini dalam write/writeln. value/variabel : lebarfield dengan value/variabel merupakan nilai atau isi dari variabel yang akan ditampilkan ke layar. Sedangkan lebarfield merupakan bilangan positif yang menunjukkan lebar space untuk nilai yang akan ditampilkan. Contoh: a := 10; write(‘Ini adalah isi dari a :‘,a:5); Hasil outputnya adalah Ini adalah isi dari a : 10 Nilai 5 berarti terdapat 5 space untuk meletakkan 10 (cara pengisian adalah rata kanan), sehingga terdapat sisa 3 buah space di depan 10. Hal yang sama juga berlaku untuk nilai yang berupa karakter maupun string. Bagaimana dengan nilai yang berupa real? Bagaimana cara mengatur jumlah digit di belakang koma? Berikut ini adalah sintaks untuk ditambahkan dalam write/writeln. Value/variabel : lebarfield : jumlahdigit Contoh: a := 10.2345562; write(‘Ini adalah isi dari a :‘,a:7:2); Outputnya adalah Ini adalah isi dari a : 10.23 Perhatikan tampilan di atas. Masih terdapat jarak 2 spasi di depan 10.23. Hal ini disebabkan untuk menuliskan 10.23 diperlukan 5 space, sehingga dari 7 space yang ada, hanya digunakan 5 space saja. 15
BAB X DAFTAR PUSTAKA 1. 2. 3. 4.
www.google.co.id www.yahoo.answer.com www.williamalianto.wordpress.com www.transletgoogle.com
16