pemrograman lanjut - · pdf filelatihan • buat diagram class dan implementasi program...
TRANSCRIPT
![Page 1: PEMROGRAMAN LANJUT - · PDF fileLatihan • Buat Diagram Class dan implementasi Program dalam bentuk Classdan penggunaan Kelas tersebut. • Studi Kasus: Menghitung gaji harian PT](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a7714e47f8b9ad22a8dee07/html5/thumbnails/1.jpg)
PEMROGRAMAN LANJUT
FakultasIlmuKomputer,UniversitasBrawijaya
ENKAPSULASIData Hiding
Dr.Eng.HermanTolle,ST.,MT
Sistem Informasi FILKOM UBSemester Genap 2016/2017
![Page 2: PEMROGRAMAN LANJUT - · PDF fileLatihan • Buat Diagram Class dan implementasi Program dalam bentuk Classdan penggunaan Kelas tersebut. • Studi Kasus: Menghitung gaji harian PT](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a7714e47f8b9ad22a8dee07/html5/thumbnails/2.jpg)
Pemrograman Lanjut
1. Nama Matakuliah : Pemrograman Lanjut2. Kode/SKS : CSD60022 / 5 (4-1) SKS 3. Semester : Genap4. Kelas : A5. Program Studi : Teknologi Informasi –Universitas Brawijaya6. Dosen : Dr. Eng. Herman Tolle, ST., MT.7. Asisten :8. Jadwal Kuliah :
– Senin, 14.30 – 16.10, Ruang E1.2 (Teori)– Selasa, 07.00 – 8.40, Ruang A2.20 (Teori)– Rabu, 14.30 – 16.10, Ruang B1.8 (Praktikum)
![Page 3: PEMROGRAMAN LANJUT - · PDF fileLatihan • Buat Diagram Class dan implementasi Program dalam bentuk Classdan penggunaan Kelas tersebut. • Studi Kasus: Menghitung gaji harian PT](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a7714e47f8b9ad22a8dee07/html5/thumbnails/3.jpg)
Materi Pemrograman Lanjut
1. Review Pemrograman Dasar2. Konsep OOP, 3. Class dan object, 4. Diagram UML Class, 5. Fungsi Overloading dan Konstruktor,6. Enkapsulasi, 7. Inheritance/pewarisan, 8. Polymorphism9. Interface & Abstract Class
PemrogramanBerorientasi
Objek
![Page 4: PEMROGRAMAN LANJUT - · PDF fileLatihan • Buat Diagram Class dan implementasi Program dalam bentuk Classdan penggunaan Kelas tersebut. • Studi Kasus: Menghitung gaji harian PT](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a7714e47f8b9ad22a8dee07/html5/thumbnails/4.jpg)
Info Pertemuan
Tanggal : 7 Maret 2017Ruang & Waktu : A2.20, Jam 07.00 – 8.40Materi : Pengenalan Konsep Enkapsulasi
![Page 5: PEMROGRAMAN LANJUT - · PDF fileLatihan • Buat Diagram Class dan implementasi Program dalam bentuk Classdan penggunaan Kelas tersebut. • Studi Kasus: Menghitung gaji harian PT](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a7714e47f8b9ad22a8dee07/html5/thumbnails/5.jpg)
Tujuan Pembelajaran
Setelah mengikuti materi ini, diharapkan• Mahasiswa dapat memahami konsep Abstraksi
dan Enkapsulasi pada pemrograman berorientasiobyek (OOP)
• Mahasiswa mampu membuat class dan instansiasiobjek yang menerapkan konsep enkapsulasi
![Page 6: PEMROGRAMAN LANJUT - · PDF fileLatihan • Buat Diagram Class dan implementasi Program dalam bentuk Classdan penggunaan Kelas tersebut. • Studi Kasus: Menghitung gaji harian PT](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a7714e47f8b9ad22a8dee07/html5/thumbnails/6.jpg)
Kata Kunci / Keyword
1. Encapsulation | Enkapsulasi2. Abstraction | Abstraksi3. Fungsi GET dan Fungsi SET4. Instance Variable5. Access Modifier (Public dan Private) à Fields/Atribut6. Visibility Modifier (Public dan Private) à Methods7. Tipe Data (Primitive dan Reference)8. Immutable Object dan Class
![Page 7: PEMROGRAMAN LANJUT - · PDF fileLatihan • Buat Diagram Class dan implementasi Program dalam bentuk Classdan penggunaan Kelas tersebut. • Studi Kasus: Menghitung gaji harian PT](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a7714e47f8b9ad22a8dee07/html5/thumbnails/7.jpg)
ABSTRAKSI & ENKAPSULASI
![Page 8: PEMROGRAMAN LANJUT - · PDF fileLatihan • Buat Diagram Class dan implementasi Program dalam bentuk Classdan penggunaan Kelas tersebut. • Studi Kasus: Menghitung gaji harian PT](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a7714e47f8b9ad22a8dee07/html5/thumbnails/8.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 9: PEMROGRAMAN LANJUT - · PDF fileLatihan • Buat Diagram Class dan implementasi Program dalam bentuk Classdan penggunaan Kelas tersebut. • Studi Kasus: Menghitung gaji harian PT](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a7714e47f8b9ad22a8dee07/html5/thumbnails/9.jpg)
![Page 10: PEMROGRAMAN LANJUT - · PDF fileLatihan • Buat Diagram Class dan implementasi Program dalam bentuk Classdan penggunaan Kelas tersebut. • Studi Kasus: Menghitung gaji harian PT](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a7714e47f8b9ad22a8dee07/html5/thumbnails/10.jpg)
![Page 11: PEMROGRAMAN LANJUT - · PDF fileLatihan • Buat Diagram Class dan implementasi Program dalam bentuk Classdan penggunaan Kelas tersebut. • Studi Kasus: Menghitung gaji harian PT](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a7714e47f8b9ad22a8dee07/html5/thumbnails/11.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• Tombol Ganti channel atau Volume pada Remote TV
• Class access level (public, protected, private) adalah implementasi dari konsep encapsulation
![Page 12: PEMROGRAMAN LANJUT - · PDF fileLatihan • Buat Diagram Class dan implementasi Program dalam bentuk Classdan penggunaan Kelas tersebut. • Studi Kasus: Menghitung gaji harian PT](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a7714e47f8b9ad22a8dee07/html5/thumbnails/12.jpg)
• Enkapsulasi data dapat dilakukan dengan cara:1. mendeklarasikan instance variable sebagai
private2. mendeklarasikan method yang sifatnya public
untuk mengakses variable tersebut
![Page 13: PEMROGRAMAN LANJUT - · PDF fileLatihan • Buat Diagram Class dan implementasi Program dalam bentuk Classdan penggunaan Kelas tersebut. • Studi Kasus: Menghitung gaji harian PT](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a7714e47f8b9ad22a8dee07/html5/thumbnails/13.jpg)
![Page 14: PEMROGRAMAN LANJUT - · PDF fileLatihan • Buat Diagram Class dan implementasi Program dalam bentuk Classdan penggunaan Kelas tersebut. • Studi Kasus: Menghitung gaji harian PT](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a7714e47f8b9ad22a8dee07/html5/thumbnails/14.jpg)
Encapsulation dan Access Modifier
Modifier Dalam ClassyangSama
Dalam PackageyangSama
DalamSubClass
DalamPackageLain
private ü
tanpatanda ü ü
protected ü ü ü
public ü ü ü ü
![Page 15: PEMROGRAMAN LANJUT - · PDF fileLatihan • Buat Diagram Class dan implementasi Program dalam bentuk Classdan penggunaan Kelas tersebut. • Studi Kasus: Menghitung gaji harian PT](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a7714e47f8b9ad22a8dee07/html5/thumbnails/15.jpg)
Encapsulation
• Enkapsulasi data juga dapat dilakukan dengan cara:1. mendeklarasikan instance variable sebagai private2. mendeklarasikan method yang sifatnya public untuk
mengakses variable tersebut
![Page 16: PEMROGRAMAN LANJUT - · PDF fileLatihan • Buat Diagram Class dan implementasi Program dalam bentuk Classdan penggunaan Kelas tersebut. • Studi Kasus: Menghitung gaji harian PT](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a7714e47f8b9ad22a8dee07/html5/thumbnails/16.jpg)
Method Set dan Get
• Semua atribut dibuat private• Membuat method SET untuk menginput nilai pada atribut
tersebut• Membuat method GET untuk menampilkan nilai dari atribut
tersebut• Method Set dan Get bukan method bawaan Java tetapi
method yang didefiniskan sendiri oleh programmer (User defined function)
• Tujuannya agar setiap atribut menjadi imun terhadap aksessecara langsung (immutable class)
![Page 17: PEMROGRAMAN LANJUT - · PDF fileLatihan • Buat Diagram Class dan implementasi Program dalam bentuk Classdan penggunaan Kelas tersebut. • Studi Kasus: Menghitung gaji harian PT](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a7714e47f8b9ad22a8dee07/html5/thumbnails/17.jpg)
Contoh Method SET & GET
public Cubes{private int Panjang;private int Lebar;...
public void setPanjang(int P){Panjang = P;
}
public int getPanjang(){return Panjang;
}...
}
public KubusBeraksi{
Cubes myBox1 = new Cubes();
myBox1.setPanjang(10);
int H = myBox1.getPanjang();
// akses lewat variabelS.o.p(“Panjang = “ + H);
// akses lsg dari fungsi getS.o.p(“Panjang = “ +
myBox1.getPanjang());
}
![Page 18: PEMROGRAMAN LANJUT - · PDF fileLatihan • Buat Diagram Class dan implementasi Program dalam bentuk Classdan penggunaan Kelas tersebut. • Studi Kasus: Menghitung gaji harian PT](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a7714e47f8b9ad22a8dee07/html5/thumbnails/18.jpg)
Diagram Class
BANK
private Saldo: double;
Bank (double S);public AmbilUang(double S);public SimpanUang(double S);public cekSaldo(double S);
BANK
- Saldo: double;
+Bank (double S);+AmbilUang(double S);+SimpanUang(double S);+cekSaldo(double S);
![Page 19: PEMROGRAMAN LANJUT - · PDF fileLatihan • Buat Diagram Class dan implementasi Program dalam bentuk Classdan penggunaan Kelas tersebut. • Studi Kasus: Menghitung gaji harian PT](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a7714e47f8b9ad22a8dee07/html5/thumbnails/19.jpg)
Contohpublic class Bank{
private double saldo;
Bank(double S) {this.saldo = S;S.o.println(“Selamat Datang di Bank ABC“);this.cekSaldo();}
public void cekSaldo() {S.o.p(“Saldo saat ini
Rp “+saldo);}
}
void AmbilUang(double S) {if (this.saldo-S>=0){
this.saldo -= S;S.o.p(“Ambil Uang Rp “+S);
}elseS.o.p(“Saldo tidak mencukupi”);this.cekSaldo();
}
void SimpanUang(double S) {this.saldo += S;S.o.p(“Simpan Uang Rp “+S);this.cekSaldo();
}
![Page 20: PEMROGRAMAN LANJUT - · PDF fileLatihan • Buat Diagram Class dan implementasi Program dalam bentuk Classdan penggunaan Kelas tersebut. • Studi Kasus: Menghitung gaji harian PT](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a7714e47f8b9ad22a8dee07/html5/thumbnails/20.jpg)
Studi Kasus
![Page 21: PEMROGRAMAN LANJUT - · PDF fileLatihan • Buat Diagram Class dan implementasi Program dalam bentuk Classdan penggunaan Kelas tersebut. • Studi Kasus: Menghitung gaji harian PT](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a7714e47f8b9ad22a8dee07/html5/thumbnails/21.jpg)
Circle.javapublic class Circle { private double radius; private String color;
public Circle() { // 1st Constructor radius = 10; color = “RED”;
} public Circle(double radius) { // 2nd Constructor this.radius = radius; color = “RED”;
} public Circle(double radius, String color) { // 3rd
Constructor this.radius = radius; this.color = color;
}
![Page 22: PEMROGRAMAN LANJUT - · PDF fileLatihan • Buat Diagram Class dan implementasi Program dalam bentuk Classdan penggunaan Kelas tersebut. • Studi Kasus: Menghitung gaji harian PT](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a7714e47f8b9ad22a8dee07/html5/thumbnails/22.jpg)
Circle.java// Public getter and setter for private variables public double getRadius() { return radius; }
public void setRadius(double radius) { this.radius = radius; }
public String getColor() { return color; }
public void setColor(String color) { this.color = color; }
// toString() to provide a short description of this instance public String toString() { return "Circle with radius = " + radius + " and color of " + color;
}
// Public methods public double getArea() { return radius*radius*Math.PI; } }
![Page 23: PEMROGRAMAN LANJUT - · PDF fileLatihan • Buat Diagram Class dan implementasi Program dalam bentuk Classdan penggunaan Kelas tersebut. • Studi Kasus: Menghitung gaji harian PT](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a7714e47f8b9ad22a8dee07/html5/thumbnails/23.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. 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)
![Page 24: PEMROGRAMAN LANJUT - · PDF fileLatihan • Buat Diagram Class dan implementasi Program dalam bentuk Classdan penggunaan Kelas tersebut. • Studi Kasus: Menghitung gaji harian PT](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a7714e47f8b9ad22a8dee07/html5/thumbnails/24.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 25: PEMROGRAMAN LANJUT - · PDF fileLatihan • Buat Diagram Class dan implementasi Program dalam bentuk Classdan penggunaan Kelas tersebut. • Studi Kasus: Menghitung gaji harian PT](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a7714e47f8b9ad22a8dee07/html5/thumbnails/25.jpg)
TUGAS LATIHAN
• 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
![Page 26: PEMROGRAMAN LANJUT - · PDF fileLatihan • Buat Diagram Class dan implementasi Program dalam bentuk Classdan penggunaan Kelas tersebut. • Studi Kasus: Menghitung gaji harian PT](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a7714e47f8b9ad22a8dee07/html5/thumbnails/26.jpg)
Referensi
![Page 27: PEMROGRAMAN LANJUT - · PDF fileLatihan • Buat Diagram Class dan implementasi Program dalam bentuk Classdan penggunaan Kelas tersebut. • Studi Kasus: Menghitung gaji harian PT](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a7714e47f8b9ad22a8dee07/html5/thumbnails/27.jpg)
Terima Kasih