01 java concept

90
1 Pemrograman Berorientasi Objek STMIK BANISALEH PEMROGRAMAN BERORIENTASI OBJEK ( DENGAN JAVA )

Upload: andrepsucipto

Post on 23-Dec-2015

218 views

Category:

Documents


0 download

DESCRIPTION

Java

TRANSCRIPT

1

Pemrograman Berorientasi Objek STMIK BANISALEH

PEMROGRAMAN BERORIENTASI

OBJEK

( DENGAN JAVA )

PEMROGRAMAN BERORIENTASI

OBJEK

( DENGAN JAVA )

2

Pemrograman Berorientasi Objek STMIK BANISALEH

1.1. OOP ConceptsOOP Concepts::Konsep dan Paradigma Object-Oriented Konsep dan Paradigma Object-Oriented

2.2. Java FundamentalsJava Fundamentals::Memahami Sintaks dan Grammar Bahasa JavaMemahami Sintaks dan Grammar Bahasa Java

3.3. Java AdvancedJava Advanced::Eksepsi, Thread, Java APIEksepsi, Thread, Java API

4.4. Java GUIJava GUI::Swing, GUI Component, Event HandlingSwing, GUI Component, Event Handling

5.5. Java GUI with NetbeansJava GUI with Netbeans::Mengembangkan Aplikasi Berbasis GUI dengan Mengembangkan Aplikasi Berbasis GUI dengan JavaJava

3

Pemrograman Berorientasi Objek STMIK BANISALEH

OOP ConceptOOP Concept

Konsep Pemrograman dan Paradigmanya

Konsep Pemrograman dan Paradigmanya

4

Pemrograman Berorientasi Objek STMIK BANISALEHBahasa Pemrograman?Bahasa Pemrograman?Bahasa Pemrograman?Bahasa Pemrograman?

Komputer bekerja seperti Komputer bekerja seperti switchingswitching dan dan hanya hanya mengenali 0 dan 1mengenali 0 dan 1

Manusia Manusia tidak (paham) berbicara tidak (paham) berbicara dengan dengan bahasa 0 dan 1bahasa 0 dan 1

Perlu bahasa pemrograman yang dapat Perlu bahasa pemrograman yang dapat menjadi menjadi perantara percakapan perantara percakapan antara antara komputer dan manusiakomputer dan manusia

Bahasa pemrograman diubah ke dalam Bahasa pemrograman diubah ke dalam bahasa yang dipahami oleh komputer bahasa yang dipahami oleh komputer dengan menggunakan dengan menggunakan interpreterinterpreter atau atau kompilerkompiler

5

Pemrograman Berorientasi Objek STMIK BANISALEHCompiler or Interpreter?Compiler or Interpreter?Compiler or Interpreter?Compiler or Interpreter?

Compiler:Compiler:

Mengkompilasi source code Mengkompilasi source code menjadi bentukmenjadi bentuk file yang bisa file yang bisa dieksekusidieksekusi

Interpreter:Interpreter:

Mengkompilasi dan Mengkompilasi dan menjalankan source code menjalankan source code secara langsungsecara langsung

6

Pemrograman Berorientasi Objek STMIK BANISALEHAssembly LanguageAssembly LanguageAssembly LanguageAssembly Language

000101000010100001100000110010100001010000100010010001001001010100101010101011010101010010010010

Machine language programMachine language program(executable file)(executable file)

LDA #47LDA #47STA $570STA $570DEXDEXJSR $817JSR $817CPX #0CPX #0BNE #14BNE #14

Assembly language programAssembly language program

TranslationTranslationprogramprogram

(Assembler)(Assembler)

7

Pemrograman Berorientasi Objek STMIK BANISALEHC LanguageC LanguageC LanguageC Language

#include #include <<stdio.hstdio.h>>

main()main(){{ printf(“Hallo”);printf(“Hallo”);}}

C ProgramC Program

CC CompilerCompiler

000101000001010000110010001100101000010010000100010010010100100101010101010101010101001001010010

Machine language programMachine language program((executable “.exe” executable “.exe” file)file)

8

Pemrograman Berorientasi Objek STMIK BANISALEHJava LanguageJava LanguageJava LanguageJava Language

9

Pemrograman Berorientasi Objek STMIK BANISALEHTingkat Bahasa PemrogramanTingkat Bahasa PemrogramanTingkat Bahasa PemrogramanTingkat Bahasa Pemrograman

Bahasa Pemrograman Tingkat Bahasa Pemrograman Tingkat RendahRendah (Assembler) (Assembler)

Bahasa Pemrograman Tingkat Bahasa Pemrograman Tingkat SedangSedang(C, Pascal, Fortran)(C, Pascal, Fortran)

Bahasa Pemrograman Tingkat Bahasa Pemrograman Tingkat TinggiTinggi(Java, C++, C#)(Java, C++, C#)

10

Pemrograman Berorientasi Objek STMIK BANISALEHParadigma PemrogramanParadigma PemrogramanParadigma PemrogramanParadigma Pemrograman

Sudut pandang dan style pemrograman Sudut pandang dan style pemrograman berhubungan dengan bagaimana sebuah berhubungan dengan bagaimana sebuah masalah diformulasikan dalam bahasa masalah diformulasikan dalam bahasa pemrogramanpemrograman

Functional ProgrammingFunctional Programming: Urutan fungsi secara : Urutan fungsi secara sekuensialsekuensial (Scheme, Lisp) (Scheme, Lisp)Procedural ProgrammingProcedural Programming: Pemecahan : Pemecahan masalah berdasarkan prosedural kerja yg masalah berdasarkan prosedural kerja yg terkumpul dalam unit pemrograman bernama terkumpul dalam unit pemrograman bernama fungsifungsi (C, Pascal) (C, Pascal)Object-Oriented ProgrammingObject-Oriented Programming: Koleksi object : Koleksi object yang saling berinteraksi . yang saling berinteraksi . ClassClass adalah unit adalah unit pemrograman (Java, C#, C++)pemrograman (Java, C#, C++)

11

Pemrograman Berorientasi Objek STMIK BANISALEHHow Java Works?How Java Works?How Java Works?How Java Works?

javac (java javac (java compilercompiler))

Hello.class

Kompiler memproduksiKompiler memproduksiBytecode (Class)Bytecode (Class)

Web ServerWeb Server

InterpreterInterpreter InterpreterInterpreter InterpreterInterpreter InterpreterInterpreter

Write Once Run Everywhere !Write Once Run Everywhere !

public class Hellopublic class Hellopublic static void public static void main(String[] args){main(String[] args){

System.out.println("Hello System.out.println("Hello World!");World!");}}

}}

