Sabtu, 30 Juni 2012

artikel 3 SrukDat


Struktur data dengan java
            Pengertian Struktur data
l  Struktur data adalah cara menyimpan atau merepresentasikan data di dalam komputer agar bisa dipakai secara efisien,
l  Sedangkan data adalah representasi dari fakta dunianyata.
l  Fakta atau keterangan tentang kenyataan yang disimpan, direkam atau direpresentasikan dalam bentuk tulisan, suara, gambar, sinyal atau symbol.
Untuk pemakaian struktur data yang tepat di dalam proses pemrograman akan menghasilkan algoritma yang lebih jelas dan tepat,sehingga menjadikan program secara keseluruhan lebih efisien dan sederhana. Struktur data yang  standar  yang biasanya digunakan dibidang informatika adalah :List linier (Linked List) dan variasinya,  MultilistStack (Tumpukan), Queue (Antrian), Tree ( Pohon ),  Graph ( Graf ).
Contoh program biner:
import  java.util.Scanner;
public class program_mencari_data_secara_biner
{
   public static int N=0;

   public static void memasukkan_data(String nama[], String alamat[], int umur[], char jeniskelamin[])
   {
      //+++ variabel-variabel ini digunakan untuk menerima masukan dari keyboard +++
      Scanner masukan      = new Scanner(System.in);  //digunakan untuk masukan Teks dan Angka
      int     masukanASCII = 0;                             //digunakan untuk masukan Karakter

      System.out.print ("tentukan banyaknya data = ");
      N = masukan.nextInt();

      for (int i=0; i<=N-1; i++)
      {
         System.out.println ("");
         System.out.println("DATA KE - " + i);

         //+++ memasukkan data teks (bertipe data string) +++
         System.out.print("Silakan masukkan nama anda = ");
         nama[i]  = masukan.next();       //menerima masukan berbentuk Teks & menyimpan dalam variabel

         //+++ memasukkan data teks (bertipe data string) +++
         System.out.print("Silakan masukkan alamat anda = ");
         alamat[i] = masukan.next();      //menerima masukan berbentuk Teks & menyimpan dalam variabel

         //+++ memasukkan data angka (bertipe data integer) +++
         System.out.print("Silakan masukkan umur anda = ");
         umur[i]   = masukan.nextInt();   //menerima masukan berbentuk Angka & menyimpan dalam variabel

         //+++ memasukkan data karakter (bertipe data char) +++
         System.out.print("Silakan masukkan jenis kelamin anda = ");
         try     {    masukanASCII = System.in.read(); //menerima masukan berbentuk ASCII
            }
         catch(java.io.IOException e)
            {
            }
         jeniskelamin[i] = (char) masukanASCII;       //mengkonversi ASCII ke CHAR & menyimpan dalam variabel
      }
   }

   public static void menampilkan_data(String nama[], String alamat[], int umur[], char jeniskelamin[])
   {
      System.out.println("------------------------------------------");
      System.out.println("No  Nama     Alamat    Umur   JenisKelamin");
      System.out.println("------------------------------------------");

      for (int i=0; i<= N-1; i++)
      {  System.out.println(i + "\t" + nama[i] + "\t" + alamat[i] + "\t" +  umur[i] + "\t" +jeniskelamin[i]);
      }
      System.out.println("------------------------------------------");
   }

   public static void mencari_data_biner (String nama[], String alamat[], int umur[], char jeniskelamin[])
   {  Scanner masukan = new Scanner(System.in);

      String NAMACARI;
      boolean ketemu=false;
      int posisi=0;

      System.out.print("silakan masukkan nama yang anda cari : ");
      NAMACARI = masukan.next();

      int atas,bawah,tengah;
      atas = 0;
      bawah = N -1;
      tengah = (atas + bawah) / 2;
      while ((ketemu == false) && (bawah-atas!=1))
      {  System.out.println(nama[tengah]+" <---> " + NAMACARI );
         if  (NAMACARI.compareTo(nama[tengah]) < 0) //(NAMACARI < NAMA[tengah])
         {  bawah = tengah;
            tengah = (atas + bawah) / 2;
         }
         else if (NAMACARI.compareTo(nama[tengah]) > 0)   //(NAMACARI > NAMA[tengah])
         {  atas = tengah;
            tengah = (atas + bawah) / 2;
         }
         else
         {  ketemu = true;
            posisi = tengah;
         }
      }
      System.out.println(ketemu);
      if (ketemu==true) System.out.println("data ketemu di posisi ke " + posisi);
      else System.out.println("maap mas, data yg anda cari nggak ada");
   }



   //PROGRAM UTAMA
   public static void main (String[] args)
   {
      String nama[]       =    {"ani","budi","cepir","deny","eko","feri","gunari","helena"
                             ,"iwake","jesica","karlin","lina","maria","ninuk","ody","parmin"
                              ,"qetrin","ririn","susi","tugiran"};
      String alamat[]     =   {"ambarawa","bandung","cilicap","demak","ende","fekalongan","gombong","halmahera"
                             ,"irian","jombang","kartosuro","lampung","majalengka","ngawi","oooo","palembang"
                              ,"qqqqq","rembang","solo","tangerang"};
      int    umur[]       = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
      char   jeniskelamin[]   = {'P','P','P','P','P','P','P','P','P','P','P','P','P','P','P','P','P','P','P','P'};

      N = 20;

      //memasukkan_data(nama, alamat, umur, jeniskelamin);
      menampilkan_data(nama, alamat, umur, jeniskelamin);
      mencari_data_biner(nama, alamat, umur, jeniskelamin);
   }
}

Metode Linear Search
Metode Linear Search dilakukan dengan membaca data mulai dari urutan indeks ke-0 hingga ke-(N-1). Pada masing-masing pembacaan data akan dilakukan proses pembandingan antara data yang sedang dibaca dengan kunci pencarian. Jika data yang dibawa sama dengan kunci pencarian, maka proses pencarian akan dihentikan dan posisi data tersebut akan dicatat, untuk selanjutnya diinformasikan kepada user bahwa data yang dicari ditemukan pada posisi ke-indeks



yuandha.blogspot.com

Tidak ada komentar:

Posting Komentar