0, ²$ojrulwpd 3hpurjudpdq/dqmxw*hqds … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv...

46
HUBUNGAN ANTAR CLASS Disusun Oleh: Reza Budiawan Untuk: Tim Dosen Algoritma & Pemrograman Lanjut Hanya dipergunakan untuk kepentingan pengajaran di lingkungan Fakultas Ilmu Terapan, Universitas Telkom MI1274 — Algoritma & Pemrograman Lanjut Genap 2015-2016

Upload: others

Post on 23-Feb-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv

HUBUNGAN ANTAR CLASSDisusun Oleh:

Reza BudiawanUntuk:

Tim Dosen Algoritma & Pemrograman Lanjut

Hanya dipergunakan untuk kepentingan pengajaran di lingkungan Fakultas Ilmu Terapan, Universitas Telkom

MI1274 — Algoritma & Pemrograman Lanjut Genap 2015-2016

Page 2: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv

• Dalam Obyek Oriented Programming, kelas-kelas yang terbentuk dapat memiliki hubungan satu dengan yang lainnya, sesuai dengan kondisi dari kelas-kelas yang bersangkutan

Hubungan antar kelas

Page 3: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv

Asosiasi

Agregasi

Komposisi

Inheritance

Hubungan antar kelas

Page 4: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv

• Asosiasi merupakan hubungan antara dua kelas di yang merupakan hubungan struktural yang menggambarkanhimpunan link antar obyek.

• Simbol:• Garis tegas dari suatu class ke class lain• Panah merupakan pernyataan “navigable”

Asosiasi

Page 5: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv

Contoh Diagram

Hubungan Asosiasi Navigable

Page 6: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv

Contoh Implementasi

Page 7: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv

• Buatlah sebuah hubungan asosiasi yang menyatakan“Dosen Mengajar Siswa”.

• Satu Dosen mengajar banyak Siswa.• Batas maksimal yang diajar 1 dosen adalah 5 siswa.

Contoh Soal

Page 8: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv

• Membuat sebuah class dosen dengan link atribut nimmahasiswa

• Tipe data dari atribut link mengikuti tipe data asli padakelas asal

• Contoh class diagram:

Contoh Implementasi

Page 9: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv

Bagaimana Kodenya??

Page 10: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv
Page 11: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv
Page 12: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv

Perhatikan adanyapengiriman atributdari objek m1 dan m2ke objek d

Page 13: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv

Sekarang….Bagaimana menampilkannya?

Page 14: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv
Page 15: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv

• Agregasi merupakan hubungan antara dua kelas di manakelas yang satu merupakan bagian dari kelas yang lain namun kedua kelas ini dapat berdiri sendiri-sendiri.

• Simbol yang digunakan: hollow diamond• Simbol panah menyatakan suatu class navigable

terhadap class lain

Agregasi

Page 16: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv

• Jurusan menyimpan nilai atribut dari mahasiswa dengantipe data class bentukan “Mahasiswa”

Contoh Class Diagram

Page 17: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv

• Mahasiswa dengan jurusannya• Mahasiswa memiliki objek sendiri• Jurusan memiliki objek sendiri• Mahasiswa menjadi bagian dari jurusannya

• Member dari sebuah idol group• Sebuah idol group memiliki badan usaha sendiri• Setiap artis merupakan 1 objek sendiri yang tergabung ke sebuah

agency• Artist tersebut merupakan bagian dari idol teater group

CoNtoh Agregasi

Page 18: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv

Asosiasi• Merupakan hubungan

“link”• Menyimpan nilai atribut

dengan tipe data asli• Digambarkan dengan

garis tegas

Agregasi• Merupakan hubungan

“bagian”• Menyimpan nilai atribut

dengan tipe data class bentukan

• Digambarkan denganhollow diamond

Hubungan Antar Kelas

Page 19: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv

kelas yang satumerupakan bagiandari kelas yang lain Suatu kelas menjadiatribut bagi kelas lain

Pada Driver Class terdapat objekreferensi tiap kelasdan pengiriman objek