Hello.java

12

Pemrograman Berorientasi Objek STMIK BANISALEHCompile and Run Java AppletCompile and Run Java AppletCompile and Run Java AppletCompile and Run Java Applet

<HTML><HEAD><TITLE>A Simple Program</TITLE></HEAD><BODY>Here is the output of my program:<APPLET CODE="HelloWorld.class" WIDTH=150 HEIGHT=25></APPLET></BODY></HTML>

import java.applet.*;import java.applet.*;import java.awt.*;import java.awt.*; public class HelloWorld extends Applet {public class HelloWorld extends Applet { public void paint(Graphics g) {public void paint(Graphics g) {

g.drawString("Hello g.drawString("Hello world!",50,25);world!",50,25); }}}}

C:\javac HelloWorld.javaC:\javac HelloWorld.java

C:\appletviewer Hello.htmlC:\appletviewer Hello.html

13

Pemrograman Berorientasi Objek STMIK BANISALEHMenulis Java ProgramMenulis Java ProgramMenulis Java ProgramMenulis Java Program

Class bisa dieksekusi karena method Class bisa dieksekusi karena method mainmain

public static void main(String[] public static void main(String[] args)args)

Program Java mulai dari siniProgram Java mulai dari sini!!

Bentuk program:Bentuk program:1.1. GUI GUI AApplicationpplication public class public class biasanya biasanya

menggunakan Frame (AWT), menggunakan Frame (AWT), JframeJframe(Swing)(Swing)

2.2. TTextext-Based -Based Console ApplicationConsole Application public class public class adalah adalah classclass yang sederhana yang sederhana

14

Pemrograman Berorientasi Objek STMIK BANISALEHLatihan: Membuat Program dg NetbeansLatihan: Membuat Program dg NetbeansLatihan: Membuat Program dg NetbeansLatihan: Membuat Program dg Netbeans

public class HelloWorld{public class HelloWorld{

public static void public static void main(String[] args)main(String[] args){{

System.out.println(“Halo System.out.println(“Halo Semarang”);Semarang”);

}}

}}

15

Pemrograman Berorientasi Objek STMIK BANISALEH

16

Pemrograman Berorientasi Objek STMIK BANISALEH

17

Pemrograman Berorientasi Objek STMIK BANISALEH

18

Pemrograman Berorientasi Objek STMIK BANISALEH

19

Pemrograman Berorientasi Objek STMIK BANISALEH

20

Pemrograman Berorientasi Objek STMIK BANISALEH

21

Pemrograman Berorientasi Objek STMIK BANISALEH

22

Pemrograman Berorientasi Objek STMIK BANISALEH

23

Pemrograman Berorientasi Objek STMIK BANISALEH

24

Pemrograman Berorientasi Objek STMIK BANISALEH

25

Pemrograman Berorientasi Objek STMIK BANISALEH

26

Pemrograman Berorientasi Objek STMIK BANISALEH

27

Pemrograman Berorientasi Objek STMIK BANISALEH

28

Pemrograman Berorientasi Objek STMIK BANISALEH

29

Pemrograman Berorientasi Objek STMIK BANISALEH

OOP ConceptOOP Concept

Konsep Dasar Pemrograman

Berorientasi Objek

Konsep Dasar Pemrograman

Berorientasi Objek

30

Pemrograman Berorientasi Objek STMIK BANISALEHBerorientasi Objek?Berorientasi Objek?Berorientasi Objek?Berorientasi Objek?

Attribute:Attribute: Topi, Baju, Tas Topi, Baju, Tas Punggung, Punggung, Jaket, Jaket, Tangan, Kaki, Tangan, Kaki, MataMata

Behavior:Behavior: CaraCara Jalan ke Jalan ke DepanDepan CaraCara Jalan Jalan MundurMundur CaraCara Belok ke Belok ke KiriKiri CaraCara Memanjat Memanjat

31

Pemrograman Berorientasi Objek STMIK BANISALEHBerorientasi Objek?Berorientasi Objek?Berorientasi Objek?Berorientasi Objek?

Attribute (State):Attribute (State): Ban, Stir, Pedal Ban, Stir, Pedal Kopling/Gas/Rem,Kopling/Gas/Rem, Warna, Tahun Produksi Warna, Tahun ProduksiBehavior:Behavior: Cara Menghidupkan MesinCara Menghidupkan Mesin Cara Manjalankan MobilCara Manjalankan Mobil Cara Memundurkan MobilCara Memundurkan Mobil

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

32

Pemrograman Berorientasi Objek STMIK BANISALEHLatihanLatihanLatihanLatihan

1.1. Lakukan kegiatan berorientasi objek Lakukan kegiatan berorientasi objek dengan target dengan target SepedaSepeda

2.2. Pikirkan apa Pikirkan apa atribut dan behavior atribut dan behavior yang yang dimiliki oleh Sepeda tersebutdimiliki oleh Sepeda tersebut

