bab ii

30
 BAB II TINJAUAN PUSTAKA Konsep pemrograman komputer menjadi sangat penting bagi setiap orang yang berkecimpung dengan dunia k omputer dan tidak hanya yang berhubung an dengan informatika , tetapi hampir setiap disiplin ilmu memerlukannya. Untuk itu di si ni akan sedi ki t di bahas mengenai bagi an-bagian bahasa pemr ograman  procedural dengan bahasa Pascal . Bahasa pemrograman  procedural merupakan  ba hasa pemrograman yang meliba tka n fun gsi-fungs i ata u pro sedur- pro sed ur sebagai sub program untuk membentuk solusi dari suatu permasalahan. Berbeda halnya dengan bahasa pemrograman yang berorientasi obyek, yang menggunakan  pendekatan obyek dalam menyelesaikan suatu persoalan. Ko ns ep pe mr og rama n terstr uk tur me me ga ng pe ran pe nt in g da la m merancang, menyus un, meme li hara dan mengembangkan su at u program, khususnya program aplikasi yang besar dan kompleks. Sebelum masuk lebi h dalam mengenai strukt ur dalam pemrograman  procedural , kit a aka n membah as men gen ai langka h-la ngk ah sis tematis dal am  pembuatan suatu program, sebagai berikut: 1. Mendefinisikan permasalahan 2. Membuat rumusan untuk pemecahan masalah 3. Implementasi 4. Menguji coba dan membuat dokumentasi 1. Mendefi nisi kan Permasalahan Yang dimaks ud mendef ini sik an per mas ala han yai tu kit a har us menger ti dengan baik mengenai permasalahan apa yang ingin diselesaikan. Contoh: a. Permas al ah an men gh it un g ga ji ka ry awan, den ga n data ya ng diketahui adalah jam kerja maksimum.  b. Permas alah an menamp ilka n bila nga n terbesa r dari N buah bi langan  beserta berapa kali bilangan tersebut. c. Permasalahan me ngkonversikan ni lai cek da ri be nt uk angka ke  bentuk terbilang dalam Bahasa Inggris. 5

Upload: dion-adi-putra

Post on 09-Jul-2015

120 views

Category:

Documents


0 download

TRANSCRIPT

5/10/2018 BAB II - slidepdf.com

http://slidepdf.com/reader/full/bab-ii-55a0bae2ee361 1/30

BAB II

TINJAUAN PUSTAKA

Konsep pemrograman komputer menjadi sangat penting bagi setiap orang

yang berkecimpung dengan dunia komputer dan tidak hanya yang berhubungan

dengan informatika, tetapi hampir setiap disiplin ilmu memerlukannya. Untuk itu

disini akan sedikit dibahas mengenai bagian-bagian bahasa pemrograman

 procedural dengan bahasa Pascal . Bahasa pemrograman  procedural merupakan

  bahasa pemrograman yang melibatkan fungsi-fungsi atau prosedur-prosedur 

sebagai sub program untuk membentuk solusi dari suatu permasalahan. Berbeda

halnya dengan bahasa pemrograman yang berorientasi obyek, yang menggunakan

 pendekatan obyek dalam menyelesaikan suatu persoalan.

Konsep pemrograman terstruktur memegang peran penting dalam

merancang, menyusun, memelihara dan mengembangkan suatu program,

khususnya program aplikasi yang besar dan kompleks.

Sebelum masuk lebih dalam mengenai struktur dalam pemrograman

 procedural , kita akan membahas mengenai langkah-langkah sistematis dalam

 pembuatan suatu program, sebagai berikut:

1. Mendefinisikan permasalahan

2. Membuat rumusan untuk pemecahan masalah

3. Implementasi

4. Menguji coba dan membuat dokumentasi

1. Mendefinisikan Permasalahan

Yang dimaksud mendefinisikan permasalahan yaitu kita harus mengerti

dengan baik mengenai permasalahan apa yang ingin diselesaikan. Contoh:

a. Permasalahan menghitung gaji karyawan, dengan data yang

diketahui adalah jam kerja maksimum.

 b. Permasalahan menampilkan bilangan terbesar dari N buah bilangan

 beserta berapa kali bilangan tersebut.

c. Permasalahan mengkonversikan nilai cek dari bentuk angka ke

 bentuk terbilang dalam Bahasa Inggris.

5

5/10/2018 BAB II - slidepdf.com

http://slidepdf.com/reader/full/bab-ii-55a0bae2ee361 2/30

d. Permasalahan mengkonversikan nilai suhu asal ke tujuan sesuai

dengan keinginan.

2. Membuat Rumusan untuk Pemecahan Masalah

Setelah kita mengetahui dengan baik mengenai permasalahan yang ingin

diselesaikan, langkah selanjutnya yaitu membuat rumusan algoritma untuk 

memecahkan masalah. Rumusan tersebut dapat disusun dalam bentuk  pseudocode

ataupun flowchart .

3. Implementasi 

Apabila langkah 1 dan 2 belum melibatkan bahasa pemrograman, maka

langkah ketiga ini telah mulai melibatkan bahasa pemrograman yang ingin

digunakan. Di dalam mengimplementasi algoritma kita akan menentukan bahasa

 pemrograman apa yang cocok atau ingin kita gunakan.

Misalnya  Pascal atau  Delphi,  Basic, dan sebagainya. Implementasi tersebut

tentunya mengacu pada algoritma yang telah disusun pada langkah sebelumnya,

 baik itu variable-variable yang digunakan maupun alur program. Jika program

diimplementasikan dengan bahasa pemrograman yang bersifat visual  dan event 

driven (melibatkan desain form dan event-event) seperti Visual Basic atau Delphi,

maka perlu pula diperhatikan langkah-langkah berikut:

1. Menambahkan obyek-obyek control pada Form seperti  EditBox,

ComboBox, Button, dll

2. Mengatur posisi control, properties kontrol (seperti caption, warna,

 jenis tulisan, dan sebagainya), serta urutan fokus obyek-obyek yang ada

 pada form.

3. Pemberian nama obyek kontrol yang sesuai. Misalnya untuk input

diameter diberi nama txtDiameter.

4. Menentukan event-event kontrol yang berpengaruh pada fungsionalitas

 program

5. Mulai coding 

6

5/10/2018 BAB II - slidepdf.com

http://slidepdf.com/reader/full/bab-ii-55a0bae2ee361 3/30

4. Menguji Coba dan Membuat Dokumentasi.

Setelah selesai implementasi, langkah selanjutnya yaitu menguji program

