Anda di halaman 1dari 17

Nama :I Made Wiranatha

Nim :180030327
Kelas :AF 183

Riview Materi

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

A. algoritma searching ( sequential)


Pencarian Sekuensial (sequential searching) atau pencarian berurutan sering disebut
pencarian linear merupakan metode pencarian yang paling sederhana. Pencarian beruntun
adalah proses membandingkan setiap elemen larik satu per satu secara beruntun, mulai dari
elemen pertama sampai elemen yang dicari ditemukan atau seluruh elemen sudah diperiksa.
Misalkan ada 7 data dalam array A  

Data yang akan dicari adalah 1, misal X = 1


Pertama kita membandingkan X dengan nilai pertama 12, jika nilai yang dibandingkan
dengan X tidak sama maka dilanjutkan ke nilai berikutnya yaitu 5, 23, 47 , 1 (nilai ditemukan
pada indek ke 4)

 Contoh algoritma sequential dalam Bahasa C :

#include <iostream.h>
#include <conio.h>
 
int main()
{
   int nilai[5];
   int i;
   int cari,ketemu;
   {
        {
        for(i=0;i<=4;i++)
         {
         cout<<"Masukkan nilai indeks ke-"<<i<<" ";
         cin>>nilai[i];
         }
        }
   cout<<endl;
   }
   {
    for(i=0;i<=4;i++)
        {
        cout<<" "<<nilai[i];
        }
   cout<<endl;
   }
 
   cout<<"Input bilangan yang dicari : ";
   cin>>cari;
 
    ketemu=0;
    for(i=1;i<=4;i++)
    {
        if (nilai[i]==cari)
        {
            ketemu=1;
            cout<<"Data ditemukan pada indeks ke-"<<i;
        }
    }
 
    if (ketemu==0)
    {
       cout<<"Data tidak ditemukan";
    }
 
 getch();
 return 0;
}

B. Metode Pencarian Bagi Dua (Binary Search) 


Metode ini diterapkan pada sekumpulan data dalam suatu array yang sudah terurut
(ascending (kecil ke besar) atau descending (besar ke kecil)). Metode ini lebih cepat
dibandingkan metode Sequential Search, akan tetapi metode ini memiliki kelemahan jika
ada 2 data yang sama maka hanya 1 yang akan ditemukan.
Misalkan ada 9 data terurut secara ascending A[9] = { 2, 7, 11, 16, 21, 22, 29, 31, 99}
carilah data X = 31

Penyelesaian :

1.  Karena data sudah diurutkan maka langsung saja cari posisi tengah
Posisi awal + posisi akhir / 2
(0 + 8) / 2 = 4 jadi posisi tengah berada pada indeks ke 4
2. Bandingkan data yang dicari X=31 dengan data yang ditenganh 21
31 > 21 maka posisi tengah + 1 (langkah ke 5)

3. Abaikan data yang berada di kiri, karena posisi tengah +1 maka posisi awal dimulai dari
indeks ke 5 dan posisi akhir indeks ke 8

4.  Ulangi langkah ke 2, posisi awal + posisi akhir /2


(5 + 8) / 2 = 6,5 abaikan ,5. Jadi posisi tengan adalah indeks ke 6

5.  Bandingkan x=31 dengan data tengah 31


 31 = 31 , data yang dicari sama dengan data yang berada di posisi tengah. Jadi data ada di
indeks ke 6.

