PENDAHULUAN
B. DASAR TEORI
Pemrograman berorientasi objek (Object Oriented Programming atau disingkat OOP)
adalah paradigma pemrograman yang berorientasikan kepada objek yang merupakan suatu
metode dalam pembuatan program, dengan tujuan untuk menyelesaikan kompleksnya berbagai
masalah program yang terus meningkat. Objek adalah entitas yang memiliki atribut, karakter
(bahavour) dan kadang kala disertai kondisi (state) (Douglas, 1992).
Ide dasar pada OOP adalah mengkombinasikan data dan fungsi untuk mengakses data
menjadi sebuah kesatuan unit yang dikenal dengan nama objek. Objek adalah struktur data yang
terdiri dari bidang data dan metode bersama dengan interaksi mereka untuk merancang aplikasi
dan program komputer. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-
kelas atau objek-objek. Setiap objek dapat menerima pesan, memproses data, dan mengirim
pesan ke objek lainnya.
Kelas (class) merupakan penggambaran satu set objek yang memiliki atribut yang sama.
Kelas mirip dengan tipe data ada pemrograman non objek, akan tetapi lebih komprehensif karena
terdapat struktur sekaligus karakteristiknya. Kelas baru dapat dibentuk lebih spesifik dari kelas
ada umumnya.kelas merupakan jantung dalam pemrograman berorientasi objek.
Objek bertugas membungkus data dan fungsi bersama menjadi suatu unit dalam
sebuah program komputer; objek merupakan dasar dari modularitas dan struktur dalam
sebuah program komputer berorientasi objek.menyatakan visualilasi seperti bentuk huruf (font).
Abstraksi merupakan kemampuan sebuah program untuk melewati aspek informasi yang
diolah adalah kemampuan untuk fokus pada inti permasalahan. Setiap objek dalam sistem
melayani berbagai model dari pelaku abstrak yang dapat melakukan kerja, laporan dan
perubahan serta berkomunikasi dengan objek lain dalam sistem, tanpa harus menampakkan
kelebihan diterapkan.
Enkapsulasi adalah proses memastikan pengguna sebuah objek tidak dapat
menggantikan keadaan dari sebuah objek dengan cara yang tidak sesuai prosedur. Artinya,
hanya metode yang terdapat dalam objek tersebut yang diberi izin untuk mengakses keadaan
yang diinginkan. Setiap objek mengakses interface yang menyabutkan bagaimana objek lainnya
dapat berintegrasi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada
representasi dalam objek tersebut.
Polimorfise merupakan suatu fungsionalitas yang diimplikasikan dengan berbagai cara
yang berbeda. Pada program berorientasi objek, pembuat program dapat memiliki berbagai
implementasi untuk sebagian fungsi tertentu.
public Orang(String nama, String alamat, String kota, int umur, char
jenis_kelamin) {
this.nama=nama;
this.alamat=alamat;
this.umur=umur;
this.jenis_kelamin=jenis_kelamin;
}
void setnama(String nama) {
this.nama = nama;
}
String getnama() {
return nama;
}
String getalamat() {
return alamat;
}
String getkota() {
return kota;
}
int getumur() {
return umur;
}
char getjenis_kelamin() {
return jenis_kelamin;
}
Class ini digunakan sebagai super class dalam program java kali ini. Disini
terdapat atribut-atribut yang manusia miliki sebagai contoh di program ini adalah nama,
alamat, kota, umur dan jenis kelamin. Fungsi yang menggunakan format “void set…”
digunakan untuk memasukkan data sesuai dengan kategorinya, misal setNama yang
digunakan untuk memasukkan data nama. Didalam setUmur terdapat percabangan
sebagai batasan dalam memasukkan umur dimana umur sendiri tidak mungkin 0 ataupun
dibawah 0. Lalu fungsi yang menggunakan format “tipedata get…” digunakan untuk
memanggil data tersebut sesuai dengan data yang dimasukkan. Selanjutnya terdapat
fungsi toString yang digunakan untuk memberi luaran program.
2. Dosen.java
public class Dosen extends Orang {
private String mk;
private String strata;
private int salary; // Nilai salary harus lebih dari 0
public Dosen(String nama, String alamat, String kota, int umur, char
jenis_kelamin, String mk, String strata, int salary)
{
super(nama, alamat, kota, umur, jenis_kelamin);
this.mk=mk;
this.strata=strata;
this.salary=salary;
}
public void setStrata(String strata) {
this.strata=strata;
}
public void setMk(String tittle) {
this.mk=mk;
}
public void setSalary(int salary) {
if(salary>0) this.salary=salary;
else System.out.println("Data Tidak Valid");
}
public String getStrata(){
return strata;
}
public String getMk() {
return mk;
}
public int getSalary() {
return salary;
}
@Override
public String toString()
{
return "Informasi Dosen\n" +
"============================ \n" +
"Nama \t : " + getnama() + '\n' +
"Alamat \t : " + getalamat() + '\n' +
"Kota \t : " + getkota() + '\n' +
"Umur \t : " + getumur() + '\n' +
"MK \t \t : " + mk + '\n' +
"Strata \t : " + strata + '\n' +
"Salary \t : " + salary + '\n';
}
}
Class ini merupakan subclass dari class Orang dimana yang dimaksudkan
disini adalah Dosen pasti memiliki semua atribut yang dimiliki manusia dan di class
ini ditambahkan atribut yang hanya dimiliki dosen. Class ini diketahui subclass dari
orang karena terlihat dari awal terdapat fungsi “extends”. Fungsi yang menggunakan
format “void set…” digunakan untuk memasukkan data sesuai dengan kategorinya.
Didalam setSalary terdapat percabangan dimana salary diberi batasan jika yang data
yang dimasukkan harus diatas nilai 0, atau program akan memberi luaran “Data tidak
valid”. Lalu fungsi yang menggunakan format “tipedata get…” digunakan untuk
memanggil data tersebut sesuai dengan data yang dimasukkan. Terdapat @Override
yang digunakan untuk mengecek apakah atribut tambahan dari dosen memiliki atribut
yang sudah dimiliki Class Orang sebelumnya sehingga tidak terjadi tumpeng tindih
antar atribut. Selanjutnya terdapat fungsi toString yang digunakan untuk memberi
luaran program.
3. Mahasiswa.java
setnama(nama);
setalamat(alamat);
setkota(kota);
setumur(umur);
setjenis_kelamin(jenis_kelamin);
this.NIP = NIP;
this.kelas = kelas;
this.semester = semester;
this.report = report;
}
@Override
public String toString() {
return "Informasi Mahasiswa\n" +
"============================ \n" +
"Nama \t : " + getnama() + '\n' +
"Alamat \t : " + getalamat() + '\n' +
"Kota \t : " + getkota() + '\n' +
"Umur \t : " + getumur() + '\n' +
"NIP \t : " + NIP + '\n' +
"Kelas \t : " + kelas + '\n' +
"Semester : " + semester + '\n' + '\n' +
report.toString();
}
}
Class Mahasiswa ini umumnya memiliki bentuk yang sama seperti class Dosen
walaupun terdapat beberapa perbedaan. Perbedaannya yaitu terdapat tipedata bentukan
dari Class MahasiswaReport yang fungsinya nanti akan dipanggil di “report.toString()”
sebagai pemberi luaran laporan nilai-nilai mahasiswa tersebut.
4. MahasiwaRepor.java
public class MahasiswaReport {
private String mk1;
private String mk2;
private int sks1;
private int sks2;
private String nilai1;
private String nilai2;
public MahasiswaReport(String mk1, String mk2, int sks1, int sks2,
String nilai1, String nilai2) {
this.mk1 = mk1;
this.mk2 = mk2;
this.sks1 = sks1;
this.sks2 = sks2;
this.nilai1 = nilai1;
this.nilai2 = nilai2;
}
MahasiswaReport(MahasiswaReport sp){}
Class ini bukan merupakan subclass dari Orang tetapi class ini digunakan sebagai
penampung laporan yang berisi atribut nilai dan sks dari mahasiswa yang berkaitan.
Fungsi yang menggunakan format “void set…” digunakan untuk memasukkan data
sesuai dengan kategorinya. Lalu fungsi yang menggunakan format “tipedata get…”
digunakan untuk memanggil data tersebut sesuai dengan data yang dimasukkan. Terdapat
fungsi ConvertNilaiMutu yang berfungsi untuk mengubah nilai masukkan yang semula
bertipe String menjadi bertipe float agar memudahkan perhitungan yang dilakukan di
fungsi HitungNR(). Selanjutnya terdapat fungsi toString yang digunakan untuk memberi
luaran program.
5. Driver.java
public class Driver {
public static void main(String[] args) {
Dosen dosen = new Dosen("Umar Bakri",
"jl.umar",
"Bandung",
30,
'L',
"PBO",
"S1",
1000);
System.out.println(dosen.toString());
Lalu yang terakhir adalah Class Driver yang merupakan class main dalam
program ini. Didalam class ini terdapat inisialisasi objek dosen dan objek mahasiswa
serta terdapat fungsi luaran untuk memberi luaran data-data dosen dan mahasiswa sesuai
dengan fungsi-fungsi lain yang terdapat pada class-class sebelumnya.