Bagian 4. Data Pribadi

$5 + Rp 10=Rp 9.010 jika $1=Rp 9000

Rp 10 * 2 = Rp 20

Efek perkalian terhadap object?

Amount harus private?

Pembulatan uang?

Equals()

GetHashCode()

Jenis object?

Null?

Kita telah mengoverride method Equals. Karena itu kita bisa ubah test kita menjadi lebih natural. Maksudnya kita bisa membandingkan object dengan object bukan amount dengan amount.

[Test]
public void Multiplication(){
          Rupiah sepuluhRupiah=new Rupiah(10);
          Rupiah hasil=sepuluhRupiah.Times(2);
          Assert.AreEqual(new Rupiah(20),hasil);
          hasil=sepuluhRupiah.Times(3);
          Assert.AreEqual(30,hasil.Amount);
          hasil=sepuluhRupiah.Times(5);
	  Assert.AreEqual(50,hasil.Amount);
}

Setelah sedikit diubah nampak sekali kalau kita membandingkan objek dengan objek. Test saya jalankan. Hasilnya test masih berjalan normal. Sekarang terlihat variabel hasil tidak banyak membantu, jadi lebih baik kita hapus.

[Test]
public void Multiplication(){
	Rupiah sepuluhRupiah=new Rupiah(10);
	Assert.AreEqual(new Rupiah(20),sepuluhRupiah.Times(2));
	Rupiah hasil=sepuluhRupiah.Times(3);
	Assert.AreEqual(30,hasil.Amount);
	hasil=sepuluhRupiah.Times(5);
	Assert.AreEqual(50,hasil.Amount);
}

Test saya jalankan dan syukur masih bisa jalan. Nah, dua case setelahnya juga harus kita ubah.

[Test]
public void Multiplication(){
	Rupiah sepuluhRupiah=new Rupiah(10);
	Assert.AreEqual(new Rupiah(20),sepuluhRupiah.Times(2));
	Assert.AreEqual(new Rupiah(30),sepuluhRupiah.Times(3));
	Assert.AreEqual(new Rupiah(50),sepuluhRupiah.Times(5));
}

Kembali test saya jalankan dan tidak ada kesalahan.

Karena Amount sudah tidak terpakai, kita boleh hapus dari kelas Rupiah.

public class Rupiah{
	private int m_amount;
	public Rupiah(int amount){
		this.m_amount=amount;
	}
	public Rupiah Times(int multiplier){
		return new Rupiah(this.m_amount *multiplier);
	}
	public override bool Equals(object obj){
		Rupiah rupiah=(Rupiah)obj;
		return this.m_amount==rupiah.m_amount;
	}
}

Jadi property Amount saya hapus. Dan dibagian perbandingan, yang tadinya saya ambil dari property Amount saya tukar langsung ke field m_amount.

Test saya jalankan dan tidak ada masalah. Ok. Kita boleh coret dari daftar todo-list.

$5 + Rp 10=Rp 9.010 jika $1=Rp 9000

Rp 10 * 2 = Rp 20

Efek perkalian terhadap object?

Amount harus private?

Pembulatan uang?

Equals()

GetHashCode()

Jenis object?

Null?

Iklan

There are no comments on this post.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: