Konsep Dasar
Pemrograman Berorientasi Obyek
BAB 1
PEMROGRAMAN
Daftar Isi
 Pendahuluan  Pemrograman
 Pengertian
 Bahasa Pemrograman
 Level Bahasa Pemrograman
 Siklus Hidup Perangkat Lunak  Analisis
 Desain
 Pengembangan ( Development )
 Pengujian ( Testing )
 Implementasi
 Pemeliharaan
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
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),
Siklus Hidup Perangkat
Lunak(1)
 Analisis
 Penentuan scope masalah
Siklus Hidup Perangkat
Lunak(2)
 Desain
 Membuat blueprint / cetak biru
Siklus Hidup Perangkat
Lunak(3)
 Pengembangan
 Penggunaan blueprint untuk membuat komponen aktual
 Jika diperlukan, komponen dapat dipecah menjadi
Siklus Hidup Perangkat
Lunak(4)
 Pengujian
 Evaluasi terhadap komponen-komponen : Memenuhi
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
Siklus Hidup Perangkat
Lunak(6)
 Implementation
 Pembuatan produk :
 Instalasi produk ke komputer / devais
Siklus Hidup Perangkat
Lunak(7)
 Pemeliharaan
 Perbaikan terhadap masalah-masalah yang terjadi pada
produk :
 Perbaikan bug
 Re-install produk  Data recovery
Siklus Hidup Perangkat
Lunak(8)
 Akhir Siklus
 Mengumpulkan feedback dari user terhadap produk
yang berjalan pada sistem
 Feedback  Dikumpulkan  Dianalisa  Keputusan :
Bab 2
ANALISIS MASALAH
MENGGUNAKAN KONSEP
Daftar Isi
 Contoh Masalah
 Identifikasi Domain Masalah  Identifikasi Obyek
 Seleksi Obyek
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
Identifikasi Domain Masalah
 Domain masalah : ruang lingkup permasalahan yang
akan dipecahkan.
 Tujuan : fokus pada masalah
 Domain masalah dapat ditentukan dari permintaan
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
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
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
Bab 3
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
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
Apakah Java?
Java
adalah
bahasa
pemrograman
Kompiler dan interpreter untuk program Java
berbentuk Java Development Kit (JDK) yang
diproduksi
oleh
Sun Microsystems. JDK ini
dapat didownload gratis dari situs
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
Kebutuhan perangkat lunak
Java 2 SDK Standard Edition (J2SE)
digunakan untuk mengkompilasi kode
program java
Text Editor
Kompilasi kode program
Buka command promt
Set PATH=C:\Progra~1\java\jdk1.5.0\bin;%PATH%
Set CLASSPATH=.;D:\CodeJava
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);
}
<HTML>
<HEAD>
<TITLE>Coba Applet</TITLE>
</HEAD>
<BODY>
<APPLET
CODE="HelloWorldApplet.class"
WIDTH=150 HEIGHT=25>
</APPLET>
</BODY>
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 */
Membuat dan Menguji Program Java (1)
 Konfigurasi yang Dibutuhkan :
 Java Runtime Environment ( JRE )
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;
} }
Membuat dan Menguji Program Java (3)
 Mengkompilasi Program :
C:\Latihan>javac Barang.java
 Mengeksekusi Program :
Bab 4
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
Identifikasi Penggunaan Variabel
dan Syntax (1)
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 :
Identifikasi Penggunaan Variabel
dan Syntax (5)
 Hasil Kompilasi :
Identifikasi Penggunaan Variabel
dan Syntax (6)
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
Mendeskripsikan Tipe Data Primitif
(3)
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
Mendeskripsikan Tipe Data Primitif
(5)
 Memilih Tipe Data :
 Perhatikan Jenis Data ( bilangan bulat / bilangan real /
logika / karakter )
 Terdapat operasi pembagian ?  disarankan
menggunakan tipe floating point
 Jika program memperhatikan ukuran data dalam
Mendeklarasikan Variabel dan
Melewatkan Nilai ke Variabel (1)
 Mendeklarasikan Variabel
 Variabel : entitas penyimpanan data yang paling
elementer
 Variabel lebih mengacu ke alokasi memory daripada
nilai data
Mendeklarasikan Variabel dan
Melewatkan Nilai ke Variabel (2)
 Penamaan Variabel :
 Identifier variabel harus dimulai dengan alfabet huruf besar, huruf
kecil, tanda dollar ( $ ) atau underscore (_). Setelah karakter pertama, dapat diikuti dengan angka.
 Identifier variabel tidak boleh mengandung punctuation, spasi, atau
dashes ( - )
 Kata kunci pada teknologi Java , seperti pada Tabel , tidak dapat dijadikan nama identifier variabel.
Mendeklarasikan Variabel dan
Melewatkan Nilai ke Variabel (3)
 Penamaan Variabel :
 Contoh nama variabel yang valid :
 @2var
 _status
 tanggal
 jumlahBarang
 nama_kecil
 final_test
 int_float
Mendeklarasikan Variabel dan
Melewatkan Nilai ke Variabel (4)
 Penamaan Variabel :
 Contoh nama variabel yang valid :
 @2var
 _status
 tanggal
 jumlahBarang
 nama_kecil
 final_test
 int_float
Bab 5
Daftar Isi
 Menggunakan Operator Aritmatika untuk
Memodifikasi Nilai
 Menggunakan Operator Bitwise untuk Memodifikasi
Nilai
 Prioritas Operator
 Menggunakan Promosi dan Type Casting
 Promosi
 Type Casting
Menggunakan Operator Aritmatika
Untuk Mengubah Nilai (2)
Menggunakan Operator Bitwise
Untuk Mengubah Nilai (1)
Menggunakan Operator Bitwise
Untuk Mengubah Nilai (2)
 Shift Kanan
 Shift Kiri
0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 2 3 4 5 6 7 31 30 29 28 27
Sign bit
= - 16
Geser ke kanan 2 kali : >> 2
0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 2 3 4 5 6 7 31 30 29 28 27
Sign bit
= - 4
0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 2 3 4 5 6 7 31 30 29 28 27
Sign bit
= - 16
Geser ke kiri 2 kali : << 2
0 0 0 0 0 0 1 1 1 1 1 1 1 0 1 2 3 4 5 6 7 31 30 29 28 27
Sign bit
Menggunakan Operator Bitwise
Untuk Mengubah Nilai (3)
 Shift Kanan Dengan Penambahan ‘0’ pada Bit-bit Kiri
 Operator ‘&’
0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 2 3 4 5 6 7 31 30 29 28 27
Sign bit
= - 16
Geser ke kanan 2 kali dengan bit kiri diberi 0 : >>> 2
0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 2 3 4 5 6 7 31 30 29 28 27
Sign bit
= 1073741820
0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 2 3 4 5 6 7 31 30 29 28 27
= 12 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 2 3 4 5 6 7 31 30 29 28 27
= - 13
& 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 3 4 5 6 7 31 30 29 28 27
Menggunakan Operator Bitwise
Untuk Mengubah Nilai (4)
 Operator ‘|’
 Operator ‘^’
0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 2 3 4 5 6 7 31 30 29 28 27
= 12 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 2 3 4 5 6 7 31 30 29 28 27
= - 13
| 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 2 3 4 5 6 7 31 30 29 28 27
= -1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 1 2 3 4 5 6 7 31 30 29 28 27
= 13 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 2 3 4 5 6 7 31 30 29 28 27
= - 13
1 1 1 0
1 1 1 1 1 1 1 1 1 1 0 1 2 3 4 5 6 7 31 30 29 28 27
Menggunakan Operator Bitwise
Untuk Mengubah Nilai (5)
 Operator ‘~’
0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 2 3 4 5 6 7 31 30 29 28 27
= 12
~
1 0 1 10
0 1 1 1 1 1 1 1 1 1 0 1 2 3 4 5 6 7 31 30 29 28 27
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
Prioritas Operator (2)
 Contoh 1:
int c = 12 * 3 +5 / (8 - 3) ;
Urutan Operasinya :
int c = 12 * 3 + 5 / 5 ; int c = 36 + 5 / 5;
int c = 36 + 1 ; int c = 37;
 Contoh 2:
int c = 3 + 4 >> 1 + 1 << 1; Urutan Operasinya :
int c = 7 >> 1 + 1 << 1; int c = 7 >> 2 << 1;
Promosi dan Type-Casting (1)
 Promosi
 proses pengubahan representasi bit variabel primitif dari representasi bit
yang lebih rendah ke representasi bit yang lebih tinggi
 Promosi karena assigning tipe data dengan
representasi bit yang lebih tinggi ke yang lebih rendah
 Contoh :
short a = 12;
int b = a ; // nilai a promosi ke integer
 Promosi karena assigning tipe data integral ke tipe
