• Tidak ada hasil yang ditemukan

Insertion Sort

Dalam dokumen Modul Struktur Data 2016.pdf (Halaman 37-45)

int tmp = data[a]; data[a] = data[b]; data[b] = tmp; }

3.3 Insertion Sort

1. Mirip dengan cara orang mengurutkan kartu, selembar demi selembar kartu diambil dan disisipkan ke tempat yang seharusnya.

2. Pengurutan dimulai dari data ke-2 sampai data terakhir, jika ditemukan data yang lebih kecil, maka akan ditempatkan pada posisi yang seharusnya.

3. Pada penyisipan elemen, maka elemen-elemen lain akan bergeser ke  belakang.

Contoh : Sour ce CodeInsertion Sort

#include <iostream> using namespace std; int data[10],data2[10]; int n;

{

int t;

t = data[b]; data[b] = data[a]; data[a] = t; }

void Input() {

cout<<"Masukkan jumlah data = ";cin>>n;

cout<<"--- "<<endl; for(int i=0;i<n;i++)

{

cout<<"Masukkan data ke-"<<(i+1)<<" = ";cin>>data[i]; data2[i] = data[i]; } cout<<endl; } void Tampil() { for(int i=0;i<n;i++) { cout<<data[i]<<" "; } cout<<endl; } void insertion_sort() { int temp,i,j; for(i=1;i<n;i++) { temp = data[i]; j = i -1; while(data[j]>temp && j>=0) { data[j+1] = data[j]; j--; }

data[j+1] = temp; Tampil(); } cout<<endl; } main() { cout<<"*---*"<<endl;

cout<<"* Selamat datang di aplikasi *"<<endl; cout<<"* Insertion Sort *"<<endl;

cout<<"*---*"<<endl; Input();

cout<<"Proses Insertion Sort,,,,,,,"<<endl;

cout<<"--- "<<endl; Tampil();

insertion_sort();

cout<<"--- "<<endl; cout<<" TERIMA KASIH "<<endl; cout<<"--- "<<endl; }

Tampil an H asil

3.4 Quicksort

Metode sorting dengan quicksort cukup sulit dipahami, namun metode ini merupakan metode sorting tercepat yang ada dengan kompleksitas n log n. Metode ini menggunakan paradigma devide & conquer, sehingga dalam prosesnya metode ini membagi array menjadi 2 bagian untuk selanjutnya diproses kembali secara rekursif dengan memanggil dirinya sendiri.

Di dalam metode ini dikenal beberapa istilah, yaitu : 1. Pivot

sembarang elemen array yang digunakan sebagai batas. Pivot ini dapat dipilih secara random atau dengan memilih elemen yang berada di tengah array.

2. Partisi

Hasil pembagian array menjadi 2 sub-array melalui proses  pemartisian.

Berikut Ilustrasi Algoritma Quicksort.

ContohSour ce Code  Quicksort

#include <iostream> using namespace std; int data[10], data2[10]; int n;

void tukar(int a, int b) { int t; t = data[b]; data[b] = data[a]; data[a] = t; } void Input() {

cout<<"Masukkan jumlah data = "; cin>>n;

cout<<"--- "<<endl; for(int i=0;i<n;i++)

{

cout<<"Masukkan data ke-"<<(i+1)<<" = "; cin>>data[i];

} cout<<endl; } void Tampil() { for(int i=0;i<n;i++) { cout<<data[i]<<" "; } cout<<endl; }

void QuickSort(int L, int R) //the best sort i've ever had :) { int i, j; int mid; i = L; j = R; mid = data[(L+R) / 2]; do {

