Contoh Program C++ Searching

Sumber:

http://sokhi95.blogspot.com/2013/05/contoh-program-c-searching.html

Program : C++
Specific  : Searching

========================================

#include <stdio.h>
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
main()
{
char npm[500][10];
char nm[500][20];
char kls[500][3];
char npm_cari [10];
int ketemu=0, i=0, jd=0, no=0;
char adm=’Y’;

while (adm==’Y’)
{
clrscr();
jd++;
gotoxy (10,5) ; cout <<“Input Data Mahasiswa”;
gotoxy (10,7) ; cout <<“Data Mahasiswa ke-” << (i+1);
gotoxy (10,8) ; cout <<“NPM   = “;
gotoxy (10,9) ; cout <<“Nama  = “;
gotoxy (10,10); cout <<“Kelas = “;
gotoxy (10,12); cout <<“Ada Data Mahasiswa Lainnya [Y/T] = “;
gotoxy (18,8); gets (npm[i]);
gotoxy (18,9); gets (nm[i]);
gotoxy (18,10); gets (kls[i]);
i++;
gotoxy (45,12); cin >> adm;
}
// Menampilkan seluruh data yg diinputkan
clrscr();
gotoxy (10,2); cout << “Daftar Mahasiswa TI Angkatan 2012”;
gotoxy (2,4); cout << “————————————————“;
gotoxy (2,5); cout << “| No. |   NPM    |       Nama          | Kelas |”;
gotoxy (2,6); cout << “————————————————“;
//                    234567890123456789012345678901234567890123456789
//                            1         2         3         4
for (i=0; i<jd; i++)
{
no=no+1;
gotoxy (2,6+no); cout << “|     |          |                     |       |”;
gotoxy (5,6+no); cout << no << “.”;
gotoxy (10,6+no); cout << npm[i];
gotoxy (21,6+no); cout << nm[i];
gotoxy (45,6+no); cout << kls[i];

}
gotoxy (2,7+no); cout << “————————————————“;
getch();

// Proses Searching

i=0;
clrscr();
gotoxy (20,10); cout << “Mencari Data Mahasiswa”;
gotoxy (20,12); cout << “Inputkan NPM = “; cin >> npm_cari;
while (i<jd && ketemu==0)
{
if(strcmp(npm[i],npm_cari)==0)
ketemu=1;
else
i++;
}

if (ketemu)
{
gotoxy(20,14); cout << “Data Mahasiswa tsb berada pada indeks ke-” << i;
gotoxy(20,16); cout << “Nama  = ” << nm[i];
gotoxy(20,17); cout << “Kelas = ” << kls[i];
}
else
{    gotoxy(20,14); cout << “Data Mahasiswa tsb tidak ditemukan”; }
getch();
}

Iklan

Contoh Program C++ Searching Mencari Angka

Sumber:

http://pemrogramanamikomsi.blogspot.com/2013/11/contoh-program-c-serching-mencari-angka.html

Contoh program c++ Sequential Search mencari posisi / letak angka.

searching . . . .mencari angka data ditemukan

#include <conio.h>
#include <iostream.h>
main(){
int c,i,posisi;
int A[20]={3,2,4,10,20,1,5,8,7,9,6,5,11,12,14,13,16,15,17,19};

cout<<“Data : “;
for(i=0;i<20;i++){
cout<<A[i]<<” “;
}

cout<<“\nData yang ingin dicari : “;
cin>>c;
i=0;
posisi=0;
while(i<19 && A[i]!=c){
i++;
}
if (A[i]!=c){
cout<<“Maaf data yang dicari tidak ada”;
}else if(posisi=i+1)
cout<<“ditemukan pada posisi ke “<<posisi;
getch();
}

Sorting dengan Metode Insertion dan Merge Sort

Sumber:

http://dinda-dinho.blogspot.com/2013/02/sorting-dengan-metode-insertion-dan.html

 

