• 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!
56
0
0

Teks penuh

(1)

Java Fundamentals

Herman Tolle

http://hermantolle.com/class

Program Teknologi Informasi & Ilmu Komputer

UNIVERSITAS BRAWIJAYA

(2)

Class , Object, Method, Attribute

1.3 Konsep Dasar Pemrograman

Berorientasi Objek

(3)

Berorientasi Objek?

Attribute:

Topi, Baju, Jaket,

Tas Punggung,

Tangan, Kaki, Mata

Behavior:

Cara

Jalan ke Depan

Cara

Jalan Mundur

Cara

Belok ke Kiri

(4)

Berorientasi Objek?

Attribute (State):

Ban, Stir, Pedal Rem, Pedal Gas,

Warna, Tahun Produksi

Behavior:

Cara Menghidupkan Mesin

Cara Manjalankan Mobil

Cara Memundurkan Mobil

Attribute  Variable(Member)

Behavior  Method(Fungsi)

(5)

Perbedaan Class dan Object

Class:

konsep

dan

deskripsi

dari sesuatu

Class mendeklarasikan

method

yang dapat digunakan

(dipanggil) oleh object

Object:

instance dari class

, bentuk (contoh)

nyata dari class

Object memiliki sifat

independen

dan dapat digunakan untuk

memanggil method

Contoh Class dan Object:

Class:

mobil

(6)

Perbedaan Class dan Object

Class seperti

cetakan kue

, dimana kue yg

dihasilkan dari cetakan kue itu adalah

object

Warna kue bisa bermacam-macam meskipun

