You are on page 1of 20

LAPORAN AKHIR PRAKTIKUM

PEMROGRAMAN OBJEK 1
MODUL 8
MEMBUAT KELAS

Disusun oleh:

Erras Lindiarda Mahentar


3411191102
D

PROGRAM STUDI INFORMATIKA FAKULTAS


SAINS DAN INFORMATIKA UNIVERSITAS
JENDERAL ACHMAD YANI 2021
DAFTAR ISI

DAFTAR ISI............................................................................................................................. 2
BAB I ......................................................................................................................................... 3
HASIL DAN TUGAS PRAKTIKUM .................................................................................... 3
A. Program VIII-1 StudentRecord.java ............................................................................... 3
C. Program VIII-3 StudentRecord2.java ............................................................................. 8
D. Program VIII-4 StudentRecord2Example.java ............................................................. 10
E. Program VIII-5 StudentRecord3.java ........................................................................... 12
F. Program VIII-6 PublicElevator.java ............................................................................. 12
G. Program VIII-7 PublicElevatorTest.java ...................................................................... 13
H. Program VIII-8 PrivateElevator.java ............................................................................ 14
I. Progam VIII-9 PrivateElevatorTest.java ...................................................................... 14
J. Program VIII-10 PrivateShirt.java ................................................................................ 16
K. Program VIII-11 PrivateShirtTest.java ......................................................................... 17
BAB III.................................................................................................................................... 20
KESIMPULAN ...................................................................................................................... 20
BAB I

HASIL DAN TUGAS PRAKTIKUM

A. Program VIII-1 StudentRecord.java


• Source Code

public class StudentRecord{


private String name;
private String address;
private int age;
private double mathGrade;
private double englishGrade;
private double scienceGrade;
private double average;
private static int studentCount;

public StudentRecord(){
studentCount++;
}

public StudentRecord(String temp){


this.name = temp;
studentCount++;
}

public StudentRecord(String name, String address){


this.name = name;
this.address = address;
studentCount++;
}

public StudentRecord(double mGrade, double eGrade, double


sGrade){
mathGrade = mGrade;
englishGrade = eGrade;
scienceGrade = sGrade;
studentCount++;
}

public String getName(){


return name;
}
public void setName(String temp){
name = temp;
}
public double getAverage(){
double result = 0;
result = (mathGrade + englishGrade +
scienceGrade)/3;
return result;
}
public static int getStudentCount(){
return studentCount;
}
}
• Tampilan

• Analisis
Program VIII-1 merupakan program yang tidak memiliki main method
sehingga tidak dapat dieksekusi secara langsung. Program ini memiliki beberapa
atribut yang memiliki access modifier private dan satu atribut bersifat static serta
terdapat beberapa method diantaranya adalah method set dan get.

B. Program VIII-2 StudentRecordExample.java


• Source Code

public class StudentRecordExample{


public static void main(String[] args){

StudentRecord nanaRecord = new StudentRecord();


StudentRecord neneRecord = new StudentRecord();
StudentRecord nunuRecord = new StudentRecord();
nanaRecord.setName("Nana");
neneRecord.setName("Nene");
nunuRecord.setName("Nunu");

System.out.println(nanaRecord.getName());
System.out.println(neneRecord.getName());
System.out.println(nunuRecord.getName());

System.out.println("Count = "
+StudentRecord.getStudentCount());
}
}

• Tampilan

• Analisi
Program VIII-2 merupakan realisasi dari program VIII-1 yang merupakan
program tanpa main method. Pada program ini atribut-atribut pada program VIII-1
di-set dan di-get untuk ditampilkan sebagai output termasuk atribut static.

• Tugas
1. Tambahkan code untuk 2 siswa lainnya! (Sudah dikerjakan diatas)
2. Buat konstruktor untuk program VIII-1. Isi konstruktor adalah counter
agar mengetahui berapa jumlah objek yang telah terbentuk. Buat 4
konstruktor dengan parameter masukan berbeda!
Jawab:
• Konstruktor 1
Source code:

public StudentRecord(){
studentCount++;
}
Tampilan:

Analisis:
Setelah ditambahkan konstruktor 1 pada program VIII-1, output
progarm VIII-2 menghasilkan Count = 3 dikarenakan terjadi 3 kali
pembuatan object.
• Konstruktor 2
Source code:

public StudentRecord(String temp){


this.name = temp;
studentCount++;
}
Tampilan:

Analisis:
Setelah ditambahkan konstruktor 2 pada program VIII-1, ketika
melakukan instansiation, user bisa langsung memberikan nama dengan
memasukan string pada saat instansiation dan studentCount akan terus
bertambah sebanyak object StudentRecord dibuat.
• Konstruktor 3
Source code:

public StudentRecord(String name, String address){


this.name = name;
this.address = address;
studentCount++;
}
Tampilan:

Analisis:
Setelah ditambahkan konstruktor 3 serta menambahkan method
get untuk address pada program VIII-1, ketika melakukan
instansiation, user bisa langsung memberikan nama dan alamat dengan
memasukan string pada saat instansiation dan studentCount akan terus
bertambah sebanyak object StudentRecord dibuat.

• Kontsruktor 4
Source code:

public StudentRecord(double mGrade, double eGrade, double


sGrade){
mathGrade = mGrade;
englishGrade = eGrade;
scienceGrade = sGrade;
studentCount++;
}
Tampilan:

Analisis:
Setelah ditambahkan konstruktor 4 pada program VIII-1, ketika
melakukan instansiation, user bisa langsung memberikan nilai mGrade,
eGrade dan sGrade dengan memasukan nilainya pada saat instansiation
dan studentCount akan terus bertambah sebanyak object
StudentRecord dibuat.
C. Program VIII-3 StudentRecord2.java
• Source Code

public class StudentRecord2{


private String name;
private String address;
private int age;
private double mathGrade;
private double englishGrade;
private double scienceGrade;
private double average;
private static int studentCount;
//KONSTRUKTOR
public StudentRecord2(){
studentCount++;
}
public StudentRecord2(String temp){
this.name = temp;
studentCount++;
}
public StudentRecord2(String name, String address){
this.name = name;
this.address = address;
studentCount++;
}
public StudentRecord2(double mGrade, double eGrade,
double sGrade){
mathGrade = mGrade;
englishGrade = eGrade;
scienceGrade = sGrade;
studentCount++;
}
//SETTER GETTER NAME
public String getName(){
return name;
}
public void setName(String temp){
name = temp;
}
//SETER GETER ADDRESS
public void setAddress(String temp){
address = temp;
}
public String getAddress(){
return address;
}
//SETER GETER AGE
public void setAge(int temp){
age = temp;
}
public double getAge(){
return age;
}
//SETER GETER study
public void setMathGrade(double temp){
mathGrade = temp;
}
public double getMathGrade(){
return mathGrade;
}
public void setScienceGrade(double temp){
scienceGrade = temp;
}
public double getScienceGrade(){
return scienceGrade;
}
public void setEnglishGrade(double temp){
englishGrade = temp;
}
public double getEnglishGrade(){
return englishGrade;
}
//Hitung Ratarata
public double getAverage(){
double result = 0;
result = (mathGrade + englishGrade +
scienceGrade)/3;
return result;
}
public static int getStudentCount(){
return studentCount;
}
//cetak
public void print(String temp){
System.out.println("Name : "+name);
System.out.println("Address : "+address);
System.out.println("Age : "+age);
}
public void print(double mGrade, double eGrade, double
sGrade){
System.out.println("Name : "+name);
System.out.println("Math Grade: "+mGrade);
System.out.println("English Grade: "+eGrade);
System.out.println("Science Grade: "+sGrade);
}
}
• Tampilan

• Analisis
Program VIII-3 merupakan penyempurnaan dari program VIII-1.
Program ini tidak memiliki main method sehingga tidak dapat dieksekusi
secara langsung. Program ini memiliki atribut-atribut serta method-method
yang dapat digunakan diprogram lain yang memiliki main method.

D. Program VIII-4 StudentRecord2Example.java


• Source Code

public class StudentRecord2Example{


public static void main(String[] args){
StudentRecord2 nanaRecord = new StudentRecord2();
StudentRecord2 neneRecord = new StudentRecord2();
StudentRecord2 nunuRecord = new StudentRecord2();

StudentRecord2 recordNana = new


StudentRecord2("Baba");
StudentRecord2 recordNene = new
StudentRecord2("Bebe", "Paris");
StudentRecord2 recordNunu = new
StudentRecord2(75,85,95);

//memberi nama siswa


nanaRecord.setName("Nana");
neneRecord.setName("Nene");
nunuRecord.setName("Nunu");
// menampilkan nama siswa
System.out.println(nanaRecord.getName());
System.out.println(neneRecord.getName());
System.out.println(nunuRecord.getName());
//menampilkan jumlah siswa
System.out.println("Count = "
+StudentRecord2.getStudentCount());

StudentRecord2 nana2Record = new StudentRecord2();


nana2Record.setName("Nana");
nana2Record.setAddress("INDONESIA");
nana2Record.setAge(17);
nana2Record.setMathGrade(90);
nana2Record.setEnglishGrade(70.5);
nana2Record.setScienceGrade(100);

//overload method
nana2Record.print(nana2Record.getName());
nana2Record.print(nana2Record.getEnglishGrade(),
nana2Record.getMathGrade(), nana2Record.getScienceGrade());
recordNana.print(recordNana.getName());
}
}
• Tampilan

