MODUL I, PBO 1

  KELAS DAN OBYEK
 

I.       MAKSUD DAN TUJUAN
1.      Mahasiswa dapat memahami dan menjelaskan cara pembuatan kelas dan menjelaskan bagian-bagian dalam kelas,
2.      Mahasiswa dapat membuat atribut dan method yang merupakan bagian dari kelas, mengetahui fungsi dan spesifikasinya sehingga dapat memanfaatkan method dalam kelas
3.      Mahasiswa membuat program dengan menggunakan method sebagai sub bagian program sehingga sintak program lebih efisiensi dan efektif.
II.    TEORI DASAR
Kelas merupakan blue print dari obyek-obyek yang akan dibuat. Analogi kelas dan obyek seperti rancangan model rumah dan rumah-rumah yang dibangun berdasar rancangan tersebut. Adapun proses pembuatan obyek dari kelas disebut instantiasi atau implementasi dari kelas.
Terdapat 3 konsep penting dalam OOP, yaitu: enkapsulasi, pewarisan, danm polumorfisme. Enkapsulasi bertyujuan untuk menyembunyikan kerumitan implementasi dan menyediakan interface bagi pengguna. Selain itu enkapsulasi juga berguna untuk proteksi data (read/write). Pewarisan adalah salah satu cara untuk menggunakan ulang kode-0de yang telah duibuat sebelumnya. Sedangkan polumorfisme adalah kemampuan obyek untuk bereaksi secara berbeda terhadap “pesan yang sama”, tergantung obyek yang menerima pesan tersebut. Kemampuan ini berkat adanya konsep method overriding dan method overloading.
Membuat class dan obyek dalam java
Elemen-elemen dasar dalam mendefinisikan kelas:
1.               Field (variabel)      :     menyimpan data untuk setiap obyek (implementasi dari artibut)
2.               Constructor            :     setup obyek di awal
3.               Method                   :     implementasi perilaku obyek.
Class NamaKelas
{
          Fields/atribut
          Constructor
          Methods
}