tersebut apakah telah berjalan sesuai dengan tujuannya untuk memberi solusi dari

suatu permasalahan. Apabila program belum berjalan dengan baik, maka kita

 perlu mengkaji kembali rumusan/algoritma yang telah dibuat pada langkah kedua,

serta memperbaiki implementasi program yang mungkin keliru.

Untuk memudahkan dalam memeriksa kesalahan suatu program ataupun

memahami jalannya program, kita juga perlu membuat dokumentasi dari program

yang dibuat. Dokumentasi tersebut berisi informasi mulai dari tujuan/fungsi

 program, algoritma program, hingga cara menggunakannya.

Struktur Bahasa Program Procedural 

Secara umum, bahasa pemrograman yang berbasiskan  prosedur  terdiri dari

 blok/sub program. Yang memiliki dua bagian utama yaitu:

1. Bagian Deklarasi

2. Bagian Statement 

Bagian Deklarasi 

Bagian deklarasi merupakan bagian program untuk mendefinisikan tipe data

suatu variable, konstanta, serta fungsi dan  prosedur yang akan digunakan pada

 program. Selain itu, bagian deklarasi dapat juga digunakan untuk memberi nilai

awal suatu variable. Dengan kata lain, deklarasi digunakan untuk 

memperkenalkan suatu nama kepada Compiler program. Berikut contoh

deklarasi:

a. Deklarasi Variable: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.

Suatu identifier  harus diawali oleh karakter bukan angka, tetapi tidak boleh

mengandung karakter khusus seperti * , - + / \ = < > . ? & dan sebagainya. Pada

 bahasa Pascal, identifier  tidak bersifat case sensitive, maksudnya, huruf besar 

ataupun huruf kecil dianggap sama.Variabel 

adalah suatu lokasi di memori yang

7

5/10/2018 BAB II - slidepdf.com

http://slidepdf.com/reader/full/bab-ii-55a0bae2ee361 4/30

disiapkan oleh programmer dan diberi nama yang khas untuk menampung suatu

nilai dan atau mengambil kembali nilai tersebut.

Bentuk umum:

Kode 2.1 Deklarasi varibel 

 b. Deklarasi Konstanta pada Pascal

 Konstanta jika dalam membuat suatu program anda sering menggunakan

 bilangan numerik atau suatu kalimat  string yang sama berkali-kali, ada baiknya

anda menjadikan bilangan atau kalimat tersebut sebagai suatu konstanta.Manfaat konstanta adalah penggunaan konstanta akan membuat program

anda menjadi lebih mudah dimengerti dan diperbaiki. Dengan menggunakan

konstanta, anda akan dapat memberikan nama yang mudah dipahami untuk suatu

 bilangan numerik  yang kompleks. Tentunya anda akan lebih mudah menulis pi,

daripada harus menuliskan 3.1415926536 berkali-kali pada program anda. Dan

  jika ingin mengganti nilai pi tersebut dengan 3.14, maka anda hanya perlu

menggantinya sekali saja, yaitu pada bagian deklarasi dari konstanta tersebut.

Deklarasi Konstanta 

 Konstanta dideklarasikan pada awal program sebelum blok  begin-end 

  program utama dituliskan. Untuk mendeklarasikan konstanta harus diawali

dengan kata baku const .

8

 var

Nama_variabel_1,Nama_variabel_2,…Nama_variabel_N : tipe_data_1;

Atau

 var

Nama_variabel_1, Nama_variabel_2,Nama_variabel_N : tipe_data_1;

5/10/2018 BAB II - slidepdf.com

http://slidepdf.com/reader/full/bab-ii-55a0bae2ee361 5/30

Bentuk Umum

Kode 2.2 Deklarasi konstanta

Ada baiknya jika anda menuliskan kata baku const  pada baris yang terpisah

dengan nama konstanta-nya. Meskipun tidak salah jika anda menuliskannya

dalam satu baris seperti berikut ini. Namun, anda bebas memilih gaya penulisan

mana yang lebih anda sukai. Sesuai dengan namanya “konstanta”, maka nilai

dalam konstanta tersebut akan selalu konstant (tetap). Anda tidak dapat mengganti

konstanta pada saat program sedang dijalankan.

i Konstanta bertipe

 Konstanta bertipe adalah konstanta yang dideklarasikan dengan tipe tertentu.

Bentuk umum:

Kode 2.3 Deklarasi konstanta bertipe

const   phi = 3.14; Penjelasan:

 Konstanta yaitu nilai yang tetap. Jadi jika mengacu pada contoh di atas, maka

nilai phi tidak dapat diubah-ubah dan akan selalu 3.14

9

Const

Konstanta_1 = nilai_konstanta_1;

Konstanta_2 = nilai_konstanta_2;

Konstanta_3 = nilai_konstanta_3;

Konstanta_N = nilai_konstanta_N;

Const

konstanta_1 : tipe_1 = nilai_konstanta_1;

konstanta_2 : tipe_2 = nilai_konstanta_2;

konstanta_N : tipe_N = nilai_konstanta_N;

5/10/2018 BAB II - slidepdf.com

http://slidepdf.com/reader/full/bab-ii-55a0bae2ee361 6/30

c. Deklarasi Tipe Data Pascal  

Tipe Data dapat dikelompokkan menjadi:

Tipe Data Sederhana

 Pascal telah menyediakan beberapa tipe data sederhana yang sudah siap anda

 pakai. Pada saat mendeklarasikan sebuah Variabel  anda secara otomatis harus

mendeklarasikan tipe data yang dapat ditampung oleh Variabel tersebut.

Tipe-tipe data sederhana yang telah disiapkan oleh pascal adalah sebagai berikut

a. integer 

b. boolean

c. real 

d. char 

e. string 

 Integer 

Tipe data integer  adalah tipe data yang nilainya merupakan bilangan bulat.

Tipe data integer terbagi atas beberapa macam.

Tabel 2.1 Tipe Data Integer 

Type Range Ukuran dalam byte Format

ShortInt -128 .. 127 1 Signed 8-bit

Integer -32768 .. 32767 2 Signed 16-bit

LongInt -2147483648..214783647 4 Signed 32-bit

Byte 0..255 1 unsigned 8-bit

Word 0..65535 2 Signed 16-bit

 Boolean

Tipe data boolean biasa digunakan untuk merepresentasikan logika. tipe data

 boolean hanya dapat bernilai true (1) atau false (0). Beberapa macam tipe data

 boolean dirangkum pada tabel di bawah ini.Tabel 2.2 Tipe Data Boolean

