0% menganggap dokumen ini bermanfaat (0 suara)
163 tayangan133 halaman

Modul 0 - Pengenalan OOP

Dokumen tersebut membahas tentang Indra, seorang dosen yang mengajar Object-Oriented Programming. Dokumen ini juga memberikan ringkasan singkat tentang latar belakang pendidikan dan pengalaman kerja Indra serta beberapa konsep dasar mengenai pembelajaran berbasis obyek.

Diunggah oleh

dewot999
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
163 tayangan133 halaman

Modul 0 - Pengenalan OOP

Dokumen tersebut membahas tentang Indra, seorang dosen yang mengajar Object-Oriented Programming. Dokumen ini juga memberikan ringkasan singkat tentang latar belakang pendidikan dan pengalaman kerja Indra serta beberapa konsep dasar mengenai pembelajaran berbasis obyek.

Diunggah oleh

dewot999
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 133

Object-Oriented

Programming

Indra
[email protected]
+628568287734
Indra
SD Selandaka Banyumas (1992)
SMPN 1 Sumpiuh (1998)
SMAN1 Sumpiuh , Banyumas (2001)
S1 FTI Universitas Budi Luhur (2004-2007)
S2 Magister Teknologi Informasi UI (2009-2011)
Research Interests: Mobile Programming, Data
warehouse, Data Mining
Founder UBL Java Group, Tim Gemastik UBL
Lemigas (2007-2008)
LKPP (2011-2012)
Learning Design

Criterion Referenced
Educational Objectives Minimalism
Instruction
(Benjamin Bloom) (John Carroll)
(Robert Mager)

Start Immediately
Cognitive Competencies

Minimize the Reading


Affective Performance
Error Recognition

Psychomotor Evaluation
Self-Contained
Learning Design
Pretest dan Posttest untuk
Mengukur Kompetensi Kognifif
Mahasiwa

Penugasan berbasis Self- Penyajian Materi dengan


Contained Project dan Model Minimalism berbasis
Literatur Review Konsep Amati-Tiru-Modifikasi

Latihan Secara Iteratif untuk


Meningkatkan Kompetensi Kognitif
dan Psikomotorik Mahasiswa
Textbook
Course Outline
1. OOP Concepts:
Konsep dan Paradigma Object-Oriented
2. Java Fundamentals:
Memahami Sintaks dan Grammar Bahasa Java
3. Java GUI:
Swing, GUI Component, Event Handling,
Studi Kasus Aplikasi GUI
4. Java Advanced:
Eksepsi, Thread, Java API, Collection, Algorithms
5. Java Database:
Koneksi ke Database, Studi Kasus Aplikasi Database
PreTest
1. Buatlah program Java sederhana yang
menampilkan tulisan di layar: Halo Jakarta
2. Menurut anda, apakah keunggulan Java
dibandingkan bahasa pemrograman lain?
3. Apakah perbedaan antara bahasa pemrograman
procedural dan object-oriented?
4. Apakah perbedaan antara object dan class pada
object-oriented programming?
5. Apa yang anda pahami tentang variabel dan
method?
OOP Concepts
OOP Concepts
1. Konsep Pemrograman dan Paradigmanya:
Tingkat Bahasa Pemrograman, Paradigma Pemrograman,
2. Teknologi Java dan Perangkat Pemrograman:
Java Family, Perangkat, Instalasi, Kompilasi
3. Konsep Dasar Pemrograman Berorientasi Objek:
Class, Object, Attribute, Method, Constructor
4. Karakteristik Pemrograman Berorientasi Objek:
Abstraction, Encapsulation, Inheritance, Polymorphisme
5. Pengorganisasian Class:
Package, Interface, JAR, Java API Documentation
Konsep Pemrograman
dan Paradigmanya
Bahasa Pemrograman?
Komputer bekerja seperti switching dan hanya
mengenali 0 dan 1
Manusia tidak (paham) berbicara dengan
bahasa 0 dan 1
Perlu bahasa pemrograman yang dapat
menjadi perantara percakapan antara
komputer dan manusia
Bahasa pemrograman diubah ke dalam
bahasa yang dipahami oleh komputer dengan
menggunakan interpreter atau kompiler
Compiler or Interpreter?
1. Compiler:
Mengkompilasi source code
menjadi bentuk file yang bisa
dieksekusi

