Anda di halaman 1dari 17

Jobsheet

 Praktikum  OOP  (v1.0)  


 

3  –  Class  dan  Object  (2)  


PENDAHULUAN  

Masih   tentang   Class   dan   Object,   jika   pada   bagian   sebelumnya   fokus   pembahasan   terletak   pada  
bagaimana  cara  menggambarkan  desain  Cklas  menggunakan  Class  Diagram,  cara  membuat  Class  di  Java,  
cara   membuat/deklarasi   atribut   dan   method,   cara   melakukan   instansiasi   dan   cara   mengakses   atribut  
dan  method  dari  suatu  objek  yang  telah  terbentuk,  maka  pada  bagian  ini  akan  dibahas  konsep  Class  dan  
Object  yang  lebih  lanjut.  Kensep  tersebut  antara  lain:  

• Access  Modifier    
• Konstruktor  
• Atribut/Method  Instansiasi  
• Atribut/Method  Class  

Access  Modifier  

Atribut  dan  method  yang  dimiliki  oleh  oleh  suatu  class  bisa  dibatasi  hak  akses  terhadapnya.  Hal  itu  bisa  
dilakukan  dengan  memberikan  access  modifier  pada  atribut  dan  method  dari  suatu  class.  Ada  4  macam  
access  modifier,  yaitu:  

Pada   Class   Diagram,   private   digambarkan   dengan   tanda   -­‐,   public   dengan   tanda   +,   protected   dengan  
tanda  #  dan  default  (tanpa  modifier  access)  dengan  tanda  ~.    

Konstruktor  

Pada   bahasan   sebelumnya,   setelah   class   terbentuk,   selanjutnya   harus   dibuat   objek.   Pada   saat   proses  
pembentukan   objek   (instansiasi),   sebenarnya   yang   berperan   adalah   konstruktor.     Pada   dasarnya,  
konstruktor   merupakan   suatu   method   tetapi   dengan   karakteristik   khusus.   Beberapa   karakteristik   dari  
konstuktor  antara  lain:  

• Nama  konstruktor  selalu  sama  dengan  nama  class  


• Selalu  memiliki  modifier  access  public  
• Konstruktor  hanya  jalan  saat  proses  instansiasi  
• Konsruktor  tidak  memiiki  tipe  data  method,  layaknya  method  pada  umumnya  

Imam  Fahrur  Rozi,  PSMI  -­‐  Polinema  


Jobsheet  Praktikum  OOP  (v1.0)  
 

• Tidak  bisa  memiliki  return.  

Ada  2  jenis  konstruktor,  yaitu:  

• Konstruktor   Default   :   konstruktor   yang   tidak   memiliki   parameter   atau   argumen.   Contoh  
konstruktor  untuk  class  Mahasiswa:  

 
 
• Konstruktor  Berparameter/Berargumen    :  konstruktor  yang  memiliki  parameter  atau  argumen.  

Imam  Fahrur  Rozi,  PSMI  -­‐  Polinema  


Jobsheet  Praktikum  OOP  (v1.0)  
 

 
Contoh  proses  instansiasi  yang  menggunakan  konstruktor  default  dari  contoh  di  atas,  yaitu:  

Mahasiswa  m  =  new  Mahasiswa();  

Sedangkan  contoh  proses  instansiasi  yang  menggunakan  konstruktor  berparameter  dari  contoh  di  atas  
yaitu:  

Mahasiswa  m  =  new  Mahasiswa  (“0210630064”,  “Imam  F”);  

Atribut  dan  Method  Instansiasi  

Atribut   dan   method   instansiasi   merupakan   atribut   dan   method   yang   dimiliki   oleh   objek   hasil   instansiasi.  
Jadi   untuk   mengakses   atribut   dan   method   tersebut,   sebelumnya   harus   dibuat   terlebih   dahulu   objek.  
Atribut   instansiasi   biasanya   digunakan   untuk   atribut-­‐atribut   dari   suatu   class,   dimana   nilai   dari   atribut  
tersebut  untuk  objek  satu  dengan  objek  yang  lain  berbeda-­‐beda  dan  tersimpan  pada  alamat  referensi  
atau  alamat  memori  yang  berbeda.    

