TUJUAN INSTRUKSIONAL UMUM · PDF filedi awal untuk menambah kemampuan dalam menciptakan pemrograman modular. Larik (array) ... Memahami String dan karakter dalam Bahasa Java. Pendahuluan
Post on 06-Feb-2018
218 Views
Preview:
Transcript
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 Terstruktur merupakan suatu tindakan untuk membuat program yang berisi instruksi-
instruksi dalam bahasa komputer dimana 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.
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
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 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 “else” (jika ada).
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 java.
Pendahuluan
Pengantar
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. Bahasa Java tidak membatasi jumlah dimensi
yang bisa digunakan. Hal ini semata-mata dibatasi jumlah memori komputer yang tersedia.
Tujuan
Tujuan pembelajaran pada modul ini adalah :
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 yang diakhiri dengan null character ( ‘\0’ atau ASCII nya = 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 character yang diakhiri dengan null character ( ‘\0’ atau ASCII nya = 0).
string literal adalah beberapa character yang diapit oleh tanda petik dua. character yang diapit oleh tanda petik dua. character
Array
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
Data disimpan dalam suatu struktur, sedemikian rupa sehingga elemen
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
Misal kita ibaratkan bahwa bisa kita gambarkan sebagai sebuah almari yang didalamnya ada
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 defaultdefaultde terisi dengan nilai fault terisi dengan nilai fault 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 object, maka harus dideklarasikan menggunakan kata kunci object, maka harus dideklarasikan menggunakan kata kunci object
dimulai dari 0 sampai jumlah element – 1. Sintaks deklarasi array dimensi 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 (subscript
dan indek terakhir adalah 9.
Gambar 3 Contoh visualisasi Array
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 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]);
Mengisi Data Array
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;
Inisialisasi 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 Array dengan tanpa nilai dimensi Array
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 n
Array Dimensi Dua
Sintaks deklarasi array dimensi dua:
nama_arrray[][] = new type[baris][kolom]; [baris][kolom]; [baris][kolom]
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 x berdimensi 3 bertipe integer.
Untuk menampilkan seluruh isi dari array berdimensi 3 digunakan perulangan dalam
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 ASCII nya = 0). String
constant atau string literal adalah beberapa character yang diapit oleh tanda petik dua.
Contoh: ”Selamat datang”
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,” ” world” Sama artinya :”Hello, world”
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:
String 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’ dan 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 ( ‘\0’ atau ASCII nya = 0).
string literal adalah beberapa character yang diapit oleh tanda petik dua.
Contoh: ”Selamat datang”
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,” ” world” 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 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 method yang sangat berguna method
dalam memanipulasi String. Beberapa method yang sering digunakan adalah: thod yang sering digunakan adalah: thod
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
UpperCase()
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
owerCase()
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
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 hitung secara manual seharusya kata “Java” berada pada posisi ke 9. Kenapa
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
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 hitung secara manual seharusya kata “Java” berada pada posisi ke 9. Kenapa
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] + “ + ”);
System.out.print(data[jumbil 1] + “ adalah ”);
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();
}
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 i dan i dan i For kedua (baris 25) mewakili kolom ke For kedua (baris 25) mewakili kolom ke For j.
Baris ke 32 sampai baris ke 36 adalah proses perulangan dalam perulangan (
untuk menampilkan data Matrik ke 1 dalam array baris ke i kolom ke i kolom ke i
(baris ke 32) mewakili baris ke i dan i dan i For kedua (baris 33) mewakili kolom ke For kedua (baris 33) mewakili kolom ke For
Baris ke 39 sampai baris ke 43 adalah proses perulangan dalam perulangan (
untuk menampilkan data Matrik ke 2 dalam array baris ke i kolom ke i kolom ke i
(baris ke 39) mewakili baris ke i dan i dan i For kedua (baris 43) mewakili kolom ke For kedua (baris 43) mewakili kolom ke For
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 i kolom ke i kolom ke i j.
46) mewakili baris ke i dan i dan i For kedua (baris 47) mewakili kolom ke For kedua (baris 47) mewakili kolom ke For 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 (
untuk menampilkan data Matrik hasil dalam array baris ke i kolom ke i kolom ke i
(baris ke 51) mewakili baris ke i dan i dan i For kedua (baris 52) mewakili kolom ke For kedua (baris 52) mewakili kolom ke For
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.
LATIHAN SOAL 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!
Berikan contoh inisialisasi array yang diisi datanya saat pendeklarasian 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 , “Java : how to program 9th” Prentice Hall,ISBN 978-0-13-257566-9,2012. [2] Mary Campione, Kathy Walrath, Alison Huml. “Java™ Tutorial, Third Edition: A Short Course on
the Basics”. Addison Wesley. 2000. [3] Arnold, K., Gosling, J., and Holmes, J. “The Java™ Programming Language, 4th Edition”. 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.
TES FORMATIF 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.
Jelaskan 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!
DAFTAR PUSTAKA [1] P.J. Deitel, H.M. Deitel , “Java : how to program 9th” Prentice Hall,ISBN 978-0-
Mary Campione, Kathy Walrath, Alison Huml. “Java™ 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.
Deklarasi array berdimensi satu:
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.
Contoh: int B[ ]={1, 2, -4, 8};
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.
TUJUAN INSTRUKSIONAL KHUSUS 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
Pendahuluan
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
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 software.
Class mengizinkan Anda dalam mendeklarasikan tipe data baru. Ia dijalankan sebagai
dimana model dari object yang Anda buat berdasarkan pada tipe data baru ini. object yang Anda buat berdasarkan pada tipe data baru ini. object
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 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
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.
Contoh pembagian program menjadi beberapa subprogram.
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;
...
}
ProgramLingkup
Lingkup identifier meliputi :
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:
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(){
x;
void func2(){
int b;
void func3(int f1){
y;
ProgramProgramLingkup
26
B. Global identifier
Identifier yang dideklarasikan di luar fungsi.
Ruang lingkupnya meliputi seluruh program.
Identifier global, dapat digunakan untuk identifier lokal.
Disarankan tidak banyak menggunakan identifier global karena:
Jika program semakin besar, kecenderungan error semakin besar .
Sulit melacak bila terjadi kesalahan.
Data tidak terjaga dengan baik, setiap fungsi dapat mengubah nilai variabel tanpa
sepengetahuan fungsi lainnya.
Manakah yang termasuk global identifier pada contoh diatas?
3 Pengenalan Objek
3.1 Object
OOP (Object Oriented Programming) memandang semua aspek sebagai suatu obyek. OOP berputar
pada konsep dari object sebagai dasar element dari program. Beberapa contoh objek ada disekitar
kita, seperti mobil, singa, manusia dan seterusnya. Object ini dikarakterisasi oleh sifat / attributnya
dan tingkah laku. Kita ambil sebagai contoh adalah mobil dan singa. Objek mobil mempunyai sifat
tipe transmisi, warna dan manufaktur. Mempunyai kelakuan berbelok, mengerem dan berakselerasi.
Dengan cara yang sama pula kita dapat mendefinisikan perbedaan sifat dan tingkah laku dari singa.
Objek pada dunia nyata dapat secara mudah dimodelisasi sebagai objek software menggunakan sifat
sebagai data dan tingkah laku sebagai method. Misalkan software yang dibuat adalah software ob-
jek mobil dalam permainan balap mobil atau software pendidikan interaktif pada kebun binatang un-
tuk anak anak. Sebuah objek adalah sebuah komponen software yang stukturnya mirip dengan objek
pada dunia nyata. Setiap objek dibuat dari satu set data (sifat) dimana variable menjabarkan esensial
karakter dari objek, dan juga terdiri dari satu set dari method (tingkah laku) yang menjabarkan ba-
gaimana tingkah laku dari objek. Jadi objek adalah sebuah berkas software dari variable dan
method yg berhubungan.
3.2 Class
Class adalah struktur dasar dari OOP. Terdiri dari dua tipe dari anggota yang disebut dengan field (at-
tribut/properti) dan method. Field menspesifikasi tipe data yang didefinisikan oleh class. Method
Sulit melacak bila terjadi kesalahan.
Data tidak terjaga dengan baik, setiap fungsi dapat mengubah nilai variabel tanpa
sepengetahuan fungsi lainnya.
Manakah yang termasuk global identifier pada contoh diatas? identifier pada contoh diatas? identifier
Pengenalan Objek
Object
Object Oriented Programming) memandang semua aspek sebagai suatu obyek
pada konsep dari object sebagai dasar element dari program. Beberapa contoh
kita, seperti mobil, singa, manusia dan seterusnya. Object ini dikarakterisasi oleh sifat / attributnya
dan tingkah laku. Kita ambil sebagai contoh adalah mobil dan singa. Objek mobil
tipe transmisi, warna dan manufaktur. Mempunyai kelakuan berbelok, mengerem dan bera
Dengan cara yang sama pula kita dapat mendefinisikan perbedaan sifat dan tingkah laku dari
Objek pada dunia nyata dapat secara mudah dimodelisasi sebagai objek software menggunakan
dan tingkah laku sebagai method. Misalkan software yang dibuat adalah
jek mobil dalam permainan balap mobil atau software pendidikan interaktif pada
27
spesifikasi dari operasi. Sebuah objek adalah sebuah instance pada class. Sebuah objek adalah se-
buah instance pada class. Variable dan methods dalam objek Java secara formal diketahui sebagai
instance variable dan instance methods untuk membedakannya dari variable class dan method class.
Perbedaan class dan object:
Sebuah class mobil dimana dapat digunakan untuk mendefinisikan beberapa object mobil. Mobil A
dan mobil B adalah objek dari kelas mobil.
Pada contoh kelas diatas, kelas circle merupakan sebuah template/blue print yang siap di inisialisasi
dalam sebuah objek. Dalam contoh diatas terbentuk 3 buah objek yang berbeda yaitu objek circle1,
circle2, dan circle3 dimana diciptakan berdasarkan kelas yang sama yaitu kelas circle. Ketika diini-
sialisasi, tiap objek mendapat satu set baru dari state variable of class. Implementasi dari method di-
bagi diantara objek pada kelas yang sama. Class menyediakan keuntungan berupa reusability. Untuk
lebih memudahkan memahami kelas dan objek perhatikan sekali lagi contoh berikut:
Di dalam java, sintak untuk mendeklarasikan sebuah kelas adalah:
Pencetak kukis sebagai kelas dapat digunakan berkali-
kali untuk mencetak kukis. Kukis adalah objek yang
terbentuk dari kelas kukis. Sebuah kelas dapat
menghasilkan banyak objek. Dari 1 cetakan dapat
dibuat banyak kukis dengan berbagai macam hiasan,
namun kukis-kukis tersebut tetap memiliki bentuk yang
sama.
mobil dimana dapat digunakan untuk mendefinisikan beberapa object
B adalah objek dari kelas mobil.
Pada contoh kelas diatas, kelas circle merupakan sebuah template/blue print yang siap di inisialisasi template/blue print yang siap di inisialisasi template/blue print
dalam sebuah objek. Dalam contoh diatas terbentuk 3 buah objek yang berbeda yaitu objek
circle3 dimana diciptakan berdasarkan kelas yang sama yaitu kelas
p objek mendapat satu set baru dari state variable of class. Implementasi dari
bagi diantara objek pada kelas yang sama. Class menyediakan keuntungan berupa
lebih memudahkan memahami kelas dan objek perhatikan sekali lagi contoh berikut:
Pencetak kukis sebagai kelas dapat digunakan berkali
kali untuk mencetak kukis. Kukis
terbentuk dari kelas kukis. Sebuah kelas dapat
menghasilkan banyak objek. Dari 1 cetakan dapat
28
Dimana <modifier> adalah sebuah access modifier, yang mana boleh dikombinasikan dengan
tipeyang laen dari modifier.
Contoh berikut ini mendeklarasikan blueprint SuperHero.
3.3 Variable dan method Class
Variabel class merupakan variabel milik dari seluruh class. Variabel ini memiliki nilai yang sama untuk
semua objek pada kelas yang sama. Variabel ini juga disebut static member variables. Variable
dideklarasikan dengan sintak sebagai berikut:
Contoh:
Sebuah method adalah bagian terpisah dari kode yang akan dipanggil oleh program utama dan be-
berapa method lainnya untuk menunjukkan beberapa fungsi spesifik. Mengapa kita butuh untuk
Contoh berikut ini mendeklarasikan blueprint SuperHero.
Variable dan method Class
merupakan variabel milik dari seluruh class. Variabel ini memiliki nilai yang sama untuk
semua objek pada kelas yang sama. Variabel ini juga disebut static member variables
larasikan dengan sintak sebagai berikut:
29
membuat method? Mengapa kita tidak meletakkan semua kode pada sebuah method yang sangat
besar?
Sintak mendeklarasikan method dalam kelas:
Contoh method:
Object memiliki identitas, state, dan tingkah laku yang unique. State : direpresentasikan oleh data
fields (properties / attributes) dengan nilai yang terkandung di dalamnya. Atribut/Identitas dispesifi-
kasikan oleh instance variables. Tingkah laku didefinisikan oleh sekumplan method. Memanggil me-
thod pada objek berarti bahwa Anda meminta objek untuk melakukan tugas. Melakukan tugas dalam
program membutuhkan method. Class menyediakan satu atau lebih method yang dirancang untuk
melakukan tugas-tugas class itu.
Sebelum dipanggil atau digunakan, sebuah method harus dideklarasikan dan didefinisikan terlebih dahulu. Pendefinisian method dapat dilakukan dengan sintaksis sebagai berikut:
modifier returnValueType methodName(list of parameters) {
// Method body;
}
Modifiers : sifatnya optional, memberitahukan compiler bagaimana cara memanggil
fungsi / method
returnValueType: tipe data yang dikembalikan oleh fungsi
Jika return-value-type diganti void maka fungsi tidak mengembalikan nilai
Contoh method:
memiliki identitas, state, dan tingkah laku yang unique. State : direpresentasikan oleh data
roperties / attributes) dengan nilai yang terkandung di dalamnya. Atribut/Identitas dispesif
instance variables. Tingkah laku didefinisikan oleh sekumplan method
pada objek berarti bahwa Anda meminta objek untuk melakukan tugas. Melakukan tugas dalam
program membutuhkan method. Class menyediakan satu atau lebih method yang dirancang untuk
melakukan tugas-tugas class itu.
Sebelum dipanggil atau digunakan, sebuah method harus dideklarasikan dan didefinisikan terlebih dahulu. Pendefinisian method dapat dilakukan dengan sintaksis sebagai berikut:
modifier returnValueType methodName(list of parameters) {
// Method body;
30
Parameter-list: berisi daftar nilai yang dikirimkan dari fungsi pemanggil
Method Body : medhot body berisi kumpulan statements yang mendefinisikan apa yang
dilakukan fungsi
Contoh :
3.4 Jenis Method
Method adalah kumpulan program yang mempunyai nama dimana ketika kita menginginkan
kumpulan program itu dijalankan tinggal dipanggil nama methodnya. Penulisan program dengan
menggunakan method akan lebih efisien, program menjadi lebih terstruktur, dan praktis. Ada dua
jenis method jika dilihat dari hasil yang diberikan dari method itu sendiri yaitu:
1. Method yang tidak mengembalikan data (diberi tipe void) tanpa parameter input dan dengan
parameter input.
2. Method yang mengembalikan nilai menggunakan statemen return. Statemen return
mengembalikan nilai yang tipenya harus sama dengan tipe methodnya.
Berikut contoh method yang tidak mengembalikan nilai.
01 import java.util.Scanner;
02 public class Prak_4001 {
03 static void Cetak(){
System.out.print("I LOVE ");
}
public static void main(String[] args) {
Cetak();
System.out.print("JAVA");
}
04 System.out.print("I LOVE ");
05 }
06 public static void main(String[] args) {
07 Cetak();
08 System.out.print("JAVA");
09 }
10 }
Keterangan:
Baris ke 3 sampai baris ke 5 adalah method bernama cetak untuk menampilkan pernyataan
“I LOVE”.
Baris ke 7 adalah pernyataan untuk memanggil method cetak.
Ketika di eksekusi program ini akan menampilkan tulisan “I LOVE JAVA”.
Berikut contoh method yang tidak mengembalikan nilai dengan parameter.
01 import java.util.Scanner;
Jenis Method
Method adalah kumpulan program yang mempunyai nama dimana ketika kita menginginkan
kumpulan program itu dijalankan tinggal dipanggil nama methodnya. Penulisan program dengan
menggunakan method akan lebih efisien, program menjadi lebih terstruktur, dan praktis. Ada dua
jenis method jika dilihat dari hasil yang diberikan dari method itu sendiri yaitu:
Method yang tidak mengembalikan data (diberi tipe void) tanpa parameter input dan dengan
parameter input.
Method yang mengembalikan nilai menggunakan statemen return. Statemen return
mengembalikan nilai yang tipenya harus sama dengan tipe methodnya.
Berikut contoh method yang tidak mengembalikan nilai.
import java.util.Scanner;
public class Prak_4001 {
static void Cetak(){
System.out.print("I LOVE ");
public static void main(String[] args) {
Cetak();
System.out.print("JAVA");
31
02 public class Prak_4002 {
03 static void Cetak(int a){
04 System.out.println("Nilai x: "+a);
05 }
06 public static void main(String[] args) {
07 int x;
08 for (x=0; x<3; x++){
09 Cetak(x);
10 }
11 System.out.println("Nilai x terakhir: "+x);
12 }
13 }
Keterangan:
Baris ke 3 sampai baris ke 5 adalah method bernama cetak dengan variabel a sebagai
parameter formal method yang menampilkan pernyataan “Nilai x:”.
Baris ke 8 sampai baris ke 10 adalah perulangan yang didalamnya ada pernyataan untuk
memanggil method cetak dengan x sebagai parameter aktual yang dikirimkan ke method.
Ketika di eksekusi program ini akan menampilkan :
Nilai x: 0
Nilai x: 1
Nilai x: 2
Nilai x terakhir: 3
Berikut contoh method yang mengembalikan nilai dengan parameter.
01 import java.util.Scanner;
02 public class Prak_4003 {
03 static int Kuadrat(int bil){
04 return bil*bil;
05 }
06 public static void main(String[] args){
07 int x=5;
08 System.out.println(x +" kuadrat adalah "+ Kuadrat(x));
09 }
13 }
Keterangan:
Baris ke 3 sampai baris ke 5 adalah method bernama Kuadrat dengan variabel bil sebagai
parameter formal method yang mengembalikan nilai bil*bil.
Baris ke 8 adalah pernyataan untuk memanggil method Kuadrat dengan variabel x sebagai
parameter formal.
Ketika di eksekusi program ini akan menampilkan : “5 kuadrat adalah 25”
Cetak(x);
}
System.out.println("Nilai x terakhir: "+x);
}
Baris ke 3 sampai baris ke 5 adalah method bernama cetak dengan variabel a sebagai
parameter formal method yang menampilkan pernyataan “Nilai x:”.
Baris ke 8 sampai baris ke 10 adalah perulangan yang didalamnya ada pernyataan untuk
memanggil method cetak dengan x sebagai parameter aktual yang dikirimkan ke metho
Ketika di eksekusi program ini akan menampilkan :
Nilai x: 0
Nilai x: 1
Nilai x: 2
Nilai x terakhir: 3
Berikut contoh method yang mengembalikan nilai dengan parameter.
import java.util.Scanner;
public class Prak_4003 {
static int Kuadrat(int bil){
return bil*bil;
}
public static void main(String[] args){
int x=5;
System.out.println(x +" kuadrat adalah "+ Kuadrat(x));
}
32
3.5 Pemberian Variabel dalam method
Dalam method ada dua tipe data variabel passing dalam method. Ada dua jenis pemberian variabel
dalam method adalah pass by value dan pass by reference.
Pass by Value
Dalam setiap method parameter formal yang didefinisikan adalah sebagai sebuah salinan
dari nilai variabel yang dikirimkan ke method sebagai parameter aktual. Yang dikirimkan oleh
oleh parameter aktual adalah nilainya saja, bukan variabelnya. Sehingga apabila terjadi
perubahan data dari variabel parameter formal pada method, tidak akan berpengaruh pada
nilai variabel parameter aktual.
Contoh:
01 import java.util.Scanner;
02 public class Prak_4004 {
03 public static void main(String[] args){
04 int i = 10;
05 //mencetak nilai i
06 System.out.println( i );
07 //memanggil method test
08 //passing i pada method test
09 test( i ); // i sebagai parameter formal
13 //Mencetak nilai i
14 System.out.println( i );
15 }
16 public static void test( int j ){ // j sebagai parameter aktual
17 //merubah nilai parameter j
18 j = 33;
19 }
20 }
Keterangan program:
o Baris ke 9 adalah pernyataan pemanggil method dengan variabel i sebagai parameter
formal. variabel I berisi nilai 10 selanjutnya nilai 10 tersebut dilempar ke parameter
aktual (variabel j ) method test.
o Baris ke 16 sampai baris ke 19 adalah method test dengan variabel j sebagai
parameter aktual yang nilainya sesuai dengan nilai parameter formal (i=10) yang
dilempar dari statemen yang memanggilnya di baris 9.
o Baris 14 adalah pernyataan untuk menampilkan nilai variabel i. Nilai yang
ditampilkan adalah 10 bukan 33 karena variabel j tidak berpengaruh langsung
kepada variabel i.
Pass by Reference
Dalam setiap method parameter formal yang didefinisikan adalah sebagai sebuah salinan
dari nilai variabel yang dikirimkan ke method sebagai parameter aktual. Ini dinamakan pass
oleh parameter aktual adalah nilainya saja, bukan variabelnya. Sehingga apabila terjadi
perubahan data dari variabel parameter formal pada method, tidak akan berpengaruh pada
nilai variabel parameter aktual.
Contoh:
import java.util.Scanner;
public class Prak_4004 {
public static void main(String[] args){
int i = 10;
//mencetak nilai i
System.out.println( i );
//memanggil method test
//passing i pada method test
test( i ); // i sebagai parameter formal
//Mencetak nilai i
System.out.println( i );
}
public static void test( int j ){ // j sebagai parameter aktual
//merubah nilai parameter j
j = 33;
}
Keterangan program:
Baris ke 9 adalah pernyataan pemanggil method dengan variabel
formal. variabel I berisi nilai 10 selanjutnya nilai 10 tersebut dilempar ke parameter
aktual (variabel j ) method test. j ) method test. j
33
by value seperti contoh diatas. Yang dikirimkan oleh oleh parameter aktual adalah nilainya
saja, bukan variabelnya. Sehingga apabila terjadi perubahan data dari variabel parameter
formal pada method, tidak akan berpengaruh pada nilai variabel parameter aktual.
Sebaliknya, yang pass by reference method parameter formal yang dikirimkan bukan nilainya
tetapi alamat memori dari variabel tersebut. Karena yang dilempar adalah alamat memori
dari variabel, maka jika terjadi perubahan data di variabel parameter aktual meskipun
namanya berbeda akan mengubah data di variabel parameter formal karena sebenarnya
kedua variabel ini mengakses lokasi memori yang sama.
Contoh:
01 import java.util.Scanner;
02 public class Prak_4004 {
03 public static void main(String[] args){
04 //membuat array integer
05 int []ages = {10, 11, 12};
06 //mencetak nilai array
07 for( int i=0; i<ages.length; i++ ){
08 System.out.println( ages[i] );
09 }
13 test( ages );
14 for( int i=0; i<ages.length; i++ ){
15 System.out.println( ages[i] );
16 }
17 }
18
19 public static void test( int[] arr ){
20 //merubah nilai array
21 for( int i=0; i<arr.length; i++ ){
22 arr[i] = i + 50;
23 }
24 }
25 }
Keterangan program:
o Baris ke 5 adalah deklarasi variabel array ages.
o Baris ke 7 sampai baris ke 9 adalah sebuah perulangan untuk menampilkan data
array.
o Baris ke 13 adalah statemen untuk memanggil method test dengan parameter aktual
ages dimana yang dilempar ke method adalah alamat memori dari variabel ages.
o Baris ke 19 sampai baris ke 24 adalah method test dengan varibel array arr sebagai
parameter formal yang menerima alamat memori dari parameter aktual ages yang
dilempar pada baris ke 13.
namanya berbeda akan mengubah data di variabel parameter formal karena sebenarnya
kedua variabel ini mengakses lokasi memori yang sama.
Contoh:
import java.util.Scanner;
public class Prak_4004 {
public static void main(String[] args){
//membuat array integer
int []ages = {10, 11, 12};
//mencetak nilai array
for( int i=0; i<ages.length; i++ ){
System.out.println( ages[i] );
}
test( ages );
for( int i=0; i<ages.length; i++ ){
System.out.println( ages[i] );
}
public static void test( int[] arr ){
//merubah nilai array
for( int i=0; i<arr.length; i++ ){
arr[i] = i + 50;
}
Keterangan program:
34
o Baris ke 21 sampai baris ke 23 adalah perulangan untuk mengisi nilai variabel array
arr, dimana perubahan nilai array pada variabel ini akan juga merubah nilai pada
variabel array ages.
o Baris ke 14 sampai baris ke 16 adalah perulangan untuk menampilkan nilai variabel
array ages yang sudah berubah.
3.6 Library vs User-Defined Method
Method dalama bahasa Java terbagi dalam dua jenis :
Library Method
User-defined Method
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.
Contoh Program yang menggunakan Standard Library Function (println dan sqrt) :
3.7 Rekursif
Rekursif adalah teknik pemecahan masalah yang powerful dan dapat digunakan ketika inti dari masalah terjadi berulang kali. Tentu saja, tipe dari masalah ini dapat dipecahkan mengunakan perkataan berulang-ulang (menggunakan konstruksi looping seperti for, while dan do-while). Iterasi atau perkataan berulang-ulang merupakan peralatan yang lebih efisien jika dibandingkan dengan rekursif tetapi rekursif menyediakan solusi yang lebih baik untuk suatu masalah. Pada rekursif, method dapat memanggil dirinya sendiri.
Gambar 10 Rekursif
public class Fungsi {
public static void main(String[] args) {
int i;
for(i=0;i<6;i++) System.out.println(Math.sqrt(i));
}
}
dalama bahasa Java terbagi dalam dua jenis :
Method
User-defined Method
method, adalah method -method -method method standar yang sudah disediakan oleh bahasa Java. method standar yang sudah disediakan oleh bahasa Java. method
sqrt() ada di file Math.java. User-define method, adalah method yang didefinisikan sendiri method yang didefinisikan sendiri method
oleh pemrogram.
Contoh Program yang menggunakan Standard Library Function (println dan sqrt) :
Rekursif
Rekursif adalah teknik pemecahan masalah yang powerful dan dapat digunakan ketika inti dari masalah terjadi berulang kali. Tentu saja, tipe dari masalah ini dapat dipecahkan mengunakan perkataan berulang-ulang (menggunakan konstruksi looping seperti for, while dan atau perkataan berulang-ulang merupakan peralatan yang lebih efisien jika dibandingkan dengan rekursif tetapi rekursif menyediakan solusi yang lebih baik untuk suatu masalah. Pada rekursif,
dapat memanggil dirinya sendiri.
public class Fungsi {
public static void main(String[] args) {
int i;
for(i=0;i<6;i++) System.out.println(Math.sqrt(i));
}
35
Untuk pengertian yang lebih baik dari rekursif, mari kita lihat pada bagaimana macam-macam dari teknik iterasi. Dalam teknik-teknik tersebut dapat juga kita lihat penyelesaian sebuah loop yang lebih baik menggunakan rekursif dari pada iterasi. Menyelesaikan masalah dengan perulangan menggunakan iterasi secara tegas juga digunakan pada struktur kontrol pengulangan. Sementara itu, untuk rekursif, penyelesaian masalah diulangi dengan memanggil sebuah method pengulangan. Maksud dari hal tersebut adalah untuk menggambarkan sebuah masalah kedalam lingkup yang lebih kecil dari pengulangan itu sendiri. Pertimbangan suatu perhitungan yang faktorial dalam penentuan bilangan bulat misalnya. Definisi rekursif dari kasus ini dapat diuraikan sebagai berikut: factorial(n) = factorial(n-1) * n; factorial(1) = 1. Sebagai contohnya, nilai faktorial dari 2 sama dengan fatorial (1)*2, dimana hasilnya adalah 2. Faktorial dari 3 adalah 6, dimana sama dengan faktorial dari (2)*3. Ilustrasi factorial seperti yang ditunjukkan dalam Gambar 1.0.
Listing program berikut ini menunjukkan bagaimana menghitung faktorial menggunakan teknik
iterasi.
Dibawah ini merupakan listing program yang sama tetapi menggunakan rekursif.
4 Implementasi method pada program
4.1 Membuat method sebagai fungsi pada program java
Method adalah suatu program yang terletak terpisah dari blok program utama, tetapi tetap
merupakan bagian dari program yang dibuat. Dengan menggunakan method dapat membuat
program menjadi lebih mudah dipahami. Method yang tidak mengembalikan nilai adalah seperti
prosedur pada pemrograman Pascal. Berikut adalah contoh program untuk menghitung luas 2 buah
bidang datar, yang penentuan bidang yang dihitung, ditentukan oleh pengguna melalui menu.
01 import java.util.Scanner;
dimana hasilnya adalah 2. Faktorial dari 3 adalah 6, dimana sama dengan faktorial dari (2)*3. Ilustrasi factorial seperti yang ditunjukkan dalam Gambar 1.0.
Listing program berikut ini menunjukkan bagaimana menghitung faktorial menggunakan teknik
Dibawah ini merupakan listing program yang sama tetapi menggunakan rekursif.
Implementasi method pada program
36
02 public class Prak_401 {
03 public static void main (String[] args) {
04 Scanner masukan = new Scanner(System.in);
05 int pilihan=9;
06 do {
07 System.out.println(“\nMENU\n“);
08 System.out.println(“1. Menghitung Luas Persegi Panjang”);
09 System.out.println(“2. Menghitung Luas Lingkaran”);
10 System.out.println(“0. Keluar”);
11 System.out.print(“Masukkan Pilihan Anda : ”);
12 pilihan = masukan.nextInt();
13 switch(pilihan){
14 case 1 : luasPersegiPanjang();break;
15 case 2 : luasLingkaran();break;
16 }
17 } while(pilihan != 0);
18 }
19
20 private static void luasPersegiPanjang(){
21 Scanner masukan = new Scanner(System.in);
22 float panjang, lebar, luas;
23 System.out.print(“Masukkan nilai panjang : ”);
24 panjang = masukan.nextFloat();
25 System.out.print(“Masukkan nilai lebar : ”);
26 lebar = masukan.nextFloat();
27 luas = panjang * lebar;
28 System.out.println(“Luas Persegi Panjang : ” + luas);
29 }
30
31 private static void luasLingkaran(){
32 Scanner masukan = new Scanner(System.in);
33 float jari2, luas;
34 System.out.print(“Masukkan nilai jari-jari : ”);
35 jari2 = masukan.nextFloat();
36 luas = 3.14f * jari2 * jari2;
37 System.out.println(“Luas Lingkaran : ” + luas);
38 }
39 }
Keterangan program diatas:
System.out.println(“2. Menghitung Luas Lingkaran”);
System.out.println(“0. Keluar”);
System.out.print(“Masukkan Pilihan Anda : ”);
pilihan = masukan.nextInt();
switch(pilihan){
case 1 : luasPersegiPanjang();break;
case 2 : luasLingkaran();break;
}
} while(pilihan != 0);
}
private static void luasPersegiPanjang(){
Scanner masukan = new Scanner(System.in);
float panjang, lebar, luas;
System.out.print(“Masukkan nilai panjang : ”);
panjang = masukan.nextFloat();
System.out.print(“Masukkan nilai lebar : ”);
lebar = masukan.nextFloat();
luas = panjang * lebar;
System.out.println(“Luas Persegi Panjang : ” + luas);
}
private static void luasLingkaran(){
Scanner masukan = new Scanner(System.in);
37
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 }
Keterangan program diatas:
ke 31 sampai baris ke 38 adalah method untuk menghitung luas lingkaran. method untuk menghitung luas lingkaran. method
Masing – 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
penampilan 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)));
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.
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.
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));
}
Keterangan program diatas:
39
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.
tertentu.
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 object. Selain itu juga menyediakan manfaat akan kebebasan
pengembangan, meningkatkan kualitas, mempermudah pemeliharaan, mempertinggi
kemampuan dalam modifikasi dan meningkatkan penggunaan kembali software
IHAN SOAL 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!
Apakah yang dimaksud dengan rekursif? Berikan contoh.
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 object sebagai dasar element dari program. Class adalah struktur dasar dari OOP.
Terdiri dari dua tipe dari anggota yang disebut dengan field (attribut/properti
menspesifikasi tipe data yang didefinisikan oleh class. Method spesifikasi dari operasi.
dirancang dalam kelas akan memperhatikan konsep modular, sehingga beberapa keunggulan konsep
modular akan membantu membentuk kelas lebih baik dan lebih efisien.
TES FORMATIF
Jelaskan keutamaan pemrograman modular.
Berikan rancangan contoh kelas dan objek yang terbentuk dari kelas yang dirancang.
Perbaiki program berikut sehingga bisa digunakan untuk menukar 2 buah karakter
Perhatikan kode dibawah
41
5. Buat program dengan mendefinisikan fungsi untuk menghitung luas lingkaran dan
keliling lingkaran.
DAFTAR PUSTAKA [1] P.J. Deitel, H.M. Deitel , “Java : how to program 9th” Prentice Hall,ISBN 978-0-13-257566-9,2012. [2] Mary Campione, Kathy Walrath, Alison Huml. “Java™ Tutorial, Third Edition: A Short Course on
the Basics”. Addison Wesley. 2000. [3] Arnold, K., Gosling, J., and Holmes, J. “The Java™ Programming Language, 4th Edition”. Addison
Wesley Professional. 2005. [4] Java tutorial: http://download.oracle.com/javase/tutorial/
Buat program dengan mendefinisikan fungsi untuk menghitung luas lingkaran dan
keliling lingkaran.
DAFTAR PUSTAKA [1] P.J. Deitel, H.M. Deitel , “Java : how to program 9th” Prentice Hall,ISBN 978-0-
Mary Campione, Kathy Walrath, Alison Huml. “Java™ Tutorial, Third Edition: A Short Course on . Addison Wesley. 2000.
[3] Arnold, K., Gosling, J., and Holmes, J. “The Java™ Programming Language, 4th EditionWesley Professional. 2005.
] Java tutorial: http://download.oracle.com/javase/tutorial/
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.
Sebuah object adalah sebuah entiti yang memiliki keadaan, object adalah sebuah entiti yang memiliki keadaan, object behaviour
yang tugasnya dirumuskan dalam suatu lingkup masalah dengan baik. Inilah
sebenarnya dari sebuah class. Ini juga dikenal sebagai instance. Instance
Anda meng-instantiate class menggunakan kata kunci new.
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
data.
Method
Sebuah method menjelaskan method menjelaskan method behaviour dari sebuah behaviour dari sebuah behaviour object. Method juga dikenal sebagai Method juga dikenal sebagai Method
fungsi atau prosedur.
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 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.
Global : 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.
top related