Konsep Dasar Pemrograman Berorientasi Obyek

Konsep Dasar
Pemrograman Berorientasi Obyek

JAVA

BAB 1
PEMROGRAMAN
DAN SIKLUS HIDUP
PERANGKAT LUNAK

Daftar Isi



Pendahuluan
Pemrograman







Pengertian
Bahasa Pemrograman
Level Bahasa Pemrograman

Siklus Hidup Perangkat Lunak








Analisis
Desain
Pengembangan ( Development )
Pengujian ( Testing )
Implementasi
Pemeliharaan

Akhir Siklus

Pemrograman(1)


Pengertian

Penanaman instruksi ke dalam komputer / devais
Tujuan : Komputer / devais melakukan operasi-operasi
komputasi sesuai instruksi
 Contoh instruksi : Penjumlahan  Jika input1=2 dan
input2 =5, maka hasil operasi komputer = 7





Bahasa Pemrograman







Instruksi yang dimengerti komputer : …010101001…
Instruksi yang dimengerti manusia : b = a + 4
Agar manusia dapat memberi instruksi kepada
komputer, dibutuhkan Bahasa Pemrograman

Level Bahasa Pemrograman

Pemrograman(2)


Level Bahasa Pemrograman
Bahasa Tingkat Rendah ( low-level language ),
misalnya: bahasa mesin dan assembler
 Bahasa Tingkat Menengah (medium-level language),
misalnya: C / C++, Fortran
 Bahasa Tingkat Tinggi (high-level language), misalnya:

Pascal
 Bahasa Tingkat Lebih Tinggi (higher-level language),
misalnya: Java , .Net


Siklus Hidup Perangkat
Lunak(1)


Analisis
Penentuan scope masalah
 Identifikasi komponen


Siklus Hidup Perangkat
Lunak(2)


Desain
Membuat blueprint / cetak biru

 Spesifikasi teknis dari sistem yang akan dihasilkan


Siklus Hidup Perangkat
Lunak(3)


Pengembangan
Penggunaan blueprint untuk membuat komponen aktual
 Jika diperlukan, komponen dapat dipecah menjadi subsub komponen


Siklus Hidup Perangkat
Lunak(4)


Pengujian


Evaluasi terhadap komponen-komponen : Memenuhi

spesifikasi ?

Siklus Hidup Perangkat
Lunak(5)


Pengujian
Evaluasi terhadap komponen-komponen : Memenuhi
spesifikasi ?
 Testing :











Unit Test
Functional Test
Flow Graph Test
Performance Test
Security Test
Integration Test
dll

Siklus Hidup Perangkat
Lunak(6)


Implementation


Pembuatan produk :



Instalasi produk ke komputer / devais

Pelatihan kepada user

Siklus Hidup Perangkat
Lunak(7)


Pemeliharaan


Perbaikan terhadap masalah-masalah yang terjadi pada
produk :






Perbaikan bug
Re-install produk
Data recovery

Perbaikan pada komponen
dll

Siklus Hidup Perangkat
Lunak(8)


Akhir Siklus
Mengumpulkan feedback dari user terhadap produk
yang berjalan pada sistem
 Feedback  Dikumpulkan  Dianalisa  Keputusan :
Modifikasi produk / tidak ?


Bab 2

ANALISIS MASALAH
MENGGUNAKAN KONSEP
OBJECT-ORIENTED ANALYSIS


Daftar Isi






Contoh Masalah
Identifikasi Domain Masalah
Identifikasi Obyek
Seleksi Obyek
Solusi / Hasil Analisa

Contoh Masalah





User : Petugas logistik pada sebuah koperasi

Aplikasi Diminta : Sistem pelaporan stok barang yang
mencatat persediaan, pemasukan, dan pengeluaran
barang
Kebijakan Koperasi :


Untuk barang berupa makanan :





Jika kedaluwarsa sudah lewat, barang dibuang
Jika kedaluwarsa tinggal 6 bulan lagi (asumsi ketika dibeli,
masa kedaluwarsa makanan > 1 tahun ), diskon harga 50%

Untuk semua barang :


Jika stok suatu item tinggal 40% dari seharusnya, harus
ditambah stoknya.

Contoh Masalah

Identifikasi Domain Masalah




Domain masalah : ruang lingkup permasalahan yang
akan dipecahkan.
Tujuan : fokus pada masalah
Domain masalah dapat ditentukan dari permintaan
user (User Requirement Gathering )

Identifikasi Obyek


Identifikasi sifat-sifat dasar dari obyek yang
diperkirakan akan terlibat dalam aplikasi :
Obyek : fisik / konseptual
 Identifikasi atribut / karakteristik
 Identifikasi operasi




Membuat perkiraan obyek apa saja yang akan
digunakan :








