Anda di halaman 1dari 17

PERCOBAAN 3

CLASS DIAGRAM

(Laporan Praktikum Rekayasa Perangkat Lunak)

Oleh :
Sawitri Fina Kartika 1815061008

PROGRAM STUDI TEKNIK INFORMATIKA


JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS LAMPUNG
2020
I. JUDUL PERCOBAAN

CLASS DIAGRAM

II. TUJUAN PERCOBAAN

Adapun tujuan dari percobaan ini adalah sebagai berikut:


1. Mengerti dan dapat mengimplementasikan Class Diagram sebagai sarana
pemodelan struktural pada tahap Perancangan Perangkat Lunak.
2. Membedakan antara relasi inheritance, composition,dan aggregation.

III. TEORI DASAR

Diagram kelas adalah ilustrasi hubungan dan dependensi kode sumber di antara kelas-
kelas dalam Unified Modeling Language (UML). Dalam konteks ini, kelas
mendefinisikan metode dan variabel dalam suatu objek, yang merupakan entitas
spesifik dalam program atau unit kode yang mewakili entitas itu. Class diagram
berguna dalam semua bentuk pemrograman berorientasi objek (OOP). Konsep ini
sudah berumur beberapa tahun tetapi telah disempurnakan karena paradigma
pemodelan OOP telah berkembang.

Dalam diagram kelas, kelas-kelas tersebut diatur dalam kelompok-kelompok yang


memiliki karakteristik yang sama. Diagram kelas menyerupai diagram alur di mana
kelas digambarkan sebagai kotak, masing-masing kotak memiliki tiga persegi
panjang di dalamnya. Kotak atas berisi nama kelas; kotak tengah berisi atribut kelas;
persegi panjang yang lebih rendah berisi metode, juga disebut operasi, kelas. Garis,
yang mungkin memiliki panah di salah satu atau kedua ujungnya, hubungkan kotak.
Garis-garis ini mendefinisikan hubungan, juga disebut asosiasi, antara kelas-kelas.
Notasi kelas terdiri dari tiga bagian: nama kelas, atribut kelas, operasi kelas (metode).
Nama kelas muncul di partisi pertama. Atribut ditampilkan di partisi kedua. Jenis
atribut ditampilkan setelah titik dua dan mengaitkan peta ke variabel anggota
(anggota data) dalam kode. Operasi ditampilkan di partisi ketiga. Mereka adalah
layanan yang disediakan oleh kelas. Jenis pengembalian metode ditampilkan setelah
titik dua di akhir tanda tangan metode. Jenis pengembalian parameter metode
ditampilkan setelah titik dua mengikuti nama parameter. Operasi memetakan ke
metode kelas dalam kode.

