pemrograman lanjut - · pdf filepemrograman lanjut fakultas ilmu ... delphi/objectpascal, c++,...

60
PEMROGRAMAN LANJUT Fakultas Ilmu Komputer, Universitas Brawijaya KONSEP CLASS & OBJEK pada Object Oriented Programming Dr. Eng. Herman Tolle, ST., MT Sistem Informasi FILKOM UB Semester Genap 2016/2017

Upload: dodien

Post on 07-Feb-2018

240 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

PEMROGRAMAN LANJUT

FakultasIlmuKomputer,UniversitasBrawijaya

KONSEP CLASS & OBJEK pada Object Oriented Programming

Dr.Eng.HermanTolle,ST.,MT

Sistem Informasi FILKOM UBSemester Genap 2016/2017

Page 2: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

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 filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

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 Class10. Generic Class11. Pengantar ke Graphical User Interface (GUI)

PemrogramanBerorientasi

Objek

Page 4: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

Info Pertemuan

Tanggal : 27 Februari 2017Ruang & Waktu : E1.2, Jam 14.30 – 16.00Materi : Pengenalan Konsep Class & Objek

Page 5: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

Tujuan Pembelajaran

Setelah mengikuti materi ini, diharapkan• Mahasiswa dapat memahami perbedaan paradigma sequiensial,

prosedural, dan OOP, serta memahami keuntungan pendekatan OOP• Mahasiswa dapat memahami konsep Objek dan Class dalam

pemrograman berorientasi obyek (OOP)• Mahasiswa mampu mendefiniskan suatu objek• Mahasiswa mampu membuat class dan instansiasi objek class serta

penggunaannya dalam kasus sederhana• Mengenal dan memahami kata kunci: Class, Object, Atribut, Behaviour,

Instansiasi (Instance of)

Page 6: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

Kata Kunci / Keyword

1. Class (Kelas)2. Object (Objek)3. Attribute (Atribut) | Property | Variabel | Data

Member4. Behavior (Tingkah Laku) | Method | Function5. Instance of (Instansiasi)

Selesai materi kelas hari ini, semua istilah tersebut harussudah dipahami.. Ingat2!

Page 7: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

Paradigma Pemrograman

1. Pemrograman Sequiensial / Terstruktur– Kode program mengalir dari atas ke bawah, bisa bercabang, bisa berulang

2. Pemrograman Prosedural– Penggunaan method/prosedur untuk fungsi-fungsi tertentu yang sering

digunakan. (Terstruktur dapat dikatakan termasuk dalam Prosedural)

3. Pemrograman Berorientasi Objek– Pendekatan sesuatu sebagai objek yg memiliki atribut dan behaviour

(fungsi)

4. Pemrograman Berbasis Kejadian– Seseuatu terjadi karena ada pemicunya: di-click, di-doubleclick,

mouseOver, saat Start, dll

Page 8: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

Object-Oriented Programming Languages

Pure OO Languages

Eiffel, Actor, Emerald, JADE, Obix, Ruby, Python, Scala, Smalltalk, Self.

Hybrid OO Languages

Delphi/Object Pascal, C++, Java, C#, VB.NET, Pascal, Visual Basic,

MATLAB, Fortran, Perl, COBOL 2002, PHP, ABAP, Ada 95.

Page 9: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

Mengapa OOP

• Procedural programming fokus pada struktur, sementara pendekatan

OOP pada modeling data.

• Memodelkan bagaimana manusia memandang sesuatu sbg objek

• Dunia nyata (real world) dapat dimodelkan sbg koleksi dari objek yang

saling terkoneksi --> real world modelling in interconnected object

• OOP mendukung konsep reusable of code (penggunaan ulang dari

kode)

• Sistem yang kompleks dapat dikembangkan lebih mudah (konsep

abstraksi), lebih relieable, dan lebih mudah di-maintenance

Page 10: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

Learning about Programming from Making Coffee

Page 11: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

Sequiensial// Program membuat KopiMain Program{

Siapkan Gelas // variabelMasukkan Kopi 1 sendok makan // inputMasukkan Gula 1 sendok makan // inputMasukkan Air panas s/d 7/8 gelas // inputDiaduk // prosesKopi siap Diminum // output

}

