BABI PROSEDUR DAN FUNGSI 1.

1 Pengertian prosedur dan fungsi Prosedur adalah sedereta instruksi algoritmik yang diberi nama, dan akan menghasilkan efek neto yang terdefinisi. Prosedur menyatakan suatu aksi dalam konsep algoritma. Mendefinisikan prosedur berarti menentukan nama prosedur serta parametemya jika ada, dan mendefinisikan keadaan awal (initial state, IS) dan keadaan akhir (final state, FS) dari prosedur tersebut. Secara sederhana, dapat diartikan bahwa sebuah prosedur yang terdefinisi "disimpan" ditempat lain, dan ketika "dipanggil" dengan menyebutkan namanya seakan - akan teks yang tersimpan ditempat lain itu menggantikan teks pemanggilan. Pada saat itu terjadi asosiasi parameter (jika ada). Dengan konsep ini, maka IS dan FS dari prosedurlah yang menjamin bahwa eksekusi program akan menghasilkan efek neto yang diharapkan. Fungsi hampir sarna dengan prosedur, hanya fungsi harus dideklarasikan dengan tipenya. Tipe deklarasi ini menunjukkan tipe hasil dari fungsi. Tipe tersebut ditulis pada akhir deklarasi fungsi yang didahului dengn titik koma, sebagai berikut. 1.2 Contoh Algoritma Prosedur dan Fungsi Contoh Algoritma menggunakan Prosedur : 1: Program Tutoria14 _Prosedur; 2: 3: Procedure Tampil; 4: begin 5: 6: 7: 8: writeln(,Hi ... '); writeln('Apakabar'); end; Begin

9: Tampil; 10: writeln('ini contoh algoritma menggunakan prosedur ... '); 11: End. Baris ke-3 sampai 7 itulah yang disebut prosedur. Program utamanya mulai dari baris ke 8 sampai 11. Pada baris ke 9 prosedur yang kita buat sebelumnya dipanggil dan dieksekusi. Outputnya: Hi ... Apakabar ini contoh algoritma menggunakan prosedur. ..

Craatod wlth

nit!roPDF' professi anal
download the free trial online at nitrcpdf.ecmzprofeesiona I

9)".. Bagaimana jika ditulis "hitung( 4. Perhatikan contoh penggunaan Craatod wlth nit!roPDF' professi anal download the free trial online at nitrcpdf. Baris 3 sampai 7 adalah fungsi. 8: Begin 9: hasil:=hitung(7. Output: Hasil 7+9 sarna dengan 16 ladi..5. Di sana tertulis "hitung(7. 2: var hasil: integer.ecmzprofeesiona I . ada pendeklarasian variabel a dan b dan baris ke 9 itu adalah ketika fungsi hitung dipanggil. 3: Function hitung(a. Tapi perhatikan bentuk fungsinya.6)"? lelas tidak bisa karena dialokasikan hanya 2 variabel. 11: End. b : integer) : integer. 7: end. fungsi di bawah ini: 1: Program Tutoria14 _Fungsi.Hasil 7 + 9 sarna dengan " hasil). Sedangkan fungsi bisa mengembalikan nilai untuk di tampilkan dilayar atau diolah lagi. 10: writeln(. secara otomatis a akan mendapat nilai 7 dan b mendapat 9.9). 4: begin 5: hitung:=a+b.Contoh Algoritma menggunakan Fungsi Selain itu prosedur dan fungsi bisa di taruh variabel lohh.perbedaan antara Prosedur dan fungsi yaitu Prosedur hanya bisa menjalankan perintah dan tidak mengembalikan nilai (lihat kembali contoh program prosedur sebelumnya). Hasil penjumlahan a + b ditampung di fungsi hitung (lihat baris ke-5) dan hasil itu diberikan ke variabel hasil (baris 9).

... 2. yang menunjukan banyaknya data yang mampu disimpan.. Didalam suatu larik atau array setiap kompoenen ditunjukan oleh suatu index yang unik. Deklarasi Array Didalam penulisan bahasa pemograman setiap penggunaan array harus dideklarsikan terlebih dahulu. 1.C merupakan tanda pengenal/ nama variabel dari array. Pendeklarasian array diawali dengan nama variabel array diikuti dengan indeks array yang dituliskan didalam tanda "[]" .] of tipe data. Contoh: Var A : array[ 1. diikuti dengan kata cadangan of dan tipe data yang dibutuhkan. C: array[1. untuk membedakan antara nama yang satu atau dengan nama yang lain maka diberikan initial tambahan untuk setiap nama. Pengertian Array Array (larik) merupakan tipe data tersetruktur dimana didalamnya terdiri dari komponen komponen yang mempunyai tipe data yang sarna..10] of real.. Bentuk Umum Penulisan Tanda _pengenal : array [.B. B : array[1. Index dari setiap komponen array menunjukan urutan data atau identitas yang mewakili data yang ada didalamnya.1. Keterangnan : A.ecmzprofeesiona I .tipe index .4] of integer.BABIl ARRAY 2. Logika sederhananya array itu bisa disamakan dengan dua orang dengan nama yang sarna didalam suatu komunitas.5] of string. Craatod wlth nit!roPDF' professi anal download the free trial online at nitrcpdf. Didalam suatu array jumlah komponen banyaknya adalah tetap.4 : merupakan tipe indek dari array.2.

b.5.3 Alokasi Penggunaan Array a.5] of char Ataujuga type jangkauan = 1... indexTypen] of base Type Keterangan = index type menunjukan tipe data ordinal yang menunjukan batasan atau elemen maksimul terhadap seberapa besar variabel tersebut menyimpan komponen. BentukUmum array[indexTypel. Contoh Var arrayku : array[1. Tetapi ketika program dijalankan maka memori untuk suatu array dinamis direalokasikan ketika kita menugaskan suatu nilai kepada array. 2. Array Dinamis (Dynamic arrays) Larik atau array dinamis merupakan array yang tidak mempunyai suatu jangkauan atau ukuran yang tetap. Nilai yang digunakan untuk menentukan jangkauan pada umumnya bemilai integer.Integer: menunjukan bahwa data yang diinput berupa bilangan bulat. Dynamic-Array jenis ditandai oleh konstruksi (menyangkut) format BentukUmum Craatod wlth nit!roPDF' professi anal download the free trial online at nitrcpdf... var nilai : array[j angkauan] of integer. Array Static juga bisa disebut Array dengan deklarasi tipe indeks subrange integer. Array Static (Static Array) Array static adalah model pendeklarasian array dimana tipe data yang digunakan mempunyai nilai yang tetap. .ecmzprofeesiona I ..

Se111ength(nilai.nilai varibel bilangan ke 3 ='. Readln. dengan indeex dimulai dari 0 sampai dengan 20. Bilangan[1]:=3. Contoh array: Program Contoh _Array_Input. Bilangan[3] :=30. Uses Crt. Begin ClrSer. Bilangan[5]:=23.Bilangan[3]). Bilangan[2] :=29. End.50] ofInteger. earanya adalah dengan memanfaatkan fungsi dari perintah sellength. Bilangan[ 4]:=31. Untuk mendeklarasikan array tersebut kita hams menempatkan array didalam suatu memori.array of base Type Contoh: var nilai: array of Real.. Var Bilangan: array[1.20) Dari penggalan program tersebut nilai untuk array nilai tersebut mempunyai range sebanyak atau eakupan 20 untuk tipe data real. Dari deklarasi tersebut nilai yang merupakan deklarasi array belum memperoleh nilai yang tetap. Craatod wlth nit!roPDF' professi anal download the free trial online at nitrcpdf. Writeln(.ecmzprofeesiona I . tetapi hanya diberikan batasan sebagai tipe data real.

Aplikasi tersebut mampu menampilkan daftar account yang aktif.elemen dengan tata urut tertentu dan proses tersebut terimplementasi dalam bermacam aplikasi. bandingkan dengan kartu yang berada pada mej a kedua. 2.1 Pengertian Sorting Sorting adalah proses menyusun elemen . Kemudian kita mempunyai meja yang lain. Kita ambil contoh pada aplikasi perbankan. 3. Beberapa macam algoritma sorting telah dibuat karena proses tersebut sangat mendasar dan sering digunakan.2. Ide dari algoritma ini dapat dianalogikan seperti mengurutkan Anggaplah anda ingin mengurutkan kartu. anda diharapkan mampu : 1. Ambil kartu kedua dari mej a pertama.algoritma yang ada sangatlah berguna. Seluruh kartu diletakkan pada meja. Setelah menyelesaikan pembahasan pada bagian ini. selection sort dan quick sort. kemudian letakkan pada urutan vanz Craatod wlth sort.BAB III SORTING 3. meja kedua.1 Insertion Sort Salah satu algoritma sorting yang paling sederhana adalah insertion sort. dimana kartu yang diurutkan akan diletakkan. Membuat implementasi pribadi menggunakan algoritma yang ada 3. Sebagai contoh misalkan diberikan data berupa bilangan berikut ini: 391402 Hasil sorting ascending adalah 0 1 2 3 4 9. Ambil kartu pertama yang terletak pada pojok kiri atas meja pertama dan letakkan pada mej a kedua. Sedangkan descending mengurutkan data mulai dari data terbesar sampai terkecil. Hampir seluruh pengguna pada sistem akan memilih tampilan daftar berurutan secara ascending demi kenyamanan dalam penelusuran data. pemahaman atas algoritma . disusun dari kiri ke kanan dan atas ke bawah. satu set kartu dari kartu yang bemilai paling kecil hingga yang paling besar. merge nit!roPDF' professi anal download the free trial online at nitrcpdf. Oleh karena itu. Memahami dan menjelaskan algoritma dari insertion sort.2 Jenis Sorting Ada dua bentuk sorting yaitu secara ascending dan descending. dan hasil secara descending adalah 9 4 3 2 1 o. sebutlah meja ini sebagai meja pertama.ecmzprofeesiona I . Sorting secara ascending adalah cara mengurutkan data mulai data bemilai terkecil sampai terbesar. Penjelasan berikut ini menerangkan bagaimana algoritma insertion sort bekerja dalam pengurutan kartu.

for (intj = i + l. tukarkan posisi kartu ini dengan kartu yang terletak pada pojok kiri atas meja. int endIdx) { for (int i = startIdx. } } { 3. terakhir Ulangi langkah dibandingkan dan langkah kedua sebelum dapat digeser dengan kartu yang bemilai lebih rendah. anda mungkin akan menemukan sebuah algoritma yang mirip dengan selection sort.2.j++) { if (((Comp~rable) array[k]). Tukarkan kartu yang baru tersebut saja terpilih hingga posisi dengan kartu pada posisi posisi kedua. kemudian Elemen pertama diambil dari bagian array yang belum diurutkan dan diletakkan sesuai posisinya pada bagian lain dari array yang telah diurutkan. Asumsikan bahwa kartu tersebut akan diurutkan secara ascending. kanan. Nilai dari i dimulai Craatod wlth nit!roPDF' professi anal download the free trial online at nitrcpdf. kemudian awalnya. int startIdx. yang belum diurutkan (meja pertama) dan yang sudah diurutkan (meja kedua).j < endIdx.sesuai setelah perbandingan. Contoh algoritma Insertion sort : void insertionSort(Object array[].2 Selection Sort Jika anda diminta untuk membuat algoritma sorting tersendiri. Layaknya insertion sort. i < endIdx. Mari kita kembali menelusuri bagaimana algoritma ini berfungsi terhadap satu paket kartu.compareTo(array[j]»O) k = J. i++) { int k = i. algoritma ini sangat rapat dan mudah untuk diimplementasikan. Lalu cari kartu dengan nilai paling rendah diantara sisa kartu yang tersedia. kartu tersebut akan disusun secara linier pada sebuah meja dari kiri ke Pilih nilai kartu yang paling dan dari atas ke bawah. Proses tersebut akan berlangsung hingga seluruh kartu pada mej a pertama telah diletakkan berurutan pada mej a kedua.ecmzprofeesiona I .array[k]). Langkah ini dilakukan secara berulang hingga tidak ada lagi elemen yang tersisa pada bagian array yang belum diurutkan. Ide utama dari algoritma selection sort adalah memilih elemen dengan nilai paling rendah dan menukar elemen yang terpilih dengan elemen ke-i. Algoritma insertion sort pada dasamya memilah data yang akan diurutkan menjadi dua bagian. } } swap(array[i]. Pada rendah.

yang akan membimbing menuju penyelesaian atas permasalahan utama Permasalahan kemudian dipecah menjadi kemudian solusi dari sub-masalah akan membimbing menuju solusi permasalahan Craatod wlth nit!roPDF' professi anal download the free trial online at nitrcpdf. } } swap(array[min]. dimana n adalah jumlah total elemen dikurangi 1. i < endldx.2. j++) { if (((Compara~le )array[ min ]). Jika sub-masalah tersebut cukup ringkas dan sederhana. pendekatan penyelesaian secara langsung akan lebih efektif 3. int endldx) { int min. Pola Divide and Conquer Beberapa algoritma mengimplementasikan utama konsep rekursi untuk menyelesaikan sub-masalah. int startldx. j < endldx. array[i]). for (int i = startldx. Conquer Selesaikan sub masalah tersebut secara rekursif. utama. pola tersebut terdiri atas 3 langkah. mari kita mengetahui garis besar dari konsep divide and conquer karena merge sort mengadaptasi pola tersebut. } } 3. Kombinasi Mengkombinasikan solusi dari sub-masalah.compareTo( array[j]»O) { mm s=j. Contoh algoritma selection sort: void selectionSort(Object array[]. i++) { mtn==r.3 Merge Sort Sebelum mendalami algoritma merge sort. Pada setiap tingkatan rekursi.dari 1 ke n. permasalahan. 1. Divide Memilah masalah menjadi sub masalah 2. for (int j = i + 1.ecmzprofeesiona I .

A[ q] disebut kurang sebagai dari atau elemen pivot. Conquer Craatod wlth nit!roPDF' professi anal download the free trial online at nitrcpdf. algoritma ini hanya mengikuti langkah . Seperti pada merge sort. 2. Proses rekursi berhentijika mencapai elemen dasar. q-I] dan A[q+ 1. Merge sort menggunakan pola divide and conquer. 2. Divide Memilah elemen . Contoh algoritma Merge Sort : void mergeSort(Object array[].Memahami Merge Sort Seperti yang telah dijelaskan sebelumnya. Hal ini terjadi bilamana bagian yang akan diurutkan menyisakan tepat satu elemen. Sisa pengurutan satu elemen tersebut menandakan bahwa bagian tersebut telah terurut sesuai rangkaian. endldx). sarna Perhitungan dengan pada elemen A[q] q dan setiap elemen pada A[q+ 1. r] dimana setiap elemen elemen A[p .langkah sebagai berikut : setiap bagian dengan memanggil prosedur merge sort secara Dengan hal ini deskripsi dari algoritma dirumuskan dalam 3 langkah berpola divide-and-conquer..A. 1. 1... midldx). Divide Memilah rangkaian data menjadi dua sub-rangkaian A[p ... startldx.1ength != 1) { 11M emb agi rangkaian data. } } 3.ecmzprofeesiona I . . r] adalah lebih besar atau sarna dengan Berbeda dengan merge sort. int endldx) { if (array.2. mergeSort( rightArr.. int startldx. merupakan salah satu bagian dari prosedur pemisahan. rightArr dan leftArr mergeSort(1eftArr . Conquer Conquer rekursif 3. Kombinasi Mengkombinasikan dua bagian tersebut secara rekursif untuk mendapatkan rangkaian data berurutan. rightArr).elemen dari rangkaian data menjadi dua bagian. midldx+ 1. q-I] adalah pada A[ q].R Hoare. . algoritma inijuga berdasar pada pol a divide-and-conquer. combine(1eftArr. Berikut menjelaskan langkah kerja dari Merge sort.4 Quicksort Quicksort ditemukan oleh C.

quickSort( array.elemen pada sub-array Contoh algoritma quick sort : void quickSort(Object array[]. langkah "kombinasi" tidak di lakukan karena telah terjadi pengurutan elemen . } } Craatod wlth nit!roPDF' professi anal download the free trial online at nitrcpdf. int leftIdx.ecmzprofeesiona I . 1* Kondisi Terminasi *1 if (rightIdx > leftIdx) { pivotIdx partition(array.Mengurutkan elemen pada sub-rangkaian secara rekursif Pada algoritma quicksort. pivotIdx -1). leftIdx. rightIdx). rightIdx). quickSort( array. int rightIdx) { int pivotIdx. pivotIdx+ 1. leftIdx.

BABIV SEARCHING Pencarianl Searching adalah proses mencari suatu data di tentukan suatu kumpulannya.' Found') else Craatod wlth nit!roPDF' professi anal download the free trial online at nitrcpdf. atau pada kumpulan data yang lain. N. file. Algoritma : CARl ( A. misal pada suatu array. yaitu : a.1 Pencarian Beruntun ( Linear Searching) Ide Pencarian : Elemen yang dicari dibandingkan dengan element-element kumpulan data temp at pencarian satu persatu mulai dari element pertama. Jika yang di inginkan berupa komentar bahwa data x di temukan atau tidak : if I <= N then write (x.ecmzprofeesiona I . Algoritma pencarian 4. linked-list. x ) {Mencari data x pada array A yang elemennya sebanyak N} read (x) 1+-1 yang ada pada while x <> A(I) AND <= N DO 1+-1+1 end Pengaturan Hasil (Output) Sesuai permasalahan pada pencarian yang di kemukakan di atas maka output yang di inginkan dari proses pencarian tersebut bisa disesuaikan dengan permasalahan di atas.

Jika sama maka data yang dicari ditemukan. x ) {Mencari data x pada array A yang elemennya sebanyak N} ++++- TRUE FALSE 1 0 { Jika tdk di temukan di beri variabel 0 } Craatod wlth nit!roPDF' professi anal download the free trial online at nitrcpdf.ecmzprofeesiona I .write(x.2 Pencarian Biner/ Bagi Dua (Binary Searching) Ide Pencarian : Elemen yang dicari dibandingkan dengan elemen tengah dari kumpulan data pencarian. N. Jika hasil yang di inginkan berupa indeks data x pada array A: if I <= N then Hasil else Hasil end 4. Algoritma : CARl ( A. Jika hasil yang di inginkan berupa status bahwa data x ditemukan atau tidak : if I <= N then Ketemu else Ketemu end c.' Not Found') end b. Jika lebih kecil maka pencarian dilanjutkan kebagian array sebelah kiri (bagian yang lebih kecil dari elemen tengah). Sebaliknya jika lebih besar maka pencarian dilanjutkan di sebelah kanan elemen tengah. jika tidak sama (belum ditemukan) maka data yang dicari itu dibandingkan lagi dengan elemen tengah tersebut. Ulangi langkah tersebut sampai di temukan atau kumpulan data tidak bisa dibagi lagi menjadi dua bagian.

ecmzprofeesiona I .read (x) a+-l Ketemu +.(a+b) mod 2 if x = A(T) then Ketemu TRUE +.FALSE while ketemu and a < b do T +.' Not Found') end b.FALSE Craatod wlth nit!roPDF' professi anal download the free trial online at nitrcpdf.TRUE else if x < A(T) then +. Jika yang di inginkan berupa komentar bahwa data x di temukan atau tidak : if Ketemu = TRUE then write (x.' Found') else write(x. Jika hasil yang di inginkan berupa status bahwa data x ditemukan atau tidak : if Ketemu = TRUE then Ketemu +.T + 1 end Pengaturan Hasil (Output) a.1 else a +.TRUE else Ketemu +.T .

Jika hasil yang di inginkan berupa indeks data x pada array A: if Ketemu = TRUE then Hasil else Hasil end ++- T 0 { Jika tdk di temukan di beri variabel 0 } Craatod wlth nit!roPDF' professi anal download the free trial online at nitrcpdf.end c.ecmzprofeesiona I .

Sign up to vote on this title
UsefulNot useful