III.       LISTING PROGRAM
LATIHAN 1:
public class Lingkaran
{
      //data field
      private double jejari;
      //konstruktor
      public Lingkaran(){
            this.jejari=1.0;
      }
      //method setter: ubah nilai jari-jari
      public void setJejari(double jejari)      {
            this.jejari=jejari;
      }
      //method getter: ambil nilai jari-jari
      public double getJejari(){
            return this.jejari;
      }
      //method hitung luas lingkaran
      public double hitungLuas(){
            return (3.14 * this.jejari * this.jejari);
      }
Program dengan kelas Lingkaran di atas mempunyai variabel instan bernama jejari dengan tipe data double dimana data yang dapat dimuat terdiri dari bilangan bulat dan pecahan dengan rentang panjang data sebesar 64 bit. Private variabel berarti variabel tersebut hanya dapat dipakai pada kelas tersebut dan tidak dapat digunakan pada kelas-kelas lain di luar kelas tersebut.
Konstruktor yang ditandai dengan ketentuan bersama berupa penamaan dengan awal nama berupa huruf kapitas, tidak mempunyai tipe data dan data balik. Biasanya digunakan untuk mendifinisikan sebuah variabel. Pada konstruktor di atas mendefinisikan variabel jejari dengan nilai 1.0. Maka secara otomatis nilai jejari akan mempunyai value 1.0 sebagai nilai default.
Namun pada bagian program di bawah dengan method setter, yaitu sebuah metode yang tidak memiliki nilai balik ditandai dengan adanya pernyataan void untuk memberikan nilai tertentu kepada variabel yang didefinisikan. Perintah this.jejari=jejari merupakan perintah dimana agar suatu saat apabila method setter ini digunakan maka akan dapat merubah nilai jejari sesuai dengan nilai yang dikehendaki. Parameter yang digunakan oleh method setter ini menunjukkan variabel dan tipe data yang didefinisikan. Sebagaimana di atas parameter yang digunakan adalah double jejari.
Sedangkan method getter adalah method atau fungsi yang digunakan untuk mengambil nilai yang didefinisikan dari method setter. Karena method ini tidak menggunakan void dalam statemennya maka method ini pasti mempunyai nilai balik. Oleh karena itu di dalam method harus ada pernyataan return sebagai cara untuk mendefinisikan nilai. Jenisnya method non parametrik karena memang tidak menggunakan parameter. Walaupun dapat juga diberikan nilai pada parameter tersebut sebagai pendefinisian nilai suatu variabel.
Method  hitungLuas adalah satu bagian penting dalam kelas Lingkaran ini karena method ini termasuk method non void yang memberikan nilai balik. Nilai balik akan didefinisikan sebagai hasil perhitungan terhadap suatu operasi. Kebetulan program di atas dimanfaatkan sebagai media penghitungan luas lingkaran. Sehingga return value method hitungLuas ini adalah hasil pangkat jejari dengan konstanta 3.14 atau sering disebut sebagai PI.
Setelah program selesai apabila dikompilasi kelas tersebut jalan dengan baik. Tetapi belum dapat diruning karena belum adanya statemen kelas main. Dimana method ini adalah metode untuk menampilkan suatu data. Oleh karena itu kita perlu untuk mendefinisikan kelas main
HASIL KELUARAN:
LATIHAN 2:
public class Lingkaran
{
      //data field
      private double jejari;
      //konstruktor
      public Lingkaran(){
            this.jejari=1.0;
      }
      //method setter: ubah nilai jari-jari
      public void setJejari(double jejari)      {
            this.jejari=jejari;
      }
      //method getter: ambil nilai jari-jari
      public double getJejari(){
            return this.jejari;
      }
      //method hitung luas lingkaran
      public double hitungLuas(){
            return (3.14 * this.jejari * this.jejari);
      }
public static void main(String args[]){
      Lingkaran l1=new Lingkaran();
System.out.println(“Jejari Lingkaran adalah : “+l1.getJejari());
System.out.println(“Luas Lingkaran adalah   : “+l1.hitungLuas());
      }
}
Sebagaimana keterangan program di atas maka kita tambahkan method main, dengan sintak public static void main(String[] args). Method ini bersifat public artinya dapat dimanfaatkan oleh semua kelas kemudian static void memberikan arti bahwa kelas ini tidak mempunyai nilai balik. Main maksudnya adalah sebagai pernyataan sebagai main kelas atau kelas ini. String dipakai sebagai parameter memberikan arti bahwa parameter yang dapat digunakan berupa string variabel sedangkan tanda “[]” adalah statemen dalam java sebagai multi atau banyak dan args adalah kependekatan dari kata argumentasi. Sehingga parameter pada kelas main ini adalah tipe data string dengan banyak argumen. Artinya kelas ini dapat menampilkan data berupa string.
Dapat kita saksikan di bawah hasil running argumen System.out.println(“Jejari Lingkaran adalah:”+l1.getJejari(); akan menampilkan angka 1.0 atau menampilkan nilai default variabel jejari. Baris ke dua dari tampilan di bawah adalah hasil operasi method hitungLuas(), yaitu hasil pangkat jejari dengan 3.14. Namun sebelumnya karena method ini adalah method static maka harus mendefinisikan dalam obyek dahulu dengan perintah Lingkaran l1=new Lingkaran();. Obyek yang terbentuk adalah l1, dengan obyek ini kita baru dapat memanfaatkan untuk melakukan pemanggilan terhadap method-method yang ada di kelas Lingkaran ini.
HASIL KELUARAN:
LATIHAN 3:
public class Lingkaran
{
            //data field
            private double jejari;
            //konstruktor
            public Lingkaran(){
                        this.jejari=1.0;
            }
            //method setter: ubah nilai jari-jari
            public void setJejari(double jejari)    {
                        this.jejari=jejari;
            }
            //method getter: ambil nilai jari-jari
            public double getJejari(){
                        return this.jejari;
            }
            //method hitung luas lingkaran
            public double hitungLuas(){
                        return (3.14 * this.jejari * this.jejari);
            }
public static void main(String args[]){
            Lingkaran l1=new Lingkaran();
            System.out.println(“Jejari Lingkaran adalah : “+l1.getJejari());
            System.out.println(“Luas Lingkaran adalah   : “+l1.hitungLuas());
            l1.setJejari(2.34);
            System.out.println(“Jejari Lingkaran adalah : “+l1.getJejari());
            System.out.println(“Luas Lingkaran adalah   : “+l1.hitungLuas());
            }
}
Kita coba tambahkan empat baris statemen berikut:
            l1.setJejari(2.34);
            System.out.println(“Jejari Lingkaran adalah : “+l1.getJejari());
            System.out.println(“Luas Lingkaran adalah   : “+l1.hitungLuas());
            }
Maka akan menghasilkan tampilan sebagaimana di bawah ini. Dimana l1 sebagai obyek bertugas untuk melakukan pemanggilan terhadap method setter setJejari. Method ini berfungsi untuk mengubah nilai jejari dari 1.0 menjadi 2.34 sebagai parameter. Wal hasil yang ditampilkan pada Jejari Lingkaran setelah mengalami perubahan adalah 2.34 dan luas lingkaran menjadi 17.193384.
HASIL KELUARAN:
LATIHAN 4:
public class Lingkaran
{
       //data field
       private double jejari;
       private final double PI=3.14; //Konstanta (PI) harus Ditulis dgn huruf kapital agar tidak dapat diset ulang
       //konstruktor
       public Lingkaran(){
              this.jejari=1.0;
       }
       //method setter: ubah nilai jari-jari
       public void setJejari(double jejari)     {
              this.jejari=jejari;
       }
       //method setter: ubah nilai nilai PI
       public void setPhi(double jejari) {
              this.PI=PI;
       }
       //method getter: ambil nilai jari-jari
       public double getPhi(){
              return this.PI;
       }
       //method getter: ambil nilai jari-jari
       public double getJejari(){
              return this.jejari;
       }
       //method hitung luas lingkaran
       public double hitungLuas(){
              return (PI * this.jejari * this.jejari);
       }
public static void main(String args[]){
       Lingkaran l1=new Lingkaran();
       System.out.println(“Jejari Lingkaran adalah : “+l1.getJejari());
       System.out.println(“Luas Lingkaran adalah   : “+l1.hitungLuas());
       l1.setJejari(2.34); //merubah nilai jeJari (setjeJari)
       System.out.println(“Jejari Lingkaran adalah : “+l1.getJejari());
       System.out.println(“Luas Lingkaran adalah   : “+l1.hitungLuas());
       l1.setPhi(2.34);
       System.out.println(“Phi Lingkaran adalah    : “+l1.getPhi());
       System.out.println(“Luas Lingkaran adalah   : “+l1.hitungLuas());
       }
}
Salau satu statemen untuk menetapkan suatu konstanta adalah mendeklarasikannya sebagaimana di bawah:
private final double PI=3.14;
Dengan demikian nilai PI sudah tidak dapat diubah lagi. Cara penulisan konstanta adalah dengan huruf kapital semua. Ini merupakan konsensus dalam pemrograman java.
Dapat kita lihat tampilan di bawah ini bahwa walaupun nilai PI kita coba untuk diubah namun nilai PI tetap yaitu 3.14.
HASIL KELUARAN:
Selain itu kita dapat mendefinisikan nilai maksimal sebuah array dengan kelas Math yang sudah menjadi satu package pada java. Dimana kita tidak perlu membuat lagi kelas methodnya, kita hanya perlu memanggil obyek Math dengan perintah Math. Sedangkan method-methodnya dapat kita lihat pada daftar sebagaimana pada modul praktikum STIMIK AKAKOM YK OOP.
       System.out.println(“Maksimum Lingkaran adlh : “+Math.max(2.3,3.2));
       }