Dalam desain berorientasi objek, ada notasi visibilitas untuk atribut dan operasi.
UML mengidentifikasi empat jenis visibilitas: publik , private , protect , dan package.
Simbol +, -, # dan ~ sebelum atribut dan nama operasi di kelas menunjukkan
visibilitas atribut dan operasi. Dimana (+) bermakna public sehingga atribut/metode
dapat diakses secara langsung dari luar kelas, (-) bermakna private dimana
kelas/atribut hanya bisa diakses oleh metode didalam kelas itu sendiri, (#) bermakna
protected dimana kelas/atribut hanya bisa diakses oleh kelas yang berada dalam
package yang sama atau subclass dari kelas itu sendiri, dan (~) menunjukkan atribut
paket atau operasi.

Gambar 3.1 Class


Sumber : https://visual-paradigm.com/guide/uml-unified-modeling-language/what-is-
class-diagram/
Kelas mungkin terlibat dalam satu atau lebih hubungan dengan kelas lain. Beberapa
relasi antara lain Association, Directed Association, Reflexive Association, Agregasi,
Komposisi, Inheritance / Generalization, dan Realization.

Gambar 3.2 Relasi Class Diagram


Sumber : https://creately.com/blog/diagrams/class-diagram-relationships/

Association adalah istilah luas yang mencakup hampir semua koneksi logis atau
hubungan antar kelas.digambarkan dengan garis lurus. Misalnya, penumpang dan
maskapai penerbangan.

Directed Association mengacu pada hubungan terarah yang diwakili oleh garis
dengan panah. Panah menggambarkan aliran arah yang berisi wadah.

Multiplicity adalah asosiasi logis aktif ketika kardinalitas suatu kelas dalam kaitannya
dengan yang lain sedang digambarkan. Misalnya, satu armada dapat mencakup
beberapa pesawat terbang, sementara satu pesawat komersial dapat memuat nol
hingga banyak penumpang. Notasi 0 .. * dalam diagram berarti "nol ke banyak".

Reflexive Association terjadi ketika kelas mungkin memiliki banyak fungsi atau
tanggung jawab. Sebagai contoh, seorang anggota staf yang bekerja di bandara dapat
menjadi pilot, insinyur penerbangan, pengirim tiket, penjaga, atau anggota kru
pemeliharaan. Jika anggota kru pemeliharaan dikelola oleh insinyur penerbangan
mungkin ada hubungan yang dikelola oleh dua instance dari kelas yang sama.

Agregasi merupakan relasi dimana sebuah class merupakan bagian utuh dari class
lainya. Misalnya, kelas "perpustakaan" terdiri dari satu atau lebih buku, di antara
bahan-bahan lainnya. Secara agregasi, kelas yang terkandung tidak sangat tergantung
pada siklus hidup wadah. Dalam contoh yang sama, buku akan tetap ada meskipun
perpustakaan dibubarkan. Untuk memperlihatkan agregasi dalam diagram, gambarlah
garis dari kelas induk ke kelas anak dengan bentuk berlian di dekat kelas induk.

Komposisi sama halnya dengan agregasi dimana suatu class merupakan bagian utuh
dari class lainya namun pada hal ini satu bagian class tersebut akan sangat bergantung
pada keberadaan class lainya. Contoh Sebuah perusahaan memiliki pekerja yang
diikat dalam sebuah kontrak dan apabila perusahaan tersebut bangkrut maka secara
otomatis keberadaan pekerja tidak dibutuhkan lagi.

Inheritance / Generalization mengacu pada jenis hubungan di mana satu kelas terkait
adalah anak dari kelas lain berdasarkan asumsi fungsi yang sama dari kelas induk.
Dengan kata lain, kelas anak adalah tipe spesifik dari kelas induk. Untuk
menunjukkan pewarisan dalam diagram UML, garis padat dari kelas anak ke kelas
induk digambar menggunakan panah yang tidak terisi.

Realization menunjukkan implementasi fungsi yang didefinisikan dalam satu kelas


oleh kelas lain. Untuk menunjukkan hubungan dalam UML, garis putus-putus dengan
panah padat tidak terisi diambil dari kelas yang mendefinisikan fungsionalitas kelas
yang mengimplementasikan fungsi. Dalam contoh tersebut, preferensi pencetakan
yang ditetapkan menggunakan antarmuka pengaturan printer sedang dilaksanakan
oleh printer.

Jika memodelkan sistem besar atau area bisnis besar, akan ada banyak entitas yang
harus dipertimbangkan. Keharusan menggunakan beberapa diagram kelas atau
tunggal untuk memodelkan masalah merupakan pola pikir banyak orang. Daripada
memodelkan setiap entitas dan hubungannya dengan diagram kelas tunggal, lebih
baik menggunakan diagram kelas ganda. Pengembang juga lebih baik, membagi
suatu sistem menjadi beberapa diagram kelas membuat sistem lebih mudah dipahami,
terutama jika masing-masing diagram adalah representasi grafis dari bagian tertentu
dari sistem.

Developer biasanya dengan memodelkan diagram kelas dalam tiga perspektif


berbeda (level detail) yakni konseptual, spesifikasi, dan implementasi. Perspektif
konseptual adalah diagram ditafsirkan sebagai menggambarkan hal-hal di dunia
nyata. Jadi, jika mengambil perspektif konseptual developer menggambar diagram
yang mewakili konsep-konsep dalam domain yang diteliti. Konsep-konsep ini secara
alami akan berhubungan dengan kelas yang mengimplementasikannya. Perspektif
konseptual dianggap independen terhadap bahasa .Perspektif spesifikasi merupakan
diagram ditafsirkan sebagai menggambarkan abstraksi perangkat lunak atau
komponen dengan spesifikasi dan antarmuka tetapi tanpa komitmen untuk
implementasi tertentu. Jadi, jika mengambil perspektif spesifikasi, developer akan
melihat antarmuka perangkat lunak , bukan implementasinya. Perspektif
implementasi merupakan diagram ditafsirkan sebagai menggambarkan implementasi
perangkat lunak dalam teknologi dan bahasa tertentu . Jadi, jika mengambil perspektif
implementasi, developer akan melihat implementasi perangkat lunak .
IV. PROSEDUR PERCOBAAN

Studi Kasus : Vending Machine


Pada percobaan sebelumnya, kita telah mengidentifikasi Kelas Analisis serta interaksi
yang dapat terjadi antar kelas tersebut pada skenario yang ada. Setelah dilakukan
analisis lebih lanjut, didapatkan daftar kelas dan attributes / methods yang dimiliki
oleh masing-masing kelas pada Sistem Vending Machine adalah sbb:

Tabel 4.1 Identifikasi kelas


Nama Kelas Kelas Attributes Methods
Induk
VendingMachine - - tombol :Tombol
- deteksi_uang :
DeteksiUang
- penampung_uang :
PenampungUang
-dispenser_minuman :
DispenserMinuman
Tombol - - nama : string #pilihMinuman(
pilihan: int)
#konfirmasi()
DeteksiUang - - nama : string #terimaUang(ua
ng
: int)
PenampungUang - - nama : string #simpanUang(u
ang : int)
DispenserMinuman - - nama :string #cekStok(piliha
- list_minuman : n: int)
Minuman[ ] #keluarkanMinu
man(pilihan:
int)
Minuman - - nama :string
MinumanPanas Minuman
MinimanDingin Minuman

