java fundamentals - · pdf filedipanggil secara otomatis ketika new digunakan untuk membuat...
TRANSCRIPT
![Page 1: Java Fundamentals - · PDF fileDipanggil secara otomatis ketika new digunakan untuk membuat instan class Sifat konstruktor: ... •Tongkat transmisi (gigi) pada mobil •Tombol on/off/pengaturan](https://reader034.vdocuments.site/reader034/viewer/2022042611/5a740e627f8b9a9c548b93e8/html5/thumbnails/1.jpg)
Java Fundamentals
Herman Tolle http://hermantolle.com/class
Program Teknologi Informasi & Ilmu Komputer
UNIVERSITAS BRAWIJAYA
![Page 2: Java Fundamentals - · PDF fileDipanggil secara otomatis ketika new digunakan untuk membuat instan class Sifat konstruktor: ... •Tongkat transmisi (gigi) pada mobil •Tombol on/off/pengaturan](https://reader034.vdocuments.site/reader034/viewer/2022042611/5a740e627f8b9a9c548b93e8/html5/thumbnails/2.jpg)
Konstruktor, Overloading, Abstraksi, Enkapsulasi
2. Konsep Dasar Pemrograman Berorientasi Objek
![Page 3: Java Fundamentals - · PDF fileDipanggil secara otomatis ketika new digunakan untuk membuat instan class Sifat konstruktor: ... •Tongkat transmisi (gigi) pada mobil •Tombol on/off/pengaturan](https://reader034.vdocuments.site/reader034/viewer/2022042611/5a740e627f8b9a9c548b93e8/html5/thumbnails/3.jpg)
KONSTRUKTOR
![Page 4: Java Fundamentals - · PDF fileDipanggil secara otomatis ketika new digunakan untuk membuat instan class Sifat konstruktor: ... •Tongkat transmisi (gigi) pada mobil •Tombol on/off/pengaturan](https://reader034.vdocuments.site/reader034/viewer/2022042611/5a740e627f8b9a9c548b93e8/html5/thumbnails/4.jpg)
Konstruktor -1-
Method yang digunakan untuk memberi nilai awal pada saat object diciptakan
Dipanggil secara otomatis ketika new digunakan untuk membuat instan class
Sifat konstruktor:
•Nama konstruktor sama dengan nama class
•Tidak memiliki nilai balik dan tidak boleh ada kata kunci void
![Page 5: Java Fundamentals - · PDF fileDipanggil secara otomatis ketika new digunakan untuk membuat instan class Sifat konstruktor: ... •Tongkat transmisi (gigi) pada mobil •Tombol on/off/pengaturan](https://reader034.vdocuments.site/reader034/viewer/2022042611/5a740e627f8b9a9c548b93e8/html5/thumbnails/5.jpg)
Konstruktor -2- public class Mobil {
String warna;
int tahunProduksi;
public Mobil(String warna, int tahunProduksi){
this.warna = warna;
this.tahunProduksi = tahunProduksi;
}
public void info(){
System.out.println("Warna: " + warna);
System.out.println("Tahun: " + tahunProduksi);
}
}
public class MobilKonstruktor{
public static void main(String[] args){
Mobil mobilku = new Mobil(“Merah”, 2003);
mobilku.info();
}
}
Mobil.java
MobilKonstruktor.java
![Page 6: Java Fundamentals - · PDF fileDipanggil secara otomatis ketika new digunakan untuk membuat instan class Sifat konstruktor: ... •Tongkat transmisi (gigi) pada mobil •Tombol on/off/pengaturan](https://reader034.vdocuments.site/reader034/viewer/2022042611/5a740e627f8b9a9c548b93e8/html5/thumbnails/6.jpg)
Kata Kunci this Digunakan pada pembuatan class dan digunakan
untuk menyatakan object sekarang
public class Mobil{
String warna;
int tahunProduksi;
void isiData(String aWarna,
int aTahunProduksi){
warna = aWarna;
tahunProduksi = aTahunProduksi;
}
public class Mobil{
String warna;
int tahunProduksi;
void isiData(String warna, int tahunProduksi){
this.warna = warna;
this.tahunProduksi = tahunProduksi;
}
![Page 7: Java Fundamentals - · PDF fileDipanggil secara otomatis ketika new digunakan untuk membuat instan class Sifat konstruktor: ... •Tongkat transmisi (gigi) pada mobil •Tombol on/off/pengaturan](https://reader034.vdocuments.site/reader034/viewer/2022042611/5a740e627f8b9a9c548b93e8/html5/thumbnails/7.jpg)
Latihan
1. Buat class Bank
• Buat konstruktor class Bank dengan parameter: saldo
• Buat method: simpanUang, ambilUang, dan getSaldo
2. Buat class BankBeraksi, tetapkan saldo awal lewat konstruktur Rp. 100000, jalankan 3 method di atas, dan tampilkan proses sebagai berikut:
Selamat Datang di Bank ABC Saldo saat ini: Rp. 100000 Simpan uang: Rp. 500000 Saldo saat ini: Rp. 600000 Ambil uang: Rp. 150000 Saldo saat ini: Rp. 450000
![Page 8: Java Fundamentals - · PDF fileDipanggil secara otomatis ketika new digunakan untuk membuat instan class Sifat konstruktor: ... •Tongkat transmisi (gigi) pada mobil •Tombol on/off/pengaturan](https://reader034.vdocuments.site/reader034/viewer/2022042611/5a740e627f8b9a9c548b93e8/html5/thumbnails/8.jpg)
public class Bank { double saldo; Bank(double S) { this.saldo = S; System.out.println(“Selamat Datang di
Bank ABC“); this.cekSaldo(); } void cekSaldo() { System.out.println(“Saldo saat ini Rp
“+saldo); }
void AmbilUang(double S) { if (this.saldo-S>=0) { this.saldo -= S; System.out.println(“Ambil Uang Rp “+S); } else System.out.println(“Saldo tidak mencukupi”); this.cekSaldo(); } void SimpanUang(double S) { this.saldo += S; System.out.println(“Simpan Uang Rp “+S); this.cekSaldo(); }
![Page 9: Java Fundamentals - · PDF fileDipanggil secara otomatis ketika new digunakan untuk membuat instan class Sifat konstruktor: ... •Tongkat transmisi (gigi) pada mobil •Tombol on/off/pengaturan](https://reader034.vdocuments.site/reader034/viewer/2022042611/5a740e627f8b9a9c548b93e8/html5/thumbnails/9.jpg)
Public class BankBeraksi {
Bank rekeningKu = new Bank(100000);
cekSaldo();
SimpanUang(50000);
AmbilUang(150000);
cekSaldo();
}
![Page 10: Java Fundamentals - · PDF fileDipanggil secara otomatis ketika new digunakan untuk membuat instan class Sifat konstruktor: ... •Tongkat transmisi (gigi) pada mobil •Tombol on/off/pengaturan](https://reader034.vdocuments.site/reader034/viewer/2022042611/5a740e627f8b9a9c548b93e8/html5/thumbnails/10.jpg)
OVERLOADING KONSTRUKTOR
![Page 11: Java Fundamentals - · PDF fileDipanggil secara otomatis ketika new digunakan untuk membuat instan class Sifat konstruktor: ... •Tongkat transmisi (gigi) pada mobil •Tombol on/off/pengaturan](https://reader034.vdocuments.site/reader034/viewer/2022042611/5a740e627f8b9a9c548b93e8/html5/thumbnails/11.jpg)
Overloading terhadap konstruktor merupakan suatu mekanisme pembuatan konstruktor yang memiliki bentuk lebih dari satu.
Pembeda antara satu konstruktor dengan konstruktor yang lain berupa jumlah parameter atau tipe parameter.
![Page 12: Java Fundamentals - · PDF fileDipanggil secara otomatis ketika new digunakan untuk membuat instan class Sifat konstruktor: ... •Tongkat transmisi (gigi) pada mobil •Tombol on/off/pengaturan](https://reader034.vdocuments.site/reader034/viewer/2022042611/5a740e627f8b9a9c548b93e8/html5/thumbnails/12.jpg)
class mobil { private String warna; private int tahun; public mobil(String warna, int tahun) // konstruktor-1 { this.warna = warna; this.tahun = tahun; } public mobil() // konstruktor-2 { } public void info() { System.out.println("Warna mobil saya : "+
this.warna); System.out.println("Dibuat tahun : "+
this.tahun); } }
public class konstruktor1 {
public static void main (String[] args)
{ mobil mobilku = new mobil("Silver",2008); mobilku.info(); mobil mobilmu = new mobil(); mobilmu.info(); mobil mobilnya = new mobil(“White",2005); mobilnya.info(); }
}
![Page 13: Java Fundamentals - · PDF fileDipanggil secara otomatis ketika new digunakan untuk membuat instan class Sifat konstruktor: ... •Tongkat transmisi (gigi) pada mobil •Tombol on/off/pengaturan](https://reader034.vdocuments.site/reader034/viewer/2022042611/5a740e627f8b9a9c548b93e8/html5/thumbnails/13.jpg)
ABSTRAKSI & ENKAPSULASI
![Page 14: Java Fundamentals - · PDF fileDipanggil secara otomatis ketika new digunakan untuk membuat instan class Sifat konstruktor: ... •Tongkat transmisi (gigi) pada mobil •Tombol on/off/pengaturan](https://reader034.vdocuments.site/reader034/viewer/2022042611/5a740e627f8b9a9c548b93e8/html5/thumbnails/14.jpg)
Abstraction
Cara kita melihat suatu sistem dalam bentuk yang lebih sederhana, yaitu sebagai suatu kumpulan subsistem (object) yang saling berinteraksi.
• Mobil adalah kumpulan sistem pengapian, sistem kemudi, sistem pengereman
Alat meng-abstraksikan sesuatu adalah class
Object bersifat modularity. Object dapat ditulis dan dimaintain terpisah (independen) dari object lain
![Page 15: Java Fundamentals - · PDF fileDipanggil secara otomatis ketika new digunakan untuk membuat instan class Sifat konstruktor: ... •Tongkat transmisi (gigi) pada mobil •Tombol on/off/pengaturan](https://reader034.vdocuments.site/reader034/viewer/2022042611/5a740e627f8b9a9c548b93e8/html5/thumbnails/15.jpg)
![Page 16: Java Fundamentals - · PDF fileDipanggil secara otomatis ketika new digunakan untuk membuat instan class Sifat konstruktor: ... •Tongkat transmisi (gigi) pada mobil •Tombol on/off/pengaturan](https://reader034.vdocuments.site/reader034/viewer/2022042611/5a740e627f8b9a9c548b93e8/html5/thumbnails/16.jpg)
![Page 17: Java Fundamentals - · PDF fileDipanggil secara otomatis ketika new digunakan untuk membuat instan class Sifat konstruktor: ... •Tongkat transmisi (gigi) pada mobil •Tombol on/off/pengaturan](https://reader034.vdocuments.site/reader034/viewer/2022042611/5a740e627f8b9a9c548b93e8/html5/thumbnails/17.jpg)
Encapsulation
Mekanisme menyembunyikan suatu proses dan data dalam sistem untuk menghindari interferensi, dan menyederhanakan penggunaan proses itu sendiri
• Tongkat transmisi (gigi) pada mobil
• Tombol on/off/pengaturan suhu pada AC
Class access level (public, protected, private) adalah implementasi dari konsep encapsulation
Enkapsulasi data dapat dilakukan dengan cara:
1. mendeklarasikan instance variable sebagai private
2. mendeklarasikan method yang sifatnya public untuk mengakses variable tersebut
![Page 18: Java Fundamentals - · PDF fileDipanggil secara otomatis ketika new digunakan untuk membuat instan class Sifat konstruktor: ... •Tongkat transmisi (gigi) pada mobil •Tombol on/off/pengaturan](https://reader034.vdocuments.site/reader034/viewer/2022042611/5a740e627f8b9a9c548b93e8/html5/thumbnails/18.jpg)
Encapsulation dan Access Modifier
Modifier Dalam Class yang Sama
Dalam Package yang Sama
Dalam SubClass
Dalam Package Lain
private
tanpa tanda
protected
public
![Page 19: Java Fundamentals - · PDF fileDipanggil secara otomatis ketika new digunakan untuk membuat instan class Sifat konstruktor: ... •Tongkat transmisi (gigi) pada mobil •Tombol on/off/pengaturan](https://reader034.vdocuments.site/reader034/viewer/2022042611/5a740e627f8b9a9c548b93e8/html5/thumbnails/19.jpg)
Encapsulation
Enkapsulasi data juga dapat dilakukan dengan cara:
1. mendeklarasikan instance variable sebagai private
2. mendeklarasikan method yang sifatnya public untuk mengakses variable tersebut
![Page 20: Java Fundamentals - · PDF fileDipanggil secara otomatis ketika new digunakan untuk membuat instan class Sifat konstruktor: ... •Tongkat transmisi (gigi) pada mobil •Tombol on/off/pengaturan](https://reader034.vdocuments.site/reader034/viewer/2022042611/5a740e627f8b9a9c548b93e8/html5/thumbnails/20.jpg)
Diagram Class
BANK
private Saldo: double;
Bank (double S);
public AmbilUang(double S);
public SimpanUang(double S);
public cekSaldo(double S);
![Page 21: Java Fundamentals - · PDF fileDipanggil secara otomatis ketika new digunakan untuk membuat instan class Sifat konstruktor: ... •Tongkat transmisi (gigi) pada mobil •Tombol on/off/pengaturan](https://reader034.vdocuments.site/reader034/viewer/2022042611/5a740e627f8b9a9c548b93e8/html5/thumbnails/21.jpg)
Contoh
public class Bank { private double saldo; Bank(double S) { this.saldo = S; System.out.println(“Selamat Datang di
Bank ABC“); this.cekSaldo(); } public void cekSaldo() { System.out.println(“Saldo saat ini Rp
“+saldo); }
void AmbilUang(double S) { if (this.saldo-S>=0) { this.saldo -= S; System.out.println(“Ambil Uang Rp “+S); } else System.out.println(“Saldo tidak mencukupi”); this.cekSaldo(); } void SimpanUang(double S) { this.saldo += S; System.out.println(“Simpan Uang Rp “+S); this.cekSaldo(); }
![Page 22: Java Fundamentals - · PDF fileDipanggil secara otomatis ketika new digunakan untuk membuat instan class Sifat konstruktor: ... •Tongkat transmisi (gigi) pada mobil •Tombol on/off/pengaturan](https://reader034.vdocuments.site/reader034/viewer/2022042611/5a740e627f8b9a9c548b93e8/html5/thumbnails/22.jpg)
Latihan
Buat Diagram Class dan implementasi Program dalam bentuk Class dan penggunaan Kelas tersebut.
Studi Kasus: Menghitung gaji harian PT. XYZ dengan ketentuan :
• Gaji pokok karyawan Rp. 5000/jam
• Bila karyawan bekerja lebih dari 7 jam/hari maka kelebihannya dihitung lembur yang besarnya 1.5 dari gaji pokok
• Untuk karyawan yang bekerja 8 jam/hari atau lebih akan mendapat tambahan uang makan sebesar Rp. 7500
• Karyawan yang bekerja 9 jam/hari atau lebih akan mendapat uang transport lembur sebesar Rp. 10000
Input : NIP, Nama, Jumlah jam kerja
Output : NIP, Nama, Gaji pokok, Lembur, Uang makan, Transport lembur , Take Home Pay (total gaji diterima)
![Page 23: Java Fundamentals - · PDF fileDipanggil secara otomatis ketika new digunakan untuk membuat instan class Sifat konstruktor: ... •Tongkat transmisi (gigi) pada mobil •Tombol on/off/pengaturan](https://reader034.vdocuments.site/reader034/viewer/2022042611/5a740e627f8b9a9c548b93e8/html5/thumbnails/23.jpg)
Diagram Class
PEGAWAI
Nama: string;
NIP: string;
gajiPokok, lembur, uangMakan,
transport: double;
jumlahJamKerja: integer;
pegawai(Nama, NIP);
pegawai(Nama, NIP, jamKerja);
void setJamKerja();
void hitungGajiHarian();
void cetakPenghasilan();
• fungsi setJamKerja() untuk mengakses (memberi nilai) atribut jumlahJamKerja;
• Business process perhitungan gaji dilakukan dalam fungsi hitungGajiHarian(), sekaligus untuk mengakses atribut lain.
• Fungsi cetakPenghasilan() untuk menampilkan isi dari atribut-atribut yang ada
![Page 24: Java Fundamentals - · PDF fileDipanggil secara otomatis ketika new digunakan untuk membuat instan class Sifat konstruktor: ... •Tongkat transmisi (gigi) pada mobil •Tombol on/off/pengaturan](https://reader034.vdocuments.site/reader034/viewer/2022042611/5a740e627f8b9a9c548b93e8/html5/thumbnails/24.jpg)
QUIZ
Apa yang dimaksud dengan KONSTRUKTOR?
Apa yang dimaksud dengan OVERLOADING
KONSTRUKTOR?
Apa yang dimaksud dengan ABSTRAKSI?
Apa yang dimaksud dengan ENKAPSULASI
![Page 25: Java Fundamentals - · PDF fileDipanggil secara otomatis ketika new digunakan untuk membuat instan class Sifat konstruktor: ... •Tongkat transmisi (gigi) pada mobil •Tombol on/off/pengaturan](https://reader034.vdocuments.site/reader034/viewer/2022042611/5a740e627f8b9a9c548b93e8/html5/thumbnails/25.jpg)
TUGAS
Set Setiap Atribut dari kelas tersebut adalah private
Set setiap method dari kelas tersebut adalah public
Selesaikan latihan sebelumnya, rampungkan sebagai sebuah tugas (Soal, Jawaban, Diagram Class, Source Code, Screenshot)
Buat implementasi kelas Pegawai untuk kasus minimal 2 orang pegawai dengan jam kerja berbeda, masing-masing menggunakan konstruktor yang berbeda
Deadline Tugas: Senin 10 Maret 2014
![Page 26: Java Fundamentals - · PDF fileDipanggil secara otomatis ketika new digunakan untuk membuat instan class Sifat konstruktor: ... •Tongkat transmisi (gigi) pada mobil •Tombol on/off/pengaturan](https://reader034.vdocuments.site/reader034/viewer/2022042611/5a740e627f8b9a9c548b93e8/html5/thumbnails/26.jpg)
Referensi
1. Sharon Zakhour et al, The Java Tutorial Fourth Edition, http://java.sun.com/docs/books/tutorial
2. Cay Horstmann, Big Java: Earl Objects 5th Edition, John Wiley & Sons, 2013
3. Deitel & Deitel, Java Howto Program 9th Edition, Prentice Hall, 2012
4. Richard M. Reese, Oracle Certified Associate Java SE 7 Programmer Study Guide, Packt Publishing, 2012
5. Walter Savitch, Absolute Java 5th Edition, Pearson Education, 2013
6. Mark Allen Weiss, Data Structures and Algorithm Analysis in Java 3rd Edition, Pearson Education, 2012
7. Anany Levitin, Introduction to the Design and Analysis of Algorithms 3rd Edition, Pearson Education, 2012
8. Ying Bai, Practical Database Programming with Java, John Wiley & Sons, 2011
Slide presentasi ini dimodifikasi dari slide yang diperoleh dari website: romisatriowahono.net karya Bapak Romi Satrio Wahono