Anda di halaman 1dari 88

I.

PENDAHULUAN

1.1

Alasan Mengapa Komputer

Mempelajari

Pemrograman

Pada dasarnya kita semua ingin mengetahui apa keuntungan yang akan kita peroleh taktala kita mempelajari konsep bahasa pemrograman. Jika kita telah mengetahui keuntungan apa yang akan kita peroleh maka ilmu komputer khusunya pemrograman akan menjadi suatu pelajaran yang akan diseriusi. Berikut ini adalah alasan mengapa kita harus mempelajari konsep bahasa pemrograman: Increased capacity to express ideas Improved background to choosing appropiate

languages Increased ability to learn new language Better understanding of the significance of

implementation Increased ability to design new languages

1.2

Overall Advancement of computing Bidang-Bidang Pemrograman a. Aplikasi di bidang Scientific

Komputer digital pertama muncul pada tahun 1940an yang dikhususkan untuk aplikasi scientific. Komputer tersebut memiliki struktur data yang sederhana, tapi bisa menghitung operasi aritmethic tingkat tinggi. Pemrograman tingkat tinggi didesain untuk kebutuhan aplikasi di bidang science. Bahasa pemrograman yang pertama adalah FORTRAN dan ALGOL 60. Bahasa pemrograman ini efisien dan menjadi perhatian utama serta menjadi dikenal secara umum sekitar tahun 1950-an dan 1960an, tidak ada yang lebih baik dari FORTRAN pada zamannya. b. Aplikasi di bidang Business

Penggunaan komputer untuk business dimulai sekitar tahun 1950-an. Komputer khusus diciptakan
2

untuk

hal

ini,

begitu

juga

dengan

bahasa

pemrograman. Bahasa pemrograman pertama untuk aplikasi ini adalah COBOL yang muncul sekitar tahun 1960. Karakteristik bahasa pemrograman untuk aplikasi business adalah memiliki fasilitas untuk menghasilkan report, memiliki ketepatan tingkat tinggi dalam penghitungan desimal dan data serta memiliki kemampuan untuk menspesifikasikan operasi aritmethic dalam bentuk desimal. c. Artificial Artificial Intelligence Intelligence (AI), adalah aplikasi

komputer pada area yang luas dengan karakterikstik menggunakan perhitungan symbolic daripada

perhitungan numeric. Bahasa Perograman pertama yang dikembangkan untuk aplikasi ini adalah LISP yang muncl sekitar tahun 1959. Sejak tahun 1970, pendekatan alternative untuk aplikasi ini adalah logic programming dengan menggunakan Prolog.
3

d.

Systems Programming

Sistem Operasi dan semua program pendukung pada sebuah sistem komputer dikenal dengan sebutan system software. System software digunakan secara berkesinambungan dan harus memiliki tingkat efisisensi yang tinggi dalam proses eksekusinya. Karena itu bahasa pemrograman untuk bidang ini harus menyediakan layanan eksekusi yang cepat. Pada tahun 1970-an perusahaan komputers seperti IBM, Digital dan Burroughs mengembangkan mesin khusus berorientasi high-level languages untuk system software. Untuk IBM menggunakan bahasa pemrograman PL/S, Digital menggunakan bahasa pemrograman menggunakan ALGOL. BLISS bahasa dan untuk Burroughs Extended

pemrograman

e.

Scripting Languages scripting digunakan dengan

Pemrograman

menuliskan sejumlah command yang disebut script pada sebuah file untuk dieksekusi. Bahasa

pemrograman pertama untuk bidang ini adalah sh (for shell), kemudian diikuti dengan ksh yang dikembangkan oleh David Korn di Bell

Laboratories. Bahasa pemrograman lainnya adalah awk yang dikembangkan oleh Al Aho, Kernighan dan Peter Wienberger di Bell Laboratories, serta tcl yang dikembangkan oleh John Ousterhout di University of California. Bahasa pemrograman Perl yang dikembangkan oleh Larry Wall merupakan kombinasi antara bahasa pemrograman sh dan awk. Perl berkembang dengan cepat setelah dikembangkan. Sejak adanya Worl Wide Web (WWW), Perl menjadi sangat populer
5

karena merupakan suatu bahasa yang cocok untuk Common Gateway Interface (CGI) programming.

1.3

Kriteria Evaluasi Bahasa Pemrograman a. Readability

Kriteria yang pertama ini mengindikasikan bahwa bahasa pemrograman harus mudah untuk dibaca dan dimengerti. Berikut ini adalah hal-hal yang menjadi bagian dalam kriteria ini: a.1 Overall Simplicity Overal simplicity dimaksud adalah bahasa pemrograman harus sederhana. Pertama suatu bahasa pemrograman lebih mudah dipelajari jika memiliki komponen dasar dalam jumlah yang kecil. Kedua memiliki feature yang multiplicity,

maksudnya adalah lebih dari satu cara untuk melaksanakan


6

suatu

operasi.

Ketiga,

bahasa

pemrograman overloadding,

hendaknya maksudnya

memiliki satu

operator yang

operator

memiliki lebih dari satu arti. a.2 Orthogonality Dalam pemrograman yang dimaksudkan dengan orthogonality adalah kemampuan untuk

menggunakan perintah dalam bahasa pemrograman dalam jumlah sedikit untuk menghasilkan kontrol dan struktur data. a.3 Type Data dan Struktur Data Pemrograman yang baik adalah pemrograman yang memiliki kemampuan untuk mendifiniskan type data dan struktur data. a.4 Syntax Consideration Pemrograman yang baik adalah memiliki

identifier, kata tercadang dan arti untuk masingmasin statement.

b.

Writability

Writability adalah ukuran tingkat kemudahan dari suatu bahasa pemrograman untuk dapat digunakan dalam memecahkan suatu masalah. Proses

menuliskan program mengharuskan programmer untuk membaca bahwa semua bagian dari program telah di tuliskan. c. Reliability

Suatu bahasa pemrograman disebut reliable jika penggunaannya spesffik dalam berbagai kondisi. Reliability menyakut kemampuan untuk mengecek kecocokan programmer, type data yang digunakan oleh

kemampuan

untuk

menangani

kesalahan yang terjadi. d. Cost

Hal yang terakhir dalam kriteria pemrograman adalah biaya, biaya pada suatu programn dapat

ditinjau dari beberapa hal berikut:


8

1. 2. 3. 4. 5. 6. 7.

Training Programmers Writing Program in Language Compliling Executing Implementation System Poor reliability Maintaining Program.

1.4

Hal yang berpengaruh dalam Pemrograman a. Computer Architecture

Arsitektur komputer dasar yangmenjadi acuan dalam bahasa pemrograman adalah von Neuman architecture yang sanagt terkenal pada 35 tahun yang lalu. Pada arsitektur komputer ini, data dan program disimpan kedalam memory yang sama. Berikut ini adalah struktur arsitektur komputer tersebut:

Memory (stores both instructions and data) Result of operatio ns Arithmetic and logic unit

Instruction and data

Control Unit

Central Processing Unit