33

Pemrograman Berorientasi Objek STMIK BANISALEHKarakteristik OOP -1-Karakteristik OOP -1-Karakteristik OOP -1-Karakteristik OOP -1-

AbstractionAbstraction:Cara kita melihat suatu sistem :Cara kita melihat suatu sistem dalam dalam bentuk yang lebih sederhanabentuk yang lebih sederhana, yaitu , yaitu sebagai suatu kumpulan subsistem sebagai suatu kumpulan subsistem (object) yang saling berinteraksi.(object) yang saling berinteraksi.

Mobil adalah kumpulan sistem pengapian, Mobil adalah kumpulan sistem pengapian, sistem kemudi, sistem pengeremansistem kemudi, sistem pengereman

ModularityModularity: : Sifat object adalah modular. Sifat object adalah modular. Object dapat ditulis dan dimaintain Object dapat ditulis dan dimaintain terpisah (independen)terpisah (independen) dari object laindari object lain

34

Pemrograman Berorientasi Objek STMIK BANISALEH

35

Pemrograman Berorientasi Objek STMIK BANISALEH

36

Pemrograman Berorientasi Objek STMIK BANISALEHKarakteristik OOP -2-Karakteristik OOP -2-Karakteristik OOP -2-Karakteristik OOP -2-

EncapsulationEncapsulation: Mekanisme : Mekanisme menyembunyikan suatu proses dalam menyembunyikan suatu proses dalam sistem sistem untuk menghindari interferensi dan untuk menghindari interferensi dan menyederhanakan penggunaan sistem itu menyederhanakan penggunaan sistem itu sendirisendiri

Tongkat transmisi (gigi) pada mobilTongkat transmisi (gigi) pada mobil

Tombol on/off/pengaturan suhu pada ACTombol on/off/pengaturan suhu pada AC

37

Pemrograman Berorientasi Objek STMIK BANISALEH

38

Pemrograman Berorientasi Objek STMIK BANISALEH

39

Pemrograman Berorientasi Objek STMIK BANISALEHKarakteristik OOP -3-Karakteristik OOP -3-Karakteristik OOP -3-Karakteristik OOP -3-

InheritanceInheritance: Suatu class dapat : Suatu class dapat mewariskan mewariskan atribut dan methodatribut dan method kepada class lain kepada class lain (subclass), serta membentuk class (subclass), serta membentuk class hierarchyhierarchy

40

Pemrograman Berorientasi Objek STMIK BANISALEHKarakteristik OOP -4-Karakteristik OOP -4-Karakteristik OOP -4-Karakteristik OOP -4-

PolymorphismPolymorphism: Suatu : Suatu object dapat object dapat memiliki berbagai bentukmemiliki berbagai bentuk, sebagai object , sebagai object dari classnya sendiri atau object dari dari classnya sendiri atau object dari superclassnyasuperclassnya

OverloadingOverloading: Penggunaan : Penggunaan satu nama untuk satu nama untuk beberapa methodbeberapa method yang berbeda (beda yang berbeda (beda parameter)parameter)

OverridingOverriding: Terjadi ketika deklarasi method : Terjadi ketika deklarasi method subclass dengan subclass dengan nama dan parameter yang nama dan parameter yang sama sama dengan method dari superclassnyadengan method dari superclassnya

41

Pemrograman Berorientasi Objek STMIK BANISALEHPerbedaan Class dan ObjectPerbedaan Class dan ObjectPerbedaan Class dan ObjectPerbedaan Class dan Object

Class: Class: mobilmobil

Object: Object: mobilnya pak Joko, mobilkumobilnya pak Joko, mobilku

Class seperti Class seperti cetakan kuecetakan kue, dimana kue yg , dimana kue yg dihasilkan dari cetakan kue itu adalah dihasilkan dari cetakan kue itu adalah objectobject

Warna kue bisa bermacam-macam Warna kue bisa bermacam-macam meskipun berasal dari cetakan yang sama meskipun berasal dari cetakan yang sama ((object memiliki sifat independenobject memiliki sifat independen))

Object adalah Object adalah instance dari Classinstance dari Class

42

Pemrograman Berorientasi Objek STMIK BANISALEHClass = Method + VariableClass = Method + VariableClass = Method + VariableClass = Method + Variable

43

Pemrograman Berorientasi Objek STMIK BANISALEHObject = Variabel dan Method Object = Variabel dan Method BernilaiBernilaiObject = Variabel dan Method Object = Variabel dan Method BernilaiBernilai

Bicycle Bicycle dimodelkan dimodelkan sebagai sebuah sebagai sebuah object:object:10 mph, 90 rpm, 510 mph, 90 rpm, 5thth gear adalah gear adalah instance variableinstance variable

changegears, brake, changecadence changegears, brake, changecadence adalahadalah instance instance methodmethod

44

Pemrograman Berorientasi Objek STMIK BANISALEHAttributeAttributeAttributeAttribute

Berbagai variable yang mengitari class, Berbagai variable yang mengitari class, dengan nilai datanya bisa ditentukan di dengan nilai datanya bisa ditentukan di object.object. Name, age, Name, age, dan dan weight weight adalah adalah atribute dari class Personatribute dari class Person

45

Pemrograman Berorientasi Objek STMIK BANISALEH

Membuat Class, Object dan Memanggil AtributMembuat Class, Object dan Memanggil AtributMembuat Class, Object dan Memanggil AtributMembuat Class, Object dan Memanggil Atribut

class Mobil {class Mobil {

String warna;String warna;

int tahunProduksi;int tahunProduksi;

}}