Main Program {

BuatKopi();}

Prosedur BuatKopi(){

Siapkan GelasMasukkan Kopi 1 sendok makanMasukkan Gula 1 sendok makanMasukkan Air panas s/d 7/8 gelasDiadukKopi siap Diminum

}

Procedural

Page 12: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

Berorientasi Object

• Pendekatan memandang sesuatu (things) sebagaimanamanusia memandang itu sebagai sebuah objek (object)

• Setiap objek memiliki atribut (property) dan behaviour(method) (tingkah laku)

Page 13: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

Definiskan Atribut dan Behaviour

Atribut:Nama, Umur, Baju, Celana, Tas, BotolMinum, Sepatu, Rambut, dll

Behaviour:• Bisa tertawa• Bisa berjalan• Bisa berlari• Bisa menyapa• dll

Page 14: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

Berorientasi Objek?

Attribute:Topi,Baju,Jaket,TasPunggung,Tangan,Kaki,Mata

Behavior:Cara JalankeDepanCara JalanMundurCara BelokkeKiriCara Memanjat

Page 15: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

Berorientasi Objek?

Attribute(State):Ban,Stir,PedalRem,PedalGas,Warna,TahunProduksiBehavior:CaraMenghidupkanMesinCaraManjalankanMobilCaraMemundurkanMobil

Attributeà Variable(Member)BehavioràMethod(Fungsi)

Page 16: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

Sequiensial

System.out.print(“Alas?”);int Alas = Input.Scan.nextInt();System.out.print(“Tinggi?”);int Tinggi = Input.Scan.nextInt();

double Luas = Alas * Tinggi / 2;System.out.println(“Luas = “, Luas);

System.out.print(“Alas?”);int Alas = Input.Scan.nextInt();System.out.print(“Tinggi?”);int Tinggi = Input.Scan.nextInt();

double Luas = hitungLuas(Alas,Tinggi); System.out.println(“Luas = “, Luas);

----double hitungLuas(int A, int T){ return A*T/2; };

Procedural

Page 17: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

Object Oriented

Class Segitiga{

int Alas;int Tinggi;Segitiga (int A, int T){ Alas = A;Tinggi = T;

}double HitungLuas(){

return (Alas*Tinggi/2);}

}

Main Program{

Segitiga Segi3 = new Segitiga(10, 20);S.o.println(“Segitiga dengan”); S.o.println(“Alas = “, Segi3.Alas);S.o.println(“Tinggi= “, Segi3.Tinggi);S.o.println(“maka luasnya adalah: “);S.o.println(“Luas = “, Segi3.HitungLuas());

}

Class Segitiga

Page 18: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

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– Object: mobilnya pak Joko, mobilku, mobil berwarna merah

Page 19: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

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 memiliki sifat independen)

Page 20: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

Class à CetakanObjek à Hasil cetakan

Page 21: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley
Page 22: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

Class = Method + Variable

variablekecepatan

gir

tampilkankecepatan

ubahgir method

ClassSepeda

Page 23: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

Object = Method + Variable yg Memiliki Nilai

instance variable

kecepatan =10km/jam

gir =3

tampilkankecepatan ()kecepatan=10km/jam

ubah gir (2)gir=5

instancemethod

ObjectSepedaku

Page 24: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

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

Page 25: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

Resume Day 1

• Why OOP:– Easy for modelling (design), easy for maintenance, reusable

• Class adalah model umum (template) dari sebuah model objek

• Setiap kelas dapat memiliki atribut (data member | properti| variabel) dan behaviour (method | fungsi | prosedur)

• Object adalah instansiasi dari sebuah kelas• Satu kelas dapat diinstansiasi menjadi banyak objek yang

saling independen

Page 26: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

Tugas Latihan

• Definisikan sebuah kelas: (a) Mahasiswa; (2) Pegawai; (3) Mobil; (4) Rekening Bank

• Tentukan apa saja atributnya• Tentukan apa saja methodnya

Page 27: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

DAY 2 OBJECT & CLASS

Page 28: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

Membuat Class, Object dan Memanggil Atribut

