MODUL I, PBO 1

  KELAS DAN OBYEK
 

I.      MAKSUDDAN TUJUAN
1.     Mahasiswa dapat memahami dan menjelaskancara pembuatan kelas dan menjelaskan bagian-bagian dalam kelas,
2.     Mahasiswa dapat membuat atribut danmethod yang merupakan bagian dari kelas, mengetahui fungsi dan spesifikasinyasehingga dapat memanfaatkan method dalam kelas
3.     Mahasiswa membuat program denganmenggunakan method sebagai sub bagian program sehingga sintak program lebihefisiensi dan efektif.
II.   TEORIDASAR
Kelas merupakan blue print dariobyek-obyek yang akan dibuat. Analogi kelas dan obyek seperti rancangan modelrumah dan rumah-rumah yang dibangun berdasar rancangan tersebut. Adapun prosespembuatan obyek dari kelas disebut instantiasi atau implementasi dari kelas.
Terdapat 3 konsep penting dalam OOP,yaitu: enkapsulasi, pewarisan, danm polumorfisme. Enkapsulasi bertyujuan untukmenyembunyikan kerumitan implementasi dan menyediakan interface bagi pengguna.Selain itu enkapsulasi juga berguna untuk proteksi data (read/write). Pewarisanadalah salah satu cara untuk menggunakan ulang kode-0de yang telah duibuatsebelumnya. Sedangkan polumorfisme adalah kemampuan obyek untuk bereaksi secaraberbeda terhadap “pesan yang sama”, tergantung obyek yang menerima pesantersebut. Kemampuan ini berkat adanya konsep method overriding dan methodoverloading.
Membuat class dan obyek dalam java
Elemen-elemen dasar dalam mendefinisikan kelas:
1.              Field (variabel)      :     menyimpan data untuksetiap obyek (implementasi dari artibut)
2.              Constructor            :     setup obyek diawal
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 atasmempunyai variabel instan bernama jejari dengan tipe data double dimana datayang dapat dimuat terdiri dari bilangan bulat dan pecahan dengan rentangpanjang data sebesar 64 bit. Private variabel berarti variabel tersebut hanyadapat dipakai pada kelas tersebut dan tidak dapat digunakan pada kelas-kelaslain di luar kelas tersebut.
Konstruktor yang ditandai denganketentuan bersama berupa penamaan dengan awal nama berupa huruf kapitas, tidakmempunyai tipe data dan data balik. Biasanya digunakan untuk mendifinisikansebuah variabel. Pada konstruktor di atas mendefinisikan variabel jejari dengannilai 1.0. Maka secara otomatis nilai jejari akan mempunyai value 1.0 sebagainilai default.
Namun pada bagian program di bawahdengan method setter, yaitu sebuah metode yang tidak memiliki nilai balikditandai dengan adanya pernyataan void untuk memberikan nilai tertentu kepadavariabel yang didefinisikan. Perintah this.jejari=jejari merupakan perintahdimana agar suatu saat apabila method setter ini digunakan maka akan dapatmerubah nilai jejari sesuai dengan nilai yang dikehendaki. Parameter yangdigunakan oleh method setter ini menunjukkan variabel dan tipe data yangdidefinisikan. Sebagaimana di atas parameter yang digunakan adalah doublejejari.
Sedangkan method getter adalah methodatau fungsi yang digunakan untuk mengambil nilai yang didefinisikan dari methodsetter. Karena method ini tidak menggunakan void dalam statemennya maka methodini pasti mempunyai nilai balik. Oleh karena itu di dalam method harus adapernyataan return sebagai cara untuk mendefinisikan nilai. Jenisnya method nonparametrik karena memang tidak menggunakan parameter. Walaupun dapat jugadiberikan nilai pada parameter tersebut sebagai pendefinisian nilai suatuvariabel.
Method hitungLuas adalah satu bagian penting dalam kelas Lingkaran ini karenamethod ini termasuk method non void yang memberikan nilai balik. Nilai balikakan didefinisikan sebagai hasil perhitungan terhadap suatu operasi. Kebetulanprogram di atas dimanfaatkan sebagai media penghitungan luas lingkaran.Sehingga return value method hitungLuas ini adalah hasil pangkat jejari dengankonstanta 3.14 atau sering disebut sebagai PI.
Setelah program selesai apabiladikompilasi kelas tersebut jalan dengan baik. Tetapi belum dapat diruningkarena belum adanya statemen kelas main. Dimana method ini adalah metode untukmenampilkan suatu data. Oleh karena itu kita perlu untuk mendefinisikan kelasmain
HASIL KELUARAN:
LATIHAN 2:
public classLingkaran
{
      //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 voidmain(String args[]){
      Lingkaran l1=new Lingkaran();
System.out.println(“JejariLingkaran adalah : “+l1.getJejari());
System.out.println(“LuasLingkaran adalah   : “+l1.hitungLuas());
      }
}
Sebagaimana keterangan program di atasmaka kita tambahkan method main, dengan sintak public static void main(String[]args). Method ini bersifat public artinya dapat dimanfaatkan oleh semua kelaskemudian static void memberikan arti bahwa kelas ini tidak mempunyai nilaibalik. Main maksudnya adalah sebagai pernyataan sebagai main kelas atau kelasini. String dipakai sebagai parameter memberikan arti bahwa parameter yangdapat digunakan berupa string variabel sedangkan tanda “[]” adalah statemendalam java sebagai multi atau banyak dan args adalah kependekatan dari kataargumentasi. Sehingga parameter pada kelas main ini adalah tipe data stringdengan banyak argumen. Artinya kelas ini dapat menampilkan data berupa string.
Dapat kita saksikan di bawah hasilrunning 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(), yaituhasil pangkat jejari dengan 3.14. Namun sebelumnya karena method ini adalahmethod static maka harus mendefinisikan dalam obyek dahulu dengan perintahLingkaran l1=new Lingkaran();. Obyek yang terbentuk adalah l1, dengan obyek inikita baru dapat memanfaatkan untuk melakukan pemanggilan terhadap method-methodyang ada di kelas Lingkaran ini.
HASIL KELUARAN:
LATIHAN 3:
public class Lingkaran
{
            //datafield
            privatedouble jejari;
            //konstruktor
            publicLingkaran(){
                        this.jejari=1.0;
            }
            //methodsetter: ubah nilai jari-jari
            publicvoid setJejari(double jejari)    {
                        this.jejari=jejari;
            }
            //methodgetter: ambil nilai jari-jari
            publicdouble getJejari(){
                        returnthis.jejari;
            }
            //methodhitung luas lingkaran
            publicdouble hitungLuas(){
                        return(3.14 * this.jejari * this.jejari);
            }
public static void main(String args[]){
            Lingkaranl1=new Lingkaran();
            System.out.println(“JejariLingkaran adalah : “+l1.getJejari());
            System.out.println(“LuasLingkaran adalah   :”+l1.hitungLuas());
            l1.setJejari(2.34);
            System.out.println(“JejariLingkaran adalah : “+l1.getJejari());
            System.out.println(“LuasLingkaran adalah   :”+l1.hitungLuas());
            }
}
Kita coba tambahkan empat barisstatemen berikut:
            l1.setJejari(2.34);
            System.out.println(“JejariLingkaran adalah : “+l1.getJejari());
            System.out.println(“LuasLingkaran adalah   :”+l1.hitungLuas());
            }