Contohnya  pada  class  Mahasiswa  di  atas,  nilai  nim  dan  nama  untuk  objek  mahasiswa  satu  dengan  objek  
mahasiswa  lain  bisa  berbeda  nilainya.  Sehingga  atribut  nim  dan  nama  tersebut  termasuk  ke  jenis  atribut  
instansiasi.  

Dan   untuk   mengakses   atribut   maupun   method   instansiasi,   harus   terlebih   dahulu   dibuat   objek.  
Contohnya:   untuk   mengakses   atribut   nim,   nama   dan   memanggil   method   ubahNama(),   terlebih   dulu  
harus  dibuat  objek  dari  class  Mahasiswa.  Baru  kemudian  atribut  nim  dan  nama  dan  method  ubahNama()  
bisa  diakses.  

Imam  Fahrur  Rozi,  PSMI  -­‐  Polinema  


Jobsheet  Praktikum  OOP  (v1.0)  
 

    Mahasiswa  m  =  new  Mahasiswa();  


    m.nim  =  “0210630064”;  
    m.nama  =  “Imam  F”;  
    m.ubahNama(“Imam  Fahrur  Rozi”);  
 

Atribut  dan  Method  Class  

Jika  atribut  instansiasi  digunakan  untuk  atribut  yang  memiliki  nilai  yang   berbeda-­‐beda  antara  objek  yang  
satu   dengan   objek   yang   lain   dari   class   yang   sama,   maka   atribut   class   digunakan   untuk   atribut   yang  
nilainya   antara   objek   satu   dengan   objek   yang   lain   dari   class   yang   sama   akan   bernilai   sama.   Misalnya  
mahasiswa   memiliki   SPP,   dan   nilai   SPP   tersebut   dipastikan   sama   antara   mahasiswa   satu   dengan  
mahasiswa  lainya.  Ini  berarti,  atribut  SPP  untuk  objek  mahasiswa  satu  dengan  objek  mahasiswa  lainnya  
bernilai  sama.  Sehingga  SPP  tersebut  bisa  digolongkan  sebagai  atribut  class.    

Untuk   membuat   atribut   dan   method   class   ditandai   dengan   kata   kunci   static.   Dan   untuk   mengakses  
atribut  class,  tidak  perlu  dibuat  objek  lebih  dulu,  karena  bisa  diakses  langsung  dari  nama  classnya.    

Contohnya:   Class   Mahasiswa   di   atas   ditambahi   atribut   spp   yang   merupakan   atribut   class   dan   method  
ubahSpp()  yang  merupakan  method  class.  

Imam  Fahrur  Rozi,  PSMI  -­‐  Polinema  


Jobsheet  Praktikum  OOP  (v1.0)  
 

Dan   untuk   mengakses   atribut   spp   dan   method   ubahSpp()   tidak   perlu   membuat   objek   dari   class  
Mahasiswa  lebih  dulu,  melainkan  bisa  langsung  menggunakan  nama  class  Mahasiswa  langsung.  

    Mahasiswa.spp  =  10000;  
    Mahasiswa.ubahSpp(15000);  
 

   

Imam  Fahrur  Rozi,  PSMI  -­‐  Polinema  


Jobsheet  Praktikum  OOP  (v1.0)  
 

PERCOBAAN  1  :  ACCESS  MODIFIER    


Tujuan:  

1. Mahasiswa  memahami  konsep  penggunaan  access  modifier    


2. Mahasiswa  mampu  membuat  atribut  dan  method  dengan  access  modifier  
3. Mahasiswa   memahami   efek   dari   access   modifier   yang   diterapkan   pada   suatu   atribut   maupun  
method  

Prosedur  Percobaan:  

1. Perhatikan  class  diagram  di  bawah  ini:  


 
Sepeda  
 
  +  kode  :  String  
 
#  merek  :  String  
 
  ~  jenis  :  String  
  -­‐  kecepatan  :  float  
  -­‐  gigi  :  int  
   
  +  start  ()  :  void  
  +  tambahKecepatan(float  v)  :  void  
  +  kurangiKecapatan(float  v)  :  void  
  -­‐  tambahGigi()  :  void  
 
