(6) jobsheet relasi class - ifrozi.files.wordpress.com · 1. mengapaatributmk!dari!class! ......

12
Jobsheet Praktikum OOP (v1.0) Imam Fahrur Rozi, PSMI Polinema 6 – Relasi Class PENDAHULUAN Pada kenyataannya dalam mengembangkan suatu sistem, antara class yang satu dengan class yang lain akan saling memiliki relasi. Sebagai ilustrasi antara class Laptop dan class Processor. Dua class tersebut tidak berdiri sendiri, melainkan memiliki relasi. Relasi tersebut menggambarkan bahwa Laptop di dalamnya memiliki Processor. Di dalam class Laptop terdapat satu atribut yaitu proc dimana atribut tersebut merupakan objek dari class Processor. Hal ini menandakan bahwa class Laptop memiliki atribut atau komponen berupa Processor. Laptop + merk : String + proc : Processor + Laptop() + Laptop(me: String; pr: Processor) + tampilData(): void Processor + merk : String + cache: double + clock: double + Processor() + Processor (me: String; ca: double; cl: double) + tampilData(): void

Upload: phungminh

Post on 15-Mar-2019

229 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: (6) Jobsheet Relasi Class - ifrozi.files.wordpress.com · 1. Mengapaatributmk!dari!class! ... Microsoft Word - (6) Jobsheet Relasi Class.docx Author: Imam Fahrur Rozi Created Date:

Jobsheet  Praktikum  OOP  (v1.0)    

Imam  Fahrur  Rozi,  PSMI  -­‐  Polinema  

6  –  Relasi  Class  

PENDAHULUAN  

Pada  kenyataannya  dalam  mengembangkan  suatu  sistem,  antara  class  yang  satu  dengan  class  yang   lain  akan  saling  memiliki  relasi.  Sebagai   ilustrasi  antara  class  Laptop  dan  class  Processor.  Dua   class   tersebut   tidak   berdiri   sendiri,   melainkan   memiliki   relasi.   Relasi   tersebut  menggambarkan  bahwa  Laptop  di  dalamnya  memiliki  Processor.          

         Di   dalam   class   Laptop   terdapat   satu   atribut   yaitu   proc   dimana   atribut   tersebut   merupakan  objek   dari   class   Processor.   Hal   ini   menandakan   bahwa   class   Laptop   memiliki   atribut   atau  komponen  berupa  Processor.        

Laptop  

+  merk  :  String  +  proc  :  Processor    +  Laptop()  +  Laptop(me:  String;  pr:  Processor)  +  tampilData():  void    

Processor  

+  merk  :  String  +  cache:  double  +  clock:  double    +  Processor()  +  Processor  (me:  String;  ca:  double;  cl:  double)  +  tampilData():  void    

Page 2: (6) Jobsheet Relasi Class - ifrozi.files.wordpress.com · 1. Mengapaatributmk!dari!class! ... Microsoft Word - (6) Jobsheet Relasi Class.docx Author: Imam Fahrur Rozi Created Date:

Jobsheet  Praktikum  OOP  (v1.0)    

Imam  Fahrur  Rozi,  PSMI  -­‐  Polinema  

PERCOBAAN  1  :  RELASI  CLASS    Tujuan:  

1. Mahasiswa  memahami  konsep  implementasi  hubungan  antar  class    

Prosedur  Percobaan:  

1. Perhatikan  class  diagram  di  bawah  ini:                          

 

2. Buat  program  dari  class  Processor,  dan  simpan  dengan  nama  file  Processor.java  

Laptop  

+  merk  :  String  +  proc  :  Processor    +  Laptop()  +  Laptop(me:  String;  pr:  Processor)  +  tampilData():  void    

Processor  

+  merk  :  String  +  cache:  double  +  clock:  double    +  Processor()  +  Processor  (me:  String;  ca:  double;  cl:  double)  +  tampilData():  void    

