File
awal Kasir.class di decompiles dengan jd-gui-windows-1.2.0
Terlihat perbedaan hasil decompiles class nya java
dibandingkan dengan file awalnya diantaranya sebagai berikut :
- Formatnya agak berbeda dibandingkan dengan file awal yang kita buat.
- Format yang berbeda di tandai dengan warna kuning
di bawah ini file awal :
import java.util.ListIterator;
import java.util.LinkedList;
class Barang extends Kemasan {
public
Barang (String nama){
this.setNama(nama) ;
}
public int jmlKemasan()
{
return
1;
}
public
boolean bertambah(Kemasan kemasan)
{
return
false;
}
public
boolean berkurang(Kemasan kemasan){
return
false;
}
public
ListIterator createListIterator() {
return
null;
}
}
abstract class Kemasan {
LinkedList
dftrKemasan;
Kemasan
kemasan;
String nama;
public
abstract int jmlKemasan();
public
abstract boolean bertambah(Kemasan kemasan);
public abstract boolean
berkurang(Kemasan kemasan);
public abstract
ListIterator createListIterator();
public void
setKemasan(Kemasan kemasan){
this.kemasan = kemasan;
}
public
Kemasan getKemasan() {
return kemasan;
}
public void
setNama(String nama){
this.nama = nama;
}
public
String getNama() {
return nama;
}
}
class KemasanBsr extends Kemasan {
public
KemasanBsr(String nama)
{
dftrKemasan = new
LinkedList();
this.setNama(nama);
}
public int
jmlKemasan() {
int ttlKemasan = 0;
ListIterator listIter
= this.createListIterator();
Kemasan temp;
while (listIter.hasNext()) {
temp = (Kemasan)listIter.next();
ttlKemasan += temp.jmlKemasan();
}
return ttlKemasan;
}
public
boolean bertambah(Kemasan kemasan)
{
kemasan.setKemasan(this);
return dftrKemasan.add(kemasan);
}
public
boolean berkurang (Kemasan kemasan)
{
ListIterator listIter
= this.createListIterator();
Kemasan temp;
while (listIter.hasNext()) {
temp = (Kemasan)listIter.next();
if (temp == kemasan) {
listIter.remove();
return true;
}
}
return
false;
}
public
ListIterator createListIterator() {
ListIterator listIter
= dftrKemasan.listIterator();
return listIter;
}
}
public class TestKompositKemasan {
public
static void main (String[] args)
{
System.out.println("Buat Kemasan Besar");
Kemasan kemasanBsr = new
KemasanBsr ("Kemasan Besar");
System.out.println("Kemasan besar mempunyai "+ kemasanBsr.jmlKemasan() +
" kemasan.");
System.out.println("Buat barang-1");
Kemasan barang1 = new
Barang ("Barang 1");
System.out.println("jumlah: " +
barang1.jmlKemasan()
+ " barang.");
System.out.println("Buat barang-2");
Kemasan barang2 = new
Barang ("Barang 2");
System.out.println("jumlah: " + barang2.jmlKemasan() + " barang.");
System.out.println("=============================================");
System.out.println("Barang-1 dan Barang-2
dimasukan ke dalm kemasan besar");
if (kemasanBsr.bertambah(barang1)){
System.out.println("Barang-1 berhasil dimasukan pada kemasan
besar");
} else {System.out.println("Barang-1 tidak
berhasil dimasukan pada kemasan besar");
}
System.out.println("Kemasan besar sekarang
mempunyai "+kemasanBsr.jmlKemasan()
+ " barang.");
if (kemasanBsr.bertambah(barang2)){
System.out.println("Barang-2 berhasil dimasukan pada kemasan
besar");
} else {System.out.println("Barang-2 tidak
berhasil dimasukan pada kemasan besar");
}
System.out.println("Kemasan besar sekarang
mempunyai " + kemasanBsr.jmlKemasan()
+ "barang.");
System.out.println("=============================================");
System.out.println("Buat Kemasan (kecil)");
Kemasan kemasan = new KemasanBsr
("Kemasan barang(kecil)");
System.out.println("Kemasan (kecil) mempunyai " + kemasan.jmlKemasan()+
" barang.");
System.out.println("Buat
barang-3");
Kemasan barang3 =new Barang
("barang 3");
System.out.println("jumlah: " + barang3.jmlKemasan() + " barang.");
System.out.println("=============================================");
System.out.println("Barang-3 dimasukan ke dalam kemasan
(kecil)");
if (kemasan.bertambah(barang3)){
System.out.println("Barang-3 berhasil dimasukan pada kemasan
(kecil)");
}else {
System.out.println("Barang-3 tidak berhasil dimasukan pada kemasan
(kecil)");
}
System.out.println("Kemasan
(kecil) sekarang mempunyai" + kemasan.jmlKemasan()+ " baang.");
System.out.println("=============================================");
System.out.println("Kemasan (kecil) dimasukan kedalam kemasan
besar");
if (kemasanBsr.bertambah(kemasan))
{
System.out.println("Kemasan (kecil) berhasil dimasukan pada kemasan
besar");
} else {
System.out.println("Kemasan (kecil) tidak berhasil dimasukan pada kemasan
besar");
}
System.out.println("Kemasan besar sekarang mempunyai" + kemasanBsr.jmlKemasan() +
" barang.");
System.out.println("=============================================");
System.out.println("Barang-2 diambil dari kemasan besar");
if (kemasanBsr.berkurang(barang2)){
System.out.println("Barang-2 berhasil diambil dari kemasan
besar");
} else {
System.out.println("Barang-2 tidak berhasil diambil dari kemasan
besar");
}
System.out.println("Kemasan besar sekarang mempunyai" + kemasanBsr.jmlKemasan()+
" barang.");
}
}
Hasilnya setelah decompiles :
import java.util.ListIterator;
class Barang extends Kemasan {
public Barang(String paramString) {
setNama(paramString);
}
public int jmlKemasan(){
return 1;
}
public boolean bertambah(Kemasan paramKemasan){
return false;
}
public boolean berkurang(Kemasan paramKemasan){
return false;
}
public ListIterator createListIterator(){
return null;
}
}
import java.util.LinkedList;
import java.util.ListIterator;
abstract class Kemasan {
LinkedList dftrKemasan;
Kemasan kemasan;
String nama;
public abstract int jmlKemasan();
public abstract boolean bertambah(Kemasan
paramKemasan);
public abstract boolean berkurang(Kemasan
paramKemasan);
public abstract ListIterator createListIterator();
public void setKemasan(Kemasan paramKemasan) {
this.kemasan = paramKemasan;
}
public Kemasan getKemasan() {
return this.kemasan;
}
public void setNama(String paramString) {
this.nama = paramString;
}
public String getNama() {
return this.nama;
}
}
import java.util.LinkedList;
import java.util.ListIterator;
class KemasanBsr extends Kemasan {
public KemasanBsr(String paramString) {
this.dftrKemasan = new LinkedList();
setNama(paramString);
}
public int jmlKemasan() {
int i = 0;
ListIterator localListIterator = createListIterator();
while (localListIterator.hasNext()){
Kemasan localKemasan = (Kemasan)localListIterator.next();
i += localKemasan.jmlKemasan();
}
return i;
}
public boolean bertambah(Kemasan paramKemasan){
paramKemasan.setKemasan(this);
return this.dftrKemasan.add(paramKemasan);
}
public boolean berkurang(Kemasan paramKemasan) {
ListIterator localListIterator = createListIterator();
while (localListIterator.hasNext())
{
Kemasan localKemasan = (Kemasan)localListIterator.next();
if (localKemasan
== paramKemasan){
localListIterator.remove();
return true;
}
}
return false;
}
public ListIterator createListIterator() {
ListIterator localListIterator = this.dftrKemasan.listIterator();
return localListIterator;
}
}
import java.io.PrintStream;
public class TestKompositKemasan {
public static void main(String[] paramArrayOfString){
System.out.println("Buat Kemasan Besar");
KemasanBsr localKemasanBsr1 = new KemasanBsr("Kemasan Besar");
System.out.println("Kemasan besar mempunyai " + localKemasanBsr1.jmlKemasan()
+ " kemasan.");
System.out.println("Buat barang-1");
Barang localBarang1 = new Barang("Barang 1");
System.out.println("jumlah: " + localBarang1.jmlKemasan() + " barang.");
System.out.println("Buat barang-2");
Barang localBarang2 = new Barang("Barang 2");
System.out.println("jumlah: " + localBarang2.jmlKemasan() + " barang.");
System.out.println("=============================================");
System.out.println("Barang-1 dan Barang-2 dimasukan ke dalm kemasan besar");
if (localKemasanBsr1.bertambah(localBarang1)) {
System.out.println("Barang-1 berhasil dimasukan pada kemasan besar");
} else {System.out.println("Barang-1
tidak berhasil dimasukan pada kemasan besar");
}
System.out.println("Kemasan besar sekarang mempunyai " + localKemasanBsr1.jmlKemasan()
+ " barang.");
if (localKemasanBsr1.bertambah(localBarang2)) {
System.out.println("Barang-2 berhasil dimasukan pada kemasan besar");
} else {System.out.println("Barang-2
tidak berhasil dimasukan pada kemasan besar");
}
System.out.println("Kemasan besar sekarang mempunyai " + localKemasanBsr1.jmlKemasan()
+ "barang.");
System.out.println("=============================================");
System.out.println("Buat Kemasan (kecil)");
KemasanBsr localKemasanBsr2 =new KemasanBsr("Kemasan barang(kecil)");
System.out.println("Kemasan (kecil) mempunyai " + localKemasanBsr2.jmlKemasan()
+ " barang.");
System.out.println("Buat barang-3");
Barang localBarang3 = new Barang("barang 3");
System.out.println("jumlah: " +localBarang3.jmlKemasan() + " barang.");
System.out.println("=============================================");
System.out.println("Barang-3 dimasukan ke dalam kemasan (kecil)");
if (localKemasanBsr2.bertambah(localBarang3)) {
System.out.println("Barang-3 berhasil dimasukan pada kemasan (kecil)");
} else {System.out.println("Barang-3
tidak berhasil dimasukan pada kemasan (kecil)");
}
System.out.println("Kemasan (kecil) sekarang mempunyai" + localKemasanBsr2.jmlKemasan()
+ " baang.");
System.out.println("=============================================");
System.out.println("Kemasan (kecil) dimasukan kedalam kemasan besar");
if (localKemasanBsr1.bertambah(localKemasanBsr2)) {
System.out.println("Kemasan (kecil) berhasil dimasukan pada kemasan besar");
} else {System.out.println("Kemasan
(kecil) tidak berhasil dimasukan pada kemasan besar");
}
System.out.println("Kemasan besar sekarang mempunyai" + localKemasanBsr1.jmlKemasan()
+ "barang.");
System.out.println("=============================================");
System.out.println("Barang-2 diambil dari kemasan besar");
if (localKemasanBsr1.berkurang(localBarang2)) {
System.out.println("Barang-2 berhasil diambil dari kemasan besar");
} else {System.out.println("Barang-2
tidak berhasil diambil dari kemasan besar");
}
System.out.println("Kemasan besar sekarang mempunyai" + localKemasanBsr1.jmlKemasan()
+ "barang.");
}
}