data floating-point
 Contoh :
Promosi dan Type-Casting(2)
 Type-Casting
 proses pengubahan representasi bit variabel primitif dari
representasi bit yang lebih tinggi ke representasi bit yang lebih rendah.
 Syntax :
identifier = (target_type) value ;  Contoh :
int num1 = 34; int num2 = 45;
short num3 = (short)(num1 + num2 );
Keterangan : (num1 + num2) menghasilkan nilai integer. Agar
nilainya dapat di-assign ke num3, dilakukan casting dengan
Promosi dan Type-Casting(3)
 Type-Casting merupakan proses pemotongan bit  Misalnya : Type-casting dari float ke int
 Contoh :
int num1;
long num2 = 123987654321L; num1 = (int)(num2);
num1 akan bernilai -566397263
0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 2 3 4 5 6 7 63 62 61 60 59
= 36 L
0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 2 3 4 5 6 7 31 30 29 28 27
Beberapa Catatan Promosi &
Casting (1)
 Operasi Aritmatika Menghasilkan Nilai di Luar Batas
Tipe Data
 Contoh :
int a = 55555; int b = 66666; int c = a * b System.out.println(c);
Output : -591337666 ( != 55555 * 66666 )
Solusi :
int a = 55555; long b = 66666; long c = a * b;
System.out.println(c);
Beberapa Catatan Promosi &
Casting (2)
 Asumsi dasar compiler untuk tipe data integer:
 Nilai yang di-assign tanpa penambahan keterangan apapun, diasumsikan sebagai nilai integer
 Jika pada suatu operasi aritmatika, operand-operand pada
ruas kanan berbeda tipe datanya ( semuanya masih termasuk tipe data integral ), dan semua tipe data merupakan tipe data yang representasi bitnya di bawah integer, maka hasil operasi aritmatika tersebut akan diasumsikan sebagai integer
 Jika pada suatu operasi aritmatika, operand-operand pada
Beberapa Catatan Promosi &
Casting (3)
 Asumsi dasar compiler untuk tipe data floating-point:  Nilai yang di-assign tanpa penambahan keterangan apapun
akan diasumsikan sebagai double
 Jika pada operasi aritmatika dengan semua operand pada ruas kanan menggunakan tipe data floating-point, maka hasil
operasi aritmatika tersebut direpresentasikan dengan tipe data yang mengikuti tipe data dengan representasi tertinggi pada ruas kanan operasi aritmatika tersebut
 Jika pada operasi aritmatika dengan sebagian operand pada ruas kanan menggunakan tipe data floating-point dan
sebagian menggunakan tipe data integral, maka hasil operasi aritmatika tersebut direpresentasikan dengan tipe data
Bab 6
MEMBUAT DAN
Daftar Isi
 Deklarasi Referensi Obyek, Instanstiasi Obyek, dan
Inisialisasi Obyek :
 Deklarasi Referensi Obyek
 Instanstiasi dan Inisialisasi Obyek
 Menggunakan Variabel Referensi Obyek untuk
Deklarasi Referensi Obyek (1)
 Selain Variabel Primitif, terdapat satu jenis variabel
lagi, yaitu : Variabel Referensi Obyek
 Ilustrasi :
Jl. Kalimantan F120 Yogyakarta
Deklarasi Referensi Obyek(2)
 Letak variabel referensi obyek pada memory :
STACK MEMORY
HEAP MEMORY
OBYEK
0x….
Deklarasi Referensi Obyek(3)
 Syntax :
Classname identifier ;
Inisialisasi Variabel Referensi
Obyek (1)
 Syntax :
Classname identifier = new Classname ( ) ;
atau
Classname identifier ;
identifier = new Classname ( );
Inisialisasi Variabel Referensi
Obyek(2)
 Hasil akhir pada memory :
STACK MEMORY
HEAP MEMORY
luasTanah = 100
0x…. 0x….
rumah1 rumah2
luasBangunan = 0 Harga = 0 luasTanah = 100 luasBangunan = 0
Harga = 0
Menggunakan Variabel Referensi
Obyek untuk Memanipulasi Data
Memindahkan Referensi dari Satu
Obyek ke Obyek yang Lain (1)
Memindahkan Referensi dari Satu
Obyek ke Obyek yang Lain (2)
Bab 7
MENGGUNAKAN CLASS
Daftar Isi
 Menggunakan Class String
 Instanstiasi String dengan Kata Kunci new  Instanstiasi String tanpa Kata Kunci new
 Penggunaan Operator ‘==‘ dan Method equals( ) untuk
