Selasa, 25 September 2018

Matrix dan Binary Search Pada Java Beserta Latihan Program


A.      Operasi-Operasi pada Matriks
Dengan menggunakan array, kita bisa melakukan operasi-operasi pada matriks.Pertama kita harusmenyimpan matriksnya dalam bentuk array dua dimensi.Operasi penambahan dan pengurangan dua matriks dilakukan dengan menambahkan dan mengurangimasing-masing elemen di indeks yang bersesuaian.

Contoh penambahan:

Contoh pengurangan:


Sedangkan operasi perkalian lebih rumit, karena harus mencocokan baris di matriks pertama dengankolom di matriks kedua.Perkalian matriks melibatkan perkalian elemen dan penjumlahan.

Contoh perkalian:

B.      Algoritma Binary Search
   Bagaimana Anda menemukan posisi sebuah elemen di dalam sebuah array? Cara yang mudah adalah dengan mengecek satu-satu setiap elemen di array tersebut apakah sama dengan elemen yang dicari? Dengan mudah, Anda bisa melakukannya dengan looping.

Sekarang, jika Anda diberitahu kalau elemen-elemen di dalam array tersebut terurut, apakah Anda bisamelakukan pencarian dengan lebih cepat? Jawabannya tentu saja: ya. Pertanyaan selanjutnyabagaimana?Dengan menggunakan algoritma Binary Search. Binary Search dilakukan dengan langkah-langkah berikut:

1.   Definisikan variabel awal = 0 (indeks pertama) dan akhir = a.length-1 (indeksterakhir).
2.   Lakukan iterasi selama awal tidak lebih besar dari akhir.
  1. Simpan nilai tengah = (awal + akhir)/2
  2. Jika elemen yang dicari lebih kecil dari a[tengah] berarti kita hanya perlu mencari disetengah bagian pertama sehingga akhir = tengah-1. Lanjut ke iterasi berikutnya.
  3. Sebaliknya jika elemen yang dicari lebih besar dari a[tengah], maka kita hanya perlumencari di setengah bagian kedua sehingga awal = tengah+1. Lanjut ke iterasiberikutnya.
  4. Jika tidak memenuhi keduanya, berarti a[tengah] adalah elemen yang dicari danalgoritma selesai dengan mengembalikan nilai tengah sebagai posisi elemen yang dicari.

Latihan Program:
//Latihan 7.1


BinarySearch.java
package javaapplication1;
import java.util.Scanner;
public class BinarySearch
{
    public static void main (String[] args)
    {
      int k, angka;
      boolean notfound=true;
      int[] intarray={25,30,35,40,45};
   
      for(int i=0;i<intarray.length;i++)
       {
          System.out.print(intarray[i]+" ");
       }
  
      Scanner sc=new Scanner(System.in);
      System.out.print("Masukkan angka yang ingin dicari= ");
      angka=sc.nextInt();
     
      int batasAtas=intarray.length-1;
      int batasBawah=0;
     
      while (notfound)
      {
      int posisiSekarang = (batasAtas + batasBawah)/2;
      if (intarray[posisiSekarang] == angka) 
      {
        notfound=false;
        System.out.println("ditemukan " +angka);
        }
        else if(batasBawah>batasAtas)
        {
          System.out.println("tidak ditemukan " +angka);
          break;
        }  
        else {
              if(intarray[posisiSekarang]< angka)
               {
                batasBawah = posisiSekarang + 1;
               }
              else
               {         
                batasAtas = posisiSekarang-1;
               }
             }
      }
     
}
}

0 komentar

Posting Komentar

Kritik dan Saran Anda sangat kami perlukan