Anda di halaman 1dari 18

MODUL REKAYASA PERANGKAT LUNAK (RPL)

(CCC-110)

MODUL 08
OBJECT MODELLING USING UML

DISUSUN OLEH
MALABAY,S.KOM,M.KOM

UNIVERSITAS ESA UNGGUL


2020

Universitas Esa Unggul


http://esaunggul.ac.id
0 / 18
OBJECT MODELLING USING UML

A. Kemampuan Akhir Yang Diharapkan

Setelah mempelajari modul ini, diharapkan mahasiswa mampu : Mahasiswa


mampu memahami pengertian Object Modelling Using UML.

B. Uraian dan Contoh


UML adalah bahasa standar untuk menentukan, memvisualisasikan, membangun,
dan mendokumentasikan artefak sistem perangkat lunak.
UML dibuat oleh Object Management Group (OMG) dan draf spesifikasi UML
1.0 diusulkan ke OMG pada Januari 1997. OMG terus berupaya untuk
menciptakan standar industri yang sesungguhnya. UML adalah singkatan dari
Unified Modeling Language.UML berbeda dari bahasa pemrograman umum
lainnya seperti C ++, Java, COBOL, dll.

UML adalah bahasa bergambar yang digunakan untuk membuat cetak biru
perangkat lunak. UML dapat digambarkan sebagai bahasa pemodelan visual
tujuan umum untuk memvisualisasikan, menentukan, membangun, dan
mendokumentasikan sistem perangkat lunak. Meskipun UML umumnya
digunakan untuk memodelkan sistem perangkat lunak, UML tidak dibatasi dalam
batasan ini. Ini juga digunakan untuk memodelkan sistem non-perangkat lunak
juga. Misalnya, aliran proses di unit manufaktur, dll. UML bukanlah bahasa
pemrograman tetapi alat dapat digunakan untuk menghasilkan kode dalam
berbagai bahasa menggunakan diagram UML. UML memiliki hubungan langsung
dengan analisis dan desain berorientasi objek. Setelah beberapa standarisasi, UML
telah menjadi standar OMG.

Model Konseptual UML


Untuk memahami model konseptual UML, pertama-tama perlu menjelaskan apa
itu model konseptual? dan mengapa model konseptual diperlukan?
Model konseptual dapat diartikan sebagai model yang terbuat dari konsep-konsep
dan hubungannya.

Universitas Esa Unggul


http://esaunggul.ac.id
1 / 18
Model konseptual adalah langkah pertama sebelum menggambar diagram UML.
Ini membantu untuk memahami entitas di dunia nyata dan bagaimana berinteraksi
satu sama lain.
Karena UML mendeskripsikan sistem real-time, sangat penting untuk membuat
model konseptual dan kemudian dilanjutkan secara bertahap.

Model konseptual UML dapat dikuasai dengan mempelajari tiga elemen utama
berikut -
Blok penyusun UML
Aturan untuk menghubungkan blok bangunan
Mekanisme umum UML

Konsep Berorientasi Objek


UML dapat digambarkan sebagai penerus analisis dan desain berorientasi objek
(OO). Objek berisi data dan metode yang mengontrol data. Data tersebut mewakili
keadaan objek. Kelas mendeskripsikan objek dan membentuk hierarki untuk
memodelkan sistem dunia nyata. Hierarki direpresentasikan sebagai warisan dan
kelas juga dapat dikaitkan dengan berbagai cara sesuai kebutuhan.
Objek adalah entitas dunia nyata yang ada di sekitar dan konsep dasar seperti
abstraksi, enkapsulasi, pewarisan, dan polimorfisme semuanya dapat
direpresentasikan menggunakan UML.

UML cukup powerful untuk merepresentasikan semua konsep yang ada dalam
analisis dan desain berorientasi objek. Diagram UML adalah representasi dari
konsep berorientasi objek saja. Oleh karena itu, sebelum mempelajari UML,
penting untuk memahami konsep OO secara detail.

Berikut adalah beberapa konsep dasar dunia berorientasi objek -


Objek - Objek mewakili entitas dan blok bangunan dasar.
Kelas - Kelas adalah cetak biru suatu objek.
Abstraksi - Abstraksi mewakili perilaku entitas dunia nyata.

Universitas Esa Unggul


http://esaunggul.ac.id
2 / 18
Enkapsulasi - Enkapsulasi adalah mekanisme mengikat data menjadi satu dan
menyembunyikannya dari dunia luar.
Inheritance - Inheritance adalah mekanisme pembuatan class baru dari class yang
sudah ada.
Polimorfisme - Ini mendefinisikan mekanisme untuk ada dalam berbagai bentuk.

Analisis dan Desain OO