-­‐  kurangiGigi()  :  void  
 
 
+  stop():  void  
  +  tampilData()  :  void  

2. Buat  program  dari  class  diagram  di  atas,  dan  simpan  dengan  nama  file  Sepeda.java  

Imam  Fahrur  Rozi,  PSMI  -­‐  Polinema  


Jobsheet  Praktikum  OOP  (v1.0)  
 

3. Compile  dan  jalankan  class  Sepeda  tersebut!  Amati  hasilnya!  


4. Buat  class  baru  dan  simpan  dengan  nama  file  SepedaDemo.java    

Imam  Fahrur  Rozi,  PSMI  -­‐  Polinema  


Jobsheet  Praktikum  OOP  (v1.0)  
 

5. Compile  dan  jalankan  class  SepedaDemo.java!  Amati  hasilnya!  

Pertanyaan:  

1. Adakah   atribut   dan   method   dari   class   Sepeda   yang   tidak   bisa   diakses   dari   dalam   class   itu  
sendiri?  Sebutkan  jika  ada!  
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..  
2. Dari   hasil   percobaan   tahap   3   (hasil   compile   dan   run   terhadap   Sepeda.java),   apakah   Anda  
menemukan   error?   Jelaskan   (error   atau   tidak   error   hasilnya)   dikaitkan   dengan   modifier   access  
dari  atribut  maupun  methodnya!  
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..  
3. Dari  hasil  percobaan  tahap  5  (hasil  compile  dan  run  terhadap  SepedaDemo.java),  apakah  Anda  
menemukan  error?  Jika  iya,  jelaskan  apa  penyebab  terjadinya  error  tersebut!  

……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..  
 
4. Atribut   dan   method   apakah   dari   class   Sepeda,   yang   hanya   bisa   diakses   dari   dalam   class   itu  
sendiri?  

……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..  

Imam  Fahrur  Rozi,  PSMI  -­‐  Polinema  


Jobsheet  Praktikum  OOP  (v1.0)  
 

 
5. Atribut  dan  method  apakah  dari  class  Sepeda,  yang  bisa  diakses  dari  class  lain  yang  berada  pada  
paket  yang  sama  dengan  class  Sepeda  tersebut?  

……………………………………………………………………………………………………………………………………………………..
……………………………………………………………………………………………………………………………………………………..  
6. Bisakah  atribut  jenis  dari  class  Sepeda  diakses  dari  class  SepedaDemo?  Jika  bisa,  jelaskan  lebih  
lanjut  mengapa  bisa?  

……………………………………………………………………………………………………………………………………………………..
……………………………………………………………………………………………………………………………………………………..  
7. Jika  di  dalam  method  main  di  dalam  class  SepedaDemo,  ditambahkan  sintaks  s1.kurangiGigi(),  
apakah  bisa?  Jelaskan  jawaban  Anda!  

……………………………………………………………………………………………………………………………………………………..
……………………………………………………………………………………………………………………………………………………..  
8. Perhatikan   baris   program   19   dan   24   dari   class   Sepeda,   disitu   terlihat   dipanggil   method  
kurangiGigi()   dan   tambahGigi()   yang   notabene   memiliki   access   modifier   private,   dan   tidak  
menimbulkan  error.  Mengapa  bisa  demikian?  

……………………………………………………………………………………………………………………………………………………..
……………………………………………………………………………………………………………………………………………………..  
9. Apa  yang  harus  dilakukan  agar  error  pada  class  SepedaDemo  bisa  hilang?  

……………………………………………………………………………………………………………………………………………………..
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..
……………………………………………………………………………………………………………………………………………………..  
 
10. Berikan   kesimpulan   dari   percobaan   yang   telah   dilakukan   dan   beberapa   pertanyaan   terkait  
dengan  access  modifier!  

……………………………………………………………………………………………………………………………………………………..
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..
……………………………………………………………………………………………………………………………………………………..  