4.1 Percobaan 1 : Menggambar template awalkelas

Terdapat 8 kelas pada tabel. Pertama-tama, gambarkan template kosong untuk setiap
kelas dengan menggunakan template “SimpleClass”.

Gambar 4.1 Percobaan 1 : Menggambar template awalkelas

4.2 Percobaan 2 : Mengisi daftar methods dan attributes

Isi daftar methods dan attributes sesuai dengan yang tertera pada masing- masing
kelas. Gunakan “--” untuk mendefinisikan garis pembatasantara nama kelas,
attributes, dan methods. Lakukan resize pada masing-masing gambar kelas jika
diperlukan.

Gambar 4.2 Percobaan 2 : Mengisi daftar methods dan attributes

4.3 Percobaan 3 : Mengidentifikasi relasi Inheritance


Relasi Inheritance dapat dilihat pada kelas yang memiliki kelas induk. Dalam hal ini,
MinumanPanas dan MinumanDingin adalah kelas turunan dari Minuman. Gambarkan
relasi tersebut dengan menggunakan panah inheritance. Geser posisi kelas jika
diperlukan.

Gambar 4.3 Percobaan 3 : Mengidentifikasi relasi Inheritance

4.4 Percobaan 4 : Mengidentifikasi relasi Composition

Relasi Composition dapat dilihat pada kelas yang memiliki attribute dengan tipe dari
kelas lainnya, dan secara proses bisnis, kelas yang ditampung tersebut merupakan
bagian (part-of) tak terpisahkan dari kelas penampung. Dalam hal ini, contoh dari
relasi composition adalah antara kelas VendingMachine dan Tombol, DeteksiUang,
PenampungUang, DispenserMinuman.
Gambarkan relasi tersebut dengan menggunakan panah composition. Geser posisi
kelas jika diperlukan.
Gambar 4.4 Percobaan 4 : Mengidentifikasi relasi Composition

4.5 Percobaan 5 : Mengidentifikasi relasi Aggregation

Relasi Aggregation dapat dilihat pada kelas yang memiliki attribute dengan tipe dari
kelas lainnya, dan secara proses bisnis, kelas yang ditampung tersebut bukan
merupakan bagian tak terpisahkan dari kelas penampung, melainkan kedua kelas
dapat berdiri sendiri. Dalam hal ini, contoh dari relasi composition adalah antara kelas
DispenserMinuman dan Minuman.
Gambarkan relasi tersebut dengan menggunakan panah aggregation. Geser posisi
kelas jika diperlukan.

Gambar 4.5 Percobaan 5 : Mengidentifikasi relasi Aggregation