OO dapat didefinisikan sebagai investigasi dan lebih spesifiknya, itu adalah
investigasi objek. Desain berarti kolaborasi objek yang diidentifikasi.
Dengan demikian, penting untuk memahami analisis OO dan konsep desain.
Tujuan terpenting dari analisis OO adalah untuk mengidentifikasi objek dari suatu
sistem yang akan dirancang. Analisis ini juga dilakukan untuk sistem yang ada.
Sekarang analisis yang efisien hanya mungkin jika dapat mulai berpikir dengan
cara di mana objek dapat diidentifikasi. Setelah mengidentifikasi objek,
hubungannya diidentifikasi dan akhirnya desain dibuat.

Tujuan dari analisis dan desain OO dapat digambarkan sebagai :


Mengidentifikasi objek dari suatu sistem.
Mengidentifikasi hubungan.
Membuat desain, yang dapat diubah menjadi file yang dapat dieksekusi
menggunakan bahasa OO.
Ada tiga langkah dasar di mana konsep OO diterapkan dan diimplementasikan.
Langkah-langkahnya dapat didefinisikan sebagai
OO Analysis → OO Design → OO implementasi menggunakan bahasa OO
Ketiga poin di atas dapat dijelaskan secara rinci sebagai -
Selama analisis OO, tujuan terpenting adalah mengidentifikasi objek dan
mendeskripsikannya dengan cara yang tepat. Jika objek-objek ini diidentifikasi
secara efisien, maka pekerjaan desain selanjutnya menjadi mudah. Objek harus
diidentifikasi dengan tanggung jawab.
Tanggung jawab adalah fungsi yang dilakukan oleh objek. Setiap objek memiliki
beberapa jenis tanggung jawab yang harus dilakukan. Ketika tanggung jawab ini
digabungkan, tujuan sistem terpenuhi.

Universitas Esa Unggul


http://esaunggul.ac.id
3 / 18
Fase kedua adalah desain OO. Selama fase ini, penekanan ditempatkan pada
persyaratan dan pemenuhannya. Dalam tahap ini, objek dikolaborasikan sesuai
dengan asosiasi yang dimaksudkan. Setelah pengaitan selesai, desain juga selesai.
Fase ketiga adalah implementasi OO. Pada fase ini desain diimplementasikan
menggunakan bahasa OO seperti Java, C ++, dll.

Peran UML dalam Desain OO


UML adalah bahasa pemodelan yang digunakan untuk memodelkan perangkat
lunak dan sistem non-perangkat lunak. Meskipun UML digunakan untuk sistem
non-perangkat lunak, penekanannya adalah pada pemodelan aplikasi perangkat
lunak OO. Sebagian besar diagram UML yang dibahas sejauh ini digunakan untuk
memodelkan berbagai aspek seperti statis, dinamis, dll. Sekarang apa pun
aspeknya, artefak tidak lain adalah objek.

Jika melihat ke diagram kelas, diagram objek, diagram kolaborasi, diagram


interaksi semua pada dasarnya akan dirancang berdasarkan objek.
Oleh karena itu, hubungan antara desain OO dan UML sangat penting untuk
dipahami. Desain OO diubah menjadi diagram UML sesuai dengan kebutuhan.
Sebelum memahami UML secara detail, konsep OO harus dipelajari dengan baik.
Setelah analisis dan desain OO selesai, langkah selanjutnya sangat mudah. Input
dari analisis dan desain OO adalah input ke diagram UML.

Unified Modeling Language (UML) dibuat untuk menempa bahasa pemodelan


visual yang umum, kaya secara semantik dan sintaksis untuk arsitektur, desain,
dan implementasi sistem perangkat lunak yang kompleks baik secara struktural
maupun perilaku. UML memiliki aplikasi di luar pengembangan perangkat lunak,
seperti aliran proses di bidang manufaktur.

Ini sejalan dengan cetak biru yang digunakan di bidang lain, dan terdiri dari
berbagai jenis diagram. Secara agregat, diagram UML menggambarkan batas,
struktur, dan perilaku sistem dan objek di dalamnya.

Universitas Esa Unggul


http://esaunggul.ac.id
4 / 18
UML bukanlah bahasa pemrograman tetapi ada alat yang dapat digunakan untuk
menghasilkan kode dalam berbagai bahasa menggunakan diagram UML. UML
memiliki hubungan langsung dengan analisis dan desain berorientasi objek.

UML dan perannya dalam pemodelan dan desain berorientasi objek


Ada banyak paradigma atau model pemecahan masalah dalam Ilmu Komputer,
yaitu studi tentang algoritma dan data. Ada empat kategori model pemecahan
masalah: bahasa imperatif, fungsional, deklaratif, dan berorientasi objek (OOP).
Dalam bahasa berorientasi objek, algoritma diekspresikan dengan mendefinisikan
'objek' dan membuat objek berinteraksi satu sama lain. Objek-objek itu adalah hal-
hal yang harus dimanipulasi dan ada di dunia nyata. Bisa berupa bangunan,
widget di desktop, atau manusia.

