• Tidak ada hasil yang ditemukan

Java Fundamentals. Herman Tolle. Program Teknologi Informasi & Ilmu Komputer UNIVERSITAS BRAWIJAYA

N/A
N/A
Protected

Academic year: 2021

Membagikan "Java Fundamentals. Herman Tolle. Program Teknologi Informasi & Ilmu Komputer UNIVERSITAS BRAWIJAYA"

Copied!
30
0
0

Teks penuh

(1)

Java Fundamentals

Herman Tolle

http://hermantolle.com/class

Program Teknologi Informasi & Ilmu Komputer

UNIVERSITAS BRAWIJAYA

(2)

Konstruktor, Overloading, Abstraksi,

Enkapsulasi

2. Konsep Dasar Pemrograman

Berorientasi Objek

(3)
(4)

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

(5)

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

(6)

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;

}

}

(7)

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

(8)

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

(9)

public class BankBeraksi {

Bank rekeningKu = new Bank(100000);

cekSaldo();

SimpanUang(50000);

AmbilUang(150000);

cekSaldo();

(10)

OVERLOADING

KONSTRUKTOR

(11)

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 dengan

konsep overloading method

(12)

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

} }

(13)

Latihan

Modifikasi kelas Segitiga dengan menambahkan

konstruktor

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 kelas

segitiga untuk menghitung luas segitiga (2 segitiga yg

berbeda)

(14)

QUIZ

Apa yang dimaksud dengan

KONSTRUKTOR?

Apa yang dimaksud

dengan OVERLOADING

KONSTRUKTOR?

Tugas 01: Buat Kelas

HP/TV/Radio dan

Contoh Programnya.

Gunakan Konstruktor

Deadline: 1 Maret 2015

(15)

TUGAS

Tugas 01: Buat Kelas

HP/TV/Radio dan

Contoh Programnya.

Seperti informasi

sebelumnya, tetapi

tambahkan Konstruktor

Send to email,

Deadline: 1 Maret 2015

(16)
(17)

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 adalah

class

Object bersifat

modularity

. Object dapat ditulis

dan

dimaintain terpisah (independen)

dari object

lain

(18)
(19)
(20)

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

(21)

Encapsulation dan Access Modifier

Modifier

Dalam Class

yang Sama

Dalam

Package yang

Sama

Dalam

SubClass

Dalam

Package Lain

private

tanpa

tanda

protected

public

(22)

Encapsulation

Enkapsulasi data juga dapat dilakukan dengan cara:

1.

mendeklarasikan

instance variable

sebagai

private

2.

mendeklarasikan

method

yang sifatnya

public

untuk

mengakses variable tersebut

(23)

Diagram Class

BANK

private Saldo: double; Bank (double S);

publicAmbilUang(double S);

public SimpanUang(double S);

(24)

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

(25)

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)

(26)

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

(27)

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;

(28)

QUIZ

Apa yang dimaksud dengan

KONSTRUKTOR?

Apa yang dimaksud

dengan OVERLOADING

KONSTRUKTOR?

Apa yang dimaksud dengan

ABSTRAKSI?

Apa yang dimaksud

dengan ENKAPSULASI

(29)

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

(30)

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 5

th

Edition

, John Wiley & Sons, 2013

3.

Deitel & Deitel,

Java Howto Program 9

th

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 5

th

Edition

, Pearson Education, 2013

6.

Mark Allen Weiss,

Data Structures and Algorithm Analysis in Java 3

rd

Edition

,

Pearson Education, 2012

7.

Anany Levitin,

Introduction to the Design and Analysis of Algorithms 3

rd

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

Gambar

Diagram Class

Referensi

Dokumen terkait

technologynya dari gangguan, tidak ada Disaster recovery plan dan juga tidak ada tindakan preventif untuk sesuatu yang berpotensial jadi masalah 49,27 HH Critical

Menurut anda apakah pelayanan yang diberikan sudah mampu memecahkan permasalahan yang muncul dalam pelaksanaan program MPLIK.. Apakah sarana dan prasarana yang

Menurut Brigham and Gapenski (1997) terdapat beberapa keuntungan dari utang jangka panjang, yaitu: 1) kreditur memperoleh return terbatas sehingga pemegang saham tidak

Dalam suatu sistem informasi akuntansi terkandung unsur pengendalian, maka baik buruknya sistem informasi akuntansi sangat mempengaruhi kualitas informasi yang akan

For the CSR disclosure, we analysed the 2012 published reports such as annual report, audited financial statements, and report of good corporate governance practices; while for

mate, made a pursuing flight to pursue uapon detecting a mate, hovering and touching the perched female for courting, mounting and grasping the female, flew in tandem to

Bagian cetakkan atau matress pada mesin injeksi tidak baik karena terdapat angin yang terjebak pada matress sehingga membuat bagian atas tutup botol oli AHM biru berlubang.

Hasil penelitian ini menunjukkan bahwa pegawai Bank BPD Kaltim Syariah Cabang Samarinda sudah cukup tanggap dalam memberikan pelayanan kepada para nasabah/ konsumen