Sorting
Sorting adalah proses mengatur sekumpulan objek menurut aturan atau susunan tertentu.
Urutan objek tersebut dapat menaik atau disebut juga ascending (dari data kecil ke data lebih
besar) ataupun menurun/descending(dari data besar ke data kecil).
1. Bubble sort / pengurutan gelembung ini merupakan suatu metode pengurutan
gelembung yang diinspirasi oleh gelembung sabun yang ada di dalam permukaan air,
karena berat jenis gelembung sabun lebih ringan daripada berat jenis air maka
gelembung sabun akan selalu megapung. Prinsip pengapungan ini juga dipakai pada
pengurutan gelembung. Elemen yang berharga paling kecil “diapungkan”, yang
artinya diangkat ke atas (atau ke ujung paling kiri) melalui pertukaran. Proses
pengapungan ini dilakukan N kali langkah. Pada langkah ke 1.
Untuk contoh program ini adalah
#include <iostream.h>
#include <conio.h>
main(){
int nilai[‘n’];
int temp;
int n;
cout<<“Banyak Data: “;
cin>>n;
cout<<endl;
for (int a=1; a<=n; a++){
cout<<“nilai[“<<a<<“]: “;
cin>>nilai[a];
}
cout<<“\n\n”;
cout<<“Data Sebelum diurutkan”<<endl;
for(int a=1; a<=n; a++){
cout<<nilai[a]<<” “;
}
for(int a=n-1; a>=1; a–){
for(int b=1; b<=a; b++){
if(nilai[b]>nilai[b+1]){
temp=nilai[b+1];
nilai[b+1]=nilai[b];
nilai[b]=temp;
}
}
}
cout<<“\n\nData Setelah Diurutkan (Ascending)”<<endl;
for (int a=1; a<=n; a++){
cout<<nilai[a]<<” “;}
cout<<“\n\n”;
cout<<“\n\nData Setelah Diurutkan (Descending)”<<endl;
for (int a=n; a>=1; a–){
cout<<nilai[a]<<” “;}
getch();
2. Selection Sort / Pengurutan Maksimum-Minimum
Metode pengurutan ini didasarkan pada pemilihan elemen maksimum atau minimum
kemudian mempertukarkan elemen maksimum-minimum tersebut dengan elemen terujung
larik (elemen ujung kiri atau elemen ujung kanan), selanjutnya elemen terujung itu kita
“isolasi” dan tidak diikut sertakan pada proses selanjutnya. Karena proses utama dalam
pengurutan adalah pemilihan elemen maksimum/minimum, maka metode ini disebut metode
pemilihan ( selection)
Contoh programnya adalah :
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
int main(){
//deklarasi array dengan 7 elemen
int A[7];
int j,k,i,temp;
int jmax,u=6;
//memasukkan nilai sebelum diurutkan
cout<<“Masukkan nilai pada elemen array :”<<endl;
for(i=0;i<7;i++)
{
cout<<“A[“<<i<<“]=”;
cin>>A[i];
}
//Proses pengurutan secara menaik (Ascending)
for(j=0;j<7;j++)
{
jmax=0;
for(k=1;k<=u;k++)
if (A[k] > A[jmax])
jmax=k;
temp=A[u];
A[u]=A[jmax];
A[jmax]=temp;
u–;
}
//menampilkan nilai setelah diurutkan
cout<<“\nNilai setelah diurutkan =”<<endl;
for(i=0;i<7;i++)
cout<<A[i]<<”  “;
getch();
}
. 3. Insertion Sort/pengurutan sisip adalah metode pengurutan dengan cara menyisipkan
elemen larik pada posisi yang tepat. Pencarian posisi yang tepat dilakukan dengan pencarian
beruntun. Selama pencarian posisi yang tepat dilakukan pergeseran elemen larik.
Contoh program insertion sorting :
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
main (){
int i,j, b, k, m, n,x,z,ketemu=0;
int data[‘n’], temp[100];
cout<<“\n======================\n”<<endl;
cout<<“\n—-BELAJAR SORTING—\n”;
cout<<“\n======================\n”<<endl;
cout<<“Inputkan Banyak Data: “;
cin>>n;
for(i=0; i<n; i++){
cout<<“Data Ke-“<<i<<” : “;
cin>>data[i];
}
cout<<“\n\n”;
cout<<“Data Sebelum diurutkan”<<endl;
for(int i=0; i<n; i++){
cout<<i+1<<“.”;
cout<<data[i]<<” “;
cout<<endl;
}
for (i=0; i<n; i++){
for (j=0; j<=i; j++)
{
if(data[i]<data[j])
{
m=data[i];
data[i]=data[j];
data[j]=m;
}
}
cout<<“\n#”<<i<<“: “;
for(k=0; k<=i; k++)
{
cout<<” “<<data[k];
}
}
cout<<“\n\n”;
cout<<“\nData Setelah Diurutkan (Ascending):”<<endl;
for(i=0; i<n; i++){
cout<<i+1<<” “;
cout<<data[i]<<” “<<endl;}
for (i=0; i<n; i++){
for (j=0; j<=i; j++)
{
if(data[i]>data[j])
{
m=data[i];
data[i]=data[j];
data[j]=m;
}
}
cout<<“\n#”<<i<<“: “;
for(k=0; k<=i; k++)
{
cout<<” “<<data[k];
}
}
cout<<“\n\n”;
cout<<“\nData Setelah Diurutkan (Descending):”<<endl;
for(i=0; i<n; i++){
cout<<i+1<<“.”;
cout<<data[i]<<” “<<endl;
}
getch();
}
CONTOH PROGRAM
1. Program Function
/*
NAMA : I MADE WIRANATHA
NIM : 180030327
PROGRAM:function
*/

#include <iostream>
#include <conio>

void jumlah();
void jumlah2(int a,int b);

void main(){
int a,b;
cout<<" I Made Wiranatha"<<endl;
cout<<" 180030327"<<endl;
cout<<" AF 183"<<endl;
cout<<" "<<endl;
cout<<" Masukan angka pertama ="; cin>>a;
cout<<" Masukan angka kedua ="; cin>>b;
jumlah2(a,b);
jumlah();
getch();
}

void jumlah(){
int x,y,z;
cout<<" Masukan Angka Pertama ="; cin>>x;
cout<<" Masukan Angka Kedua ="; cin>>y;
z=x + y;
cout<<"Hasil =" << z <<endl;
cout<<" Press Any To Continue !!!"<<endl;
}
void jumlah2(int a,int b){
int c=a + b;
cout<<" Hasil =" << c <<endl;
cout<<" "<<endl;

2. Program Array
/*
NAMA : I MADE WIRANATHA
NIM : 180030327
PROGRAM: ARRAY
*/

#include <iostream>
#include <conio>

void main(){
int A[10];
int total=0;
int i;

//algoritma
cout<<"=========_- PROGRAM ARRAY -_========="<<endl;
cout<<" "<<endl;
cout<<" Masukan 10 angka !!!"<<endl;
cout<<" "<<endl;
//rumus
for(int i=0;i<10;i++){
cin>>A[i];
total +=A[i];

//tampilkan ke layar
for(int i=0;i<10;i++){
cout<<A[i] <<",";
}
cout<<" TOTAL SEMUA DATA DI ATAS DI JUMLAHKAN ="<< total <<endl;
cout<<" "<<endl;
cout<<" Press Any to continue !!!!!!"<<endl;
getch();
}
3. Program Searching
/*
Nama : I Made Wiranatha
Nim : 180030327
kls :AF 183
Program : Searching

*/

#include <iostream.h>
#include <conio.h>

void main(){
int A[100];
int cari,ketemu;
int i;

//variable
cout<<" Masukan 10 angka "<<endl;
for(int i=1;i<11;i++){
cout<<" Masukan angka ke =" << i <<endl;
cin>>A[i];
}

cout<<endl;
cout<<" Input bilangan yang dicari ="; cin>>cari;

//data yang di cari


ketemu==0;
for(int i=0;i<=10;i++){
if(A[i]==cari){

if(ketemu=1){;
cout<<" Angka ditemukan Pada index ke ="<<i<<endl;
cout<<" "<<endl;

}
}

if (ketemu==0){
cout<<" Angka Tidak Ditemukan !!!!"<<endl;
}
}

getch();
}
4. Program Sorting
/*
Nama :I Made Wiranatha
Nim :180030327
Kelas :AF 183
Program:SORTING
*/
#include <iostream.h>
#include <conio.h>

void main(){
//kamus
int data['n'];
int tmp;
int x;

cout<<"=============- PROGRAM SORTING ============="<<endl;


cout<<" "<<endl;
cout<<" I Made Wiranatha"<<endl;
cout<<" 180030327"<<endl;
cout<<" AF 183"<<endl;
cout<<"Masukan Banyak Data ="; cin>>x;
cout<<endl;
for(int i=1;i<=x;i++){
cout<<"Data["<<i<<"] ="; cin>>data[i];
}

//variable
cout<<"\n\n";
cout<<"Data Sebelum Di Urutkan"<<endl;
for(int a=1;a<=x;a++){
cout<<data[a]<<",";

//algoritma
for(int a=x-1;a>=x;a--){
for(int b=a;b<=1;b++){
if(data[b] > data[b+1]){
tmp=data[b+1];
data[b+1]=data[b];
data[b]=tmp;
}
}
}

cout<<"\n\n";
cout<<" Data Setelah Dirutkan (Askending)"<<endl;
for(int a=1;a<=x;a++){
cout<<data[a]<<",";

cout<<"\n\n";
cout<<"Data Setelah Diurutkan (Diskending)"<<endl;
for(int b=x;b>=1;b--){
cout<<data[b]<<",";

getch();
}
DAFTAR PUSTAKA
https://aboutcprogramming.wordpress.com/2015/12/09/pengertian-dan-contoh-sorting-di-
dalam-c/
http://fadlyfirnanda.blogspot.com/2014/03/selection-sort.html

Anda mungkin juga menyukai