Searching Sequental


     A. Pengertian Searching Sequental
Searching adalah pencarian data dengan cara menelusuri data-data tersebut. Tempat pencarian data dapat berupa array dalam memori(pencarian internal), bisa juga pada file pada external storage(pencarian external).
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). Pada Kesempatan ini kita hanya akan membahas tentang pencarian internal menggunakan Array dinamis (pointer).
B. Metode Pencarian 
Metode pencarian dibagi menjadi 2, yaitu: 
1.        Metode Pencarian Beruntun:
Konsep yang digunakan dalam metode ini adalah membandingkan data-data yang ada dalam kumpulan tersebut, mulai dari elemen pertama sampai elemen ditemukan, atau sampai elemen terakhir. 
2.        Metode Pencarian Bagi Dua:
Metode ini diterapkan pada sekumpulan data yang sudah terurut (menaik atau menurun). Metode ini lebih cepat dibandingkan metode pencarian beruntun. Data yang sudah terurut menjadi syarat mutlak untuk menggunakan metode ini.
Konsep dasar metode ini adalah membagi 2 jumlah elemennya, dan menentukan apakah data yang berada pada elemen paling tengah bernilai sama, lebih dari atau kurang dari nilai data yang akan dicari. Jika bernilai sama, maka langsung data yang dicari ditemukan. Jika data di elemen terurut naik, maka jika data yang berada di tengah kurang dari data yang dicari, maka pencarian selanjutnya berkisar di elemen tengah ke kanan, dan begitu seterusnya sampai ketemu atau tidak sama sekali. Dan sebaliknya untuk nilai data yang berada di tengah lebih dari data yang dicari, maka pencarian selanjutnya berkisar di elemen tengah ke kiri, dan begitu seterusnya sampai ketemu atau tidak sama sekali. Dan demikian sebaliknya untuk data yang terurut menurun. Dalam hal ini tentukan indeks paling awal dan indeks paling akhir, untuk membagi 2 elemen tersebut.
Indeks awal = i, dimana nilai i, pada awalnya bernilai 0;
Indeks akhir = j, dimana nilai j, pada awalnya bernilai sama dengan jumlah elemen. 
Proses yang terjadi pada pencarian dengan metode ini adalah sebagai berikut :
1. Membaca Array data
2. Apabila Array belum terurut maka array diurutkan terlebih dahulu.
3. Menentukan data yang akan dicari
4. Menentukan elemen tengah dari array
5. Jika nilai elemen tengah sama dengan data yang dicari, maka pencarian berhenti.
6. Jika elemen tengah tidak sama dengan data yang dicari maka :
a. Jika nilai elemen tengah > data yang dicari maka pencarian dilakukan pada setengah array pertama.
b. Jika nilai elemen tengah lebih kecil dari pada data yang dicari maka pencarian dilakukan pada setengah array berikutnya.
Algoritma pencarian berurutan dapat dituliskan sebagai berikut :
1. i ← 0
2. ditemukan ← false
3. Selama (tidak ditemukan) dan (i <= N) kerjakan baris 4
4. Jika (Data[i] = x) maka ditemukan ← true, jika tidak i ← i + 1
5. Jika (ditemukan) maka i adalah indeks dari data yang dicari, jika tidak data tidak ditemukan
Di bawah ini merupakan fungsi untuk mencari data menggunakan pencarian sekuensial.
     int SequentialSearch(int x)


     {
     int i = 0;
     bool ditemukan = false;
     while ((!ditemukan) && (i < Max))
     {
          if(Data[i] == x)
               ditemukan = true;
          else
               i++;
     }
     if(ditemukan)
          return i;
     else
          return -1;}
Fungsi diatas akan mengembalikan indeks dari data yang dicari. Apabila data tidak ditemukan maka fungsi diatas akan mengembalikan nilai –1.
Contoh program:

    #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();
   }





   C.    Pengertian Flowchart

Flowchart bukanlah merupakan sebuah kerangaka berpikir seperti algoritma ataupun pseudocode flowchart pada dasarnya merupakan sebuah bentuk gambar ataupun diagram yang memiliki aliran satu atau dua arah yang berlaku secara sekuensial atau berkesinambungan. Fungsi utama dari flowchart ini adalah untuk menggambarkan sebuah desain program dan untuk merepresentasikan sebuah program atau sistem yang akan kita buat, berdasarkan pola berpikir kita (berdasarkan algoritma).
      D. Unsur – unsur atau komponen yang terdapat pada flowchart


Secara umum, dan secara garis besar, flowchart menerapkan unsur atau komponen yang sama seperti komponen pada pemrograman. Berikut ini adalah beberapa unsur dalam flowchart tersebut :
1. Input
2. Percabangan (biasanya menggunakan command if dan switch)
3. Perulangan (biasanya menggunakan command atau kode while, for, each, loop)
4. Output
Flowchart dibuat sesuai dengan algoritma yang sudah disusun, dan kemudian dibuat sesuai dengan urutan, perintah, serta ketentuan-ketentuan lainnya, yang dilambangkan dengan symbol-symbol tertentu.


         E.  Jenis Jenis Flowchart / Bagan Alir
a. System Flowchart
System flowchart dapat didefinisikan sebagai bagan yang menunjukkan arus pekerjaan secara keseluruhan dari sistem. Bagan ini menjelaskan urut-urutan dari prosedur-prosedur yang ada di dalam sistem. Bagan alir sistem menunjukkan apa yang dikerjakan di sistem.
b. Document Flowchart
Bagan alir dokumen  (document flowchart)  atau disebut juga bagan alir formulir  (form  flowchart)  atau  paperwork flowchart merupakan bagan alir yang menunjukkan arus dari laporan dan formulir termasuk tembusan-tembusannya.
c. Schematic Flowchart
Bagan alir skematik (schematic flowchart) merupakan bagan alir yang mirip dengan bagan alir sistem, yaitu untuk menggambarkan prosedur di dalam sistem. Perbedaannya adalah, bagan alir skematik selain menggunakan simbol-simbol bagan alir sistem, juga menggunakan gambar-gambar komputer dan peralatan lainnya yang digunakan. Maksud penggunaan gambar-gambar ini adalah untuk memudahkan komunikasi kepada orang yang kurang paham dengan simbol-simbol bagan alir. Penggunaan gambar-gambar  ini  memudahkan untuk dipahami, tetapi sulit dan lama menggambarnya.
d. Program Flowchart
Bagan alir program  (program flowchart)  merupakan bagan yang menjelaskan secara rinci langkah-langkah dari proses program. Bagan alir program dibuat dari derivikasi bagan alir sistem.
Bagan alir program dapat terdiri dari dua macam, yaitu bagan alir logika program  (program logic flowchart)  dan bagan alir program komputer terinci  (detailed computer program flowchart).  Bagan alir logika program digunakan untuk menggambarkan tiap-tiap langkah di dalam program komputer secara logika. Bagan alat- logika program ini dipersiapkan oleh analis sistem. Gambar berikut menunjukkan bagan alir logika program. Bagan alir program komputer terinci  (detailed computer program flow-chart) digunakan untuk menggambarkan instruksi-instruksi program komputer secara terinci. Bagan alir ini dipersiapkan oleh pemrogram. 
e. Process Flowchart
Bagan alir proses  (process flowchart)  merupakan bagan alir yang banyak digunakan di teknik industri. Bagan alir ini juga berguna bagi analis sistem untuk menggambarkan proses dalam suatu prosedur. 
  

    F.   Simbol - Simbol Flowchart / Bagan Alir

Komentar

Postingan populer dari blog ini

QUEUE "ANTRIAN"

STACK C++

POINTER C++