Barang
Supplier
Koperasi
Pembeli
Gudang
Daftar Transaksi
Daftar Stok Barang

Seleksi Obyek (1)


Pertimbangan-pertimbangan :


Relevansi dengan masalah :






Obyek eksis pada batasan masalah ?
Obyek dibutuhkan dalam menyelesaikan masalah ?
User dibutuhkan sebagai bagian dari interaksi antara user
dan solusi ?

Eksistensi independen : sebaiknya obyek yang dibuat
tidak saling tergantung dengan obyek lainnya

Seleksi Obyek (2)


Memilik Obyek :







Barang  OK
Supplier  Not OK , sebab tidak terlalu berperan dalam
permasalahan
Koperasi  OK , menjadi obyek utama
Pembeli  Not OK, sebab tidak terlalu berperan dalam
permasalahan
Daftar Transaksi  OK
Daftar Stok Barang  OK

Solusi

Bab 3
MEMBUAT DAN MENGUJI
PROGRAM JAVA

Daftar Isi


Identifikasi Komponen-komponen Class








Strukturisasi Class
Deklarasi Class
Deklarasi Variabel dan Penugasan
Pendefinisian Method
Pemberian Komentar

Membuat dan Menguji Program Java
Konfigurasi yang Dibutuhkan
 Membuat dan Menggunakan Class




Mengkompilasi dan Mengeksekusi Program

Identifikasi Komponen-komponen
Class (1)


Strukturisasi Class
Deklarasi Class
 Deklarasi dan Inisialisasi Atribut
 Pendefinisian Method ( optional )
 Komentar (Optional )







Deklarasi Class
Deklarasi Variabel dan Penugasan
Pendefinisian Method
Pemberian Komentar

Apakah Java?


Java adalah bahasa pemrograman
berorientasi objek yang dikembangkan
oleh Sun Microsystems sejak tahun 1991.
Bahasa ini dikembangkan dengan model
yang mirip dengan bahasa C++ dan
Smalltalk, namun dirancang agar lebih
mudah dipakai dan platform independent,
yaitu dapat dijalankan di berbagai jenis
sistem operasi dan arsitektur komputer.



Hasil dari mengkompile source code Java
bukanlah kode mesin atau instruksi
prosesor yang spesifik terhadap mesin
tertentu, melainkan berupa bytecode yang
berupa file berekstensi .class. Bytecode
tersebut dapat langsung Anda eksekusi di
tiap platform yang dengan menggunakan
Java Virtual Machine (JVM) sebagai
interpreter terhadap bytecode tersebut.

Kompiler dan interpreter untuk program Java
berbentuk Java Development Kit (JDK) yang
diproduksi oleh Sun Microsystems. JDK ini
dapat didownload gratis dari situs
java.sun.com.

MEKAN
ISME
KOMPI
LASI
DAN
EKSEK
USI

PR
OG
RA
M
BA
NT
U
JA
VA

Urutan langkah-langkah membuat
sebuah program Java






Membuat source code program dengan editor teks
apapun. file tersebut harus berekstensi .java dan case
sensitive.
Mengkompile source code dengan perintah javac.
Misalnya: javac HelloWorld.java. Jika berhasil, hasilnya
adalah file bytecode berakhiran .class.
Mengeksekusi bytecode dengan perintah java.
Parameter dari perintah ini adalah nama file hasil
kompilasi tanpa ekstensi .class. Contoh: java
HelloWorld.

Kebutuhan perangkat lunak
Java 2 SDK Standard Edition (J2SE)
digunakan untuk mengkompilasi kode
program java
 Text Editor
berfungsi menuliskan kode-kode program.
Contoh: VI,Gedit, Notepad


Kompilasi kode program


Buka command promt
Set PATH=C:\Progra~1\java\jdk1.5.0\bin;%PATH%
Set CLASSPATH=.;D:\CodeJava



Periksa apakah setting sudah benar

Contoh Program


public class HelloDunia
{
public static void main(String[] args)
{
System.out.println("Apa Kabar Dunia?");
}
}



import java.awt.Graphics;
public class HelloWorldApplet extends
java.applet.Applet
{
public void paint(Graphics g)
{
g.drawString("Apa Kabar Dunia?", 5, 25);
}

}





Coba Applet







Identifikasi Komponen-komponen
Class(2)


Deklarasi Class :
Tujuan : mendefinisikan data yang dibawa oleh obyek
 Syntax :


[modifier] class class_identifier


Contoh :
public class Barang {
}

Identifikasi Komponen-komponen
Class (3)


Deklarasi Variabel dan Penugasan
Deklarasi variabel dilakukan di dalam class
 Variabel yang dideklarasikan di dalam class = variabel atribut /