Bahasa berorientasi objek mendominasi dunia pemrograman karena memodelkan


objek dunia nyata. UML adalah kombinasi dari beberapa notasi berorientasi
objek: Desain Berorientasi Objek, Teknik Pemodelan Objek, dan Rekayasa
Perangkat Lunak Berorientasi Objek.

UML menggunakan kekuatan dari ketiga pendekatan ini untuk menyajikan


metodologi yang lebih konsisten yang lebih mudah digunakan. UML mewakili
praktik terbaik untuk membangun dan mendokumentasikan berbagai aspek
perangkat lunak dan pemodelan sistem bisnis.

Tujuan UML sebagai:


Menyediakan arsitek sistem, insinyur perangkat lunak, dan pengembang
perangkat lunak dengan alat untuk analisis, desain, dan implementasi sistem
berbasis perangkat lunak serta untuk pemodelan bisnis dan proses serupa.
Memajukan keadaan industri dengan mengaktifkan interoperabilitas alat
pemodelan visual objek. Namun, untuk memungkinkan pertukaran informasi
model yang bermakna antara alat, kesepakatan tentang semantik dan notasi
diperlukan.

Universitas Esa Unggul


http://esaunggul.ac.id
5 / 18
UML memenuhi persyaratan berikut:
Menetapkan definisi formal dari meta-model umum berbasis Meta-Object Facility
(MOF) yang menentukan sintaks abstrak UML. Sintaks abstrak mendefinisikan
himpunan konsep pemodelan UML, atribut dan hubungannya, serta aturan untuk
menggabungkan konsep-konsep ini untuk membangun model UML parsial atau
lengkap.
Memberikan penjelasan rinci tentang semantik dari setiap konsep pemodelan
UML. Semantik mendefinisikan, dengan cara yang tidak bergantung pada
teknologi, bagaimana konsep UML harus direalisasikan oleh komputer.
Menentukan elemen notasi yang dapat dibaca manusia untuk merepresentasikan
konsep pemodelan UML individu serta aturan untuk menggabungkannya ke
dalam berbagai tipe diagram yang berbeda sesuai dengan aspek berbeda dari
sistem yang dimodelkan.
Menentukan cara di mana alat UML dapat dibuat sesuai dengan spesifikasi ini. Ini
didukung (dalam spesifikasi terpisah) dengan spesifikasi berbasis XML dari
format pertukaran model yang sesuai (XMI) yang harus direalisasikan dengan alat
yang sesuai.

UML dan pemodelan data


UML populer di kalangan pemrogram, tetapi umumnya tidak digunakan oleh
pengembang basis data. Salah satu alasannya adalah pembuat UML tidak fokus
pada database. Meskipun demikian, UML efektif untuk pemodelan data
konseptual tingkat tinggi, dan dapat digunakan dalam berbagai jenis diagram
UML.

Pemodelan Basis Data dalam UML


Dalam hal penyediaan persistensi objek yang andal, fleksibel, dan efisien untuk
sistem perangkat lunak, desainer dan arsitek masa kini dihadapkan pada banyak
pilihan. Dari perspektif teknologi, pilihan biasanya antara murni Object-Oriented,
Object-Relational hybrids, murni Relasional dan solusi kustom berdasarkan
format file terbuka atau berpemilik (misalnya XML, penyimpanan terstruktur

Universitas Esa Unggul


http://esaunggul.ac.id
6 / 18
OLE). Dari aspek vendor Oracle, IBM, Microsoft, POET dan lainnya
menawarkan solusi yang serupa tetapi seringkali tidak kompatibel.

Memulai dengan rangkaian singkat dari dua domain desain yang coba jembatani:
pertama model kelas berorientasi objek seperti yang direpresentasikan dalam
UML, dan kedua model database relasional.

Model Kelas di UML adalah artefak utama yang diproduksi untuk mewakili
struktur logis dari sistem perangkat lunak. Ini menangkap persyaratan data dan
perilaku objek dalam domain model. Teknik untuk menemukan dan menguraikan
model tersebut berada di luar cakupan artikel ini, jadi akan mengasumsikan
keberadaan model kelas yang dirancang dengan baik yang memerlukan pemetaan
ke database relasional.