Page 3: (6) Jobsheet Relasi Class - ifrozi.files.wordpress.com · 1. Mengapaatributmk!dari!class! ... Microsoft Word - (6) Jobsheet Relasi Class.docx Author: Imam Fahrur Rozi Created Date:

Jobsheet  Praktikum  OOP  (v1.0)    

Imam  Fahrur  Rozi,  PSMI  -­‐  Polinema  

 

3. Buat  program  dari  class  Laptop,  dan  simpan  dengan  nama  file  Laptop.java  

Page 4: (6) Jobsheet Relasi Class - ifrozi.files.wordpress.com · 1. Mengapaatributmk!dari!class! ... Microsoft Word - (6) Jobsheet Relasi Class.docx Author: Imam Fahrur Rozi Created Date:

Jobsheet  Praktikum  OOP  (v1.0)    

Imam  Fahrur  Rozi,  PSMI  -­‐  Polinema  

 

4. Buat  class  Main  dan  simpan  dengan  nama  file  Main.java.  Di  dalam  class  Main  ini  akan  dibuat  method  main.    

 

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

Page 5: (6) Jobsheet Relasi Class - ifrozi.files.wordpress.com · 1. Mengapaatributmk!dari!class! ... Microsoft Word - (6) Jobsheet Relasi Class.docx Author: Imam Fahrur Rozi Created Date:

Jobsheet  Praktikum  OOP  (v1.0)    

Imam  Fahrur  Rozi,  PSMI  -­‐  Polinema  

 

 

Pertanyaan:  

1. Dari   program   pada   percobaan   di   atas,   apakah   yang   menunjukan   bahwa   antara   class  Laptop  dan  class  Processor  memiliki  relasi?  …………………………………………………………………………………………………………………………………………  …………………………………………………………………………………………………………………………………………  …………………………………………………………………………………………………………………………………………  …………………………………………………………………………………………………………………………………………  

2. Berikan  penjelasan  tentang  atribut  Processor  proc  yang  dimiliki  oleh  class  Laptop!  …………………………………………………………………………………………………………………………………………  …………………………………………………………………………………………………………………………………………  …………………………………………………………………………………………………………………………………………  …………………………………………………………………………………………………………………………………………  

3. Perhatikan   method   tampilData()   yang   ada   di   dalam   class   Laptop.   Di   dalam   method  tersebut  terdapat  sintaks  proc.tampilData().  Apakah  gunanya  sintaks  tersebut?  

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

4. Perhatikan  method  main()   yang  ada  di  dalam  class  Main.  Pada  saat   instansiasi  objek   l  dari   class   Laptop,   disitu   dilewatkan   objek   p   pada   parameter   konstruktornya.   Untuk  apakah  proses  tersebut?  Laptop  l  =  new  Laptop("Toshiba",  p);  

…………………………………………………………………………………………………………………………………………  …………………………………………………………………………………………………………………………………………  …………………………………………………………………………………………………………………………………………  

Page 6: (6) Jobsheet Relasi Class - ifrozi.files.wordpress.com · 1. Mengapaatributmk!dari!class! ... Microsoft Word - (6) Jobsheet Relasi Class.docx Author: Imam Fahrur Rozi Created Date:

Jobsheet  Praktikum  OOP  (v1.0)    

Imam  Fahrur  Rozi,  PSMI  -­‐  Polinema  

…………………………………………………………………………………………………………………………………………  5. Perhatikan  kembali  method  main()  yang  ada  di  dalam  class  Main.  Pada  saat  instansiasi  

objek   l1   dari   class   Laptop,   dilakukan   dengan   sintaks   berikut   Laptop   l1   =   new  Laptop("HP",   new   Processor("AMD   Turion",   2.2,   1.6));   Untuk   apakah   proses   new  Processor("AMD  Turion",  2.2,  1.6)  disitu  dilakukan?  