Sehingga yang dihasilkan adalah adalah 3.2 dimana nilai pembandingnya adalah 2.3.
HASIL KELUARAN:
Fungsi lainnya adalah nilai pembulatan ke bawah dari parameter yang dituliskan sebagaimana di bawah. Nilai parameter 2.678334 menghasilkan nilai 2.
System.out.println(“Pembulatan Lingkaran adl: “+Math.floor(2.678334));
Kembalikan dari fungsi pembulatan ke bawah yaitu pembulatan ke bawah, parameter yang dituliskan sebagaimana di bawah. Nilai parameter 2.678334 menghasilkan nilai 3. Sebagaimana baris hasil program nomor 7.
System.out.println(“Pembulatan Lingkaran adl: “+Math.ceil(2.678334));
//Untuk membulatkan ke atas parameter yang dituliskan
HASIL KELUARAN:
Pada penggunaan statemen Math sebenarnya adalah penggunaan kelas Math yang sudah dibundel dalam program java. Kelas ini dapat dipanggil oleh kelas lain tanpa harus menggunakan perintah import. Fungsi-fungsi matematika sudah di lekatkan menjadi paket bundel Math. Berikut kelas Math apabila digambarkan menjadi sebuah diagram:
Math
E=10
PI=3.14
Bilangan
abs ()
ceil()
floor()
max()
Salah satu penjelasan mengenai struktur atribut PI sebagai salah satu atribut atau field. PI merupakan sebuah konstanta dalam java yang semestinya dalam penulisan dengan menggunakan huruf kapital/huruf besar. Dan dapat dituliskan menjadi:
Private final double PI=3.14;
Memberikan arti bahwa nilai PI sudah ditetapkan sebagai nilai akhir yang sudah tidak dapat diubah lagi. Pernyataan di atas dapat juga dikatakan sebagai konstruktor untuk memberikan nilai PI. Menggunakan tipe data double karena nilai PI mengandung pecahan. Walaupun sebenarnya dapat pula cukup menggunakan tipe data float untuk PI karena hanya menggunakan 2 digit dibelakang koma.
Beberapa method yang terdapat pada kelas Math antara lain abs(double a), ceil(double a), floor(double a), max(double a, double b). Fungsi Math ini data-data dapat menggunakan tipe data double. Abs berfungsi sebagai method untuk mengabsolutkan sebuah bilangan yaitu menjadikan bilangan selalu positif . Bilangan yang dipositifkan dapat berasal dari bilangan bulat maupun pecahan.
Method ceil berfungsi sebagai sub program untuk membulatkan ke atas suatu bilangan bulat. Tipe data yang dapat digunakan adalah  double atau float. Kebalikan dari ceil adalah floor yaitu pembulatan ke bawah.
Fungsi lainnya adalah max dimana method ini berguna untuk mencari nilai maksimal dari dua buah bilangan. Sebagai contoh struktur penulisannya sebagai berikut max(6, 3) yang akan menghasilkan angka 6 sebagai keluaran, juga method min yang berfungsi sebagai kebalikan fungsi max. Dapat kita contohkan beberapa baris program untuk memperjelas keterangan di atas.
class Absolut{
public static void main(String[]args){
System.out.println(“Fungsi abs(-30.76575)   = “+Math.abs(-30.76575));
System.out.println(“Fungsi ceil(-30.76575)  = “+Math.ceil(30.76575));
System.out.println(“Fungsi floor(-30.76575) = “+Math.floor(30.26575));
System.out.println(“Fungsi max(6,3)         = “+Math.max(6,3));
System.out.println(“Fungsi min(6,3)         = “+Math.min(6,3));
}}
HASIL OUTPUT:
IV. TUGAS
1.         Program dengan sintak sebagai berikut:
import java.util.Scanner;
public class Person
{     //awal
      private String nama;
      private String alamat;
      private int umur;
public Person(String nama,String alamat, int umur){
      this.nama=nama;
      this.alamat=alamat;
      this.umur=umur;
}
public void info()
{
      System.out.println(“Nama    = “+this.nama);
      System.out.println(“Alamat  = “+this.alamat);
      System.out.println(“Umur    = “+this.umur);
}
public static void main(String[] args)
{
      Scanner masuk=new Scanner (System.in);
      System.out.print(“Masukkan nama   = “);
      String nama=masuk.nextLine();
      System.out.print(“Masukkan alamat = “);
      String alamat=masuk.nextLine();
      System.out.print(“Masukkan umur   = “);
      int umur=masuk.nextInt();
      Person oop=new Person(nama,alamat,umur);
      oop.info();
}
} //akhir
Penjelasan tentang:
a.   Atribut yang ada pada kelas person adalaj:
   private String nama;
   private String alamat;
   private int umur;