Model Kelas
Kelas adalah entitas logika dasar di UML. Ini mendefinisikan data dan perilaku
unit struktural. Kelas adalah templat atau model tempat instance atau objek dibuat
pada waktu proses. Saat mengembangkan model logis seperti hierarki struktural di
UML, secara eksplisit menangani kelas. Saat bekerja dengan diagram dinamis,
seperti diagram urutan dan kolaborasi, bekerja dengan objek atau instance kelas
dan inter-tindakannya pada saat run-time. Prinsip penyembunyian atau
enkapsulasi data didasarkan pada efek lokalisasi. Kelas memiliki elemen data
internal yang menjadi tanggung jawabnya. Akses ke elemen data ini harus melalui
perilaku atau antarmuka kelas yang terekspos. Kepatuhan pada prinsip ini
menghasilkan kode yang lebih dapat dipelihara.

Tingkah laku
Perilaku ditangkap dalam model kelas menggunakan operasi yang ditentukan
untuk kelas tersebut. Operasi mungkin terlihat secara eksternal (publik), terlihat
oleh anak-anak (dilindungi) atau tersembunyi (pribadi). Dengan menggabungkan
data tersembunyi dengan antarmuka yang dapat diakses publik dan manipulasi
data yang tersembunyi atau dilindungi, desainer kelas dapat membuat unit

Universitas Esa Unggul


http://esaunggul.ac.id
7 / 18
struktural yang sangat dapat dipelihara yang mendukung daripada menghalangi
perubahan.

Hubungan dan Identitas


Asosiasi adalah hubungan antara 2 kelas yang menunjukkan bahwa setidaknya
satu sisi hubungan mengetahui tentang dan entah bagaimana menggunakan atau
memanipulasi sisi lainnya. Hubungan ini mungkin secara fungsional (melakukan
sesuatu untuk saya) atau struktural (menjadi sesuatu untuk saya). Untuk artikel
ini, hubungan struktural yang paling menarik: misalnya kelas Alamat dapat
dikaitkan dengan kelas Orang. Pemetaan hubungan ini ke dalam ruang data
relasional membutuhkan perhatian.

Agregasi adalah bentuk asosiasi yang menyiratkan kumpulan satu kelas objek di
dalam kelas lain. Komposisi adalah bentuk agregasi yang lebih kuat yang
menyiratkan bahwa satu objek sebenarnya terdiri dari objek lain. Seperti
hubungan asosiasi, ini menyiratkan atribut kelas yang kompleks yang memerlukan
pertimbangan cermat dalam proses pemetaan ke domain relasional. Sementara
kelas mewakili templat atau model dari mana banyak contoh objek dapat dibuat,
sebuah objek pada waktu berjalan memerlukan beberapa cara untuk
mengidentifikasi dirinya sendiri sehingga objek terkait dapat bertindak atas contoh
objek yang benar. Dalam bahasa pemrograman seperti C ++, penunjuk objek
dapat diedarkan dan ditahan untuk memungkinkan akses objek ke instance objek
unik. Namun seringkali, sebuah objek akan dihancurkan dan mengharuskannya
untuk dibuat kembali seperti semula selama contoh aktif terakhirnya. Objek-objek
ini memerlukan mekanisme penyimpanan untuk menyimpan status internal dan
asosiasi ke dalam dan untuk mengambil status tersebut sesuai kebutuhan.

Pewarisan memberi model kelas sarana untuk memfaktorkan perilaku umum ke


dalam kelas umum yang kemudian bertindak sebagai nenek moyang dari banyak
variasi pada tema umum. Pewarisan adalah cara mengelola penggunaan ulang dan
kompleksitas. Seperti yang akan dilihat, model relasional tidak memiliki padanan
langsung dari pewarisan, yang menciptakan dilema bagi pemodel data yang

Universitas Esa Unggul


http://esaunggul.ac.id
8 / 18
memetakan model objek ke kerangka kerja relasional. Navigasi dari satu objek
pada waktu proses ke yang lain didasarkan pada referensi absolut. Satu objek
memiliki beberapa bentuk tautan (penunjuk atau ID objek unik) yang dapat
digunakan untuk mencari atau membuat ulang objek yang diperlukan.

Model Relasional
Model data relasional telah ada selama bertahun-tahun dan memiliki rekam jejak
yang terbukti memberikan kinerja dan fleksibilitas. Ini pada dasarnya ditetapkan
berdasarkan dan memiliki unit fundamental 'tabel', yang terdiri dari satu set
'kolom' atau lebih, yang masing-masing berisi elemen data.

Tabel dan Kolom: tabel relasional adalah kumpulan dari satu atau lebih kolom
yang masing-masing memiliki nama unik dalam konstruksi tabel. Setiap kolom
didefinisikan sebagai tipe data dasar tertentu, seperti angka, teks atau data biner.
Definisi tabel adalah templat dari mana baris tabel dibuat, setiap baris menjadi
instance dari kemungkinan contoh tabel. Model relasional hanya menawarkan
model akses data publik. Semua data sama-sama diekspos dan terbuka untuk
proses apa pun untuk memperbarui, mengajukan kueri, atau memanipulasinya.
Penyembunyian informasi tidak diketahui.