Insertion Sort
Posting sebelumnya dibahas tentang Bubble Sort  dan Selection Sort, kali ini akan membahas Insertion Sort. Mirip dengan cara orang mengurutkan kartu, selembar demi selembar kartu diambil
dan disisipkan (insert) ke tempat yang seharusnya.  Pengurutan dimulai dari data ke-2 sampai dengan data terakhir, jika ditemukan data yang lebih kecil , maka akan ditempatkan ( diinsert ) diposisi yang seharusnya. Pada penyisipan elemen, maka elemen-elemen lain akan bergeser ke belakang.

Contoh dari Insertion Sort
Insertion-sort-example-300px

 

Merge Sort
Algoritma dirumuskan dalam 3 langkah berpola divide-and-conquer. Berikut menjelaskan langkah kerja dari Merge sort. 

  1. Divide  : Memilah elemen – elemen dari rangkaian data menjadi dua bagian.
  2. Conquer : Conquer setiap bagian dengan memanggil prosedur merge sort secara rekursif
  3. Kombinasi : Mengkombinasikan dua bagian tersebut secara rekursif untuk mendapatkan rangkaian data berurutanProses rekursi berhenti jika mencapai elemen dasar. Hal ini terjadi bilamana bagian yang akan diurutkan menyisakan tepat satu elemen. Sisa pengurutan satu elemen tersebut menandakan bahwa bagian tersebut telah terurut sesuai rangkaian.

Contoh dari Merge Sort

Merge-sort-example-300px

 

 

Sorting dengan Metode Quick Sort

Sumber:

http://dinda-dinho.blogspot.com/2013/07/sorting-dengan-metode-quick-sort.html

Sorting dengan Metode Quick Sort

Quicksort-example

Quick Sort sebenarnya sama seperti Merge sort yaitu menggunakan metode Divide & Conquer. Prinsip dalam algoritma quicksort sebagai berikut:

  1. Bila elemen dalam array kurang dari jumlah tertentu (biasanya 2), proses selesai.
  • Ambil sebuah elemen yang berfungsi sebagai poros.
  • Pisahkan array dalam 2 bagian, sebelah kiri lebih kecil dari poros, sebelah kanan lebih besar dari poros.
  • Ulangi proses secara rekursif pada tiap-tiap bagian.

 

Hal penting dari hal algoritma ini adalah: bagaimana memilih poros dengan tepat dan secara efisien mengatur tiap-tiap elemen sehingga didapat elemen kecil > poros > elemen besar dalam kondisi (mendekati) seimbang.
Contoh Quick sort dalam gambar

quick-sort

Sorting dengan Metode Selection Sort

Sumber:

http://dinda-dinho.blogspot.com/2013/02/sorting-dengan-metode-selection-sort.html

Ini adalah post lanjutan dari post Metode Bubble Sort. Kali  ini akan dijelaskan tentang sorting dengan metode selection sort yang merupakan kombinasi antara sorting dan searching Untuk setiap proses, akan dicari elemen-elemen yang belum diurutkan yang memiliki  nilai terkecil atau terbesar akan dipertukarkan ke posisi yang tepat di dalam array. Misalnya untuk putaran pertama, akan dicari data dengan nilai terkecil dan data ini akan ditempatkan di indeks terkecil (data[0]), pada putaran kedua akan dicari data kedua terkecil, dan akan ditempatkan di indeks kedua (data[1]). Selama proses, pembandingan dan pengubahan hanya dilakukan pada indeks pembanding saja, pertukaran data secara fisik terjadi pada akhir proses. Berikut Proses dari selection sort

sel1
sel2
sel3
sel4
sel5

Jika kalian masih bingung berikut animasi dari proses selection sort

Selection-Sort-Animation

Prosedur Selection Sort
void selection_sort(){
for(int i=0;i < n-1;i++){
pos = i;
for(int j=i+1;j < n;j++){
if (data[j] < data[pos])
pos = j; //ascending
}
if (pos != i) tukar(pos,i);
}
}

Contoh Program dari Selection Sort :

sel6

Sorting dengan Bubble Sort