Imam  Fahrur  Rozi,  PSMI  -­‐  Polinema  


Jobsheet  Praktikum  OOP  (v1.0)  
 

PERCOBAAN  2  :  KONSTRUKTOR    
Tujuan:  

1. Mahasiswa  memahami  konsep  konstruktor    


2. Mahasiswa  mampu  membuat  konstruktor  default  dan  konstruktor  berparameter  
3. Mahasiswa  mampu  membuat  objek  dengan  menggunakan  konstruktor  default  dan  konstruktor  
berparameter  

Prosedur  Percobaan:  

1. Buka  kembali  file  Sepeda.java  di  atas!  


2. Tambahkan   konstruktor   default   dan   konstruktor   berparameter   dari   class   Sepeda   tersebut.  
Letakkan  konstuktor  tersebut  di  bawah  atribut!  

3. Di   dalam   method   main()   yang   ada   di   dalam   class   Sepeda,   tambahkan   beberapa   proses  
instansiasi  seperti  tampil  di  gambar  berikut:  

Imam  Fahrur  Rozi,  PSMI  -­‐  Polinema  


Jobsheet  Praktikum  OOP  (v1.0)  
 

4. Compile  dan  jalankan  kembali  class  Sepeda!  Amati  hasilnya!  

Imam  Fahrur  Rozi,  PSMI  -­‐  Polinema  


Jobsheet  Praktikum  OOP  (v1.0)  
 

Pertanyaan:  

1. Mengapa   pada   baris   pertama   hasil   keluaran   muncul   tulisan   Objek   terbentuk   menggunakan  
konstruktor  default  ?    
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..  
2. Mengapa   juga   pada   baris-­‐baris   setelahnya   muncul   tulisan   Objek   terbentuk   menggunakan  
konstruktor  berparameter  1    dan  Objek  terbentuk  menggunakan  konstruktor  berparameter  2?  
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..  

……………………………………………………………………………………………………………………………………………………..  

3. Perhatikan   pada   method   main()   dari   class   Sepeda   tersebut,   pada   baris   berapakah   proses  
instansiasi  yang  menggunakan  konstruktor  berparameter  dengan  2  parameter  dijalankan?  
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..  
4. Perhatikan  hasil  keluaran  program:  
Objek  terbentuk  menggunakan  konstruktor  berparameter  2  
KODE  =  KOSONG  
MEREK  =  KOSONG  
JENIS  =  KOSONG  
KECEPATAN  =  25.0  
GIGI  =  4  
Setelah   ditampilkan   muncul   nilai   kode=KOSONG,     merek=KOSONG,   jenis=KOSONG,  
kecepatan=25.0  dan  gigi=4.    Dapat  dari  manakah  nilai-­‐nilai  tersebut?  
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..  
5. Misalkan  di  dalam  class  Sepeda  ditambahkan  konstruktor  seperti  di  bawah  ini:  
public  Sepeda(int  x){  
  gigi  =  x;  
}  
Bisa  apa  tidak?  Jelaskan!  
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..  

Imam  Fahrur  Rozi,  PSMI  -­‐  Polinema  


Jobsheet  Praktikum  OOP  (v1.0)  
 

……………………………………………………………………………………………………………………………………………………..  
6. Berikan   contoh   konstruktor   berparameter   dengan   3   parameter   untuk   class   Sepeda   tersebut,  
dan  berikan  juga  contoh  proses  instansiasi  yang  menggunakan  konstruktor  dengan  3  parameter  
tersebut!  
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..  
7. Berikan   kesimpulan   dari   percobaan   yang   telah   dilakukan   dan   beberapa   pertanyaan   terkait  
dengan  konstruktor!  

……………………………………………………………………………………………………………………………………………………..
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..
……………………………………………………………………………………………………………………………………………………..  
 

   

Imam  Fahrur  Rozi,  PSMI  -­‐  Polinema  


Jobsheet  Praktikum  OOP  (v1.0)  
 

PERCOBAAN   3   :   ATRIBUT&METHOD   CLASS   DAN   ATRIBUT&METHOD  


INSTANSIASI    
Tujuan:  

