papanoyt:: ayo pilih content yang ada di bawah ini di jamin gak nyesel..

Rabu, 09 Februari 2011

algoritma serching/pencarian

oleh:
M septiadi rangga permana
f1b 006 054
teknik elektro. Bid keahlian Informatika  UNRAM


 buAT tmen2 yang mau belajar tentang algoritma serching mkin catatan ini bisa membantu temen2..di catatan ini nantinya algoritma serching akan di implemntasikan dalm program sederhana menggunakan bahasa java.

Bila jumlah data sudah demikian besar, dibutuhkan suatu metode untuk mendapatkan data yang dibutuhkan. Beberapa metode pengorganisasian data telah membuat proses pencarian data menjadi lebih efisien

          1.      Sequential Searching.
Metode ini merupakan metode pencarian yang paling sederhana. Algoritma ini dapat diterapkan pada daftar dalam bentuk array atau linked list. Algoritma ini menganalisa tiap key dari masing-masing node data. Jika data yang dicari ditemukan maka indeks atau pointer dari node tersebut akan dikembalikan. Jika data tidak ditemukan, maka nilai -1 yang dikembalikan. Jumlah pembandingan yang dilakukan ditentukan oleh posisi dari data yang dicari. Jika data berada pada posisi pertama maka hanya diperlukan satu kali pembandingan sementara jika data berada pada urutan paling akhir dibutuhkan N kali pembandingan. Maka rata-rata jumlah pembandingan adalah (N + 1)/2
          2.      Index Sequential Searching.
Ada teknik lain untuk meningkatkan efisiensi dengan melakukan pencarian pada data terurut. Jika data tidak terurut diperlukan sejumlah ruang untuk menyimpan indeks dari data. Indeks ini berisi key dari masing-masing data. Indeks ini, disebut iindex, dipecah menjadi beberapa kelompok dan nilai key dari masing-masing kelompok dicatat dalam indeks kedua, misalnya kindeks. Pencarian data dilakukan pada indeks kedua dengan kindeks[i] ≤ key < kindeks[i+1]. Sehingga pencarian tinggal dilakukan pada iindeks[kindeks[i]] hingga iindeks[kindeks[i+1]] tersebut.
          3.      Binary Search
Metode yang paling efisien  pada table sekuensial adalah binary search. Pada dasarnya data yang dicari dibandingkan dengan elemen yang berada di tengah. Bila cocok maka data tersebut dikembalikan, bila tidak pencarian dilanjutkan pada setengah bagian kiri atau setengah bagian kanan. Masing-masing bagian dilakukan proses yang sama hingga data yang diinginkan ditemukan

Implementasi program dengan java:
 program untuk mencari modus dari suatu deret data
Algoritma
algoritma modus
for(int i=0 to panjang_a)
   begin 
         int f=0;
         int sama=a[i];
         for (int j=0 to panjang_a)
               begin
                     if (a[j]==sama) f++;
               end for
               t[i]=f;
   end for


int terbesar=t[0];
int indek=0;
for (int i=0 to panjang_t)
   begin
         if (terbesar<t[i])

               terbesar=t[i]; indek=i;

  end for
message"modus: "+a[indek];


//////////////////////////////////////////////////////////////////////class

import java.util.Scanner;

public class modus
{
      static Scanner b=new Scanner(System.in);
      public  int a[] = new int [14];
      public  void input()
      {
                  System.out.println("inputkan "+a.length+" data");
                  for (int i=0; i<a.length; i++)
                  {
                              a[i]=b.nextInt();            

                  }
      }


int Modus()
{
//menampilkan data modus
int[] t=new int[a.length];
for(int i=0;i<a.length;i++)

         int f=0;
         int sama=a[i];
         for (int j=0;j<a.length;j++)
               {
                     if (a[j]==sama) f++;
               }
               t[i]=f;
   }


int terbesar=t[0];
int indek=0;
for (int i=0;i<t.length;i++)
   {
         if (terbesar<t[i])
         {
               terbesar=t[i]; indek=i;
         }
}
System.out.println("\nmodus: "+a[indek]);
return a[indek];
}
}

 class utama
{
   public static void main(String []args)
{
   modus b=new modus();
   b.input();
   System.out.println();
   b.Modus();
}
}


////////////////////////////////////////////////////////////////////////penjeasan

public class modus
{
   static Scanner b=new Scanner(System.in);
                public  int a[] = new int [14];
Script diatas merupakan pendeklarasian class modus. Terdapat pendeklarasian array a dengan tipe integer dan panjang maks = 14.

public  void input()
   {
   System.out.println("inputkan "+a.length+" data");
   for (int i=0; i<a.length; i++)
         {
               a[i]=b.nextInt();      

         }
                }

Script diatas merupakan pendeklarasian method input yang digunakan untuk menginputkan sejumlah nilai yang akan dicari modusnya. Terdapat perulangan for dalam proses penginputannya, sehingga jumlah data yang diinputkan sebanyak panjang array a, dalam hal ini sebanyak 14

{
                     if (a[j]==sama) f++;
               }
               t[i]=f;
   }


int terbesar=t[0];
int indek=0;
for (int i=0;i<t.length;i++)
   {
         if (terbesar<t[i])
         {
               terbesar=t[i]; indek=i;
         }
}
System.out.println("\nmodus: "+a[indek]);
return a[indek];
}
}
Pada method modus(), terdapat dua buah bagian yaitu method untuk mencari bilangan yang sama, kemudian jumlah dari bilangan yang sama akan menjadi input dari matriks t[]. Setelah itu bagian pegecekan, pada bagian ini, kita melakukan pengecekan terhadap isi dari dari matriks t[]. Jika ditemukan nilai terbesar pada matriks t[], kemudian indeksnya ditandai. Setelah ditandai nilai indeks itulah yang akan dipakai untuk mengetahui pada matrik a[] nilai modus yang dicari.


class utama
{
   public static void main(String []args)
{
   modus b=new modus();
   b.input();
   System.out.println();
   b.Modus();
}
}

Script dia tas merupakan script dari class utama, pada class ini kita melakukan instasiasi objek b dari class modus. Kemudian kita memanggil method input untuk menginputkan nilai ke dalam matrik a[]. Dan method Modus(), untuk melakukan pencarian modus dari deret yang telah kita punya yaitu derte pada matris a[].



smoga catatan ini bisa bermanfaat buat temen2 smuanya thanks....
reypapanoyt.....

Tidak ada komentar:

Posting Komentar