P. 1
Algoritma

Algoritma

|Views: 51|Likes:
Published by Hafizz Ardhiputra

More info:

Published by: Hafizz Ardhiputra on Nov 15, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

05/14/2013

pdf

text

original

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

BABIl ARRAY 2.] of tipe data. Contoh: Var A : array[ 1. Deklarasi Array Didalam penulisan bahasa pemograman setiap penggunaan array harus dideklarsikan terlebih dahulu.. yang menunjukan banyaknya data yang mampu disimpan.5] of string. Keterangnan : A.. C: array[1.4] of integer. untuk membedakan antara nama yang satu atau dengan nama yang lain maka diberikan initial tambahan untuk setiap nama.ecmzprofeesiona I .. Didalam suatu larik atau array setiap kompoenen ditunjukan oleh suatu index yang unik. diikuti dengan kata cadangan of dan tipe data yang dibutuhkan.tipe index .. Bentuk Umum Penulisan Tanda _pengenal : array [.1.C merupakan tanda pengenal/ nama variabel dari array. Index dari setiap komponen array menunjukan urutan data atau identitas yang mewakili data yang ada didalamnya.B. Pengertian Array Array (larik) merupakan tipe data tersetruktur dimana didalamnya terdiri dari komponen komponen yang mempunyai tipe data yang sarna. 2.. B : array[1. 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. 1.10] of real.2. Pendeklarasian array diawali dengan nama variabel array diikuti dengan indeks array yang dituliskan didalam tanda "[]" . Logika sederhananya array itu bisa disamakan dengan dua orang dengan nama yang sarna didalam suatu komunitas.

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

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

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

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

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

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

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

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

Jika sama maka data yang dicari ditemukan. N.write(x. 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. Jika lebih kecil maka pencarian dilanjutkan kebagian array sebelah kiri (bagian yang lebih kecil dari elemen tengah). Jika hasil yang di inginkan berupa indeks data x pada array A: if I <= N then Hasil else Hasil end 4.2 Pencarian Biner/ Bagi Dua (Binary Searching) Ide Pencarian : Elemen yang dicari dibandingkan dengan elemen tengah dari kumpulan data pencarian.' 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. Algoritma : CARl ( A.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.

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

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 .

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->