• Analisi
Program VIII-4 merupakan realisasi dari program VIII-3 yang
merupakan program tanpa main method. Pada program ini program VIII-3
dipanggil dan dijadikan beberapa object. Atribut-atribut serta method yang ada
pada program VIII-3 digunakan dengan melakukan set dan get.

E. Program VIII-5 StudentRecord3.java


• Source code

package schoolClasses;
public class StudentRecord3{
private String name;
private String address;
private int age;
}
• Tampilan

• Analisis
Program VIII-5 merupakan program yang tidak memiliki main method
sehingga tidak dapat dieksekusi secara langsung. Pada program ini terdapat
pembuatan package sehingga tidak dapat dipanggil atau digunakan oleh
program lain secara langsung. Program ini dapat dipanggil atau digunakan
oleh program lain dengan menggunakan import terlebih dahulu. Pada program
ini terdapat atribut-atribut yang memiliki access modifier bersifat private.

F. Program VIII-6 PublicElevator.java


• Source code

public class PublicElevator{


public boolean bukaPintu = false;
public int lantaiSkrg = 1;
public int berat =0;

public final int KAPASITAS = 1000;


public final int LANTAI_ATAS = 5;
public final int LANTAI_BAWAH = 1;
}
• Tampilan
• Analisi
Program VIII-6 merupakan program yang tidak memiliki main method
sehingga tidak dapat dieksekusi secara langsung. Pada program ini terdapat
atribut-atribut yang memiliki access modifier bersifat public serta terdapat
beberapa yang bersifat final.

G. Program VIII-7 PublicElevatorTest.java


• Source code

public class PublicElevatorTest{


public static void main(String[] args){
PublicElevator pubElevator = new PublicElevator();
pubElevator.bukaPintu = true; // pintu terbuka
pubElevator.bukaPintu = false;

pubElevator.lantaiSkrg--;
pubElevator.lantaiSkrg++;

//lompat kelantai 7
pubElevator.lantaiSkrg = 7;
pubElevator.bukaPintu =true;
pubElevator.bukaPintu = false;
pubElevator.lantaiSkrg = 1; // menuju lantai 1
pubElevator.bukaPintu = true;
pubElevator.lantaiSkrg++;
pubElevator.bukaPintu = false;
pubElevator.lantaiSkrg--;
pubElevator.lantaiSkrg--;
}
}
• Tampilan

• Analisis
Program VIII-7 merupakan realisasi dari program VIII-6 yang merupakan
program tanpa main method. Pada program ini beberapa atribut pada program
VIII-6 dipanggil dan digunakan. Pada program ini tidak memiliki output
dikarenakan pada program ini tidak terdapat fungsi untuk menampilkan hasil
ke layar.

H. Program VIII-8 PrivateElevator.java


• Source code

public class PrivateElevator{


private boolean bukaPintu = false;
private int lantaiSkrg = 1;
private int berat =0;
private final int KAPASITAS = 1000;
private final int LANTAI_ATAS = 5;
private final int LANTAI_BAWAH = 1;
}
• Tampilan

• Analisis
Program VIII-8 merupakan program yang tidak memiliki main method
sehingga tidak dapat dieksekusi secara langsung. Pada program ini terdapat
atribut-atribut yang memiliki access modifier bersifat private serta terdapat
beberapa yang bersifat final.

I. Progam VIII-9 PrivateElevatorTest.java


• Source code

public class PrivateElevatorTest{


public static void main(String[] args){
PrivateElevator privElevator = new
PrivateElevator();
privElevator.bukaPintu = true; // pintu terbuka
privElevator.bukaPintu = false;

privElevator.lantaiSkrg--;
privElevator.lantaiSkrg++;

//lompat kelantai 7
privElevator.lantaiSkrg = 7;
privElevator.bukaPintu =true;
privElevator.bukaPintu = false;
privElevator.lantaiSkrg = 1; // menuju lantai 1
privElevator.bukaPintu = true;
privElevator.lantaiSkrg++;
privElevator.bukaPintu = false;
privElevator.lantaiSkrg--;
privElevator.lantaiSkrg--;
}
}
• Tampilan
• Analisis
Pogram VIII-9 merupakan raelisasi dari program VIII-8 yang
merupakan program tanpa main method. Pada program ini beberapa atribut
dipanggil dan digunakan seperti halnya atribut yang memiliki access modifier
bersifat public, akan tetapi terjadi error dikarenakan atribut yang memiliki
access modifier private tidak dapat langsung digunakan diprogram lain.

J. Program VIII-10 PrivateShirt.java


• Source code

public class PrivateShirt{


private int idBaju = 0;
private String keterangan = "-Keterangan
dibutuhkan-";
// kode warna R : merah, G : hijau, B : biru, U :
tidak ditentukan
private char kodeWarna = 'U';
private double harga = 0.0;
private int jmlStok = 0;

public void setKodeWarna(char kode){


kodeWarna = kode;
}
public char getKodeWarna(){
return kodeWarna;
}
}
• Tampilan