Contoh Implementasi

Page 20: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv

• Buatlah sebuah hubungan agregasi antara jurusan/prodidengan mahasiswanya.

• Jurusan menyimpan nilai dari mahasiswa• Satu jurusan hanya bisa ditempati maksimal 10

mahasiswa

Contoh Soal

Page 21: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv

Contoh Class DiagramTerdapat class yang menjadiatribut

Tipe array of object,karena hubungan 1..n

Page 22: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv

Bagaimana Kodenya??

Page 23: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv
Page 24: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv
Page 25: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv

Terdapat pengirimanobjek

Page 26: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv

Sekarang….Bagaimana menampilkannya?

Page 27: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv

Note: Jika terdapat error/exception, pastikanterdapat kondisi if saat menampilkanisi array

Page 28: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv

Gunakanfor-loopsebagai alternatif

Note: Jika terdapat error/exception, pastikanterdapat kondisi if saat menampilkanisi array

Page 29: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv

Tambahkan kondisi if jika terjadi exception/error

Page 30: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv

Alternatif Kode?!!

Page 31: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv
Page 32: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv
Page 33: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv

Bedanya Apa??Kode 2 bisa dibilang lebih bersifat navigable, karena class jurusan mengakses class Mahasiswa.Tidak hanya menyimpan, tapi juga mengaksesdan menampilkan.

navigable

Page 34: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv

Kenapa Disebut Agregasi

Perhatikan bahwa terdapat pembuatan objek dari tiap kelas.Nilai dari jurusan bisa didapat dari objek “j”Nilai dari mahasiswa bisa didapat dari objek “m1” dan “m2”Mereka berdiri sendiri, tapi nilai mahasiswa juga bisa didapat dari “j” “m1” dan “m2” bagian dari “j”

Page 35: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv

• Komposisi merupakan bentuk khusus dari agregasi di mana kelas yang menjadi part (bagian) baru dapatdiciptakan setelah kelas yang menjadi whole (seluruhnya) dibuat dan ketika kelas yang menjadi whole dimusnahkan, maka kelas yang menjadi part ikut musnah.

• Simbol: black diamond• Simbol panah menyatakan navigable

Komposisi

Page 36: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv

Kelas satu menjadi bagian kelasyang lainImplementasi:• Objek suatu kelas dibentuk di kelas non Driver• Membentuk objek tanpa nama referensi

Contoh Implementasi

Page 37: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv

• Buatlah sebuah hubungan komposisi antara sebuahlaptop dengan komponennya.

• Contoh objek:• Laptop Asus A43S memiliki CPU intel core i7; VGA Nvidia 2GB; • Laptop Toshiba S006 memiliki CPU intel core i5; VGA Nvidia 2GB;

Contoh Soal

Page 38: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv

Contoh Class Diagram

Page 39: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv
Page 40: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv
Page 41: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv
Page 42: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv

Set namaPadaKonstruktorVGA

Page 43: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv

Kenapa Disebut Komposisi

Perhatikan bahwa terdapat pembuatan objek dari tiap kelas.Tapi tidak setiap class punya referensi objek. Nilai CPU dan VGA tidak bisa didapat jika tidak melalui nilai objek “l1”Objek “l1” merupakan objek Laptop. Artinya, ada ketergantungan penuh dari class CPU & VGA ke Laptop

Page 44: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv

Alternatif Kode?!!

Bentuk Objek VGAdan CPU pada method addKomponen()Cek courseware PBO angkatan 2008,Politeknik Telkom

Page 45: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv

FOKUS KODENote: Pelajari fokus bentuk kode pada Agregasi

Page 46: 0, ²$OJRULWPD 3HPURJUDPDQ/DQMXW*HQDS … · 2018-02-13 · dodp2e\hn2ulhqwhg 3urjudpplqj nhodv nhodv\dqj whuehqwxngdsdwphplolnlkxexqjdqvdwxghqjdq\dqj odlqq\d vhvxdlghqjdqnrqglvlgdulnhodv

END OF SLIDE…