Gambar 1.1: Arsitektur Komputer Sekarang ini arsitektur komputer telah mengarah ke paralel architecture yang muncul sekitar 15 tahun yang lalu. Arsitektur mempengahuri fungsi eksekusi dari satu bahasa pemrograman.

10

b.

Programming Methodologies

Metodologi pemrograman mempengaruhi proses pemrograman berdasarkan metodologi. Dalam pemrograman terdapat 3 jenis metodologi yaitu: 1. Metodologi pemrograman karena tahapan program yang ada dapat pada dibuat satu

berorientasi proses, muncul sekitar tahun 1960. 2. Metodologi pemrograman

berorientasi objek, muncul sekitar tahun 1970. 3. Metodologi pemrograman

berorientasi objek, muncul sekitar tahun 1980. Dengan adanya metodologi pemrograman, dapat menghasilkan suatu bentuk pemrograman yang sesuai dengan kebutuhan dari satu aplikasi yang ingin dibangun.

11

1.5

Kategori Bahasa Pemrograman Pada umumnya bahasa pemrograman dapat

dikategorikan menjadi 4 jenis yaitu: imperative, functional, logic dan object oriented.

1.6

Metode Implementasi
Virtual PASCAL computer

Virtual FORTRAN computer PASCAL compiler

Virtual LISP computer

LISP FORTRAN interpreter compiler Operating System Macroinstruction Interpreter C compiler Bare Machin e Operating system command interpreter

Assembler Virtual C computer

Virtual assembly language computer

Gambar 1.2 Layer interface of virtual computer


12

a.

Compilation

The programs can be translated to machine language, wich can be executed directly on the computer, this is called compiler.
b.

Pure Interpretation

Programs can be interpreted by another program called an interpreter, with no translation whatever. The interpreter programs acts as a software simulation of a machine whose fetch-execute cycle deals with high-level langauage programs statements rather than machine instruction,this techniques called pure interpretation.
c.

Hybryd Implementation Systems

Some language implementation system are a compromise between compilers and interpreters, they translates high level language designed to allow easy interpretation. Implementation systems. are called hybrid implementation

13

1.7

Lingkungan Pemrograman Lingkungan pemrograman adalah kumpulan dari

sejumlah tools yang digunakan untuk mengembangkan satu software. Kumpulan tools tersebut dapat terdiri atas file system, text editor, linker dan complier. Beberapa lingkungan pemrograman (programming environment) misalnya: UNIX, Borland C++, Smaltalk dan sebagainya.

1.8

Dasar-Dasar Pemrograman Langkah-langkah yang kita lakukan dalam memberikan instruksi kepada komputer untuk memecahkan masalah disebut dengan pemrograman komputer. a. Langkah-langkah dalam Pemrograman Komputer: 1. & Menetukan solusi. 2. 3. Memilih algoritma Menulis program Mendefinisikan masalah

14

4. 5. 6. b. Algoritma dan Flow Chart

Menguji program Menulis dokumentasi Merawat program

Ada beberapa definisi algoritma, satu diantaranya adalah acuan dari Microsoft Bookshelf sbb: Algoritma adalah urutan langkah berhingga untuk memecahkan masalah logika atau matematika

(MSPress Computer 1997). Dalam banyak kasus, algoritma yang anda lakukan tidak selalu berurutan seperti di atas. Kadang kadang anda harus memilih dua atau beberapa pilihan. Sebgai contoh, jika anda ingin makan, anda harus menentukan akan makan di rumah makan atau masak sendiri. Jika anda memilih untuk makan dirumah makan, anda akan menjalankan algoritma yang berbeda dengan jika anda memasak sendiri. Dalam

15

dunia algoritma, hal semacam ini sering disebut dengan percabangan. Dalam kasus lain lagi, Anda mungkin harus melakukan langkah-langkah tertentu beberapa kali. Sebagai contoh, saat anda menulis surat, sebelum memasukan kertas ke dalam amplop, mungkin anda harus mengecek apakah surat tersebut sudah benar atau belum. Jika belum benar, berarti anda harus mempersiapkan kertas baru dan menulis lagi.

Demikian seterusnya sampai surat anda sesuai dengan yang diharapkan. Dalam dunia pemrograman, hal semacam ini sering disebut dengan pengulangan. Flow Chart atau biasa disebut dengan Diagram Alir seringkali dipakai dalam dunia pemrograman sebagai alat bantu untuk membuat program dan untuk kepentingan dokumentasi. Ada dua jenis diagram alir yaitu: 1. Diagram alir sistem
16

Diagram alir sistem adaloah suatu gambar yang menjelaskan: File-file yang diproses oleh program Jenis piranti yang digunakan oleh file Operasi terhadap file (masukan maupun

keluaran)

2. Diagram alir program Diagram alir program adalah suatu gambar yang menjelaskan urutan: Pembacaan data Pemrosesan data Pengambilan keputusan terhadap data Penyajian hasil pemrosesan data

Masing-masing jenis diagram menggunakan simbol yang standar.

17

II. BAHASA PEMROGRAMAN PASCAL

Pascal adalah bahasa tingkat tinggi (high level language) yang orientasinya pada segala tujuan, dirancang oleh Professor Niklaus Wirth dari Technical University di Zurich, Switzerland. Nama Pascal diambil sebagai

penghargaan terhadap Blaise Pascal, ahli matematik dan philosophi terkenal abad 17 dari Perancis. Professor Niklaus Wirth memperkenalkan kompiler (kompilasi) bahasa Pascal pertama kali untuk komputer CDC 6000 (Control Data Corporation) yang dipublikasikan pada tahun 1971 dengan tujuan untuk membantu mengajar program komputer secara sistematis, khususnya untuk memperkenalkan pemrograman yang terstruktur (structured programming). Jadi Pascal adalah bahasa yang ditujukan untuk membuat program terstruktur.
18

2.1

Mengenal Elemen Program Pascal a. Tipe Data Secara umum, terdapat enam kelompok tipe data pada Pascal, yaitu: 1. Tipe sederhana. Tipe sederhana dibagi lagi menjadi dua tipe yaitu: 1.1 Tipe ordinal. Tipe ordinal sendiri masih dibagi lagi menjadi beberapa tipe yaitu: o Tipe bilangan bulat Tabel 2.1 Tipe Bilangan Bulat Tipe byte shortint integer word Jangkauan Nilai 0 .. 255 -128 .. 127 -32768 .. 32767 0 .. 65535

19

longint

-2147483648 .. 2147483647

Contoh penggunaan: var x,y z o Tipe Boolean Tabel 2.2 Tipe Boolean Tipe Boolean Bytebool Wordbool Longbool Ukuran 1 byte 1 byte 2 byte (1 word) 4 byte (2 word) : integer : word

Contoh penggunaan: var bl : boolean bl := true o Tipe Tipe Karakter ini digunakan untuk menyimpan data

alfanumeris seperti A, Z, @, 1,9, dsb. Tipe

20

data didekalarasikan dengan menggunakan kata kunci char. Contoh penggunaan: var ch o Tipe Terbilang : char

