Makalah pencarian dan pengurutan data

9
0 | Pencarian & Pengurutan Data MAKALAH PEMOGRAMAN DASAR Pencarian dan Pengurutan Data Oleh Ali Majid Wardana XI TKJ2 Teknik Komputer Jaringan SMK NEGERI 1 BATAM

Transcript of Makalah pencarian dan pengurutan data

Page 1: 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

Page 2: Makalah pencarian dan pengurutan data

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

Page 3: Makalah pencarian dan pengurutan data

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

Page 4: Makalah pencarian dan pengurutan data

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.

Page 5: Makalah pencarian dan pengurutan data

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;

}

}

}

Page 6: Makalah pencarian dan pengurutan data

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

Page 7: Makalah pencarian dan pengurutan data

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”;

Page 8: Makalah pencarian dan pengurutan data

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)

{

Page 9: Makalah pencarian dan pengurutan data

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