variabel anggota / variabel instans
 Syntax :


[modifiers] data_type identifier [ = value ] ;


Contoh :
import java.util.Date;
public class Barang {
public int jumlah ; //contoh deklarasi
public int hargaBeli ;
public Date tanggalKedaluwarsa ;
public int hargaJual ;
public String idBarang ;
double diskon = 0.0 ; //contoh penugasan
}

Identifikasi Komponen-komponen
Class (4)


Pendefinisian Method
Method : merepresentasikan operasi-operasi yang dapat
dilakukan oleh obyek
 Syntax :


[modifiers] return_type method_identifier ([arguments]){
method_code_block;
}



Contoh :
public class Barang {
... //inisialisasi variabel
public void setIDBarang( String id ){
dBarang = id;
}
}

Identifikasi Komponen-komponen
Class (5)


Pemberian Komentar :
Tujuan : Menandai baris-baris program dengan catatan,
supaya programmer dapat mengingat maksud dari
baris-baris program tersebut
 Contoh :


1)

public int hargaJual ; // ini variabel untuk
// menyimpan data harga jual

2)

/* ini variabel untuk menyimpan
data harga jual */
public int hargaJual ;

Membuat dan Menguji Program Java (1)


Konfigurasi yang Dibutuhkan :
Java Runtime Environment ( JRE )
 JRE dapat didownload dari : http://www.java.sun.com


Membuat dan Menguji Program Java (2)



Membuat dan Menggunakan Class


Contoh program :
public class Barang {
public int jumlah ; //contoh deklarasi
public int hargaBeli ;
public int hargaJual ;
public String idBarang ;
double diskon = 0.0 ; //contoh penugasan
public int getJumlah(){
return jumlah;
}
}



Class disimpan dalam file : Barang.java

Membuat dan Menguji Program Java (3)



Mengkompilasi Program :
C:\Latihan>javac Barang.java



Mengeksekusi Program :
C:\Latihan>java Barang

Bab 4
DEKLARASI, INISIALISASI,
DAN PENGGUNAAN VARIABEL

Daftar Isi


Identifikasi Penggunaan Variabel dan Syntax
Penggunaan Variabel
 Deklarasi dan Inisialisasi Variabel




Mendeskripsikan Tipe Data Primitif








Tipe Data Integral
Tipe Data Floating-Point
Tipe Data Tekstual
Tipe Data Logika
Memilih Tipe Data

Mendeklarasikan Variabel dan Melewatkan Nilai ke
Variabel
Penamaan Variabel
 Melewatkan Nilai ke Variabel
 Konstanta


Identifikasi Penggunaan Variabel
dan Syntax (1)
Contoh Program :

Identifikasi Penggunaan Variabel
dan Syntax (2)

Identifikasi Penggunaan Variabel
dan Syntax (3)


Penggunaan Variabel :








noPol  menyimpan data nomor polisi
merk  menyimpan data merk mobil
harga  menyimpan harga mobil
tahunPembuatan  menyimpan tahun pembuatan mobil
namaPemilik  menyimpan data pemilik mobil

Deklarasi dan Inisialisasi Variabel :
[modifiers] data_type identifier [ = value ] ;

Identifikasi Penggunaan Variabel
dan Syntax (4)

Identifikasi Penggunaan Variabel
dan Syntax (5)


Hasil Kompilasi :



Penyebab : Variabel belum dideklarasikan !!!

Identifikasi Penggunaan Variabel
dan Syntax (6)


Inisialisasi Variabel ( dipisah dari deklarasi ) :

Mendeskripsikan Tipe Data Primitif
(1)