Membandingkan Dua Buah String
 Investigasi Pustaka Class Java  Spesifikasi Pustaka Class Java
 Mempelajari Spesifikasi Pustaka Class-class Java untuk
Menggunakan Class String
 Keunikan String :
 Merupakan kumpulan karakter yang jumlahnya dari 0
sampai memori tidak mencukupi
 Dapat diinstanstiasi tanpa kata kunci new
Instanstiasi String dengan
new
 Instanstiasi String dengan new : JVM akan
membentuk 2 buah obyek :
 Obyek String : memuat referensi ke suatu String literal pada
literal pool.
 String literal : yang memuat karakter-karakter. String literal ini terletak pada literal pool
Instanstiasi String tanpa
new
 Instanstiasi String dengan new : JVM akan
membentuk 1 buah obyek :
 Obyek String : memuat referensi ke suatu String literal pada
literal pool.
 String literal akan dibentuk apabila representasi
Hasil Instanstiasi String
STACK MEMORY HEAP MEMORY 0xdef 0x0011f Literal Pool namaSiswa1 (without new) Adi 0xdef 0x0011f Adi 0xd77 namaSiswa2(with new) 0x0023g
0x0023g
namaSiswa3 ( without new)
Penggunaan ‘==‘ dan Method
equals( )
untuk Membandingkan dua buah String
 Penggunaan ‘==‘ : lebih menekankan apakah kedua obyek String tersebut menunjuk ke string literal yang sama
Investigasi Pustaka Class Java (1)
 Spesifikasi Pustaka Class-class Java : Java Software
Investigasi Pustaka Class Java (2)
 Menggunakan Spesifikasi Pustaka Java untuk
Mempelajari Method :
 Daftar Field
Bab 8
MENGGUNAKAN OPERATOR
DAN KONSTRUKSI
Daftar Isi
 Menggunakan Operator Relasional dan Kondisional  Operator Relasional
 Operator Kondisional
 Konstruksi Pengambilan Keputusan  Konstruksi if
Menggunakan Operator Relasional
dan Kondisional
 Operator Relasional digunakan untuk mengevaluasi
variabel
 Operator Kondisional digunakan untuk mengevaluasi
kondisi
 Operator Relasional dan Kondisional akan
Operator Relasional (1)
 Membandingkan suatu variabel dengan variabel lain,
atau variabel dengan sebuah nilai
Operator Relasional (2)
 Contoh 1 :
int i = 1;
System.out.println(i==1);
Keluaran : true
 Contoh 2 :
int i = 1;
System.out.println(i>1);
Operator Kondisional (1)
Operator Kondisional (2)
 Contoh 1 :
int i = 1; int j = 2;
System.out.println ( ( i < 1 ) && ( j > 0 ) ) ; Keluaran : false
 Contoh 2 :
int i = 1; int j = 2;
System.out.println ( ( i < 1) || ( j > 0) ) ;
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
(1)
 Konstruksi pengambilan keputusan dengan 2
kemungkinan keputusan.
If ( kondisi )
Code Block
Kondisi menghasilkan nilai true
Konstruksi
if
(2)
 Syntax
if ( boolean_expression ){
code block;
} //akhir dari konstruksi ‘if’ //program dilanjutkan
Konstruksi
if … else
(1)
 Digunakan sebagai konstruksi pengambilan
keputusan yang memiliki beberapa kemungkinan keputusan.
If ( kondisi_1 )
Blok Program 1
Blok Program 2
Kondisi_1 menghasilkan nilai true
Kondisi_1 menghasilkan nilai false
else if
( kondisi_2 )
Blok Program 3
else
Kondisi_2 menghasilkan nilai false
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)
Konstruksi
switch(1
)
 Digunakan untuk mengambil keputusan yang