class MobilBeraksi{class MobilBeraksi{

public static void main(String[] args){public static void main(String[] args){

// Membuat object// Membuat object

Mobil mobilku = new Mobil();Mobil mobilku = new Mobil();

/* memanggil atribut dan memberi nilai *//* memanggil atribut dan memberi nilai */

mobilku.warna = "Hitam";mobilku.warna = "Hitam";

mobilku.tahunProduksi = 2006;mobilku.tahunProduksi = 2006;

System.out.println("Warna: " + System.out.println("Warna: " + mobilku.warnamobilku.warna););

System.out.println("Tahun: " + System.out.println("Tahun: " + mobilku.tahunProduksi)mobilku.tahunProduksi);;

}}}}

46

Pemrograman Berorientasi Objek STMIK BANISALEHLatihan: Membuat Program dg NetbeansLatihan: Membuat Program dg NetbeansLatihan: Membuat Program dg NetbeansLatihan: Membuat Program dg Netbeans

1.1.Buka Netbeans IDEBuka Netbeans IDE

2.2. Ikuti langkah berikutIkuti langkah berikut

47

Pemrograman Berorientasi Objek STMIK BANISALEH

48

Pemrograman Berorientasi Objek STMIK BANISALEH

49

Pemrograman Berorientasi Objek STMIK BANISALEH

50

Pemrograman Berorientasi Objek STMIK BANISALEH

51

Pemrograman Berorientasi Objek STMIK BANISALEH

52

Pemrograman Berorientasi Objek STMIK BANISALEH

53

Pemrograman Berorientasi Objek STMIK BANISALEH

54

Pemrograman Berorientasi Objek STMIK BANISALEH

55

Pemrograman Berorientasi Objek STMIK BANISALEH

56

Pemrograman Berorientasi Objek STMIK BANISALEHMethodMethodMethodMethod

MMethod ethod adalah adalah implementasi implementasi dari bagaimana bekerjanya dari bagaimana bekerjanya sebuah classsebuah class

Method melakukan:Method melakukan:1.1.Manipulasi dataManipulasi data2.2.PerhitunganPerhitungan matematika matematika3.3.Memonitor kejadian Memonitor kejadian dari suatu eventdari suatu event

57

Pemrograman Berorientasi Objek STMIK BANISALEHMembuat dan Memanggil MethodMembuat dan Memanggil MethodMembuat dan Memanggil MethodMembuat dan Memanggil Method

class Mobil2{class Mobil2{

String warna;String warna;

int tahunProduksi;int tahunProduksi;

void void printMobilprintMobil(){(){

System.out.println("Warna: " + warna);System.out.println("Warna: " + warna);

System.out.println("Tahun: " + tahunProduksi);System.out.println("Tahun: " + tahunProduksi);

}}

}}

public class Mobil2Beraksi{public class Mobil2Beraksi{

public static void main(String[] args){public static void main(String[] args){

// Membuat object// Membuat object

Mobil2 mobilku = new Mobil2();Mobil2 mobilku = new Mobil2();

/* memanggil atribut dan memberi nilai *//* memanggil atribut dan memberi nilai */

mobilku.warna = "Hitam";mobilku.warna = "Hitam";

mobilku.tahunProduksi = 2006;mobilku.tahunProduksi = 2006;

mobilku.printMobil();mobilku.printMobil();

}}}}

58

Pemrograman Berorientasi Objek STMIK BANISALEHLatihanLatihanLatihanLatihan

Buat class Buat class MobilLengkapMobilLengkap dan buat tiga dan buat tiga method:method:

hidupkanMobil()hidupkanMobil()

matikanMobil()matikanMobil()

ubahGigi()ubahGigi()

Isi masing-masing method dengan Isi masing-masing method dengan tampilan status menggunakan tampilan status menggunakan System.out.println()System.out.println()

Panggil method-method diatas dari Panggil method-method diatas dari MobilLengkapBeraksiMobilLengkapBeraksi

59

Pemrograman Berorientasi Objek STMIK BANISALEHMessage Message dan Parameter dan Parameter -1- -1-Message Message dan Parameter dan Parameter -1- -1-

Bicycle akan berguna apabila ada object lain Bicycle akan berguna apabila ada object lain ((misalnya andamisalnya anda) ) yang berinterasi dengan yang berinterasi dengan Bicycle tersebutBicycle tersebut

Object software berinteraksi dan Object software berinteraksi dan berkomunikasi dengan object lain dengan berkomunikasi dengan object lain dengan cara mengirimkan cara mengirimkan messagemessage . Informasi dalam . Informasi dalam message ini dikenal dengan nama message ini dikenal dengan nama ParameterParameter

60

Pemrograman Berorientasi Objek STMIK BANISALEH

61

Pemrograman Berorientasi Objek STMIK BANISALEHMembuat Class (Membuat Class (Sepeda.javaSepeda.java))Membuat Class (Membuat Class (Sepeda.javaSepeda.java))class Sepeda{class Sepeda{

int kecepatan = 0;int kecepatan = 0;

int gir = 0;int gir = 0;

// method// method

void ubahGir(void ubahGir(int pertambahanGirint pertambahanGir)) { {

gir= gir+ pertambahanGir;gir= gir+ pertambahanGir;

System.out.println(" Gir:" + gir);System.out.println(" Gir:" + gir);

}}

void tambahKecepatan(void tambahKecepatan(int pertambahanKecepatanint pertambahanKecepatan) ) {{

kecepatan = kecepatan+ pertambahanKecepatan;kecepatan = kecepatan+ pertambahanKecepatan;

System.out.println(" Kecepatan:" + kecepatan);System.out.println(" Kecepatan:" + kecepatan);

}}

}}

62

Pemrograman Berorientasi Objek STMIK BANISALEHMembuat dan Memanggil Object Membuat dan Memanggil Object

