Object Oriented Programming
Class, Object, Atribute, Method, Constructor
Gia MuhammadCCIT-FTUI 2009, NIIT Software Engineering, J2EEUIN Syarif Hidayatullah Jakarta, Software Engineering
SpesialisasiDigital Image Processing & Artificial IntelligenceComputer Vision, Computer Graphic, Augmented Reality
[email protected] : giamuhammad
Java & OOPJava Merupakan High Level LanguageJava merupakan bahasa object oriented
programming yang terbaik dari yang sudah ada (C++, Ada, Simula)
Selain OOP, Java memiliki karakteristik lain diantaranya, Simple, Terdistribusi, Multi Threaded, Secure, Multi Platform, Garbage Collector, dll
Multi Platform. 1 Kali menulis kode, 1 kali kompilasi, eksekusi dibanyak platform (Write Once, Running Everywhere)
Arsitektur JavaJVM (Java Virtual Machine)JIT (Just in Time) Compiler
Dasar AlgoritmaSequential
if – else if - elseLooping
ForDo - whileWhile
SelectiveSwitch - case
Tipe Data Tipe data primitif
int char float double Boolean long short byte
Tipe data pada Java Object (Tipe data parrent dari semua tipe data) String Integer Double Float Byte
Pada dasarnya tipe data di java adalah sebuah class
Access Specifier/Modifierprivate
Hanya dapat diakses oleh class-nya sendirifriendly
Hanya dapat diakses oleh class yang ada pada 1 package
protectedHanya dapat diakses oleh subclass-nya
publicDapat diakses oleh class apa saja
(Information Hidding)
OOP – KeuntunganReal World Programming
Kode bisa mengikuti perilaku yang ada pada dunia nyataReusability of Code
Kode yang dibuat dapat dipakai berkali-kali dengan tujuan yang berbeda-beda
Modularity of CodeKode pada modul dapat di-maintain dengan mudah tanpa
mengganggu modul yang lainResillence to change
Perluasan sistem tidak memerlukan perombakan kode lagiInformation Hidding
Kode dapat disembunyikan dari akses kode-kode yang lain
OOP – Class dan ObjectClass Terdiri dari
Atribut/Data Member/Variable Global Behaviour/Metode/Fungsi
Object Merupakan ‘instance’ dari sebuah Class Class yang telah dibuat dapat berkali-kali dipakai dengan cara
membuat objectnyaContoh
Class Manusia memiliki atribut warna kulit, nama dan identitas lainnya Memiliki perilaku(fungsi) seperti makan, berjalan, belajar, tumbuh dan
lainnya. (Real-World Programming) Object dari Class Manusia
Object pertama adalah “Budi” dari class Manusia, Object yang kedua adalah “Andi” dari class Manusia. Masing-masing objek dapat membedakan. (Reusability of Code)
OOP – Class dan Object<modifer> class <nama class> {<atribut><fungsi>
}--------------------------------public class Manusia {String nama;Color warna_kulit;void Berjalan() {// statement/algoritma agar // manusia dapat berjalan}
}
Buatlah Class Hewan apa saja yang memiliki atribut dan perilaku(fungsi)(statement/algoritma pada fungsi kosongkan saja)
Menjalankan ProgramMain, merupakan fungsi baku sebagai fungsi
start-up/launcher
Gunakan kode tersebut pada class yang akan dijalankan pertama kali
Compiling Codejavac <nama_class>.java | cth : javac Manusia.java
Menjalankan Programjava Manusia
public static void main(String[] args) {
}
Membuat ObjectSebelum membuat object, program tidak
akan mengetahui bahwa class yang dibuat untuk apa.
Cara membuat objectnama_class nama_objek = new nama_class();
ataunama_class nama_objek = new
nama_constructor();Nama object bisa juga disebut nama variable
Mengakses Atribut dan Fungsi dengan Objectnama_class nama_objek = new nama_class();nama_object.nama_atribut;nama_object.nama_method();----------Manusia m1 = new Manusia();m1.nama;
Buatlah Object dan Tampilkan/cetak salah satu atribut dari class
Membuat Method/Fungsi
<modifier> <tipe_data> <nama_method> (<parameter>) {// algoritma/statement
}-----------------------public void Berjalan() {
}
Method atau Fungsi digunakan agar Class memiliki Perilaku dan memiliki tindakan tertentu
Method/Fungsi dengan parameter
public void Hitung(int harga, int jumlah) {total = harga * jumlah;
}
Method/Fungsi Return
public int Hitung(int harga, int jumlah) {return (harga * jumlah);
}
-----------------int hasil = this.Hitung(5000, 5);
Method/Fungsi Rekursif
public void Hitung(int harga, int jumlah) {this.Hitung(harga, jumlah);
}
Fungsi Rekursif merupakan fungsi yang memanggil fungsi dirinya sendiri
Method/Fungsi Overloading
public int Hitung(int harga) {return harga * 5;
}
public int Hitung(int harga, int jumlah) {return harga * jumlah;
}
Fungsi Overloading merupakan deklarasi fungsi dengan modifier, tipe data dan nama fungsi yang sama dengan parameter yang berbeda-beda
Konstruktor
public class Manusia {public Manusia() {
}}
•Konstruktor merupakan fungsi yang akan dijalankan secara otomatis ketika object dari suatu class dibuat.•Konstruktor bisa dilakukan dengan cara Overloading.•Konstruktor tidak memakai tipe data
Penggunaan keyword ‘this’
public class Manusia {String nama;public Manusia() {this.Bergerak();this.nama = “Andi”;}
public Bergerak() {
}}
•Keyword this dipakai untuk memanggil atribut dan fungsi pada class dirinya sendiri tanpa harus membuat object dari class dirinya sendiri
Penggunaan ‘static’public class Manusia {
String nama;public Manusia() {this.Bergerak();this.nama = “Andi”;}
public Bekerja() {Pisau.target = “Kayu”;Pisau.Potong();}
}
Public class Pisau {static String target;static void Potong() {System.out.println(“Memotong + “ target);}
}
•Static digunakan jika suatu class hanya akan dipakai 1 instance/object
Latihan Program Kalkulatorimport java.io.*;public class Pegawai {
String nama;public Pegawai(String nama_anda) {this.nama = nama_anda;}
public void Bekerja(int angka1, int angka2) {int hasil = 0;
Kalkulator kal = new Kalkulator();hasil = kal.Tambah(angka1, angka2);System.out.println(this.nama + " menghitung hasil tambah " + angka1 + " dan " + angka2 + ": " + hasil);hasil = kal.Kurang(angka1, angka2);System.out.println(this.nama + " menghitung hasil kurang " + angka1 + " dan " + angka2 + ": " + hasil);}
public static void main(String[] args) {int angka1, angka2;BufferedReader br = new BufferedReader(new InputStreamReader(System.in));try {System.out.print("Masukkan Nama Pegawai : ");Pegawai pgw = new Pegawai(br.readLine());System.out.print("Masukkan Angka Pertama : ");angka1 = Integer.parseInt(br.readLine());System.out.print("Masukkan Angka Kedua : ");angka2 = Integer.parseInt(br.readLine());pgw.Bekerja(angka1, angka2);} catch(Exception e) {}}
}
Latihan Program KalkulatorPublic class Kalkulator {
public int Tambah(int a, int b) {return a+b;
}public int Kurang(int a, int b) {
return a-b;}
}
Tugas 11. Buatlah Fungsi pembagian, perkalian dan pangkat pada class
Kalkulator2. Buatlah Konstruktor tanpa Parameter pada Class Pegawai
untuk meng-set value dari variabel nama menjadi “Nama_Pegawai”. Gunakan teknik Overloading pada Konstruktor. Pada saat membuat objek, panggil konstruktor tersebut.
Kumpulkan tugas beserta gambar dari output programnya dan file program yang sudah di-compile
Kirim Tugas ke email [email protected] lambat Rabu (18 April 2012) Pkl. 23.59Gunakan Subject dengan format Nama | Kelas | Nama TugasCth : Budi | 2OOP1 | Tugas 1