2. Interpreter:
Mengkompilasi dan menjalankan
source code secara langsung
C Language (Compiler)

#include <stdio.h>
000101000011
001010000100
main() 010010010101
{ C Compiler 010101010010
printf(Hallo);
}

Machine language program


C Program (executable .exe file)
Java Language (Compiler + Interpreter)

javac java
(Java Compiler) (Java Interpreter)
Tingkat Bahasa Pemrograman

1. Bahasa Pemrograman Tingkat Rendah


(Assembler)
2. Bahasa Pemrograman Tingkat Sedang
(C, Pascal, Fortran)
3. Bahasa Pemrograman Tingkat Tinggi
(Java, C++, C#)
Paradigma Pemrograman
Sudut pandang dan style pemrograman
berhubungan dengan bagaimana sebuah masalah
diformulasikan dalam bahasa pemrograman

1. Functional Programming: Urutan fungsi secara


sekuensial (Scheme, Lisp)
2. Procedural Programming: Pemecahan masalah
berdasarkan prosedural kerja yg terkumpul dalam
unit pemrograman bernama fungsi (C, Pascal)
3. Object-Oriented Programming: Koleksi object yang
saling berinteraksi . Class adalah unit pemrograman
(Java, C#, C++)
Teknologi Java dan
Perangkat Pemrograman

Java Family, Perangkat, Instalasi,


Kompilasi
Sejarah Java
James Gosling, Mike Sheridan, and Patrick Naughton
initiated the Java language project in June 1991
The language was initially called Oak after an oak tree
that stood outside Gosling's office
It went by the name Green later, and was later renamed
Java, from a list of random words
Gosling aimed to implement a virtual machine and a
language that had a familiar C/C++ style of notation
Sun Microsystems released the first public
implementation as Java 1.0 in 1995
On May 8, 2007, Sun finished the process, making all of
Java's core code available under free software/open-
source distribution terms (GNU Public License)
Java Family Suite
1. Java Standard Edition
(Java SE)
For desktop, client/server
application

2. Java Enterprise Edition


(Java EE)
For e-business, e-commerce
web based application

3. Java Micro Edition


(Java ME)
For small devices, like palm,
handphone, etc
Java Version

Version Year Important New Features


1.0 1996
1.1 1997 Inner classes
1.2 1998 Swing, Collections
1.3 2000 Performance enhancements
1.4 2002 Assertions, XML
5 2004 Generic classes, enhanced for loop, auto-boxing, enumerations
6 2006 Library improvements
7 2010 Small language changes and library improvements
Why Java?
Simple and familiar object oriented
programming
Architecture neutral (platform independent)
Open Source
First rank in TIOBE Index
De-Facto standard programming language in
education
Programming Paradigm Index
Perangkat Pemrograman Java
1. Compiler (Interpreter):
Java Standard Edition (JSE)

2. Code Editor:
1. Text Editor:
TextPad, Notepad++
2. Integrated Development Environment (IDE):
Netbeans, Eclipse, JCreator
Instalasi Java SE dan Netbeans IDE
1. Instalasi Java SE dengan mengklik:
jdk-7u4-windows-i586.exe
(download dari: http://java.sun.com/javase/downloads)

2. Instalasi Netbeans dengan mengklik:


netbeans-7.1.1-ml-windows.exe
(download dari: http://netbeans.org)

3. Ikuti seluruh proses instalasi sampai selesai


Instalasi Text Editor dan Set Path
Set path dan instalasi text editor diperlukan
untuk yang mengembangkan aplikasi text-
based dengan console

1. Klik Start Control Panel System


Advanced Environment Variables dan set
system PATH:
;C:\Program Files\Java\jdk1.6.0_17\bin
2. Instal text editor untuk editing code:
textpad, notepad++, JCreator
How Java Works?
Jalankan dengan:
public class Hello 1. C:\>java Hello (Application)
public static void main(String[] args){ 2. Web Browser (Applet)
System.out.println("Hello World!");
}
}
Hello.java
javac (java compiler)
Interpreter Interpreter Interpreter Interpreter

Kompiler memproduksi
Bytecode (Class)

Hello.class

Write Once Run Everywhere ! Web Server


Compile and Run Java Applet
import java.applet.*;
import java.awt.*;

public class HelloWorld extends Applet {


public void paint(Graphics g) {
g.drawString("Hello world!",50,25);
}
}
C:\appletviewer Hello.html

<HTML>
<HEAD>
<TITLE>A Simple Program</TITLE>
C:\javac HelloWorld.java </HEAD>
<BODY>
Here is the output of my program:
<APPLET CODE="HelloWorld.class" WIDTH=150
HEIGHT=25>
</APPLET>
</BODY>
</HTML>
Applet on a Web Page
Menulis Program Java
Bentuk program:
1. Text-Based Console Application menggunakan
library non-GUI di Java
2. GUI Application menggunakan AWT atau Swing
untuk library GUI

Suatu class bisa dieksekusi karena memiliki


method main
public static void main(String[] args)
Program Java mulai dari sini!
Latihan: Tulis dan Compile Halo.java
public class Halo{
public static void main(String[] args){
System.out.println(Halo Semarang);
}
}
Latihan: Membuat Program dg Netbeans

public class HelloWorld{


public static void main(String[] args){
System.out.println(Halo Palu);
}
}
Latihan
Buat class HaloIndonesia
Isi HaloIndonesia.java dengan main method
dan tiga tampilan di bawah:
Halo Indonesia
Selamat Pagi Indonesia
Jaya Indonesia
Konsep Dasar Pemrograman
Berorientasi Objek

Class , Object, Method, Attribute


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
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)
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
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)
Class = Method + Variable
Class Sepeda gir

kecepatan variable

tampilkan kecepatan

ubah gir method


Object = Method + Variable yg Memiliki Nilai

Object Sepedaku gir = 3

instance
kecepatan = 10km/jam
variable

tampilkan kecepatan ()
kecepatan = 10 km/jam
instance
method
ubah gir (2)
gir = 5
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
Membuat Class, Object dan Memanggil Atribut
public class Mobil { Mobil.java
String warna;
int tahunProduksi;
}

public class MobilBeraksi{ MobilBeraksi.java


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);
}
}
Latihan: Membuat Program dg Netbeans
1. Buka Netbeans IDE
2. Ikuti langkah berikut
Method
Method adalah urutan instruksi yang
mengakses data dari object
Method melakukan:
1. Manipulasi data
2. Perhitungan matematika
3. Memonitor kejadian dari suatu event
Method
Membuat dan Memanggil Method
public class Mobil2{
String warna; Mobil2.java
int tahunProduksi;

void printMobil(){
System.out.println("Warna: " + warna);
System.out.println("Tahun: " + tahunProduksi);
}
}
public class Mobil2Beraksi{
public static void main(String[] args){
Mobil2Beraksi.java
Mobil2 mobilku = new Mobil2();

mobilku.warna = "Hitam";
mobilku.tahunProduksi = 2006;
mobilku.printMobil();
}
}
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
Latihan: Hasil Tampilan
Handphone hidup
Kring, kring, kring panggilan dilakukan
Dung, dung sms berhasil terkirim
Handphone mati
Latihan
Buat class Mahasiswa yang berisi tiga method:
1. membaca()
2. nyontek()
3. modifikasi()
Isi masing-masing method dengan tampilan status
menggunakan System.out.println()
Buat class MahasiswaBeraksi, dan panggil
method-method diatas dalam class tersebut
Jenis Method: Mutator dan Accessor
Parameter
Sepeda akan berguna apabila ada object lain yang
berinterasi dengan sepeda tersebut
Object software berinteraksi dan berkomunikasi dengan
object lain dengan cara mengirimkan message atau pesan
Pesan adalah suatu method, dan informasi dalam pesan
dikenal dengan nama parameter
Pengiriman Pesan dan Parameter