Tipe Data Primitif :
Integral : merepresentasikan nilai-nilai bilangan bulat ( tidak
memiliki elemen pecahan desimal.
 Floating Point : merepresentasikan nilai-nilai bilangan real
( memiliki elemen pecahan desimal )
 Tekstual : merepresentasikan nilai-nilai berupa alphabet.




Logika : merepresentasikan nilai-nilai logika ( hanya bernilai
true dan false ).

Mendeskripsikan Tipe Data Primitif
(2)

Mendeskripsikan Tipe Data Primitif
(3)


Tipe Data Floating Point

Mendeskripsikan Tipe Data Primitif
(4)


Tipe Data Tekstual : char


Contoh penggunaan :
public char alphabet = ‘A’;
public char ascii = ‘\111’; // jika dicetak, akan
//menghasilkan
// huruf ‘I’;



Tipe Data Logika : boolean


Contoh penggunaan :
public boolean status = true;
public boolean check = 10 < 5 ; // nilai check menjadi
//false
public boolean hasil = (10> 2

Sign bit

31 30 29 28 27

7

6

5

4

3

2

1

0

1 1 1 1 1

1 1 1 1 1 1 0 0

=-4

Sign bit



Shift Kiri

31 30 29 28 27

7

6

5

4

3

2

1

0

1 1 1 1 1

1 1 1 1 0 0 0 0

= - 16

Geser ke kiri 2 kali : >> 2

Sign bit

31 30 29 28 27

7

6

5

4

3

2

1

0

0 0 1 1 1

1 1 1 1 1 1 0 0

= 1073741820

Sign bit



Operator ‘&’
31 30 29 28 27

7 6 5 4 3 2 1

0

0 0 00 0

00 00 1 10 0

31 30 29 28 27

7 6 5 4 3 2 1

1 1 11 1

11 11 0 01 1

= 12

0

= - 13
&

31 30 29 28 27

7 6 5 4 3 2 1

0

0 0 00 0

00 00 0 00 0

=0

Menggunakan Operator Bitwise
Untuk Mengubah Nilai (4)


Operator ‘|’

31 30 29 28 27

7 6 5 4 3 2 1

0

0 0 00 0

00 00 1 10 0

31 30 29 28 27

7 6 5 4 3 2 1

1 1 11 1

11 11 0 01 1

= 12

0

= - 13
|



Operator ‘^’

31 30 29 28 27

7 6 5 4 3 2 1

0

1 1 11 1

11 11 1 11 1

= -1

31 30 29 28 27

7 6 5 4 3 2 1

0

0 0 00 0

00 00 1 10 1

31 30 29 28 27

7 6 5 4 3 2 1

1 1 11 1

11 11 0 01 1

31 30 29 28 27

7 6 5 4 3 2 1

1 1 11 1

1 1 1 1 11 1 1 0

= 13

0

= - 13

0

= -2

Menggunakan Operator Bitwise
Untuk Mengubah Nilai (5)


Operator ‘~’
31 30 29 28 27

7 6 5 4 3 2 1

0

0 0 00 0

00 00 1 10 0

= 12
~

31 30 29 28 27

7 6 5 4 3 2 1

0

1 1 11 1

1 1 1 1 01 0 1 10

= -13

Prioritas Operator (1)


Prioritas dari yang paling dahulu dikerjakan :






Operator pada tanda kurung “(…)”
Operator-operator Increment dan Decrement
Operator Perkalian dan Pembagian
Operator Penjumlahan dan Pengurangan
Operator Bitwise, dari kiri ke kanan

Prioritas Operator (2)


Contoh 1:
int c = 12 * 3 +5 / (8 - 3) ;

Urutan Operasinya :
int
int
int
int


c
c
c
c

=
=
=
=

12 * 3 + 5 / 5 ;
36 + 5 / 5;
36 + 1 ;
37;

Contoh 2:
int c = 3 + 4 >> 1 + 1 > 1 + 1 > 2 0 ) ) ;
Keluaran : false



Contoh 2 :
int i = 1;
int j = 2;
System.out.println ( ( i < 1) || ( j > 0) ) ;
Keluaran : true

Konstruksi Pengambilan
Keputusan


Konstruksi yang memungkinkan program melakukan
evaluasi terhadap variabel / kondisi kemudian
menjalankan alur program yang sesuai dengan
kondisi.



Konstruksi Pengambilan Keputusan :
Konstruksi if
 Konstruksi if … else
 Konstruksi switch


Konstruksi if (1)


Konstruksi pengambilan keputusan dengan 2
kemungkinan keputusan.

If ( kondisi )

Kondisi menghasilkan
nilai true

Code Block

Kondisi menghasilkan
nilai false

Konstruksi if (2)


Syntax
if ( boolean_expression ){
code block;
} //akhir dari konstruksi ‘if’
//program dilanjutkan



Contoh :

Konstruksi if … else (1)


Digunakan sebagai konstruksi pengambilan
keputusan yang memiliki beberapa kemungkinan
keputusan.

If ( kondisi_1 )
Kondisi_1 menghasilkan
nilai false
Kondisi_1 menghasilkan
nilai true

Blok
Program 1

else if
( kondisi_2 )
else

Kondisi_2 menghasilkan
nilai true

Blok
Program 2

Kondisi_2 menghasilkan
nilai false

Blok
Program 3

Konstruksi if … else (2)


Syntax
if ( boolean_expression_1 ){
code block 1;
}
else if ( boolean_expression_2 ){
code block 2;
}
.
.
.
else{
code block n;
}

Konstruksi if … else (3)


Contoh

Konstruksi switch(1)


Digunakan untuk mengambil keputusan yang
mengevaluasi kemungkinan-kemungkinan nilai dari
variabel yang dievaluasi

Evaluasi
variabel

Variabel =
nilai_1

Code_block_1

