KATA PENGANTAR
Atas
asung kerta wara nugraha Ida Sang Hyang Widhi Wasa Tuhan Yang Maha Esa, karena
berkat rahmat-Nya penulis dapat menyelesaikan makalah ini tepat pada waktunya.
Adapun
tujuan penulis menyusun makalah ini adalah untuk memperoleh penilaian pada mata
kuliah Pemrograman Berorientasi Objek 1. Penulis menyadari bahwa makalah ini
masih jauh dari sempurna, mengingat keterbatasan penulis dalam hal pengetahuan,
pengalaman dan kemampuan . Oleh karena itu penulis mengharapkan kritik dan
saran yang membangun dari para pembaca untuk kesempurnaan makalah ini. Semoga makalah ini dapat bermanfaat dan
berguna bagi kita semua.
Penulis
BAB
I
PENDAHULUAN
1.1
Latar Belakang
Pemrograman berorientasi objek adalah metode pemrograman
tercanggih untuk saat ini dibandingkan dengan metode perograman terdahulu. Pada
masa awal pemrograman metode yang digunakan ibarat menulis buku tanpa ada nomor
halamannya dan juga indeks. Nama variabelnya dideklarasikan dua atau satu huruf
saja dengan tingkat akses global. Ketika akan mencari sebuah alur
logika(fungsi) untuk mengkaji ulangnya akan sangat menyusahkan.contoh bahasa
pada saat ini adalah BASIC.
Pada era selanjutnya sekitar tahun 1960 masuklah metode pemrograman terstruktur (Structured programing) dimana variable
di deklarasikan dengan rangkaian huruf yag lebih inovatif dan telah ada
pembagian ruang lingkup variable yang terdiri dari local dan global. Saat ini
telah ada pendekatan top – down dari
sebuah rangkaian logika yag disebut Prosedur. Bahasa C , Pascal adalah contoh
bahasa pemrograman yang masuk era ini.
Selanjutnya kemudian berkembang metode pemrograman
berorientasi objek(object oriented
programing) . Java merupakan contoh dari bahasa berorientasi objek. Semua
program dalam java adalah objek .Ada beberapa cirri dari pemrograman
berorietasi objek yaitu Abstraksi, encapsulation(pebungkusan), inheritance
(pewarisan), Polimorphism (polimorfisme). Selain cirri cirri diatas terdapat
lagi beberapa komponen-komponen lainnya seperti kelas, method, konstraktor, serta
overloading. Untuk memahami tentang pemrograman berorientasi objek pada jam aka
komponen-komponen tersebut akan dijelaskan pada bagian pembahasan .
1.2
Rumusan Masalah
1.
Apa yang dimaksud Overload Method
2.
Apa yang dimaksud Overload
Konstruktor
3.
Apa yang dimaksud Inheritance
4.
Apa yang dimaksud Encapsulation
5.
Apa yang dimaksud Polymorphism
1.3
Tujuan Penulisan
1.
Mengetahui pengertian dan memahami Overload
Method.
2.
Mengetahui pengertian dan memahami Overload Konstruktor.
3.
Mengetahui pengertian dan memahami Inheritance.
4.
Mengetahui pengertian dan memahami Encapsulation.
5.
Mengetahui pengertian dan memahami Polymorphism
1.4
Manfaat
1.
Menamabah wawasan tentang Overload
Method.
2.
Menamabah wawasan tentang Overload Konstraktor
3.
Menamabah wawasan tentang Inheritance.
4.
Menambah wawasan tentang
Encapsulation.
5.
Menambah wawasan tentang
Polymorphism
1.5
Hipotesa
1.
Menurut pendapat penulis Overload
Method yaitu cara
untuk memberikan nama yang sama kepada dua method yang berbeda meski dua method
tersebut berada dalam class yang sama.
2.
Menurut pendapat penulis Overload
Konstruktor yaitu cara
untuk memberikan nama yang sama kepada dua konstruktor yang berbeda meski dua konstruktor tersebut
berada dalam class yang sama.
3.
Menurut pendapat penulis Inheritance
yaitu salah satu cirri dalam PBO dimana dalam suatu program, suatu kelas dapat
diturunkan menjadi kelas-kelas baru yang mewarisi sifatnya induknya.
4.
Menurut pendapat penulis
Encapsulation yaitu pembungkusan kode dan data kedalam satu entitas tunggal
yang disebut dengan objek.
5.
Menurut pendapat penulis
Polymorphism yaitu kemampuan suatu objek untuk mengungkap banyak hal melalui
satu cara yang sama.
BAB
II
PEMBAHASAN
2.1 Overload Method
Method overloading adalah suatu
cara untuk memberikan nama yang sama kepada dua method yang berbeda meski dua
method tersebut berada dalam class yang sama. Hal ini dapat dilakukan dengan
cara membedakan tipe parameter, jumlah parameter dan susunan parameter. Untuk
lebih jelasnya perhatikan contoh dibawah ini :
public class MethodOverload {
public void testOverloadedMethods() {
System.out.printf("Square of integer 7 is %d\n",
square(7));
System.out.printf("Square
of double 7.5 is %f\n", square(7.5));
}
public int square(int intValue) {
System.out.printf("\nCalled square with int argument:
%d\n",
intValue);
return
intValue * intValue;
} public
double square(double doubleValue) {
System.out.printf("\nCalled square with double argument:
%f\n",
doubleValue);
return
doubleValue * doubleValue;
}
}
//Untuk test
dari class method overloading diatas adalah dibawah ini :
public class MethodOverloadTest {
public static
void main(String args[]) {
MethodOverload methodOverload = new MethodOverload();
methodOverload.testOverloadedMethods();
}
}
2.2 Overload
Konstruktor
Konstruktor pada Java merupakan
method khusus yang dipakai oleh Java untuk membuat sebuah object didalam kelas
dan tiap kelas boleh memiliki lebih dari satu konstruktor.
Karakteristik konstruktor :
·
Nama
Konstruktor = Nama Kelas
·
Tidak
mengembalikan nilai termasuk void.
·
Cara
menggunakan konstruktor adalah dengan menggunakan kata kunci new.
Jika didalam kelas tidak dituliskan
konstruktor, Java akan secara default menambahkan konstruktor kosong kedalam
kelas tersebut. Overloading di Java diterpakan didalam method/fungsi. Dengan
overloading dapat dibuat method dengan nama yang sama tetapi berbeda
parameternya. Java sendiri akan menggunakan daftar parameter-parameter itu
sebagai acuan untuk method manakah yang akan dijalankan. atau dengan kata lain . Overloading merupakan
bentuk dari polimorfisme, yaitu beberapa method dapat memiliki nama yang sama
dengan isi dan parameter yang berbeda di dalam sebuah class.
contoh penggunaan konstruktor dan
overloading :
Contoh dalam program
Belajar.java
class belajar{
public String x =”Pintar”;
private String y = “Java”;
}
Pintar.Java
public class Pintar{
public static void main(String[]args){
Coba panggil = new Belajar();
System.out.println(“Panggil X : “+panggil.x);
System.out.println(“Panggil Y : “+panggil.y);
}
}
int hasil;
//
konstruktor awal
Perkalian(int
angka){
hasil = 1;
for(int i=1;
i<angka; i++) hasil *= i;
}
//
overloading konstruktor
Perkalian(int
a, int b){
hasil = a*b;
}
//
overloading konstruktor dari konstruktor lain
Perkalian(Perkalian kali){
hasil =
kali.hasil;
}
}
class
DemoPerkalian {
public static
void main(String args[]){
Perkalian p1
= new Perkalian(4);
Perkalian p2
= new Perkalian(2,4);
Perkalian p3
= new Perkalian(p1); // parameter konstruktor dari objek p1
System.out.println("Hasil konstruktor
pertama : "+p1.hasil);
System.out.println("Hasil konstruktor
yang kedua : "+ p2.hasil);
System.out.println("Hasil konstruktor
yang ketiga : "+ p3.hasil);
}
}
2.3 Inheritence (pewarisan)
Inheritance adalah salah satu
teknik pemrograman berorientasi object yang digunakan agar suatu coding dapat digunakan kembali oleh programmer lain /
reuseable. Hal tersebut dilakukan dengan cara membuat turunan dari suatu class
yang sudah ada, yaitu dengan membuat child class. Contohnya adalah jika ada
programmer yang membuat suatu class yaitu shape yang memiliki atribut atribut
luas, dan position kita tidak perlu membuat class baru ketika kita ingin
membuat suatu class rectangle yang notabennya juga termasuk shape, jadi kita
cuma perlu untuk menurunkan class shape tadi ke class rectangle yang akan kita
buat. Analogi yang lainnya adalah seperti seorang anak yang yang akan mewarisi
sifat atau perilaku dari kedua orang tuanya. Pemrograman berorientasi objek
dalam hal program dalam suatu kelas dapat diturunkan menjadi kelas –kelas baru
yang akan mewarisi beberapa sifat dari kelas induknya.Misalnya kita membuat
kelas A maka kita dapat membuat kelas kelas turunan dari kelas A( Misal kelas
B) yang akan mewarisi sifat dari kelas A. Dalam java , kelas induk disebut super
class dan kelas turunannya disebut sub class.
contoh program :
//class Person.java
public class
Person {
protected
String name;
protected int
age;
public
Person(String name, int age) {
this.name
= name;
this.age
= age;
}
public String
getName() {
return
this.name;
}
public int getAge()
{
return
this.age;
}
}
//class Student.java
public class
Student extends Person {
private String schoolName;
public
Student(String name, int age, String schoolName) {
super(name, age);
this.schoolName = schoolName;
}
public String
getSchoolName() {
return
this.schoolName;
}
}
//class Main.java
public class
Main {
public
static void main(String[] args) {
Person
person = new Person("Yohanda", 19);
Student
student = new Student("Mandala", 18, "SMAN 2");
System.out.println("Informasi tentang object person : ");
System.out.println("Name : " + person.getName());
System.out.println("Age : " + person.getAge());
System.out.println();
System.out.println("Informasi tentang object student : ");
System.out.println("Name : " + student.getName());
System.out.println("Age : " + student.getAge());
System.out.println("School Name : " + student.getSchoolName());
}
}
2.4 Encapsulation
Enkapsulasi adalah pembungkus,
pembungkus disini dimaksudkan untuk menjaga suatu proses program agar tidak
dapat diakses secara sembarangan atau di intervensi oleh program lain. Konsep enkapsulasi
sangat penting dilakukan untuk menjaga kebutuhan program agar dapat diakses
sewaktu-waktu, sekaligus menjaga program tersebut.
Dalam kehidupan sehari hari
enkapsulasi dapat dimisalkan sebagai arus listrik pada generator, dan sistem
perputaran generator untuk menghasilkan arus listrik. Kerja arus listrik tidak
mempengaruhi kerja dari sistem perputaran generator, begitu pula sebaliknya.
Karena didalam arus listrik tersebut, kita tidak perlu mengetahui bagaimana
kinerja sistem perputaran generator, apakah generator berputar kebelakang atau
ke depan atau bahkan serong. Begitu pula dalam sistem perputaran generator,
kita tidak perlu tahu bagaimana arus listrik, apakah menyala atau tidak.
Begitulah konsep kerja dari
enkapsulasi, dia akan melindungi sebuah program dari akses ataupun intervensi
dari program lain yang mempengaruhinya. Hal ini sangat menjaga keutuhan program
yang telah dibuat dengan konsep dan rencana yang sudah ditentukan dari awa
·
Tingkat
akses private
Dengan
menggunakan akses private maka data dan method tersebut hanya dapat di akses
oleh kelas yang memilikinya, untuk mendeklarasikan data atau method dengan
tingkat akses private gunakan kata kunci private.
·
Tingkat
akses protected
Dengan
menggunakan tingkat akses protected maka data dan method dapat diakses oleh
kelas yang memilikinya dan juga kelas-kelas yang maih memiliki hubungan
turunannya. Misalnya apabila data X terdapat pada kelas A dan kelas A dideklarasikan sebagai
protected maka kelas B(merupakan kelas
turunannya A) akan dapat mengakses data tersebut, namun data tersebut tidak
akan bisa diakses oleh kelas C(misalkan bahwa kelas C bukan turunan kelas A) .
Untuk membuat kelas dengan tingkat akses protected cukup ditambahkan kata kunci
berupa protected.
·
Tingkat
akses public
·
Dengan
menggunakan akses public maka ini merupakan kebalikan dari tingkat akses
private . Data atau method dengan tingkat akses public akan dapat diakses oleh
semua kelas yang ada dikeseluruhan program. Untuk mendeklarasikan method atau
data dengan tingkat akses public menggunakan kata kunci public.
Contoh dalam program
Belajar.java
class belajar{
public String x =”Pintar”;
private String y = “Java”;
}
Pintar.Java
public class Pintar{
public static void main(String[]args){
Coba panggil = new Belajar();
System.out.println(“Panggil X : “+panggil.x);
System.out.println(“Panggil Y : “+panggil.y);
}
}
Tipe public dan private mempunyai
fungsi yang berbeda. Fungsi public yang terdapat dalam class Coba pada variable
x, memungkinkan nilai dari variable x dapat diakses oleh class Belajar.
Sedangkan variable y yang menggunakan fungsi private tidak dapat dipanggil
didalam class Belajar.
2.5 Polymorphism
contoh program :
class kendaraan {
public void bahanbakar (){
System.out.println("kendaraan
berbahanbakar :");
}
}
// Membuat kelas turunan mobil yang
merupakan turunan dari class kendaraan :
class mobil extends kendaraan {
public void bahanbakar(){
System.out.println(" MOBIL bahan
bakar bensin");
}
}
|
contoh program :
class kendaraan {
public void bahanbakar (){
System.out.println("kendaraan
berbahanbakar :");
}
}
// Membuat kelas turunan mobil yang merupakan
turunan dari class kendaraan :
class mobil extends kendaraan {
public void bahanbakar(){
System.out.println(" MOBIL bahan bakar
bensin");
}
}
//Membuat kelas turunan
kereta api yang merupakan turunan dari class kendaraan :
class keretaapi extends kendaraan {
public void bahanbakar (){
System.out.println("KERETA API bahan bakar
batu bara");
}
}
//Membuat kelas turunan pesawat yang merupakan
turunan dari class kendaraan :
class pesawat extends kendaraan {
public void bahanbakar(){
System.out.println("PESAWAT berbahan
bakar Bensol");
}
}
// Membuat class bahanbakarkendaraan untuk
mengetes class-class yang telah dibuat :
public class bahanbakarkendaraan {
public static void main(String[] args){
kendaraan kendaraan = new kendaraan();
mobil MOBIL = new mobil();
keretaapi KERETAAPI = new keretaapi();
pesawat PESAWAT = new pesawat();
kendaraan.bahanbakar();
kendaraan = MOBIL;
kendaraan.bahanbakar();
kendaraan = KERETAAPI;
kendaraan.bahanbakar()
kendaraan = PESAWAT;
kendaraan.bahanbakar();
}
BAB
III
PENUTUP
3.1 Simpulan
Pemrograman berorientasi objek
adalah metode pemrograman tercanggih untuk saat ini dibandingkan dengan metode
perograman terdahulu. Java merupakan contoh dari bahasa berorientasi objek.
Semua program dalam java adalah objek .Ada beberapa cirri dari pemrograman
berorietasi objek yaitu Abstraksi, encapsulation(pebungkusan), inheritance
(pewarisan), Polimorphism (polimorfisme). Selain cirri cirri diatas terdapat
lagi beberapa komponen-komponen lainnya seperti kelas, method, konstraktor, serta
overloading.
·
Overload Method yaitu cara untuk
memberikan nama yang sama kepada dua method yang berbeda meski dua method
tersebut berada dalam class yang sama.
·
Overload Konstruktor yaitu cara
untuk memberikan nama yang sama kepada dua konstruktor yang berbeda meski dua konstruktor tersebut
berada dalam class yang sama.
·
Inheritance yaitu salah satu cirri
dalam PBO dimana dalam suatu program, suatu kelas dapat diturunkan menjadi
kelas-kelas baru yang mewarisi sifatnya induknya.
·
Encapsulation yaitu pembungkusan
kode dan data kedalam satu entitas tunggal yang disebut dengan objek.
·
Polymorphism yaitu kemampuan suatu
objek untuk mengungkap banyak hal melalui satu cara yang sama.
DAFTAR
PUSTAKA
·
Harfit Benaya Putra, Eko Priyo Utomo, Kitab suci desktop programmer,
2011,Penerbit Mediakom,Yogyakarta
}
sangat recomended untuk di baca
ReplyDeleteMy blog