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

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

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

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

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

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

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

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

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

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

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

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

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

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