Professional Documents
Culture Documents
Bab Ii
Bab Ii
ALGORITMA SEARCHING
Di susun oleh:
Michael : 213030503153(B)
Adrian :213030503174
Alhamdulillah, puji syukur kehadirat Allah SWT yang telah memberikan rahmat dan inayah-
Nya sehingga kami dapat menyelesaikan Laporan tugas yang berjudul Algoritma sorting dan
algoritma searching.
Terima kasih saya ucapkan kepada Bapa Ade Chandra Saputra,S.Kom.,M.Cs yang telah
membantu kami baik secara moral maupun materi. Terima kasih juga saya ucapkan kepada
teman-teman seperjuangan yang telah mendukung kami sehingga kami bisa menyelesaikan
tugas ini tepat waktu.
Kami menyadari, bahwa laporan Tugas yang kami buat ini masih jauh dari kata sempurna
baik segi penyusunan, bahasa, maupun penulisannya. Oleh karena itu, kami sangat
mengharapkan kritik dan saran yang membangun dari semua pembaca guna menjadi acuan
agar penulis bisa menjadi lebih baik lagi di masa mendatang.
Semoga laporan Tugas ini bisa menambah wawasan para pembaca dan bisa bermanfaat
untuk perkembangan dan peningkatan ilmu pengetahuan.
1.Latar Belakang
Prosedur yang berisi langkah-langkah penyelesaian masalah disebut algoritma.
Terdapat beberapa definisi lain dari algoritma - tetapi pada prinsipnya adalah sama, dengan
definisi yang diungkapkan di atas - yang kita kutip dari berbagai literatur, antara lain:
Algoritma adalah deretan instruksi yang jelas untuk memecahkan masalah, yaitu
memperoleh keluaran yang diinginkan dari suatu masukan dalam jumlah waktu yang
terbatas.
Algoritma adalah prosedur komputasi yang terdefinisi dengan baik yang menggunakan
beberapa nilai sebagai masukan dan menghasilkan beberapa nilai yang disebut keluaran.
Jadi, algoritma adalah deretan langkah komputasi yang mentransformasikan masukan
menjadi keluaran.
Algoritma adalah deskripsi dari suatu pola tingkah laku yang dinyatakan secara primitif yaitu
aksi-aksi yang didefenisikan sebelumnya dan diberi nama, dan diasumsikan sebelumnya
bahwa aksi-aksi tersebut dapat kerjakan sehingga dapat menyebabkan kejadian.
Algoritma merupkan urutan perintah atau langkah-langkah logis penyelesaian masalah yang
disusun secara sistematis dan logis.
Algoritma berasal dari nama penulis buku, yakni Abu Ja`far Muhammad Ibnu Musa Al-
Khwarizmi yang berasal dari Uzbekistan. Orang Barat menyebut Al-Khwarizmi dengan
Algorism.
Pada saat itu, Al-Khwarizmi menulis buku dengan judul Al Jabar wal-Muqabala yang artinya
`Buku Pemugaran dan Pengurangan` (The book of Restoration and Reduction). Dari judul
buku tersebut, kita juga memperoleh kata “aljabar” atau biasa dikenal dengan algebra.
Abu Abdullah Ibnu Musa al-Khawarizmi (770M-840M) lahir di Khawarizm (Kheva), kota yang
berada di selatan Sungai Oxus (sekarang disebut Uzbekistan) pada 770 M. Al Khawarizmi
merupakan salah satu ilmuan terkenal di zamannya. Ada beberapa cabang ilmu matematika
yang berhasil ditemukannya, antara lain yang dikenal sebagai astronom dan geografer.
Awalnya, algoritma merupakan istilah yang merujuk kepada aturan-aturan aritmetis yang
berguna untuk menyelesaikan persoalan dengan menggunakan bilangan numeric Arab.
Pada tahun 1950, kata algoritma pertama kali digunakan pada "algoritma Euclidean"
(Euclid`s algorithm). Euclid, seorang matematikawan Yunani (lahir pada tahun 350 M),
dalam bukunya yang berjudul Element menuliskan langkah-langkah untuk menemukan
pembagi bersama terbesar (common greatest divisor atau gcd), dari dua buah bilangan
bulat, m dan n [KNU73] (tentu saja Eulid tidak menyebut metodenya itu sebagai algoritma,
baru di abad modernlah orang-orang menyebut metodenya itu sebagai "algoritma
Euclidean"). Pembagi bersama terbesar dari dua buah bilangan bulat tak negatif adalah
bilangan bulat positif terbesar yang habis membagi kedua bilangan tersebut.
1,2,4,5,8,10,16,20,40,80
1,2,3,4,6,12,
maka gcd(80,12) = 4.
karena pembagian yang terakhir menghasilkan 0, maka sisa pembagian terakhir sebelum 0,
yaitu
2.Tujuan penulisan
- Untuk mengetahui pengertian dari algoritma sorting dan algoritma searching
-Untuk mengetahui macam-macam algoritma sorting dan algoritma searching srta
implementasinya dalam coding
BAB II
PEMBAHASAN
A. Algoritma Sorting
Algoritma Sorting atau Algoritma pengurutan adalah metode yang di butuhkan untuk
mengurutkan data. Data yang di urutkan dapat berupa tipe dasar atau berstruktur (struct).
Jika data bertipe struktur, maka harus dispesifikasikan berdasarkan field apa data tersebut
di urutkan. Terdapat banyak algoritma untuk mengurutkan data dan berikut adalah
algoritma-algoritma pengurutan beserta implementasi codingnya.
1. Buble sort
Buble sort adalah metode pengurutan yang melakukan penukaran data secara
berulang atau membandingkan elemen yang sekarang dengan elemen berikutnya agar
dapat di pastikan dalam suatu literasi tertentu tidak ada lagi perubahan atau penukaran.
<?php
function bubble_Sort($my_array ) {
do{
$swapped = false;
for( $i = 0, $c = count( $my_array ) - 1; $i < $c; $i++ ) {
if( $my_array[$i] > $my_array[$i + 1] ){
list( $my_array[$i + 1], $my_array[$i] ) = array( $my_array[$i], $my_array[$i + 1] );
$swapped = true;
}
}
}while( $swapped );
return $my_array;
}
$test_array = array(3, 1, 2, 6);
echo "array sebelum diurutkan :";
echo implode(', ',$test_array );
echo "<br/> array setelah diurutkan: ";
echo implode(', ',bubble_Sort($test_array));
2. Selection sort
Selection sort merupakan metode pengurutan dengan mencari nilai data terkecil
dimulai dari data diposisi 0 hingga diposisi N-1. Algoritma selection sort akan memindai nilai
terkecil dari suatu kumpulan data dan jika ada, data tersebut akan diletakkan pada urutan
pertama. Begitu selanjutnya untuk urutan kedua dan seterusnya.
Dikatakan selection sort karena algoritma ini mencoba memilih satu per satu elemen data
dari posisi awal, untuk mencari data paling kecil dengan mencatat posisi index-nya saja, lalu
dilakukan pertukaran hanya sekali pada akhir setiap tahapan.
function selection_sort($data){
for($i=0; $i<count($data)-1; $i++) {
$min = $i;
for($j=$i+1; $j<count($data); $j++) {
if ($data[$j]<$data[$min]) {
$min = $j;
}
}
$data = swap_positions($data, $i, $min);
}
return $data;
}
<?php
function insertion_Sort($my_array)
{
for($i=0;$i<count($my_array);$i++){
$val = $my_array[$i];
$j = $i-1;
while($j>=0 && $my_array[$j] > $val){
$my_array[$j+1] = $my_array[$j];
$j--;
}
$my_array[$j+1] = $val;
}
return $my_array;
}
$test_array = array(3, 0, 2, 5, -1, 4, 1);
echo "Original Array :\n";
echo implode(', ',$test_array );
echo "\nSorted Array :\n";
print_r(insertion_Sort($test_array));
?>
Shell Sort adalah salahsatu algoritma dalam melakukan sorting, atau pengurutan data
Angka. Tekniknya, dengan melakukan perbandingan angka pada 2 posisi dengan jarak
tertentu, jarak disini diartikan jarak posisi antara 2 bilangan yang ingin dibandingkan. Pada
algoritma pengurutan shell jarak antara dua elemen yang di bandingkan dan ditukarkan.
5.Merge sort
Merge sort merupakan algoritma pengurutan dalam ilmu komputer yang dirancang
untuk memenuhi kebutuhan pengurutan atas suatu rangkaian data yang tidak
memungkinkan untuk ditampung dalam memori komputer karena jumlahnya yang terlalu
besar.
<?php
echo "//shell sortn";
$data=array(6,5,3,1,8,7,2,4);
function shell_sort($data){
$n=count($data);
$k=0;
$gap[0]=(int) ($n / 2);
while($gap[$k]>1){
$k++;
$gap[$k]=(int)($gap[$k-1]/2);
}
for($i=0;$i<=$k;$i++){
$step=$gap[$i];
for($j=$step;$j<$n;$j++){
$temp=$data[$j];
$p=$j-$step;
while($p>=0 && $temp<$data[$p]){
$data[$p+$step]=$data[$p];
$p=$p-$step;
}
$data[$p+$step]=$temp;
}
}
return $data;
}
print_r(shell_sort($data));
?>
Berikut adalah hasilnya:
6.Quick sort
Quick Sort merupakan suatu algoritma pengurutan data yang menggunakan teknik
pemecahan data menjadi partisi-partisi, sehingga metode ini disebut juga dengan nama
partition exchange sort. Untuk memulai irterasi pengurutan, pertama-tama sebuah elemen
dipilih dari data, kemudian elemen-elemen data akan diurutkan diatur sedemikian rupa.
Algoritma ini mengambil salah satu elemen secara acak (biasanya dari tengah) yang disebut
dengan pivot lalu menyimpan semua elemen yang lebih kecil di sebelah kiri pivot dan semua
elemen yang lebih besar di sebelah kanan pivot. Hal ini dilakukan secara rekursif terhadap
elemen di sebelah kiri dan kanannya sampai semua elemen sudah terurut.
<?php
function quick_sort($my_array)
{
$loe = $gt = array();
if(count($my_array) < 2)
{
return $my_array;
}
$pivot_key = key($my_array);
$pivot = array_shift($my_array);
foreach($my_array as $val)
{
if($val <= $pivot)
{
$loe[] = $val;
}elseif ($val > $pivot)
{
$gt[] = $val;
}
}
return array_merge(quick_sort($loe),array($pivot_key=>$pivot),quick_sort($gt));
}
if($max != $i) {
$temp = $Array[$i];
$Array[$i] = $Array[$max];
$Array[$max] = $temp;
heapify($Array, $n, $max);
}
}
heapsort($MyArray, $n);
echo "\nSorted Array\n";
PrintArray($MyArray, $n);
?>
Berikut adalah hasilnya:
B. ALGORITMA SEARCHING
Algoritma Pencarian atau Searching adalah metode untuk menemukan nilai (data)
tertentu dalam sekumpulan data yang bertipe sama. Contohnya untuk mengubah
(mengupdet) data tertentu, langkah pertama yang harus di lakukan adalah mencari
keberadaan data tersebut du dalam kumpulannya. Jika data yang di cari di temukan, maka
data tersebut dapat di ubah nilainya dengan data yang baru. berikut adalah algoritma-
algoritma pengurutan beserta implementasi codingnya.
1. Sequential search
Adalah algoritma pencarian beruntun yang membandingkan setiap elemen larik satu
persatu secara beruntun, mulai dari elemen pertama, sampai elemen yang di cari di
temukan, atau seluruh elemen larik sudah di periksa.
#include <iostream>
#include <stdio.h>
#include <iomanip>
int main()
{
int a[11] = {12, 17, 10, 5, 15, 25, 11, 7, 25, 16, 19};
int i, n, flag;
cout << " ===== Contoh Sequential Search =====" << endl << endl;
cout << " Masukkan Bilangan Integer : ";
cin >> n;
cout << endl;
i = 0;
flag = 0;
while (i<=10){
if (a[i] == n){
flag++;
}
i++;
}
if (flag > 0){
cout << "\n Bilangan Ditemukan ";
cout << "\n Terdapat " << flag << " Bilangan yang Sama";
} else {
cout << "\n Bilangan Tidak Ditemukan ";
}
return 0;
}
#include <iostream>
using namespace std;
int binary_search(int a[], int l, int r, int key) {
while (l <= r) {
int m = l + (r - l) / 2;
if (key == a[m])
return m;
else if (key < a[m])
r = m - 1;
else
l = m + 1;
}
return -1;
}
a = bubble_sort(a,n);
int res = binary_search(a, 0, n - 1, key);
if (res != -1)
std::cout << key << "ditemukan " << endl;
else
std::cout << key << "tidak ditemukan" << endl;
return 0;
}
BAB III
PENUTUP
Demikian yang dapat kami paparkan mengenai algoritma sorting dan algoritma
searching. Semoga semuah hal yang telah di tulis dapat di pahami dan mohon maaf apabila
masih banyak terdapat kekurangan. Jika ada kelebihannya itu datangnya dari Tuhan yang
maha Esa. Jika ada salah atau ketidak sesuaian penulis laporan ini berasal dari diri penulis.
Terima Kasih