Java Fundamentals - HACKED By FiHACK · Program Teknologi Informasi & Ilmu Komputer ... Jumlah...

30
Java Fundamentals Herman Tolle http://hermantolle.com/class Program Teknologi Informasi & Ilmu Komputer UNIVERSITAS BRAWIJAYA

Transcript of Java Fundamentals - HACKED By FiHACK · Program Teknologi Informasi & Ilmu Komputer ... Jumlah...

Java Fundamentals

Herman Tollehttp://hermantolle.com/class

Program Teknologi Informasi & Ilmu Komputer

UNIVERSITAS BRAWIJAYA

Konstruktor, Overloading, Abstraksi, Enkapsulasi

2. Konsep Dasar Pemrograman Berorientasi Objek

KONSTRUKTOR

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

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

Kata Kunci thisDigunakan 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;

}

}

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 ABCSaldo saat ini: Rp. 100000

Simpan uang: Rp. 500000Saldo saat ini: Rp. 600000

Ambil uang: Rp. 150000Saldo saat ini: Rp. 450000

public class Bank{

double saldo;

Bank(double S) {this.saldo = S;

System.out.println(“Selamat Datangdi Bank ABC“);this.cekSaldo();

}

void cekSaldo() {System.out.println(“Saldo saat iniRp “+saldo);}

void AmbilUang(double S) {if (this.saldo-S>=0){

this.saldo -= S;System.out.println(“Ambil Uang Rp “+S);

}elseSystem.out.println(“Saldo tidak mencukupi”);this.cekSaldo();

}

void SimpanUang(double S) {this.saldo += S;System.out.println(“Simpan Uang Rp “+S);this.cekSaldo();

}

public class BankBeraksi {

Bank rekeningKu = new Bank(100000);

cekSaldo();

SimpanUang(50000);

AmbilUang(150000);

cekSaldo();

}

OVERLOADING KONSTRUKTOR

Overloading Konstruktor

Overloading terhadap konstruktor merupakan suatu mekanisme pembuatan konstruktor yang memiliki bentuk lebih dari satu.

Ada lebih dari 1 konstruktor dalam sebuah Kelas

Pembeda antara satu konstruktor dengan konstruktor yang lain berupa jumlah parameter atau tipe parameter.

Konsep overloading konstruktor mirip dengankonsep overloading method

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{this.warna = “Putih”;this.tahun = 2000;}

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();

}

}

Latihan

Modifikasi kelas Segitiga dengan menambahkankonstruktor

Buat lebih dari 1 konstruktor dengan fungsi masing-masing sbb:

• Konstruktor Kosong

• Konstruktor dengan 2 input integer (alas & tinggi)

• Konstruktor dengan 1 input integer (alas = tinggi)

Buatlah sebuah program yang mengimplementasi kelassegitiga untuk menghitung luas segitiga (2 segitiga ygberbeda)

QUIZ

Apa yang dimaksud dengan KONSTRUKTOR?

Apa yang dimaksud dengan OVERLOADING

KONSTRUKTOR?

Tugas 01: Buat KelasHP/TV/Radio dan

Contoh Programnya. Gunakan Konstruktor

Deadline: 1 Maret 2015

TUGAS

Tugas 01: Buat KelasHP/TV/Radio dan

Contoh Programnya.

Seperti informasisebelumnya, tetapi

tambahkan Konstruktor

Send to email, Deadline: 1 Maret 2015

ABSTRAKSI & ENKAPSULASI

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 untuk meng-abstraksikan sesuatu adalahclass

Object bersifat modularity. Object dapat ditulis dan dimaintain terpisah (independen) dari object lain

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

Encapsulation dan Access Modifier

ModifierDalam Class yang Sama

Dalam Package yang Sama

Dalam SubClass

Dalam Package Lain

private

tanpa tanda

protected

public

Encapsulation

Enkapsulasi data juga dapat dilakukan dengan cara:

1. mendeklarasikan instance variable sebagai private

2. mendeklarasikan method yang sifatnya public untuk mengakses variable tersebut

Diagram Class

BANK

private Saldo: double;

Bank (double S);

public AmbilUang(double S);

public SimpanUang(double S);

public cekSaldo(double S);

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);

}elseSystem.out.println(“Saldo tidak mencukupi”);this.cekSaldo();

}

void SimpanUang(double S) {this.saldo += S;System.out.println(“Simpan Uang Rp “+S);this.cekSaldo();

}

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)

Jumlah Total Pegawai dan Gaji Total Semua Pegawai

Diagram Class

PEGAWAI

-Nama: string;

-NIP: string;

-gajiPokok, lembur, uangMakan,

transport, totalGaji: double;

-jumlahJamKerja: integer;

-jumlahPegawai: integer static;

-totalGajiPegawai: double static;

+pegawai(Nama, NIP);

+pegawai(Nama, NIP, jamKerja);

+void setJamKerja();

+void hitungGajiHarian();

+void cetakPenghasilan();

+getJumlahPegawai();

+getGajiTotalPegawai();

KELAS PEGAWAI

• 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

public class Pegawai {

private String Nama, NIP;

private double gajiPokok, uangLembur, uangMakan, uangTransport, totalGaji;

private jamKerja;

private static int JumlahPegawai = 0;

private static double totalGajiPegawai = 0;

public Pegawai(String No, String Nm, int J) {

this.Nama = Nm; this.NIP = No; this.jamKerja = J;

gajiPokok = uangLembur = … = totalGaji = 0;

JumlahPegawai++;

}

public hitungGaji() {

if (jamKerja <= 7) gajiPokok = jamKerja*5000;

else { gajiPokok = 7*5000; uangLembur = (jamKerja-7)*7500; }

… totalGaji = gajiPokok + uangLembur + uangMakan + uangTransport;

totalGajiPegawai += totalGaji;

QUIZ

Apa yang dimaksud dengan KONSTRUKTOR?

Apa yang dimaksud dengan OVERLOADING

KONSTRUKTOR?

Apa yang dimaksud dengan ABSTRAKSI?

Apa yang dimaksud dengan ENKAPSULASI

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

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