Tingkah laku
Perilaku yang terkait dengan tabel biasanya didasarkan pada aturan bisnis atau
logika yang diterapkan ke entitas itu. Batasan dapat diterapkan ke kolom dalam
bentuk persyaratan keunikan, batasan integritas relasional ke tabel / baris lain,
nilai yang diizinkan, dan tipe data.
Pemicu memberikan beberapa perilaku tambahan yang dapat dikaitkan dengan
entitas. Biasanya ini digunakan untuk menegakkan integritas data sebelum atau
setelah pembaruan, penyisipan dan penghapusan. Prosedur tersimpan basis data
menyediakan sarana untuk memperluas fungsionalitas basis data melalui ekstensi
bahasa kepemilikan yang digunakan untuk membangun unit fungsional (skrip).
Prosedur fungsional ini tidak memetakan langsung ke entitas, juga tidak memiliki
hubungan logis dengannya. Navigasi melalui kumpulan data relasional didasarkan

Universitas Esa Unggul


http://esaunggul.ac.id
9 / 18
pada traversal baris dan gabungan tabel. SQL adalah bahasa utama yang
digunakan untuk memilih baris dan menemukan instance dari kumpulan tabel.

Hubungan dan Identitas


Kunci utama tabel memberikan nilai pengidentifikasi unik untuk baris tertentu.
Ada dua jenis kunci utama yang diminati: pertama kunci bermakna, yang terdiri
dari kolom data yang memiliki arti dalam domain bisnis, dan kedua pengenal unik
abstrak, seperti nilai penghitung, yang tidak memiliki arti bisnis tetapi secara unik
mengidentifikasi baris. Membahas ini dan implikasi dari kunci yang bermakna
nanti. Tabel mungkin berisi kolom yang memetakan ke kunci utama dari tabel
lain. Hubungan antar tabel ini mendefinisikan kunci asing dan menyiratkan
hubungan struktural atau asosiasi antara dua tabel.

Model relasional memperlihatkan semua data secara setara, dengan dukungan


terbatas untuk menghubungkan perilaku dengan elemen data melalui pemicu,
indeks, dan batasan. Menavigasi ke informasi yang berbeda dalam model objek
dengan berpindah dari satu objek ke objek lain menggunakan pengenal objek unik
dan hubungan objek yang telah ditetapkan (mirip dengan model data jaringan).
Dalam model relasional menemukan baris dengan menggabungkan dan memfilter
kumpulan hasil menggunakan SQL menggunakan kriteria pencarian umum.
Identitas dalam model objek dapat berupa referensi run-time atau ID unik yang
persisten (disebut OID). Dalam dunia relasional, kunci primer menentukan
keunikan kumpulan data di ruang data keseluruhan.

Dalam model objek memiliki sekumpulan hubungan yang kaya: pewarisan,


agregasi, asosiasi, komposisi, ketergantungan, dan lain-lain. Dalam model
relasional hanya dapat menentukan hubungan menggunakan kunci asing. Setelah
melihat dua domain yang menarik dan membandingkan beberapa fitur penting
dari masing-masing, akan menyimpang sebentar untuk melihat notasi yang
diusulkan untuk merepresentasikan model data relasional dalam UML.

Universitas Esa Unggul


http://esaunggul.ac.id
10 / 18
Profil Model Data UML
Profil Model Data adalah ekstensi UML untuk mendukung pemodelan database
relasional dalam UML. Ini mencakup ekstensi khusus untuk hal-hal seperti tabel,
skema basis data, kunci tabel, pemicu, dan batasan. Meskipun ini bukan ekstensi
yang diratifikasi, ini masih menggambarkan satu teknik yang mungkin untuk
pemodelan database relasional di UML.
Contoh tersebut menggambarkan kemungkinan perilaku berikut:
Batasan kunci utama (PK);
Batasan kunci asing (FK);
Batasan indeks (Indeks);
Pemicu (Trigger);
Batasan keunikan (Unik);
Prosedur yang tersimpan (Proc) - bukan bagian formal dari profil data, tetapi
contoh teknik pemodelan yang mungkin; dan a
Cek validitas (Cek).
Dengan menggunakan notasi yang diberikan di atas, dimungkinkan untuk
memodelkan struktur dan perilaku data yang kompleks di tingkat DBMS. Selain
itu, UML menyediakan notasi untuk mengekspresikan hubungan antara entitas
logis.

Hubungan Profil pemodelan data UML mendefinisikan hubungan sebagai


