• Tidak ada hasil yang ditemukan

KONSEP CLASS & OBJEK pada Object Oriented Programming

N/A
N/A
Protected

Academic year: 2021

Membagikan "KONSEP CLASS & OBJEK pada Object Oriented Programming"

Copied!
60
0
0

Teks penuh

(1)

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

(2)

Pemrograman Lanjut

1. Nama Matakuliah : Pemrograman Lanjut

2. Kode/SKS : CSD60022 / 5 (4-1) SKS

3. Semester : Genap

4. Kelas : A

5. Program Studi : Teknologi Informasi –Universitas Brawijaya 6. 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)

(3)

Materi Pemrograman Lanjut

1. Review Pemrograman Dasar 2. Konsep OOP,

3. Class dan object,

4. Diagram UML Class,

5. Fungsi Overloading dan Konstruktor,

6. Enkapsulasi,

7. Inheritance/pewarisan, 8. Polymorphism

9. Interface & Abstract Class

10. Generic Class

11. Pengantar ke Graphical User Interface (GUI)

Pemrograman

Berorientasi

(4)

Info Pertemuan

Tanggal

: 27 Februari 2017

Ruang & Waktu

: E1.2, Jam 14.30 – 16.00

(5)

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)

(6)

Kata Kunci / Keyword

1. Class

(Kelas)

2. Object

(Objek)

3. Attribute

(Atribut) | Property | Variabel | Data

Member

4. Behavior

(Tingkah Laku) | Method | Function

5. Instance of

(Instansiasi)

Selesai materi kelas hari ini,

semua istilah tersebut harus

sudah dipahami.. Ingat2!

(7)

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

(8)

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.

(9)

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

(10)
(11)

Sequiensial

// Program membuat Kopi Main Program

{

Siapkan Gelas // variabel

Masukkan Kopi 1 sendok makan // input

Masukkan Gula 1 sendok makan // input

Masukkan Air panas s/d 7/8 gelas // input

Diaduk // proses

Kopi siap Diminum // output

} Main Program { BuatKopi(); } Prosedur BuatKopi() { Siapkan Gelas

Masukkan Kopi 1 sendok makan Masukkan Gula 1 sendok makan Masukkan Air panas s/d 7/8 gelas Diaduk

Kopi siap Diminum }

(12)

Berorientasi Object

• Pendekatan memandang sesuatu (things) sebagaimana

manusia memandang itu sebagai sebuah objek (object)

• Setiap objek memiliki

atribut (property)

dan

behaviour

(13)

Definiskan Atribut dan Behaviour

Atribut:

Nama, Umur, Baju, Celana, Tas, Botol Minum, Sepatu, Rambut, dll

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

(14)

Berorientasi Objek?

Attribute:

Topi, Baju, Jaket,

Tas Punggung,

Tangan, Kaki, Mata

Behavior:

Cara

Jalan ke Depan

Cara

Jalan Mundur

Cara

Belok ke Kiri

Cara

Memanjat

(15)

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)

(16)

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

(17)

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

(18)

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

(19)

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

)

(20)

Class à Cetakan

(21)
(22)

Class = Method + Variable

variable

kecepatan

gir

tampilkan kecepatan

ubah gir

method

Class

Sepeda

(23)

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

(24)

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

(25)

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

(26)

Tugas Latihan

• Definisikan sebuah kelas: (a) Mahasiswa; (2)

Pegawai; (3) Mobil; (4) Rekening Bank

• Tentukan apa saja atributnya

• Tentukan apa saja methodnya

(27)
(28)

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

(29)

Latihan: Membuat Program dg Netbeans

1. Buka Netbeans IDE

2. Ikuti langkah berikut

(30)
(31)
(32)
(33)
(34)
(35)
(36)
(37)
(38)
(39)

Behavior

• Setiap objek selain memiliki atribut, dapat juga memiliki

behavior

• 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 tidak mengembalikan suatu nilai (void)

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

(40)

Method

• Method adalah

urutan instruksi

yang mengakses

data dari object

• Method melakukan:

1. Manipulasi data

2. Perhitungan matematika

(41)
(42)

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

(43)

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 Luna NIM : 1601

Prodi : TI Umur : 17

(44)

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: Mahasiswa

Atribut + method Output: Data Mahasiswa: Nama : Bela Luna NIM : 1601

Prodi : TI Umur : 17

(45)

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: Mahasiswa

(46)

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: Mahasiswa

Atribut + method + konstruktor

Output:

Data Mahasiswa: Nama : Bela Luna NIM : 1601

Prodi : TI Umur : 17

(47)

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: Mahasiswa

Atribut + method + konstruktor

Output:

Data Mahasiswa 1: Nama : Bela Luna NIM : 1601 Prodi : TI Umur : 17 Data Mahasiswa 2: Nama : Aliando NIM : 1602 Prodi : TI Umur : 18

(48)

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

(49)

Latihan: Contoh Hasil Tampilan

Handphone hidup …

Kring, kring, kring … panggilan dilakukan

Dung, dung … sms berhasil terkirim

(50)

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

(51)

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

.

(52)

PEMODELAN CLASS

(53)

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

(54)

• 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

(55)

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)

(56)

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

(57)

Contoh Kasus Televisi

Ilustrasi Penggunaan dan Outputnya Challenge: membuat kelasnya.

Contoh Penggunaan Kelas Televisi

Televisi tvKu = new Televisi(); tvKu.hidupkan();

tvKu.upChannel(); tvKU.upVolume(10); tvku.GantiChannel(7); tvKu.matikan();

Contoh Output dari Penggunaan

Televisi Hidup

Channel Aktif = 1. Volume = 50 Anda sekarang menonton Channel 2 Volume naik menjadi 60

Anda sekarang menonton Channel 7 Televisi Mati.. Hzhzhzhz…..

(58)
(59)

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 &

(60)

Referensi

• Slide presentasi ini dimodifikasi dari slide

yang diperoleh dari website:

romisatriowahono.net karya Bapak Romi

Satrio Wahono

Gambar

Diagram Class

Referensi

Dokumen terkait

menghantar argumen-argumen 1, ukur1 dan ukur2 ke dalam fungsi luas() yang terdapat dalam kelas generik bentuk dan memberi nilai 1 pada pembolehubah pilihan, nilai ukur1

(2010:178), Pemrograman berorientasi objek merupakan sebuah teknik pemrograman yang dalam proses pengembangannya menggunakan teknologi objek, dimana setiap objek memiliki

Subclass hanya boleh meng-override method superclass satu kali saja, tidak boleh ada lebih dari satu method pada kelas yang sama yang sama persis.. Java is willing to coerce to

Misalnya suatu kelas Mahasiswa dan Karyawan adalah dua buah obyek yang memiliki karakteristik berbeda, namun kedua obyek tersebut dapat mewarisi obyek induk

programmer- defined classes class Bicycle { // Data Member private String ownerName; //Constructor: Initialzes the data member public Bicycle { ownerName = "Unknown"; } //Returns

An object is nothing but a self-contained component which consists of methods and properties to make a particular type of data useful... It is a basic unit of Object Oriented

Why constructors are efficient instead of a function init defined by the user to initialize the data members of an object?. a Because user may forget to call init using that object

Topics Fundamental concepts of object-oriented programming – block already discussed earlier – module: an extension of a block – data abstraction – object abstraction – parametric