01 Java Concept
-
Upload
andrepsucipto -
Category
Documents
-
view
221 -
download
0
description
Transcript of 01 Java Concept
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”);
}}
}}
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
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
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
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
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 ()