Type Range Ukuran dalam byte

Boolean Byte-sized 1 (8-bit)

ByteBool Byte-sized 1 (8-bit)

WordBool Word-sized 2 (16-bit)

LongBool LongInt-sized 4 (32-bit)

Tipe data ByteBool , WordBool , dan LongBool biasa dipakai dalam pembuatan

 program untuk windows. Untuk program  Dos pada umumnya menggunakan tipe

10

5/10/2018 BAB II - slidepdf.com

http://slidepdf.com/reader/full/bab-ii-55a0bae2ee361 7/30

 Boolean.Dalam suatu ekspresi, operator-operator seperti =, <>, >, <, >=, <= dan

Ini akan banyak dipakai untuk menentukan hasil dari suatu tipe data boolean.

 Real/Floating point 

Tipe data real biasa digunakan untuk merepresentasikan nilai pecahan. Tipe

data real  ini juga tersedia atas beberapa macam yang berbeda dalam range dan

 besar memori yang disediakan. Jenis-jenis tipe real tersebut dirincikan pada tabel

di bawah ini.

Tabel 2.3 Tipe Data Real 

Type Range Ukuran Digit

Real ± 2.9x10-39 .. 1.7x1038 6 11-12

Single ± 1.5x10-45

.. 3.4x1038

4 7-8Double ± 5x10-324 .. 1.7x10308 8 15-16

Extended ± 3.4x10-4932 .. 1.1x104932 10 19-20

Comp -9.2x1018 .. 9.2x1018 8 19-20

Ada baiknya jika anda menentukan berapa banyak karakter dalam tipe string

tersebut dibutuhkan. Hal ini berhubungan dengan jumlah memori yang

dialokasikan. Seperti pada contoh di atas Variabel nama mengalokasikan tempat

sebanyak 25 karakter, dan berarti memori yang dialokasikan sebesar 25 byte.

Akan sia-sia jika anda menuliskan secara default (256 karakter) karena jarang

sekali bahkan mungkin tidak ada seseorang yang memiliki nama dengan panjang

256 karakter.

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

1. Tipe Data Enumerasi

Adalah tipe data baru yang elemennya anda sebutkan satu per satu.

Bentuk umum :

Type

11

<NamaType> = (elemen_1, elemen_2, …, elemen_N);

5/10/2018 BAB II - slidepdf.com

http://slidepdf.com/reader/full/bab-ii-55a0bae2ee361 8/30

Kode 2.4 Bentuk umum data Enumerasi

2. Tipe Data terstruktur 

Tipe data terstruktur merupakan tipe data yang terdiri dari 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).

3. 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.

d. Deklarasi Procedure/Function:

Pascal yang menyertakan reserved word  procedure  dan  function  untuk 

membedakan antara keduanya. Sebenarnya, perbedaan utama antara prosedur dan

fungsi yaitu  prosedur  adalah fungsi yang tidak mengembalikan suatu nilai.

Sebaliknya fungsi adalah suatu prosedur yang mengembalikan nilai  procedure

  pada dasarnya adalah  function yang mengembalikan void   alias tidak 

mengembalikan nilai apa-apa. Procedure dan  Function disebut juga  subroutine, merupakan blok statement

yang dapat dipanggil dari lokasi yang berbeda di dalam program. Yang

membedakan antara  function dan  procedure yaitu suatu  function jika

dijalankan/dipanggil akan mengembalikan suatu nilai. Pada   Bahasa C , semua

 subroutine adalah  function. Apabila kita ingin membuat  subroutine yang tidak 

mengembalikan nilai, kita dapat memberi nilai kembalian berupa void . Ketika

 procedure atau  function dipanggil, kita dapat melewatkan suatu nilai ke dalam

 function atau  procedure tersebut. Nilai yang dilewatkan disebut juga argument

atau parameter . Ada dua cara melewatkan nilai, yaitu:

1. Passing by Value (Dilewatkan secara nilai)

Jika di dalam  procedure atau  function dilakukan perubahan nilai,

 parameter  yang dilewatkan secara nilai, maka nilai  parameter yang sebenarnya

12

5/10/2018 BAB II - slidepdf.com

http://slidepdf.com/reader/full/bab-ii-55a0bae2ee361 9/30

tidak ikut berubah, hal ini dikarenakan parameter yang dilewatkan secara nilai

akan dicopy sebagai nilai local di procedure/function yang bersangkutan

2. Passing by Reference

Jika di dalam procedure atau function dilakukan perubahan nilai parameter 

yang dilewatkan secara reference, maka nilai  parameter  yang sebenarnya juga

akan berubah.

Bagian Statement

Bagian statement merupakan bagian program yang berisi perintah yang

akan dieksekusi/dijalankan. Pada bahasa  Pascal , bagian statement selalu diawali

dengan reserved word begin dan end . Apabila blok statement adalah blok utama

 program, maka reserved word end  harus diakhiri dengan tanda titik(.), sebaliknya

 jika blok statement bukan blok utama program maka reserved word end  diakhiri

dengan tanda titik koma (;).statement diawali dan diakhiri dengan tanda kurung

kurawal { dan }.

 Pascal  adalah suatu bahasa pemrograman terstruktur yang cukup terkenal

sampai saat ini dan terus mengalami perkembangan.  Borland Delphi adalah

merupakan perkembangan lanjut dari  pascal . Ada baiknya jika anda mengenal

 bahasa  pascal  sebelumnya agar lebih mudah mempelajari delphi nantinya,

terutama dalam membuat unit-unit dalam delphi. Dalam mata kuliah ini dijelaskan

mengenai cara-cara pembutan dan penulisan program dengan menggunakan

 bahasa  pascal  beserta pembuatan dan penulisan struktur data baik dengan array

maupun dengan linked list . Selain itu mata kuliah ini dapat membantu

mengembangkan dan melatih logika anda untuk menjadi lebih kreatif dalam

membuat program. Pemrograman terstruktur digunakan untuk menghindari

instruksi peralihan proses tanpa syarat tertentu (GOTO) dalam pembuatan segala

 bentuk program karena akan menjadikan program tidak terstruktur dengan baik.

 Namun demikian penerapan ini tidak semata-mata hanya untuk menghindari

 penggunaan instruksi GOTO, tetapi untuk menciptakan program yang terstruktur 

dan sistimatis.

Istilah-istilah dasar

Beberapa istilah dasar yang perlu dipahami lebih dahulu, yaitu:

13

5/10/2018 BAB II - slidepdf.com

http://slidepdf.com/reader/full/bab-ii-55a0bae2ee361 10/30

a. Program adalah kata, ekspresi, pernyataan atau kombinasinya yang disusun

dan dirangkai menjadi satu kesatuan prosedur yang berupa urutan langkah

untuk menyelesaikan masalah yang diimplementasikan dengan menggunakan

 bahasa pemrograman sehingga dapat dieksekusi oleh komputer.

 b. Bahasa Pemrograman merupakan prosedur /tata cara penulisan program.

Pada bahasa pemrograman terdapat dua faktor penting, yaitu  sintaks dan

semantik. Sintaks adalah aturan-aturan gramatikal yang mengatur tata cara

 penulisan kata, ekspresi dan pernyataan, sedangkan sematik adalah aturan-

aturan untuk menyatakan suatu arti.

c. Pemrograman merupakan proses mengimplementasikan urutan langkah untuk 

menyelesaikan suatu masalah dengan menggunakan suatu bahasa

 pemrograman.

d. Pemrograman terstruktur   merupakan proses mengimplementasikan urutan

langkah untuk menyelesaikan suatu masalah dalam bentuk program yang

memiliki rancang bangun yang terstruktur dan tidak berbelit-belit sehingga

mudah ditelusuri, dipahami dan dikembangkan oleh siapa saja.

Ciri Teknik Pemrograman Terstruktur 

Teknik pemrograman terstruktur memiliki ciri atau karakteristik sebgai

 berikut:

a. Mengandung algoritma pemecahan masalah yang tepat, benar, sederhana,

standar dan efektif.

  b. Memiliki struktur logika dan struktur program yang benar dan mudah

dipahami serta menghindari penggunaan instruksi GOTO.

c. Membutuhkan biaya testing, pemiliharaan dan pengembangan yang rendah.

d. Memiliki dokumentasi yang baik.

Sruktur Program Pascal

Sebuah program Pascal yang lengkap adalah terdiri dari :

a. Kepala program

Kepala program selalu diawali dengan kata tercadang program dan diikuti

dengan nama program dan diikuti dengan tanda titik koma. Dalam sebuah

 program, kepala program bersifat opsinal yang artinya tidak harus ada. Tetapi

14

5/10/2018 BAB II - slidepdf.com

http://slidepdf.com/reader/full/bab-ii-55a0bae2ee361 11/30

dalam setiap program sebaiknya diberikan sebuah nama untuk lebih mudah

dikenali maksud dari pembuatan program tersebut.

 b. Bagian deklarasi

Bagian deklarasi dapat terdiri dari sejumlah bagian yaitu :

- Bagian deklarasi label

- Bagian deklarasi konstanta

- Bagian deklarasi tipe

- Bagian deklarasi Variabel 

- Bagian deklarasi sub program

Semua bagian diatas dapat dideklarasikan secara bebas tanpa harus

mengurutkannya, yang penting sebelum mengunakannya harus sudah

dideklarasikan terlebih dahulu, kecuali bagian Variabel tidak boleh dideklaresikan

sebelum tipe mengingat tipe akan digunakan oleh bagian Variabel .

c. Bagian Pernyataan

Bagian pernyataan dari suatu program selalu diawali dengan kata

tercadang Begin dan diakhiri dengan kata End seperti berikut : 

BeginPernyataan;

Pernyataan;End.

Kode Program 2.5 Bagian Utama dari Sebuah Program Pascal

Pendeklarasian Variabel 

Variabel  adalah suatu tempat yang dipesan dengan nama tertentu yang

digunakan untuk menampung suatu data pada program. Variabel  ada yang

termasuk  variabel global  dan ada juga yang termasuk  variabel lokal . Variabel 

 global  dapat diakses secara global dalam sebuah program sedangkan variabel 

lokal  hanya bisa diakses oleh suatu fungsi atau prosedur yang

mendeklarasikannya. Penamaan variabel memiliki aturan sebagai berikut ;

a. Diawali dengan huruf, bukan angka, tanda baca ataupun operator 

matematika dan operator logika.

 b. Karakter setelah karakter pertama boleh berupa angka.

c. Tidak boleh menggunakan tanda baca dan spasi.

15

5/10/2018 BAB II - slidepdf.com

http://slidepdf.com/reader/full/bab-ii-55a0bae2ee361 12/30

d. Tidak boleh menggunakan kata tercadang atau reserve word .

e. Panjang maksimal karakter sesuai tergantung dari bahasa

 pemrograman yang digunakan.

f. Penamaan diusahakan sesuai dengan kegunaannya.

g. Dalam beberapa bahasa pemrograman ada yang bersifat  sensitive

case.

Pendeklarasian Variabel  selalu didahului dengan kata var  diikuti oleh

nama_ Variabel , dibelakang nama_varaibel diikuti oleh tanda titik dua (:), tipe

Variabel  dan diakhiri denagan tanda titik koma(;). Contoh pendeklarasian suatu

Variabel :

Kode Program 2.6 Deklarasi Variabel 

 Pengenalan Fungsi

Fungsi bersifat memberikan nilai atau hasil dari fungsi tersebut setiap kali

fungsi tersebut dipanggil. Suatu fungsi umumnya mempunyai  parameter  yang

ditulis dalam tanda ( ), tetapi suatu fungsi dapat saja tidak memiliki  parameter 

yaitu fungsi yang memang sudah disediakan oleh bahasa pemrograman yang

digunakan.

Daftar   parameter  dapat terdiri dari sejumlah  parameter . Tipe pada

 parameter  menyatakan tipe dari masing-masing  parameter  dan tipe fungsi

menyatakan tipe dari hasil fungsi. Contoh pendeklarasian suatu fungsi :

Function konversi(c:real;f:real):real;Begin

PernyataanEnd;

Kode Program 2.7 Contoh Deklarasi Sebuah Fungsi

Contoh penggunaan fungsi dalam program :

16

Var HargaSatuan,HargaTotal: real;

5/10/2018 BAB II - slidepdf.com

http://slidepdf.com/reader/full/bab-ii-55a0bae2ee361 13/30

Program contoh;Uses wincrt;

Var C,F,hasil : real;

Function konversiC_F(C:real):real;Begin

KonversiC_F:= 9/5 * C + 32;End;

Begin {program utama}Write(‘masukkan nilai C’);Readln(C);Writeln(‘nilai F adalah : ‘,KonversiC_F(C));

End. 