berasal dari cetakan yang sama (

object

(7)

Class = Method + Variable

variable

kecepatan

gir

tampilkan kecepatan

ubah gir

method

(8)

Object = Method + Variable yg Memiliki Nilai

instance

variable

kecepatan = 10km/jam

gir = 3

tampilkan kecepatan ()

kecepatan = 10 km/jam

ubah gir (2)

gir = 5

instance

method

Object

Sepedaku

(9)

Attribute

Variable

yang mengitari class, dengan

nilai datanya

bisa ditentukan di object

Variable digunakan untuk

menyimpan nilai

yang

nantinya akan digunakan pada program

Variable memiliki

jenis (tipe)

,

nama

dan

nilai

Name, age, dan weight adalah atribute (variabel) dari

class Person

(10)

Membuat Class, Object dan Memanggil Atribut

public class Mobil {

String warna;

int tahunProduksi;

}

public class MobilBeraksi{

public static void main(String[] args){

// Membuat object

Mobil mobilku = new Mobil();

/* memanggil atribut dan memberi nilai */

mobilku.warna = "Hitam";

mobilku.tahunProduksi = 2006;

System.out.println("Warna: " +

mobilku.warna

);

System.out.println("Tahun: " +

mobilku.tahunProduksi)

;

}

}

Mobil.java

MobilBeraksi.java

(11)

Latihan: Membuat Program dg Netbeans

1.

Buka Netbeans IDE

(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
(21)

Method

Method adalah

urutan instruksi

yang

mengakses data dari object

Method melakukan:

1.

Manipulasi data

2.

Perhitungan

matematika

(22)
(23)

Membuat dan Memanggil Method

public class Mobil2{ String warna; int tahunProduksi; void printMobil(){ System.out.println("Warna: " + warna); System.out.println("Tahun: " + tahunProduksi); } }

public class Mobil2Beraksi{

public static void main(String[] args){ Mobil2 mobilku = new Mobil2();

mobilku.warna = "Hitam"; mobilku.tahunProduksi = 2006; mobilku.printMobil(); } }

Mobil2.java

Mobil2Beraksi.java

(24)

Latihan

Buat class

Handphone

, masukkan dalam

package

hp

Class Handphone berisi

empat method

di bawah:

1.

hidupkan()

2.

lakukanPanggilan()

3.

kirimSMS()

4.

matikan()

Isi masing-masing method dengan tampilan status

menggunakan

System.out.println()

Buat class

HandphoneBeraksi

, dan panggil

method-method diatas dalam class tersebut

(25)

Latihan: Hasil Tampilan

Handphone hidup …

Kring, kring, kring … panggilan dilakukan

Dung, dung … sms berhasil terkirim

(26)

public class Handphone{

void hidupkan(){

System.out.println(" Handphone hidup"); }

void lakukanPanggilan(){

System.out.println(“Kring.. Kring.. Kring.. Panggilan dilakukan!"); }

// lanjutkan method yang lainnya

}

public class HandphoneBeraksi{

public static void main(String[] args){

Handphone telponKu = new Handphone();

telponKu.hidupkan(); telponKu.lakukanPanggilan(); telponKu.kirimSMS(); telponKu.matikan(); } }

Handphone.java

handphoneBeraksi.java

(27)

Latihan

Kelas Handphone pada contoh sebelumnya

dikembangkan dengan menambahkan:

Atribut:

hidup [tipe: boolean]

dan

jumlahPulsa [double]

Method:

isiPulsa(jumlah: double), cekPulsa()

Update method

lakukanPanggilan()

dan

kirimSMS()

dengan menambahkan statemen seleksi untuk

mengecek bahwa handphone dalam status hidup

dan jumlah pulsa > 0

Update method hidupkan() dan matikan() untuk

merubah status

hidup

.

(28)

PEMODELAN CLASS

(29)

Diagram Class

Digunakan untuk mendefiniskan sebuah kelas /

memodelkan kelas

NAMA CLASS Daftar Atribut Daftar Method Handphone -hidup: boolean; -jumlahPulsa: double +hidupkan(); +lakukanPanggilan(); +kirimSMS(); +matikan(); +isiPulsa(jumlah:double); +cekPulsa();

(30)

Visibility

Attributes normally should be private, methods invoked by

clients should be public

Visibility markers in UML

A plus sign (+) indicates public visibility

A minus sign (-) indicates private visibility

(31)

Contoh: Class Segitiga

Buat class Segitiga yang menyimpan informasi alas

dan tinggi, dan menyimpan hasil perhitungan luas dan

keliling

Atribut: tinggi, alas, keliling, luas

Method: hitungLuas(), hitungKeliling(), cetakLuas(), cetak

Keliling()

Dalam kasus-kasus di OOP,

nilai

(variable) yang

diketahui

akan

di-set

sebagai atribut yang

public

,

sementara

nilai

yang diperoleh dari

hasil

perhitungan

diset

private

(hanya bisa diakses dari

dalam fungsi tersebut)

(32)

TUGAS

Buat Diagram Class dan implementasi Program

dalam bentuk Class dan Program penggunaan Class

tersebut

Pilihan Topik

Handphone untuk browsing

Handphone untuk chatting

TV (pilih channel tv, set volume)

(33)
(34)

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

(35)

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

(36)

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;

(37)

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

(38)

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

(39)

Public class BankBeraksi {

Bank rekeningKu = new Bank(100000);

cekSaldo();

SimpanUang(50000);

AmbilUang(150000);

cekSaldo();

(40)
(41)

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.

(42)

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

} }

(43)
(44)

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

(45)
(46)
(47)

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

(48)

Encapsulation dan Access Modifier

Modifier

Dalam Class

yang Sama

Dalam

Package yang

Sama

Dalam

SubClass

Dalam

Package Lain

private

tanpa

tanda

protected

public

(49)

Encapsulation

Enkapsulasi data juga dapat dilakukan dengan cara:

1.

mendeklarasikan

instance variable

sebagai

private

2.

mendeklarasikan

method

yang sifatnya

public

untuk

mengakses variable tersebut

(50)

Diagram Class

BANK

private Saldo: double; Bank (double S);

publicAmbilUang(double S); public SimpanUang(double S); public cekSaldo(double S);

(51)

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

(52)

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. 2000/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. 3500

Karyawan yang bekerja 9 jam/hari atau lebih akan mendapat uang

transport lembur sebesar Rp. 4000

Input : NIP, Nama, Jumlah jam kerja

Output : NIP, Nama, Gaji pokok, Lembur, Uang makan, Transport

lembur , Take Home Pay (total gaji diterima)

(53)

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

(54)

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 class Pegawai untuk kasus minimal

2 orang pegawai dengan jam kerja berbeda

(55)

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 &

(56)

Referensi

Slide presentasi ini dimodifikasi dari slide yang

diperoleh dari website: romisatriowahono.net

karya Bapak Romi Satrio Wahono

Gambar

Diagram Class
Diagram Class

Referensi

Dokumen terkait

Tujuan dari perencanaan bangunan berbasis kinerja dalah agar perencana dapat menetapkan kondisi apa yang terjadi pada bangunan saat gempa maksimum terjadi.. Dengan

Dengan struktur komposit ini terdapat banyak kelebihan yaitu berat struktur lebih ringan sekitar 47% dari struktur eksisting beton bertulang, hal ini menguntungkan

Android Widgets merupakan komponen-komponen yang disediakan Android SDK untuk membangun user interface pada aplikasi Android..

Gambar 9 Class Diagram Sistem Informasi Monitoring Kontrol Dokumen Perubahan Produksi berbasis Web pada

KetuaProdi harus memelihara daftar status (MP-ISO.PJM- UB.04-02) guna memastikan usulan tindakan korektif pada semua jenis pekerjaan telah diselesaikan. Jika tindakan

[LM13] Latihan Minggu 13: Mengerjakan Latihan Praktikum – Membuat aplikasi iOS sederhana yang di dalamnya terdapat : antar muka aplikasi, basis data, Generic dan Class,

DAFTAR KELULUSAN MAHASISWA PROGRAM STUDI MAGISTER S-2 MANAJEMEN PENDIDIKAN TINGGI JURUSAN ILMU ADMINISTRASI PUBLIK FAKULTAS ILMU ADMINISTRASI UNIVERSITAS BRAWIJAYA No NAMA NIM

DAFTAR KELULUSAN MAHASISWA PROGRAM STUDI MAGISTER S-2 MANAJEMEN PENDIDIKAN TINGGI JURUSAN ILMU ADMINISTRASI PUBLIK FAKULTAS ILMU ADMINISTRASI UNIVERSITAS BRAWIJAYA No NAMA NIM