V. PEMBAHASAN

Adapun pembahasan pada percobaan ini adalah sebagai berikut:


Nama Kasus : Aplikasi Pemesanan Ruangan Online (PRO)
Aplikasi Pemesanan Ruangan Online (PRO) berfungsi untuk memudahkan user
dimana merupakan dosen dan mahasiswa untuk mengetahui keberadaan ruangan yang
tidak ditempati sebagai tempat pembelajaran matakuliah tambahan atau pengganti di
geduh H Teknik Elektro. Juga digunakan agar ruangan tersebut tetap terjaga baik
properti maupun suasana yang ada di dalam ruangan. Dalam aplikasi ini, admin
bertanggung jawab mengelola semua aktivitas dari user. Sedangkan user yang telah
didaftarkan oleh admin dapat langsung melakukan login untuk memasuki aplikasi.
Baik itu admin atau user dapat melihat jadwal dan memesan ruangan kecuali user
dengan sepsifikasi mahasiswa. Mahasiswa dapat melakukan pemesanan jika
mendapat persetujuan dari dosen yang berupa pemberitaan melalui aplikasi tersebut
kepada dosen.

Tabel 5.1 Identifikasi Kelas


Nama Kelas Kelas Induk Attributes Methods
Dosen User
Mahasiswa User
Admin User #tambahkanUserData()
#hapusUserData()
#editUserData()
User - - id : char #cekUser()
- nama :varchar #masukanDataUser()
- jkelamin : varchar #logout()
- alamat : varchar
- password : password
Konfirmasi - - idKonfirmasi : integer # kirimPermintaan()
- tanggapan : varchar # terimaPermintaan()
- pemberi : Dosen # kirimTanggapan()
- peminta : Mahasiswa
MataKuliah - - idMataKuliah #pilihMatakuliah
- namaMataKuliah
- dosen : Dosen
- waktuReal :
DATETIME
Perwaktuan - - waktu : TIME #piihWaktu()
- tanggal : DATE
Ruangan - - idRuangan : integer #pilihRuangan
PesanRuang - - idPesan : integer #masukkanDataPesan()
- namaPesan : varchar #membuatkodeQR
- ruangan : Ruangan #lihatPesan
- user : User #lihatkodeQR
- matakuliah : Matakuliah
- perwaktuan :
Perwaktuan
- konfirmasi : Konfirmasi
JadwalRuang - - idJadwal : integer #lihatJadwal
- pesanRuang : #perbaruanJadwal
PesanRuang []

5.1 Percobaan 1 : Menggambar template awal kelas

Gambar 5.1 Percobaan 1 : Menggambar template awal kelas


Berdasarkan gambar 5.1 menejelaskan penggambaran tempelate awal dari kelas.
Kasus ini mempunyai 10 kelas, baik itu kelas berinduk ataupun tidak. Kelas-kelas
tersebut antara lain kelas Dosen, kelas Mahasiswa, kelas, Admin, kelan Konfirmasi,
kelas JadwalRuang, kelas User, kelas PesanRuang, kelas MataKuliah, kelas
perwaktuan, dan kelas Ruangan.

5.2 Percobaan 2 : Mengisi daftar methods dan attributes

Gambar 5.2 Percobaan 2 : Mengisi daftar methods dan attributes

Berdasarkan gambar 5.2 menjelaskan pengisian daftar dan atribut pada setiap kelas.
Pada kelas PesanRuang terlihat banyak terdefinisi sebagian besar kelas yang berarti
kelas PesanRuang merupakan kelas penampung. Kelas yang ditampung Kelas
PesanRuang ialah User, MataKuliah, Perwaktuan, da Ruangan. Pada kelas User
mempunyai kesamaan atribut dan method terhadap kelas Mahasiswa, Dosen, dan
Admin yang berarti terdapat atribut dan method warisan. Sedangkan padakelas
JadwalRuang mengidentifikasikan array dari kelas PesanRuang.

5.3 Percobaan 3 : Mengidentifikasi relasi Inheritance


Gambar 5.3 Percobaan 3 : Mengidentifikasi relasi Inheritance

Berdasarkan gambar 5.3 menjelakan pengidentifikasian relasi Inheritance. Dimana


