Materi Pemrograman Dasar Modul 4 mhs1

(1)

TUJUAN INSTRUKSIONAL UMUM

Setelah menyelesaikan pokok bahasan ini, mahasiswa akan mampu memahami dan bisa menjelaskan konsep lanjutan dasar pemrograman tentang data majemuk dan method yang mendukung pemrograman modular.

PENGANTAR

Pada Pemrograman Terstruktur, program dibedakan menjadi bagian data dan bagian instruksi. Bagian instruksi terdiri atas runtutan (sequence) instruksi yang dilaksanakan satu per satu secara berurutan oleh pemroses. Alur pelaksanaan instruksi dapat berubah karena adanya pencabangan kondisional. Data yang disimpan di dalam memori dimanipulasi oleh instruksi secara beruntun atau terstruktur. Paradigma pemrograman seperti ini dinamakan pemrograman terstruktur. Pemrograman Terstrukturmerupakan suatu tindakan untuk membuat program yang berisi instruksi-instruksi dalam bahasa komputer dimana instruksi-instruksi-instruksi-instruksi tersebut disusun secara logis dan sistematis supaya mudah dimengerti, mudah dites, dan mudah dimodifikasi. Pola penyusunan program komputer pada pemrograman terstruktur dilakukan hanya dengan menggunakan tiga struktur kontrol yaitu:

Sequence : Sequence merupakan urutan pengerjaan dari perintah/statement pertama sampai dengan perintah/statement terakhir. Umumnya bahasa pemrograman mempunyai sequence mulai dari atas ke bawah dan dari kiri ke kanan.

Selection : Selection adalah struktur kontrol yang menggabungkan sebuah kondisi dan pilihan diantara dua aksi. Statement Pertama akan dikerjakan jika kondisi bernilai benar, jika tidak maka akan mengerjakan perintah setelah keyword else jika ada .

 Repetition: Beberapa statement / perintah dapat diulang dengan menggunakan struktur kontrol repetition. Statement / perintah akan tetap diulang selama kondisi perulangan memenuhi (jika menggunakan DO WHILE – ENDDO).

Dalam pemrograman berorientasi objek ada konsep data majemuk dan method yang harus diketahui di awal untuk menambah kemampuan dalam menciptakan pemrograman modular. Larik (array) adalah variabel kompleks yang setiap elemennya mempunyai tipe data yang sama. Tipe data dari elemen larik dapat berupa tipe data sederhana maupun tipe data kompleks. Setiap elemen larik mempunyai nomor indeks yang unik dan disimpan secara berurutan di dalam memori. Kebanyakan program yang telah dibuat ternyata tersusun dengan kurang baik, sehingga melakukan perubahan pada program-program tersebut merupakan pekerjaan yang sulit dan menghabiskan waktu. Kadangkala, program-program tersebut perlu ditulis ulang secara keseluruhan. Dalam Pemrograman OOP (Object Oriented Programming), dikenal metode untuk "memecah" kode program yang panjang menjadi modul-modul yang saling terkait antara yang satu dengan yang lain.

Pada Pemrograman Terstruktur, program dibedakan menjadi bagian data dan bagian instruksi. Bagian instruksi terdiri atas runtutan ( ) instruksi yang dilaksanakan satu per satu secara berurutan oleh pemroses. Alur pelaksanaan instruksi dapat berubah karena adanya pencabangan kondisional. Data yang disimpan di dalam memori dimanipulasi oleh instruksi secara beruntun atau Paradigma pemrograman seperti ini dinamakan pemrograman terstruktur. Pemrograman Terstruktur merupakan suatu tindakan untuk membuat program yang berisi instruksi-instruksi dalam bahasa komputer dimana instruksi-instruksi-instruksi-instruksi tersebut disusun secara logis dan sistematis supaya mudah dimengerti, mudah dites, dan mudah dimodifikasi. Pola penyusunan program komputer pada pemrograman terstruktur dilakukan hanya dengan menggunakan tiga struktur kontrol yaitu:

Sequence: Sequence merupakan urutan pengerjaan dari perintah/statement dengan perintah/statement terakhirstatement terakhirstatement . Umumnya bahasa pemrograman mempunyai mulai dari atas ke bawah dan dari kiri ke kanan.

Selection: Selection adalah struktur kontrol yang menggabungkan sebuah kondisi dan pilihan diantara dua aksi. Statement Pertama akan dikerjakan jika kondisi bernilai benar, jika tidak Statement Pertama akan dikerjakan jika kondisi bernilai benar, jika tidak Statement maka akan mengerjakan perintah setelah keyword

Repetition: Beberapa statement / perintah dapat diulang dengan menggunakan struktur statement / perintah dapat diulang dengan menggunakan struktur statement repetition. Statement / perintah akan tetap diulang selama kondisi perulangan Statement / perintah akan tetap diulang selama kondisi perulangan Statement memenuhi (jika menggunakan DO WHILE ENDDO ENDDO).

Dalam pemrograman berorientasi objek ada konsep data majemuk dan method

