Anda di halaman 1dari 8

TUGAS DESAIN DAN ANALISA ALGORITMA

Nama : I Made Satrya Ramayu


Program Studi : Ilmu Komputer
Sorting ( Pengurutan )
Adalah suatu proses menyusun kembali data yang sebelumnya telah tersusun dengan pola pola
tertentu , sehigga tersusun secara teratur dan terurut. Pengurutan data didalam struktur data ini,
data yang diurutkan bisa bilangan numeric ataupun karakter dan juga didalam mengurutkan data
bisa berupa ascending (dari kecil ke besar) ataupun descending ( besar ke kecil ).

Adapun beberapa metode yang digunakan di dalam pengurutan data, diantaranya :

1. Pengurutan berdasarkan perbandingan, contohnya :

Bubble Sort

Metode Bubble Sort merupakan mengurutkan suatu data dengan cara


membandingkan elemen sekarang dengan elemen berikutnya sampai menemukan
posisi yang tepat. Proses pengurutan data menggunakan metode ini berangsur
angsur bergerak atau berpindah ke posisi yang tepat. Metode ini merupakan
metode sorting termudah.

1
Gambar 1. Contoh proses menggunakan metode Bubble Sort

Gambar 2. Contoh proses menggunakan metode Bubble Sort di coding program

Quick Sort

Adalah algoritma sorting yang berdasarkan pembandingan dengan metode divide


dan conquer (bagi dan kuasai). Disebut Quick Sort, karena algoritma quick sort
mengurutkan dengan sangat cepat. Quick sort disebut juga dengan partition
exchange sort, karena konsepnya membuat partisi- partisi, dan sorting dilakukan per
partisi. Algoritma quick sort mengurutkan dengan sangat cepat, namun algoritma ini
sangat komplex dan diproses secara rekursif.

2
Gambar 3. Contoh proses menggunakan metode Quick Sort

Quicksort(A as array, low as int, high as int)


if (low < high)
pivot_location = Partition(A,low,high)
Quicksort(A,low, pivot_location - 1)
Quicksort(A, pivot_location + 1, high)
Partition(A as array, low as int, high as int)
pivot = A[low] leftwall = low for i = low + 1 to
high
if (A[i] < pivot)
then leftwall = leftwall + 1 swap(A[i], A[leftwall])
swap(A[low],A[leftwall])
return (leftwall)

Gambar 4. Contoh Pseudocode menggunakan metode Quick Sort

3
2. Pengurutan berdasarkan prioritas, contohnya :

Selection Sort

Metode Selection Sort ini merupakan gabungan dari metode bubble sort dan
exchange sort. Didalam setiap prosesnya, akan dicari elemen elemen yang belum
diurutkan yang memiliki nilai terkecil ataupun nilai terbesar, akan ditukar ke posisi
array yang tepat. Sebagai contoh, misalkan di proses pertama kita ingin mencari
data yang terkecil, dan data ini akan di tempatkan di index yang terkecil data[0],
pada proses yang kedua akan di cari data kedua terkecil kemudian akan di masukkan
ke index ke 2 data[1]. Dan selama proses ini berlangsung, pembandingan dan
pengubahan hanya dilakukan di index pembanding saja, pertukaran secara fisik akan
dilakukan di akhir proses.

Gambar 5. Contoh proses menggunakan metode Selection Sort

Gambar 6. Contoh proses menggunakan metode Selection Sort di program


4
Dan masih banyak lagi contoh - contoh metode didalam mengurutkan data.

Metode Kecepatan Algoritma Efisiensi

Pengalokasian
Lambat, tetapi bagus digunakan Lebih mudah untuk di memory lebih
Bubble Sort jika data sedikit implementasikan banyak

Sangat Cepat, dan bagus di Penggunaan


gunakan jika data yang di gunakan Agak complex dalam memory lebih sedikt
Quick Sort besar implementasi

Lebih Cepat ketimbang bubble Sederhana, mudah di Penggunaan


Selection Sort Sort implementasikan memory lebih sedikt

Table 1. Perbandingan anatar ke 3 metode yang di pakai

5
Searching ( Pencarian )
Adalah suatu proses dalam mencari suatu data. Proses pencarian data itu yaitu menemukan suatu
nilai atau data tertentu didalam sekumpulan data.

Adapun beberapa macam algoritma searching, diantaranya :

1. Pencarian sekuensial (Sequential searching)

Pencarian ini biasa disebut dengan pencarian linear atau pencarian yang berurutan.Metode
pencarian sekuensial ini adalam metode yang paling sederhana karena membandingkan
setiap elemen larik satu per satu secara beruntun, mulai dari elemen pertama sampai
elemen yang dicari ditemukan atau seluruh elemen sudah diperiksa.

Proses algoritmanya :

Data yang ada dibandingkan satu per satu secara berurutan dengan yang dicari
sampai data tersebut ditemukan atau tidak ditemukan.

Pada dasarnya, pencarian ini hanya melakukan pengulangan dari 1 sampai dengan
jumlah data.

Pada setiap pengulangan, dibandingkan data ke-i dengan yang dicari.

Apabila sama, berarti data telah ditemukan. Sebaliknya apabila sampai akhir
pengulangan tidak ada data yang sama, berarti data tidak ada.

Contohnya:

Data = 25 50 30 46 48 49 55

Target = 49

Langkah Pencarian Sekuensial :

1. Bandingkan data[1] dengan target. Karena 25==49, next.

2. Bandingkan data[2] dengan target. Karena 50==49, next.

3. Dan seterusnya sampai data[n]=target

4. Tampilkan hasil pencarian

6
2. Pencarian Biner (binary search)

Pencarian Biner ini merupakan pencarian yang paling efisien, sehingga waktu yang di
perlukan untuk mencari suatu data jadi lebih cepat. Akan tetapi pencarian ini hanya dapat
dilakukan jika datanya sudah terurut.

Proses algoritmanya :

mula-mula diambil posisi awal 0 dan posisi akhir = N - 1, kemudian dicari posisi data
tengah dengan rumus (posisi awal + posisi akhir) / 2.

Kemudian data yang dicari dibandingkan dengan data tengah.

Jika lebih kecil, proses dilakukan kembali tetapi posisi akhir dianggap sama dengan
posisi tengah 1.

Jika lebih besar, porses dilakukan kembali tetapi posisi awal dianggap sama dengan
posisi tengah + 1.

Demikian seterusnya sampai data tengah sama dengan yang dicari.

Gambar 1. Contoh Program pencarian Biner

Metode Kecepatan Algoritma Efisiensi

Pencariannya lebih lambat ketimbang Beban komputasi lebih


Biner, akan tetapi jika data sedikit Algoritmanya besar
Sekuensial agak cepat sederhana

Data harus diurut, dan Beban komputasi lebih


Pencarian Cepat, sangat cocok Algoritma lebih rumit, kecil
digunakan didalam pencarian data tidak baik untuk data
Biner yang besar berangkai

Table 1. Perbandingan antara ke 2 Metode

Anda mungkin juga menyukai