((SepedaBeraksi.javaSepedaBeraksi.java))Membuat dan Memanggil Object Membuat dan Memanggil Object ((SepedaBeraksi.javaSepedaBeraksi.java))class SepedaBeraksi{class SepedaBeraksi{

public static void public static void mainmain(String[] args) {(String[] args) {

// Membuat object// Membuat object

Sepeda Sepeda sepedakusepedaku = new Sepeda(); = new Sepeda();

//memanggil atribut dan memberi nilai//memanggil atribut dan memberi nilai

sepedaku.kecepatan=10;sepedaku.kecepatan=10;

sepedaku.gir=2;sepedaku.gir=2;

// Memanggil method dan menunjuk nilai // Memanggil method dan menunjuk nilai parameterparameter

sepedaku.tambahKecepatan(sepedaku.tambahKecepatan(3030););

sepedaku.ubahGir(sepedaku.ubahGir(33););

}}}}

63

Pemrograman Berorientasi Objek STMIK BANISALEHLatihanLatihanLatihanLatihan

Buat Class bernama Buat Class bernama MatematikaMatematika, yang berisi , yang berisi method dengan method dengan dua parameterdua parameter::

pertambahan(pertambahan(int aint a, , int bint b))

pengurangan(pengurangan(int aint a, , int bint b))

perkalian(perkalian(int aint a, , int bint b))

pembagian(pembagian(int aint a, , int bint b))

Buat Class bernama Buat Class bernama MatematikaBeraksiMatematikaBeraksi, , yang mengeksekusi method dan yang mengeksekusi method dan menampilkan:menampilkan:

Pertambahan: 20 + 20 = 40Pertambahan: 20 + 20 = 40 pertambahan(pertambahan(2020,20,20))

Pengurangan: 10-5 = 5Pengurangan: 10-5 = 5

Perkalian: 10x20 = 200Perkalian: 10x20 = 200

Pembagian: 21/2 = 10Pembagian: 21/2 = 10

64

Pemrograman Berorientasi Objek STMIK BANISALEHTips Membuat CTips Membuat ClasslassTips Membuat CTips Membuat Classlass

1 file 1 file bisa berisi lebih dari satu bisa berisi lebih dari satu classclass. Tapi lebih baik dan mudah . Tapi lebih baik dan mudah dipahami apabila dipahami apabila satu file berisi satu file berisi hanya satu classhanya satu class

1 file 1 file hanya dapat berisi 1 public hanya dapat berisi 1 public class. class. Nama file harus sama Nama file harus sama dengan namadengan nama public class public class

Java menganut Java menganut ccasease--sensitivesensitive

65

Pemrograman Berorientasi Objek STMIK BANISALEHKonstruktor -1-Konstruktor -1-Konstruktor -1-Konstruktor -1-

Method yang digunakan untuk memberi Method yang digunakan untuk memberi nilai awal nilai awal pada saat object diciptakanpada saat object diciptakan

Dipanggil secara otomatis ketika Dipanggil secara otomatis ketika newnew digunakan untuk membuat instan classdigunakan untuk membuat instan class

Sifat konstruktor:Sifat konstruktor:Nama konstruktor Nama konstruktor sama dengan nama sama dengan nama classclass

Tidak memiliki nilai balikTidak memiliki nilai balik dan tidak boleh dan tidak boleh ada kata kunci voidada kata kunci void

66

Pemrograman Berorientasi Objek STMIK BANISALEHKonstruktor -2-Konstruktor -2-Konstruktor -2-Konstruktor -2-class Mobil {class Mobil {

String warna;String warna;

int tahunProduksi;int tahunProduksi;

public Mobil(String warna, int tahunProduksi){public Mobil(String warna, int tahunProduksi){

this.warna = warna;this.warna = warna;

this.tahunProduksi = tahunProduksi;this.tahunProduksi = tahunProduksi;

}}

public void info(){public void info(){

System.out.println("Warna: " + this.warna);System.out.println("Warna: " + this.warna);

System.out.println("Tahun: " + this.tahunProduksi);System.out.println("Tahun: " + this.tahunProduksi);

}}

}}

class MobilKonstruktor{class MobilKonstruktor{

public static void main(String[] args){public static void main(String[] args){

Mobil mobilku = new Mobil(“Merah”, 2003);Mobil mobilku = new Mobil(“Merah”, 2003);

mobilku.info();mobilku.info();

}}

}}

67

Pemrograman Berorientasi Objek STMIK BANISALEHKata Kunci thisKata Kunci thisKata Kunci thisKata Kunci this

Digunakan pada pembuatan class dan Digunakan pada pembuatan class dan digunakan untuk digunakan untuk menyatakan object menyatakan object sekarangsekarang