Maka akan menghasilkan tampilansebagaimana di bawah ini. Dimana l1 sebagai obyek bertugas untuk melakukanpemanggilan terhadap method setter setJejari. Method ini berfungsi untukmengubah nilai jejari dari 1.0 menjadi 2.34 sebagai parameter. Wal hasil yangditampilkan pada Jejari Lingkaran setelah mengalami perubahan adalah 2.34 danluas lingkaran menjadi 17.193384.
HASIL KELUARAN:
LATIHAN 4:
public classLingkaran
{
       //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 voidmain(String args[]){
       Lingkaran l1=new Lingkaran();
       System.out.println(“Jejari Lingkaranadalah : “+l1.getJejari());
       System.out.println(“Luas Lingkaranadalah   : “+l1.hitungLuas());
       l1.setJejari(2.34); //merubah nilaijeJari (setjeJari)
       System.out.println(“Jejari Lingkaranadalah : “+l1.getJejari());
       System.out.println(“Luas Lingkaranadalah   : “+l1.hitungLuas());
       l1.setPhi(2.34);
       System.out.println(“Phi Lingkaranadalah    : “+l1.getPhi());
       System.out.println(“Luas Lingkaranadalah   : “+l1.hitungLuas());
       }
}
Salau satu statemen untuk menetapkansuatu konstanta adalah mendeklarasikannya sebagaimana di bawah:
private finaldouble PI=3.14;
Dengan demikian nilai PI sudah tidakdapat diubah lagi. Cara penulisan konstanta adalah dengan huruf kapital semua.Ini merupakan konsensus dalam pemrograman java.
Dapat kita lihat tampilan di bawah inibahwa walaupun nilai PI kita coba untuk diubah namun nilai PI tetap yaitu 3.14.
HASIL KELUARAN:
Selain itu kita dapat mendefinisikannilai maksimal sebuah array dengan kelas Math yang sudah menjadi satu packagepada java. Dimana kita tidak perlu membuat lagi kelas methodnya, kita hanyaperlu memanggil obyek Math dengan perintah Math. Sedangkan method-methodnyadapat kita lihat pada daftar sebagaimana pada modul praktikum STIMIK AKAKOM YK OOP.
       System.out.println(“MaksimumLingkaran adlh : “+Math.max(2.3,3.2));
       }