• Analisis
Program VIII-10 merupakan program yang tidak memiliki main
method sehingga tidak dapat dieksekusi secara langsung. Pada program ini
terdapat atribut-atribut yang memiliki access modifier bersifat private serta
terdapat beberapa method yang dapat digunakan pada program lain yang
memiliki main method.
K. Program VIII-11 PrivateShirtTest.java
• Source code

public class PrivateShirtTest{


public static void main(String[] args){
PrivateShirt privShirt = new PrivateShirt();
char kodeWarna;
//mengisi kodewarna yang benar
privShirt.setKodeWarna('R');
kodeWarna=privShirt.getKodeWarna();
System.out.println("Kode Warna = "+kodeWarna);
//mengisi kode warna yang salah
privShirt.setKodeWarna('Z');
kodeWarna=privShirt.getKodeWarna();
System.out.println("Kode Warna = "+kodeWarna);

}
}

• Tampilan

• Analisis
Program VIII-11 merupakan realisasi dari program VIII-10 yang merupakan
program tanpa main method. Pada program ini dilakukan set untuk merubah
nilai atribut yang bersifat private serta melakukan get untuk mendapatkan atau
mengambil nilai atribut yang bersifat private untuk ditampilkan ke layar.

L. Program VIII-12 PrivateShirt2.java


• Source code

public class PrivateShirt2{


private int idBaju = 0;
private String keterangan = "-Keterangan dibutuhkan-";
// kode warna R : merah, G : hijau, B : biru, U : tidak
ditentukan
private char kodeWarna = 'U';
private double harga = 0.0;
private int jmlStok = 0;

public void setKodeWarna(char kode){


switch(kode){
case 'R' :
case 'G' :
case 'B' :
kodeWarna = kode;
break;
default :
System.out.println("Kode Warna Salah!
Gunakan R, G, B");
}
}

public char getKodeWarna(){


return kodeWarna;
}
}
• Tampilan

• analisis
Program VIII-12 merupakan program yang tidak memiliki main
method sehingga tidak dapat dieksekusi secara langsung. Pada program ini
terdapat atribut-atribut yang memiliki access modifier bersifat private serta
terdapat method set yang berupa percabangan dan method get yang dapat
digunakan pada program lain yang memiliki main method.

M. Program VIII-13 PrivateShirt2Test.java


• Source code

public class PrivateShirt2Test{


public static void main(String[] args){
PrivateShirt2 privShirt = new PrivateShirt2();
char kodeWarna;
//mengisi kodewarna yang benar
privShirt.setKodeWarna('R');
kodeWarna=privShirt.getKodeWarna();
System.out.println("Kode Warna = "+kodeWarna);
//mengisi kode warna yang salah
privShirt.setKodeWarna('Z');
kodeWarna=privShirt.getKodeWarna();
System.out.println("Kode Warna = "+kodeWarna);
}
}
• Tampilan

• Analisis
Program VIII-13 merupakan realisasi dari program VIII-12 yang
merupakan program tanpa main method. Pada program ini atribut pada
program VIII-12 di-set dua kali yaitu ‘R’ dan ‘Z’. Ketika atribut di-set
menjadi ‘Z’, proses percabangan menampilkan pesan kesalahan ke layar
dikarenakan ‘Z’ tidak dikenali pada proses percabangan tersebut sehingga
ketika dilakukan get char yang tersimpan adalah ‘R’.
BAB III

KESIMPULAN

Modul ini mempelajari mengenai pembuatan class, access modifier,


constructor, dan method setter-getter. Didalam sebuah class akan terdapat variabel
dan method, diantaranya instance variable, instance method, static variable dan static
method. Instance variable dan instance method merupakan komponen yang dimiliki
masing-masing objek. Sedangkan class variable dan class method merupakan
komponen yang dimiliki class yang dapat diakses oleh class maupun object. Tiap
variable dan method memiliki access modifier masing-masing, seperti public, private,
protected, dan default.

Variable dan method dapat diakses berdasarkan access modifier. Jika bersifat
Public maka variable dan method tersebut dapat diakses dari kelas manapun.
Sedangkan jika bersifat private maka variable tersebut tidak dapat diakses oleh kelas
lain, sehingga harus menggunakan method setter dan getter yang bersifat public agar
dapat diakses oleh kelas lain.

Konstruktor merupak sebuah method yang namanya sama dengan nama class
tersebut. Penamaan beberapa method dalam suatu kelas diperbolehkan sama dengan
syarat tipe atau jumlah parameter yang dilewatkan berbeda. Meskipun nama method
tersebut sama, tetapi jumlah/tipe parameter berbeda, maka method tersebut akan
dianggap sebagai method yang berbeda.

You might also like