Praktikum 2 VisProg ~ (Class dan Object)

Jumat, September 16, 2011


Praktikum kedua cukup membuatku semakin menggila dengan java programming. Cukup sulit untuk dibaca(perintahnya) dan diamalkan sehingga bisa berguna secara maksimal. Karena sampai saat ini aku pun belum sepenuhnya mengerti tentang materi tersebut. Sekitar 60 -70% lah mudeng e. 

Praktikum kedua meninggalkan 4 buah pertanyaan, dan sampai saat ini baru berhasil mengerjakan 1 nomor. Masih berusaha memahami nomor dua namun belum mundeng-mudeng juga. Kayaknya perlu berguru pada PD, Iren, Burek, dan kawan-kawan di JC of SMK Negeri 1 Surabaya.

Berikut tugas dan jawaban untuk Praktikum Visual Programming minggu kedua
    Nomor 1
    Ubahlah class GradeBook dengan perubahan berikut:
    • Tambahkan instance variable yang kedua dengan tipe String untuk menyimpan nama instructor(terjemahan: instructor=dosen) 
    • Buat setter dan getter untuk instance variable tersebut 
    • Ubah constructor-nya menjadi constructor dengan dua parameter - satu untuk course name dan satu untuk nama instructor
    Jawab:
    Aku buat 2 file masing-masing dengan nama GradeBookTest dan GradeBook. Dimana GradeBookTest.java menjadi induknya dan GradeBook berisi Objek dan Method (Jika ada salah tolong dikoreksi)

    Nama File: GradeBookTest.java
    import java.util.Scanner;
    
    public class GradeBookTest{
     public static void main(String args[]){
      Scanner input = new Scanner(System.in);
     
      GradeBook gradeBook1 = new GradeBook(null, null);
      
      System.out.println("Please enter the course name: ");
      String nameOfCourse = input.nextLine();
      gradeBook1.setCourseName(nameOfCourse);
      System.out.println();
      
      System.out.println("Please enter the instructor name: ");
      String nameOfInstructor = input.nextLine();
      gradeBook1.setInstructor(nameOfInstructor);
      System.out.println();
      
      gradeBook1.displayMessage1();
      gradeBook1.displayMessage2();
     
     }
    }

    Nama File: GradeBook.java
    public class GradeBook{
     private String courseName;
     private String instructor;
     
     public GradeBook(String matkul, String dosen){
      courseName = matkul;
      instructor = dosen;
     }
     
         //set
     public void setCourseName(String matkul){
      courseName = matkul;
     }
    
     public void setInstructor(String dosen){
      instructor = dosen;
     }
     
      //get
     public String getCourseName(){
      return courseName;
     }
     
     public String getInstructor(){
      return instructor;
     }
     
      //display
     public void displayMessage1(){
      System.out.printf("Mata Kuliah %s\n", getCourseName());
     }
     public void displayMessage2(){
      System.out.printf("Nama Dosen %s\n", getInstructor());
     }
    }

    Nomor 2

    Ubah class Account dengan menambahkan method dengan nama "debit" yang berguna untuk menarik uang dari Account(terjemahan: Account=rekening). Pastikan jumlah debit-nya tidak melebihi balance(terjemahan: balance=saldo). jika melebihi balance, field tersebut tidak diubah dan method tersebut. Menampilkan tulisan "Debit amount exceeded account balance.". Ubah class AccountTest untuk menguji method "debit" (lihat Percobaan 2a dan 3a tentang membuat method).

    Alhamdulillah mendapat pencerahan di rumae bakpo :D.

    Nama file: AccountTest.java
    import java.util.Scanner;
    
    public class AccountTest {
     public static void main(String args[]){
      Account account1 = new Account (50.00);
      Account account2 = new Account (-7.53);
      
      System.out.printf("account1 balance: $%2f\n", account1.getBalance());
      System.out.printf("account2 balance: $%2f\n", account2.getBalance());
      
      Scanner input = new Scanner(System.in);
      double depositAmount;
      double creditAmount;
      
      System.out.print("Enter deposit amount for account1: ");
      depositAmount = input.nextDouble();
      System.out.printf("\nadding $%.2f to account1 balance\n\n", depositAmount);
      account1.credit(depositAmount);
      
      System.out.printf("Account1 balance: $%.2f\n", account1.getBalance());
      System.out.printf("account2 balance: $%.2f\n", account2.getBalance());
      
      System.out.print("Enter deposit amount for account2: ");
      depositAmount = input.nextDouble();
      
      System.out.printf("\nadding $%.2f to account balance\n\n", depositAmount);
      account2.credit(depositAmount);
      
      System.out.printf("account balance: $%.2f\n", account1.getBalance());
      System.out.printf("account balance: $%.2f\n", account2.getBalance());
      
      System.out.print("Enter credit amount for account1: ");
      creditAmount = input.nextDouble();
      System.out.printf("\nminus $%.2f to account balance1: \n\n", creditAmount);
      account1.debit(creditAmount);
      
      System.out.printf("account balance1: $%.2f\n", account1.getBalance());
      System.out.printf("account balance2: $%.2f\n", account2.getBalance());
      
      System.out.print("Enter credit amount for account2: ");
      creditAmount = input.nextDouble();
      System.out.printf("\nminus $%.2f to account balance2: \n\n", creditAmount);
      account2.debit(creditAmount);
      
      System.out.printf("account balance1: $%.2f\n", account1.getBalance());
      System.out.printf("account balance2: $%.2f\n", account2.getBalance());
     }
     
    
    }

    Nama file: Account.java
    public class Account {
     private double balance;
     
     public Account(double initialBalance){
      if(initialBalance > 0.0){
       balance = initialBalance;
      }
     }
     
     public void credit(double amount){
      balance = balance + amount;
     }
     
     public void debit(double amount){
      if(amount > balance){
      System.out.println("Debit amount exceeded account balance");
      }
      else {
      balance = balance - amount;
      }
     }
     
     public double getBalance(){
      return balance;
     }
    
    }

    Nomor 3
    Buatlah class sesuai diagram berikut
    -----------------------------------
    Invoice
    -----------------------------------
    - partNumber:String
    - partDescription:String
    - quantity:int
    - pricePerItem:double
    -----------------------------------
    < >Invoice(aNumber:String, aDescription:String, aQuantity:int, price:double)
    + setPartNumber(aNumber:String)
    + getPartNumber():String
    + setPartDescription(aDescription:String)
    + getPartDescription():String
    + setQuantity(aQuantity:int)
    + getQuantity():int
    + setPricePerItem(price:double)
    + getPricePerItem():double
    + getInvoiceAmount():double
    -----------------------------------

    Method getInvoiceAmount digunakan untuk menghitung jumlah invoice (hasil perkalian quantity dan pricePerItem), kemudian mengembalikan hasil perhitungan tersebut. jika pricePerItem tidak bernilai positif, maka hasil perhitungannya adalah 0.0. Buat aplikasi uji dengan nama InvoiceTest yang mendemokan kemampuan class Invoice.
    Nama file: Invoice.java
    public class Invoice {
        private String partNumber;
        private String partDescription;
        private int quantity;
        private double pricePerItem;
        private double hasil;
       
        public Invoice(String aNumber, String aDescription, int aQuantity, double price){
            partNumber = aNumber;
            partDescription = aDescription;
            quantity = aQuantity;
            pricePerItem = price;
        }
       
        public void setPartNumber(String aNumber){
            partNumber = aNumber;
        }
       
        public void setPartDescription(String aDescription){
            partDescription = aDescription;
        }
       
        public void setQuantity(int aQuantity){
            quantity = aQuantity;
        }
        public void setPricePerItem(double price){
            pricePerItem = price;
        }
       
        public String getPartNumber(){
            return partNumber;
        }
        public String getPartDescription(){
            return partDescription;
        }
        public int getQuantity(){
            return quantity;
        }
        public double getPricePerItem(){
            return pricePerItem;
        }
       
        public void invoiceAmount(int quantity, double pricePerItem){
         if(pricePerItem <= 0){
                hasil = quantity * 0;
            }
            else{
                hasil = quantity * pricePerItem;
                }
        }
       
        public double getInvoiceAmount(){
            return hasil;
        }
    } 

    Nama File: InvoiceTest.java
    import java.util.Scanner;
    
    public class InvoiceTest {
     public static void main(String args[]){
      Scanner input = new Scanner(System.in);
      
      System.out.print("Please enter the part number: ");
      String number = input.nextLine();
      System.out.print("Please enter the part description: ");
      String description = input.nextLine();
      System.out.print("Please enter quantity: ");
      int jumlah = input.nextInt();
      System.out.print("Please enter price: ");
      double harga =input.nextDouble();
        
      Invoice invoice = new Invoice(number, description, jumlah, harga);
      System.out.printf("\nPart Number: %s\nPart Description: %s\nJumlah: %d\nHarga: %g",number, description, jumlah, harga);
      invoice.invoiceAmount(jumlah, harga);
      System.out.printf("\nInvoice Amount: %g", invoice.getInvoiceAmount());
     }
     
    
    } 

    Nomor 4

    Buatlah sebuah class "Employee" yang memiliki tiga field - nama (tipe String), alamat (tipe String), dan gaji bulanan (double). Class tersebut harus memiliki constructor untuk menginisialisasi ketiga field tersebut. Buat setter dan getter untuk masing-masing field. Jika gaji bulanan tidak bernilai positif, set nilainya menjadi 0.0. Buat aplikasi "EmployeeTest" yang mendemokan kemampuan class "Employee". Buat dua objek "Employee" dan tampilkan gaji tahunan masing-masing. Kemudian naikkan masing-masing gajinya sebesar 10% dan tampilkan gaji tahunannya lagi.

    Nama file: Employee.java
    public class Employee {
     private String namaPegawai;
     private String alamatPegawai;
     private double gajiBulan;
     private double gajiTahun;
     
     public Employee(String nama, String alamat, double gaji){
      namaPegawai = nama;
      alamatPegawai = alamat;
      gajiBulan = gaji;
     }
     
     public void setNamaPegawai(String nama) {
      namaPegawai = nama;
     }
     
     public void setAlamatPegawai(String alamat) {
      alamatPegawai = alamat;
     }
     
     public void setGajiBulan(double gaji) {
      gajiBulan = gaji;
      setGajiTahun(gaji);
     }
    
     public String getNamaPegawai() {
      return namaPegawai;
     }
     
     public String getAlamatPegawai() {
      return alamatPegawai;
     }
     
     public double getGajiBulan() {
      return gajiBulan;
     }
     
     public void setGajiTahun(double gaji){
      if(gaji <= 0){
       gajiTahun = gajiBulan * 0;
      }
      else{
       gajiTahun = gajiBulan * 12;
       gajiTahun =  gajiTahun + (0.1 * gajiTahun);
      }
     }
     public double getGajiTahun(){
      return gajiTahun;
     }
    
    }
     

    Nama File: EmployeeTest.java  
    import java.util.Scanner;
    
    public class EmployeeTest {
     public static void main(String args[]){
      Scanner input = new Scanner(System.in);
      
      Employee karyawan1 = new Employee(null, null, 0);
      Employee karyawan2 = new Employee(null, null, 0);
      
      System.out.println("Masukkan nama karyawan1: ");
      String name1 = input.nextLine();
      System.out.println("Masukkan alamat karyawan1: ");
      String addres1 = input.nextLine();
      System.out.println("Masukkan gaji karyawan1: ");
      double pay1 = input.nextDouble();
      
      
     karyawan1.setNamaPegawai(name1);  karyawan1.setAlamatPegawai(addres1);
      karyawan1.setGajiBulan(pay1);
    
      System.out.printf("\nNama Karyawan: %s\nAlamat: %s\nGaji Bulanan: %g\nGaji perTahun: %g\n", 
        karyawan1.getNamaPegawai(), 
        karyawan1.getAlamatPegawai(), 
        karyawan1.getGajiBulan(), 
        karyawan1.getGajiTahun());
     
      System.out.print("\n\n");
      
      System.out.println("Masukkan nama karyawan2: ");
      String name2 = input.next();
      System.out.println("Masukkan alamat karyawan2: ");
      String addres2 = input.next();
      System.out.println("Masukkan gaji karyawan2: ");
      double pay2 = input.nextDouble();
        
      karyawan2.setNamaPegawai(name2);
      karyawan2.setAlamatPegawai(addres2);
      karyawan2.setGajiBulan(pay2);
      
      System.out.printf("\nNama Karyawan: %s\nAlamat: %s\nGaji Bulanan: %g\nGaji perTahun: %g", 
        karyawan2.getNamaPegawai(), 
        karyawan2.getAlamatPegawai(), 
        karyawan2.getGajiBulan(), 
        karyawan2.getGajiTahun());
     }
    
    }
    

    Bagi yang mau membantu silakan tinggalkan komentar atau kirim email :p. Kalau soalnya sudah selesai akan segera di update!

    You Might Also Like

    0 comments

    Komentar spam enggak bakal aku approve lho. Gunakan nama asli bukan keyword :p

    Facebook

    Subscribe