while (data[i] < mid) i++; while (data[j] > mid) j--; if (i <= j) { tukar(i,j); i++; j--; }; Tampil(); } while (i < j); if (L < j) QuickSort(L, j); if (i < R) QuickSort(i, R); } main() { cout<<"*--- *"<<endl; cout<<"* Selamat datang di aplikasi *"<<endl; cout<<"* Quick Sort *"<<endl; cout<<"*--- *"<<endl; Input();

cout<<"Proses Quick Sort,,,,,,,"<<endl;

cout<<"--- "<<endl; Tampil();

QuickSort(0,n-1);

cout<<"--- "<<endl; cout<<" TERIMA KASIH "<<endl; cout<<"--- "<<endl; }

Tampil an H asil

Tugas !

1. Buatlah 2 buah program pengurutan dengan menggunakan metode insertion sort dan quick sort dengan jumlah data sebanyak N dan bilangan acak berupa T

Input :

 Nilai N dan T sejumlah nilai N Output :

e) Urutan bilangan secara ascending f) Urutan bilangan secara descending

2.  buatlah program untuk mengurutkan data mahasiswa (NIM, Nama, Jenis Kelamin, Tanggal Lahir). Program harus bisa melayani pengurutan secara ascending atau descending, dan pengurutan bisa dipilih berdasarkan nama atau NIM.

3. Buatlah program sorting dengan menggunakan metode insertion sort. User akan diminta menginput 10 bilangan yang kemudian akan diurutkan. Sediakan pula fungsi untuk mencari posisi bilangan (bilangan yang akan dicari ada pada daftar bilangan yang telah diurutkan, beritahukan pada urutan kepada bilangan tersebut).

BAB IV

SEARCHING

4.1 Pengertian

Dalam kehidupan sehari-hari sebenarnya kita sering melakukan pencarian data. Sebagai contoh, jika kita menggunakan kamus untuk mencari kata-kata dalam Bahasa Ingrris yang belum kita ketahui terjemahannya dalam Bahasa Indonesia. Contoh lain yaitu ketika kita menggunakan buku telepon untuk mencari nomor telepon teman, dan masih banyak contoh lainnya. Pencarian juga sering disebut dengan Table Look-Up atau Storage & Retrieval Information yang mana ini adalah suatu proses untuk mengumpulkan sejumlah informasi di dalam  pengingat komputer dan kemudian mencari kembali informasi yang diperlukan

secepat mungkin.

Algoritma pencarian (searching algorithm) adalah algoritma yang menerima sebuah argumen kunci dan dengan langkah-langkah tertentu akan mencari rekaman dengan kunci tersebut. Setelah proses pencarian dilaksanakan, akan diperoleh salah satu dari dua kemungkinan, yaitu data yang dicari berhasil ditemukan (successful) atau data yang kita cari tersebut tidak berhasil ditemukan (unsuccessful).

Metode pencarian data dapat dilakukan dengan dua cara, yaitu pencarian data  bagian dalam (internal searching) dan pencarian data bagian luar (external searching). Pada internal searching, semua rekaman yang diketahui berada dalam  pengingat komputer. Sedangkan pada external searching tidak semua rekaman yang diketahui berada dalam pengingat komputer, tetapi ada sejumla rekaman yang tersimpan dalam penyimpanan luar. Misalnya pita atau cakram magnetis. Selain itu metode pencarian data juga dapat dikelompokkan menjadi pencarian statis (static searching) dan pencarian dinamis (dynamic searching). Pada  pencarian statis, banyaknya rekaman data yang diketahui dianggap tetap. Pada  pencarian dinamis, banyaknya rekaman data yang diketahui bisa berubah-ubah

yang mana disebabkan oleh penambahan atau penghapusan suatu rekaman.

Ada dua macam teknik pencarian yaitu pencarian sekuensial dan pencarian biner. Perbedaan dari dua teknik ini terletak pada keadaan data. Pencarian sekuensial digunakan apabila data dalam keadaan acak atau tidak terurut (contoh: sequential search). Sebaliknya, pencarian biner digunakan pada data yang sudah dalam keadaan urut (contoh: Binary serach dan interpolation search).

Dalam dokumen Modul Struktur Data 2016.pdf (Halaman 37-45)

Dokumen terkait