Tipe terbilang memungkinkan kita dapat memberi nama pada beberapa nilai tertentu. Contoh penggunaan: type tipehari = ( Minggu, Senin, Selasa, Rabu, Kamis, Jumat, Sabtu); var Hari : Tipehari Hari := Minggu; Hari := Senin; o Tipe Subjangkauan

Tipe subjangkauan memungkinkan kita mendeklarasikan tipe yang berada pada jangkauan tertentu. Contoh penggunaan:

21

type bulan = 1..12; var Januari : bulan; Januari := 1; 1.2 Tipe real. Tabel 2.3 Tipe Real Tipe single double extended comp Contoh penggunaan: var x,y z : real; : double; Jangkauan Nilai 1.5 x 10E-45 .. 3.4 x 10E38 5.0 x 10E-324 .. 1.7 x 10E308 1.9 x 10E-4951 .. 1.1 x 10E4932 -2E+63+1 .. 2E+63-1

2. Tipe string, yaitu sekumpulan karakter.

22

Contoh penggunaan: var kalimat : string; kalimat := Turbo Pascal 7; 3. Tipe Terstruktur. Tipe Terstruktur dibagi lagi menjadi lima tipe yaitu: o Tipe larik (array) Tipe larik memungkinkan kita mende-

klarasikan kumpulan dengan variabel yang bertipe sama. Aturan penulisan: var nama_larik :array [batas_bawah..batas_atas] tipe_larik; Contoh penggunaan: var a : array [1..8] of longint; a[1] := 10; a[2] := 5; o Tipe rekaman (record)

of

23

Tipe ini memungkinkan kita menggabungkan beberapa variabel dengan tipe yang berbeda. Untuk mendeklarasikan tipe rekaman

digunakan kata kunci record. Contoh penggunaan: type Tkaryawan = record Nama :string; NIP :string; Alamat:string; var Karyawan : Tkaryawan; Karyawan.Nama:= Ana Karyawan.NIP:= 01010035 Karyawan.Alamat := Manado o Tipe objek o Tipe himpunan Tipe himpunan digunakan untuk menyimpan kumpulan nilai (disebut juga anggota

himpunan) yang bertipe sama. Contoh penggunaan: type


24

HimpunanKarakter var

= set of char;

vokal : HimpunanKarakter; huruf : HimpunanKarakter; Pemberian nilai pada tipe himpunan dilakukan dengan menuliskan anggota himpunan dalam kurung siku. vokal := [A,I,U,E,O]; huruf := [a..z]; o Tipe berkas 4. Tipe pointer Pointer adalah variabel yang menunjuk lokasi memori tertentu. Pendeklarasian pointer dilakukan dengan cara yang hampir sama dengan pendeklarasian

variabel biasa, bedanya harus menambahkan tanda ^ didepan tipe pointer. Contoh penggunaan:

25

var P1 P2 5. Tipe prosedural 6. Tipe objek :^integer; :^double;

b. Macam-Macam Operator Pada dasarnya ada 7 macam operator dalam Pascal yaitu: 1. Operator pemberi nilai. Operator yang paling sering digunakan adalah operator pemberi nilai. Pemberian nilai pada Pascal dilakukan dengan

menggunakan tanda :=, bukan tanda =. Contoh: A := 12; B := Halo 2. Operator aritmetik Operator aritmetik hanya dapat dikenakan pada operan bertipe bilangan bulat dan bilangan real. Pascal mengenal
26

{Untuk tipe bilangan bulat} {Untuk tipe string}

dua macam operator aritmetik, yaitu operator aritmetik tunggal dan operator aritmetik biner. Perbedaan kedua operator ini terletak pada jumlah operan. Pada operator aritmetik tunggal, operan yang digunakan hanya satu; sedangkan pada operator aritmetik biner, operan yang digunakan berjumlah dua atau lebih. Ada 2 macam operan tunggal pada Pascal yang dapat dilihat dalam tabel berikut: Tabel 2.4 Operator Aritmetik Operator + Operasi Identitas (tanda hasil operasi sama dengan tanda operan) Invers ( tanda hasil operasi adalah lawan dari tanda operasi) Contoh: Tipe Operan bil bulat bil real bil bulat bil real Tipe Hasil bil bulat bil real bil bulat bil real

27

x := -y; x := +y; atau x := y; u := -z u := +z; atau u:=z a := -b a := +b atau a:= b Ada enam macam operator aritmetik biner pada Pascal yang dapat dilihat pada tabel berikut:

Tabel 2.5 Operator Aritmetik Biner Operator Operasi + Penjumlahan * / div Pengurangan Perkalian Pembagian Pembagian bilangan bulat
28

Tipe Operan bil bulat bil real bil bulat bil real bil bulat bil real bil bulat bil real bil bulat

Tipe Hasil bil bulat bil real bil bulat bil real bil bulat bil real bil real bil real bil bulat

mod

Sisa pembagian (modulus)

bil real

bil real

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; 3. Operator pemanipulasi bit. Operasi ini berhubungan dengan pemanipulasi bit pada operan, misalnya menggeser bit ke kanan, menggeser bit ke kiri dan sebagainya. Operasi ini hanya dapat dikenakan pada operan bertipe bilangan bulat dan hasilnya juga selalu bilangan bulat. Ada enam macam operator pemanipulasi bit pada Pascal yang dapat dilihat pada tabel berikut: Tabel 2.6 Operator Pemanipulasi Bit Operator not and Operasi Invers Logika and
29

or xor shl shr

Logika or Logika xor Penggeseran bit ke kiri Penggeseran bit ke kanan

Berikut adalah tabel yang menunjukan hasil opeartor not, and, or, dan xor untuk berbagai kombinasi bit:

Tabel 2.7 Operator not,and, or dan xor untuk kombinasi bit A 0 0 1 1 B 0 1 0 1 not A 1 1 0 0 not B 1 0 1 0 A and B 0 0 0 1 A or B 0 1 1 1 A xor B 0 1 1 0

Operator shr dan shl masing-masing digunakan untuk menggeser bit-bit operannya kekiri atau ke kanan. Contoh:

30

x := y shl 2; a := b shr 5; yang artinya bit-bit pada variabel y digeser ke kiri sejauh 2 bit. yang artinya bit-bit pada variabel b digeser ke kanan sejauh 5 bit.

4. Operator boolean Sesuai dengan namanya, operator ini dikenakan pada operan bertipe boolean yang tipe operan dan tipe hasil operasinya adalah boolen. Ada empat macam operator boolean pada Pascal yang dapat dilihat pada tabel berikut: Tabel 2.8 Operator Booelan Operator not and or xor Operasi Invers Logika and Logika or Logika xor
31

Berikut adalah tabel yang menunjukan hasil opeartor not, and, or, dan xor untuk berbagai kombinasi kondisi:

Tabel 2.9 Operator not,and,or dan xor pada operator boolean A F F T T B F T F T not A T T F F not B T T T F A and B F T F T A or B F T T T A xor B F T T F