…………………………………………………………………………………………………………………………………………  …………………………………………………………………………………………………………………………………………  …………………………………………………………………………………………………………………………………………  …………………………………………………………………………………………………………………………………………    

   

Page 7: (6) Jobsheet Relasi Class - ifrozi.files.wordpress.com · 1. Mengapaatributmk!dari!class! ... Microsoft Word - (6) Jobsheet Relasi Class.docx Author: Imam Fahrur Rozi Created Date:

Jobsheet  Praktikum  OOP  (v1.0)    

Imam  Fahrur  Rozi,  PSMI  -­‐  Polinema  

PERCOBAAN  2  :  RELASI  CLASS  YANG  MELIBATKAN  ARRAY    

Tujuan:  

1. Mahasiswa   memahami   implementasi   relasi   class,   dimana   satu   objek   dari   suatu   class  memiliki  relasi  dengan  banyak  objek  dari  class  yang  lain  

Prosedur  Percobaan:  

1. Perhatikan  diagram  class  di  bawah  ini!  

 

 

 

 

 

 

 

Pada   diagram   class   di   tersebut,   atribut  mk   merupakan   array   dari   class  Matakuliah.  Artinya  tiap  objek  dari  class  Mahasiswa  bisa  memiliki  banyak  Matakuliah.  

2. Buat  program  dari  class  Matakuliah,  dan  simpan  dengan  nama  file  Matakuliah.java  

Mahasiswa  

+  namaMhs  :  String  +  mk  :  Matakuliah  [  ]    +  Mahasiswa()  +  Mahasiswa(nm:  String;  kul:  Matakuliah  [  ]  )  +  tampilData():  void    

Matakuliah  

+  namaMk  :  String  +  sks:  int  

+  Matakuliah()  +  Matakuliah  (na:  String;  sk:  int)  +  tampilData():  void    

Page 8: (6) Jobsheet Relasi Class - ifrozi.files.wordpress.com · 1. Mengapaatributmk!dari!class! ... Microsoft Word - (6) Jobsheet Relasi Class.docx Author: Imam Fahrur Rozi Created Date:

Jobsheet  Praktikum  OOP  (v1.0)    

Imam  Fahrur  Rozi,  PSMI  -­‐  Polinema  

 

3. Buat  program  dari  class  Mahasiswa,  dan  simpan  dengan  nama  file  Mahasiswa.java  

Page 9: (6) Jobsheet Relasi Class - ifrozi.files.wordpress.com · 1. Mengapaatributmk!dari!class! ... Microsoft Word - (6) Jobsheet Relasi Class.docx Author: Imam Fahrur Rozi Created Date:

Jobsheet  Praktikum  OOP  (v1.0)    

Imam  Fahrur  Rozi,  PSMI  -­‐  Polinema  

 

4. Buat   class   RelasiMahasiswaMain   dan   simpan   dengan   nama   file  RelasiMahasiswaMain.java.   Di   dalam   class   RelasiMahasiswaMain   ini   akan   dibuat  method  main.    

 

Page 10: (6) Jobsheet Relasi Class - ifrozi.files.wordpress.com · 1. Mengapaatributmk!dari!class! ... Microsoft Word - (6) Jobsheet Relasi Class.docx Author: Imam Fahrur Rozi Created Date:

Jobsheet  Praktikum  OOP  (v1.0)    

Imam  Fahrur  Rozi,  PSMI  -­‐  Polinema  

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

 

Pertanyaan:  

1. Mengapa  atribut  mk  dari  class  Mahasiswa  dibuat  array  ?    …………………………………………………………………………………………………………………………………………  …………………………………………………………………………………………………………………………………………  …………………………………………………………………………………………………………………………………………  …………………………………………………………………………………………………………………………………………  