Sehingga yang dihasilkan adalah adalah3.2 dimana nilai pembandingnya adalah 2.3.
HASIL KELUARAN:
Fungsi lainnya adalah nilai pembulatanke bawah dari parameter yang dituliskan sebagaimana di bawah. Nilai parameter2.678334 menghasilkan nilai 2.
System.out.println(“PembulatanLingkaran adl: “+Math.floor(2.678334));
Kembalikan dari fungsi pembulatan kebawah yaitu pembulatan ke bawah, parameter yang dituliskan sebagaimana di bawah.Nilai parameter 2.678334 menghasilkan nilai 3. Sebagaimana baris hasil programnomor 7.
System.out.println(“PembulatanLingkaran adl: “+Math.ceil(2.678334));
//Untukmembulatkan ke atas parameter yang dituliskan
HASIL KELUARAN:
Pada penggunaan statemen Mathsebenarnya adalah penggunaan kelas Math yang sudah dibundel dalam program java.Kelas ini dapat dipanggil oleh kelas lain tanpa harus menggunakan perintahimport. 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 strukturatribut PI sebagai salah satu atribut atau field. PI merupakan sebuah konstantadalam java yang semestinya dalam penulisan dengan menggunakan hurufkapital/huruf besar. Dan dapat dituliskan menjadi:
Private final double PI=3.14;
Memberikan arti bahwa nilai PI sudahditetapkan sebagai nilai akhir yang sudah tidak dapat diubah lagi. Pernyataandi atas dapat juga dikatakan sebagai konstruktor untuk memberikan nilai PI.Menggunakan tipe data double karena nilai PI mengandung pecahan. Walaupunsebenarnya dapat pula cukup menggunakan tipe data float untuk PI karena hanyamenggunakan 2 digit dibelakang koma.
Beberapa method yang terdapat padakelas 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 datadouble. Abs berfungsi sebagai method untuk mengabsolutkan sebuah bilangan yaitumenjadikan bilangan selalu positif . Bilangan yang dipositifkan dapat berasaldari bilangan bulat maupun pecahan.
Method ceil berfungsi sebagai subprogram untuk membulatkan ke atas suatu bilangan bulat. Tipe data yang dapatdigunakan adalah  double atau float.Kebalikan dari ceil adalah floor yaitu pembulatan ke bawah.
Fungsi lainnya adalah max dimana methodini berguna untuk mencari nilai maksimal dari dua buah bilangan. Sebagai contohstruktur penulisannya sebagai berikut max(6, 3) yang akan menghasilkan angka 6sebagai keluaran, juga method min yang berfungsi sebagai kebalikan fungsi max.Dapat kita contohkan beberapa baris program untuk memperjelas keterangan diatas.
class Absolut{
public static voidmain(String[]args){
System.out.println(“Fungsiabs(-30.76575)   =”+Math.abs(-30.76575));
System.out.println(“Fungsiceil(-30.76575)  =”+Math.ceil(30.76575));
System.out.println(“Fungsifloor(-30.76575) = “+Math.floor(30.26575));
System.out.println(“Fungsimax(6,3)         = “+Math.max(6,3));
System.out.println(“Fungsimin(6,3)         = “+Math.min(6,3));
}}
HASIL OUTPUT:
IV. TUGAS
1.         Program dengan sintaksebagai berikut:
importjava.util.Scanner;
public class Person
{     //awal
      private Stringnama;
      private Stringalamat;
      private intumur;
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)
{
      Scannermasuk=new Scanner (System.in);
      System.out.print(“Masukkannama   = “);
      Stringnama=masuk.nextLine();
      System.out.print(“Masukkanalamat = “);
      Stringalamat=masuk.nextLine();
      System.out.print(“Masukkanumur   = “);
      intumur=masuk.nextInt();
      Person oop=newPerson(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, intumur){
   this.nama=nama;
   this.alamat=alamat;
   this.umur=umur;
c.   Method yang ada pada kelas tersebut adalahmethod 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 voidsetNomhs(String nomhs){
            this.nomhs=nomhs;
            }
            StringgetNomhs(){
                  returnthis.nomhs;
                  }
      public voidsetNama(String nama){
            this.nama=nama;
            }
            StringgetNama(){
                  returnthis.nama;
                  }
      public voidsetJurusan(String jurusan){
            this.jurusan=jurusan;
            }
            StringgetJurusan(){
                  returnthis.jurusan;
                  }
      public voidsetIpk(double ipk){
            this.ipk=ipk;
            }
            doublegetIpk(){
                  returnthis.ipk;
                  }
      public voidtampil(){
            System.out.println(“=======================================”);
            System.out.println(“TAMPILKANDATA 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 staticvoid main(String []args){
            Mahasiswamhs=new Mahasiswa();
                  mhs.setNomhs(“093110035”);
                  mhs.setNama(“MUHAMMADARIEF SATEJO KINADY”);
                  mhs.setJurusan(“MANAJEMENINFORMATIKA”);
                  mhs.setIpk(3.9);
            mhs.tampil();
            }
}
            HASIL OUTPUT:
V.        KESIMPULAN
1.           Adatiga bagian penting dalam sebuah kelas yaitu field/variabel, konstruktor danmethod. Namun yang harus ada adalah atribut/variabel/field dan method.
2.           Dalammenuliskan sebuah konstanta di dalam kelas maka harus dituliskan dalam hurufkapital, kemudian diberi tambahan “private final” misalnya: “private finaldouble PI=3.14”.
3.           Adadua tipe pemanggilan terhadap method, method dengan parameter void dapatdilakukan pemanggilan langsung tanpa harus menginstaniasi dengan objek namunmethod tanpa void dalam melakukan pemanggilan harus menciptakan objek.
4.           Untukmemudahkan dalam pembuatan program dengan menggunakan kelas dan method langkahyang sistematis adalah dengan membuat struktur kelas terlebih dahulu, karenaakan memudahkan dalam pembuatan.
5.           Didalam java ada kelas yang sudah menjadi bawaan program java, seperti kelasMath. Kelas Math ini merupakan sekelompok method fungsi-fungsi matematis didalam program java. Kelas Math ini dapat dipanggil tanpa harus melakukanimport, dalam melakukan pemanggilan tinggal mendefinisikan dengan menuliskanMath di depan method yang diinginkan sebagai contoh: Math.ceil(doublebilangan).
6.           Untukmenampilkan hasil operasi harus ada method main, yaitu method yang akanmenampung semua argumen yang berupa string untuk menampilkan data-data yangdiinginkan. 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