mengevaluasi kemungkinan-kemungkinan nilai dari variabel yang dievaluasi
Evaluasi variabel
Code_block_1 Code_block_2 Code_block_default Variabel =
nilai_1
Variabel = nilai_2
Semua kemungkinan nilai tidak sama dengan nilai
variabel
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
)
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
Bab 9
Daftar Isi
 Konstruksi Loop
 Membuat Loop Menggunakan While
 Membuat Loop Menggunakan For
 Membuat Loop Menggunakan Do/While  Loop Bersarang ( Nested 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
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
Konstruksi
while
(2)
Konstruksi
while
(3)
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
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]){
Konstruksi
for
(2)
Konstruksi
for
(3)
Konstruksi
do…while
 Mirip dengan konstruksi while
 Perbedaan dengan konstruksi while :
 Looping dijalankan terlebih dahulu
 Dilakukan pemeriksaan kondisi
Loop Bersarang
(
Nested Loop
) (1)
 Looping di dalam Looping dapat diterapkan pada
pemrograman Java
 Konstruksi yang digunakan dalam nested loop tidak
dibatasi
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 membuatiterasi dengan jumlah iterasi yang tidak pasti , dan untuk jumlah iterasi
dari satu sampai beberapa kali
 Konstruksi for : lebih tepat digunakan untuk membuat iterasi
Bab 10
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
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
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)
Membuat dan Memanggil
(
Invoke
) Method(3)
Membuat dan Memanggil
(
Invoke
) Method(4)
Memanggil Method dari Class
yang Berbeda
 Contoh :
 Syntax :
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
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( );
Mengembalikan Nilai (1)
 Method dengan return_type bukan void dapat
mengembalikan nilai
 Nilai dikembalikan ke method lain yang memanggil
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
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
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,
Overloading pada Method(2)
Overloading pada Method(3)
Overloading pada Method(4)
Overloading pada Java API
 Pada Spesifikasi Java API, terdapat method-method
overload.
 Contoh : pada class PrintStream, terdapat
method-method overload :
 print (boolean b)  print (char c)
 print (char[ ] ca)  print (double d )  print (int i )
Bab 11
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 ( )
Mendeklarasikan Method Statik
 Syntax
[modifiers] static return_type method_identifier( [arguments ]){
Memanggil Method Statik
 Syntax
<class_name> . <method_identifier(arguments)> ;
 Perbedaan pemanggilan method statik dan
non-statik adalah :
 Pemanggilan method statik dilakukan tanpa
menginstanstiasi obyek, tetapi langsung menuliskan nama class.
 Pemanggilan method non-statik dilakukan dengan
Mendeklarasikan Variabel Statik
 Syntax
[modifiers] static data_type identifier = value;
 Perbedaan pemanggilan variabel statik dan
non-statik adalah :
 Pemanggilan variabel statik dilakukan tanpa
menginstanstiasi obyek, tetapi langsung menuliskan nama class.
 Pemanggilan variabel non-statik dilakukan dengan
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 static double abs (double a)
 Public static double cos (double c)
 Public static double exp (double e)
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
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
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
Bab 12
Daftar Isi
 Menggunakan Enkapsulasi  Visibility Modifier
 Modifier public
 Potensi Masalah dengan modifier public  Modifier private
 Interface dan Implementasinya
 Mendeskripsikan Variable Scope
 Penempatan Variabel Instans dan Variabel Lokal di
Memori
 Konstruktor
 Mendefinisikan Konstruktor
 Konstruktor Default
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
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
Visibility Modifier
 Visibility Modifier adalah modifier-modifier yang
memberi batasan kemampuan variabel atau method untuk diakses
 Beberapa visibility modifier :
Potensi Masalah dengan
Atribut
public
Potensi Masalah dengan
Atribut
public
 Contoh :
Modifier
private
(1)
 Modifier private membatasi aksesibilitas variabel
atau method, sehingga hanya dapat diakses oleh variabel atau method dari class yang sama.
Modifier
private
(2)
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
Interface dan Impementasinya (2)
Interface dan Impementasinya (3)
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 dapatPenempatan 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
Penempatan Instance Variable dan
Local Variable pada Memori(2)
STACK MEMORY HEAP MEMORY 0x0ab7 lumbungDesaSukatani persediaan jumlahDiambil jumlahDimasukkan 0x0abc pesan 0x23ff
Konstruktor
 Konstruktor adalah struktur yang mirip dengan
Pendefinisian Konstruktor
 Syntax pendefinisian konstruktor : [modifiers] class className {
[modifiers] ConstructorName([arguments]) { code_block;
}
}
Konstruktor Default
 Jika pada suatu class tidak didefinisikan satu konstruktor
Konstruktor Overload(1)
 Dalam satu class dapat didefinisikan lebih dari 1
konstruktor
 Setiap konstruktor tidak boleh mempunyai komposisi
argumen yang sama dengan konstruktor lain