Variabel =
nilai_2

Code_block_2

Semua kemungkinan nilai
tidak sama dengan nilai
variabel

.....

Code_block_default

Konstruksi switch(2)


Syntax
switch( variabel ) {
case nilai_literal_1 :
code_block_1;
[ break; ]
case nilai_literal_2 :
code_block_2;
[ break; ]
.
.
.
[default:]
code_block_default;
[ break; ]
}

Konstruksi switch(3)


Contoh :

Konstruksi switch(4)


Variabel yang dapat dievaluasi menggunakan
konstruksi switch adalah variabel yang bertipe-data :
int
 short
 byte
 char






Setelah evaluasi terhadap satu nilai dilakukan, jika
tidak ditemukan kata kunci break, maka pemeriksaan
dilanjutkan ke nilai berikutnya. Jika ditemukan
break, maka program keluar dari blok switch
Kata kunci default dimaksudkan : jika semua nilai
yang dievaluasi tidak ada yang cocok maka blok
default ini akan dieksekusi

Bab 9
KONSTRUKSI LOOP

Daftar Isi


Konstruksi Loop



Membuat Loop Menggunakan While



Membuat Loop Menggunakan For



Membuat Loop Menggunakan Do/While



Loop Bersarang ( Nested Loop )



Perbandingan Konstruksi Loop

Konstruksi Loop


Konstruksi Loop adalah konstruksi yang digunakan
untuk mengakomodasi pengulangan proses





Konstruksi Loop diperlukan untuk lebih
mengefisienkan penulisan kode program, sehingga
tidak perlu dilakukan pengulangan penulisan kode
untuk merepresentasikan suatu proses yang
berulang.
Konstruksi Loop :
while
 for
 do..while


Konstruksi while (1)


Konstruksi while adalah konstruksi loop yang jumlah
perulangannya tergantung pada suatu kondisi logika
tertentu



Syntax :
while(boolean_expression){
code_block;
} //akhir dari konstruksi while
//program dilanjutkan di sini

Konstruksi while (2)


Contoh :

Konstruksi while (3)


Tabel Perkembangan Nilai Variabel :

Konstruksi while (3)





Penggunaan while(true) : jika code block tidak
mengandung pemeriksaan kondisi untuk mengakhiri
loop, maka loop akan terus dijalankan
Jika menggunakan while(true), buatlah pemeriksaan
kondisi untuk keluar dari loop
Contoh :

Konstruksi for (1)


Ada beberapa segmen yang dipertimbangkan pada
konstruksi for :
segmen inisialisasi
 segmen boolean_expression






segmen update

Syntax :
for(initialize[,initialize] ; boolean_expression ;update[,update]){
code_block;
}

Konstruksi for (2)


Contoh :

Konstruksi for (3)


Tabel perkembangan nilai variable

Konstruksi do…while





Mirip dengan konstruksi while
Perbedaan dengan konstruksi while :


Looping dijalankan terlebih dahulu



Dilakukan pemeriksaan kondisi

Contoh :

Loop Bersarang
(Nested Loop) (1)




Looping di dalam Looping dapat diterapkan pada
pemrograman Java
Konstruksi yang digunakan dalam nested loop tidak
dibatasi
Contoh :

Loop Bersarang
(Nested Loop) (2)


Keluaran Program :
@@@@@
@@@@@
@@@@@
@@@@@
@@@@@

Perbandingan Konstruksi Loop


Konstruksi while :

lebih tepat digunakan untuk membuat iterasi
dengan jumlah iterasi yang tidak pasti dan untuk jumlah iterasi dari nol
sampai beberapa kali



Konstruksi do…while :

, lebih tepat digunakan untuk membuat

iterasi dengan jumlah iterasi yang tidak pasti , dan untuk jumlah iterasi
dari satu sampai beberapa kali


Konstruksi for :

lebih tepat digunakan untuk membuat iterasi

dengan jumlah iterasi yang pasti dan berhingga

Pernyataan Continue

Pernyataan continue (2)

Bab 10
MENGGUNAKAN METHOD

Daftar Isi



Pengertian Method
Membuat dan Memanggil ( Invoke ) Method
Bentuk Dasar Method
 Memanggil Method dari Class yang Berbeda
 Memanggil Method dari Class yang Sama




Melewatkan Argumen dan Mengembalikan Nilai
Deklarasi Method Ber-argumen
 Memanggil Method Ber-argumen
 Mendeklarasikan Method yang Memiliki Nilai


Pengembalian


Menerima Nilai Pengembalian
 Keuntungan Menggunakan Method


Overloading pada Method

Pengertian Method


Method adalah satu kontainer pada class yang
memuat baris-baris kode