public class Mobil {String warna;int tahunProduksi;

}

publicclassMobilBeraksi{publicstaticvoidmain(String[]args){

//MembuatobjectMobilmobilku=newMobil();

/*memanggilatributdanmemberinilai*/mobilku.warna="Hitam";mobilku.tahunProduksi=2006;System.out.println("Warna:"+mobilku.warna);System.out.println("Tahun:"+mobilku.tahunProduksi);

}}

Mobil.java

MobilBeraksi.java

Page 29: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

Latihan: Membuat Program dg Netbeans

1. Buka Netbeans IDE2. Ikuti langkah berikut

Page 30: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley
Page 31: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley
Page 32: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley
Page 33: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley
Page 34: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley
Page 35: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley
Page 36: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley
Page 37: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley
Page 38: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley
Page 39: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

Behavior

• Setiap objek selain memiliki atribut, dapat juga memilikibehavior

• Perilaku, tingkah laku, kemampuan, prosedur, fungsi, method

• Biasanya digunakan untuk memproses atribut• Dalam konsep dasar pemrograman ada 2 model method

– Procedure: kumpulan proses (statement) yang tidakmengembalikan suatu nilai (void)

– Function: kumpulan proses yang mengembalikan suatu nilai dalamtipe data tertentu (ada tipe data)

Page 40: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

Method

• Method adalah urutan instruksi yang mengakses data dari object

• Method melakukan:1. Manipulasi data2. Perhitungan matematika3. Memonitor kejadian dari suatu event

Page 41: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

Method

Page 42: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

Membuat dan Memanggil Methodpublic 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

Page 43: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