ketergantungan jenis apa pun antara dua tabel. Ini direpresentasikan sebagai
asosiasi stereotip dan mencakup satu set kunci utama dan asing. Profil data
selanjutnya mengharuskan hubungan selalu melibatkan orang tua dan anak, orang
tua yang mendefinisikan kunci utama dan anak yang menerapkan kunci asing
berdasarkan semua atau sebagian dari kunci utama induk. Hubungan ini disebut
'mengidentifikasi' jika kunci asing anak menyertakan semua elemen dari kunci
utama induk dan 'non-identifikasi' jika hanya beberapa elemen dari kunci utama
yang disertakan. Hubungan tersebut dapat mencakup kendala kardinalitas dan
dimodelkan dengan pasangan PK - FK yang relevan disebut sebagai peran
asosiasi. Ilustrasi di bawah ini mengilustrasikan jenis pemodelan hubungan ini
menggunakan UML.

Universitas Esa Unggul


http://esaunggul.ac.id
11 / 18
Pemetaan dari Model Kelas ke Model Relasional
Setelah mendeskripsikan dua domain yang menarik dan notasi yang akan
digunakan, sekarang dapat mengalihkan perhatian tentang bagaimana memetakan
atau menerjemahkan dari satu domain ke domain lainnya. Strategi dan urutan
yang disajikan di bawah ini dimaksudkan untuk menjadi sugestif daripada
membatasi - sesuaikan langkah dan prosedur dengan kebutuhan dan lingkungan
pribadi.

1. Kelas Model
Pertama akan menganggap sedang merekayasa skema database relasional baru
dari model kelas yang telah dibuat. Ini jelas merupakan arah termudah karena
model tetap di bawah kendali dan dapat mengoptimalkan model data relasional ke
model kelas. Dalam dunia nyata, mungkin perlu melapisi model kelas di atas
model data lama - situasi yang lebih sulit dan tantangannya sendiri. Untuk
pembahasan kali ini akan difokuskan pada situasi pertama. Minimal, model kelas
harus menangkap asosiasi, pewarisan, dan agregasi antar elemen.

2. Identifikasi objek yang gigih


Setelah membangun model kelas, perlu memisahkannya menjadi elemen-elemen
yang membutuhkan ketekunan dan yang tidak. Misalnya, jika telah merancang
aplikasi menggunakan pola desain Model-View-Controller, maka hanya kelas-
kelas di bagian model yang memerlukan status persisten.

3. Asumsikan setiap kelas yang persisten dipetakan ke satu tabel relasional


Asumsi yang cukup besar, tetapi yang berhasil dalam banyak kasus
(mengesampingkan masalah warisan untuk saat ini). Dalam model paling
sederhana, kelas dari model logika dipetakan ke tabel relasional, baik secara
keseluruhan atau sebagian. Perpanjangan logis dari ini adalah bahwa satu objek
(atau instance dari kelas) dipetakan ke satu baris tabel.

4. Pilih strategi warisan.

Universitas Esa Unggul


http://esaunggul.ac.id
12 / 18
Pewarisan mungkin merupakan hubungan yang paling bermasalah dan konstruksi
logis dari model berorientasi objek yang memerlukan penerjemahan ke dalam
model relasional. Ruang relasional pada dasarnya datar, setiap entitas menjadi
lengkap dalam dirinya sendiri, sedangkan model objek seringkali cukup dalam
dengan hierarki kelas yang berkembang dengan baik. Model kelas dalam mungkin
memiliki banyak lapisan atribut dan perilaku yang diwariskan, yang menghasilkan
objek akhir berfitur lengkap pada waktu proses. Ada tiga cara dasar untuk
menangani penerjemahan warisan ke model relasional:

Setiap hierarki kelas memiliki satu tabel terkait yang berisi semua atribut yang
diwariskan untuk semua elemen - oleh karena itu tabel ini adalah gabungan dari
setiap kelas dalam hierarki. Misalnya, Person, Parent, Child, dan Grandchild
semuanya dapat membentuk hierarki kelas tunggal, dan elemen dari masing-
masing akan muncul dalam tabel relasional yang sama;
Setiap kelas dalam hierarki memiliki tabel terkait hanya atribut yang dapat diakses
oleh kelas itu (termasuk atribut yang diwariskan). Misalnya, jika Anak diwarisi
dari Orang saja, maka tabel akan berisi elemen Orang dan Anak saja;
Setiap generasi dalam hierarki kelas memiliki tabel yang hanya berisi atribut
aktual generasi tersebut. Misalnya, Child akan memetakan ke satu tabel dengan
atribut Child saja
Ada beberapa kasus yang harus dibuat untuk setiap pendekatan, tetapi saya
menyarankan yang paling sederhana, paling mudah untuk dipertahankan dan lebih
sedikit rawan kesalahan adalah pilihan ketiga. Opsi pertama memberikan kinerja
terbaik saat run-time dan yang kedua adalah kompromi antara yang pertama dan
terakhir. Opsi pertama meratakan hierarki dan menempatkan semua atribut dalam
satu tabel - nyaman untuk pembaruan dan pengambilan kelas apa pun dalam
hierarki, tetapi sulit untuk diautentikasi dan dipelihara. Aturan bisnis yang terkait
dengan baris sulit diterapkan, karena setiap baris dapat dibuat instance-nya
sebagai objek apa pun dalam hierarki. Ketergantungan antar kolom bisa menjadi
sangat rumit. Selain itu, pembaruan untuk setiap kelas dalam hierarki akan
berpotensi memengaruhi setiap kelas lain dalam hierarki, karena kolom
ditambahkan, dihapus, atau diubah dari tabel.