5. Operator pembanding Sesuai dengan namanya, operator ini digunakan

untuk membandingkan dua operan. Hasil dari operator ini adalah data bertipe boolean yang

menunjukan hasil perbandingan bernilai benar atau salah. Ada delapan macam operator pembanding pada Pascal yang dapat dilihat pada tabel berikut:

32

Tabel 2.10 Operator Pembanding Operator Operasi = Sama dengan <> < > <= >= <= >= Tidak sama dengan Kurang dari Lebih dari Kurang dari atau = Lebih dari atau = Subset dari Superset dari Contoh: Tipe Operan Tipe sederhana, pointer, string, himpunan. Tipe sederhana, pointer, string, himpunan. Tipe sederhana, string Tipe sederhana, string Tipe sederhana, string Tipe sederhana, string Tipe himpunan Tipe himpunan

a := 5 < 6; a := (3 < 4) and (5 > 6); a := 5 <> 6; 6. Operator himpunan Sesuai dengan namanya, operator ini hanya digunakan pada tipe himpunan.

33

Ada empat macam operator himpunan pada Pascal yang dapat dilihat pada tabel berikut:

Tabel 2.11 Operator himpunan Operator + = In Contoh: A := B + C; Menggabungkan semua anggota himpunan B dan C kedalam A. Jika A, B dan C bertipe set of char dan nilai B dan C masing-maasing adalah [A,B] dan [C], maka variabel A akan bernilai [A,B,C] D := A C; { D = [A,B] } E := A * C; { D = [C]} 7. Operator string. Pascal hanya mengenal satu macam operator string yaitu penggabungan. Operator ini digunakan untuk
34

Operasi Union Selisih Interseksi Anggota dari

menggabungkan 2 atau lebih operan stringmenjadi sebuah string yang lebih panjang. Simbol untuk operator ini sama dengan operator penjumlahan (+). Contoh: S := Turbo + Pascal; {Sama artinya dengan S := Turbo Pascal;} Derajat Operator. Kegunaan derajat operator adalah menetukan operator manan yang harus dikerjakan lebih dulu dan opeartor mana yang terakhir dikerjakan. Berikut ini adalah derajat operator yang ditampilkan melalui tabel berikut:

Tabel 2.12 Derajat Operator Operator not * / div mod and shl shr Derajat Tertinggi

35

+ - or xor = <> < > <= >= in

Terendah

2.2 Struktur Program Bagian Deklarasi Deklarasi Label Deklarasi Konstanta Deklarasi Tipe Deklarasi Variabel Deklarasi Prosedur Judul Program Fungsi Deklarasi Bagian Program

Begin Statement . . . ... ... End. Gambar 2.1 Struktur Program Pascal

Deklarasi Label Label 100, 200

36

Deklarasi Konstanta Const Potongan=Real; Gaji=2500; Nama = PT.Maju; Deklarasi Tipe Type Pecahan = Real; Huruf = String [25]; Logika = Boolean; Var Gaji :Pecahan; Keterangan :Huruf; Menikah :Logika; Deklarasi Variabel Var JmlhAnak : Integer; Gaji: Real; Deklarasi Prosedur PROCEDUR Hitung(X,Y : Integer); Deklarasi Fungsi FUNCTION Pangkat(X,Y : Real) : Real; Kata-Kata Tercadang

37

Kata-kata cadangan (reserved words) adalah kata-kata yang sudah didefinisikan oleh Pascal yang mempunyai maksud tertentu. Kata-kata cadangan tidak boleh di definisikan oleh pemakai, sehingga tidak dapat dipergunakan sebagai

pengenal (identifier). *absolute file *shr and for *string array forward then begin function to case goto type const if packed *unit
38

mod

nil

not

of

or

div

*implementation procedure until

do

in program *uses

downto

*inline record var

else

*interface repeat while

end

*interrupt with

set

*external

label *xor

*shl

Ket : kata-kata cadangan yang diberi tanda * menunjukkan kata-kata cadangan yang tidak ada di standar Pascal. Pengenal / Identifier

39

Nama yang dipergunakan di dalam program Pascal disebut dengan pengenal (identifier). Pemakai dapat mendefinisikan sendiri suatu nama sebagai pengenal untuk pengenal tipe, pengenal konstanta, pengenal variabel, pengenal prosedur, pengenal fungsi. Pengenal yang didefinisikan sendiri ini BEBAS, tetapi DENGAN KETENTUAN-KETENTUAN sebagai berikut: 1. Terdiri dari gabungan huruf dan angka dengan

karakter pertama harus berupa huruf (huruf besar atau kecil dianggap sama). 2. 3. khusus. 4. Contoh: Panjangnya bebas, tetapi hanya 63 karakter. Tabel 2.13 Penggunaan Pengenal Keterangan Benar Benar Tidak boleh mengandung blank/spasi. Tidak boleh mengandung simbol-simbol

Pengenal GajiKaryawan No_Mhs

40

P3K 1x XY A&B

Benar Salah (karakter pertama harus huruf) Salah (ada blank/spasi) Salah (tidak boleh mengandung simbol)

2.3 Input dan Output Telah diketahui bahwa pernyataan yang digunakan untk menampilkan informasi ke layar adalah WriteLn, selain WriteLn terdapat juga pernyataan yang lain, yaitu Write. Kedua peryataan ini dijelaskan sebagai berikut: Writeln dapat menerima argumen bertipe dasar dan bahkan string. Jumlah argumen pada Writeln bisa lebih dari satu. Pernyataan Write mempunyai kegunaan yang serupa dengan Writeln. Perbedaan umumnya: WriteLn menambahkan Linefeed (LF) dan Carriage Return(CR).

41

Write tidak menambahkan LF dan CR.

Berdasarkan hal ini, Write akan menyebabkan tulisan pada Write atau Writeln berikutnya terletak pada baris yang sama. Contoh: WriteLn (Turbo); WriteLn (Pascal); Hasilnya: Turbo Pascal Adapun: Write (Turbo); WriteLn (Pascal); Hasilnya TurboPascal Memformat Output dari Write atau WriteLn: Untuk memformat suatu data pada layar, caranya dengan menambahkan tanda titik dua (:) diikuti dengan bilangan yang menyatakan lebar ruang untuk menampilkan data:
data:n

42

Format ini menyebabkan data ditampilkan rata kanan pada ruang dengan ukuran sebesar n karakter. Khusunya untuk bilangan real, format berikut ini bisa digunakan:
data:lebar_total:lebar_pecahan

Dalam hal ini, lebar_total dipakai untuk mengatur lebar ruang untuk data dan lebar_pecahan untuk menentukan jumlah digit bagi nilai pecahannya.

43

III. PERCABANGAN/SELEKSI

Penyeleksian suatu kondisi pada suatu program diperlukan untuk menentukkan apa yang harus dikerjakan, tergantung dari hasil kondisi yang diseleksi tersebut. Untuk menyeleksi kondisi di dalam Pascal dapat digunakan statement If dan Case.

3.1 Statement IF a. Struktur If-Then If kondisi Then Statement

