Pembahasan UTS Mata Kuliah Pemrograman Berorientasi Objek 2022

Berikut ini adalah pembahasan soal UTS mata kuliah Pemrograman Berorientasi Objek program studi Informatika UNS tahun 2022.


Pembahasan soal no 1 :

float hitung() {
    float x = 2f * f1;
}

Sebelum method hitung() ditulis tipe float, jadi method tersebut memiliki return value berupa float. Namun pada source code belum ditulis return valuenya

misal diperbaiki menjadi

float hitung() {
    float x = 2f * f1;
    return x;
}

Catatan :

Mahasiswa banyak menuliskan mengenai perlunya main method

→ Main method tidak wajib ada pada sebuah class. Apabila sebuah class tidak memiliki main method, source code tidak akan error namun apabila source code dijalankan tidak ada yang dieksekusi.

Sejumlah jawaban juga menyoroti penulisan 2f pada

float x = 2f * f1;

2f tersebut adalah angka 2 yang ditulis sebagai float, bukan merupakan kesalahan penulisan code.

- - - - - - - - - - - - - - - - - -


Pembahasan soal no 2 :

Yang wajib ada adalah penggunaan keyword untuk perulangan, misalnya bisa menggunakan for atau while. Kemudian penggunaan perulangan harus benar, minimal ada indeks yang digunakan untuk menjumlahkan elemen array yang sesuai.

Menggunakan for
Diperlukan nested for untuk mengiterasi 2 indeks (jumlah baris dan kolom)

int jml = 0;
for(int i = 0; i < 3; i++) {
	for(int j = 0; j < 3; j++) {
		jml += arrayInt[i][j];
	}
}

i < 3 indeks i untuk mengulang sesuai jumlah baris (3)
menghitung jumlah baris bisa digantikan dengan  arrayInt[0].length

j < 3 indeks j untuk mengulang sesuai jumlah kolom (3)
menghitung jumlah kolom bisa digantikan dengan arrayInt[1].length

int jml = 0;		
for(int i = 0; i < arrayInt[0].length; i++) {
	for(int j=0; j < arrayInt[1].length; j++) {
		jml += arrayInt[i][j];
	}
}

Menggunakan while
Diperlukan nested while untuk mengiterasi 2 indeks (jumlah baris dan kolom)

int x = 0;
while(x < 3) {
	int y = 0;
	while(y < 3) {
      jml += arrayInt[x][y];
      y++;
	}
	x++;
}

- - - - - - - - - - - - - - - - - -

Pembahasan soal no 3 :

a. ClassY sebagai subclass (turunan) dari ClassX mewarisi atribut a dan x, serta method hitungX() yang dimiliki oleh ClassX.

b. Pada main method ClassY terdapat baris yang memanggil method hitungY()
diketahui method hitungY() berisi

y = hitungX() * b;

hitungX() berasal dari ClassX yang berisi

x = x + 5 * 2;

nilai awal x = 0

x = 0 + 5 * 2 = 10

nilai 10 adalah output dari hitungX()

kemudian kembali ke hitungY

y = hitungX() * b;

diketahui nilai b dari ClassY = 5

y = 10 * 5 = 50

nilai y = 50 ini adalah return value dari hitungY() yang kemudian diprint ke layar
jadi output dari source code ClassY adalah 50

- - - - - - - - - - - - - - - - - -

Pembahasan soal no 4 :
a. Constructor adalah method yang namanya sama seperti nama class, membuat constructor diawali dengan access modifier public dan nama method
public Mahasiswa

pengisian nilai atribut dapat dilakukan melalui constructor dengan menambahkan parameter
public Mahasiswa(String nim, String nama, String alamat, char jenisKelamin) {
  this.nim = nim;
  this.nama = nama;
  this.alamat = alamat;
  this.jenisKelamin = jenisKelamin;
}

- - - - - - - - - - - - - - - - - -

Pembahasan soal no 5 :

a. [0-9] menunjukkan karakter yang valid adalah angka antara 0 hingga 9
{4} menunjukkan karakter angka yang ditulis sebelumnya [0-9] diulang sebanyak 4 kali
sintaks [0-9]{4}-[0-9]{4}-[0-9]{4} menunjukkan pola karakter angka sebanyak 12 digit yang setiap 4 digit dipisahkan oleh tanda -
misal angka diwakili oleh x, string yang dihasilkan adalah xxxx-xxxx-xxxx

b. contoh string yang valid misalnya 0548-5435-2329

- - - - - - - - - - - - - - - - - -

Pembahasan soal no 6 :
Ada 2 class yang terdapat pada diagram tersebut : class Buku dan class Penulis
Tanda - dan + sebelum nama atribut dan method menunjukkan access modifier
- untuk private
+ untuk public
Minimal jawaban yang ditulis harus memuat 2 class dan semua atribut dan method ditulis + ada access modifier.

Class Buku

public class Buku {
	private String ISBN, judul;
	private int harga;
	private Penulis penulis;
	public String getISBN() {
		return ISBN;
	}
	public void setISBN(String iSBN) {
		ISBN = iSBN;
	}
	public String getJudul() {
		return judul;
	}
	public void setJudul(String judul) {
		this.judul = judul;
	}
	public int getHarga() {
		return harga;
	}
	public void setHarga(int harga) {
		this.harga = harga;
	}
	public Penulis getPenulis() {
		return penulis;
	}
	public void setPenulis(Penulis penulis) {
		this.penulis = penulis;
	}
}

Class Penulis

public class Penulis {
	private String nama, alamat;

	public String getNama() {
		return nama;
	}

	public void setNama(String nama) {
		this.nama = nama;
	}

	public String getAlamat() {
		return alamat;
	}

	public void setAlamat(String alamat) {
		this.alamat = alamat;
	}
}

Comments

Popular posts from this blog

Contoh Inheritance (Pewarisan) di Java

Contoh Penerapan Interface di Pemrograman Java

Review Singkat Pilihan Transportasi Umum Rute Solo - Wonosobo