Kode Program 2.8 Contoh Penggunaan Fungsi

Seni Penulisan Program

Dalam penulisan program atau coding , kita boleh saja memilih seni atau

gaya penulisan secara bebas selama tidak menyalahi aturan penulisan program

tersebut, tetapi Program yang baik adalah program yang mudah dipahami dan

mudah diperbaiki bila mana terjadi kesalahan atau ingin mengembangkanya. Jika

kita menulis program tanpa memandang gaya penulisannya, mungkin kita bisa

menghemat memori, tetapi bila kita ingin memperbaikinya tentu kita akan

mengalami kesulitan karena ditulis secara tidak terstruktur.

 Array

 Array adalah struktur data yang terdiri dari beberapa Variabel , yang mana

 bisa diakses dengan komputasi index.  Variabel  yang ada pada array, yang

 biasanya disebut elemen dari array, harus dalam tipe data yang sama, dan tipe

data ini yang disebut tipe elemen dari array yang bersangkutan.

Sebuah array memiliki tingkatan yang menunjukkan jumlah indeks

elemen-element yang terdapat dalam array tersebut. Tingkatan array biasa

disebut dengan dimensi array.  Array tingkat satu disebut array dimensi satu,

sedangkan array dengan tingkatan lebih dari satu disebut array multi dimensi.

Dalam bahasa pascal, array dideklarasikan secara statis, yang mana

 programer harus menentukan deklarasi dan dimensi dari array tersebut pada saat

  pembuatan program, bukan pada saat program tersebut berjalan ( Run-Time).

 Indeks array dalam bahasa pascal bisa ditentukan sendiri oleh programer.

17

5/10/2018 BAB II - slidepdf.com

http://slidepdf.com/reader/full/bab-ii-55a0bae2ee361 14/30

Syntak pendeklarasian array dalam bahasa pascal adalah

Kode Program 2.9 Deklarasi array

Statemen Kontrol Lanjutan

Dalam bahasan pascal perulangan ada tiga yaitu  For , While dan  Repeat ,

ketiga perulangan tersebut mempunyai karakteristik, dan penerapan yang berbeda

 beda.

a. For  

 For  digunakan untuk melakukan proses perulangan, yang mana jumlah

 proses perulangan tersebut sudah diketahui dengan pasti. Perulangan For biasanya

dipakai untuk operasi yang ada hubungannya dengan indexing array.

 Flowchart dari perulangan for adalah sebagai berikut.

Mulai

I ≤ 10

I ← 1

Proses yangakan diulang

Selesai

Ya

Tidak

I ← I + 1

Gambar 2.1 Flowchart Statemen For 

Contoh sintak statemen For :

18

NamaArray : array [indexAwal..indexAkhir] of TipeData

5/10/2018 BAB II - slidepdf.com

http://slidepdf.com/reader/full/bab-ii-55a0bae2ee361 15/30

For I := 1 To 10 DoBegin

{Statemen yang akan diulang}End;

Kode Program 2.10 Contoh Sintak Statemen For 

Dari contoh diatas dapat dilihat bahwa akan terjadi perulangan sebanya 10

kali yaitu dari 1 sampai dengan 10.

b. While..Do

While digunakan untuk melakukan perulangan, yang mana perulangan

tersebut akan terus bekerja selama syarat perulangan masih terpenuhi. Pengecekan

syarat terjadi pada awal perulangan, sehingga mungkin saja tidak terjadi

 perulangan. Flowchart  perulangan While sama dengan flowchart perulangan For .

Mulai

I ≤ 10

I ← 1

Proses yangakan diulang

Selesai

Ya

Tidak

I ← I + 1

Gambar 2.2 Flowchart Perulangan While

Contoh penggunaan Statemen While

19

5/10/2018 BAB II - slidepdf.com

http://slidepdf.com/reader/full/bab-ii-55a0bae2ee361 16/30

I := 1;While I <= 10 DoBegin

Statement yang diulangI := I + 1;

End;

Kode Program 2.11 Contoh Sintak Statemen While

Dari contoh diatas dapat dilihat bahwa akan terjadi perulangan sebanya 10

kali yaitu dari 1 sampai dengan 10.

c. Repeat..Until  

 Repeat  sama halnya dengan While digunakan untuk melakukan perulangan

dengan syarat tertentu, tetapi disini perulangan akan berhenti jika syarat

  perulangan sudah terpenuhi. Disamping itu pengecekan syarat perulangan

dilakukan dibagian bawah perulangan. Sehingga paling tidak akan terjadi satu kali

 proses. Flowchart statement while adalah sebagai berikut.

Mulai

I ← 0

Proses yangakan diulang

Tidak

I ← I + 1

I = 10 SelesaiYa

Gambar 2.3 Flowchart Perulangan Repeat Until 

Contoh penggunaan Statemen Repeat Until 

20

5/10/2018 BAB II - slidepdf.com

http://slidepdf.com/reader/full/bab-ii-55a0bae2ee361 17/30

I := 1;Repeat

Statement yang diulangI := I + 1;

Until I = 10;

Kode Program 2.12 Contoh Sintak Statemen Repeat Until 

Membangkitkan Bilangan Acak 

Untuk mendukung pembangkitan bilangan acak, Turbo Pascal menyediakan :

• Pernyataan Randomize

• Fungsi Random

• Variabel Randseed 

Fungsi random berguna untuk memperoleh sebuah bilangan acak. Pernyataan

 Randomize dipakai untuk memberi nilai awal untuk pembangkitan bilangan acak 

  berdasarkan jam sistem. Dengan menggunakan prosedur  ini akan diperoleh

  bilangan acak yang benar-benar acak untuk setiap waktu. Sedangkan untuk 

memperoleh bilangan acak yang setiap saat dijalankan akan memberikan nilai

yang sama, kita biasa mengatur melalui Variabel    Randeed . Adapun contoh

 pembangkitan blangan acak dapat kita lihat pada program di bawah ini :

a. Dengan Randseed 

Kode Program 2.13 Contoh Sintak bilangan acak dengan Randseed 

Jika program diatas di-run, maka outputnya adalah sebagai berikut :

21

PROGRAM Acak ;{ -----------------------------}{ Pembangkitan Bilangan Acak }{ -----------------------------}

USES WinCrt;BEGIN

Clrscr ;Randseed := 6 ;WriteLn (Random) ;WriteLn (Random) ;WriteLn (Random) ;Write (‘Tekan Enter’) ;ReadLn ;

END.