44

Pada bagian ini, pernyataan (statement) hanya akan dijalankan kalau kondisi bernilai True. Contoh : Uses Crt; Var NilaiUjian Ket Begin ClrScr; Ket := Tidak Lulus; Write (Nilai Ujian : ); Readln (NilaiUjian); If NilaiUjian => 60 Then Ket := Lulus; Writeln (Ket); End. b. Struktur If-Then . . . Else Struktur If-Then . . . Else merupakan pengembangan dari struktur If-Then dengan struktur sebagai berikut:
45

: :

Real; String[10];

If kondisi Then Statement Else Statement2;

Atau

If kondisi Then Begin Statement1; Statement2; End Else Statement3;

Contoh : Uses Crt; Var NilaiUjian Begin ClrScr; : Real;

Write (Nilai Ujian : ); Readln (NilaiUjian); If NilaiUjian => 60 Then WriteLn (Lulus) Else WriteLn (Tidak Lulus); End.
46

c. Struktur If Bersarang (Nested IF) Struktur If tersarang merupakan bentuk dari suatu statement If berada di dalam lingkungan statement If yang lainnya.
If kondisi1 Then Begin

If kondisi2 Then Statement1 End. End Statemen2; Contoh : Uses Crt; Var TotBeli : Begin ClrScr; Write (Total Pembelian = ); Readln (TotBeli);
47

LongInt;

If TotBeli => 10000 Then WriteLn (Diskon 10%) Else If TotBeli => 5000 Then WriteLn (Bonus 1 Piring) Else If TotBeli => 1000 Then WriteLn (Bonus 1 Gelas) Else WriteLn (Tidak Ada Bonus); Readln; End. 3.2 Statement Case Off Pernyataan Case merupakan alternatif dari pernyataan If untuk masaah dengan pilihan berganda. Pada masalah tertentu, Case lebih memberikan kejelasan daripada If. Namun perlu diketahui bahwa semua persoalan yang

48

dapat ditangani oleh Case bisa ditangani oleh If, tetapi tidak sebaliknya. Case kondisi Of daftar case-label1 : statemen1; daftar case-label2 : statemen2; . daftar case-labelx : statemenx; End; Contoh : Uses Crt; Var Pil Begin ClrScr; Write (Pilihan (1-3) : ); Readln (Pil); Case Pil Of 1:WriteLn (Pilihan Anda adalah 1); 2:WriteLn (Pilihan Anda adalah 2); 3:WriteLn (Pilihan Anda adalah 3);
49

Integer;

Readln; End.

Struktur Case-Of . . . Else Sejauh ini semua bentuk Case melibatkan bagian Else. Sesungguhnya bagian Else bersifat opsional. Bagian Else bisa saja tidak disertakan Contoh : Uses Crt; Var Pil Begin ClrScr; Write (Pilihan (1-3) : ); Readln (Pil); Case Pil Of 1:WriteLn (Pilihan Anda adalah 1); 2:WriteLn (Pilihan Anda adalah 2);
50

Integer;

3: WriteLn (Pilihan Anda adalah 3); WriteLn (Diskon 10%) Else WriteLn (Anda Salah Memilih); Readln; End.

Pemakaian Koma : Case KodeBulan Of 1, 3, 5, 7, 8, 10, 12 : WriteLn (Jumlah Hari = 31); 4, 6, 9, 11 : WriteLn (Jumlah Hari = 30); 2 : WriteLn (Jumlah Hari = 28 atau 29);

Pemakaian Subjangkauan . . . : Case Kar Of A. .Z : WriteLn (Huruf Kapital); a. .z : WriteLn (Huruf Kecil);
51

Case Pembelian Of 0. .1000 : Potongan := 100; 1001. .10000 : Potongan := 500;

IV. PENGULANGAN Perulangan (loop) merupakan bentuk yang sering ditemui di dalam suatu program aplikasi. Di dalam bahasa Pascal, dikenal tiga macam perulangan yaitu dengan menggunakan statement For, While-Do, RepeatUntil.

4.1 Perulangan (For) Perulangan Positif (For-To-Do) Contoh : Uses Crt;


52

Var I : Integer; Begin ClrScr; For I:=1 To 5 Do Begin Write (I); WriteLn (Pascal); End; End.
Output :
1 2 3 4 5 Pascal Pascal Pascal Pascal Pascal

Contoh :

Uses Crt; Var


53

I : Integer; Begin ClrScr; For I:=1 To 5 Do Write (I); WriteLn (Pascal); End.

Output :
12345 Pascal

Contoh porogram diatas memperlihatkan guna dari pemakaian Blok Statement (BeginEnd;)

Perulangan Negatif (For-Downto-Do)

Contoh :
54

Uses Crt; Var Celcius : Integer; Fahrenheit : Real; Begin ClrScr; WriteLn (------------------): WriteLn (Celcius Fahrenheit): WriteLn (------------------): Celcius :=0; For Celcius:= 5 To 0 Do Begin Fahrenheit := (1.8 * Celcius) + 32; WriteLn (Celcius:8, Fahrenheit:14:2); End; Output :
-------------------Celcius Fahrenheit End. -------------------5 41.00 4 39.20 3 37.40 2 35.60 1 33.80 0 32.00 --------------------

WriteLn (---------------);

55

Perulangan Bersarang (For bersarang) Contoh : Uses Crt; Var I, J : Integer; Begin ClrScr; For I:= 1 To 5 Do Begin For J:= 7 To 9 Do
56

Write (I:8, J:3); WriteLn; End; End.

Output : 17 27 37 47 57 18 28 38 48 58 19 29 39 49 59

4.2 Perulangan (While-Do) Contoh : Uses Crt; Var I : Integer; Begin


57 While, terlebih dahulu tentukan nilai awal dari variabe

ClrScr; I := 0; While I < 5 Do Begin WriteLn (I); I := I + 1; End; End. Output : 0 1 2 3 4 4.3 Perulangan (repeat...until) Contoh : Uses Crt; Var I : Integer;
58 Repeat, terlebih dahulu tentukan nilai awal dari variabe

Begin ClrScr; I := 0; Repeat I := I + 1; WriteLn (I); Until I = 5; End. Output : 1 2 3 4 5

59

V. OPERASI MATEMATIKA 5.1 Operasi Matematika Keseluruhan operator matematika yang tersedia pada Turbo Pascal dapat dilihat pada table dibawah ini : Tabel 5.1 Operator Matematika Operator * / DIV MOD + Arti Kali Bagi (real) Bagi (bulat) Sisa pembagian Tambah Kurang Prioritas 1 2 2 2 3 3

Operasi dasar seperti penjumlahan, pengurangan, perkalian


60

dan pembagian

dapat

dilaksanakan

dengan