b.   Konstruktor yang dimiliki adalah:
   public Person(String nama,String alamat, int umur){
   this.nama=nama;
   this.alamat=alamat;
   this.umur=umur;
c.   Method yang ada pada kelas tersebut adalah method untuk menampilkan data yaitu:
public void info()
{
   System.out.println(“Nama    = “+this.nama);
   System.out.println(“Alamat  = “+this.alamat);
   System.out.println(“Umur    = “+this.umur);
}
d.   Gambaran diagram kelas
Person
nama=String
alamat=String
umur=Int
void info()
2.         Membuat kelas Mahasiswa:
import java.util.Scanner;
class Mahasiswa{
public String nomhs;
public String nama;
public String jurusan;
public double ipk;
      public void setNomhs(String nomhs){
            this.nomhs=nomhs;
            }
            String getNomhs(){
                  return this.nomhs;
                  }
      public void setNama(String nama){
            this.nama=nama;
            }
            String getNama(){
                  return this.nama;
                  }
      public void setJurusan(String jurusan){
            this.jurusan=jurusan;
            }
            String getJurusan(){
                  return this.jurusan;
                  }
      public void setIpk(double ipk){
            this.ipk=ipk;
            }
            double getIpk(){
                  return this.ipk;
                  }
      public void tampil(){
            System.out.println(“=======================================”);
            System.out.println(“TAMPILKAN DATA MAHASISWA : “);
            System.out.println(“=======================================”);
            System.out.println(“No. Mhs. = “+this.nomhs);
            System.out.println(“Nama     = “+this.nama);
            System.out.println(“Jurusan  = “+this.jurusan);
            System.out.println(“IPK      = “+this.ipk);
      }
      public static void main(String []args){
            Mahasiswa mhs=new Mahasiswa();
                  mhs.setNomhs(“093110035”);
                  mhs.setNama(“MUHAMMAD ARIEF SATEJO KINADY”);
                  mhs.setJurusan(“MANAJEMEN INFORMATIKA”);
                  mhs.setIpk(3.9);
            mhs.tampil();
            }
}
            HASIL OUTPUT:
V.        KESIMPULAN
1.            Ada tiga bagian penting dalam sebuah kelas yaitu field/variabel, konstruktor dan method. Namun yang harus ada adalah atribut/variabel/field dan method.
2.            Dalam menuliskan sebuah konstanta di dalam kelas maka harus dituliskan dalam huruf kapital, kemudian diberi tambahan “private final” misalnya: “private final double PI=3.14”.
3.            Ada dua tipe pemanggilan terhadap method, method dengan parameter void dapat dilakukan pemanggilan langsung tanpa harus menginstaniasi dengan objek namun method tanpa void dalam melakukan pemanggilan harus menciptakan objek.
4.            Untuk memudahkan dalam pembuatan program dengan menggunakan kelas dan method langkah yang sistematis adalah dengan membuat struktur kelas terlebih dahulu, karena akan memudahkan dalam pembuatan.
5.            Di dalam java ada kelas yang sudah menjadi bawaan program java, seperti kelas Math. Kelas Math ini merupakan sekelompok method fungsi-fungsi matematis di dalam program java. Kelas Math ini dapat dipanggil tanpa harus melakukan import, dalam melakukan pemanggilan tinggal mendefinisikan dengan menuliskan Math di depan method yang diinginkan sebagai contoh: Math.ceil(double bilangan).
6.            Untuk menampilkan hasil operasi harus ada method main, yaitu method yang akan menampung semua argumen yang berupa string untuk menampilkan data-data yang diinginkan. Tanpa method main ini suatu kelas tidak akan ditampilkan.
Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s