class MahasiswaContoh{public static void main (String arg[]) {Mahasiswa MhsTI1 = new Mahasiswa();MhsTI1.nama = “Bela Luna”;MhsTI1.nim = “1601”;MhsTI1.prodi = “TI”;MhsTI1.umur = 17;

S.o.println(“Data Mahasiswa:”);S.o.println(“Nama :“, MhsTI1.nama);S.o.println(“NIM :“, MhsTI1.nim);S.o.println(“Prodi :“, MhsTI1.prodi);S.o.println(“Umur :“, MhsTI1.umur);

}

Case: Mahasiswa

class Mahasiswa{

String nama;String nim;String prodi;int umur;

}

Atribut

Output:Data Mahasiswa:Nama : Bela LunaNIM : 1601Prodi : TIUmur : 17

Page 44: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

class Mahasiswa{

String nama;String nim;String prodi;int umur;

void cetakData(){S.o.p(“Nama :“, nama);S.o.p(“NIM :“, nim);S.o.p(“Prodi :“, prodi);S.o.p(“Umur :“, umur);}

}

class MahasiswaContoh2{public static void main (String arg[]) {Mahasiswa MhsTI1 = new Mahasiswa();MhsTI1.nama = “Bela Luna”;MhsTI1.nim = “1601”;MhsTI1.prodi = “TI”;MhsTI1.umur = 17;

S.o.println(“Data Mahasiswa:”);MhsTI1.cetakData();

}

Case: MahasiswaAtribut + method

Output:Data Mahasiswa:Nama : Bela LunaNIM : 1601Prodi : TIUmur : 17

Page 45: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

class Mahasiswa{

String nama;String nim;String prodi;int umur;

Mahasiswa(String N, String M, String P, int U){

nama = N;nim = M;prodi = P;umur = U;

}

void cetakData(){S.o.p(“Nama :“, nama);S.o.p(“NIM :“, nim);S.o.p(“Prodi :“, prodi);S.o.p(“Umur :“, umur);}

}

Case: MahasiswaAtribut + method + konstruktor

Page 46: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

class MahasiswaContoh2{public static void main (String arg[]) {Mahasiswa MhsTI1 = new Mahasiswa(“Bela Luna”,”1601”,”TI”,17);

S.o.println(“Data Mahasiswa:”);MhsTI1.cetakData();

}

Case: MahasiswaAtribut + method + konstruktor

Output:Data Mahasiswa:Nama : Bela LunaNIM : 1601Prodi : TIUmur : 17

Page 47: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

class MahasiswaContoh2{public static void main (String arg[]) {Mahasiswa MhsTI1 = new Mahasiswa(“Bela Luna”,”1601”,”TI”,17);Mahasiswa MhsTI2 = new Mahasiswa(“Aliando”,”1602”,”TI”,18);

S.o.println(“Data Mahasiswa 1:”);MhsTI1.cetakData();S.o.println(“\n Data Mahasiswa 2:”);MhsTI2.cetakData();

}

Case: MahasiswaAtribut + method + konstruktor

Output:Data Mahasiswa 1:Nama : Bela LunaNIM : 1601Prodi : TIUmur : 17

Data Mahasiswa 2:Nama : AliandoNIM : 1602Prodi : TIUmur : 18

Page 48: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

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

Page 49: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

Latihan: Contoh Hasil Tampilan

Handphone hidup …Kring, kring, kring … panggilan dilakukanDung, dung … sms berhasil terkirimHandphone mati …

Page 50: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

public class Handphone{void hidupkan(){

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

void lakukanPanggilan(){System.out.println(“Kring.. Kring.. Kring.. Panggilan dilakukan!");

}// lanjutkan method yang lainnya

}

publicclassHandphoneBeraksi{publicstaticvoidmain(String[]args){

HandphonetelponKu =newHandphone();telponKu.hidupkan();telponKu.lakukanPanggilan();telponKu.kirimSMS();telponKu.matikan();

}}

Handphone.java

handphoneBeraksi.java

Page 51: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

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.

Page 52: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

PEMODELAN CLASSDIAGRAM CLASS

Page 53: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

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

Page 54: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

• 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 • A sharp sign (#) indicates protected visibility

Page 55: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

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)

Page 56: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

TUGAS

• Buat Diagram Class dan implementasi Program dalam bentuk Class dan Program penggunaan Class tersebut

• Pilihan Topik– Handphone untuk messaging– Handphone untuk browsing– TV (pilih channel tv, set volume)– Radio (pilih stasiun radio, set volume)

• Untuk kelas TI-A: – Deadline: Senin 6 Maret, tercetak di kelas– Ke email dg Subject: PLA-1-nim

Page 57: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

Contoh Kasus TelevisiIlustrasi Penggunaan dan OutputnyaChallenge: membuat kelasnya.

Contoh Penggunaan Kelas TelevisiTelevisi tvKu = new Televisi();tvKu.hidupkan();tvKu.upChannel();tvKU.upVolume(10);tvku.GantiChannel(7);tvKu.matikan();

Contoh Output dari PenggunaanTelevisi HidupChannel Aktif = 1. Volume = 50

Anda sekarang menonton Channel 2Volume naik menjadi 60Anda sekarang menonton Channel 7Televisi Mati.. Hzhzhzhz…..

Page 58: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

Terima Kasih

Page 59: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

Referensi1. Sharon Zakhour et al, The Java Tutorial Fourth Edition,

http://java.sun.com/docs/books/tutorial2. Cay Horstmann, Big Java: Earl Objects 5th Edition, John Wiley &

Sons, 20133. Deitel & Deitel, Java Howto Program 9th Edition, Prentice Hall, 20124. Richard M. Reese, Oracle Certified Associate Java SE 7 Programmer

Study Guide, Packt Publishing, 20125. Walter Savitch, Absolute Java 5th Edition, Pearson Education, 20136. Mark Allen Weiss, Data Structures and Algorithm Analysis in Java

3rd Edition, Pearson Education, 20127. Anany Levitin, Introduction to the Design and Analysis of

Algorithms 3rd Edition, Pearson Education, 20128. Ying Bai, Practical Database Programming with Java, John Wiley &

Sons, 2011

Page 60: PEMROGRAMAN LANJUT - · PDF filePEMROGRAMAN LANJUT Fakultas Ilmu ... Delphi/ObjectPascal, C++, Java, C#, VB.NET, ... Ying Bai, Practical Database Programming with Java, John Wiley

Referensi

• Slide presentasi ini dimodifikasi dari slide yang diperoleh dari website: romisatriowahono.net karya Bapak Romi Satrio Wahono