menggunakan operator-operator tersebur diatas. Misalnya untuk menghitung : 53 diperlukan ekspresi sebagai berikut : 5*5*5 mengingat Turbo Pascal tidak menyediakan perpangkatan. Operasi tidak dapat dilaksanakan dengan operator yang tersedia dapat dilaksanakan dengan menggunkan fungsi-fungsi yang disediakan Turbo Pascal. 5.2 Pernyataan Inc dan Dec Kiranya Anda sudah terbiasa menggunakan pernyataan seperti : X := x + 1; Y := y 2; Pada contoh pertama, nilai x dinaikan sebesar 1 terhadap nilai semula. Pada contoh kedua, nilai y diturunkan sebesar 2. Bentuk seperti diatas dapat diwakili dengan pernyataan Inc atau Dec, kalau x ataupun y serta nilai penambah atau pengurang bertipe integer. Bentuk pernyataan Inc : Inc (Variabel)
61

operator

Inc (Variabel,Nilai) Pada bentuk pertama, nilai Variabel akan dinaikan sebesar 1. Bila menggunakan bentuk kedua, bentuk pertama tersebut identik dengan : Inc (Variabel,1) Parameter Nilai menyatakan besaarnya niali yang akan ditambahkan terhadap isi semula dari Variabel. Adapun bentuk pernyataan Dec : Dec (Variabel) Dec (Variabel,Nilai) Pada bentuk pertama, nilai Variabel akan diturunkan sebesar 1. Bila menggunakan bentuk kedua, bentuk pertama tersebut identik dengan : Dec (Variabel,1) Parameter Nilai menyatakan besarnya nilai untuk mengurangkan terhadap isi semula dari Variabel. Dengan demikian pernyataan : X := x + 1; Y := y 2; Dapat ditulis menjadi : Inc (x);{ atau : Inc (x)}
62

Dec (y, 2)

5.3 Fungsi Matematika Turbo Pascal menediakan sejumlah fungsi matematika, sebagaimana dapat dilihat pada table 10.2 Tabel 5.2 Fungsi Matematika Fungsi Abs(x) Keterangan Digunakan untuk memperoleh nilai mutlak (absolut) x. Dalam hal ini tipe Contoh Abs(5.5) 5.5 Abs(-5.5) 5.5

sesuai dengan tipe parameter Abs(-157) 157 Untuk memperoleh arctangent dari nilai ArcTan(x ) x. hasilnya berupa sudut yang dinyatakan dalam satuan radian. Baik parameter maupun hasilnya bertipe real. Untuk memperoleh nilai cosinusu dari Cos(x) sudut x. Sudut dinyatakan dalam radian. Parameter dan hasilnya bertipe real. Menghasilkan nilai eksponesial dari Exp(x) Frac(x) x(ex). Baik parameter maupun hasilnya bertipe real. Memberikan bagian pecahan dari Frac(123.456)
63

argumen x. Baik parameter maupun hasilnya bertipe real. Int(x)

0.456 Frac(-123.456)

-0.456 Mendapatkan bagian bulat dari argumen Int(50.6) 50.0 x. Hasilnya bertipe real. Menghasikan logaritma alami dari x (eLog x). Baik parameter maupun hasilnya bertipe real. Menghasilkan nilai (3,14159265356) Melakukan pembulatan terhadap Round(50.6) 51 Round(-50.6) -51 Int(-50.6) -50.0

Ln(x) Pi

Round(x)

parameter bertipe real ke bilangan bulat terdekat. Hasilnya LongInt

Sin(x)

Untuk memperoleh niali sinus dari sudut x (dalam radian) Untuk memperoleh akar kuadrat dari x. Tipe hasilnya sesuai dengan tipe parameter. Untuk memperoleh akar kuadrat dari x. Hasil parameternya bertipe real Memperoleh nilai bulat dari parameter

Sqr(x)

Sqr(5)

25

Sqr (5.0) 25.0 Sqrt(25) 5.0 Trunc(123.6) 123 Trunc(-123.6) -123

Sqrt(x)

Trunc(x)

bertipe real. Tipe hasilnya berupa LongInt

64

Beberapa fungsi lain yang berkaitan dengan bilangan dapat dilihat pada table berikut : Tabel 5.3 Fungsi-fungsi yang berkaitan dengan bilangan Fungsi Odd(bil) Keterangan

Random(bil)

Random

5.4 Eksponensial dan Logaritma

65