class Mobil{class Mobil{

String warna;String warna;

Int tahunProduksi;Int tahunProduksi;

void isiData(String void isiData(String warnaMobil, int warnaMobil, int tahunProduksiMobil){tahunProduksiMobil){

warna = warnaMobil;warna = warnaMobil;

tahunProduksi = tahunProduksi = tahunProduksiMobil;tahunProduksiMobil;

}}

class Mobil{class Mobil{

String warna;String warna;

Int tahunProduksi;Int tahunProduksi;

void isiData(String warna, void isiData(String warna, int tahunProduksi){int tahunProduksi){

this.warna = warna;this.warna = warna;

this.tahunProduksi = this.tahunProduksi = tahunProduksi;tahunProduksi;

}}

68

Pemrograman Berorientasi Objek STMIK BANISALEHClass Acces LevelClass Acces LevelClass Acces LevelClass Acces Level

SpecifierSpecifier ClassClass PackagePackage SubClassSubClass WorldWorld

privateprivate         

no specifierno specifier   

protectedprotected

publicpublic     

69

Pemrograman Berorientasi Objek STMIK BANISALEHLatihanLatihanLatihanLatihan

1.1. Buat class Buat class BukuBuku

2.2. Tentukan variable buku: Tentukan variable buku: Judul, Pengarang, Judul, Pengarang, Penerbit dan TahunPenerbit dan Tahun

3.3. Buat konstruktor class Buku dengan Buat konstruktor class Buku dengan parameter: parameter: Judul, Pengarang, Penerbit dan Judul, Pengarang, Penerbit dan TahunTahun

4.4. Buat method Buat method cetakBukucetakBuku

5.5. Buat class Buat class BukuBeraksiBukuBeraksi dan tampilkan 2 buku: dan tampilkan 2 buku:Pemrograman Berbasis Objek dengan Java, Pemrograman Berbasis Objek dengan Java, Indrajani, Elexmedia Komputindo, 2007Indrajani, Elexmedia Komputindo, 2007

Dasar Pemrograman Java, Abdul Kadir, Andi Dasar Pemrograman Java, Abdul Kadir, Andi Offset, 2006Offset, 2006

70

Pemrograman Berorientasi Objek STMIK BANISALEHInheritance (Pewarisan)Inheritance (Pewarisan)Inheritance (Pewarisan)Inheritance (Pewarisan)

ReusabilityReusability

Top down:Top down:Being more Being more specificspecific

Bottom Up:Bottom Up:Find similiarityFind similiarity

Java Keyword: Java Keyword:

extendsextends

71

Pemrograman Berorientasi Objek STMIK BANISALEHSepeda.javaSepeda.javaSepeda.javaSepeda.javaclass Sepeda{class Sepeda{

int kecepatan = 0;int kecepatan = 0;

int gir = 0;int gir = 0;

// method// method

void ubahGir(int pertambahanGir)void ubahGir(int pertambahanGir) { {

gir= gir+ pertambahanGir;gir= gir+ pertambahanGir;

System.out.println("Gir:" + gir);System.out.println("Gir:" + gir);

}}

void tambahKecepatan(int pertambahanKecepatan) void tambahKecepatan(int pertambahanKecepatan) {{

kecepatan = kecepatan+ pertambahanKecepatan;kecepatan = kecepatan+ pertambahanKecepatan;

System.out.println("Kecepatan:" + kecepatan);System.out.println("Kecepatan:" + kecepatan);

}}

}}

72

Pemrograman Berorientasi Objek STMIK BANISALEHClass SepedaGunung Mewarisi Class Class SepedaGunung Mewarisi Class SepedaSepedaClass SepedaGunung Mewarisi Class Class SepedaGunung Mewarisi Class SepedaSepeda

class class SepedaGunung SepedaGunung extendsextends SepedaSepeda{ {

public void spublic void setSadeletSadel(int (int nilaiSadelnilaiSadel) { ) {

System.out.println(“Tinggi Sadel:”+ System.out.println(“Tinggi Sadel:”+ nilaiSadel);nilaiSadel);

} }

} }

class SepedaGunungBeraksi {class SepedaGunungBeraksi {

public static void main(String[] public static void main(String[] args) {args) {

// Membuat object// Membuat object SepedaGunung sepedaku = new SepedaGunung sepedaku = new

sepedaGunung();sepedaGunung();

// Memanggil method di object// Memanggil method di object

sepedaku.tambahKecepatan(10sepedaku.tambahKecepatan(10););

sepedaku.ubahGir(2);sepedaku.ubahGir(2);

sepedaku.setSadel(20);sepedaku.setSadel(20);

}}

}}

73

Pemrograman Berorientasi Objek STMIK BANISALEHLatihanLatihanLatihanLatihan

Buat class Buat class MatematikaCanggih MatematikaCanggih yang yang merupakan merupakan inheritinherit dari class dari class MatematikaMatematika

Tambahkan method Tambahkan method modulusmodulus((int a, int bint a, int b) ) yang myang menghitung modulus dari a dan b. enghitung modulus dari a dan b. Operator modulus adalah %Operator modulus adalah %

BBuat class uat class MatematikaCanggihMatematikaCanggihBeraksiBeraksi yang memanggil methodyang memanggil method pertambahan, pertambahan, parkalian dan modulusparkalian dan modulus

74

Pemrograman Berorientasi Objek STMIK BANISALEH

OOP ConceptOOP Concept

Konsep Lanjut Pemrograman

Berorientasi Objek

Konsep Lanjut Pemrograman

Berorientasi Objek

75

Pemrograman Berorientasi Objek STMIK BANISALEHPolymorphismPolymorphismPolymorphismPolymorphism

PolymorphismPolymorphism: Suatu object dapat : Suatu object dapat memiliki berbagai bentuk, sebagai memiliki berbagai bentuk, sebagai object dari classnya sendiri atau object dari classnya sendiri atau object dari superclassnyaobject dari superclassnya1.1.OverloadingOverloading: Penggunaan : Penggunaan satu nama satu nama

untuk beberapa untuk beberapa method yang berbeda method yang berbeda parameterparameter

2.2.OverridingOverriding: Terjadi ketika deklarasi : Terjadi ketika deklarasi method subclass method subclass sama dengan sama dengan method dari superclassnyamethod dari superclassnya

76

Pemrograman Berorientasi Objek STMIK BANISALEHPolymorphism – Polymorphism – OverloadingOverloadingPolymorphism – Polymorphism – OverloadingOverloadingclass Mobil {class Mobil {

String warna;String warna;

int tahunProduksi;int tahunProduksi;

public Mobil(String warna, int public Mobil(String warna, int tahunProduksi){tahunProduksi){

this.warna = warna;this.warna = warna;

this.tahunProduksi = this.tahunProduksi = tahunProduksi;tahunProduksi;

}}

public Mobil(){public Mobil(){

}}

void info(){void info(){

System.out.println("Warna: System.out.println("Warna: " + this.warna);" + this.warna);

System.out.println("Tahun: System.out.println("Tahun: " + this.tahunProduksi);" + this.tahunProduksi);

}}

}}

public class MobilKonstruktor{public class MobilKonstruktor{

public static void public static void main(String[] args){main(String[] args){

Mobil mobilku = new Mobil mobilku = new Mobil(“Merah”, 2003);Mobil(“Merah”, 2003);

mobilku.info();mobilku.info();

Mobil mobilMobil mobilmumu = new = new Mobil();Mobil();

mobilmobilmu.mu.info();info();

}}

}}

77

Pemrograman Berorientasi Objek STMIK BANISALEHContoh Lain OverloadingContoh Lain OverloadingContoh Lain OverloadingContoh Lain Overloading

class Lingkaran{class Lingkaran{

public public buatLingkaran(int diameter)buatLingkaran(int diameter){{

......

}}

public public buatLingkaran(int diameter, int x, int y)buatLingkaran(int diameter, int x, int y){{......

}}

public public buatLingkaran(int diameter, int x, int y, buatLingkaran(int diameter, int x, int y, int warna, String namaLingkaran)int warna, String namaLingkaran){{......

}}

}}

78

Pemrograman Berorientasi Objek STMIK BANISALEHPolymorphism - Polymorphism - OverridingOverridingPolymorphism - Polymorphism - OverridingOverridingclass Sepeda{class Sepeda{

int kecepatan = 0;int kecepatan = 0;

int gir = 0;int gir = 0;

// method// method

void ubahGir(int pertambahanGir)void ubahGir(int pertambahanGir) { {

gir= gir+ pertambahanGir;gir= gir+ pertambahanGir;

System.out.println("Gir:" + gir);System.out.println("Gir:" + gir);

}}

void tambahKecepatan(int pertambahanKecepatan) void tambahKecepatan(int pertambahanKecepatan) {{

kecepatan = kecepatan+ pertambahanKecepatan;kecepatan = kecepatan+ pertambahanKecepatan;

System.out.println("Kecepatan:" + kecepatan);System.out.println("Kecepatan:" + kecepatan);

}}

}}

79

Pemrograman Berorientasi Objek STMIK BANISALEHClass SepedaGunung Mewarisi Class Class SepedaGunung Mewarisi Class SepedaSepedaClass SepedaGunung Mewarisi Class Class SepedaGunung Mewarisi Class SepedaSepeda

class class SepedaGunung SepedaGunung extendsextends Sepeda Sepeda { {

void ubahGir(int void ubahGir(int pertambahanGir)pertambahanGir) { {

int gir= int gir= 2*(gir+ 2*(gir+ pertambahanGir )pertambahanGir );;

System.out.println("Gir:" + System.out.println("Gir:" + gir);gir);

}}

} }

class SepedaGunungBeraksi {class SepedaGunungBeraksi {

public static void main(String[] public static void main(String[] args) {args) {

// Membuat object// Membuat object SepedaGunung sepedaku = new SepedaGunung sepedaku = new

sepedaGunung();sepedaGunung();

// Memanggil method di object// Memanggil method di object

sepedaku.tambahKecepatan(10sepedaku.tambahKecepatan(10););

sepedaku.ubahGir(2);sepedaku.ubahGir(2);

sepedaku.setSadel(20);sepedaku.setSadel(20);

}}

}}SepedaGunung.javaSepedaGunung.java SepedaGunungBeraksi.javaSepedaGunungBeraksi.java

80

Pemrograman Berorientasi Objek STMIK BANISALEHLatihanLatihanLatihanLatihan

1.1. Kembangkan class Kembangkan class MatematikaMatematika dan dan MatematikaBeraksiMatematikaBeraksi

2.2. Lakukan Lakukan overloading pada Method overloading pada Method yang yang ada (pertambahan, pengurangan, ada (pertambahan, pengurangan, perkalian, pembagian) . Method baru perkalian, pembagian) . Method baru adalah bertipe data adalah bertipe data doubledouble (pecahan) dan (pecahan) dan memiliki 3 parametermemiliki 3 parameter

3.3. Uji di kelas Uji di kelas MatematikaBeraksiMatematikaBeraksi dengan dengan parameter pecahan: 12.5, 28.7, 14.2parameter pecahan: 12.5, 28.7, 14.2

4.4. Misalnya: Misalnya: pertambahan(12.5, 28.7, 14.2)pertambahan(12.5, 28.7, 14.2)pertambahan(23, 34)pertambahan(23, 34)

81

Pemrograman Berorientasi Objek STMIK BANISALEHMatematika.javaMatematika.javaMatematika.javaMatematika.javaclass Matematika{class Matematika{

int hasilPertambahanBulat;int hasilPertambahanBulat;

double hasilPertambahanPecahan;double hasilPertambahanPecahan;

public void public void pertambahan (int a, int b)pertambahan (int a, int b){{

hasilPertambahanBulat = a + b;hasilPertambahanBulat = a + b;

System.out.println(“hasil:” + hasilPertambahanBulat);System.out.println(“hasil:” + hasilPertambahanBulat);

}}

public void public void pertambahan (double a, double b, double c)pertambahan (double a, double b, double c){{

hasilPertambahanPecahan = a + b + c;hasilPertambahanPecahan = a + b + c;

System.out.println(“hasil:” + hasilPertambahanPecahan);System.out.println(“hasil:” + hasilPertambahanPecahan);

}}

......

}}

82

Pemrograman Berorientasi Objek STMIK BANISALEHPackagesPackagesPackagesPackages

PPackage ackage adalah adalah koleksi dari beberapa koleksi dari beberapa class dan interface yang berhubungan, class dan interface yang berhubungan, dan menyediakan proteksi akses dan dan menyediakan proteksi akses dan pengelolaan namespacepengelolaan namespace

1 package 1 package adalah adalah 1 subfolder 1 subfolder di di file file systemsystem

Package sangat berguna untuk Package sangat berguna untuk mengorganisir file dalam suatu project mengorganisir file dalam suatu project atau libraryatau library

Nama package menggunakan lowercaseNama package menggunakan lowercase

Keyword: Keyword: package name;package name;

83

Pemrograman Berorientasi Objek STMIK BANISALEHBudi.javaBudi.javaBudi.javaBudi.java

package kelasku;package kelasku;

publicpublic class Budi{ class Budi{

public void info(){public void info(){

System.out.println(“Kelas System.out.println(“Kelas Budi”);Budi”);

}}

}}

84

Pemrograman Berorientasi Objek STMIK BANISALEHJoko.javaJoko.javaJoko.javaJoko.java

package kelasku;package kelasku;

publicpublic class Joko{ class Joko{

public void info(){public void info(){

System.out.println(“Kelas System.out.println(“Kelas Joko”);Joko”);

}}

}}

85

Pemrograman Berorientasi Objek STMIK BANISALEHPaketBeraksi.javaPaketBeraksi.javaPaketBeraksi.javaPaketBeraksi.java

import kelasku.*;import kelasku.*;

public class PaketBeraksi{public class PaketBeraksi{

public static void main(String[] args){public static void main(String[] args){

Budi objectBudi = new Budi();Budi objectBudi = new Budi();

objectBudi.info();objectBudi.info();

Joko objectJoko = new Joko();Joko objectJoko = new Joko();

objectJoko.info();objectJoko.info();

}}

}}

86

Pemrograman Berorientasi Objek STMIK BANISALEHStruktur DirektoriStruktur DirektoriStruktur DirektoriStruktur Direktori

PaketBeraksi.javaPaketBeraksi.java

kelaskukelaskuBudi.javaBudi.java

Joko.javaJoko.java

87

Pemrograman Berorientasi Objek STMIK BANISALEHInterfaceInterfaceInterfaceInterface

Interface digunakan apabila kita Interface digunakan apabila kita ingin menentukan apa yang harus ingin menentukan apa yang harus dilakukan oleh suatu class tapi dilakukan oleh suatu class tapi tidak menentukan bagaimana cara tidak menentukan bagaimana cara untuk melakukannyauntuk melakukannya

Interface sebenarnya sama dengan Interface sebenarnya sama dengan class, tapi hanya memiliki class, tapi hanya memiliki deklarasi deklarasi method tanpa implementasimethod tanpa implementasi

88

Pemrograman Berorientasi Objek STMIK BANISALEHInterfaceBeraksi.javaInterfaceBeraksi.javaInterfaceBeraksi.javaInterfaceBeraksi.java

class Lampu class Lampu implementsimplements IntLampu{ IntLampu{ int statusLampu=0;int statusLampu=0;

ppublic void ublic void hidupkanhidupkan(){(){if (this.statusLampu == KeadaanMati){if (this.statusLampu == KeadaanMati){

this.statusLampu = KeadaanHidup;this.statusLampu = KeadaanHidup;System.out.println("Hidupkan Lampu! --> Lampu Hidup");System.out.println("Hidupkan Lampu! --> Lampu Hidup");

}else{}else{System.out.println("Hidupkan Lampu! --> Lampu Sudah System.out.println("Hidupkan Lampu! --> Lampu Sudah

Hidup Kok");}Hidup Kok");}}}

public void public void matikanmatikan(){(){if (this.statusLampu == KeadaanHidup){if (this.statusLampu == KeadaanHidup){

this.statusLampu = KeadaanMati;this.statusLampu = KeadaanMati;System.out.println("Matikan Lampu! --> Lampu Mati");System.out.println("Matikan Lampu! --> Lampu Mati");

}else{}else{System.out.println("Matikan Lampu! --> Lampu Sudah System.out.println("Matikan Lampu! --> Lampu Sudah

Mati Kok");Mati Kok");}}}}}}

89

Pemrograman Berorientasi Objek STMIK BANISALEHClass Class InterfaceBeraksiInterfaceBeraksiClass Class InterfaceBeraksiInterfaceBeraksi

public class public class InterfaceBeraksiInterfaceBeraksi{{public static void main(String[] args){public static void main(String[] args){

Lampu lampuKamar = new Lampu();Lampu lampuKamar = new Lampu();

System.out.println("Status Lampu Saat Ini: System.out.println("Status Lampu Saat Ini: Mati");Mati");

lampuKamar.hidupkan(); //Hidupkan LampulampuKamar.hidupkan(); //Hidupkan LampulampuKamar.matikan(); //Matikan LampulampuKamar.matikan(); //Matikan LampulampuKamar.matikan(); //Matikan LampulampuKamar.matikan(); //Matikan LampulampuKamar.hidupkan(); //Hidupkan LampulampuKamar.hidupkan(); //Hidupkan LampulampuKamar.hidupkan(); //Hidupkan LampulampuKamar.hidupkan(); //Hidupkan Lampu

}}}}

90

Pemrograman Berorientasi Objek STMIK BANISALEHLatihanLatihanLatihanLatihan

Buat program serupa dengan Buat program serupa dengan InterfaceBeraksi.java tapi untuk InterfaceBeraksi.java tapi untuk ACBeraksi.javaACBeraksi.java

Masukkan method-method di Masukkan method-method di bawah ke dalam bawah ke dalam ACBeraksi.javaACBeraksi.java

matikanAC() dan hidupkanAC()matikanAC() dan hidupkanAC()

dinginkanAC() dan panaskanAC ()dinginkanAC() dan panaskanAC ()