Universitas Esa Unggul


http://esaunggul.ac.id
13 / 18
Opsi kedua adalah kompromi yang memberikan enkapsulasi yang lebih baik dan
menghilangkan kolom kosong. Namun, perubahan ke kelas induk mungkin perlu
direplikasi di banyak tabel anak. Lebih buruk lagi, data orang tua dalam dua atau
lebih kelas anak mungkin disimpan secara berlebihan di banyak tabel; jika atribut
induk dimodifikasi, ada upaya yang cukup besar dalam mencari lokasi turunan
dependen dan memperbarui baris yang terpengaruh.

Opsi ketiga lebih akurat mencerminkan model objek, dengan setiap kelas dalam
hierarki dipetakan ke tabel independennya sendiri. Pembaruan untuk orang tua
atau anak-anak dilokalkan di ruang yang benar. Pemeliharaan juga relatif lebih
mudah, karena setiap modifikasi entitas juga dibatasi pada tabel relasional
tunggal. Sisi negatifnya adalah kebutuhan untuk membangun kembali hierarki
pada waktu proses untuk membuat ulang status kelas anak secara akurat. Objek
Anak mungkin memerlukan variabel anggota Person untuk mewakili model
asalnya. Karena keduanya memerlukan pemuatan, dua panggilan database
diperlukan untuk menginisialisasi satu objek. Saat hierarki semakin dalam,
dengan lebih banyak generasi, jumlah panggilan database yang diperlukan untuk
menginisialisasi atau memperbarui satu objek meningkat. Penting untuk
memahami masalah yang muncul saat memetakan warisan ke model relasional,
sehingga dapat memutuskan solusi mana yang tepat.

5. Untuk setiap kelas tambahkan pengenal objek unik


Baik dalam dunia relasional dan objek, ada kebutuhan untuk mengidentifikasi
objek atau entitas secara unik. Dalam model objek, objek non-persisten pada
waktu proses biasanya diidentifikasi dengan referensi langsung atau dengan
penunjuk ke objek. Setelah sebuah objek dibuat, dapat merujuknya dengan
identitas run-time-nya. Namun, jika menulis objek ke penyimpanan, masalahnya
adalah bagaimana mengambil contoh yang sama persis sesuai permintaan. Metode
yang paling mudah adalah dengan mendefinisikan OID (pengidentifikasi objek)
yang dijamin unik di namespace yang diminati. Ini mungkin di tingkat kelas,
paket atau sistem, tergantung pada persyaratan sebenarnya.

Universitas Esa Unggul


http://esaunggul.ac.id
14 / 18
Identitas dalam model relasional biasanya diimplementasikan dengan kunci
primer. Kunci utama adalah sekumpulan kolom dalam tabel yang bersama-sama
mengidentifikasi baris secara unik.

6. Memetakan atribut ke kolom


Secara umum akan memetakan atribut data sederhana dari sebuah kelas ke kolom
dalam tabel relasional. Misalnya kolom teks dan angka dapat mewakili nama dan
usia seseorang masing-masing. Pemetaan langsung semacam ini seharusnya tidak
menimbulkan masalah - cukup pilih tipe data yang sesuai dalam model relasional
vendor untuk menghosting atribut kelas.
Untuk atribut kompleks (mis. Atribut yang merupakan objek lain) gunakan
pendekatan yang dijelaskan di bawah ini untuk menangani asosiasi dan agregasi.

7. Memetakan asosiasi ke kunci asing


Atribut kelas yang lebih kompleks (yaitu yang mewakili kelas lain), biasanya
dimodelkan sebagai asosiasi. Asosiasi adalah hubungan struktural antar objek.
Misalnya, Seseorang mungkin tinggal di suatu Alamat. Meskipun ini dapat
dimodelkan sebagai Orang yang memiliki atribut Kota, Jalan, dan Kode Pos, baik
dalam objek maupun dunia relasional, cenderung menyusun informasi ini sebagai
entitas terpisah, Alamat. Dalam domain objek, alamat mewakili objek fisik unik,
mungkin dengan OID unik. Dalam relasional, alamat dapat berupa baris dalam
tabel Alamat, dengan entitas lain yang memiliki kunci asing ke kunci primer
Alamat.

