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

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

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

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

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

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

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

} } 3. utama. Pola Divide and Conquer Beberapa algoritma mengimplementasikan utama konsep rekursi untuk menyelesaikan sub-masalah. Kombinasi Mengkombinasikan solusi dari sub-masalah. j < endldx. for (int i = startldx. dimana n adalah jumlah total elemen dikurangi 1.3 Merge Sort Sebelum mendalami algoritma merge sort. mari kita mengetahui garis besar dari konsep divide and conquer karena merge sort mengadaptasi pola tersebut.ecmzprofeesiona I .dari 1 ke n. i < endldx. int endldx) { int min. for (int j = i + 1. pendekatan penyelesaian secara langsung akan lebih efektif 3. } } swap(array[min]. array[i]). permasalahan.compareTo( array[j]»O) { mm s=j. Pada setiap tingkatan rekursi. Conquer Selesaikan sub masalah tersebut secara rekursif. pola tersebut terdiri atas 3 langkah.2. int startldx. 1. j++) { if (((Compara~le )array[ min ]). Jika sub-masalah tersebut cukup ringkas dan sederhana. Contoh algoritma selection sort: void selectionSort(Object array[]. i++) { mtn==r. 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. Divide Memilah masalah menjadi sub masalah 2.

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

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

atau pada kumpulan data yang lain. file.' Found') else Craatod wlth nit!roPDF' professi anal download the free trial online at nitrcpdf. yaitu : a.BABIV SEARCHING Pencarianl Searching adalah proses mencari suatu data di tentukan suatu kumpulannya. Jika yang di inginkan berupa komentar bahwa data x di temukan atau tidak : if I <= N then write (x. Algoritma : CARl ( A. 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. linked-list. N.ecmzprofeesiona I . Algoritma pencarian 4. misal pada suatu array.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.

write(x. Jika hasil yang di inginkan berupa status bahwa data x ditemukan atau tidak : if I <= N then Ketemu else Ketemu end c. Ulangi langkah tersebut sampai di temukan atau kumpulan data tidak bisa dibagi lagi menjadi dua bagian. Jika sama maka data yang dicari ditemukan.ecmzprofeesiona I . 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. Jika hasil yang di inginkan berupa indeks data x pada array A: if I <= N then Hasil else Hasil end 4. Jika lebih kecil maka pencarian dilanjutkan kebagian array sebelah kiri (bagian yang lebih kecil dari elemen tengah). N.' Not Found') end b.2 Pencarian Biner/ Bagi Dua (Binary Searching) Ide Pencarian : Elemen yang dicari dibandingkan dengan elemen tengah dari kumpulan data pencarian. Algoritma : CARl ( A. jika tidak sama (belum ditemukan) maka data yang dicari itu dibandingkan lagi dengan elemen tengah tersebut. Sebaliknya jika lebih besar maka pencarian dilanjutkan di sebelah kanan elemen tengah.

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

end c.ecmzprofeesiona I . 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.

Sign up to vote on this title
UsefulNot useful