Semua baris kode pada pemrograman Java harus
berada pada blok method, dan semua method harus
berada di dalam blok class
Method dapat dianalogikan sebagai fungsi. Contoh :

F(x,y)=x+y
F ( x, y ) dapat dikatakan sebagai method

Membuat dan Memanggil
( Invoke ) Method (1)



Method dibuat / didefinisikan pada saat
mendefinisikan class
Syntax :
[modifiers] return_type method_identifier ([arguments]){
method_code_block;
}

Membuat dan Memanggil
( Invoke ) Method(2)


Contoh :

Membuat dan Memanggil
( Invoke ) Method(3)


Contoh (lanj.) :

Membuat dan Memanggil
( Invoke ) Method(4)


Contoh (lanj.) :

Memanggil Method dari Class
yang Berbeda


Contoh :



Syntax :
< object identifier > . < method identifier ([arguments])> ;

Memanggil Method dari Class
yang Sama


Contoh :



Syntax :
;

Melewatkan Argumen (1)


Method dapat memiliki argumen



Argumen dapat disebut sebagai variabel dummy,
atau parameter



Dalam pemanggilan method, dapat dilakukan passing
argumen ( pelewatan argumen ), dengan nilai yang
tipe datanya sama dengan tipe data parameter

Melewatkan Argumen (2)


Syntax deklarasi method berargumen :
[modifiers] return_type method_identifier (
data_type argument_identifier_1 [,
data_type argument_identifier_n] ) {
code_block;
}

Melewatkan Argumen (3)


Contoh method dengan parameter :


Class LumbungPadi :
public void simpanPadi(int tambahanPadi){
padiDisimpan = padiDisimpan + tambahanPadi;
}



Class Petani :
public void simpanPanenanDiLumbung(int jumlahPanenan ){
lumbung.simpanPadi(jumlahPanenan);
}



Contoh pemanggilan method :
Petani pakBakri = new Petani( );
pakBakri.simpanPanenanDiLumbung(100 );

Mengembalikan Nilai (1)



Method dengan return_type bukan void dapat
mengembalikan nilai
Nilai dikembalikan ke method lain yang memanggil
method tersebut

Mengembalikan Nilai (2)


Syntax deklarasi method yang dapat mengembalikan
nilai :
[modifiers] return_value method_identifier([arguments]){
method_code_block;
return value;
}

Mengembalikan Nilai (3)


Contoh deklarasi method yang dapat mengembalikan
nilai :



Contoh pemanggilan method yang dapat
mengembalikan nilai :

Keuntungan Menggunakan
Method






Method membuat program lebih mudah dibaca dan
mudah untuk dipelihara / di-maintain.
Method membuat proses pengembangan dan
perawatan ( maintenance ) menjadi lebih cepat.
Method merupakan dasar untuk melakukan membuat
software yang re-usable.
Method memungkinkan obyek-obyek yang berbeda
untuk berkomunikasi dan untuk mendistribusikan
beban kerja yang dipikul oleh program.

Overloading pada Method(1)




Dalam satu class dapat dibuat lebih dari 1 method
dengan identifier (nama method ) yang sama
Setiap method dengan nama yang sama harus
mempunyai komposisi argumen yang berbeda
Contoh method-method yang merupakan overload :
void simpanPanenanDiLumbung( )
 void simpanPanenanDiLumbung(int jumlahPanenan)
 void simpanPanenanDiLumbung(int jumlahPanenan,
LumbungPadi lb )


Overloading pada Method(2)


Contoh :

Overloading pada Method(3)


Contoh (lanj.) :

Overloading pada Method(4)


Contoh (lanj.) :

Overloading pada Java API



Pada Spesifikasi Java API, terdapat method-method
overload.
Contoh : pada class PrintStream, terdapat methodmethod overload :








print
print
print
print
print
print
dll

(boolean b)
(char c)
(char[ ] ca)
(double d )
(int i )
(Object o )

Bab 11
VARIABEL DAN
METHOD STATIK

Daftar Isi


Membuat Method dan Variabel static



Mendeklarasikan Method static
Memanggil Method static
Mendeklarasikan Variabel static
Method static dan Variabel static pada Java API
Method main ( )



Kapan Mendeklarasikan Method atau Variabel static ?






Membuat Method dan Variabel statik

Mendeklarasikan Method Statik


Syntax
[modifiers] static return_type method_identifier( [arguments ]){
method_code_block;
}

Memanggil Method Statik


Syntax
. ;



Perbedaan pemanggilan method statik dan nonstatik adalah :
Pemanggilan method statik dilakukan tanpa
menginstanstiasi obyek, tetapi langsung menuliskan
nama class.
 Pemanggilan method non-statik dilakukan dengan
terlebih dahulu menginstanstiasi obyek