Sumber:

http://dinda-dinho.blogspot.com/2013/02/sorting-dengan-bubble-sort.html

Sorting adalah pengurutan atau merangkai data dalam suatu metode atau cara tertentu yang sebelumnya data tersebut tidak berurutan. data tersebut bisa terurut secara ascending atau berurutan dari nilai terkecil ke nilai yang terbesar atau secara descending atau berurutan dari nilai terbesar ke nilai terkecil.

Deklarasi array untuk Sorting
deklarasi secara global
int data[100];
int n; //jumlah data

Prosedur Tukar 2 Buah Data :
void tukar(int a,int b){
int tmp;  tmp = data[a];
data[a] = data[b];
data[b] = tmp;
}

Dalam sorting terdapat beberapa metode, diantaranya bubble sort, selection sort, merge sort dan insertion sort.

Bubble sot : Diberi nama “Bubble” karena proses pengurutan secara berangsur-angsur bergerak/berpindah ke posisinya yang tepat, seperti  gelembung yang keluar dari sebuah gelas bersoda. Bubble Sort mengurutkan data dengan cara membandingkan  elemen sekarang dengan elemen berikutnya. Jika elemen sekarang lebih besar dari elemen berikutnya maka  kedua elemen tersebut ditukar, jika pengurutan ascending . Jika elemen sekarang lebih kecil dari elemen berikutnya, maka  kedua elemen tersebut ditukar , jika pengurutan descending. Kapan berhentinya?  Bubble sort berhenti jika seluruh array telah diperiksa dan tidak  ada pertukaran lagi yang bisa dilakukan, serta tercapai perurutan yang telah  diinginkan.

buble1
Pada gambar disamping, pegecekan dimulai dari data yang paling akhir, kemudian dibandingkan
dengan data di depannya, jika data di depannya lebih besar maka akan ditukar.

bubble2

-Tidak ada penukaran karena 3<8 p=””>

– Pengurutan berhenti disini

Pada proses kedua, pengecekan dilakukan sampai dengan data ke-2 karena data pertama
pasti sudah paling kecil.

bubble3

-Pegurutan berhenti disini

bubble4

– Tidak ada penukaran, karena 10 < 15

-Pengurutan berhenti disin

bubble5

Prosedur Bubble Sort
void bubble_sort(){
for (int i=1;i < n;i++){
for (int j=n-1;j >= i;j–){
if (data[j] < data[j-1])
tukar(j,j-1); //ascending   }
}
}

Contoh Program Sorting dengan Bubble Sort :

bubble6

Untuk metode sorting selanjutnya akan dilanjutkan dalam posting berikutnya

Algoritma Dan Contoh Metode Sorting Insertion Sort

Sumber:

http://asalasah.net/blog/algoritma-dan-contoh-metode-sorting-insertion-sort/

Proses yang terjadi pada pengurutan dengan menggunakan metode Insertion Sort adalah dimulai dari data ke-2 kemudian disisipkan pada tempat yang sesuai. Data pada posisi pertama diandaikan memang sudah pada tempatnya. Ilustrasinya mirip seperti saat menyisipkan kartu di permainan kartu. Agar lebih mudah dalam memahaminya silahkan perhatikan ilustrasi gambar berikut ini:
Insertion sort by :asalasah.net
Insertion sort by :http://asalasah.net/blog/
Gambar diatas dipahami aja satu satu proses jalannya, sekarang lita lihat source code untuk insertion sort menggunakan C.
for (i = 1 ; i <= n - 1; i++) 
{
 j = i;
 while ( j > 0 && data[j] < data[j-1]) 
 {
  temp      = data[j];
  data[j]   = data[j-1];
  data[j-1] = temp;
  j--;
 }
}

Diatas masih sebuah source code dasar metode sorting insertion sort yang diimplementasikan dari algoritma diatas. Untuk contoh programnya dapat dilihat di : Pengurutan data random menggunakan Inserion Sort di C

Selesai ~ Ahmad Ariful Amri