Soal Lab05a Bagian 1: Latihan Object dan Package (revisi 150311-r01)

  1. Buatlah sebuah direktori bernama Lab05. Direktori ini akan menjadi direktori pekerjaan hari ini.
  2. Kita akan membuat beberapa buah kelas yang memenuhi soal berikut:
    1. Diketahui sebuah bentuk bernama Persegi. Persegi mempunyai sisi, dan dapat dicari luasnya dengan rumus sisi * sisi. Ada bentuk lain bernama Segitiga. Segitiga mempunyai alas dan tinggi, dan dapat dicari luasnya dengan rumus alas * tinggi / 2.
    2. Selain itu ada persamaan matematika yang dapat:
      1. mengembalikan angka yang paling besar dari dua buah angka.
      2. mengembalikan angka satu pangkat angka dua
      3. mengembalikan nilai absolut sebuah angka
    3. Silahkan buat solusi OOP terhadap pengetahuan di atas.
    4. Saya mempunyai kelas Tester yang akan mengetes solusi yang dibuat. Silahkan digabungkan.
      package test;
      
      // lakukan import kelas-kelas solusi kalian di sini
      
      public class Tester {
          public static void main(String[] args) {
              System.out.println("Memanggil static method dari kelas Matematika");
              System.out.println("absolut(-3.5) = " + Matematika.absolut(-3.5));
              System.out.println("absolut(-19) = " + Matematika.absolut(-19));
              System.out.println("maks(-2.15, -2.14) = " 
                      + Matematika.maks(-2.15, -2.14));
              System.out.println("maks(4, 10) = " + Matematika.maks(4, 10));
              System.out.println("pangkat(2, 10) = " + Matematika.pangkat(2, 10));
      
              System.out.println();
              System.out.println("Memanggil method dari kelas Persegi dan Segitiga");
      
              Persegi p1 = new Persegi(15);
              System.out.println("sisi persegi = " + p1.getSisi());
              System.out.println("luas persegi = " + p1.getLuas());
      
              System.out.println();
      
              Segitiga s1 = new Segitiga(15, 10);
              System.out.println("alas segitiga = " + s1.getAlas());
              System.out.println("tinggi segitiga = " + s1.getTinggi());
              System.out.println("luas segitiga = " + s1.getLuas());
          }
      }
  3. Dari soal di atas ada beberapa hal yang dapat diambil:
    1. Persegi dan Segitiga dapat dibuat menjadi class. Keduanya juga adalah bentuk sehingga paling cocok dimasukkan ke dalam package bentuk.
    2. persamaan matematika adalah sebuah kelas tersendiri, untuk gampangnya diambil kelas Matematika. Kelas Matematika bukan bentuk sehingga perlu package tersendiri, untuk gampangnya buat saja package matematika.
    3. Dari program Tester di atas didapat kesimpulan bahwa class Tester berada dalam package test.
  4. Anda disarankan tapi tidak diharuskan menggunakan Terminal dan command prompt (cmd) dalam membuat project ini agar bisa mengerti langkah - langkah apa saja yang perlu dipersiapkan sehubungan dengan membuat kelas - kelas berorientasi objek dan berada dalam package. Eclipse akan menangani package secara otomatis sehingga anda akan berakhir tidak benar - benar mengerti bagaimana sistem package bisa dilakukan.
  5. Silahkan buat package - package yang sudah disebutkan di atas. terlebih dahulu dalam folder src project anda. Jika anda menggunakan command prompt (cmd) dalam membuat dan mengeksekusi berkas java, silahkan buat folder sesuai nama package di atas dalam folder project anda.
  6. Silahkan membuat kelas - kelas yang bersesuaian di dalam masing - masing package / folder. Jangan lupa untuk membuat method2 yang diperlukan, seperti getter, serta perhitungan luas.
  7. Kelas Persegi:
    package bentuk;
    
    /**
    * Kelas yang merepresentasikan sebuah persegi. Kelas ini dapat menghitung luas sebuah persegi.
    *
    * @author Ramot - revisi dari kelas Persegi dari Nobita - 110617081945 
    * 
    */
    public class Persegi {
        // variabel yang menyimpan nilai sisi sebuah persegi
        private double sisi;
    
        /**
        * Constructor kelas Persegi. Pada constructor ini diatur nilai
        * dari variabel sisi.
        *
        * @param sisi adalah sisi persegi yang akan disimpan nilainya
        */
        public Persegi(double sisi) {
                 // implementasikan kode anda di sini
    
        }
    
        /**
        * Method untuk mengambil nilai sisi objek Persegi
        *
         * @return nilai sisi persegi
        */
        public double getSisi() {
            // implementasikan kode anda di sini
    
        }
    
        /**
        * Method untuk mengatur nilai sisi objek Persegi
        *
        * @param sisi adalah sisi persegi yang akan disimpan nilainya
        *
        */
        public void setSisi(double sisi) {
            // implementasikan kode anda di sini
    
        }
    
        // buat sebuah method untuk menghitung luas persegi di sini
            /**
        * Method untuk mencari luas Persegi
        *
        * @return luas Persegi
        *
        */
    
    }
  8. Kelas Segitiga:
    package bentuk;
    /**
    * Kelas yang merepresentasikan sebuah segitiga. Kelas ini dapat menghitung luas sebuah segitiga.
    *
    * @author Ramot - revisi dari kelas Segitiga dari Nobita - 110617081945 
    *
    */
    public class Segitiga {
        // variabel yang menyimpan nilai alas sebuah segitiga
        private double alas;
        // variabel yang menyimpan nilai tinggi sebuah segitiga
        private double tinggi;
    
        /**
        * Constructor kelas Segitiga. Pada constructor ini diatur
        * nilai dari variabel alas dan tinggi.
        *
        * @param alas adalah alas segitiga yang akan disimpan nilainya
        * @param tinggi adalah tinggi segitiga yang akan disimpan nilainya
        */
        public Segitiga(double alas, double tinggi) {
            // implementasikan kode anda di sini
    
        }
    
        /**
        * Method untuk mengambil nilai alas objek Segitiga
        *
        * @return nilai alas segitiga
        */
        public double getAlas() {
            // implementasikan kode anda di sini
    
        }
    
        /**
        * Method untuk mengatur nilai alas objek Segitiga
        *
        * @param alas adalah alas segitiga yang akan disimpan nilainya
        */
        public void setAlas(double alas) {
            // implementasikan kode anda di sini
    
        }
    
        /**
         * Method untuk mengambil nilai <code>tinggi</code> objek <code>Segitiga</code>
        *
        * @return nilai tinggi segitiga
        */
        public double getTinggi() {
            // implementasikan kode anda di sini
            return tinggi;
        }
    
        /**
        * Method untuk mengatur nilai tinggi objek Segitiga
        *
        * @param tinggi adalah tinggi segitiga yang akan disimpan nilainya
        */
        public void setTinggi(double tinggi) {
            // implementasikan kode anda di sini
    
        }    
    
        // buat sebuah method untuk menghitung luas segitiga di sini
            /**
        * Method untuk mencari luas Segitiga
        *
        * @return luas Segitiga
        *
        */
    
    }
  9. Kelas Matematika:
    package matematika;
    
    /**
    * Kelas yang berisi fungsi-fungsi matematika sederhana
    *
    * @author Ramot - revisi dari kelas Matematika dari Nobita - 110617081945
    *
    */
    public class Matematika {
        /**
        * Method untuk menghitung nilai maksimum dari dua buah bilangan bulat
        *
        * @param a bilangan pertama
        * @param b bilangan kedua
        * @return bilangan maksimum dari a dan b
        */
        public static int maks(int a, int b) {
            // implementasikan kode anda disini
    
        }
    
        /**
         * Method untuk menghitung nilai maksimum dari dua buah bilangan desimal
        * @param a bilangan pertama
        * @param b bilangan kedua
        * @return bilangan maksimum dari a dan b
        */
        public static double maks(double a, double b) {
            // implementasikan kode anda disini
    
        }
    
        /**
        * Method untuk menghitung nilai absolut dari sebuah bilangan bulat
        *
        * @param a bilangan yang akan dicari nilai absolutnya
        *
        * @return bilangan absolut dari a
        */
        public static int absolut(int a) {
            // implementasikan kode anda disini
    
        }
    
        /**
        * Method untuk menghitung nilai absolut dari sebuah bilangan desimal
        *
        * @param a bilangan yang akan dicari nilai absolutnya
        *
        * @return bilangan absolut dari a
        */
        public static double absolut(double a) {
            // implementasikan kode anda disini
    
        }
    
        /**
        * Method untuk menghitung nilai pemangkatan a terhadap b
        *
        * @param a bilangan dasar yang akan dicari pangkatnya
        * @param b bilangan yang menyatakan pangkat
        *
        * @return bilangan hasil pemangkatan a terhadap b
        */
        public static int pangkat(int a, int b) {
            // implementasikan kode anda disini
    
        }
    }
    
  10. Ada beberapa langkah untuk compile dan jalankan tugas sebagai berikut:
    1. pastikan anda berada di direktori paling luar dari project Anda.
    2. compile semua kelas yang ada dengan menyertakan path package / direktorinya.
      javac bentuk/*.java matematika/*.java test/*.java
    3. set CLASSPATH anda dengan path project anda. Misalkan saya membuat project ini di D:\Lab05
      set CLASSPATH=.;D:\Lab05;

      NB: anda hanya perlu melakukan hal ini sekali saja setiap kali anda membuka command prompt atau Terminal.
    4. eksekusi program Tester dengan mengikutsertakan path package nya.
      java test.Tester
    5. Lakukan perbaikan dan ulangi langkah 1 & 3 jika perlu.
  11. Demikian tutorial Soal Lab05a Bagian 1.