Mendeklarasikan Variabel Statik


Syntax
[modifiers] static data_type identifier = value;



Perbedaan pemanggilan variabel statik dan nonstatik adalah :
Pemanggilan variabel statik dilakukan tanpa
menginstanstiasi obyek, tetapi langsung menuliskan
nama class.
 Pemanggilan variabel non-statik dilakukan dengan
terlebih dahulu menginstanstiasi obyek


Method Statik pada Java API


Method statik pada Java API antara lain :


Pada class System :






public static Properties getProperties( )
public static String getProperty(String key)
public static SecurityManager getSecurityManager()

Pada class Math :





Public
Public
Public
Public

static
static
static
static

double
double
double
double

abs (double a)
cos (double c)
exp (double e)
max (double a, double b)

Variabel Statik pada Java API


Variabel statik pada Java API antara lain :


Pada class System :






public static PrintStream err
public static InputStream in
public static PrintStream out

Pada class Math :



Public static double E
Public static double PI

Method main ( ) (1)






Method main() adalah satu method static khusus
yang wajib ada dalam setiap aplikasi Java Standard
Edition
Method main( ) adalah method yang pertama kali
dipanggil ketika sebuah aplikasi berbasis Java
dipanggil ( kecuali Applet, MIDlet, dan aplikasi yang
membutuhkan server )
Syntax :
public static void main ( String[ ] args ){
main_method_code_block ;
}

Method main ( ) (2)




Method main() mempunyai argumen berupa array
String
Pemanggilan program dapat dilakukan dengan
menyertakan argumen-argumennya
Contoh pemanggilan program dengan argumen :
C:> java KegiatanPanen petani1 petani2 petani3

Kapan Menggunakan Method atau
Method Statik ?





Tidak diperlukan operasi pada obyek individual
Tidak diperlukan asosiasi suatu variabel kepada
sebuah obyek
Diperlukan akses variabel atau method sebelum
instanstiasi obyek
Method atau variabel secara logika bukan milik dari
sebuah obyek, tetapi milik sebuah class utilitas.
Contohnya class Math pada Java API

Bab 12
ENKAPSULASI DAN
KONSTRUKTOR

Daftar Isi


Menggunakan Enkapsulasi








Mendeskripsikan Variable Scope




Visibility Modifier
Modifier public
Potensi Masalah dengan modifier public
Modifier private
Interface dan Implementasinya

Penempatan Variabel Instans dan Variabel Lokal di
Memori

Konstruktor
Mendefinisikan Konstruktor
 Konstruktor Default
 Konstruktor Overload


Menggunakan Enkapsulasi






Enkapsulasi adalah menyembunyikan data di dalam
class. Data yang disembunyikan adalah variabel
instans / atribut
Pada dasarnya, obyek adalah entitas yang mengikat
data-data menjadi data-data yang eksklusif.
Pengikatan ini juga dapat disebut enkapsulasi.
Dengan menggunakan obyek, data-data dapat
dimanipulasi aksesibilitasnya

Modifier public


Modifier public adalah modifier yang memberi
kemampuan tak terbatas bagi variabel atau method
untuk diakses



Variabel atau method yang menggunakan modifier
public akan dapat diakses dari mana saja, baik dari
dalam class sendiri, maupun dari class lain.

Visibility Modifier


Visibility Modifier adalah modifier-modifier yang
memberi batasan kemampuan variabel atau method
untuk diakses



Beberapa visibility modifier :
 public
 private

Potensi Masalah dengan
Atribut public


Contoh :

Potensi Masalah dengan
Atribut public


Contoh :



Output : Persediaan = -100  Mungkinkah ???

Modifier private (1)




Modifier private membatasi aksesibilitas variabel
atau method, sehingga hanya dapat diakses oleh
variabel atau method dari class yang sama.
Contoh :

Modifier private (2)


Hasil Kompilasi :

Interface dan Impementasinya (1)





Agar variabel private dapat diakses oleh class lain,
dibutuhkan interface yang dapat menghubungkan
antara class yang mengakses variabel dengan
variabel tersebut
Interface tersebut berupa Method !
Interface dapat digunakan sebagai filter, sehingga
nilai data tetap berada pada selang nilai yang sesuai
dengan desain, dan masuk akal, sehingga :
Persediaan padi selalu >= 0
 Jumlah padi yang diambil selalu positif
 Jumlah padi yang dimasukkan selalu positif


Interface dan Impementasinya (2)


Contoh :

Interface dan Impementasinya (3)


Hasil eksekusi program :

Mendeskripsikan Variable Scope


Variable Scope : ruang lingkup keteraksesan
variabel. Pendefinisian scope menentukan pada
bagian mana saja suatu variabel dapat diakses



Berdasarkan scope-nya, variabel dibagi atas 2
kategori :


instance variable : variabel yang dapat digunakan pada
semua bagian obyek



local variable

: yaitu variabel yang hanya dapat

digunakan pada method yang mendeklarasikannya

Penempatan Instance Variable dan
Local Variable pada Memori(1)






Instance Variable disimpan pada Heap Memory
Local Variable disimpan pada Stack Memory
Sebelum menempatkan Local Variable pada Stack
Memory, terlebih dahulu dilakukan alokasi scope
pada Stack Memory.
Local variabel akan ditempatkan pada alokasi
memory yang termasuk dalam scope

Penempatan Instance Variable dan
Local Variable pada Memori(2)
0x0abc
250

0x23ff

jdb

jumlahDimasukkan
false
0x0abc
100

kondisi
pesan
jdm

jumlahDiambil
persediaan
0x0ab7

0x23ff

Scope
100

0x0ab7

STACK
MEMORY

p

SET JUMLAH PADI
YANG
DIMASUKKAN KE
LUMBUNG

lumbungDesaSukatani

HEAP
MEMORY

Konstruktor


Konstruktor adalah struktur yang mirip dengan
method ( tetapi bukan method ), yang digunakan
untuk melakukan instanstiasi obyek

Pendefinisian Konstruktor


Syntax pendefinisian konstruktor :
[modifiers] class className {
[modifiers] ConstructorName([arguments]) {
code_block;
}
}



Contoh :

Konstruktor Default


Jika pada suatu class tidak didefinisikan satu konstruktor
pun , maka JVM mengasumsikan konstruktor default, yaitu
konstruktor yang tidak melakukan modifikasi nilai variabel,
dan tidak mempunyai argumen

Konstruktor Overload(1)




Dalam satu class dapat didefinisikan lebih dari 1
konstruktor
Setiap konstruktor tidak boleh mempunyai komposisi
argumen yang sama dengan konstruktor lain
Contoh :

Konstruktor Overload(2)


Contoh (lanj.)

Konstruktor Overload(3)

50
0
10

jumlahDimasukkan
jumlahDiambil
persediaan

0x0bc4

0
0
100

jumlahDimasukkan
jumlahDiambil
persediaan

0x0ba4

0x0bc4

0x0ba4
0x0ab7

lumbung3

0
lumbung2
lumbung1

0

jumlahDiambil

0

persediaan

0x0ab7

STACK
MEMORY

jumlahDimasukkan

HEAP
MEMORY

Dokumen yang terkait

Analisis Konsep Peningkatan Standar Mutu Technovation Terhadap Kemampuan Bersaing UD. Kayfa Interior Funiture Jember.

2 215 9

DISKRESI DALAM PELAKSANAAN PROGRAM BANTUAN SISWA MISKIN SEKOLAH DASAR (BSM-SD) (Studi Kasus di Sekolah Dasar Negeri Sebanen II Kalisat Kabupaten Jember)

1 35 17

Komunikasi antarpribadi antara guru dan murid dalam memotivasi belajar di Sekolah Dasar Annajah Jakarta

17 110 92

Konsep kecerdasan ruhani guru dalam pembentukan karakter peserta didik menurut kajian tafsir Qs. 3/Ali-‘Imran: 159

9 101 103

Aplikasi Pengenalan Amatematika Dasar Untuk Anak Usia Dini Berbasis Multimedia

14 93 39

KAJIAN ASPEK HYGIENE SANITASI TERHADAP KONDISI KANTIN MAKANAN JAJANAN ANAK SEKOLAH DASAR (Studi Kasus di Sekolah Dasar Kota Bandar Lampung)

40 194 64

Asas Tanggung Jawab Negara Sebagai Dasar Pelaksanaan Perlindungan dan Pengelolaan Lingkungan Hidup

0 19 17

BAB IV HASIL PENELITIAN - Pengaruh Dosis Ragi Terhadap Kualitas Fisik Tempe Berbahan Dasar Biji Cempedak (Arthocarpus champeden) Melalui Uji Organoleptik - Digital Library IAIN Palangka Raya

0 2 20

BAB I PENDAHULUAN A. Latar Belakang - Uji Kualitas Mikrobiologi Minuman Olahan Berdasarkan Metode Nilai MPN Coliform di Lingkungan Sekolah Dasar (SD) dan Madrasah Ibtidaiyah (MI) Kelurahan Pahandut Palangka Raya - Digital Library IAIN Palangka Raya

1 2 12

Konsep Wadi’ah dalam jasa parkir dan ekonomi petugasnya di RSUD dr Doris Sylvanus Kota Palangka Raya menurut ekonomi Islam - Digital Library IAIN Palangka Raya

0 0 21