8. Agregasi dan Komposisi Peta


Hubungan agregasi dan komposisi mirip dengan hubungan asosiasi dan dipetakan
ke tabel yang terkait dengan pasangan kunci asing utama. Namun, ada beberapa
hal yang perlu diingat. Agregasi biasa (bentuk lemah) memodelkan hubungan
seperti Orang yang berada di satu atau lebih Alamat. Dalam hal ini, lebih dari satu
orang dapat tinggal di alamat yang sama, dan jika Orang tersebut tidak ada lagi,
Alamat yang terkait akan tetap ada. Contoh ini paralel dengan hubungan banyak-
ke-banyak dalam terminologi relasional, dan biasanya diimplementasikan sebagai

Universitas Esa Unggul


http://esaunggul.ac.id
15 / 18
tabel terpisah yang berisi pemetaan kunci primer dari satu tabel ke kunci primer
dari tabel lain.
Bentuk agregasi yang kuat memiliki batasan integritas penting yang terkait
dengannya. Komposisi, menyiratkan bahwa suatu entitas terdiri dari bagian-
bagian, dan bagian-bagian tersebut memiliki hubungan dependen dengan
keseluruhan. Misalnya, Seseorang mungkin memiliki dokumen pengenal seperti
Paspor, Akta Kelahiran, Surat Izin Mengemudi, dll. Entitas Orang dapat terdiri
dari kumpulan dokumen pengenal tersebut. Jika Orang tersebut dihapus dari
sistem, maka dokumen pengenal juga harus dihapus, karena dipetakan ke individu
yang unik.

Dalam kasus komposisi, penggunaan kunci asing adalah wajib, dengan batasan
tambahan bahwa pada penghapusan bagian induk juga harus dihapus. Logikanya,
ada juga implikasi dengan komposisi bahwa kunci utama dari bagian tersebut
merupakan bagian dari kunci utama dari keseluruhan - misalnya, kunci utama
Orang dapat terdiri dari ID dokumen pengenalnya. Dalam praktiknya ini akan
merepotkan, tetapi hubungan logisnya benar.

9. Tentukan peran hubungan


Untuk setiap hubungan jenis asosiasi, setiap ujung hubungan dapat ditentukan
lebih lanjut dengan informasi peran. Biasanya, menyertakan nama batasan Kunci
Utama dan nama Kendala Kunci Asing. Gambar 6 mengilustrasikan konsep ini.
Ini secara logis mendefinisikan hubungan antara dua kelas. Selain itu, dapat
menentukan batasan tambahan (mis. {Not NULL}) pada batasan peran dan
kardinalitas.

10. Model perilaku


Sekarang sampai pada masalah sulit lainnya: apakah akan memetakan beberapa
atau semua perilaku kelas ke kapabilitas fungsional yang disediakan oleh vendor
database dalam bentuk pemicu, prosedur tersimpan, keunikan dan batasan data,
dan integritas relasional. Model objek non-persisten biasanya akan
mengimplementasikan semua perilaku yang diperlukan dalam satu atau lebih

Universitas Esa Unggul


http://esaunggul.ac.id
16 / 18
bahasa pemrograman (mis. Java atau C ++). Setiap kelas akan diberikan perilaku
dan tanggung jawab yang diperlukan dalam bentuk metode publik, dilindungi, dan
privat.

C. Latihan
1. Bahasa standar untuk menentukan, memvisualisasikan, membangun, dan
mendokumentasikan artefak sistem perangkat lunak,disebut ?
2. Mekanisme mengikat data menjadi satu dan menyembunyikannya dari
dunia luar, disebut ?

D. Kunci Jawaban
1. Unified Modeling Language.
2. Enkapsulasi

E. Daftar Pustaka
1. Roger S. Pressman, Software Engineering A Practioner's Apporach, 2014
2. Ian Sommerville, Software Engineering (10th Edition), 2015
3. https://www.omg.org/news/meetings/workshops/presentations/eai_2001/tutoria
l_monday/tockey_tutorial/1-Intro.pdf
4. https://www.uml.org/what-is-uml.htm
5. https://www.lucidchart.com/pages/what-is-UML-unified-modeling-language
6. https://www.tutorialspoint.com/uml/uml_overview.htm
7. https://sparxsystems.com/resources/uml_datamodel.html

Universitas Esa Unggul


http://esaunggul.ac.id
17 / 18

Anda mungkin juga menyukai