5/10/2018 BAB II - slidepdf.com

http://slidepdf.com/reader/full/bab-ii-55a0bae2ee361 18/30

Gambar 2.4 Hasil Run Program Randseed 1

Jika program tersebut di-run sekali lagi, maka akan didapatkan output sebagai

 berikut :

Gambar 2.5 Hasil Run Program Randseed 2

Dari hasil diatas dapat disimpulkan bahwa pembangkitan bilangan acak 

dengan menggunakan Randseed akan menghasilkan hasil yang selalu sama.

  b. Dengan Randomize

Kode Program 2.14 Contoh Sintak bilangan acak dengan Randomize

Jika program diatas di-run, maka outputnya adalah sebagai berikut :

22

PROGRAM Acak ;{ ------------------------------}{ Pembangkitan Bilangan Acak }{ ------------------------------}

USES WinCrt;BEGIN

Clrscr ;Randomize ;WriteLn (Random) ;WriteLn (Random) ;WriteLn (Random) ;Write (‘Tekan Enter’) ;readLn ;

END.

5/10/2018 BAB II - slidepdf.com

http://slidepdf.com/reader/full/bab-ii-55a0bae2ee361 19/30

Gambar 2.6 Hasil Run Program Randomize 1

Jika program tersebut di-run sekali lagi, maka akan didapatkan output sebagai

 berikut :

Gambar 2.7 Hasil Run Program Randomize 2

Dari hasil diatas dapat disimpulkan bahwa pembangkitan bilangan acak 

dengan menggunakan  Randomize akan menghasilkan hasil yang berbeda-

 beda setiap saat di- Run.

 Sorting atau pengurutan

Adalah proses pengaturan sekumpulan objek menurut urutan atau susunan

tertentu. Urutan objek tersebut dapat menaik (ascending ) atau menurun

(descending ). Bila n buah objek (atau data) disimpan di dalam larik L, maka

 pengurutan menaik berarti menyusun elemen larik sedemikian sehingga :L [1] ≤ L [2] ≤ L [3] ≤……≤ L [n]

Sedangkan pengurutan menurun berarti menyusun elemen larik sedemikian

sehingga :

L [1] ≥ L [2] ≥ L [3] ≥……≥ L [n]

Data yang diurut dapat berupa data bertipe dasar atau tipe terstruktur (record ).

Jika data bertipe terstruktur, maka harus dispesifikasikan berdasarkan  field  apa

23

5/10/2018 BAB II - slidepdf.com

http://slidepdf.com/reader/full/bab-ii-55a0bae2ee361 20/30

data tersebut diurutkan. Field yang dijadikan dasar pengurutan dikenal sebagai

 field kunci.

Berikut ini adalah beberapa contoh data yang terurut :

• 23, 27, 45, 67, 100, 130, 501

(data bertipe integer terurut menaik)

• 50.27 , 31.009 , 20.3 , 19.0 , -5.2 , -10.9

(data bertipe real terurut menurun)

• ‘Amir’, ‘Badu’, ‘Budi’, ‘Dudi’, ‘Eno’, ‘Rudi’, ‘Zamzami’

(data bertipe string terurut menaik)

 Searching atau pencarian

Adalah menemukan nilai (data) tertentu di dalam sekumpulan data yang

 bertipe sama (baik bertipe dasar atau bertipe bentukan). Aktivitas yang berkaitan

dengan pengolahan data sering didahului dengan proses pencarian. Sebagai

contoh, untuk mengubah (update) keberadaan data tersebut di dalam

kumpulannya. Jika data yang dicari ditemukan, maka data tersebut dapat diubah

nilainya dengan data yang baru. Aktivitas awal yang sama juga dilakukan pada

 proses penambahan (insert ) data baru. Proses penambahan data dimulai dengan

mencari apakah data yang akan ditambahkan sudah terdapat di dalam kumpulan.

Jika sudah ada dan mengasumsikan tidak boleh ada duplikasi data maka data

tersebut tidak perlu ditambahkan, tetapi jika belum ada, maka tambahkan.

a. Pengurutan data dengan metode Insertion Sort 

Dari namanya, pengurutan sisipan (insertion sort ) adalah metode

 pengurutan dengan cara menyisipkan elemen larik pada posisi yang tepat.

Pencarian posisi yang tepat dilakukan dengan penyisiran larik. Selama

 penyisiran dilakukan pergeseran elemen larik. Metode pengurutan sisip untuk 

 persoalan menyisipkan elemen baru ke dalam sekumpulan elemen yang sudah

terurut. Contoh dari penggunaan metode ini adalah sebagai berikut :

Tinjau larik n = 6 buah elemen di bawah ini yang belum terurut. Larik ini akan

diurut menaik dengan metode pengurutan sisipan :

24

5/10/2018 BAB II - slidepdf.com

http://slidepdf.com/reader/full/bab-ii-55a0bae2ee361 21/30

29 217681027

1 2 3 4 5 6

Asumsikan : elemen y = L [1] = 29 sudah terurut

29 217681027

1 2 3 4 5 6

Pass 2 :

(berdasarkan susunan larik pada akhir pass 1)

Cari posisi yang tepat untuk y = L [2] = 27 di dalam l [1..2], diperoleh :

27 217681029

1 2 3 4 5 6

Pass 3 :

(berdasarkan susunan larik ada akhir pass 2)

Cari posisi yang tepat untuk y = L [3] = 10 di dalam L [1..3], diperoleh :

10 217682927

1 2 3 4 5 6

Pass 4 :

(berdasarkan susunan larik ada akhir pass 3)

Cari posisi yang tepat untuk y = L [4] = 8 di dalam L [1..4], diperoleh :

8 2176292710

1 2 3 4 5 6

Pass 5 :

(berdasarkan susunan larik ada akhir pass 4)

Cari posisi yang tepat untuk y = L [5] = 76 di dalam L [1..5], diperoleh :

25

5/10/2018 BAB II - slidepdf.com

http://slidepdf.com/reader/full/bab-ii-55a0bae2ee361 22/30

8 2176292710

1 2 3 4 5 6

Pass 6 :

(berdasarkan susunan larik ada akhir pass 5)

Cari posisi yang tepat untuk y = L [6] = 21 di dalam L [1..6], diperoleh :

8 7629272110

1 2 3 4 5 6

Sehingga pada akhirnya semua elemen-elemen larik tersusun menaik dengan

 benar.

 b. Pengurutan Data dengan Metode Shell Sort 

Metode pengurutan data Shell Sort , dilakukan dengan cara menukarkan data

