51
ARRAY 7 th week Estu Sinduningrum ST,MT

ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

Embed Size (px)

Citation preview

Page 1: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

ARRAY

7th week

Estu Sinduningrum ST,MT

Page 2: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida
Page 3: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

Aplikasi2x 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.

Estu Sinduningrum, ST, MT

Page 4: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

Latihan 36

PiramidaBilangan :

Estu Sinduningrum, ST, MT

/**

* 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

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

kolom++)

System.out.print (" ");

// 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 () ;

} } }

Page 5: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

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.

Estu Sinduningrum, ST, MT

Page 6: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

Estu Sinduningrum, ST, MT

/**

* 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

+ " Bilangan Prima Pertama : \n");

// 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

}

// Memeeriksa apakah bilangan selajutnya merupakanPrima

bilangan++;

} } }

Page 7: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

ARRAY ATAU LARIK

8th week

Estu Sinduningrum ST,MT

Page 8: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

Definisi Larik

Larik atau array dapat didefinisikan sebagai tabel yang terstruktur.

Semua array terdiri dari tabel2 yang dapat diisi dengan variabel2

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).

Tiap tabel dapat diisi oleh satu variabel.

Estu Sinduningrum, ST, MT

Page 9: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

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

Estu Sinduningrum, ST, MT

Page 10: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

Definisi Larik

Variabel array dapat dideklarasikan dengan dua

cara:

Estu Sinduningrum, ST, MT

1. tipedata [ ] namaArray;

atau

2. tipedata namaArray [ ]; // Bentuk ini sering dipakai

Page 11: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

Estu Sinduningrum, ST, MT

Page 12: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

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

Estu Sinduningrum, ST, MT

Page 13: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

Array 1 tingkat

Estu Sinduningrum, ST, MT

Page 14: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

Array 1 tingkat

Estu Sinduningrum, ST, MT

Page 15: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

Array 1 tingkat

Estu Sinduningrum, ST, MT

Page 16: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

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.

Estu Sinduningrum, ST, MT

Page 17: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

Array 2 tingkat

Estu Sinduningrum, ST, MT

Page 18: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

Array 2 tingkat

Estu Sinduningrum, ST, MT

Page 19: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

Array 2 tingkat

Estu Sinduningrum, ST, MT

Page 20: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

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.

Estu Sinduningrum, ST, MT

Page 21: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

Ilustrasi array

Estu Sinduningrum, ST, MT

Page 22: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

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

elemen.

Estu Sinduningrum, ST, MT

namaArray[indeks];

Page 23: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

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.

Estu Sinduningrum, ST, MT

Page 24: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

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;

}

Estu Sinduningrum, ST, MT

Page 25: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

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.

Estu Sinduningrum, ST, MT

Page 26: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

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.

Estu Sinduningrum, ST, MT

Page 27: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

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

Estu Sinduningrum, ST, MT

Page 28: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

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.

Estu Sinduningrum, ST, MT

Tipedata[] [] matriks = new tipedata[jumlahBaris] [jumlahKolom];

Page 29: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

Susunan elemen

array multidimensi

Estu Sinduningrum, ST, MT

Page 30: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

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)

};

Anda harus mencantumkan indeksnya (no baris dan no kolom) secara jelas untuk menugaskan

elemen matriks dengan suatu nilai. misalnya: matriks [3] [1] = 9; //Menugaskan elemen pada

baris ke 3 dan kolom ke 1 dengan nilai 9.

Estu Sinduningrum, ST, MT

Page 31: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

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

Jumlah kolom matriks A = jumlah baris matriks B. Jadi n = p.

Page 32: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

Latihan 38 :

Operasi Matriks

Cij = aij x b1j + ai2 x b2j +

ai2 x b2j

Estu Sinduningrum, ST, MT

Page 33: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

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)

{

Page 34: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

Estu Sinduningrum, ST, MT

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

System.out.print(" ");

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

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

System.out.print(" ");

} } }

Page 35: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

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).

Estu Sinduningrum, ST, MT

Page 36: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

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.

4. Lakukan proses di atas sampai selesai.

Estu Sinduningrum, ST, MT

Page 37: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

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.

Estu Sinduningrum, ST, MT

Page 38: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

Mengurutkan Elemen Array

(Sorting)

Latihan 39 :

Page 39: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

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;

} } } }

Page 40: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

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

mengembalikan nilai integer -1.

Estu Sinduningrum, ST, MT

Page 41: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

Mencari Elemen Array

(Searching)

Latihan 40 :

Page 42: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

Estu Sinduningrum, ST, MT

/**

* 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);

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

}

System.out.println();

// 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;

}

}

Page 43: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

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.

Estu Sinduningrum, ST, MT

Page 44: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

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.

Estu Sinduningrum, ST, MT

Page 45: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

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.

Estu Sinduningrum, ST, MT

Page 46: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

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.

Estu Sinduningrum, ST, MT

Page 47: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

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

Estu Sinduningrum, ST, MT

Page 48: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

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.

Estu Sinduningrum, ST, MT

Page 49: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

PencarianBiner.java

Latihan 41 :

Page 50: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

Estu Sinduningrum, ST, MT

/**

* 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.

// Kunci ini adalah nilai elemen yang akan dicari

System.out.print("\n Masukkan kunci :");

int kunci = InputConsole.readInt();

int indeksElemen = cariKunci (kunci, deretanTerurut);

if (indeksElemen !=-1)

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;

else

return cariKunci (kunci, deretanTerurut, indeksTengah+1,

indeksTerbesar);

} }

Page 51: ARRAY - intanviona.files.wordpress.com fileAplikasi2x Java Piramida Bilangan Piramida bilangan adalah deretan bilangan yang tersusun sedemikian rupa, sehingga membentuk suatu piramida

TERIMA KASIH