• Tidak ada hasil yang ditemukan

ARRAY. 7 th week Estu Sinduningrum ST,MT

N/A
N/A
Protected

Academic year: 2021

Membagikan "ARRAY. 7 th week Estu Sinduningrum ST,MT"

Copied!
51
0
0

Teks penuh

(1)

ARRAY

7

th

week

(2)
(3)

Aplikasi

2x

Java

Piramida Bilangan

Piramida bilangan adalah deretan bilangan yang tersusun

sedemikian rupa, sehingga membentuk suatu piramida bilangan.

Puncak piramida ditempati oleh bilangan l, baris kedua oleh

bilangan 2,1,2, baris ketiga oleh 3,

2,1,2,3, dan seterusnya. Angka 1 akan menjadi cermin yang

simetris bagi deret, baik di sebelah kanan, maupun di sebelah

kiri.

(4)

Latihan 36

PiramidaBilangan :

/**

* Title : Program Membuat Piramida Bilangan

* Deskripsi : Membuat struktur tampilan piramida

bilangan.

*/

public class PiramidaBilangan

{

/** main method */

public static void main(String[] args)

{

int jumBaris;

System.out.println ( " \nPROGRAM MENCETAK

PIRAMIDA BILANGAN" );

System.out.println ("---\n");

// Menginstruksikan user untuk memasukkan jumlah

baris

System.out.print("Masukkan jumlah baris : ");

jumBaris = InputConsole.readInt ();

for (int baris = 1; baris < (jumBaris + 1); baris++)

{

tengah

// Untuk mamanipulasi tampilan

// Mencetak spasi di urutan depan hingga posisi

// Mencetak bilangan di urutan depan hingga posisi

tengah

for (int bilangan = baris; bilangan >= 1; bilangan--)

System.out.print ( bilangan) ;

// Mencetak bilangan di urutan dari posisi tengah

hingga belakang

for (int bilangan = 2; bilangan <= baris; bilangan++

)

System.out.print (bilangan) ;

// Memulai baris baru

System.out.println () ;

} } }

(5)

Latihan 37

Bilangan Prima :

Bilangan Prima adalah bilangan yang lebih besar

dari 1 dan habis dibagi oleh bilangan itu sendiri

dan bilangan 1 terdiri dari: 2, 3, 5, 7, dan

seterusnya.

(6)

/**

* Title : program Bilangan prima

* Deskripsi : Mengaplikasikan beberapa elemen kendali

* (while, for, if) untuk mencari bilangan Prima

*/

public class Bilanganprima {

/**Main method*/

public static void main(String[] args)

{

int jumBilPrima;

int counter = 1; // Counter penghitung jumlah bilangan

prima

int bilangan = 2; // Bilangan yang diperiksa atau bukan

// Variabel ini diinisialisasi dengan 2

// karena merupakan bilangan prima pertama

// Selanjutnya bilangan ini akan diupdate

// dangan bilangan berikutnya (3,4,5,..)

boolean testPrima = true; // Kondisi yang akan menyatakan

// suatu bilangan sebagai prima

// atau bukan.

System.out.println ("\n PROGRAM MENCARI N BILANGAN

PRIMA " + " PERTAMA");

System.out.println (" PROGRAM MENCARI N BILANGAN

PRIMA " + "---\n");

// Meninstruksikan user untuk memasukkan N

// (jumlah bilangan prima) yang akan dicari.

System.out.println (" Masukkan jumlah Bilangan PRIMA :");

jumBilPrima = InputConsole.readInt();

System.out.println("\n Mencari " + jumBilPrima

// Blok yang mengulang pemeriksaan bila bilangan

// yang baru adaLah bilangan prima

while (counter <= jumBilPrima)

{

// mengasumsikan suatu bilangan merupakan bilangan Prima

testPrima = true;

// Mengeset testPrima menjadi false, jika bilangan

// tersebut ternyata bukan bilangan prima

for (int pembagi = 2; pembagi <= bilangan/2; pembagi++)

{

if (bilangan % pembagi== 0) // Jika bernilai true, maka

// biLangan bukan Prima

{

testPrima = false;

break; // Ke1uar dari blok perulangan for

} }

// Mencetak bilangan Prima dan menambahl<an counter

if (testPrima)

{

if (counter%10 == 0)

{

// Mencetak bilangan Prima

System.out.println (bilangan) ;

}

else

System.out.print(bilangan + " " );

counter++; // menambah satu ke counter

(7)

ARRAY ATAU LARIK

8

th

week

(8)

Definisi Larik

Larik atau array dapat didefinisikan sebagai tabel yang terstruktur.

Semua array terdiri dari tabel

2

yang dapat diisi dengan variabel

2

bertipe sama.

Array bertipe integer hanya dapat menampung integer.

Array bertipe char hanya dapat menampung karakter.

Tiap tabel memiliki indeks (nomor tabel), pada java indeks dimulai

dari 0 (nol).

(9)

Definisi Larik

Array adalah:

Suatu entitas (kesatuan) yang beranggotakan

elemen-elemen/ variabel bertipe data sama dan dapat

diakses dengan memanggil nama array beserta

indeks elemennya

(10)

Definisi Larik

Variabel array dapat dideklarasikan dengan dua

cara:

1. tipedata [ ] namaArray;

atau

(11)
(12)

Array 1 tingkat

Array 1 tingkat hanya terdiri atas satu jenis

indeks.

Saat

mendeklarasikan

array

kita

harus

menentukan banyaknya indeks dan tipe data

untuk variabel

(13)

Array 1 tingkat

(14)
(15)

Array 1 tingkat

(16)

Array 2 tingkat

Pada dasarnya konsep array 2 tingkat sama seperti

array 1 tingkat, hanya saja pada deklarasinya array 2

tingkat ada dua macam indeks yang harus kita

tentukan.

Salah satu penggunaan array 2 tingkat adalah pada

operasi matriks, dimana saat mendeklarasikan array

kita harus menentukan jumlah kolom dan jumlah

indeks baris.

(17)

Array 2 tingkat

(18)
(19)

Array 2 tingkat

(20)

Contoh

Contoh pertama akan membentuk variabel array

deretBilangan dengan tipe integer sebanyak 10

elemen.

Pada contoh kedua akan terbentuk varibel array

namaHari dengan tipe String sebanyak 7 elemen.

Perhatikan ilustrasi berikut.

(21)

Ilustrasi array

(22)

Menginisialisasi Array

Pada saat array terbentuk pertama kali, elemen-elemennya akan

memiliki nilai default 0 untuk tipe numerik, blank (kosong) untuk char,

dan salah (false) untuk boolean. Gunakan bentuk berikut untuk

mengakses suatu elemen dari array.

Indeks adalah bilangan integer yang merrunjukkan letak urutan elemen

dalam array. Indeks dari array berukuran N dimulai dari 0 hingga N-1.

Gunakan method

length ( )

untuk mengetahui berapa panjang/jumlah

(23)

Menginisialisasi Array

Anda harus menunjuk elemen tersebut dan kemudian mengisinya nilai yang

dikehendaki untuk menginisialisasi suatu elemen.

Bila ingin menginisialisasi seluruh elemen dari array, bisa digunakan

statement perulangan.

Sebagai ilustrasi, kita ingin rnembuat array deretBilangan yang

elernen-elemennya adalah { 10, 20, 30,..,100).

Proses inisialisasi elemennya bisa dilakukan dalam tiga cara, yaitu: pertama

bersamaan dengan deklarasi variabel, kedua dengan mengakses dan memberi

nilai elemen satu persatu, atau ketiga dengan bentuk perulangan (biasanya

for) agar lebih praktis.

(24)

Menginisialisasi Array

1.

int il deretBilangan = (10, 20, 30,40, 50, 60, 70, 80,

90, 100 );

2.

Inisialisasi elemen satu per satu sebagai berikut:

deretBilangan [0] = 1g0;

deretBilangan [l] = 20;

deretBilangan [9] = 100;

3.

Inisialisasi dengan for sebagai berikut:

for (i = 0, i < 10, i++) {

deretBilangan [i] = 10 + l0*i;

}

(25)

Melewatkan Array ke Method

Java menggunakan dua jenis nrekanisme untuk tnelervatkan argumen ke suatu method:

1.

Untuk variabel bertipe data primitif, yang akan dilewatkan ke method adalah nilai

aktualnya. Perubahan nilai variabel pada saat nrengoperasikannya di dalam method

tidak akan mengubah nilai variabel tersebut. Mekanisme ini dinamakan Pass by

Value.

2.

Pada variabel array, nilai yang dilewatkan pada hakikatnya adalah alamat referensi

rnemory yang menunjuk array tersebut, bukan nilai aktual masing-masing elemennya.

Bila alar,rat referensi ini berubah pada saat mengoperasikannya di dalam method,

maka akan mengubah nilai variabel array asalnya. Mekanisme ini disebut Pass by

Reference.

(26)

Melewatkan Array ke Method

Namun, bila kita mengambil nilai suatu elemen dari

array, dan kemudian melewatkannya ke method,

maka elemen itu akan diperlakukan seperti pada

tipe data primitif.

(27)

Menyalin (meng-copy) Array

 Ada tiga cara menyalin array, Yaitu:

1. Menggunakan perulangan untuk meng-copy masing-masing elemen

 Contoh berikut akan meng-copy array deretBilangan menjadi array baru sepuluhBilangan:  for (int i = 0; i < deretBilangan.length; i++)

 sepuluhBilangan [i] = deretBilangan [i];

2. Mcmakai method static arraycopy () dari kelas java.lang.System

 Bentuk:

 arrycopy (arrayAsal, posisiArmyAsal, arrayBaru, posisiArrayAsal panjang);

 posisiArrayAsal dan posisiArrayBaru menunjukkan posisi elemen yang akan di-copy pada array asal dan array baru. Banyaknya elemen yang akan di-copy ditunjukkan oleh panjang.

 int[] arrayAsal = (10,20, 30,40,50,60,70,80,90, 100);  int[] arrayBaru = new int[arrayAsal.length];

 System.an:rycopy (zrmyAsr I, 0, armyBzru, Q a rray Asa l - I e n gth ) ;

 3. Menggunakan method clone

(28)

Array Multidimensi

Selain berupa deretan variabel satu dimensi, kita dapat pula membuat

arrayyang berukuran lebih dari satu dimensi atau disebut juga array

multidimensi.

Pada bagian ini kita akan membahas mengenai array dua dimensi atau

yang lebih dikenal sebagai matrix dua dimensi berukuran m x n.

Keterangan:

exy = Elemen pada baris ke-x dan kolom ke-y.

Gunakanlah bentuk deklarasi berikut untuk membuat matriks dua

dimensi.

(29)

Susunan elemen

array multidimensi

(30)

Contoh:

int [] [] = new int [3][2]; //Membuat matriks berukuran 3x2

int [] U = new int [4][4]; //Membuat matriks 4x4

Selain bentuk di atas deklarasi matriks dapat dilakukan seperti di

bawah ini:

int [] [] matriks =

{

{2,3,6,7},

(10,4, l, 0},

(9,2,0,0},

{3,0. l, 1)

};

(31)

Operasi Matriks

Matriks memiliki operasi penjumlahan, pengurangan, perkalian, dan

pembagian. Pada bagian ini kita akan rnembahas penjumlahan dan

perkalian matriks.

Penjumlahan

Perkalian Matriks

Estu Sinduningrum, ST, MT

Syarat Penjumlah Matriks:

Dua matriks A dan B dapat dijumlahkan bila kedua matriks

tersebut berdimensi sama.

Syarat Perkalian matriks :

Matriks A (mxn) dapat dikalikan dengan B (pxq) bila

(32)

Latihan 38 :

Operasi Matriks

C

ij

= aij x b1j + ai2 x b2j +

(33)

Estu Sinduningrum, ST, MT

/**

•Title

* Deskripsi: Matriks

* dua matriks dalam satu file java. * Sebelum mengkompile file ini kompilelah file

* InputConsole.java terlebih dahulu. */

public class Matriks {

/** Main method */

public static void main (String [] args) {

System.out.println("\n PROGRAM PENJUMLAHAN Dan PERKALIAN MATRIKS");

// Membuat dua matriks berdimensi dua (mxn) di mana m = n = 3 System.out.print("Masukkan orde matriks :");

int ordeMatriks = InputConsole.readInt(); System.out.println();

int[][]matriks1= new int[ordeMatriks][ordeMatriks]; int[][]matriks2= new int[ordeMatriks][ordeMatriks];

// Menginstruksikan user untuk menginputkan tiap-tiap elemen // Memasukkan entry matriks 1

for (int i=0; i<matriks1.length; i++) for (int j=0; j<matriks1[i].length; j++)

{

int indeksBaris = i+1; int indeksKolom = j+1;

System.out.print("Masukkan elemen Matriks A pada baris ke "+ indeksBaris +" kolom ke " + indeksKolom +" : ");

matriks1 [i][j] = InputConsole.readInt(); }

System.out.println("---"); // Memasukkan entry matriks 2

for (int i=0; i< matriks1.length; i++) for (int j=0; j< matriks1[i].length; j++)

{

int indeksBaris = i+1; int indeksKolom = j+1;

System.out.print("Masukkan elemen Matriks B pada baris ke "+ indeksBaris + " kolom ke " + indeksKolom + " :");

matriks2 [i][j] = InputConsole.readInt();

}

// Menambahkan dua matriks dan mencetak hasilnya di monitor

int[][] matriksHasil = jumlahMatriks(matriks1,matriks2) ;

System.out.println("\n Penjumlahan Matriks"); cetakHasil (matriks1, matriks2, matriksHasil,'+'); // Mengalikan dua matriks dan mencetak hasilnya di monitor

matriksHasil = kaliMatriks(matriks1, matriks2);

System.out.println("\nPerkalian matriks" ) ; cetakHasil(matriks1, matriks2, matriksHasil,'x' ) ;

}

/** Method penjumlahan dua matriks */

public static int[][] jumlahMatriks(int[][] matriks1, int [][] matriks2) {

int[][]hasil = new

int[matriks1.length][matriks1[0].length]; for (int i = 0; i<hasil.length; i++) for (int j = 0; j<hasil[0].length; j++) hasil [i][j] = matriks1[i][j] + matriks2[i][j];

return hasil; }

/** Method perkalian dua matriks */

public static int[][] kaliMatriks(int[][] matriks1, int[][] matriks2) {

(34)

int[][]hasil=new

int[matriks1.length][matriks2[0].length]; for (int i =0; i<hasil.length; i++)

for (int j=0; j<hasil.length; j++) for (int k =0; k<matriks1[0].length; k++) hasil [i][j] += matriks1[i][k]*matriks2[k][j];

return hasil; }

/** Method untuk mencetak hasil di monitor */ public static void cetakHasil (

int[][] matriks1, int[][] matriks2, int[][] matriks3, char op) {

for (int i = 0; i<matriks1.length; i++) {

for (int j= 0; j<matriks1.length; j++)

System.out.print("" + matriks1[i][j]);

if (i== matriks1.length/2)

System.out.print(" " + op + " " ); else

System.out.print(" ");

for (int j= 0; j<matriks2[0].length; j++) System.out.print("" + matriks2[i][j]);

if (i== matriks1.length/2)

System.out.print(" " + op + " " ); Else

(35)

Mengurutkan Elemen Array

(

Sorting

)

Misalkan ada array: (2, l, 17,89, 4, 5), dan Anda diminta untuk

mengurutkan data mulai dari yang terkecil sampai terbesar sehingga

menjadi (1,2,4,5,17,89).

(36)

Mengurutkan Elemen Array

(

Sorting

)

Algoritma Sorting (pengurutan) suatu deretan elemen adalah sebagai berikut:

1.

Cari bilangan yang terbesar dan merneriksa posisi bilangan tersebut (apakah

sudah terletak di paling kanan?).

2.

Bila belum, letakkan bilangan tcrbesar tersebut pada posisi paling kanan. Proses

ini sekaligus berarti saling bertukar posisi antara bilangan yang semula

menempati posisi paling kanan dengan posisi bilangan terbesar tersebut.

3.

Selanjutnya, mencari lagi bilangan terbesar dari deretan sisa dan letakkan

bilangan tersebut di belakang bilangan terbesar hasil proses pertama.

(37)

Dari deretan {2, l, 17, 89, 4, 5}, maka proses sorting secara manual

menjadi:

Tahap 1 :2,1,17,89,4,5 // Mencari terbesar pertama

Tahap 2 : 7, I, 17, 5, 4,89 // Menukarkan posisi (swap)

Tahap 3 :2,1,17,5,4,89 l //Mencari terbesar kedua

Tahap 4 :2, 1,4,5, 17,89 // Menukarkan posisi (swap)

Tahap 5 :2,1,4,5,17,89 // Posisi bilangan 5 dan 4 telah sesuai – lewati

Tahap 6 :2,1,4,5, 17,89 // Cari terbesar sisa

Tahap 7 :1,2,4,5,17,89 // Tukarkan posisi ...selesai.

(38)

Mengurutkan Elemen Array

(

Sorting

)

(39)

Estu Sinduningrum, ST, MT

/**

* Title : Mengurutkan Array

* Description : Mengurutkan Array secara naik * (terkecil sampai terbesar)

*/

public class SortingArray2 {

/** Main method */

public static void main (String [] args) {

int [] deretanBilangan = new int[10];

System.out.println("\nPROGRAM MENGURUTKAN ELEMEN ARRAY");

System.out.println("---\n");

// Membuat deretan bilangan random

System.out.print("Deretan bilangan random sebelum diurutkan :");

for (int i = 0; i< deretanBilangan.length; i++) { deretanBilangan [i] = (int)(Math.random()*100);

System.out.print(deretanBilangan [i]+" "); }

System.out.println();

// Mengurutkan elemen array sorting(deretanBilangan);

// Mengurutkan hasil pengurutan System.out.println();

System.out.print("Deretan bilangan setelah diurutkan :"); cetakDeretan(deretanBilangan);

}

/** Method mencetak bilangan ke monitor console */ static void cetakDeretan(int[] deretan)

{

for (int i = 0; i < deretan.length; i++) System.out.print(deretan[i] + " ");

System.out.println();

}

/** Method untuk mengurutkan array */ static void sorting(int[] deretan)

{

int nilaiMax; int indeksNilaiMax;

for (int i = deretan.length-1; i >= 1; i --) {

// Mencari nilai maksimum dalam deretan [0..i] nilaiMax = deretan[i];

indeksNilaiMax = i;

for (int j= i-1; j >= 0; j --) { if (nilaiMax < deretan[j]) { nilaiMax = deretan[j]; indeksNilaiMax = j; } }

/** Menukar posisi elemen deretan[i] dengan elemen deretan[indeksNilaiMax] jika diperlukan*/

if (indeksNilaiMax !=i) {

deretan[indeksNilaiMax] = deretan[i]; deretan[i] = nilaiMax;

(40)

Mencari Elemen Array

(Searching)

Ada dua algoritma untuk mencari elemen array, yaitu:

1.

Pencarian Linier (Linear Search)

Algoritma ini akan mencari elemen berdasarkan suatu kunci

(key), yang berupa bilangan atau karakter yang diinginkan

dosesnya berlangsung dengan mencocokkan tiap-tiap elemen

dengan kunci tersebut.

Bila ditemukan. maka method akan mengembalikan indeks dari

elemen itu, sedangkan bila tidak ada, maka method akan

(41)

Mencari Elemen Array

(Searching)

(42)

/**

* Title : Mengurutkan Array

* Description : Mengurutkan Array secara naik * (terkecil sampai terbesar)

*/

public class PencarianLinier {

/** Main Method */

public static void main(String[] args) {

int[] deretan = new int[10];

System.out.println("\n PROGRAM PENCARIAN LINIER"); System.out.println("---\n");

// Membuat deretan bilangan random System.out.print("Deretan Bilangan"); for (int i = 0; i < deretan.length; i++) {

deretan[i] = (int) (Math.random()*100);

// Menginstruksikan user untuk memasukkan kunci System.out.print("\n Masukkan kunci ");

int kunci = InputConsole.readInt(); int indeks = cariKunci (kunci, deretan); if (indeks != -1)

System.out.println("\nKunci tidak ditemukan pada"+"deretan bilangan");

}

/** Method mencari kunci pada deretan bilangan */ public static int cariKunci (int kunci, int[] deretan) {

for (int i = 0; i < deretan.length; i ++) if (kunci == deretan[i])

return i; return -1; }

(43)

Mencari Elemen Array

(Searching)

2.

Pencarian Biner (Binary Search)

Algoritma pencarian biner merupakan perbaikan dari konsep

sebelumnya (pencarian linier) karena lebih efisien.

Dengan algoritma ini,kita tidak perlu merneriksa semua elemen

sehingga menghemat waktu pencarian.

Algoritma ini dibangun berdasarkan ide sebagai berikut:

a.

Urutkan terlebih dahulu elemen-elemen alray berdasarkan nilainya.

Urutan boleh naik (bilangan terkecil dahulu, kemudian terakhiri

bilangan terbesar) atau turun.

(44)

Pencarian Biner (Binary Search)

b.

Selanjutnya, ambillah nilai elemen yang terletak

pada posisi tengah urutan array tersebul Kita

sebut nilai elemen ini sebagai nilai tengah. Nilai

tengah ini membagi array menjadi dua segmen;

segmen pertama berisi elemen terkecil sampai

nilai tengah, sedangkan segmen kedua berisi

elemen nilai tengah sampai nilai terbesar.

(45)

Pencarian Biner (Binary Search)

Bandingkanlah nilai elcmen yang dicari (kunci) dengan nilai

tengah ini. Proses pembandingan ini nremilikitiga kemungkinan:

a.

Bila nilai kunci sama dengan nilai tengah, maka pencarian selesai.

b.

Bila nilai kunci lebih kecil dari nilai tengah, maka algoritma akan

mengabaikan setengah bagian dari array (mulai dari nilai tengah

sampai nilai elemen terbesar). Selanjutnya. proses pencarian

difokuskan untuk segmen yang lain, yaitu elemen terkecil sampai

kepada nilai tengah. Kemudian, algoritma akan membagi lagi

Segmen tersebut menjadi dua, dilanjutkan proses pembandingan dan

seterusnya.

(46)

Pencarian Biner (Binary Search)

Bila nilai kunci lebih besar dari nilai tengah, maka

algoritma akan mengabaikan segmen yang berisi nilai

terkecil sampai nilai tengah. Selanjutnya kaidah

pencarian mengikuti pola pembagian segmen menjadi

dua dan membandingkannya dengan nilai tengah,

sama seperti butir sebelumnya. Demikian seterusnya

sampai elemen yang dicari ditemukan atau elemen

array sudah selesai diperiksa.

(47)

Ilustrasi Pencarian Biner

Ambil data array pada contoh sebelumnya {2, l, l7, 89, 4, 5l }

Anda akan mencari elemen (kunci) dengan nilai = 2.

Tahap l:

Proses mengurutkan elemen array: (1, 2,4,5,17,89).

Tahap 2:

Algoritma akan mencari nilai tengah.

Penentuan nilai tengah dengan memperhitungkan indeks elenren, (indeks elemen pertama

+ indeks elemen tetakhir) /2.

Bila jumlah elemen gasal, tidak masalah. Bila genap, ambil pembulatan.

Dari contoh di atas, nilai tengahnya adalah 4.

Nilai tengah ini membagi array menjadi dua segmen:

Segmen pertama : 1,2, 4

Segmen kedua : 4. 5, 17,89

(48)

Ilustrasi Pencarian Biner

Tahap 3: Proses Pembandingan; nilai kunci < nilai

tengah. berarti proses pencarian selanjutnya adalah

pada segmen pertama dengan elemen-elemen 1,2,4.

Tahap 4: Dari segmen pertama tersebut dicari lagi

nilai tengahnya, diperoleh 2.

Tahap 5: Proses Pembandingan: nilai kunci = nilai

tengah, pencarian selesai.

(49)

PencarianBiner.java

(50)

/**

* Title : Pencarian Biner

* Description : Mendemonstrasikan Pencarian Elemen Array * dengan konsep Biner

*/

public class PencarianBiner {

/** Main Method */

public static void main(String[] args) {

int[] deretanTerurut = new int[10]; System.out.println("\n PROGRAM PENCARIAN BINER");

System.out.println("---\n");

// Membuat list yang terurut dan menampilkannya ke console/

System.out.print("Deretan bilangan terurut"); for (int i = 0; i< deretanTerurut.length; i++ ) {

deretanTerurut[i] = 2*i + 1; System.out.print(deretanTerurut[i] +" ");

}

System.out.println();

// Menginstruksikan user untuk memasukkan kunci.

System.out.println("\n Kunci ditemukan pada indeks ke "+ indeksElemen);

else

System.out.println("\n Kunci tidak ditemukan pada " + "deretan ini"); }

/** Method mencari kunci dari deretan terurut */

public static int cariKunci(int kunci, int[] deretanTerurut) {

int indeksTerkecil = 0; // Nilai awal indeks elemen array // selalu dimulai 0

int indeksTerbesar = deretanTerurut.length -1; return cariKunci (kunci, deretanTerurut, indeksTerkecil, indeksTerbesar);

}

/* Proses pencarian */

public static int cariKunci (int kunci, int[] deretanTerurut, int indeksTerkecil, int indeksTerbesar)

{

//Keluar dari proses pencarian karena tidak ditemukan kunci

int indeksTengah = (indeksTerkecil + indeksTerbesar)/2; if (kunci < deretanTerurut [indeksTengah])

return cariKunci (kunci, deretanTerurut, indeksTerkecil, indeksTengah-1);

else if (kunci == deretanTerurut [indeksTengah]) return indeksTengah;

(51)

Gambar

Ilustrasi array

Referensi

Dokumen terkait

Terdapat 4 (empat) pola perubahan ke Identitas Banjarmasin sebagai kota sungai tergambar dari arsitektur tepian sungai dan aktivitas masyarakatnya yang masih memiliki

[r]

Rata-rata persepsi guru IPA SMP Kota Pekanbaru terhadap kualitas buku teks pelajaran IPA berbasis Kurikulum 2013 untuk SMP/MTs kelas VII terbitan Kemendikbud pada

Teraba tumor ataupun KGB dengan diameter 5 cm atau lebih dan tidak ada metastasis jauh.. Tumor dengan infiltrasi langsung kejaringan sekitarnya dan tidak ada

Urutan proses object diagram adalah pada Sistem Informasi Geografis Pemetaan Rumah Makan di Kabupaten Tanah Laut memiliki banyak mengelola di antaranya mengelola admin,

Untuk mengetahui besarnya pengaruh ukuran perusahaan, profitabilitas, solvabilitas, opini audit secara parsial terhadap audit delay pada perusahaan pertambangan

Hasil penelitian yang diperoleh dalam penelitian ini adalah: (1) penyelenggaraan pemberdayaan keluarga melalui KUBE Srikandi yang meliputi: (a) tahap perencanaan

Dalam telur itik, protein lebih banyak terdapat pada bagian kuning telur (17%), sedangkan bagian putihnya terdiri atas ovalbumin (putih telur) dan... Protein telur