yang ada dengan rentang indeks berubah-ubah dan menurun. Misalnya kita

memiliki data dengan urutan sebagai berikut. 3, 5, 1, 2, 4. Maka proses

 pengurutan akan berjalan seperti ditunjukkan pada gambar berikut.

Gambar 2.8 Proses pengurutan

Dari gambar dapat dilihat, pertama dilakukan pembandingan antara data yang

mempunyai rentang index 2, kemudian dilakukan pembandingan antara data

yang mempunyai rentang index 1. Sehingga pada akhir Proses akan didapat

data yang diurut dengan benar.

26

5/10/2018 BAB II - slidepdf.com

http://slidepdf.com/reader/full/bab-ii-55a0bae2ee361 23/30

c. Pengurutan Data dengan Metode Bubble Sort

Metode pengurutan apung (bubble short ) diinspirasikan oleh gelembung

sabun yang berada diatas permukaan air. Karena berat jenis gelembung sabun

lebih ringan daripada berat jenis air, maka gelembung sabun selalu terapung ke

atas permukaan. Secara umum, benda-benda yang berat akan terbenam dan

 benda-benda yang ringan akan terapung ke permukaan.

Prinsip pengapungan di atas juga digunakan pada pengurutan apung.

Apabila kita menginginkan larik terurut menaik, maka elemen larik yang

 berharga paling kecil “diapungkan’, artinya diangkat ke “atas’ (atau ke ujung

kiri larik). Melalui proses pertukaran. Proses pengapungan dilakukan sebanyak 

n – 1 langkah (satu kali langkah disebut juga satu kali pass) dengan n adalah

ukuran larik. Pada akhir setiap langkah ke-I, larik L [1..n] akan terdiri atas dua

 bagian yaitu bagian yang sudah terurut, yaitu L [1..i], dan bagian yang belum

terurut, L [i+1..n]. Setelah langkah terakhir, diperoleh larik L [1..n] yang

terurut menaik.

Berikut ini adalah contoh pengurutan larik dengan metode apung :

Tinjau larik n = 6 buah elemen di bawah ini yang belum terurut. Larik ini akan

diurut menaik dengan metode pengurutan sisipan :

25 217681027

1 2 3 4 5 6

← arah pembandingan

Pass 1 :

k Elemen yang dibandingkan Pertukarkan Hasil Sementara

 

k = 6 L [6] < L [5] ? (21 < 76 ?) Ya 25, 27, 10, 8, 21, 76

k = 5 L [5] < L [4] ? (21 < 8 ?) Tidak 25, 27, 10, 8, 21, 76

k = 4 L [4] < L [3] ? (8 < 10 ?) Ya 25, 27, 8, 10, 21, 76

k = 3 L [3] < L [2] ? (8 < 27 ?) Ya 25, 8, 27, 10, 21, 76

27

5/10/2018 BAB II - slidepdf.com

http://slidepdf.com/reader/full/bab-ii-55a0bae2ee361 24/30

k = 2 L [2] < L [1] ? (8 < 25 ?) Ya 8, 25, 27, 10, 21, 76

Hasil akhir pass 1 :

8 7621102725

1 2 3 4 5 6

Pass 2 : (berdasarkan hasil akhir pass 1)

k Elemen yang dibandingkan Pertukarkan Hasil Sementara

 

k = 6 L [6] < L [5] ? (76 < 21 ?) Tidak   8, 25, 27, 10, 21, 76

k = 5 L [5] < L [4] ? (21 < 10 ?) Tidak  8, 25, 27, 10, 21, 76

k = 4 L [4] < L [3] ? (10 < 27 ?) Ya 8, 25, 10, 27, 21, 76

k = 3 L [3] < L [2] ? (10 < 25 ?) Ya 8, 10, 25, 27, 21, 76

Hasil akhir pass 2 :

8 7621272510

1 2 3 4 5 6

Pass 3 : (berdasarkan hasil akhir pass 2)

k Elemen yang dibandingkan Pertukarkan Hasil Sementara

 

k = 6 L [6] < L [5] ? (76 < 21 ?) Tidak   8, 10, 25, 27, 21, 76

k = 5 L [5] < L [4] ? (21 < 27 ?) Ya 8, 10, 25, 21, 27, 76

k = 4 L [4] < L [3] ? (21 < 25 ?) Ya 8, 10, 21, 25, 27, 76

Hasil akhir pass 3 :

8 7627252110

28

5/10/2018 BAB II - slidepdf.com

http://slidepdf.com/reader/full/bab-ii-55a0bae2ee361 25/30

1 2 3 4 5 6

Pass 4 : (berdasarkan hasil akhir pass 3)

k Elemen yang dibandingkan Pertukarkan Hasil Sementara

 

k = 6 L [6] < L [5] ? (76 < 27 ?) Tidak   8, 10, 21, 25, 27, 76

k = 5 L [5] < L [4] ? (27 < 25 ?) Tidak  8, 10, 21, 25, 27, 76

Hasil akhir pass 4 :

8 7627252110

1 2 3 4 5 6

Pass 5 : (berdasarkan hasil akhir pass 4)

k Elemen yang dibandingkan Pertukarkan Hasil Sementara

 

k = 6 L [6] < L [5] ? (76 < 27 ?) Tidak   8, 10, 21, 25, 27, 76

Hasil akhir pass 5 :

8 7627252110

1 2 3 4 5 6

Hasil akhir pass 5 menyisakan satu elemen (yaitu 76) yang tidak perlu

diurutkan, maka pengurutan selesai. Larik L sekarang sudah terurut menaik.

d. Pengurutan Data dengan Metode Merge Sort 

Misalkan kita memiliki dua buah larik, L1 dan L2, yang mesing-masing sudah

terurut menaik. Kita ingin membentuk sebuah larik baru, L3, yang merupakan

29

5/10/2018 BAB II - slidepdf.com

http://slidepdf.com/reader/full/bab-ii-55a0bae2ee361 26/30

gabungan dari dua buah larik tersebut sedemikian sehingga L3 juga terurut

menaik.

Berikut ini adalah contoh pengurutan larik dengan metode apung :

Misalkan elemen-elemen larik L1 dan L2 masing-masing adalah :

Larik L1 : Larik L1 :

1 2413

 

3027152

Penggabungan L1 dan L2 menghasilkan L3 yang tetap terurut menaik :

1 302724152 13

Proses penggabungan dikerjakan dengan cara membandingkan satu elemen

 pada larik L1 dengan satu elemen pada larik L2. Jika elemen pada L1 lebih