1. Mahasiswa  memahami  konsep  atribut&method  class  dan  atribut&method  instansiasi  


2. Mahasiswa  mampu  membuat  atribut&method  class  menggunakan  kata  kunci  static  
3. Mahasiswa   mengetahui   beda   cara   mengakses   atribut&method   class   dengan   atribut&method  
instansiasi  

Prosedur  Percobaan:  

1. Buka  kembali  file  Sepeda.java  di  atas!    


2. Tambahkan  atribut  class  jumTotalSepeda  dan  method  class  tambahJumTotalSepeda()!  

Atribut  class  

Method  class  

 
3. Method  main()  di  dalam  class  Sepeda  juga  diubah  menjadi  sbb:  

Imam  Fahrur  Rozi,  PSMI  -­‐  Polinema  


Jobsheet  Praktikum  OOP  (v1.0)  
 

 
Penjelasan:  Setiap  selesai  proses  instansiasi,  dijalankan  method  class  tambahJumTotalSepeda(),  
yang  menandakan  bahwa  jumlah  objek  yang  terbentu  dari  class  Sepeda  bertambah  
4. Compile  dan  jalankan  class  Sepeda,  dan  amati  hasil  keluarannya!  

 
 
 

Imam  Fahrur  Rozi,  PSMI  -­‐  Polinema  


Jobsheet  Praktikum  OOP  (v1.0)  
 

Pertanyaan:  

1. Sebutkan  atribut  dan  method  instansiasi  yang  dimiliki  oleh  class  Sepeda!  
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..  
2. Sebutkan  atribut  dan  method  class  yang  dimiliki  oleh  class  Sepeda!  
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..
……………………………………………………………………………………………………………………………………………………..  
3. Jelaskan   perbedaan   antara   atribut   dan   method   instansiasi   dan   atribut   dan   method   class   dari  
nilai  yang  disimpan  di  dalamnya!  
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..
……………………………………………………………………………………………………………………………………………………..  
4. Jelaskan   perbedaan   antara   atribut   dan   method   instansiasi   dan   atribut   dan   method   class   dari  
cara  mengakses  atribut  dan  method  tersebut!  
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..
……………………………………………………………………………………………………………………………………………………..  
5. Perhatikan   hasil   keluaran   di   atas.   Jelaskan   bagaimana   bisa   muncul   nilai   3   untuk   jumlah   total  
objek  sepeda  yang  dibuat!  
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..
……………………………………………………………………………………………………………………………………………………..  
6. Berikan   kesimpulan   dari   percobaan   yang   telah   dilakukan   dan   beberapa   pertanyaan   terkait  
dengan  konstruktor!  

……………………………………………………………………………………………………………………………………………………..
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..
……………………………………………………………………………………………………………………………………………………..  
……………………………………………………………………………………………………………………………………………………..
……………………………………………………………………………………………………………………………………………………..  

Imam  Fahrur  Rozi,  PSMI  -­‐  Polinema  


Jobsheet  Praktikum  OOP  (v1.0)  
 

LATIHAN  
Buatlah  program  dari  Class  Diagram  di  bawah  ini!  

 
Balok    
 
+  panjang  :  double  
 
#  lebar  :  double  
 
~  tinggi  :  double    
+  jumVolumeTotalBalok  :  double    
 
+  hitungVolume  ()  :  double    
+  hitungLuasPermukaan()  :  double    
+  hitungDiagonalRuang()  :  double    
~  hitungDiagonalSisiDepan()  :  double    
#  hitungDiagonalSisiSamping()  :  double    
 
-­‐  hitungDiagonalSisiAtas()  :  double  
   

Penjelasan:  
• Perhatikan  notasi  access  modifier  pada  tiap  atribut  dan  method  
• Perhatikan  juga  notasi  atribut/method  class  
• Atribut   jumVolumeTotalBalok   digunakan   untuk   menyimpan   jumlah   volume   total   dari  
objek-­‐objek  balok  yang  sudah  terbuat.  
 

Imam  Fahrur  Rozi,  PSMI  -­‐  Polinema  

Anda mungkin juga menyukai