kelas User sebagai parent dan kelas Mahasiswa, Dosen, Admin sebagai child. Atribut
dan method dari user dimiliki oleh kelas child karena merupakan warisan, namun
pada kelas admin terdapat beberapa method yang berbeda yakni, tambahkanUserData
(), hapusUserData (), dan editUserData (). Method-method tersebt dinamakan unique
method yang dimiliki admin untuk menambahkan, menghapus, seta melakukan
pengeditan data user.

5.4 Percobaan 4 : Mengidentifikasi relasi Composition

Gambar 5.4 Percobaan 4 : Mengidentifikasi relasi Composition


Berdasarkan gambar 5.4 menjelaskan pengidentifikasian relasi composition.
Komposisi mempunyai konsep dimana suatu class merupakan bagian utuh dari class
lainya yang satu bagian class tersebut akan sangat bergantung. Terdapat 2 kelas
penampung yaitu kelas Konfirmasi dan kelas Pesan Ruang. Kelas Penampung
menampung Kelas Dosen dan Mahasiswa yang berturut-turut difungsikan pada
atribut berturut-turut sebagai pemberi dan peminta. Sedangkan pada kelas
PesanRuang menampung sebagian besar kelas yang ada, yakni kelas Konfirmasi,
MataKuliah, Pemesanan, dan Ruangan.

5.5 Percobaan 5 : Mengidentifikasi relasi Aggregation

Gambar 5.5 Percobaan 5 : Mengidentifikasi relasi Aggregation

Berdasarkan gambar 5.5 menjelaskan pengidentifikasian relasi Aggregation.


Agregasi merupakan relasi dimana sebuah class merupakan bagian utuh dari class
lainya . Kelas JadwalRuang akan mempresentasikan keseluruhan dari pesanan yang
ada sehingga dibutuhkan array. Maka dari itu terdapat relasi Agregrasi antara
JadwalRuang dan PesanRuang.
KESIMPULAN

Adapun kesimpulan percobaan in adalah sebagai berikut:


1. Selama proses analisa, class diagram memperhatikan aturan-aturan dan
tanggung jawab entitas yang menentukan perilaku sistem, sedangkan selama
tahap desain, class diagram berperan dalam menangkap struktur dari semua
kelas yang membentuk arsitektur sistemyang dibuat. 
2. Berdasarkan gambar 5.3, inheritance merupakan kemampuan untuk membuat
hierarki yang terdiri atas class-class, dimana terdapat struktur dan atau
behavior (kelakuan) diantara class-class. Istilah superclass digunakan oleh
class yang menyimpan informasi umum.
3. Berdasarkan gambar 5.4, komposisi merupakan bentuk khusus dari agregasi di
mana kelas yang menjadi part (bagian) baru dapat diciptakan setelah kelas
yang menjadi whole (seluruhnya) dibuat dan ketika kelas yang menjadi whole
dimusnahkan, maka kelas yang menjadi part ikut musnah, disimbol dengan
black diamond.
4. Berdasarkan gambar 5.5, Agregasi merupakan hubungan antara dua kelas di
mana kelas yang satu merupakan bagian dari kelas yang lain namun kedua
kelas ini dapat berdiri sendiri -sendiri digambarkan dengan simbol hollow
diamond
5. Berdasarkan gambar 5.5, untuk menunjukkan bahwa kelas terdiri dari banyak
kuantitas saatu kelas lainnya dapat didefiisikan dengan memanggil kelas
tersebut dalam bentuk array kedalam kelas penampung.
DAFTAR PUSTAKA

Hendini, Ade. 2016. Pemodelan Uml Sistem Informasi Monitoring Penjualan Dan
Stok Barang (Studi Kasus: Distro Zhezha Pontianak). Jurnal Khatulistiwa
Informatika. 4 (2) : 107-116
Milles, Russ. 2006. Learning UML 2.0. Amerika Serikat: O’reilly Media
Nishadha. 2019. UML Class Diagram Relationships Explained with Examples.
Diperoleh 15 Mei 2020 dari https://creately.com/blog/diagrams/class-diagram-
relationships/
Officer web. 2020. What is Class Diagram? Diperoleh 15 Mei 2020 dari
https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-
is-class-diagram/

Anda mungkin juga menyukai