kecil dari elemen pada L2, maka salin elemen dari L1 ke L3. Elemen

 berikutnya pada L1 maju satu elemen, sedangkan elemen L2 tetap. Hal yang

sama juga berlaku bila elemen dari L2 lebih kecil dari elemen L1, maka salin

elemen dari L2 ke L3. Larik L2 maju satu elemen, larik L1 tetap. Dengan cara

seperti ini, maka akan ada larik yang lain masih tersisa. Salin seluruh elemen

yang tersisa ke L3.

Penggabungan L1 dan L2 dilaksanakan sebagai berikut :

L1 L2 L3

1 13 2 4

 3 027152

1 < 2 → 11

1 13 2 4

 3 027152

2 < 13 → 21 2

30

5/10/2018 BAB II - slidepdf.com

http://slidepdf.com/reader/full/bab-ii-55a0bae2ee361 27/30

1 13 2 4

 3 027152

13 < 15 → 131 2 1 3

1 13 2 4 

3 02715215 < 24 →15

1 1 52 13

1 13 2 4

 3 027152

24 < 27 → 241 241 52 13

1 13 2 4

 3 027152

27 →1 2 724152 13

1 13 2 4

 3 027152

30 →1 302 72 4152 13

e. Pengurutan Data dengan Metode Quick Sort 

Quick sort  adalah metode pengurutan data yang paling optimal saat ini.

Metode ini membagi data dalam dua bagian yaitu bagian kecil disebelah kiri

dan bagian besar disebelah kanan, kemudian masing-masing bagian tersebut

dibagi lagi sehingga pada akhir proses akan didapat data yang terurut dengan benar. Adapun logika pengurutan lebih lengkap adalah sebagai berikut :

Misalnya terdapat data dengan urutan 3, 2, 1, 4, 5. Maka ditentukan patokan

sebagai data pembanding ( pivot ).  Pivot  bisa ditentukan dimana saja tetapi

untuk mudahnya ditentukan pada data dengan indeks pertama. Selanjutnya

semua data yang lebih kecil dari nilai pivot  ditaruh disebelah kiri  pivot  dan

yang lebih besar dibiarkan disebelah kanan  pivot. Demikian juga selanjutnya

untuk bagian kiri dan bagian kanan dibagi lagi menjadi dua sehingga padaakhir interaksi akan didapat data yang terurut dengan benar. Seperti

ditampilkan berikut :

31

5/10/2018 BAB II - slidepdf.com

http://slidepdf.com/reader/full/bab-ii-55a0bae2ee361 28/30

3 2 1 4 5

32 1

4

4

21 5

5

3

Berikut adalah contoh program untuk prosedur tersebut :

Kode Program 2.15 Contoh program procedure

32

procedure quick(var data : larik; len : integer);var

i, j, pivot : integer;kiri, kanan : larik;ikiri, ikanan : integer;

begin

pivot := data[0];ikiri := 0;ikanan := 0;

for i := 1 to len - 1 dobegin

if data[i] < pivot thenbegin

kiri[ikiri] := data[i];ikiri := ikiri + 1;

endelsebegin

kanan[ikanan] := data[i];ikanan := ikanan + 1;

end;end;if ikiri > 0 then

quick(kiri, ikiri);

if ikanan > 0 thenquick(kanan, ikanan);

{menggabungkan bagian kiri, pivot dan kanan}for j := 0 to ikiri - 1 do

data[j] := kiri[j];

data[ikiri] := pivot;

for j := 0 to ikanan - 1 dodata[j + ikiri + 1] := kanan[j];

end;

5/10/2018 BAB II - slidepdf.com

http://slidepdf.com/reader/full/bab-ii-55a0bae2ee361 29/30

e. Pencarian data dengan metode Sequential Search ( pencarian beruntun).

Pada dasarnya, metode pencarian beruntun adalah proses membandingkan

setiap elemen larik satu per satu secara beruntun, mulai dari elemen

 pertama,sampai elemen yang dicari ditemukan, atau seluruh elemen sudah

diperiksa.

Perhatikan larik L di bawah ini dengan n = 6 elemen :

13 15762116 14

1 2 3 4 5 6

Misalkan nilai yang dicari adalah: x = 21

Elemen yang dibandingkan (berturut-turut): 13, 16, 14, 21 (ditemukan!)

Indeks larik yang dikembalikan:idx = 4

Misalkan nilai yang dicari adalah: x = 13

Elemen yang dibandingkan (berturut-turut): 13 (ditemukan!)

Indeks larik yang dikembalikan:idx = 1

Misalkan nilai yang dicari adalah: x = 15

Elemen yang dibandingkan (berturut-turut): 13, 16, 14, 21, 76, 21 (tidak 

ditemukan!)

Indeks larik yang dikembalikan:idx = -1

g. Pencarian data dengan metode Binary Search (bagi dua).

Metode ini digunakan untuk kebutuhan pencarian dengan waktu yang

cepat. Sebenarnya dalam kehidupan sehari-hari kita sering menerapkan

 pencarian bagi dua. Untuk mencari arti kata tertentu dalam kamus (misalnya

kamus bahasa inggris), kita tidak membuka kamus itu dari halaman awal

sampai halaman akhir satu-persatu, namun kita mencarinya dengan cara

membelah atau membagi dua buku itu. Jika kata yang dicari tidak di halaman

 pertengahan itu, kita mencari lagi di belahan bagian kiri atau belahan bagian

kanan dengan cara membagi dua belahan yang dimaksud. Begitu seterusnya

33

5/10/2018 BAB II - slidepdf.com

http://slidepdf.com/reader/full/bab-ii-55a0bae2ee361 30/30

sampai kata yang dicari ditemukan. Hal ini hanya bisa dilakukan jika kata-kata

didalam kamus sudah terurut.

Prinsip pencarian dengan membagi data atas dua bagian mengilhami

metode pencarian bagi dua. Data yang disimpan di dalam larik harus sudah

terurut. Untuk memudahkan, selanjutnya kita misalkan elemen larik sudah

terurut menurun. Dalam proses pencarian, kita memerlukan dua buah indeks

larik, yatiu indeks terkecil dan indeks terbesar. Kita menyebut indeks terkecil

sebagai indek ujung kiri larik dan indek terbesar sebagai indeks ujung kanan

larik. Istilah “kiri” dan “kanan” dinyatakan dengan membayangkan elemen

larik terentang horisontal.

34