DI
S
U
S
U
N
OLEH
KATA PENGANTAR
Puji syukur kami pamjatkan atas kehadirat ALLAH SWT , karena berkat rahmat dan
anugrah-Nyalah makalah ini dapat deselesaikan tepat pada waktunya.
Dalam pembuatan Makalah ini kami tidak sendiri membuat tetapi kami banyak
mendapat bantuan dari pihak lain serta buku-buku yang menujang pembuatan Makalah ini
serta saran dari teman-teman sehingga pada kesempatan ini kami mengucapkan terima kasih
kepada semua yang sudah membantu dalam pembuatan Makalah ini.
Semoga Makalah ini bias bermanfaat bagi para pembaca dalam mengaplikasihkan
dikehidupan sehari-hari, makalah ini masih jauh dari sempurna, untuk itu kritik dan
saran dari pembaca yang bersifat membangun akan sangat dperlukan demi kesempurnaan
Makalah yang akan kami buat mendatang.
DAFTAR ISI
Kata pengantar.......................................................................................................... i
Daftar isi.................................................................................................................. ii
Abstrak.................................................................................................................... iv
Bab I Pendahuluan........................................................................................... ....... 1
1.1.Latar Belakang....................................................................................... 1
1.2.Permasalahan ......................................................................................... 2
1.3. Tujuan ....... 2
Bab II Pembahasan .........
2.1. Bubble Sort...........................................................................................
2.2. Insertion Sort..............................................................................
2.3. Selection Sort............................................................................... .........
2.4. Quick Sort...................................................................................
2.5. Pencarian sekun (sequnetial searching....................................
2.6. Pencarian biner (binary searching).............................................
Bab II Penutup...........................................................................................................
3.1. Kesimpulan..................................................................................
3.2. Saran
Daftar Pustaka
BAB I
PENDAHULUAN
1.1.Latar Belakang
Dalam matematika dan komputasi, algoritma merupakan kumpulan perintah untuk
menyelesaikan suatu masalah. Perintah-perintah ini dapat diterjemahkan secara bertahap dari
awal hingga akhir. Masalah tersebut dapat berupa apa saja, dengan catatan untuk setiap
masalah, ada kriteria kondisi awal yang harus dipenuhi sebelum menjalankan algoritma.
Algoritma akan dapat selalu berakhir untuk semua kondisi awal yang memenuhi kriteria,
dalam hal ini berbeda dengan heuristik. Algoritma sering mempunyai langkah pengulangan
(iterasi) atau memerlukan keputusan (logika Boolean dan perbandingan) sampai tugasnya
selesai.
Desain dan analisis algoritma adalah suatu cabang khusus dalam ilmu komputer yang
mempelajari karakteristik dan performa dari suatu algoritma dalam menyelesaikan masalah,
terlepas dari implementasi algoritma tersebut. Dalam cabang disiplin ini algoritma dipelajari
secara abstrak, terlepas dari sistem komputer atau bahasa pemrograman yang digunakan.
Algoritma yang berbeda dapat diterapkan pada suatu masalah dengan kriteria yang sama.
Kompleksitas dari suatu algoritma merupakan ukuran seberapa banyak komputasi
yang dibutuhkan algoritma tersebut untuk menyelesaikan masalah. Secara informal,
algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang singkat memiliki
kompleksitas yang rendah, sementara algoritma yang membutuhkan waktu lama untuk
menyelesaikan masalahnya mempunyai kompleksitas yang tinggi.
Sedangkan sorting adalah sebuah proses merangkai benda dalam urutan tertentu
dan/atau dalam himpunan yang berbeda, dan oleh karena itu dia memiliki dua arti umum
yang berbeda:
1. pengurutan: merangkai benda yang sejenis, sekelas, dll, dalam urutan yang teratur.
2. kategorisasi: pengelompokan dan pemberian label kepada benda dengan sifat yang
serupa.
algoritma sorting terdiri dari beberapa algoritma seperti Bubble sort, Quick sort,
Selection Sort, Insertion Sort, dan Merge Sort yang dimana setiap jenis sorting ini memiliki
perbedaan satu sama lainnya.
1.2.Rumusan Masalah
Dari latar belakang diatas adapun permasalahan kami adalah sebagai berikut :
1.2.1. Apa pengertian algoritma sorting?
1.2.2. Apa saja bagian-bagian algoritma sorting?
1.2.3. Apa fungsi dari bagian-bagian algoritma sorting tersebut ?
1.3. Tujuan
Dari rumusan masalah diatas, adapun tujuan kami adalah sebagai berikut:
1.3.1. Untuk mengetahui pengertian algoritma sorting?
1.3.2. Untuk mengetahui bagian-bagian algoritma sorting?
1.3.3. Untuk mengetahui fungsi dari bagian-bagian algoritma sorting tersebut ?
BAB II
PEMBAHASAN
Pseudocode dari bubble Sort adalah sebagai berikut;
For I = 0 to N - 2
For J = 0 to N - 2
If (A(J) > A(J + 1)
Temp = A(J)
A(J) = A(J + 1)
A(J + 1) = Temp
End-If
End-For
End-For
Pseudocode dari selection Sort adalah sebagai berikut;
For I = 0 to N-1 do:
Smallsub = I
For J = I + 1 to N-1 do:
If A(J) < A(Smallsub)
Smallsub = J
End-If
End-For
Temp = A(I)
A(I) = A(Smallsub)
A(Smallsub) = Temp
End-For
x := A[r]
i := l-1
for j := l to r-1
do if A[j]< = x
then i := i + 1
exchange A[i] with A[j]
exchange A[i+1] with A[r]
return i+1
· Pengertian
Pencarian Sekuensial (sequential searching) atau pencarian berurutan sering disebut
pencarian linear merupakan metode pencarian yang paling sederhana. 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.
Pencarian beruntun terbadi dua:
1. Pencarian beruntun pada larik tidak terurut;
2. Pencarian beruntun pada larik terurut.
· Algoritma
Pencarian berurutan menggunakan prinsip sebagai berikut :
1. data yang ada dibandingkan satu per satu secara berurutan dengan yang dicari sampai
data tersebut ditemukan atau tidak ditemukan.
2. Pada dasarnya, pencarian ini hanya melakukan pengulangan dari 1 sampai dengan
jumlah data.
3. Pada setiap pengulangan, dibandingkan data ke-i dengan yang dicari.
4. Apabila sama, berarti data telah ditemukan. Sebaliknya apabila sampai akhir
pengulangan tidak ada data yang sama, berarti data tidak ada.
Kelemahan pada kasus yang paling buruk, untuk N elemen data harus dilakukan pencarian
sebanyak N kali pula. Algoritma pencarian berurutan dapat dituliskan sebagai berikut :
(1) i ← 0
(2) ketemu ← false
(3) Selama (tidak ketemu) dan (i <= N) kerjakan baris 4
(4) Jika (Data[i] = x) maka ketemu ← true, jika tidak i ← i + 1
(5) Jika (ketemu) maka i adalah indeks dari data yang dicari, jika data tidak ditemukan
· Contoh
#include <stdio.h>
#include <conio.h>
void main(){
int data[8] = {8,10,6,-2,11,7,1,100};
int cari;
int flag=0;
printf("masukkan data yang ingin dicari = ");scanf("%d",&cari);
for(int i=0;i<8;i++){
if(data[i] == cari) flag=1;
}
if(flag==1) printf("Data ada!\n");
else printf("Data tidak ada!\n");
getch();
return 1;
}
Dari program diatas, terlihat bahwa dilakukan perulangan untuk mengakses semua elemen
array data satu persatu berdasarkan indeksnya.
Program menggunakan sebuah variabel flag yang berguna untuk menadai ada atau
tidaknya data yang dicari dalam array data. Hanya bernilai 0 atau 1.
Flag pertama kali diinisialiasasi dengan nilai 0.
Jika ditemukan, maka flag akan diset menjadi 1, jika tidak ada maka flag akan tetap
bernilai 0.
Semua elemen array data akan dibandingkan satu persatu dengan data yang dicari dan
diinputkan oleh user.
Algoritma
class BinaryNode {
void printInOrder( )
{
if( left != null )
left.printInOrder( ); // Left
System.out.println( element ); // Node
if( right != null )
right.printInOrder( ); // Right
}
}
class BinaryTree {
public void printInOrder( )
{
if( root != null )
root.printInOrder( );
}
}
Prinsip dari pencarian biner dapat dijelaskan sebagai berikut :
1. mula-mula diambil posisi awal 0 dan posisi akhir = N - 1, kemudian dicari posisi data
tengah dengan rumus (posisi awal + posisi akhir) / 2.
2. Kemudian data yang dicari dibandingkan dengan data tengah.
3. Jika lebih kecil, proses dilakukan kembali tetapi posisi akhir dianggap sama dengan
posisi tengah –1.
4. Jika lebih besar, porses dilakukan kembali tetapi posisi awal dianggap sama dengan
posisi tengah + 1.
5. Demikian seterusnya sampai data tengah sama dengan yang dicari.
Algoritma pencarian biner dapat dituliskan sebagai berikut :
1. L ← 0
2. R ← N - 1
3. ketemu ← false
4. Selama (L <= R) dan (tidak ketemu) kerjakan baris 5 sampai dengan 8
5. m ← (L + R) / 2 83
6. Jika (Data[m] = x) maka ketemu ← true
7. Jika (x < Data[m]) maka R ← m – 1 Jika (x > Data[m]) maka L ← m + 1
8. Jika (ketemu) maka m adalah indeks dari data yang dicari, jika tidak data tidak
ditemukan.
Contoh
3.1. Kesimpulan
Algoritma yang mudah dalam hal implementasi adalah Bubble Sort, Selection Sort,
dan Insertion Sort. Ketiganya memiliki kompleksitas O(n2). Di antara algoritma ini, yang
paling effisien adalah Insertion Sort. Algoritma yang lebih mangkus adalah MergeSort dan
Quick Sort dengan kompleksitasnya adalah O(n log n). Adapun yang paling mangkus dari
lima algoritma ini adalah Quick Sort.
3.2. Saran
Dengan disusunya makalah ini, semoga makalah ini bias menjadi infirasi dalam
kehidupan sehari-hari, secara tidak sengaja sering kita malakukan prosedut semacam ini di
kehidupan sehari-hari seperti melakukan langkah mencuci baju, menjalankan sepeda
motor.itu semua adalah algoritma yang dilakukan dalam kehidupan sehari-hari.begitu juga
dalam computer atau didalam bahasa pemrograman. Jika langkah-langkah dalam kehidupan
sehari-hari kita amati, hampir tidak jauh beda dengan langkah-langkah pemrograman.