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