Bab I Pendahuluan 3
1.1 Latar Belakang . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Tujuan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Alat dan Bahan . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1
3.5.2 UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.5.2.1 Pembahasan UML . . . . . . . . . . . . . . . . 19
Bab V Kesimpulan 29
Daftar Pustaka 30
Lampiran 31
2
Bab I Pendahuluan
1.1 Latar Belakang
Secara garis besar, bahasa pemrograman komputer adalah sebuah alat yang
dipakai oleh para programmer komputer untuk menciptakan program apli-
kasi yang digunakan untuk berbagai macam keperluan. Pada tahap awal
dikenal beberapa jenis bahasa pemrograman, bahasa ini berbasis teks dan
berorientasi linear contohnya : Bahasa BASIC, Bahasa Clipper, Bahasa Pa-
scal, Bahasa cobol.
Pemrograman berorientasi objek atau object-oriented programming me-
rupakan suatu pendekatan pemrograman yang menggunakan object dan class.
Saat ini konsep OOP sudah semakin berkembang. Hampir semua program-
mer maupun pengengmbang aplikasi menerapkan konsep OOP. OOP buka-
nlah sekedar cara penulisan sintaks program yang berbeda, namun lebih dari
itu, OOP merupakan cara pandang dalam menganalisa sistem dan permasa-
lahan pemrograman. Dalam OOP, setiap bagian dari program adalah object.
Sebuah object mewakili suatu bagian program yang akan diselesaikan.
Beberapa konsep OOP dasar, antara lain:
a. Encapsulation (Class dan Object)
b. Inheritance (Penurunan sifat)
c. Polymorphisme
PHP khususnya PHP 5 sudah mendukung beberapa konsep OOP. Akan
tetapi PHP 5 tidak mendukung konsep Multiple-inheritance dikarenakan kon-
sep Multiple-inheritance terdapat di bahasa pemrograman bahasa C. Tujuan
diadakan penelitian ini adalah Untuk menggambarkan konsep pemrograman
berorientasi objek terhadap bahasa pemrograman lain khususnya PHP.
Dengan adanya konsep pemrograman berorientasi objek, pada bahasa
pemrograman PHP bisa mempermudah para programmer PHP diseluruh
dunia dapat lebih mudah berbagi teknik programing.
Kita bisa membuat suatu class dan programmer lain dapat dengan mu-
dah menggunakannya tanpa perlu mengetahui proses jalannya class tersebut.
Ruang lingkup pada penelitian ini lebih mengarah pada penjelasan konsep
3
pemrograman OOP apa saja yang bisa dan belum bisa berjalan pada bahasa
pemrograman PHP.
1.2 Tujuan
1. Mampu memahami konsep constructor dalam Bahasa Pemrograman
Java.
3. Lyx 2.2
4. StarUML
4
Bab II Dasar Teori
2.1 Pendeklarasian Constructor
PHP memungkinkan pengembangan untuk menyatakan metode constuktor
untuk sebuah class. Class yang memiliki metode construktor memanggil
metode ini pada setiap objek yang baru dibentuk (diinstansiasi), diperlukan
iniliasisasi seblum objek digunakan.
PHP sama konsepnya untuk destructor dengan bahasa berorientasi objek
yang lain seperti C++. Destructor akan segera dipanggil setelah tidak ada
referensi lain. untuk objek tertentu.
Constructor adalah method khusus yang didenisikan di dalam class dan
akan dipanggil secara otomatis setiap kali terjadi instansiasi object. Fungsi
dari constructor adalah untuk memberi nilai awal dari atribut-atribut class
yang bersangkutan. Nama constructor harus sama dengan nama kelas yang
didenisikan. Apabila di dalam program tidak didenisikan sebuah constru-
ctor, maka secara otomatis Java akan membuatkan constructor yang disebut
dengan default constructor. Constructor ini, akan menginisialisasikan se-
mua data yang ada dengan nilai nol, string dengan nilai null, dan variabel
boolean berubah menjadi false.
Contoh :
5
Gambar 2.1 Pendenisian Constructor
Suatu besaran referensi khusus yang digunakan di dalam method yang diru-
juk untuk object yang sedang belaku. Keyword this digunakan ketika nama
atribut yang digunakan dalam constructor sama dengan nama variabel lokal
di dalam class.
Java tidak membatasi jumlah constructor dalam satu class, sehingga me-
mungkinkan sebuah class memiliki lebih dari satu constructor. Multiple
constructor adalah adanya lebih dari satu constructor untuk sebuah class.
Perbedaan antara satu constructor dengan constructor lainnya terletak pada
parameternya, tetapi nama constructor-nya sama.
Contoh :
6
Gambar 2.2 Pendenisian Multiple Constructor
7
Gambar 2.3 Contoh Pewarisan Pada Kelas Hewan
Hewan adalah superclass dari karnivora dan herbivora (subclass). Kelas
turunan karnivora dan herbivora ini memiliki data dan method yang dimiliki
kelas hewan.
Format penulisan untuk membuat subclass adalah :
8
Bab III Algoritma dan UML
3.1 Percobaan Pembuatan Constructor Tanpa
Parameter
3.1.1 Algoritma
1. Mulai
7. Cetak Hasil
8. Selesai
9
3.1.2 UML
Class Diagram
Gambar 3.1 Percobaan Pembuatan Constructor Tanpa Parameter Class
Diagram
10
Activity Diagram
Gambar 3.3 Percobaan Pembuatan Constructor Tanpa Parameter Acti-
vity Diagram
3.2.1 Algoritma
1. Mulai
11
6. Cetak Hasil
7. Selesai
3.2.2 UML
Class Diagram
Gambar 3.4 Percobaan Pembuatan Constructor dengan Satu Parameter
Class Diagram
12
Activity Diagram
Gambar 3.6 Percobaan Pembuatan Constructor dengan Satu Parameter
Activity Diagram
3.3.1 Algoritma
1. Mulai
13
6. Cetak Hasil
7. Selesai
3.3.2 UML
Class Diagram
Gambar 3.7 Percobaan Pembuatan Constructor dengan 3 Parameter Class
Diagram
14
Activity Diagram
Gambar 3.9 Percobaan Pembuatan Constructor dengan 3 Parameter Acti-
vity Diagram
3.4.1 Algoritma
1. Mulai
6. Cetak Hasil
7. Selesai
15
3.4.2 UML
Class Diagram
Gambar 3.10 Percobaan Pembuatan Multiple Constructor Class Diagram
16
Activity Diagram
Gambar 3.12 Percobaan Pembuatan Multiple Constructor Activity Dia-
gram
3.5.1 Algoritma
1. Mulai
17
7. Selesai
3.5.2 UML
Class Diagram
Gambar 3.13 Percobaan Pembuatan Inheritance Class Diagram
18
Activity Diagram
Gambar 3.15 Percobaan Pembuatan Inheritance Activity Diagram
19
Bab IV Hasil dan Analisa
Program
4.1 Percobaan Pembuatan Constructor Tanpa
Parameter
/*
* To change this license header, choose License Headers
in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
/**
*
* @author Farid
*/
/**
* @param args the command line arguments
*/
package praktikum2.pkg1;
class AbsensiMahasiswa{
String Nama;
AbsensiMahasiswa(){
Nama = " ";
}
void CetakkeLayar(){
System.out.println("Nama = " +Nama);
}
}
class Praktikum21 {
public static void main(String[] args) {
20
AbsensiMahasiswa am = new AbsensiMahasiswa();
am.CetakkeLayar();
}
}
4.1.3 Analisa
Dalam percobaan ini error terdapat pada Nama=nama, karena tidak sama
maka timbul error. Karena ini merupakan constructor tanpa parameter, jadi
kita harus menyamakan nya menjadi Nama=Nama.
/*
* To change this license header, choose License Headers
in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
/**
21
*
* @author Farid
*/
/**
* @param args the command line arguments
*/
package praktikum2.pkg2;
class AbsensiMahasiswa{
String Nama;
AbsensiMahasiswa (String Nama){
this.Nama=Nama;
}
void CetakKeLayar(){
System.out.println("Nama = " +Nama);
}
}
public class Praktikum22 {
public static void main(String[] args) {
AbsensiMahasiswa am = new AbsensiMahasiswa
("Farid Syaumi Rizky Ginting");
am.CetakKeLayar();
}
}
22
4.2.3 Analisa
Dalam percobaan ini error terdapat pada Nama=Nama, karena sama ma-
ka timbul error. Error nya berbentuk Nama=null, Karena ini merupakan
constructor satu parameter, jadi kita harus membedakan nya dengan me-
nambahkan this di bagian depan.
/*
* To change this license header, choose License Headers
in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
/**
*
* @author Farid
*/
/**
* @param args the command line arguments
*/
package praktikum2.pkg3;
class AbsensiMahasiswa{
String Nama,NIM;
double Jumlah_Kehadiran;
AbsensiMahasiswa(String Nama, String NIM, int Jumlah_Kehadiran){
this.Nama=Nama;
this.NIM=NIM;
this.Jumlah_Kehadiran = Jumlah_Kehadiran;
}
void CetakKeLayar(){
System.out.println("Nama = " +Nama);
System.out.println("NIM = " +NIM);
System.out.println("Jumlah kehadiran= " +Jumlah_Kehadiran);
System.out.println("Persentase Kehadiran= "+
((Jumlah_Kehadiran/16)*100)+"%");
}
23
}
public class Praktikum23 {
public static void main(String[] args) {
String Farid_Syaumi_Rizky_Ginting = null;
AbsensiMahasiswa am = new AbsensiMahasiswa
("Farid Syaumi Rizky Ginting","150504040",16);
am.CetakKeLayar();
}
}
4.3.3 Analisa
Dalam percobaan ini error terdapat pada String Nama. Karena ini meru-
pakan constructor 3 parameter, jadi kita mendeklarasikan String Nama=null
setelah public static void main(String[] args) { jika tidak maka nama tidak
akan keluar.
/*
* To change this license header, choose License Headers
24
in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
/**
*
* @author Farid
*/
/**
* @param args the command line arguments
*/
package praktikum2.pkg4;
class DataMahasiswa{
String Nama, NIM,Berat_Badan;
DataMahasiswa(){
Nama = " ";
NIM = " ";
Berat_Badan = " ";
}
DataMahasiswa(String Nama, String NIM, String Berat_Badan){
this.Nama = Nama;
this.NIM = NIM;
this.Berat_Badan = Berat_Badan;
}
void CetakKeLayar() {
System.out.println("Nama = " +Nama);
System.out.println("NIM = " +NIM);
System.out.println("Berat_Badan = " +Berat_Badan);
}
}
class Praktikum24 {
public static void main(String[] args) {
DataMahasiswa dm1 = new DataMahasiswa();
DataMahasiswa dm2 = new DataMahasiswa
("Farid Syaumi Rizky Ginting","150504040","64 Kg");
dm1.CetakKeLayar();
dm2.CetakKeLayar();
}
}
25
4.4.2 Hasil (Output Program)
4.4.3 Analisa
Dalam percobaan ini error terdapat pada String NIM, string berat_badan.
Karena ini merupakan multiple constructor, jadi kita mendeklarasikan String
jika tidak maka tidak akan terbaca dan pada saat cetaklayar harus di tam-
bahkan void agar dapat membaca fungsi multiple constructor nya. Pada hasil
nya akan muncul Nama,NIM,berat_badan 2 kali .
/*
* To change this license header, choose License Headers
in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
/**
*
* @author Farid
*/
/**
* @param args the command line arguments
26
*/
package praktikum2.pkg5;
class Orang {
String nama;
double tinggi, usia;
Orang (String nama, double tinggi, double usia) {
this.nama = nama;
this.tinggi = tinggi;
this.usia = usia;
}
public String toString() {
return ("Nama : "+nama+"\nTinggi : "+ tinggi + "\nUsia : "+usia);
}
}
class Pelajar extends Orang {
String nim;
String asalsekolah;
double nilai;
Pelajar (String nama,double tinggi,double usia,String nim,
String sekolah,double nilai) {
super (nama,tinggi,usia);
this.nim = nim;
asalsekolah = sekolah;
this.nilai = nilai;
}
public String toString() {
return (super.toString()+"\nNim :"+nim+"\nSekolah : "+asalsekolah
+"\nNilai :" +nilai);
}
}
class Praktikum25 {
public static void main(String[] args) {
Pelajar siswa = new Pelajar
("Farid Syaumi Rizky Ginting ",175,20,"150504040","SMA N 3 BINJAI",95.0);
System.out.println(siswa.toString());
}
}
27
4.5.2 Hasil (Output Program)
4.5.3 Analisa
Dalam percobaan ini tidak ada error, di dalam percobaan ini menghasilkan
nama, tinggi, usia, nim, sekolah dan nilai akan tetapi karena inheritance
maka akan terbagi 2 class yaitu : kelas induk dinamakan superclass dan
kelas turunan dinamakan subclass.
28
Bab V Kesimpulan
1. Sebuah object mewakili suatu bagian program yang akan diselesaikan.
29
Daftar Pustaka
Aziz, M. Farid. 2005. Object Oriented Programing dengan PHP5,
Jakarta: PT Elex Media Komputindo.
Sutaji, Deni. 2012. Sistem Inventory Mini Market dengan PHP &
JQUERY, Yogtakarta: Lokomedia.
30
Lampiran
31