Dua fungsi tersedia pada Turbo Pascal untuk melakukan operasi eksponensial dan logaritma adalah Exp dan Ln. x) Ln (x), untuk memperoleh logaritma alami dari x (e Exp (x), untuk memperoleh nilai ex (eksponensial dari

Log x) Berdasarkan fungsi Ln, kita dapat melakukan operasi logaritma berbasis sepuluh. Penyelesaiannya:
10

Log x = e Log x / e Log 10

Fungsi Exp dapat dimanfaatkan untuk menghitung seperti sinus hiperbolis. Manfaat 5 1/3 Solusi persoalan diatas dapat dikerjakan melalui yang lain adalah untuk menghitung:

pengandaian: xn = y dengan y adalah hasilnya. Berdasarkan persamaan diatas, maka:


66

Ln xn= Ln y atau: n Ln Xn = Ln y Dari persamaan yang terakhir ini, y dapat diperoleh, yaitu melalui rumus: y=e(n Ln x) Pernyataan Pascal untuk persamaan diatas berupa: y := exp (n * ln (x)); Contoh berikut menunjukan pemakaian Exp dan Ln: Uses crt; Begin ClrScr; WriteLn (Akar kuadrat dari 25 = , Exp (1/2 * Ln (25)); WriteLn (Akar tiga dari 25 = , Exp (1/3 * Ln (25)); Readln; End.
67

5.5 Fungsi COS, SIN, PI dan ARCTAN Keempat Fungsi ini merupakan fungsi trigonometri yang tersedia pada Turbo Pascal. Cos (x), untuk memperoleh nilai cosinus dari x (x

dalam radian) Sin (x), untuk memperoleh nilai sinus dari x (x dalam

radian) x. Kedua fungsi pertama meminta argument berupa sudut. Jika sudut dalam sataun derajat, sudut ini perlu dikonversi menjadi radian: radian = derajat * / 180 dengan dapat diperoleh melalui Pi. Contoh penggunaan fungsi Sin dan Cos adalah untuk menghitung lintasan peluru yang ditembakan dengan kecepatan awal V0 dan sudut tembakan berupa derajat.
68

Pi, untuk memperoleh nilai ArcTan (x), untuk memeperoleh arctangent dari nilai

Jarak jatuhnya peluru dari tempat penembakan dapat dihitung melalui rumus: Jarak = 2 x V0 2 x Sin ( ) x Cos ( ) / g dengan g adalah gaya gravitasi bumi. Contoh program: USES Crt; Const Gravitasi = 9.8 Var Rad,Derajat,Kecepatan,Jarak : Real Begin ClrScr; Writeln (Menghitung Jarak Jatuhnya Peluru); Write ( Sudut penembakan (derajat) : ); Readln (Derajat); Write (Kecepatan tembak (m/detik):); Readln (Kecepatan); Rad :=Derajat * Pi / 180;
69

Jarak := 2 * Sqr (Kecepatan) * Sin (Rad) * Cos (Rad) / GRAVITASI Writeln (Peluru jatuh pada jarak =,Jarak :0 :4); ReadLn; End.

70

VI. PROSEDUR DAN FUNGSI 6.1 Pengenalan Sub Program Suatu teknik yang bisa diterapkan dalam pemrograman terstruktur adalah teknik rancang atasbawah (top-down design). Berdasarkan falsafah rancang atas bawah, maka suatu program dipecah menjadi beberapa bagian yang lebih kecil dengan tugas tertentu. Setiap bagian dari program selanjutnya adakalanya dipecah-pecah lagi menjadi bagian yang lebih

kecil,dengan harapan bagaian-bagian kecil menjadi lebih mudah dipahami oleh pemrogram. Bagian-bagian program seperti ini dikenal dengan sebutan sub program atau rutin (subrutin). Keuntungan yang lain dengan adanya

subprogram adalah penghematan kode program. Ini terjadi jika ada beberapa bagian program yang sama dipanggil di beberapa tempat di dalam program. Pascal mengenal sub program dengan Fungsi dan Prosedure.
71

6.2

Membuat Fungsi Sampai sejauh ini kita kita telah mengenal sejumlah fungsi standar yang tersedia pada turbo pascal. Semua fungsi mempunyai sifat memberikan nilai (disebut hasil fungsi) pada saat dipanggil. Contoh penggunaan fungsi adalah sebagai berikut: x : = Sqrt(10); Pada pernyataan ini, sqrt berkedudukan sebagai operand dari operator penugasan (;=) Suatu fungsi umumnya mempunyai argument atau parameter. Parameter ditulis dalam tanda kurung. Namun bisa aja suatu fungsi tidak memiliki parameter (contoh fungsi standar yang tidak memiliki parameter diantaranya adalah Pi dan Random). Pemrogram bisa membuat sendiri suatu fungsi. Bentuk dekalarasinya adalah sebagai berikut: FUNCTION nama_fungsi (daftar_parameter):tipe; Bagian_dekalarasi;

72

Bagian_pernyataan; Dalam hal ini: Daftar parameter dapat berisi sejumlah

parameter. Bentuk dari daftar_parameter: : tipe_1; ;

daf_parameter_1

daf_parameter_n:tipe_n dengan masing-masing daf_parameter yang dapat berisi sejumlah parameter yang dipisahkan dengan koma. Tipe menyatakan tipe dari hasil fungsi Jika fungsi tidak memiliki parameter, tanda ()

tidak perlu disertakan. Contoh deklarasi judul fungsi: FUNCTION Tambah (A:Real ; B:Real) : Real; Contoh ini menunjukan bahwa fungsi Tambah

mempunyai dua parameter yang masing-masing bertipe Real. Selain itu, hasil fungsi juga bertipe Real.
73

Berhubung tipe kedua parameter sama, penulisan seperti berikut ini merupakan ekuivalennya: FUNCTION Tambah (A,B:Real) : Real; Bagian deklarasi fungsi mempunyai bentuk seperti bagian deklarasi program. Bagian deklarasi bisa mengandung bagian VAR,TYPE,CONST,LABEL dan bahkan prosedur atau fungsi. Bagian ini jika hanya bersifat local dan hanya bagi fungsi itu sendiri. Artinya, hanya fungsi itu sendiri yang bisa memanfaatkan dan mengenalinya. Bagian pernyataan berisi kode-kode yang akan dilaksanakan oleh fungsi sewaktu fungsi dipanggil. Untuk lebih jelasnya, perhatikan fungsi berikut terlebih dulu: FUNCTION Tambah (A,B:Real) : Real; BEGIN Tambah := A + B; END;
74

Fungsi diatas berguna untuk mendapatkan hasil penjumlahan parameter A dan B. Satu hal penting yang perlu diperhatikan di sini adalah adanya pernyataan: Tambah := A + B; Tampak bahwa bagian kiri dari operator penugasan berupa nama fungsi. Hal seperti ini mutlak diperlukan dan tidak lain adalah untuk memberikan hasil fungsi. Artinya fungsi Tambah akan memberikan nilai berupa penjumlahan dari parameter A dan B. Contoh Program Uses Crt; FUNCTION Tambah (A,B:Real) : Real; BEGIN Tambah := A + B; END; BEGIN ClrScr; Writeln (Tambah (10,30)); Readln; END.

75

6.3

Parameter Formal dan Aktual Parameter dibedakan menjadi: Parameter Formal dan Parameter Aktual

Parameter formal adalah parameter yang terdapat pada pendeklarasian judul subprogram, baik pada fungsi FUNCTION Tambah (A,B:Real) : Real; A dan B disebut parameter formal. Parameter aktual adalah parameter pada pemanggilan fungsi atau prosedur. Misalnya pada: x:= Tambah (10,20); 10 dan 20 adalah parameter aktual.

6.4

Variabel Lokal dan Global Pada fungsi Tambah di depan, tidak ad bagian deklarasi. Kenyataanya suatu fungsi bisa mengandung bagian deklarasi . Jika ada bagian deklarasi, bagian ini

76

hanya dikenal oelh bagian pernyataan yang ada pada fungsidan tidak dapat diakses oleh pemanggilnya. Sebagai contoh program berikut: Uses Crt; Var X,Y : Integer; FUNCTION Tambah (A,B:Real) : Real; Var Hasil : Real; BEGIN Tambah := A + B; END; BEGIN ClrScr; Writeln (Tambah (10,30)); Readln; END. Program di atas merupakan alternatif lain dari program sebelumnya. Pada program di atas terdapat pendeklarasian variable Hasil di dalam fungsi Tambah. Variabel seperti itu disebut variable loka bagi fungsi Tambah, karena hanya dikenal oleh fungsi Tambah itu sendiri. Bagian pernyataan program utama tidak bisa mengakses variable ini. Adapun variabel seperti X dan
77

Y, mengingat dideklarasikan sebelum fungsi Tambah, bersifat global bagi fungsi Tambah. Artinya, fungsi Tambah dapat mengakses kedua data tersebut,

meskipun hal ini tidak dilakukan pada program tersebut. Variabel yang bersifat local biasa dipakai di dalam pembuatan fungsi ataupun prosedur. Dengan menggunakan variabel seperti ini, pemrogram dapat mendefinisikan kembali nama suatu variabel (ataupun pengenal yang lain) tanpa perlu khwatir mempengaruhi atau memberi efek samping terhadap variabel dengan nama yang sama yang teletak pada prosedur ataupun fungsi yang lain atau bahkan pada program utama. Dengan cara seperti inilah suatu fungsi atau prosedur dapa dibuat independent terhadap fungsi atau prosedur yang lain, sehingga mudah diuji atau dipahami secara terpisah (terhadap fungsi atau prosedur yang lain).

78

6.5

Membuat Procedure Jika kita bermaksud membuat suatu sub program yang hendak memberikan suatu nilai,

fungsilah yang tepat. Tetapi jika tidak, prosedurlah yang kita perlukan. Deklarasi prosedur, seperti halnya fungsi, terdiri dari tiga bagian: 1. Judul Prosedur 2. Bagian Deklarasi 3. Bagian Pernyataan Format yang lengkap: PROCEDURE nama(daftar_parameter); Bagian Deklarasi; Bagian Pernyataan; Baik daftar parameter, bagian dekarasi maupun bagian pernyataan adalah seperti pada pembuatan fungsi. Dari deklarasi di atas terlihat bahwa ada sesuatu yang berbeda, yakni adanya tipe hasil dari
79

prosedur, karena prosedur memang tidak memberikan nilai saat dipanggil. Itulah sebabnya pada bagian pernyataan deklarasi prosedur tidak terdapat pernyataan berikut: Nama_Prosedur := ekspresi; Berikut ini adalah contoh sederhana dari suatu prosedur. Prosedur dimaksudkan untuk menampilkan informasi tentang program. Uses Crt; PROCEDURE Info; BEGIN ClrScr; Wirteln (*---------------------*); Writeln (* Contoh Prosedur *); Writeln (* Dibuat Oleh: JooSaut*); Writeln (*---------------------*); END; BEGIN Info; Writeln (Selesai); Readln; END.

80

6.6

Perlewatan Parameter dengan Referensi atau Fungsi Turbo Pascal memiliki mekanisme perlewatan variabel, yaitu dengan cara: 1. Nilai 2. Referensi Perlewatan parameter secara nilai dimaksudkan jika di dalam pemanggilan suatu prosedur atau fungsi, parameter tidak dimaksudkan untuk diubah oleh prosedur atau fungsi. Suatu parameter yang dilewatkan secara nilai tidak dapat diubah oleh suatu prosedur atau fungsi sekalipun perubahan telah dilakukan di dalam prosedur atau fungsi tersebut. Berikut ini adalah contoh untuk menjelaskan hal tersebut:
Uses CRT; Var Amin,Badu : Integer; PROCEDURE Tukar (Amin,Badu : Integer) Var Tmp : Integer; BEGIN Tmp := Amin; Amin:= Badu; Badu:= Tmp; Writeln (Pada Tukar:); 81

Writeln (Amin = , Amin); Writeln (Badu = , Badu); END; BEGIN ClrScr; Amin := 20; Badu := 25; Writeln (Sebelum Tukar:); Writeln (Amin = , Amin); Writeln (Badu = , Badu); Writeln; Tukar (Amin,Badu); Writeln (Sesudah Tukar:); Writeln (Amin = , Amin); Writeln (Badu = , Badu); Writeln

Redln END.

Hasil Program:
Sebelum Tukar: Amin = 20 Badu = 25 Pada Tukar: Amin = 25 Badu = 20 Sesudah Tukar: Amin = 20 Badu = 25

82

Dari hasil di atas terlihat bahwa nilai Amin dan Badu tidak tertukar setelah pemanggilan procedure Tukar. Untuk melakukan perubahan nilai pada parameter dari dalam fungsi atau prosedur, parameter harus dilewatkan secara referensi atau variabel. Caranya sangat mudah. Kita cukup menambahkan kata tercadang VAR di depan nama parameter di dalam deklarasi prosedur atau fungsi. Deklarasi judul prosedur Tukar pada program dapat kita ubah menjadi:
PROCEDURE Tukar (VAR Amin:Integer;Var Badu: Integer);

Berikut ini merupakan hasil modifikasi dari program sebelumnya:


Uses CRT; Var

Amin,Badu : Integer; PROCEDURE Tukar(VAR Amin: Integer; VAR Badu : Integer); Var Tmp : Integer; BEGIN Tmp := Amin; Amin:= Badu; Badu:= Tmp; Writeln (Pada Tukar:); Writeln (Amin = , Amin); Writeln (Badu = , Badu); END; BEGIN ClrScr; Amin := 20; Badu := 25; 83

Writeln (Sebelum Tukar:); Writeln (Amin = , Amin); Writeln (Badu = , Badu); Writeln; Tukar (Amin,Badu); Writeln (Sesudah Tukar:); Writeln (Amin = , Amin); Writeln (Badu = , Badu); Writeln

END.

Redln

Hasil Program:
Sebelum Tukar: Amin = 20 Badu = 25 Pada Tukar: Amin = 25 Badu = 20 Sesudah Tukar: Amin = 25 Badu = 20

84

6.7

Sub Program didekalarasikan sebelum yang memanggil Satu hal penting untuk diketahui sehubungan dengan pendeklarasian subprogram adalah fakta bahwa suatu subprogram harus dideklarasikan sebelum yang memanggilnya. berikut: PROCEDURE P1 Begin . End; PROCEDURE P2 Begin . End; BEGIN . END Pada contoh ini, prosedur P2 dapat memanggil prosedur P1 (karena P1 dideklarasikan sebelum P2). Tapi p1 tidak dapat memanggil P2. Adapun P1 maupun P2 dapat dipanggul pada program utama. Tinjaulah bentuk pendeklarasian

6.8

Sub Program boleh mengandung sub program yang lain


85

Turbo Pascal memperkenalkan suatu fungsi atau prosedur didekalarasikan di dalam fungsi atau prosdure yang lain. Pada keadaan seperti ini, fungsi yang didekalarasikan di dalam fungsi lain hanya bisa diakses oleh fungsi yang mendeklarasikan saja. Contoh:
USES Crt; Procedure OrangTua; Procedure Anak; Begin Writeln (Prosedur Anak dijalankan..); End; Begin Writeln (Prosedur Orang Tua dijalankan.); Anak End; Begin ClrScr; OrangTua; Writeln (Selesai); Readln End.

6.9

Rekursi

86

Suatu fungsi yang memanggil fungsi lain kiranya hal yang biasa. Tetapi suatu fungsi yang memanggil dirinya sendiri, barangkali asing bagi kita, khusunya kalau kita belum pernah memakai cara ini pada pemrograman yang lain. Teknik yang memanggil dirinya sendiri baik pada prosedur maupun fungsi, dikenal dengan sebutan rekursi. Teknik ini banyak dipakai pada masalah tertentu misalnya pada struktur data bernama pohon biner. Sebuah contoh rekursi, yaitu untuk mendapatkan nilai factorial. Seperti diketahui suatu faktoreial m! didefinisikan sebagai berikut: 1 Jika m = 0 1 x 2 x m jika m > 0 Secara recursive persoalan diatas dijabarkan sebagai berikut: 1. 0! = m

87

2. (m-1)!

Bila m > 0 , m! = m x

Kondisi 1 merupakan penghenti rekursi. Kondisi 2 menggambarkan proses rekursi. Langakh di atas dapat dituangkan menjadi:
FUNCTION Faktorial (M: Integer) LongInt; Begin IF M = 0 THEN Faktorial : = 1 ELSE Faktorial : = M * Faktorial (M-1); End; Begin ClrScr For Pencancah : = 1 to 5 do Writeln (Pencacah, ! = , Faktorial (Pencacah)); Readln End.

88

Anda mungkin juga menyukai