di awal untuk menambah kemampuan dalam menciptakan pemrograman modular. Larik ( adalah variabel kompleks yang setiap elemennya mempunyai tipe data yang sama. Tipe data dari


(2)

Konsep Dasar Array

TUJUAN INSTRUKSIONAL KHUSUS

Setelah menyelesaikan sub pokok bahasan ini diharapkan :

a. Mahasiswa mampu menjelaskan konsep dasar array.

b. Mahasiswa mampu merancang array berdimensi satu dan multi berdimensi. c. Mahasiswa mampu membuat array dalam pemrograman java.

1 Pendahuluan

1.1 Pengantar

Dalam pemrograman berorientasi objek ada konsep data majemuk dan method yang harus diketahui di awal untuk menambah kemampuan dalam menciptakan pemrograman modular. Larik (array) adalah variabel kompleks yang setiap elemennya mempunyai tipe data yang sama. Tipe data dari elemen larik dapat berupa tipe data sederhana maupun tipe data kompleks. Setiap elemen larik mempunyai nomor indeks yang unik dan disimpan secara berurutan di dalam memori. Penamaan larik harus mengikuti aturan-aturan penamaan variabel. Seperti halnya variabel sederhana, larik pun harus dideklarasikan dahulu sebelum digunakan. Deklarasi larik berisi tipe data larik, nama larik, dan jumlah maksimum elemen yang dapat ditampungnya. Bahasa Java tidak membatasi jumlah dimensi array yang bisa digunakan. Hal ini semata-mata dibatasi jumlah memori komputer yang tersedia.

1.2 Tujuan

Tujuan pembelajaran pada modul ini adalah :

 Menerapkan konsep tipe data array untuk data majemuk homogen.

 Memahami definisi dan karakteristik array.

 Memahami inisialisasi array.

 Menerapkan array dimensi satu.

 Menerapkan array multi dimensi (berdimensi dua dan tiga)

 Memahami String dan karakter dalam Bahasa Java.

TUJUAN INSTRUKSIONAL KHUSUS

Setelah menyelesaikan sub pokok bahasan ini diharapkan :

Mahasiswa mampu menjelaskan konsep dasar array.

Mahasiswa mampu merancang array berdimensi satu dan multi berdimensi. Mahasiswa mampu membuat array dalam pemrograman .

Dalam pemrograman berorientasi objek ada konsep data majemuk dan method yang harus diketahui di awal untuk menambah kemampuan dalam menciptakan pemrograman modular. Larik ( adalah variabel kompleks yang setiap elemennya mempunyai tipe data yang sama. Tipe data dari elemen larik dapat berupa tipe data sederhana maupun tipe data kompleks. Setiap elemen larik mempunyai nomor indeks yang unik dan disimpan secara berurutan di dalam memori.

larik harus mengikuti aturan aturan penamaan variabel. Seperti halnya variabel sederhana, larik pun harus dideklarasikan dahulu sebelum digunakan. Deklarasi larik berisi tipe data larik, nama larik, dan jumlah maksimum elemen yang dapat ditampungnya. Javatidak membatasi jumlah dimensi

yang bisa digunakan. Hal ini semata mata dibatasi jumlah memori komputer yang tersedia.


(3)

1.3 Definisi

array

Larik (array) adalah variabel kompleks yang setiap elemennya mempunyai tipe data yang sama. Tipe data dari elemen larik dapat berupa tipe data sederhana maupun tipe data kompleks. Setiap elemen larik mempunyai nomor indeks yang unik dan disimpan secara berurutan di dalam memori.

Array dimensi satu

Array adalah merupakan sebuah deklarasi variabel yang digunakan untuk menyimpan sekumpulan data yang memiliki tipe sama dan elemen yang akan diakses hanya melalui 1 indeks.

Array dimensi dua

Array adalah merupakan sebuah deklarasi variabel yang digunakan untuk menyimpan sekumpulan data yang memiliki tipe sama dan elemen yang akan diakses hanya melalui 2 indeks.

Array multidimensi

Array adalah merupakan sebuah deklarasi variabel yang digunakan untuk menyimpan sekumpulan data yang memiliki tipe sama dan elemen yang akan diakses hanya melalui banyak indeks.

String

String adalah Array of character ya g diakhiri de ga ull hara ter \0 atau A“CII ya = 0 . String constant atau string literal adalah beberapa character yang diapit oleh tanda petik dua.

2 Array

2.1 Definisi array

Awal mula dibutuhkan array adalah kita ingin menyimpan banyak data dalam setiap variabel yang didefinisikan. Misal kita ingin menyimpan data nomer induk mahasiswa dalam satu kelas yang berisi 40 mahasiswa. Idealnya kita akan mendefinikan 40 variabel dimana masing-masing variabel digunakan untuk menyimpan satu nomer induk mahasiswa. Jika kita ingin menyimpan nomer induk mahasiswa satu kampus yang mungkin jumlahnya bisa puluhan ribu, maka akan tidak sangat efisien jika kita mendefinisikan puluhan variabel hanya untuk menyimpan nomer induk mahasiswa satu kampus. Disinilah konsep array muncul, dimana hanya butuh nama satu variabel sudah bisa digunakan untuk mewakili akses data tak terbatas ke memori komputer yang di berikan dalam bentuk indek. Data disimpan dalam suatu struktur, sedemikian rupa sehingga elemen-elemen di dalam struktur tersebut dapat diolah secara kelompok ataupun secara individu. Array adalah meru-pakan sebuah deklarasi variabel yang digunakan untuk menyimpan sekumpulan data yang memiliki tipe sama dan elemen yang akan diakses hanya melalui banyak indeks. Larik (array) adalah variabel kompleks yang setiap elemennya mempunyai tipe data yang sama. Tipe data dari elemen larik dapat berupa tipe data sederhana maupun tipe data kompleks. Setiap elemen larik mempunyai nomor indeks yang unik dan disimpan secara berurutan di dalam memori. Penamaan larik harus mengikuti aturan-aturan penamaan variabel. Seperti halnya variabel sederhana, larik pun harus dideklarasikan dahulu sebelum digunakan. Deklarasi larik berisi tipe data larik, nama larik, dan jumlah maksimum adalah merupakan sebuah deklarasi variabel yang digunakan untuk menyimpan sekumpulan data yang memiliki tipe sama dan elemen yang akan diakses hanya melalui 1 indeks.

Array dimensi dua

adalah merupakan sebuah deklarasi variabel yang digunakan untuk menyimpan sekumpulan data yang memiliki tipe sama dan elemen yang akan diakses hanya melalui 2 indeks.

Array multidimensi

adalah merupakan sebuah deklarasi variabel yang digunakan untuk menyimpan sekumpulan data yang memiliki tipe sama dan elemen yang akan diakses hanya melalui banyak indeks.

Array of

string literal adalah beberapa yang diapit oleh tanda petik dua. yang diapit oleh tanda petik dua.

Definisi array

Awal mula dibutuhkan array adalah kita ingin menyimpan banyak data dalam setiap variabel yang didefinisikan. Misal kita ingin menyimpan data nomer induk mahasiswa dalam satu kelas yang berisi 40 mahasiswa. Idealnya kita akan mendefinikan 40 variabel dimana masing-masing variabel digunakan untuk menyimpan satu nomer induk mahasiswa. Jika kita ingin menyimpan nomer induk mahasiswa satu kampus yang mungkin jumlahnya bisa puluhan ribu, maka akan tidak sangat efisien jika kita mendefinisikan puluhan variabel hanya untuk menyimpan nomer induk mahasiswa satu kampus. Disinilah konsep array muncul, dimana hanya butuh nama satu variabel sudah bisa digunakan untuk mewakili akses data tak terbatas ke memori komputer yang di berikan dalam


(4)

elemen yang dapat ditampungnya. Bahasa Java tidak membatasi jumlah dimensi array yang bisa digunakan. Hal ini semata-mata dibatasi jumlah memori komputer yang tersedia. Sintak deklarasi larik adalah sebagai berikut:

tipe_data nama_larik []; atau

tipe_data[] nama_larik;

Larik dapat berdimensi satu, dua, tiga, ataupun lebih, sesuai dengan kebutuhan pemrogram. Dalam bahasa Java, elemen pertama suatu larik diberi indeks nol, elemen kedua diberi indeks satu, dan seterusnya. Setelah dideklarasikan, larik dapat didefinisikan atau diisi dengan nilai-nilai. Sintak pengisian nilai ke dalam indeks tertentu dari sebuah larik yaitu:

nama_larik[indeks_larik] = nilai;

Setelah sebuah larik didefinisikan, elemen larik dapat diakses dengan cara memanggil nama dan nomor indeksnya, seperti berikut ini:

nama_larik[indeks_larik]

2.2 Sifat - sifat Array

Array sebenarnya adalah penulisan lain dari sekelompok variabel yang memiliki tipe data yang sama dan digunakan untuk menyimpan data yang di ringkas dalam sebuah penamaan variabel yang diakses melalui indeks. Perhatikan gambar dibawah:

Gambar 1 Penggambaran sifat array

Misal kita ibaratkan bahwa array bisa kita gambarkan sebagai sebuah almari yang didalamnya ada beberapa laci. Almari kita anggap sebagai array, sedangkan laci kita anggap sebagai indek array yang sudah dikasih nomer. Dari gambar diatas kita umpamakan ada dua buah almari (array) yaitu almari A dengan delapan laci dan almari B dengan delapan laci juga. Dengan melihat kasus ini kita bisa memberikan beberap sifat dari array.

Array memiliki beberapa sifat, diantaranya:

 Homogen : Seluruh elemen di dalam struktur array mempunyai tipe data yang sama. Ketika kita mendefinisikan data array dengan tipe data integer maka setiap elemen yang ada dalam array semuanya bertipe integer. Dalam contoh almari diatas setiap laci Larik dapat berdimensi satu, dua, tiga, ataupun lebih, sesuai dengan kebutuhan pemrogram. Dalam

, elemen pertama suatu larik diberi indeks nol, elemen kedua diberi indeks satu, dan seterusnya. Setelah dideklarasikan, larik dapat didefinisikan atau diisi dengan nilai

pengisian nilai ke dalam indeks tertentu dari sebuah larik yaitu: nama_larik[indeks_larik] = nilai;

Setelah sebuah larik didefinisikan, elemen larik dapat diakses dengan cara memanggil nama dan nomor indeksnya, seperti berikut ini:

nama_larik[indeks_larik]

Sifat - sifat Array

sebenarnya adalah penulisan lain dari sekelompok variabel yang memiliki tipe data yang sama dan digunakan untuk menyimpan data yang di ringkas dalam sebuah penamaan variabel yang diakses melalui indeks. Perhatikan gambar dibawah:

Gambar 1 Penggambaran sifat array


(5)

memiliki bentuk dan ukuran yang sama yang artinya disini laci dalam almari memiliki sifat homoge.

Random Access : Setiap elemen di dalam struktur array dapat dicapai secara individual, langsung ke lokasi elemen yang diinginkan, tidak harus melalui elemen pertama. Dalam contoh almari diatas, misalkan kita ingin menyimpan buku di almari B laci nomer 4, yang kita lakukan adalah membuka laci nomer 4 dari almari B secara langsung tanpa harus menghitung laci mulai dari nomer 1 hingga ketemu nomer 4. Begitu juga jika kita ingin mengambil buku di laci nomer 5 dari almari B. Kita bisa langsung mengambil buku dengan cara membuka laci nomer 5 dari almari B secara langsung tanpa harus menghitung laci mulai dari nomer 1 hingga ketemu nomer 5.

Indeknya terdefinisi: Dalam mengakses indek data array harus terdefinisi dengan benar. Jika indek yang diakses dalam array tidak terdefinisi maka akan terjadi NULL pointer. Artinya alamat array yang diakses dalam memori tidak ada. Bisa diibaratkan jika kita ingin mengakses atau menyimpan data dalam sebuah laci tetapi lacinya tidak ada. Jika kita ingin menyimpan buku di almari A atau B di laci nomer 9, tentu kita akan bingung laci mana yang dimaksud.

Data tunggal : Dalam setiap menyimpan data dalam indek array, hanya bisa dengan data tunggal atau satu data saja. Dalam contoh alamari diatas, kita hanya bisa menyimpan satu buah buku misalnya kedalam masing-masing laci.

Default value array: Array yang di definisikan boleh memiliki indek yang di luar kebutuhan dan secara default terisi dengan nilai default sesuai tipe data array. Misalkan kita hanya mengisi dua data dalam array, tetapi kita mendeklarasikan array itu terdiri dari 8 indek. Maka array yang terisi hanya indek 0 dan indek 1.

2.3 Deklarasi Array

Array pada Java adalah sebuah object, maka harus dideklarasikan menggunakan kata kunci new. Index dimulai dari 0 sampai jumlah element – 1. Sintaks deklarasi array dimensi satu:

type nama_arrray[] = new tipe[Nilai_dim]; Contoh : int a[] = new int[10];

Gambar 2 Visualisasi array

Definisi dari sebuah array terdiri dari 4 komponen yaitu :

 Type specifier : tipe data array sama seperti tipe data variabel: integer, float, double, char, String, boolean, dll.

 Identifier (nama array) : nama dari array.

mengambil buku di laci nomer 5 dari almari B. Kita bisa langsung mengambil buku dengan cara membuka laci nomer 5 dari almari B secara langsung tanpa harus menghitung laci mulai dari nomer 1 hingga ketemu nomer 5.

Indeknya terdefinisi: Dalam mengakses indek data array harus terdefinisi dengan benar. Jika indek yang diakses dalam array tidak terdefinisi maka akan terjadi

Artinya alamat array yang diakses dalam memori tidak ada. Bisa diibaratkan jika kita ingin mengakses atau menyimpan data dalam sebuah laci tetapi lacinya tidak ada. Jika kita ingin menyimpan buku di almari A atau B di laci nomer 9, tentu kita akan bingung laci mana yang dimaksud.

Data tunggal : Dalam setiap menyimpan data dalam indek array, hanya bisa dengan data tunggal atau satu data saja. Dalam contoh alamari diatas, kita hanya bisa menyimpan satu buah buku misalnya kedalam masing-masing laci.

Default value array: Array yang di definisikan boleh memiliki indek yang di luar kebutuhan dan secara dedede terisi dengan nilai terisi dengan nilai default sesuai tipe data default sesuai tipe data default

kita hanya mengisi dua data dalam array, tetapi kita mendeklarasikan dari 8 indek. Maka array yang terisi hanya indek 0 dan indek 1.

Deklarasi Array

Java adalah sebuah , maka harus dideklarasikan menggunakan kata kunci , maka harus dideklarasikan menggunakan kata kunci dimulai dari 0 sampai jumlah element 1. Sintaks deklarasi arraydimensi satu

type nama_arrray[] = new tipe[Nilai_dim]; int a[] = new int[10];


(6)

 Operator index ([ ]) : operator tempat mendeklarasikan index/larik array.

 Nilai dimensi dalam operator [ ] : berapa larik data/laci yang bisa digunakan untuk menyimpan.

2.4 Visualisasi Array

Dengan menggunakan contoh pada deklarasi array di atas (int a[] = new int[10];), dapat digambarkan alokasi untuk variabel A. Elemen-elemen suatu Array diindeks (subscript) mulai dari 0 dan indek terakhir adalah 9.

Gambar 3 Contoh visualisasi Array

2.5 Cara Mengakses Array

Untuk mengakses array kita hanya perlu menggunakan sintaks berikut : nama_larik[indeks_larik]

Misal untuk i=2; maka cara mengaksesnya : A[2]

Bila elemen A[2] hendak ditampilkan di layar monitor, gunakan statemen sbb: System.out.printf(“%d”,A[2]) atau

System.out.println(A[2]);

Untuk mengakses semua data dalam array bisa menggunakan perulangan. Berikut contoh code untuk mengakses data dalam array menggunakan perulangan:

for (int i = 0; i < 10; i ++) { System.out.println(A[i]); }

2.6 Mengisi Data Array

Mengisi data ke elemen array dilakukan dengan menggunakan assignment operator. Contoh : A[6] = 15; A[3] = 27;

Dalam contoh ini kita mengisi variable array A indek ke 6 dengan data 15, dan mengisi indek ke 3 dengan data 27. Visualisasi array ditunjukkan pada gambar 4 dimana pelabelan indek array dalam java dimulai dari 0. Sehingga ketika array A dideklarasikan memiliki indek 10 maka label indek tertinggi adalah 9 bukan 10 karena indek array dimulai dari indek ke 0.

digambarkan alokasi untuk variabel A Array indeks ( dan indek terakhir adalah 9.

Contoh visualisasi

Cara Mengakses Array

Untuk mengakses array kita hanya perlu menggunakan sintaks berikut : nama_larik[indeks_larik]

Misal untuk i=2; maka cara mengaksesnya :

Bila elemen A[2] hendak ditampilkan di layar monitor, gunakan statemen sbb: System.out.printf(“%d”,A[2]) atau

System.out.println(A[2]);

Untuk mengakses semua data dalam arraybisa menggunakan perulangan. Berikut contoh code untuk mengakses data dalam arraymenggunakan perulangan:

for (int i = 0; i < 10; i ++) { System.out.println(A[ ]);


(7)

Gambar 4Contoh pengisian data array

Statement A[2] = A[3] - A[6], menghasilkan :

Gambar 5 Contoh hasil statement

Untuk mengisi data dalam array bisa menggunakan perulangan. Berikut contoh code untuk mengisi data dalam array menggunakan perulangan:

for (int i = 0; i < 10; i ++) { A[i] = i;

}

2.7 Inisialisasi Array

Array dapat diinisialisasi secara eksplisit pada saat didefinisikan dan bisa dilakukan tanpa memberikan nilai dimensinya.

Contoh: int B[ ]={1, 2, -4, 8}; Pada contoh diatas Array B memiliki 4 elemen

Gambar 6 Contoh Array dengan tanpa nilai dimensi Contoh: int B[]={1, 2, -4, 8,0,0,0,0};

Gambar 7 Contoh Array dengan 8 elemen Statement A[2] = A[3] - A[6], menghasilkan :

Gambar 5 Contoh hasil statement

Untuk mengisi data dalam array bisa menggunakan perulangan. Berikut contoh array menggunakan perulangan:

for (int i = 0; i < 10; i ++) { [i] = i;

dapat diinisialisasi secara eksplisit pada saat didefinisikan dan bisa dilakukan tanpa memberikan nilai dimensinya.

Contoh: int B[ ]={1, 2, 4, 8}; Pada contoh diatas Array B memiliki 4 elemen

Gambar 6 Contoh dengan tanpa nilai dimensi dengan tanpa nilai dimensi int B[]={1, 2, 4, 8,0,0,0,0};


(8)

Contoh: inisialisasi array setelah didefinisikan : int A[] = new int[5];

(for i=0; i<5;i++) A[i]=0;

3 Jenis-jenis array

3.1 Array berdimensi satu

Bahasa Java tidak membatasi jumlah dimensi array yang bisa digunakan. Hal ini semata-mata diba-tasi jumlah memori komputer yang tersedia.

Contoh Array dimensi 1: public class Bab_12{

public static void main(String[] args) { final int SIZE = 5;

int i, j;

int n[] = {15, 9, 1, 7, 5}; for( i=0 ; i< SIZE ; i++) {

System.out.printf("%5d ", n[i]);

for ( j=1; j<=n[i] ; j++) System.out.printf("%s","*"); System.out.printf("\n");

} }

}

Dalam contoh program diatas, diinisialisasikan variabel array berdimensi satu dengan nama n dimana masing-masing indeknya berisi data 15, 9, 1, 7, 5 untuk indek ke 0, 1, 2, 3, 4. Untuk menampilkan data array digunakan perulangan untuk mengakses masing-masing indek array n ke i.

3.2 Array Dimensi Dua

Sintaks deklarasi array dimensi dua:

type nama_arrray[][] = new type[baris][kolom];

Dalam sintak array diatas, dimensi pertama menggambarkan baris dan dimensi ke dua menggambarkan kolom. Dalam sintak diatas tujuan dari array berdimensi dua sama dengan array berdimensi satu. Yaitu sama-sama mendifinisikan sebuah variabel yang didalamnya berisi beberapa indek dimana setiap indek bisa mewakili fungsi satu varibel untuk menyimpan data. Yang membedakan disini array berdimensi dua menggambarkan setiap lokasi diakses dengan mendefinisikan baris ke berapa dan kolom ke berapa.

Contoh

int a[][] = new int[3][4];

Array berdimensi satu

Bahasa Java tidak membatasi jumlah dimensi array yang bisa digunakan. Hal ini semata-mata dib tasi jumlah memori komputer yang tersedia.

dimensi 1: public class Bab_12{

public static void main(String[] args) { final int SIZE = 5;

int i, j;

int n[] = {15, 9, 1, 7, 5}; for( i=0 ; i< SIZE ; i++) {

System.out.printf("%5d ", n[i]);

for ( j=1; j<=n[i] ; j++) System.out.printf("%s","*"); System.out.printf(" n");

Dalam contoh program diatas, diinisialisasikan variabel array berdimensi satu dengan nama

masing-masing indeknya berisi data 15, 9, 1, 7, 5 untuk indek ke 0, 1, 2, 3, 4. Untuk menampilkan data array digunakan perulangan untuk mengakses masing-masing indek array

Array Dimensi Dua

Sintaks deklarasi array dimensi dua:


(9)

Dalam contoh diatas, didefinisikan sebuah variabel array a bertipe integer dimana dimensi kesatu (baris) bernilai 3 dan dimensi kedua (kolom) bernilai 4. Secara visualisasi array diatas digambarkan dalam tabel berikut:

Inisialisasi: menggunakan aturan rmo (row major order). Contoh:

int b[][] = { { 1, 2 }, { 3, 4 } }; int b[][] = { { 1 }, { 3, 4 } }; int x[][] = { {1, 2, 3, 4},

{5, 6, 7, 8}, {9, 10, 11, 12}}; Program :

Dalam program diatas diinisialisasikan variabel array two_dim bertipe integer dengan data 1 2 3 4 5

10 20 30 40 50

100 200 300 400 500

Inisialisasi: menggunakan aturan rmo (row major order).

int b[][] = { { 1, 2 }, { 3, 4 } }; int b[][] = { { 1 }, { 3, 4 } }; int x[][] = { {1, 2, 3, 4},

{5, 6, 7, 8}, {9, 10, 11, 12}};


(10)

Yang mana untuk menampilkan data array tersebut digunakan perulangan dalam perulangan (nested loop) untuk menampilkan setiap data dalam array indek ke i (baris) dan indek ke j (kolom). Sebagai contoh ketika nilai indek i =0 dan indek j=0 maka data yang ditampilkan dalam layar adalah 1.

3.3 Array Dimensi Tiga

Sintaks deklarasi array dimensi tiga :

type nama_arrray[][][] = new type[baris][kolom][depth];

Dalam sintak array diatas, dimensi pertama menggambarkan baris, dimensi ke dua menggambarkan kolom, dan dimensi ketiga menggambarkan kedalaman. Dalam sintak diatas tujuan dari array berdimensi tiga sama dengan array berdimensi satu dan dimensi dua. Yaitu sama-sama mendifinisikan sebuah variabel yang didalamnya berisi beberapa indek dimana setiap indek bisa mewakili fungsi satu varibel untuk menyimpan data. Yang membedakan disini array berdimensi tiga menggambarkan setiap lokasi diakses dengan mendefinisikan baris ke berapa, kolom ke berapa, dan pada kedalaman berapa.

Contoh:

int x[][][] = {{{1,2,3,4}, {5,6,7,8}},

{{11,12,13,14}, {15,16,17,18}}, {{21,22,23,24}, {25,26,27,28}}}; public class Array {

public static void main(String[] args) {

int x[][][] = {{{1, 2, 3}, {0, 4, 3, 4}, {1, 2}}, {{9, 7, 5}, {5, 7, 2}, {9}},

{{3, 3, 5}, {2, 8, 9, 9}, {1, 2, 1}}, {{0}, {1}, {0, 1, 9}}};

System.out.printf("%5d", x[2][1][3]); }

}

Pada contoh program diatas:

 Di inisialisasi variabel array x berdimensi 3 bertipe integer.

 Untuk menampilkan seluruh isi dari array berdimensi 3 digunakan perulangan dalam perulangan tingkat 3 ( triple nested loop ) untuk mengakses indek baris ke i, indek kolom ke j dan indek kedalaman ke k.

 Pada contoh diatas jika program menampilkan x[2][1][3] maka akan menampilkan data baris ke 2, kolom ke 1, dan kedalaman ke 3 yaitu angka 9.

3.4 Array of character

Array yang masing-masing indeknya isinya adalah karakter. Sintak:

Dalam sintak array diatas, dimensi pertama menggambarkan baris, dimensi ke dua menggambarkan kolom, dan dimensi ketiga menggambarkan kedalaman. Dalam sintak diatas tujuan dari berdimensi tiga sama dengan array berdimensi satu dan dimensi dua. Yaitu sama-sama mendifinisikan sebuah variabel yang didalamnya berisi beberapa indek dimana setiap indek bisa mewakili fungsi satu varibel untuk menyimpan data. Yang membedakan disini

menggambarkan setiap lokasi diakses dengan mendefinisikan baris ke berapa, kolom ke berapa, dan pada kedalaman berapa.

int x[][][] = {{{1,2,3,4}, {5,6,7,8}},

{{11,12,13,14}, {15,16,17,18}}, {{21,22,23,24}, {25,26,27,28}}}; public class Array {

public static void main(String[] args) {

int x[][][] = {{{1, 2, 3}, {0, 4, 3, 4}, {1, 2}}, {{9, 7, 5}, {5, 7, 2}, {9}},

{{3, 3, 5}, {2, 8, 9, 9}, {1, 2, 1}}, {{0}, {1}, {0, 1, 9}}};

System.out.printf("%5d", x[2][1][3]);

Pada contoh program diatas:

Di inisialisasi variabel array berdimensi 3 bertipe integer.


(11)

char nama_array[] = new char[nilai_dim];

Dalam sintak array diatas, didefinisikan varibel array berdimensi satu bertipe karakter. Contoh:

char nama = new int [40];

char ss[ ]= {„P‟,‟T‟,‟I‟,‟I‟,‟K‟,‟-‟,‟U‟, ‟B‟}; //8 elemen

3.5 String

String adalah Array of character yang diakhiri dengan null character \0 atau A“CII ya = 0 . String constant atau string literal adalah beberapa character yang diapit oleh tanda petik dua.

Co toh: “ela at data g

Tipe dari string constant adalah pointer constant, sehingga bisa di-assigned ke array of character sbb: Contoh :

char nama[40] = ”Amir”; //ok

nama = ”Amir”; //error krn nama adalah pointer konstan nama[40]= “Amir”; //error

String constant dapat digabung saat dikompilasi : Hello, orld Sama artinya : Hello, orld Contoh inisialisasi string:

char s[ ] = ”FT-UB”; Sama artinya dgn:

char s[ ] = {‟F‟,‟T‟,‟-‟,‟U‟,‟B‟,‟\0‟}; String bukan tipe data di Bahasa Java.

3.6 Karakter vs String

Karakter dalam bahasa Java diapit oleh single quote. Tiap karakter menempati satu byte memori. Contoh:

char ch=‟A‟;

char ch=65; //Ascii desimal char ch=0x41; //Ascii hexadesimal String diapit oleh double quote.

Contoh:

“tri g str = A ;

Meskipun inisialisasi String terdiri dari satu karakter saja bukan berarti data itu sebuah char. Contoh diatas adalah sebuah String yang terdiri dari 2 karakter, yaitu karakter A da karakter \0 atau Null. Untuk lebih jelasnya digambarkan dalam gambar 12.6.

Array of character yang diakhiri dengan

Array of character yang diakhiri dengan

Array of character null character

string literal adalah beberapa character yang diapit oleh tanda petik dua.

Tipe dari string constant adalah pointer constant, sehingga bisa di-assigned ke array of character

char nama[40] = ”Amir”; //ok

nama = ”Amir”; //error krn nama adalah pointer konstan nama[40]= “Amir”; //error

String constant dapat digabung saat dikompilasi : Hello, orld Sama artinya Contoh inisialisasi string:

char s[ ] = ”FT UB”; Sama artinya dgn:

char s[ ] = {‟F‟,‟T‟,‟ ‟,‟U‟,‟B‟,‟ 0‟}; bukan tipe data di Bahasa Java.

Karakter vs String

Karakter dalam bahasa Java diapit oleh single quote. Tiap karakter menempati satu byte memori. char ch=‟A‟;

char ch=65; //Ascii desimal char ch=0x41; //Ascii hexadesimal String diapit oleh double quote.


(12)

Gambar 12.6 String diapit oleh double quote

3.7 Operasi dasar String

String dalam bahasa java merupakan sebuah class (java.lang.String) yang yang sering digunakan untuk deklarasi tipe variable berupa objek. Tipe data ini sering sekali digunakan dalam program terutama untuk memanipulasi data String. Kelas ini banyak memiliki method yang sangat berguna dalam memanipulasi String. Beberapa method yang sering digunakan adalah:

 Lenght()

Mehod ini digunakan untuk menghitung karakter atau panjang dari sebuah String. Contoh:

String kalimat = "Belajar Java";

System.out.println("Panjang kalimat: " + kalimat.length()); Hasil:

Panjang kalimat:12

 toUpperCase()

Mehod ini digunakan untuk mengubah karakter dalam String menjadi huruf besar. Contoh:

String kalimat = "Belajar Java";

System.out.println("Uppercase kalimat: " + kalimat.toUpperCase()); Hasil:

Uppercase kalimat: BELAJAR JAVA

 toLowerCase()

Mehod ini digunakan untuk mengubah karakter dalam String menjadi huruf kecil. Contoh:

String kalimat = "Belajar Java";

System.out.println("Lowercase kalimat: " + kalimat.toLowerCase()); Hasil:

Lowercase kalimat: belajar java

 replace()

Mehod ini digunakan untuk mengganti sebagian dari isi suatu string. Method ini akan mengganti semua kata yang sama dengan penggantinya.

Contoh:

String kalimat = "Belajar Java";

System.out.println("Ubah 'Java' menjadi 'bahasa Java': " + kalimat.replace("Java ", "bahasa Java"));

Hasil:

Ubah 'Java' menjadi 'bahasa Java': Belajar bahasa Java Jika kita ingin mengganti satu kata saja, maka bisa kita gunakan method replaceFirst(). dalam bahasa java merupakan sebuah (java.lang.String) yang yang sering digunakan untuk deklarasi tipe variable berupa objek. Tipe data ini sering sekali digunakan dalam program terutama untuk memanipulasi data String. Kelas ini banyak memiliki method yang sangat berguna method yang sangat berguna method dalam memanipulasi String. Beberapa method yang sering digunakan adalah: thod yang sering digunakan adalah: thod

Mehod ini digunakan untuk menghitung karakter atau panjang dari sebuah String. Contoh:

String kalimat = "Belajar Java";

System.out.println("Panjang kalimat: " + kalimat.length()); Hasil:

Panjang kalimat:12

Mehod ini digunakan untuk mengubah karakter dalam String menjadi huruf besar. Contoh:

String kalimat = "Belajar Java";

System.out.println("Uppercase kalimat: " + kalimat.toUpperCase()); Hasil:

Uppercase kalimat: BELAJAR JAVA

Mehod ini digunakan untuk mengubah karakter dalam String menjadi huruf kecil. Contoh:

String kalimat = "Belajar Java";

System.out.println("Lowercase kalimat: " + kalimat.toLowerCase()); Hasil:

Lowercase kalimat: belajar java ()


(13)

 equals()

Mehod ini digunakan untuk membandingkan variabel String dengan string lainnya. Jika isi dari String itu sama maka akan memberikan nilai True dan jika tidak sama akan memberikan nilai False.

Contoh:

String kata1 = new String("Belajar Java "); String kata2 = new String("Belajar Java "); if(kata1.equals(kata2)){

System.out.println("isi kata sama"); }

else {

System.out.println("isi kata tidak sama"); }

Hasil:

isi kata sama

Jika kita ingin membandingkan dua buah String tanpa memperhatikan besar dan kecil hurufnya bisa menggunakan method equalsIgnoreCase().

 indexOf()

Mehod ini digunakan untuk mencari indek dari suatu kata/kalimat. Berapa di karakter keberapa String yang dicari.

Contoh:

String kalimat = "Belajar Java";

System.out.println("Posisi 'Java' dalam kalimat: " + kalimat.indexOf("Java"));

Hasil:

Posisi 'Java' dalam kalimat: 8

Kalau kita hitu g se ara a ual seharusya kata Ja a erada pada posisi ke . Ke apa

hasilnya berada di posisi yang ke 8 karena String dalam java menganut sistem zero based index yang artinya perhitungan indeknya dimulai dari 0 bukan dari 1.

 contains()

Mehod ini digunakan untuk mengetahui apakah ada kata tertentu dalam kalimat. Method ini akan mengembalikan nilai True jika terdapat kata yang dimaksud dan mengembalikan nilai False jika tidak ada kata yang dimaksud dalam kalimat.

Contoh:

String kalimat = "Belajar Java";

System.out.println("Terdapat 'Java' dalam kalimat: " + kalimat.contains("Java"));

Hasil:

Terdapat 'Java' dalam kalimat:True

 split()

Mehod ini digunakan untuk memecah kalimat berdasarkan separator/pemisah. Contoh:

System.out.println("isi kata sama"); else {

System.out.println("isi kata tidak sama"); Hasil:

isi kata sama

Jika kita ingin membandingkan dua buah String tanpa memperhatikan besar dan kecil hurufnya bisa menggunakan method equalsIgnoreCase().

indexOf()

Mehod ini digunakan untuk mencari indek dari suatu kata/kalimat. Berapa di karakter String yang dicari.

Contoh:

String kalimat = "Belajar Java";

System.out.println("Posisi 'Java' dalam kalimat: " + kalimat.indexOf("Java"));

Hasil:

Posisi 'Java' dalam kalimat: 8

hasilnya berada di posisi yang ke 8 karena String dalam java menganut sistem zero based index yang artinya perhitungan indeknya dimulai dari 0 bukan dari 1.

contains()

Mehod ini digunakan untuk mengetahui apakah ada kata tertentu dalam kalimat. Method ini akan mengembalikan nilai True jika terdapat kata yang dimaksud dan mengembalikan nilai

jika tidak ada kata yang dimaksud dalam kalimat. Contoh:


(14)

String kalimat = "Belajar bahasa Java";

String[] pecah = kalimatPakaiSeparator.split(" "); // split spasi System.out.println("Hasil pecahan: ");

for(int counter = 0; counter < pecah.length; counter++){ System.out.println(" " + pecah[counter]);

}

Hasil:

Belajar Bahasa Java

4 Implementasi penggunaan Array

4.1 Array berdimensi satu

Program berikut adalah program untuk mencari nilai rata-rata sekelompok bilangan, dimana bilangan yang akan dirata-rata dimasukkan terlebih dahulu ke dalam array.

01 import java.util.Scanner; 02 public class Prak_501 {

03 public static void main (String[] args) { 04 Scanner masukan = new Scanner(System.in); 05 int jumbil, total=0;

06 float rata2;

07 System.out.print(“Berapa banyaknya bilangan ? ”); 08 jumbil = masukan.nextInt();

09 int data[] = new int[jumbil]; 10 for(int i=0;i<jumbil;i++){

11 System.out.print(“Masukkan data ke-”+(i+1)+” : “); 12 data[i] = masukan.nextInt();

13 total = total + data[i]; 14 }

15 System.out.print(“Nilai rata-rata dari : ”); 16 for(int i=0;i<(jumbil-1);i++)

17 System.out.print(data[i] + “ + ”);

18 System.out.print(data[jumbil-1] + “ adalah ”); 19 rata2 = total/jumbil;

20 System.out.println(rata2); 21 }

22 }

Keterangan Program diatas:

 Baris ke empat sampai baris ke 6 adalah deklarasi variabel yang diperlukan. Java

Implementasi penggunaan Array

Array berdimensi satu

Program berikut adalah program untuk mencari nilai rata-rata sekelompok bilangan, dimana bilangan yang akan dirata-rata dimasukkan terlebih dahulu ke dalam array.

import java.util.Scanner; public class Prak_501 {

public static void main (String[] args) { Scanner masukan = new Scanner(System.in); int jumbil, total=0;

float rata2;

System.out.print(“Berapa banyaknya bilangan ? ”); jumbil = masukan.nextInt();

int data[] = new int[jumbil]; for(int i=0;i<jumbil;i++){

System.out.print(“Masukkan data ke ”+(i+1)+” : “); data[i] = masukan.nextInt();

total = total + data[i];

System.out.print(“Nilai rata rata dari : ”); for(int i=0;i<(jumbil 1);i++)

System.out.print(data[i] + “ + ”);


(15)

 Baris ke delapan adalah deklarasi variabel array dengan indek sejumlah yang dimasukkan oleh user yang disimpan dalam variabel jumbil.

 Baris ke sepuluh sampai baris ke 14 adalah perulangan untuk memasukkan data yang disimpan dalam masing-masing indek array data.

 Baris ke 12 adalah mengisi data masukan ke data array indek –i.

 Baris ke 13 adalah menjumlahkan masing-masing data array indek ke –i yang disimpan dalam variabel total.

 Baris ke 16 dan ke 17 adalah perulangan untuk menampilkan data dari masing-masing indek.

 Baris ke 19 adalah menghitung rata-rata.

 Baris ke 20 adalah menampilkan hasil rata-rata.

4.2 Array berdimensi dua

Program berikut adalah program untuk menjumlahkan dua buah matriks. Untuk membuat suatu matriks, maka digunakan array 2 dimensi.

01 import java.util.Scanner; 02 public class Prak_502 {

03 public static void main (String[] args) { 04 int baris, kolom;

05 Scanner masukan = new Scanner(System.in);

06 System.out.println("Program Penjumlahan 2 buah matriks"); 07 System.out.print("Masukkan jumlah baris Matriks : "); 08 baris = masukan.nextInt();

09 System.out.print("Masukkan jumlah kolom Matriks : "); 10 kolom = masukan.nextInt();

11 System.out.println();

12 System.out.println("Masukkan data : "); 13 System.out.println("Matriks 1 : ");

14 int matriks1[][] = new int[baris][kolom]; 15 for(int i=0;i<baris;i++){

16 for(int j=0;j<kolom;j++){

17 System.out.print("Bil baris ke-"+i+" kolom ke-"+j+" : "); 18 matriks1[i][j] = masukan.nextInt();

19 } 20 }

21 System.out.println();

22 System.out.println("Matriks 2 : ");

23 int matriks2[][] = new int[baris][kolom]; 24 for(int i=0;i<baris;i++){

25 for(int j=0;j<kolom;j++){

26 System.out.print("Bil baris ke-"+i+" kolom ke-"+j+" : "); Baris ke 16 dan ke 17 adalah perulangan untuk menampilkan data dari masing-masing indek.

Baris ke 19 adalah menghitung rata-rata. Baris ke 20 adalah menampilkan hasil rata-rata.

Array berdimensi dua

Program berikut adalah program untuk menjumlahkan dua buah matriks. Untuk membuat suatu matriks, maka digunakan array 2 dimensi.

import java.util.Scanner; public class Prak_502 {

public static void main (String[] args) { int baris, kolom;

Scanner masukan = new Scanner(System.in);

System.out.println("Program Penjumlahan 2 buah matriks"); System.out.print("Masukkan jumlah baris Matriks : "); baris = masukan.nextInt();

System.out.print("Masukkan jumlah kolom Matriks : "); kolom = masukan.nextInt();

System.out.println();

System.out.println("Masukkan data : "); System.out.println("Matriks 1 : ");

int matriks1[][] = new int[baris][kolom]; for(int i=0;i<baris;i++){

for(int j=0;j<kolom;j++){

System.out.print("Bil baris ke "+i+" kolom ke matriks1[i][j] = masukan.nextInt();


(16)

27 matriks2[i][j] = masukan.nextInt(); 28 }

29 }

30 System.out.println("Data sebelum dijumlahkan : "); 31 System.out.println("Matriks 1 : ");

32 for(int i=0;i<baris;i++){ 33 for(int j=0;j<kolom;j++)

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

35 System.out.println(); 36 }

37 System.out.println();

38 System.out.println("Matriks 2 : "); 39 for(int i=0;i<baris;i++){

40 for(int j=0;j<kolom;j++)

41 System.out.print(matriks2[i][j] + " "); 42 System.out.println();

43 }

44 System.out.println();

45 int hasil[][] = new int[baris][kolom]; 46 for(int i=0;i<baris;i++){

47 for(int j=0;j<kolom;j++)

48 hasil[i][j] = matriks1[i][j]+matriks2[i][j]; 49 }

50 System.out.println("Hasil penjumlahan Matriks tersebut : "); 51 for(int i=0;i<baris;i++){

52 for(int j=0;j<kolom;j++)

53 System.out.print(hasil[i][j] + " "); 54 System.out.println();

55 }

56 System.out.println(); 57 }

58 }

Keterangan Program diatas:

Baris ke 4 adalah deklarasi variabel baris dan kolom.

Baris ke 6 sampai ke 10 adalah proses output dan input data dari user untuk memasukkan nilai baris dan kolom.

Baris ke 14 adalah deklarasi variabel array 2 dimensi untuk matrik ke 1 dengan dimensi pertama seukuran baris dan dimensi ke dua seukuran kolom.

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

System.out.println();

System.out.println();

System.out.println("Matriks 2 : "); for(int i=0;i<baris;i++){

for(int j=0;j<kolom;j++)

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

System.out.println();

int hasil[][] = new int[baris][kolom]; for(int i=0;i<baris;i++){

for(int j=0;j<kolom;j++)

hasil[i][j] = matriks1[i][j]+matriks2[i][j];

System.out.println("Hasil penjumlahan Matriks tersebut : "); for(int i=0;i<baris;i++){

for(int j=0;j<kolom;j++)

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


(17)

Baris ke 15 sampai baris ke 20 adalah proses perulangan dalam perulangan (nested loop) untuk memasukkan data dalam array baris ke i kolom ke j. For pertama (baris ke 15) mewakili baris ke i dan For kedua (baris 16) mewakili kolom ke j.

Baris ke 23 adalah deklarasi variabel array 2 dimensi untuk matrik ke 2 dengan dimensi pertama seukuran baris dan dimensi ke dua seukuran kolom.

Baris ke 24 sampai baris ke 29 adalah proses perulangan dalam perulangan (nested loop) untuk memasukkan data dalam array baris ke i kolom ke j. For pertama (baris ke 24) mewakili baris ke i dan For kedua (baris 25) mewakili kolom ke j.

Baris ke 32 sampai baris ke 36 adalah proses perulangan dalam perulangan (nested loop) untuk menampilkan data Matrik ke 1 dalam array baris ke i kolom ke j. For pertama (baris ke 32) mewakili baris ke i dan For kedua (baris 33) mewakili kolom ke j.

Baris ke 39 sampai baris ke 43 adalah proses perulangan dalam perulangan (nested loop) untuk menampilkan data Matrik ke 2 dalam array baris ke i kolom ke j. For pertama (baris ke 39) mewakili baris ke i dan For kedua (baris 43) mewakili kolom ke j.

Baris ke 45 adalah deklarasi variabel array 2 dimensi untuk matrik ke 3 (matrik hasil penjumlahan matrik 1 dan matrik 2) dengan dimensi pertama seukuran baris dan dimensi ke dua seukuran kolom.

Baris ke 46 sampai baris ke 49 adalah proses perulangan dalam perulangan (nested loop) untuk mengisi data Matrik hasil dalam array baris ke i kolom ke j. For pertama (baris ke 46) mewakili baris ke i dan For kedua (baris 47) mewakili kolom ke j.

 Baris ke 48 adalah proses perhitungan penjumlahan matrik 1 baris ke i kolom ke j dengan matrik 2 baris ke i kolom ke j yang hasilnya disimpan dalam matrik hasil baris ke i kolom ke j.

Baris ke 51 sampai baris ke 55 adalah proses perulangan dalam perulangan (nested loop) untuk menampilkan data Matrik hasil dalam array baris ke i kolom ke j. For pertama (baris ke 51) mewakili baris ke i dan For kedua (baris 52) mewakili kolom ke j.

mewakili baris ke dan dan kedua (baris 25) mewakili kolom ke kedua (baris 25) mewakili kolom ke

Baris ke 32 sampai baris ke 36 adalah proses perulangan dalam perulangan ( untuk menampilkan data Matrik ke 1 dalam array baris ke kolom ke kolom ke (baris ke 32) mewakili baris ke dan dan kedua (baris 33) mewakili kolom ke kedua (baris 33) mewakili kolom ke Baris ke 39 sampai baris ke 43 adalah proses perulangan dalam perulangan ( untuk menampilkan data Matrik ke 2 dalam array baris ke kolom ke kolom ke (baris ke 39) mewakili baris ke dan dan kedua (baris 43) mewakili kolom ke kedua (baris 43) mewakili kolom ke

Baris ke 45 adalah deklarasi variabel array 2 dimensi untuk matrik ke 3 (matrik hasil penjumlahan matrik 1 dan matrik 2) dengan dimensi pertama seukuran baris dan dimensi ke dua seukuran kolom.

Baris ke 46 sampai baris ke 49 adalah proses perulangan dalam perulangan ( untuk mengisi data Matrik hasil dalam array baris ke kolom ke kolom ke .

46) mewakili baris ke dan dan kedua (baris 47) mewakili kolom ke kedua (baris 47) mewakili kolom ke

Baris ke 48 adalah proses perhitungan penjumlahan matrik 1 baris ke i kolom ke j dengan matrik 2 baris ke i kolom ke j yang hasilnya disimpan dalam matrik hasil baris ke i kolom ke j.

Baris ke 51 sampai baris ke 55 adalah proses perulangan dalam perulangan ( untuk menampilkan data Matrik hasil dalam array baris ke kolom ke kolom ke (baris ke 51) mewakili baris ke dan dan kedua (baris 52) mewakili kolom ke kedua (baris 52) mewakili kolom ke


(18)

CONTOH SOAL

1. Jelaskan pengertian dari array! Jawab:

Larik (array) adalah variabel kompleks yang setiap elemennya mempunyai tipe data yang sama. Tipe data dari elemen larik dapat berupa tipe data sederhana maupun tipe data kompleks. Setiap elemen larik mempunyai nomor indeks yang unik dan disimpan secara berurutan di dalam memori.

2. Apa yang dimaksud dengan array berdimensi satu, dua, dan multidimensi array! Jawab:

Array dimensi satu

Array adalah merupakan sebuah deklarasi variabel yang digunakan untuk menyimpan sekumpulan data yang memiliki tipe sama dan elemen yang akan diakses hanya melalui 1 indeks.

Array dimensi dua

Array adalah merupakan sebuah deklarasi variabel yang digunakan untuk menyimpan sekumpulan data yang memiliki tipe sama dan elemen yang akan diakses hanya melalui 2 indeks.

Array multidimensi

Array adalah merupakan sebuah deklarasi variabel yang digunakan untuk menyimpan sekumpulan data yang memiliki tipe sama dan elemen yang akan diakses hanya melalui banyak indeks.

LATIHAN SOAL

1. Jelaskan kenapa perlu data dalam bentuk array! 2. Sebutkan sifat-sifat dari array!

3. Bagaimana cara mendeklarasikan array berdimensi satu, dan beri keterangan? 4. Jelaskan bagaimana cara mengakses dan mengisi array!

5. Berikan contoh inisialisasi array yang diisi datanya saat pendeklarasian array! berurutan di dalam memori.

Apa yang dimaksud dengan array berdimensi satu, dua, dan multidimensi Array dimensi satu

adalah merupakan sebuah deklarasi variabel yang digunakan untuk menyimpan sekumpulan data yang memiliki tipe sama dan elemen yang akan diakses hanya melalui 1 Array dimensi dua

adalah merupakan sebuah deklarasi variabel yang digunakan untuk menyimpan sekumpulan data yang memiliki tipe sama dan elemen yang akan diakses hanya melalui 2 Array multidimensi

adalah merupakan sebuah deklarasi variabel yang digunakan untuk menyimpan sekumpulan data yang memiliki tipe sama dan elemen yang akan diakses hanya melalui banyak indeks.

Jelaskan kenapa perlu data dalam bentuk array! Sebutkan sifat-sifat dari array!

Bagaimana cara mendeklarasikan array berdimensi satu, dan beri keterangan? Jelaskan bagaimana cara mengakses dan mengisi array!


(19)

RANGKUMAN

Konsep array muncul, dimana hanya butuh nama satu variabel sudah bisa digunakan untuk mewakili akses data tak terbatas ke memori komputer yang di berikan dalam bentuk indek. Data disimpan dalam suatu struktur, sedemikian rupa sehingga elemen-elemen di dalam struktur tersebut dapat diolah secara kelompok ataupun secara individu. Array memiliki beberapa sifat, diantaranya: homogen, random access, indeknya harus terdefinisi dan data tunggal/satu data yang bisa dimasukkan dalam masing-masing indek array. Seluruh elemen di dalam struktur array mempunyai tipe data yang sama. Setiap elemen di dalam struktur array dapat dicapai secara individual, langsung ke lokasi elemen yang diinginkan, tidak harus melalui elemen pertama. Dalam mengakses indek data array harus terdefinisi dengan benar. Jika indek yang diakses dalam array tidak terdefinisi maka akan terjadi NULL pointer. Dalam setiap menyimpan data dalam indek array, hanya bisa dengan data tunggal atau satu data saja. Bahasa Java tidak membatasi jumlah dimensi array yang bisa digunakan. Hal ini semata-mata dibatasi jumlah memori komputer yang tersedia.

TES FORMATIF

1. Jelaskan kelebihan jika kita menggunakan array untuk deklarasi varibel yang dibutuhkan dibanding dengan deklarasi variabel untuk setiap data yang ingin kita simpan!

2. Buatlah program untuk menyimpan beberapa data kemudian urutkan data tersebut mulai dari data yang terkecil!

3. Kembangkan program nomer 2 diatas untuk menghitung nilai mean, nilai minimum dan maksimum dari data dalam array!

4. Kembangkan contoh array berdimensi 2 dalam sub pokok bahasan ini untuk menghitung perkalian 2 buah matrik.

5. Jelaskan array of character yang menunjukkan perbedaan antara tipe data karakter dan String dalam Java!

DAFTAR PUSTAKA

[1] P.J. Deitel, H.M. Deitel , Ja a : ho to progra th Pre ti e Hall,I“BN -0-13-257566-9,2012. [2] Mary Campione, Kathy Walrath, Alison Huml. Ja a™ Tutorial, Third Edition: A Short Course on

the Basics . Addison Wesley. 2000.

[3] Arnold, K., Gosling, J., and Holmes, J. The Ja a™ Progra i g La guage, 4th Editio . Addison Wesley Professional. 2005.

[4] Java tutorial: http://download.oracle.com/javase/tutorial/

dimasukkan dalam masing-masing indek array. Seluruh elemen di dalam struktur

tipe data yang sama. Setiap elemen di dalam struktur array dapat dicapai secara individual, langsung ke lokasi elemen yang diinginkan, tidak harus melalui elemen pertama. Dalam mengakses indek data harus terdefinisi dengan benar. Jika indek yang diakses dalam array tidak terdefinisi maka akan NULL pointer. Dalam setiap menyimpan data dalam indek array, hanya bisa dengan data tunggal atau satu data saja. Bahasa Java tidak membatasi jumlah dimensi array

Hal ini semata-mata dibatasi jumlah memori komputer yang tersedia.

Jelaskan kelebihan jika kita menggunakan array untuk deklarasi varibel yang dibutuhkan dibanding dengan deklarasi variabel untuk setiap data yang ingin kita simpan!

Buatlah program untuk menyimpan beberapa data kemudian urutkan data tersebut mulai dari data yang terkecil!

Kembangkan program nomer 2 diatas untuk menghitung nilai mean maksimum dari data dalam array!

Kembangkan contoh array berdimensi 2 dalam sub pokok bahasan ini untuk menghitung perkalian 2 buah matrik.

array of character yang menunjukkan perbedaan antara tipe data karakter dan array of character yang menunjukkan perbedaan antara tipe data karakter dan array of character

String dalam Java!

[1] P.J. Deitel, H.M.

-0-Mary Campione, Kathy Walrath, Alison Huml. Ja a™ Tutorial, Third Edition: A Short Course on . Addison Wesley


(20)

KUNCI JAWABAN LATIHAN SOAL

1. Konsep array muncul, dimana hanya butuh nama satu variabel sudah bisa digunakan untuk mewakili akses data tak terbatas ke memori komputer yang di berikan dalam bentuk indek. Data disimpan dalam suatu struktur, sedemikian rupa sehingga elemen-elemen di dalam struktur tersebut dapat diolah secara kelompok ataupun secara individu.

2. Array memiliki beberapa sifat, diantaranya:

 Homogen : Seluruh elemen di dalam struktur array mempunyai tipe data yang sama. Ketika kita mendefinisikan data array dengan tipe data integer maka setiap elemen yang ada dalam array semuanya bertipe integer. Dalam contoh almari diatas setiap laci memiliki bentuk dan ukuran yang sama yang artinya disini laci dalam almari memiliki sifat homoge.

Random Access : Setiap elemen di dalam struktur array dapat dicapai secara individual, langsung ke lokasi elemen yang diinginkan, tidak harus melalui elemen pertama. Dalam contoh almari diatas, misalkan kita ingin menyimpan buku di almari B laci nomer 4, yang kita lakukan adalah membuka laci nomer 4 dari almari B secara langsung tanpa harus menghitung laci mulai dari nomer 1 hingga ketemu nomer 4. Begitu juga jika kita ingin mengambil buku di laci nomer 5 dari almari B. Kita bisa langsung mengambil buku dengan cara membuka laci nomer 5 dari almari B secara langsung tanpa harus menghitung laci mulai dari nomer 1 hingga ketemu nomer 5.

Indeknya terdefinisi: Dalam mengakses indek data array harus terdefinisi dengan benar. Jika indek yang diakses dalam array tidak terdefinisi maka akan terjadi NULL pointer. Artinya alamat array yang diakses dalam memori tidak ada. Bisa diibaratkan jika kita ingin mengakses atau menyimpan data dalam sebuah laci tetapi lacinya tidak ada. Jika kita ingin menyimpan buku di almari A atau B di laci nomer 9, tentu kita akan bingung laci mana yang dimaksud.

Data tunggal : Dalam setiap menyimpan data dalam indek array, hanya bisa dengan data tunggal atau satu data saja. Dalam contoh alamari diatas, kita hanya bisa menyimpan satu buah buku misalnya kedalam masing-masing laci.

3. Deklarasi array berdimensi satu:

type nama_arrray[] = new tipe[Nilai_dim];

Definisi dari sebuah array terdiri dari 4 komponen yaitu :

 Type specifier : tipe data array sama seperti tipe data variabel: integer, float, double, char, String, boolean, dll.

 Identifier (nama array) : nama dari array.

 Operator index ([ ]) : operator tempat mendeklarasikan index/larik array. struktur tersebut dapat diolah secara kelompok ataupun secara individu.

memiliki beberapa sifat, diantaranya:

Homogen : Seluruh elemen di dalam struktur array mempunyai tipe data yang sama. Ketika kita mendefinisikan data array dengan tipe data integer maka setiap elemen yang integer maka setiap elemen yang integer ada dalam array semuanya bertipe integer. Dalam contoh almari diatas setiap laci memiliki bentuk dan ukuran yang sama yang artinya disini laci dalam almari memiliki sifat homoge.

Random Access : Setiap elemen di dalam struktur array dapat dicapai secara individual, langsung ke lokasi elemen yang diinginkan, tidak harus melalui elemen pertama. Dalam contoh almari diatas, misalkan kita ingin menyimpan buku di almari B laci nomer 4, yang kita lakukan adalah membuka laci nomer 4 dari almari B secara langsung tanpa harus menghitung laci mulai dari nomer 1 hingga ketemu nomer 4. Begitu juga jika kita ingin mengambil buku di laci nomer 5 dari almari B. Kita bisa langsung mengambil buku dengan cara membuka laci nomer 5 dari almari B secara langsung tanpa harus menghitung laci mulai dari nomer 1 hingga ketemu nomer 5.

Indeknya terdefinisi: Dalam mengakses indek data array harus terdefinisi dengan benar. Jika indek yang diakses dalam array tidak terdefinisi maka akan terjadi

Artinya alamat array yang diakses dalam memori tidak ada. Bisa diibaratkan jika kita ingin mengakses atau menyimpan data dalam sebuah laci tetapi lacinya tidak ada. Jika kita ingin menyimpan buku di almari A atau B di laci nomer 9, tentu kita akan bingung laci mana yang dimaksud.

Data tunggal : Dalam setiap menyimpan data dalam indek array, hanya bisa dengan data tunggal atau satu data saja. Dalam contoh alamari diatas, kita hanya bisa menyimpan satu buah buku misalnya kedalam masing-masing laci.


(21)

 Nilai dimensi dalam operator [ ] : berapa larik data/laci yang bisa digunakan untuk menyimpan.

4. Untuk mengakses array kita hanya perlu menggunakan sintaks berikut : nama_larik[indeks_larik]

Mengisi data ke elemen array dilakukan dengan menggunakan assignment operator. Contoh : A[6] = 15; A[3] = 27;

Bila elemen A[2] hendak ditampilkan di layar monitor, gunakan statemen sbb: System.out.printf(“%d”,A[2]) atau

System.out.println(A[2]);

5. Array dapat diinisialisasi secara eksplisit pada saat didefinisikan dan bisa dilakukan tanpa memberikan nilai dimensinya.

Contoh: int B[ ]={1, 2, -4, 8}; Contoh : A[6] = 15; A[3] = 27;

Bila elemen A[2] hendak ditampilkan di layar monitor, gunakan statemen System.out.printf(“%d”,A[2]) atau

System.out.println(A[2]);

dapat diinisialisasi secara eksplisit pada saat didefinisikan dan bisa dilakukan tanpa memberikan nilai dimensinya.


(22)

Pemrograman Modular

TUJUAN INSTRUKSIONAL KHUSUS

Setelah menyelesaikan bab ini diharapkan :

a. Mahasiswa mampu menjelaskan konsep pemrograman modular. b. Mahasiswa mampu menjelaskan konsep kelas dan objek.

c. Mahasiswa mampu menjelaskan komponen dalam kelas.

d. Mahasiswa mampu merancang dan membuat method dalam kelas java.

1 Pendahuluan

1.1 Pengantar

Kebanyakan program yang telah dibuat ternyata tersusun dengan kurang baik, sehingga melakukan perubahan pada program-program tersebut merupakan pekerjaan yang sulit dan menghabiskan waktu. Kadangkala, program-program tersebut perlu ditulis ulang secara keseluruhan. Dalam Pemrograman OOP (Object Oriented Programming), dikenal metode untuk "memecah" kode program yang panjang menjadi modul-modul yang saling terkait antara yang satu dengan yang lain menjadi method. Setiap kali diperlukan, program utama dapat "memanggil" masing-masing modul kecil tersebut untuk mengerjakan perintah/perhitungan tertentu. Setelah pekerjaan/perhitungan di dalam modul tersebut selesai dilakukan, kontrol program dialihkan ke instruksi berikutnya di dalam program utama. Dalam bahasa pemrograman, modul-modul tersebut juga disebut sebagai subrutin, subprogram, prosedur, atau fungsi.

Dalam konsep pemrograman berorientasi objek, kita harus memahami kontrusi utama dalam pemrograman yang berorientasi pada objek. Sistem yang terbentuk dengan metode pengembangan berorientasi object, mewujudkan sebuah sistem terdiri dari banyak object yang salin berkaitan. Desain berorientasi objek adalah sebuah teknik yang memfokuskan desain pada object dan class berdasarkan pada skenario dunia nyata. Hal ini menegaskan keadaan (state), behaviour dan interaksi dari object. Selain itu juga menyediakan manfaat akan kebebasan pengembangan, meningkatkan kualitas, mempermudah pemeliharaan, mempertinggi kemampuan dalam modifikasi dan meningkatkan penggunaan kembali software.

Setelah menyelesaikan bab ini diharapkan :

Mahasiswa mampu menjelaskan konsep pemrograman modular Mahasiswa mampu menjelaskan konsep kelas dan objek. Mahasiswa mampu menjelaskan komponen dalam kelas.

Mahasiswa mampu merancang dan membuat method dalam kelas java. method dalam kelas java. method

Kebanyakan program yang telah dibuat ternyata tersusun dengan kurang baik, sehingga melakukan perubahan pada program-program tersebut merupakan pekerjaan yang sulit dan menghabiskan waktu. Kadangkala, program-program tersebut perlu ditulis ulang secara keseluruhan. Dalam OOP (Object Oriented Programming), dikenal metode untuk "memecah" kode program yang panjang menjadi modul-modul yang saling terkait antara yang satu dengan yang lain method. Setiap kali diperlukan, program utama dapat "memanggil" masing-masing modul kecil tersebut untuk mengerjakan perintah/perhitungan tertentu. Setelah pekerjaan/perhitungan di dalam modul tersebut selesai dilakukan, kontrol program dialihkan ke instruksi berikutnya di dalam program utama. Dalam bahasa pemrograman, modul-modul tersebut juga disebut sebagai subrutin, subprogram, prosedur, atau fungsi.

Dalam konsep pemrograman berorientasi objek, kita harus memahami kontrusi utama dalam pemrograman yang berorientasi pada objek. Sistem yang terbentuk dengan metode pengembangan


(23)

1.2 Tujuan

Tujuan pembelajaran pada modul ini adalah :

 Mahasiswa mampu menjelaskan tentang konsep pemrograman modular.

 Mahasiswa mampu mengenal konsep pemrograman berbasis objek.

 Mahasiswa mampu menjelaskan kelas beserta komponennya (atribut dan method).

1.3 Definisi

Pemrograman modular

Proses "memecah" kode program yang panjang menjadi modul-modul yang saling terkait antara yang satu dengan yang lain. Setiap kali diperlukan, program utama dapat "memanggil" masing-masing modul kecil tersebut untuk mengerjakan perintah/perhitungan tertentu.

Desain Berorientasi Object

Desain berorientasi objek adalah sebuah teknik yang memfokuskan desain pada object dan class berdasarkan pada skenario dunia nyata. Hal ini menegaskan keadaan (state), behaviour dan interaksi dari object. Selain itu juga menyediakan manfaat akan kebebasan pengembangan, meningkatkan kualitas, mempermudah pemeliharaan, mempertinggi kemampuan dalam modifikasi dan meningkatkan penggunaan kembali software.

Class

Class mengizinkan Anda dalam mendeklarasikan tipe data baru. Ia dijalankan sebagai blueprint, dimana model dari object yang Anda buat berdasarkan pada tipe data baru ini.

Object

Sebuah object adalah sebuah entiti yang memiliki keadaan, behaviour dan identitas yang yang tugasnya dirumuskan dalam suatu lingkup masalah dengan baik. Inilah instance sebenarnya dari sebuah class. Ini juga dikenal sebagai instance. Instance dibuat sewaktu Anda meng-instantiate class menggunakan kata kunci new. Dalam sistem registrasi siswa, contoh dari sebuah object yaitu entiti Student.

Attribute

Atribut menunjuk pada elemen data dari sebuah object. Atribut menyimpan informasi tentang object. Dikenal juga sebagai member data, variabel instance, properti atau sebuah field data. Kembali lagi ke contoh sistem registrasi siswa, atribut dari sebuah siswa adalah nomor siswa.

Lingkup atribut/identifier

Lingkup identifier meliputi bagian-bagian program dimana sebuah identifier masih bisa diakses. Lingkup identifier meliputi Local Identifier dan Global Identifier

Method

Sebuah method menjelaskan behaviour dari sebuah object. Method juga dikenal sebagai fungsi atau prosedur. Sebagai contoh, method yang mungkin tersedia untuk entiti siswa adalah method register. Rekursif

Method yang memanggil dirinya sendiri.

Definisi

Pemrograman modular

Proses "memecah" kode program yang panjang menjadi modul-modul yang saling terkait antara yang satu dengan yang lain. Setiap kali diperlukan, program utama dapat "memanggil" masing-masing modul kecil tersebut untuk mengerjakan perintah/perhitungan tertentu.

Desain Berorientasi Object

Desain berorientasi objek adalah sebuah teknik yang memfokuskan desain pada berdasarkan pada skenario dunia nyata. Hal ini menegaskan keadaan (state), behaviour

. Selain itu juga menyediakan manfaat akan kebebasan pengembangan, meningkatkan kualitas, mempermudah pemeliharaan, mempertinggi kemampuan dalam modifikasi dan meningkatkan penggunaan kembali .

Class mengizinkan Anda dalam mendeklarasikan tipe data baru. Ia dijalankan sebagai dimana model dari yang Anda buat berdasarkan pada tipe data baru ini. yang Anda buat berdasarkan pada tipe data baru ini.

adalah sebuah entiti yang memiliki keadaan, behaviour dan identitas yang yang tugasnya dirumuskan dalam suatu lingkup masalah dengan baik. Inilah instance

. Ini juga dikenal sebagai instance. Instance dibuat sewaktu Anda meng-menggunakan kata kunci new. Dalam sistem registrasi siswa, contoh dari sebuah

Atribut menunjuk pada elemen data dari sebuah object. Atribut menyimpan informasi tentang . Dikenal juga sebagai member data, variabel instance, properti atau sebuah

lagi ke contoh sistem registrasi siswa, atribut dari sebuah siswa adalah nomor siswa. Lingkup atribut/identifier


(24)

2 Pemrograman Modular

2.1 Konsep modular

Kebanyakan program yang telah dibuat ternyata tersusun dengan kurang baik, sehingga melakukan perubahan pada program-program tersebut merupakan pekerjaan yang sulit dan menghabiskan waktu. Kadangkala, program-program tersebut perlu ditulis ulang secara keseluruhan. Dalam OOP (Object Oriented Programming), dikenal metode untuk "memecah" kode program yang panjang menjadi modul-modul yang saling terkait antara yang satu dengan yang lain. Setiap kali diperlukan, program utama dapat "memanggil" masing-masing modul kecil tersebut untuk mengerjakan perintah/perhitungan tertentu. Setelah pekerjaan/perhitungan di dalam modul tersebut selesai dilakukan, kontrol program dialihkan ke instruksi berikutnya di dalam program utama. Dalam bahasa pemrograman, modul-modul tersebut juga disebut sebagai subrutin, subprogram, prosedur, atau fungsi.

Dalam bahasa Java sebuah method atau function adalah sekumpulan pernyataan yang dieksekusi saat dipanggil dari sebuah lokasi dalam program. Dengan fungsi kita dapat menstruktur sebuah program secara modular sesuai dengan konsep pemrograman terstruktur. Keutamaan penggunaan method antara lain:

1. Rancangan Top - down dengan teknik Sub goal, program besar dapat dibagi menjadi modul-modul yang lebih kecil.

2. Dapat dikerjakan oleh lebih dari satu orang dengan koordinasi yang relatif mudah.

3. Mencari kesalahan relatif lebih mudah karena alur logika lebih jelas, dan kesalahan dapat dilokalisir dalam satu modul.

4. Modifikasi dapat dilakukan, tanpa menggangu program secara keseluruhan. 5. Mempermudah dokumentasi.

Contoh pembagian program menjadi beberapa subprogram.

Gambar 8 Sistem modular dengan menggunakan fungsi Sifat-sifat modul yang baik adalah :

Fan-In yang tinggi, yaitu makin sering suatu modul dipanggil oleh pengguna, makin tinggi nilai fan-in.

Object Oriented Programming), dikenal metode untuk "memecah" kode program yang panjang modul yang saling terkait antara yang satu dengan yang lain. Setiap kali diperlukan, am utama dapat "memanggil" masing masing modul kecil tersebut untuk mengerjakan perintah/perhitungan tertentu. Setelah pekerjaan/perhitungan di dalam modul tersebut selesai dilakukan, kontrol program dialihkan ke instruksi berikutnya di dalam program utama

pemrograman, modul modul tersebut juga disebut sebagai subrutin, subprogram, prosedur, atau Java method adalah sekumpulan pernyataan yang dieksekusi saat dipanggil dari sebuah lokasi dalam program. Dengan fungsi kita dapat menstruktur sebuah program secara modular sesuai dengan konsep pemrograman terstruktur. Keutamaan penggunaan

antara lain:

Rancangan Top - down dengan teknik Sub goal, program besar dapat dibagi menjadi modul-modul yang lebih kecil.

Dapat dikerjakan oleh lebih dari satu orang dengan koordinasi yang relatif mudah.

Mencari kesalahan relatif lebih mudah karena alur logika lebih jelas, dan kesalahan dapat dilokalisir dalam satu modul.

Modifikasi dapat dilakukan, tanpa menggangu program secara keseluruhan. Mempermudah dokumentasi.


(25)

Fan-Out yang rendah, makin sedikit tugas yang dilakukan oleh suatu modul makin rendah nilai fan-out. Dengan demikian, makin spesifik tugas yang dikerjakan oleh modul tersebut.  Self-Contained, atau memenuhi kebutu-hannya sendiri.

2.2 Lingkup Indetifier

Kebanyakan program Lingkup identifier meliputi bagian-bagian program dimana sebuah identifier masih bisa diakses. Lingkup identifier meliputi :

 Local : identifier yang di deklarasikan dalam method tertentu, sehingga identifier ini hanya bisa dikenali dalam method tersebut dengan kata ruang lingkup untuk identifier ini terbatas pada method dimana indentifier ini berada.

 Global : identifier yang di deklarasikan dalam kelas secara global, maka identifier ini bisa dikenali dalam setiap method yang ada dalam kelas dengan kata ruang lingkup untuk identifier ini tidak terbatas pada method tertentu.

Untuk lebih memudahkan memahami ruang lingkup identifier, perhatikan tabel berikut:

Gambar 9 Lingkup Identifier A. Local identifier

Identifier yang dideklarasikan di dalam fungsi, termasuk daftar parameter.  Lingkupnya terbatas pada fungsi tempat dideklarasikan.

 Manakah yang termasuk local identifier pada contoh diatas?

x

y1

y

x

b

y

f1

public static int x;

public static void main(String[] args) { int y1;

... }

public static int y; void func1(){

int x; ... }

void func2(){ int b; ... }

void func3(int f1){ int y;

... }

Program

Lingkup

identifiermeliputi :

identifier yang di deklarasikan dalam method tertentu, sehingga identifier yang di deklarasikan dalam method tertentu, sehingga

identifier identifier

bisa dikenali dalam method tersebut dengan kata ruang lingkup untuk method tersebut dengan kata ruang lingkup untuk method identifier method dimana

method dimana

method indentifier ini berada.

: identifier yang di deklarasikan dalam kelas secara global, maka identifier yang di deklarasikan dalam kelas secara global, maka identifier

dikenali dalam setiap method yang ada dalam kelas dengan kata ruang lingkup untuk method yang ada dalam kelas dengan kata ruang lingkup untuk method identifier ini tidak terbatas pada

identifier ini tidak terbatas pada

identifier method tertentu. method tertentu. method

Untuk lebih memudahkan memahami ruang lingkup identifier, perhatikan tabel berikut:

y1

f1

public static int

public static void main(String[] args) { int y1;

public static int void func1(){

void func2(){ int b;

void func3(int f1){

Program


(1)

 Baris ke 6 sampai baris 17 adalah perulangan dengan menggunakan do –while.  Baris ke 7 sampai baris 12 adalah proses output dan proses input.

 Baris ke 12 adalah proses input untuk menentukan pilihan.  Baris ke 13 sampai baris 16 adalah switch case.

 Baris ke 14 dan baris ke 15 adalah case dimana masing-masing case memanggil method luasPersegiPanjang() untuk case 1 dan memanggil method luasLingkaran() untuk case 2.  Baris ke 20 sampai baris ke 29 adalah method untuk menghitung luas persegi panjang.  Baris ke 31 sampai baris ke 38 adalah method untuk menghitung luas lingkaran.

 Masing – masing method berisi proses output dan input user, proses perhitungan dan proses penampilan output hasil perhitungan.

4.2 Membuat method sebagai fungsi yang mengembalikan suatu

nilai

Method yang mengembalikan suatu nilai adalah fungsi yang ketika kembali ke program utamanya disertai dengan membawa suatu nilai. Berikut adalah program untuk menjumlahkan 2 buah bilangan yang di dalamnya menggunakan method.

01 import java.util.Scanner; 02 public class Prak_402 {

03 public static void main (String[] args) { 04 Scanner masukan = new Scanner(System.in); 05 int bil1, bil2, bil3;

06 System.out.println(“Program Menjumlahkan 2 bilangan“); 07 System.out.print(“Masukkan bilangan 1 : ”);

08 bil1 = masukan.nextInt();

09 System.out.print(“Masukkan bilangan 2 : ”); 10 bil2 = masukan.nextInt();

11 System.out.print(“Masukkan bilangan 3 : ”); 12 bil3 = masukan.nextInt();

13 System.out.println();

14 System.out.println(“Jumlah bil1 + bil2 : ”+(jumlah(bil1,bil2))); 15 System.out.println(“Jumlah bil2 + bil3 : ”+(jumlah(bil2,bil3))); 16 System.out.println(“Jumlah bil1 + bil3 : ”+(jumlah(bil1,bil3))); 17 }

18

19 private static int jumlah(int a, int b){ 20 int hasil = a + b;

21 return hasil; 22 }

23 }

ke 31 sampai baris ke 38 adalah method untuk menghitung luas lingkaran. method untuk menghitung luas lingkaran. method masing

masing method berisi proses method berisi proses method output dan output dan output input user, proses perhitungan dan proses ut user, proses perhitungan dan proses ut output hasil perhitungan.

output hasil perhitungan. output

Membuat method sebagai fungsi yang mengembalikan suatu

yang mengembalikan suatu nilai adalah fungsi yang ketika kembali ke program utamanya disertai dengan membawa suatu nilai. Berikut adalah program untuk menjumlahkan 2 buah bilangan yang di dalamnya menggunakan method.

import java.util.Scanner; public class Prak_402 {

public static void main (String[] args) { Scanner masukan = new Scanner(System.in); int bil1, bil2, bil3;

System.out.println(“Program Menjumlahkan 2 bilangan“); System.out.print(“Masukkan bilangan 1 : ”);

bil1 = masukan.nextInt();

System.out.print(“Masukkan bilangan 2 : ”); bil2 = masukan.nextInt();

System.out.print(“Masukkan bilangan 3 : ”); bil3 = masukan.nextInt();

System.out.println();

System.out.println(“Jumlah bil1 + bil2 : ”+(jumlah(bil1,bil2))); System.out.println(“Jumlah bil2 + bil3 : ”+(jumlah(bil2,bil3))); System.out.println(“Jumlah bil1 + bil3 : ”+(jumlah(bil1,bil3)));


(2)

38  Baris ke 4 dan ke 5 adalah deklarasi varibel yang dibutuhkan.

 Baris ke 6 sampai dengan baris ke 12 adalah proses output dan proses input data dari user.  Baris ke 14 sampai dengan baris ke 16 adalah proses untuk menampilkan hasil penjumlahan

dari pemanggilan fungsi jumlah dengan parameter input yang berbeda-beda.

 Baris ke 19 sampai baris ke 22 adalah method untuk menghitung penjumlahan dari data parameter input fungsi.

 Baris ke 20 adalah proses penjumlahan dari varibel a dan variabel b.

 Baris ke 21 adalah nilai pengembalian (return value) yang dilempar hasilnya ke pemanggilan.

4.3 Membuat program dengan method rekursif

Suatu fungsi rekursif adalah suatu fungsi yang memanggil dirinya sendiri. Berikut ini adalah contoh program rekursif untuk menghitung nilai faktorial suatu bilangan.

01 import java.util.Scanner; 02 public class Prak_404 {

03 public static void main (String[] args) { 04 Scanner masukan = new Scanner(System.in); 05 int bil, hasil;

06 System.out.print(“Masukkan suatu bilangan : ”); 07 bil = masukan.nextInt();

08 hasil = faktorial(bil);

09 System.out.println(“Nilai faktorial ”+ bil +” adalah “+ hasil); 10 }

11

12 private static int faktorial(int a){ 13 if (a==1)

14 return 1; 15 Else

16 return (a * faktorial(a-1)); 17 }

18 }

Keterangan program diatas:

 Baris ke 4 dan ke 5 adalah deklarasi varibel yang dibutuhkan.  Baris ke 6 dan ke 7 adalah proses output dan input data dari user.

 Baris ke 8 adalah pernyataan yang memanggil fungsi faktorial yang hasilnya disimpan dalam variabel hasil.

 Baris ke 9 adalah untuk menampilkan hasil variabel hasil.

 Baris 12 sampai baris 17 adalah fungsi faktorial yang mengembalikan nilai hasil dari rekursif.  Baris 16 adalah pernyataan memanggil fungsi rekursif.

ke 21 adalah nilai pengembalian (return value) yang dilempar hasilnya ke pemanggilan.

Suatu fungsi rekursif adalah suatu fungsi yang memanggil dirinya sendiri. Berikut ini adalah contoh program rekursif untuk menghitung nilai faktorial suatu bilangan.

import java.util.Scanner; public class Prak_404 {

public static void main (String[] args) { Scanner masukan = new Scanner(System.in); int bil, hasil;

System.out.print(“Masukkan suatu bilangan : ”); bil = masukan.nextInt();

hasil = faktorial(bil);

System.out.println(“Nilai faktorial ”+ bil +” adalah “+ hasil); private static int faktorial(int a){

if (a==1) return 1; Else

return (a * faktorial(a 1));


(3)

CONTOH SOAL

1. Jelaskan yang dimaksud dengan pemrograman modular! Jawab:

Proses "memecah" kode program yang panjang menjadi modul-modul yang saling terkait antara yang satu dengan yang lain. Setiap kali diperlukan, program utama dapat "memanggil" masing-masing modul kecil tersebut untuk mengerjakan perintah/perhitungan tertentu.

2. Jelaskan apa yang dimaksud dengan desain berorientasi objek! Jawab:

IDE

Desain berorientasi objek adalah sebuah teknik yang memfokuskan desain pada object dan class berdasarkan pada skenario dunia nyata. Hal ini menegaskan keadaan (state), behaviour dan interaksi dari object. Selain itu juga menyediakan manfaat akan kebebasan pengembangan, meningkatkan kualitas, mempermudah pemeliharaan, mempertinggi kemampuan dalam modifikasi dan meningkatkan penggunaan kembali software.

LATIHAN SOAL

1. Apa yang dimaksud dengan kelas dan objek, serta jelaskan keterkaitan antara kelas dan objek!

2. Sebutkan komponen yang membentuk sebuah kelas!

3. Sebutkan dan jelaskan ruang lingkup identifier dalam sebuah kelas! 4. Jelaskan pengertian library dan user-defined method!

5. Apakah yang dimaksud dengan rekursif? Berikan contoh. Jelaskan apa yang dimaksud dengan desain berorientasi objek!

Desain berorientasi objek adalah sebuah teknik yang memfokuskan desain pada berdasarkan pada skenario dunia nyata. Hal ini menegaskan keadaan (

dan interaksi dari . Selain itu juga menyediakan manfaat akan kebebasan pengembangan, meningkatkan kualitas, mempermudah pemeliharaan, mempertinggi kemampuan dalam modifikasi dan meningkatkan penggunaan kembali

Apa yang dimaksud dengan kelas dan objek, serta jelaskan keterkaitan antara kelas dan Sebutkan komponen yang membentuk sebuah kelas!

Sebutkan dan jelaskan ruang lingkup identifier dalam sebuah kelas! Jelaskan pengertian library dan user-defined method!


(4)

40

RANGKUMAN

Konsep pemrograman modular muncul karena kebanyakan program yang telah dibuat ternyata tersusun dengan kurang baik, sehingga melakukan perubahan pada program-program tersebut merupakan pekerjaan yang sulit dan menghabiskan waktu. Kadangkala, program-program tersebut perlu ditulis ulang secara keseluruhan. Dalam OOP (Object Oriented Programming), dikenal metode untuk "memecah" kode program yang panjang menjadi modul-modul yang saling terkait antara yang satu dengan yang lain. Setiap kali diperlukan, program utama dapat "memanggil" masing-masing modul kecil tersebut untuk mengerjakan perintah/perhitungan tertentu. Dalam bahasa Java sebuah method atau function adalah sekumpulan pernyataan yang dieksekusi saat dipanggil dari sebuah lokasi dalam program.

OOP (Object Oriented Programming) memandang semua aspek sebagai suatu obyek. OOP berputar pada konsep dari object sebagai dasar element dari program. Class adalah struktur dasar dari OOP. Terdiri dari dua tipe dari anggota yang disebut dengan field (attribut/properti) dan method. Field menspesifikasi tipe data yang didefinisikan oleh class. Method spesifikasi dari operasi. Method yang dirancang dalam kelas akan memperhatikan konsep modular, sehingga beberapa keunggulan konsep modular akan membantu membentuk kelas lebih baik dan lebih efisien.

TES FORMATIF

1. Jelaskan keutamaan pemrograman modular.

2. Berikan rancangan contoh kelas dan objek yang terbentuk dari kelas yang dirancang. 3. Perbaiki program berikut sehingga bisa digunakan untuk menukar 2 buah karakter

4. Perhatikan kode dibawah

satu dengan yang lain. Setiap kali diperlukan, program utama dapat "memanggil" masing modul kecil tersebut untuk mengerjakan perintah/perhitungan tertentu. Dalam bahasa

function adalah sekumpulan pernyataan yang dieksekusi saat dipanggil dari sebuah lokasi dalam program

Object Oriented Programming)memandang semua aspek sebagai suatu obyek

pada konsep dari sebagai dasar element dari program Classadalah struktur dasar dari OOP. Terdiri dari dua tipe dari anggota yang disebut dengan field attribut/properti

menspesifikasi tipe data yang didefinisikan oleh class Methodspesifikasi dari operasi.

dirancang dalam kelas akan memperhatikan konsep modular, sehingga beberapa keunggulan konsep modular akan membantu membentuk kelas lebih baik dan lebih efisien.

Jelaskan keutamaan pemrograman modular.

Berikan rancangan contoh kelas dan objek yang terbentuk dari kelas yang dirancang.


(5)

5. Buat program dengan mendefinisikan fungsi untuk menghitung luas lingkaran dan keliling lingkaran.

DAFTAR PUSTAKA

[1] P.J. Deitel, H.M. Deitel , Ja a : ho to progra th Pre ti e Hall,I“BN -0-13-257566-9,2012. [2] Mary Campione, Kathy Walrath, Alison Huml. Ja a™ Tutorial, Third Editio : A “hort Course o

the Basics . Addison Wesley. 2000.

[3] Arnold, K., Gosling, J., and Holmes, J. The Ja a™ Progra i g La guage, 4th Editio . Addison Wesley Professional. 2005.

[4] Java tutorial: http://download.oracle.com/javase/tutorial/

Buat program dengan mendefinisikan fungsi untuk menghitung luas lingkaran dan

[1] P.J. Deitel, H.M.

-0-Mary Campione, Kathy Walrath, Alison Huml. Ja a™ Tutorial, Third Editio : A “hort Course o . Addison Wesley. 2000

[3] Arnold, K., Gosling, J., and Holmes, J. Wesley Professional 2005


(6)

42

KUNCI JAWABAN LATIHAN SOAL

1. Class

Class mengizinkan Anda dalam mendeklarasikan tipe data baru. Ia dijalankan sebagai blueprint, dimana model dari object yang Anda buat berdasarkan pada tipe data baru ini. Object

Sebuah object adalah sebuah entiti yang memiliki keadaan, behaviour dan identitas yang yang tugasnya dirumuskan dalam suatu lingkup masalah dengan baik. Inilah instance sebenarnya dari sebuah class. Ini juga dikenal sebagai instance. Instance dibuat sewaktu Anda meng-instantiate class menggunakan kata kunci new.

2. Komponen utama pembentuk kelas: Attribute

Atribut menunjuk pada elemen data dari sebuah object. Atribut menyimpan informasi tentang object. Dikenal juga sebagai member data, variabel instance, properti atau sebuah field data.

Method

Sebuah method menjelaskan behaviour dari sebuah object. Method juga dikenal sebagai fungsi atau prosedur.

3. Kebanyakan program Lingkup identifier meliputi bagian-bagian program dimana sebuah identifier masih bisa diakses. Lingkup identifier meliputi :

 Local : identifier yang di deklarasikan dalam method tertentu, sehingga identifier ini hanya bisa dikenali dalam method tersebut dengan kata ruang lingkup untuk identifier ini terbatas pada method dimana indentifier ini berada.

 Global : identifier yang di deklarasikan dalam kelas secara global, maka identifier ini bisa dikenali dalam setiap method yang ada dalam kelas dengan kata ruang lingkup untuk identifier ini tidak terbatas pada method tertentu.

4. Library method, adalah method - method standar yang sudah disediakan oleh bahasa Java. Contohnya sqrt() ada di file Math.java. User-define method, adalah method yang didefinisikan sendiri oleh pemrogram.

5. Rekursif adalah method yang memanggil method ini sendiri. Contoh problem menghitung factorial. Dibawah ini merupakan listing program yang sama tetapi menggunakan rekursif.

adalah sebuah entiti yang memiliki keadaan,

adalah sebuah entiti yang memiliki keadaan, behaviour

yang tugasnya dirumuskan dalam suatu lingkup masalah dengan baik. Inilah sebenarnya dari sebuah . Ini juga dikenal sebagai .

Anda meng-instantiate class menggunakan kata kunci new. Komponen utama pembentuk kelas:

Atribut menunjuk pada elemen data dari sebuah object. Atribut menyimpan informasi . Dikenal juga sebagai member data, variabel instance, properti atau sebuah data.

Method

method menjelaskan method menjelaskan

method behaviour dari sebuah behaviour dari sebuah behaviour . Method juga dikenal sebagai Method juga dikenal sebagai Method fungsi atau prosedur.

Kebanyakan program identifier meliputi bagian bagian program dimana sebuah identifiermasih bisa diakses. Lingkup identifiermeliputi :

Local : identifier yang di deklarasikan dalam method tertentu, sehingga identifier yang di deklarasikan dalam method tertentu, sehingga identifier hanya bisa dikenali dalam method tersebut dengan kata ruang lingkup untuk method tersebut dengan kata ruang lingkup untuk method identifier ini terbatas pada

identifier ini terbatas pada

identifier method dimana method dimana method indentifier ini berada.

: identifier yang di deklarasikan dalam kelas secara global, maka identifier yang di deklarasikan dalam kelas secara global, maka identifier

bisa dikenali dalam setiap method yang ada dalam kelas dengan kata ruang lingkup method yang ada dalam kelas dengan kata ruang lingkup method untuk identifier ini tidak terbatas pada identifier ini tidak terbatas pada identifier method tertentu. method tertentu. method

method, adalah method -method -method method standar yang sudah disediakan oleh bahasa Java. method standar yang sudah disediakan oleh bahasa Java. method Contohnya sqrt() ada di file Math.java. User-define method, adalah

didefinisikan sendiri oleh pemrogram.

Rekursif adalah method yang memanggil method ini sendiri. Contoh problem menghitung factorial. Dibawah ini merupakan listing program yang sama tetapi menggunakan rekursif.