Makalah pencarian dan pengurutan data
-
Upload
ali-must-can -
Category
Education
-
view
637 -
download
47
Transcript of Makalah pencarian dan pengurutan data
0 | P e n c a r i a n & P e n g u r u t a n D a t a
MAKALAH
PEMOGRAMAN DASAR
Pencarian dan Pengurutan Data
Oleh
Ali Majid Wardana
XI TKJ2
Teknik Komputer Jaringan
SMK NEGERI 1 BATAM
1 | P e n c a r i a n & P e n g u r u t a n D a t a
KATA PENGANTAR
Puji syukur saya panjatkan kepada Allah SWT yang mana atas berkat dan rahmat-Nya
lah saya dapat menyelesaikan makalah yang berjudul “Pemograman Dasar” meskipun
penulis menyadari masih banyak terdapat kesalahan. Shalawat serta salam saya ucapkan
kepada junjungan alam yakni habibana wanabiyana Muhammad SAW kepada sahabatnya
serta tabi’in tabi’atnya yang mudah-mudahan sampai kepada kita selaku umatnya. Serta
tidak lupa saya ucapkan terimakasih kepada pihak-pihak yang telah membantu baik berupa
moril ataupun materi.
Hingga pada akhirnya semoga makalah ini bisa bermanfaat bagi saya sendiri khususnya
umumnya bagi para pembaca yang mudah-mudahan dapat menjadi ilmu yang bermanfaat.
Ali Majid Wardana
2 | P e n c a r i a n & P e n g u r u t a n D a t a
Daftar Isi KATA PENGANTAR .................................................................................................................. 1
Daftar Isi ...................................................................................................................................... 2
SORTING/PENGURUTAN ........................................................................................................ 3
Pengertian ............................................................................................................................... 3
Cara Kerja Sorting ................................................................................................................. 3
1.Bubble Sort ....................................................................................................................... 3
2.Selection Sort .................................................................................................................... 5
SEARCHING/PENCARIAN ...................................................................................................... 5
Pengertian ............................................................................................................................... 5
1.Binary Search ................................................................................................................... 5
2. Sequence search ............................................................................................................... 7
Daftar Pustaka............................................................................................................................ 8
3 | P e n c a r i a n & P e n g u r u t a n D a t a
SORTING/PENGURUTAN
Pengertian
>Sorting atau pengurutan data adalah proses yang sering harus dilakukan dalam pengolahan data. Sort dalam hal ini diartikan mengurutkan data yang berada dalam suatu tempat penyimpanan, dengan urutan tertentu baik urut menaik (ascending) dari nilai terkecil sampai
dengan nilai terbesar, atau urut menurun (descending) dari nilai terbesar sampai dengan nilai terkecil.
Sorting adalah proses pengurutan. Terdapat dua macam pengurutan:
Pengurutan internal (internal sort), yaitu pengurutan terhadap sekumpulan data yang disimpan dalam media internal komputer yang dapat diakses setiap elemennya secara langsung. Dapat dikatakan sebagai pengurutan tabel
Pengurutan eksternal (external sort), yaitu pengurutan data yang disimpan dalam memori sekunder, biasanya data bervolume besar sehingga tidak mampu untuk
dimuat semuanya dalam memori.
Dalam courseware ini, hanya akan dibahas algoritma pengurutan internal, dengan data berada dalam array satu dimensi.
Cara Kerja Sorting 1. Misalkan Seorang user ingin mengurutkan data “15, 10, 7, 22, 17, 5, 12”.
2. User menginputkan data.
3. Proses sorting akan dilakukan tahap per tahap, untuk n = 7 maka akan dilakukan (n – 1
) = 6 tahap.
4. Jika menggunakan algoritma Bubble Sort, maka pengurutan dimulai dengan
membandingkan elemen sekarang dengan elemen berikutnya.
5. Apabila elemen sekarang > elemen berikutnya, maka posisinya ditukar dan kalau
elemennya < elemen berikutnya, maka tidak perlu ditukar.
6. Proses perbandingan akan terus diulang sampai dipastikan tidak ada lagi pertukaran
atau sudah
7. terurut.
8. Jika menggunakan algoritma Selection Sort, maka pengurutan dimulai dengan
membandingkan elemen yang sekarang dengan elemen berikutnya sampai ke elemen
yang terakhir. Jika ditemukan elemen lain yang lebih kecil dari elemen sekarang maka
dicatat posisinya dan langsung ditukar. Proses perbandingan akan terus diulang sampai
dipastikan tidak ada lagi pertukaran atau sudah terurut.
1.Bubble Sort Bubble sort adalah proses pengurutan sederhana yang bekerja dengan cara berulang kali
membandingkan dua elemen data pada suatu saat dan menukar elemen data yang urutannya
salah. Ide dari Bubble sort adalah gelembung air yang akan "mengapung" untuk table yang
terurut menaik (ascending). Elemen bernilai kecil akan "diapungkan" (ke indeks terkecil),
artinya diangkat ke "atas" (indeks terkecil) melalui pertukaran. Karena algoritma ini melakukan
pengurutan dengan cara membandingkan elemen-elemen data satu sama lain, maka bubble sort
termasuk ke dalam jenis algoritma comparison-based sorting.
4 | P e n c a r i a n & P e n g u r u t a n D a t a
Proses dalam Bubble sort dilakukan sebanyak N-1 langkah (pass) dengan N adalah ukuran
array. Pada akhir setiap langkah ke – I , array L[0..N] akan terdiri atas dua bagian, yaitu
bagian yang sudah terurut L[0..I] dan bagian yang belum terurut L[I+1..N-1]. Setelah langkah
terakhir, diperoleh array L[0..N-1] yang terurut menaik.
contoh:
#include <iostream.h>
#include <iomanip.h>
void main ()
{
int nilai[8];
int temp;
cout<<"Data sebelum diurutkan"<<endl;
for (int ctr=1;ctr<=8;ctr++)
{
cout<<"Masukkan Data ke "<<ctr<<" : ";
cin>>nilai[ctr];
}
cout<<endl;
cout<<endl;
for (int i=0;i<=8;i++)
{
for (int ii=0;ii<=8;ii++)
{
if (nilai[ii]>nilai[ii+1])
{
temp=nilai[ii];
nilai[ii]=nilai[ii+1];
nilai[ii+1]=temp;
}
}
}
5 | P e n c a r i a n & P e n g u r u t a n D a t a
cout<<"Data setelah diurutkan"<<endl;
for (int iii=0;iii<8;iii++)
{
cout<<setw(3)<<nilai[iii];
}
}
2.Selection Sort Merupakan kombiinasii anttara sorttiing dan searchiing.
Selection Sort adalah suatu metode pengurutan yang membandingkan elemen yang sekarang
dengan elemen berikutnya sampai ke elemen yang terakhir. Jika ditemukan elemen lain yang
lebih kecil dari elemen sekarang maka dicatat posisisnya dan langsung ditukar. Konsep proses
Selection Sort adalah mencari (memilih) nilai terkecil dan menukarnya dengan elemen paling
awal (paling kiri) pada setiap tahap. Proses Sort dilakukan tahap per tahap. Untuk n = 7 maka
akan dilakukan (n – 1) = 6 tahap.
SEARCHING/PENCARIAN
Pengertian pencarian data (searching) memerlukan operasi yang penting dalam pengolahan data. Bahkan,
tidak jarang keduanya digunakan secara bersama-sama untuk menghasilkan output yang sesuai
kebutuhan para pemakai.
Ada dua macam metode yang bisa digunakan untuk melakukan proses pencarian data yang bisa
lo gunain antara lain :
• Liniear Search ( Metode Pencarian Langsung)
• Binary Search ( Metode Pencarian Biner)
Umumnya, metoda pencarian langsung akan lebih efisien digunakan untuk mencari data dalam
sekelompok data dalam jumlah yang sangat sedikit. Dalam kondisi data yang hendak dicari
berada dalam sekumpulan data yang tidak urut, maka penerapan metode pencarian langsung
akan lebih mudah. Sekalipun demikian, dalam cacah data yang banyak maka penerapan metoda
ini akan mengakibatka proses yang tidak efisien.
Dalam kasus demikian, mungkin akan menjadi lebih baik jika data diurutkan terlebih dahulu
dan kemudian pencarian dilakukan menggunakan metoda pencarian biner. Sebaliknya, dalam
kondisi dimana data yang akan dicari berada dalam sekelompok data dalam jumlah yang besar
dan urut, maka pengguna metoda pencarian biner akan memberikan hasil yang lebih efisien.
1.Binary Search Pencarian Biner (Binary Search) dilakukan untuk :
Memperkecil jumlah operasi pembandingan yang harus dilakukan antara data yang dicari
dengan data yang ada di dalam tabel, khususnya untuk jumlah data yang sangat besar
6 | P e n c a r i a n & P e n g u r u t a n D a t a
ukurannya.
Prinsip dasarnya adalah melakukan proses pembagian ruang pencarian secara berulang-ulang
sampai data ditemukan atau sampai ruang pencarian tidak dapat dibagi lagi (berarti ada
kemungkinan data tidak ditemukan).
Syarat utama untuk pencarian biner adalah data di dalam tabel harus sudah terurut, misalkan
terurut menaik.
Berikut ini code binary search dengan bahasa C++
#include
#include
#include
void binSearch(int cari);
void main(){
clrscr();
int searchValue=20; /*Nilai yang dicari dalam arry yang sudah terurut */
binSearch(searchValue);
getch();
}
void binSearch(int cari)
{ int lb=1, ub=19, mid; /* lb merupakan batas bawah, up merupakan batas atas */
int nilai [20] ={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
int jumlahPerbandingan =1; /* Optional */
mid= (lb+ub)/2;
while( nilai[mid]!= cari && lb<=ub)
{
jumlahPerbandingan++;
if( nilai [mid] > cari )
{ub = mid-1;}
Else
{lb = mid +1;}
mid = (lb+ub)/2;
}
if(lb<=ub)
{
cout << “Nilai berhasil ditemukan”;
7 | P e n c a r i a n & P e n g u r u t a n D a t a
cout<<”Jumlah perbandingan :”<
}
else
cout <<”Nilai tidak ditemukan”;
}
Catatan:
Array bersifat statis baik nilai maupun jumlah element telah ditentukan sejak awal program.
2. Sequence search Pencarian sekuensial atau pencarian linear merupakan model pencarian yang paling sederhana
yang dilakukan terhadap suatu kumpulan data. Secara konsep, penjelasannya adalah sebagai
berikut: Terdapat L yang merupakan larik yang berisi n buah data (L[0], L[1],…, L[n-1]) dan
k adalah data yang hendak dicari. Pencarian dilakukan untuk menemukan L[i] = k dengan I
adalah bilangan indeks terkecil yang memenuhi kondisi 0 ≤ k ≤ n-1. Tentu saja ada
kemungkinan bahwa data yang dicari tidak ditemukan. Contoh,L = [10,9,4,6,4,2,5] dimanakah
posisi 4 yang pertama? Dalam hal ini k adalah 4 dan k ditemukan pada posisi dengan indeks
berupa 2.
Contoh Code Programnya
#include iostream.h
#include conio.h
using namespace std;
int main()
{
const int arraySize = 5;
double target;
int array[arraySize] = {32, 431, -34, 23, 12};
int flag;
// flag is used to log how many times the target is encountered.
flag = 0;
cout << "Enter a target to be found: ";
cin >> target;
for(int cntr = 0; cntr < arraySize; cntr++)
{
if(array[cntr] == target)
{
8 | P e n c a r i a n & P e n g u r u t a n D a t a
cout << "Target found in array index " << cntr << "."
<< endl;
flag += 1;
}
}
// Test to see if target was found.
if(flag < 1)
{
cout << "Target not found." << endl;
}
return 0;
getch();
}
Daftar Pustaka http://amw-free.my.id
http://tupangboy.blogspot.com
http://budakbius.blogspot.com