1. You object pengirim


2. YourBicycle object penerima
3. changeGears pesan berupa method yang dijalankan
4. lowerGear parameter yang dibutuhkan method
(pesan) untuk dijalankan
Sepeda.java
public class Sepeda{
int gir;

// method (mutator) dengan parameter


void setGir(int pertambahanGir) {
gir= gir+ pertambahanGir;
}

// method (accessor)
int getGir() {
return gir;
}
}
SepedaBeraksi.java
public class SepedaBeraksi{
public static void main(String[] args) {
Sepeda sepedaku = new Sepeda();

sepedaku.setGir(1); // menset nilai gir = 1 (sebelumnya 0)


System.out.println(Gir saat ini: + sepedaku.getGir());

sepedaku.setGir(3); // menambahkan 3 pada posisi gir saat ini (1)

System.out.println(Gir saat ini: + sepedaku.getGir());


}
}
Latihan: Class Matematika dan Parameter
Buat Class bernama Matematika, yang berisi method
dengan dua parameter:
pertambahan(int a, int b)
pengurangan(int a, int b)
perkalian(int a, int b)
pembagian(int a, int b)
Buat Class bernama MatematikaBeraksi, yang
mengeksekusi method dan menampilkan:
Pertambahan: 20 + 20 = 40
Pengurangan: 10-5 = 5
Perkalian: 10*20 = 200
Pembagian: 21/2 = 10
Variasi Tampilan
pertambahan(int a, int b){
System.out.println(a + + + b + = + (a+b))
}
pertambahan(int a, int b){
System.out.println(Hasil = + (a+b))
}
pertambahan(int a, int b){
int hasil = a + b;
System.out.println(Hasil = + hasil)
}
Konstruktor -1-
Method yang digunakan untuk memberi nilai
awal pada saat object diciptakan
Dipanggil secara otomatis ketika new digunakan
untuk membuat instan class
Sifat konstruktor:
Nama konstruktor sama dengan nama class
Tidak memiliki nilai balik dan tidak boleh ada kata
kunci void
Konstruktor -2-
public class Mobil { Mobil.java
String warna;
int tahunProduksi;
public Mobil(String warna, int tahunProduksi){
this.warna = warna;
this.tahunProduksi = tahunProduksi;
}
public void info(){
System.out.println("Warna: " + warna);
System.out.println("Tahun: " + tahunProduksi);
}
}
public class MobilKonstruktor{
MobilKonstruktor.java
public static void main(String[] args){
Mobil mobilku = new Mobil(Merah, 2003);
mobilku.info();
}
}
Kata Kunci this
Digunakan pada pembuatan class dan digunakan
untuk menyatakan object sekarang
public class Mobil{ public class Mobil{
String warna; String warna;
int tahunProduksi; int tahunProduksi;

void isiData(String aWarna, void isiData(String warna,


int aTahunProduksi){ int tahunProduksi){

warna = aWarna; this.warna = warna;


tahunProduksi = aTahunProduksi; this.tahunProduksi = tahunProduksi;
} }
Latihan
1. Buat class Bank
Buat konstruktor class Bank dengan parameter: saldo
Buat method: simpanUang, ambilUang, dan getSaldo
2. Buat class BankBeraksi, tetapkan saldo awal lewat
konstruktur Rp. 100000, jalankan 3 method di
atas, dan tampilkan proses sebagai berikut:
Selamat Datang di Bank ABC
Saldo saat ini: Rp. 100000

Simpan uang: Rp. 500000


Saldo saat ini: Rp. 600000

Ambil uang: Rp. 150000


Saldo saat ini: Rp. 450000
Karakteristik Pemrograman
Berorientasi Objek

Abstraction, Encapsulation,
Inheritance, Polymorphism
Abstraction
Cara kita melihat suatu sistem dalam bentuk yang
lebih sederhana, yaitu sebagai suatu kumpulan
subsistem (object) yang saling berinteraksi.
Mobil adalah kumpulan sistem pengapian, sistem
kemudi, sistem pengereman
Alat meng-abstraksikan sesuatu adalah class
Object bersifat modularity. Object dapat ditulis
dan dimaintain terpisah (independen) dari object
lain
Encapsulation
Mekanisme menyembunyikan suatu proses dan data
dalam sistem untuk menghindari interferensi, dan
menyederhanakan penggunaan proses itu sendiri
Tongkat transmisi (gigi) pada mobil
Tombol on/off/pengaturan suhu pada AC
Class access level (public, protected, privat) adalah
implementasi dari konsep encapsulation
Enkapsulasi data dapat dilakukan dengan cara:
1. mendeklarasikan instance variable sebagai private
2. mendeklarasikan method yang sifatnya public untuk
mengakses variable tersebut
Encapsulation dan Access Modifier
Dalam
Dalam Class Dalam Dalam
Modifier Package yang
yang Sama SubClass Package Lain
Sama

private

tanpa

tanda

protected

public
Encapsulation
Enkapsulasi data juga dapat dilakukan dengan cara:
1. mendeklarasikan instance variable sebagai private
2. mendeklarasikan method yang sifatnya public untuk
mengakses variable tersebut
Sepeda.java
public class Sepeda{
int gir;

void setGir(int pertambahanGir) {


gir= gir+ pertambahanGir;
}

int getGir() {
return gir;
}
}
SepedaBeraksi.java
public class SepedaBeraksi{
public static void main(String[] args) {
Sepeda sepedaku = new Sepeda();

sepedaku.setGir(1);
/* Variabel bisa diubah atau tidak sengaja diubah.
Hal ini berbahaya dan sering menimbulkan bug.
Berikan access modifier private pada instance variable */
sepedaku.gir = 3;
System.out.println(Gir saat ini: + sepedaku.getGir());
}
}
Sepeda.java
public class Sepeda{
private int gir; // access modifier private pada instance variable

void setGir(int pertambahanGir) {


gir= gir+ pertambahanGir;
}

int getGir() {
return gir;
}
}
Inheritance (Pewarisan)
Suatu class dapat
mewariskan atribut dan
method kepada class
lain (subclass), serta
membentuk class
hierarchy
Penting untuk
Reusability
Java Keyword:
extends
Sepeda.java
public class Sepeda{
private int gir;

void setGir(int pertambahanGir) {


gir= gir+ pertambahanGir;
}

int getGir() {
return gir;
}
}
Class SepedaGunung Mewarisi Class Sepeda
public class SepedaGunung extends Sepeda{ public class SepedaGunungBeraksi {
public static void main(String[] args) {

private int sadel; SepedaGunung sg=new SepedaGunung();

void setSadel (int jumlah) { sg.setGir(3);


sadel = getGir() - jumlah; System.out.println(sg.getGir());

}
sg.setSadel(1);
System.out.println(sg.getSadel());
int getSadel(){ }
return sadel; }
}
}

SepedaGunung.java SepedaGunungBeraksi.java
Latihan: Inheritance Matematika
1. Buat class MatematikaCanggih yang merupakan
inherit dari class Matematika
1. Tambahkan method modulus(int a, int b) yang
menghitung modulus dari a dan b
2. Operator modulus adalah %

2. Buat class MatematikaCanggihBeraksi yang


memanggil method pertambahan, perkalian dan
modulus
Latihan: Inheritance Matematika
1. Buat class MatematikaCanggihBanget yang
merupakan inherit dari class
MatematikaCanggih
1. Tambahkan method pertambahanTiga(int a, int b, int
c) yang menghitung pertambahan dari a, b dan c
2. a + b + c

2. Buat class MatematikaCanggihBangetBeraksi


yang memanggil method pertambahan,
perkalian, modulus, pertambahanTiga
Polymorphism
Kemampuan untuk memperlakukan object
yang memiliki perilaku (bentuk) yang
berbeda
Implementasi konsep polymorphism:
1. Overloading: Kemampuan untuk menggunakan
nama yang sama untuk beberapa method yang
berbeda parameter (tipe dan atau jumlah)
2. Overriding: Kemampuan subclass untuk menimpa
method dari superclass, yaitu dengan cara
menggunakan nama dan parameter yang sama
pada method
Polymorphism Overloading
class Mobil { public class MobilKonstruktor{
String warna; public static void main(String[] args){
int tahunProduksi; Mobil mobilku = new Mobil(Merah, 2003);
mobilku.info();
public Mobil(String warna, int tahunProduksi){
this.warna = warna; Mobil mobilmu = new Mobil();
this.tahunProduksi = tahunProduksi; mobilmu.info();
} }
}
public Mobil(){
}

void info(){
System.out.println("Warna: " + warna);
System.out.println("Tahun: " + tahunProduksi);
}
}
Polymorphism Overloading
class Lingkaran{
void gambarLingkaran(){
}
void gambarLingkaran(int diameter){
...
}
void gambarLingkaran(double diameter){
...
}
void gambarLingkaran(int diameter, int x, int y){
...
}
void gambarLingkaran(int diameter, int x, int y, int warna, String namaLingkaran){
...
}
}
Polymorphism - Overriding
public class Sepeda{
private int gir;

void setGir(int pertambahanGir) {


gir= gir+ pertambahanGir;
}

int getGir() {
return gir;
}
}
Polymorphism - Overriding
public class SepedaGunung extends Sepeda{ public class SepedaGunungBeraksi {
public static void main(String[] args) {

void setGir(int pertambahanGir) { SepedaGunung sg=new SepedaGunung();


super.setGir(pertambahanGir);
gir = 2*getGir(); sg.setGir(2);
} System.out.println(sg.getGir());

}
sg.setGir(3);
System.out.println(sg.getGir());
}
}

SepedaGunung.java SepedaGunungBeraksi.java
Latihan: Overloading pada Matematika
1. Kembangkan class Matematika,
MatematikaCanggih dan MatematikaBeraksi
2. Lakukan overloading pada Method yang ada
(pertambahan, pengurangan, perkalian, pembagian,
modulus)
3. Tambahkan method baru bertipe data double
(pecahan) dan memiliki 3 parameter
4. Uji di kelas MatematikaBeraksi dengan parameter
pecahan: 12.5, 28.7, 14.2
5. Misalnya:
pertambahan(12.5, 28.7, 14.2) pertambahan(12, 28, 14)
pertambahan(23, 34) pertambahan(3.4, 4.9)
Matematika.java
public class Matematika{
void pertambahan (int a, int b){
int hasil= a + b;
System.out.println(hasil: + hasil);
}

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


double hasil= a + b + c;
System.out.println(hasil: + hasil);
}
...
}
Skill Check
1. Class: HaloSemarang
2. Variable: Mobil
3. Method: Bank
4. Parameter: Matematika
5. Encapsulation: Sepeda
6. Inheritance: MatematikaCanggih
7. Polimorphism: Matematika
Pengorganisasian
Class

Package, Interface, JAR,


Java API Library and
Documentation
Packages
Package adalah koleksi dari beberapa class dan
interface yang berhubungan, dan menyediakan
proteksi akses dan pengelolaan namespace
1 package adalah 1 folder di file system
Package berguna untuk mengorganisir file dalam suatu
project atau library
Nama package menggunakan lowercase
Nama package mengikuti nama domain (perusahaan)
dengan susunan terbalik
Contoh: com.brainmatics.kendaraan
Keyword: package name;
Packages
Packages
Base directory: holds your program's Files
Path name, relative to base directory, must match
package name:
com/horstmann/bigjava/Financial.java
Budi.java
package kelasku;

public class Budi{


public void info(){
System.out.println(Kelas Budi);
}
}
Joko.java
package kelasku;

public class Joko{


public void info(){
System.out.println(Kelas Joko);
}
}
PaketBeraksi.java
import kelasku.Joko;

public class PaketBeraksi{


public static void main(String[] args){
Joko objectJoko = new Joko();
objectJoko.info();
}
}
PaketBeraksi.java
import kelasku.*;

public class PaketBeraksi{


public static void main(String[] args){
Budi objectBudi = new Budi();
objectBudi.info();
Joko objectJoko = new Joko();
objectJoko.info();
}
}
Struktur Direktori
PaketBeraksi.java
kelasku
Budi.java
Joko.java
Interface
Interface digunakan apabila kita ingin
menentukan apa yang harus dilakukan
oleh suatu class tapi tidak menentukan
bagaimana cara untuk melakukannya
Interface sebenarnya sama dengan class,
tapi hanya memiliki deklarasi method
tanpa implementasi
Interface dan Implementation
InterfaceLampu.java

interface InterfaceLampu{
public static final int KEADAAN_HIDUP=1;
public static final int KEADAAN_MATI=0;

public abstract void hidupkan();


public abstract void matikan();
}
Lampu.java
public class Lampu implements InterfaceLampu{
int statusLampu;

public void hidupkan(){


if (statusLampu == KEADAAN_MATI){
statusLampu = KEADAAN_HIDUP;
System.out.println("Hidupkan Lampu! --> Lampu Hidup");
}else{
System.out.println("Hidupkan Lampu! --> Lampu Sudah Hidup Kok");}
}

public void matikan(){


if (statusLampu == KEADAAN_HIDUP){
statusLampu = KEADAAN_MATI;
System.out.println("Matikan Lampu! --> Lampu Mati");
}else{
System.out.println("Matikan Lampu! --> Lampu Sudah Mati Kok");
}
}
}
LampuBeraksi.java
public class LampuBeraksi{
public static void main(String[] args){

Lampu lampuKamar = new Lampu();

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

lampuKamar.hidupkan(); //Hidupkan Lampu


lampuKamar.matikan(); //Matikan Lampu
lampuKamar.matikan(); //Matikan Lampu
lampuKamar.hidupkan(); //Hidupkan Lampu
lampuKamar.hidupkan(); //Hidupkan Lampu
}
}
Latihan: InterfaceAC
Buat program serupa dengan
InterfaceBeraksi.java tapi untuk
ACBeraksi.java
Masukkan method-method di bawah ke
dalam ACBeraksi.java
matikanAC() dan hidupkanAC()
dinginkanAC() dan panaskanAC ()
Kompresi dengan JAR
JAR atau Java Archive adalah metode kompresi
standard dari file-file yang berisi program Java
JAR menampung file .class dan file lain yang
dibutuhkan supaya program bisa berjalan
dengan baik
Kompresi dapat dilakukan setelah semua class
dikompilasi
Penggunaan JAR
Perintah Membuat file JAR:
jar cvf namafile.jar file1.class file2.class

Perintah Melihat isi dalam file JAR:


jar tvf namafile.jar
Perintah Mengekstraksi isi file JAR:
jar xvf namafile.jar
Keterangan Pilihan:
c = create (membuat file JAR)
v = verbose (menampilkan informasi pada layar)
f = filename (daftar nama file yang akan dikompresi)
JAR Manifest
JAR Manifest dibuat secara otomatis dan
diletakkan di dalam folder META-INF pada
file kompresi yang kita buat
JAR Manifest digunakan untuk
mendeskripsikan file-file yang terdalam
dalam file JAR
Java API Library and Documentation
API: Application Programming Interface
API documentation: daftar class dan method di java
library
http://java.sun.com/javase/7/docs/api/index.html
Important Packages in the Java Library

Package Purpose Sample Class


java.lang Language support Math
java.util Utilities Random
java.io Input and output PrintStream
java.awt Abstract Windowing Toolkit Color
java.applet Applets Applet
java.net Networking Socket
java.sql Database Access ResultSet
javax.swing Swing user interface JButton
Document Object Model for XML
omg.w3c.dom Document
documents
API Documentation of the Java Library
API Documentation for the Rectangle Class
Method Summary
Tugas
Kerjakan semua latihan dan tugas yang ada di
slide OOP Concepts
Kirimkan netbeans project yang sudah di zip ke
[email protected]
dengan subject: [OOP1-Universitas] NamaNIM
Deadline: 2 minggu
Meng-copy file orang lain akan menyebabkan
nilai tugas 0
Referensi
1. Sharon Zakhour et al, The Java Tutorial Fourth
Edition, http://java.sun.com/docs/books/tutorial
2. Cay Horstmann, Big Java 4th Edition, John Wiley &
Sons, 2010
3. Cay Horstmann, Java Concepts 6th Edition, John Wiley
& Sons, 2010
4. Deitel & Deitel, Java How to Program 9th Edition,
Prentice Hall, 2010
5. Mark Allen Weiss, Data Structures and Algorithm
Analysis in Java 3rd Edition, 2012

Anda mungkin juga menyukai