2. Perhatikan  method  tampilData()  yang  ada  di  daam  class  Mahasiswa!  Mengapa  di  daam  method   tersebut   digunakan   perulangan   (for)   untuk   memanggil   method   tampilData()  dari  atribut  mk?  …………………………………………………………………………………………………………………………………………  …………………………………………………………………………………………………………………………………………  …………………………………………………………………………………………………………………………………………  

…………………………………………………………………………………………………………………………………………  

3. Perhatikan   pada   method   main()   dari   class   RelasiMahasiswaMain   tersebut,   untuk  apakah  proses  Matakuliah  mkArr[]  =  {mk1,  mk2,  mk3};  dilakukan?  …………………………………………………………………………………………………………………………………………  …………………………………………………………………………………………………………………………………………  …………………………………………………………………………………………………………………………………………  ………………………………………………………………………………………………………………………………………..  

4. Perhatikan  kembali  method  main()  dari  class  RelasiMahasiswaMain  tersebut.  Mengapa  pada  saat  membuat  objek  mhs  dilewatkan  mkArr  pada  konstruktornya  Mahasiswa  mhs  =  new  Mahasiswa("Raisa",  mkArr);?  …………………………………………………………………………………………………………………………………………  …………………………………………………………………………………………………………………………………………  …………………………………………………………………………………………………………………………………………  …………………………………………………………………………………………………………………………………………    

Page 11: (6) Jobsheet Relasi Class - ifrozi.files.wordpress.com · 1. Mengapaatributmk!dari!class! ... Microsoft Word - (6) Jobsheet Relasi Class.docx Author: Imam Fahrur Rozi Created Date:

Jobsheet  Praktikum  OOP  (v1.0)    

Imam  Fahrur  Rozi,  PSMI  -­‐  Polinema  

LATIHAN  

Buatlah  program  dari  Class  Diagram  di  bawah  ini!  

 

 

                       

 

.  

 Catatan:  

Total  Biaya  Pasien  =  Tarif  Dokter  +  Harga  Obat            

Dokter  

+  namaDr  :  String  +  tarifDr  :  int    +  Dokter()  +  Dokter(nm:  String;  tr:  int)  +  tampilData():  void    

Pasien  

+  namaPasien  :  String  +  dr:  Dokter  +  ob:  Obat  

+  Pasien()  +  Pasien  (na:  String;  d:  Dokter;  o:  Obat)  +  hitungTotalBiaya():  int  +  tampilData():  void    

Obat  

+  namaObat:  String  +  harga:  int  

+  Obat()    

+  Obat(nm:  String;  har:  int)  +  tampilData():  void  

Page 12: (6) Jobsheet Relasi Class - ifrozi.files.wordpress.com · 1. Mengapaatributmk!dari!class! ... Microsoft Word - (6) Jobsheet Relasi Class.docx Author: Imam Fahrur Rozi Created Date:

Jobsheet  Praktikum  OOP  (v1.0)    

Imam  Fahrur  Rozi,  PSMI  -­‐  Polinema  

       

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Catatan:  Nilai  Total  Mahasiswa  =  (Nilai  MK1  *  SKS  MK1)+  (Nilai  MK2  *  SKS  MK2)  +  (Nilai  MK3  *  SKS  MK3)               SKS  MK1  +  SKS  MK2  +  SKS  MK3  

 

Mahasiswa  

+  namaMhs  :  String  +  mk  :  Matakuliah  [  ]    +  Mahasiswa()  +  Mahasiswa(nm:  String;  kul:  Matakuliah  [  ]  )  +  tampilData():  void  +  hitungNilaiTotal():  double    

Matakuliah  

+  namaMk  :  String  +  sks:  int  +  nilai:  int  +  dsn:  Dosen    +  Matakuliah()  +  Matakuliah  (na:  String;  sk:  int;  nil:  int;  do:  Dosen)  +  tampilData():  void    

Dosen  

+  namaDosen:  String  

 

+  Dosen()  +  Dosen  (na:  String)  +  tampilData():  void