{"id":11074,"date":"2026-06-03T13:38:37","date_gmt":"2026-06-03T05:38:37","guid":{"rendered":"https:\/\/www.archimetric.com\/id\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/"},"modified":"2026-06-03T13:38:37","modified_gmt":"2026-06-03T05:38:37","slug":"comprehensive-guide-to-uml-class-diagrams-diagram-as-code","status":"publish","type":"post","link":"https:\/\/www.archimetric.com\/id\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/","title":{"rendered":"Panduan Lengkap tentang Diagram Kelas UML (Diagram sebagai Kode)"},"content":{"rendered":"<blockquote data-nodeid=\"1675\">\n<p data-nodeid=\"1676\">\ud83d\udca1\u00a0<strong data-nodeid=\"2062\">Catatan<\/strong>: Semua diagram disediakan dalam format<strong data-nodeid=\"2063\">PlantUML<\/strong> format. Anda dapat merender mereka secara instan menggunakan<a href=\"http:\/\/vpascode.com\">Visual Paradigm Diagram sebagai Kode<\/a>.<\/p>\n<\/blockquote>\n<hr data-nodeid=\"1696\"\/>\n<h2 data-nodeid=\"1697\">\ud83d\udd39 Pengantar UML<\/h2>\n<h3 data-nodeid=\"1698\">Apa itu UML?<\/h3>\n<blockquote data-nodeid=\"1699\">\n<p data-nodeid=\"1700\"><em data-nodeid=\"2097\">\u201cBahasa Pemodelan Terpadu (UML) adalah bahasa pemodelan visual umum yang digunakan untuk menentukan, memvisualisasikan, membangun, dan mendokumentasikan artefak dari suatu sistem perangkat lunak.\u201d<\/em>\u00a0\u2014 Rumbaugh dkk., 1999<\/p>\n<\/blockquote>\n<p data-nodeid=\"1701\"><strong data-nodeid=\"2101\">Karakteristik Utama:<\/strong><\/p>\n<ul data-nodeid=\"1702\">\n<li data-nodeid=\"1703\">\n<p data-nodeid=\"1704\">\ud83c\udfa8\u00a0<strong data-nodeid=\"2107\">Notasi visual<\/strong>: Sintaks grafis untuk memodelkan sistem<\/p>\n<\/li>\n<li data-nodeid=\"1705\">\n<p data-nodeid=\"1706\">\ud83d\udcd0\u00a0<strong data-nodeid=\"2113\">Standarisasi<\/strong>: Standar yang diadopsi oleh OMG sejak tahun 1997<\/p>\n<\/li>\n<li data-nodeid=\"1707\">\n<p data-nodeid=\"1708\">\ud83d\udd27\u00a0<strong data-nodeid=\"2119\">Bahasa, bukan metode<\/strong>: Menentukan notasi, bukan proses<\/p>\n<\/li>\n<li data-nodeid=\"1709\">\n<p data-nodeid=\"1710\">\ud83c\udf10\u00a0<strong data-nodeid=\"2125\">Cakupan luas<\/strong>: Memodelkan proses bisnis, fungsi sistem, struktur kode, dan skema basis data<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"1711\">Apa yang BUKAN UML<\/h3>\n<table data-nodeid=\"1713\">\n<thead data-nodeid=\"1714\">\n<tr data-nodeid=\"1715\">\n<th data-nodeid=\"1717\">Kesalahpahaman<\/th>\n<th data-nodeid=\"1718\">Kenyataan<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"1721\">\n<tr data-nodeid=\"1722\">\n<td data-nodeid=\"1723\">Metodologi pengembangan<\/td>\n<td data-nodeid=\"1724\">Hanya notasi pemodelan<\/td>\n<\/tr>\n<tr data-nodeid=\"1725\">\n<td data-nodeid=\"1726\">Bahasa pemrograman<\/td>\n<td data-nodeid=\"1727\">Bahasa spesifikasi abstrak<\/td>\n<\/tr>\n<tr data-nodeid=\"1728\">\n<td data-nodeid=\"1729\">Hanya untuk pemrograman berbasis objek<\/td>\n<td data-nodeid=\"1730\">Berlaku untuk basis data, pemodelan bisnis, dll.<\/td>\n<\/tr>\n<tr data-nodeid=\"1731\">\n<td data-nodeid=\"1732\">Didefinisikan secara tepat dari segala aspek<\/td>\n<td data-nodeid=\"1733\">Beberapa ambiguitas semantik masih ada di versi awal<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr data-nodeid=\"1734\"\/>\n<h2 data-nodeid=\"1735\">\ud83d\udd39 Sejarah dan Standarisasi<\/h2>\n<h3 data-nodeid=\"1736\">Timeline Evolusi<\/h3>\n<p id=\"xFCmEsT\"><img alt=\"The Evolution of Unified Modeling Language (UML)\" class=\"alignnone wp-image-12647 size-full\" decoding=\"async\" height=\"658\" loading=\"lazy\" sizes=\"auto, (max-width: 1208px) 100vw, 1208px\" src=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbb7554f19.png\" srcset=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbb7554f19.png 1208w, https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbb7554f19-300x163.png 300w, https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbb7554f19-1024x558.png 1024w, https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbb7554f19-768x418.png 768w\" width=\"1208\"\/><\/p>\n<pre data-nodeid=\"1737\"><code>1965-1970: Simula-67 (bahasa OO pertama)\r\n     \u2193\r\n1970-an-1980-an: Smalltalk di Xerox PARC\r\n     \u2193\r\n1984: C++ diperkenalkan oleh Bjarne Stroustrup\r\n     \u2193\r\n1988-1992: Meluasnya metode OO (Booch, OMT, OOSE, dll.)\r\n     \u2193\r\n1994: Rumbaugh bergabung dengan Booch di Rational \u2192 Pemersatu dimulai\r\n     \u2193\r\n1995: Draf UML 0.8 dirilis\r\n     \u2193\r\n1996: OMG mengeluarkan RFP untuk bahasa pemodelan standar\r\n     \u2193\r\n1997: UML 1.1 diadopsi oleh OMG (14 November)\r\n     \u2193\r\n2000: UML 1.3 diterbitkan secara resmi\r\n     \u2193\r\n2003: UML 1.5 diterbitkan; struktur super UML 2.0 diterima\r\n<\/code><\/pre>\n<h3 data-nodeid=\"1738\">Mengapa UML Menang dalam &#8216;Perang Metode&#8217;<\/h3>\n<ul data-nodeid=\"1739\">\n<li data-nodeid=\"1740\">\n<p data-nodeid=\"1741\">Menggabungkan lebih dari 50 metode OO yang bersaing menjadi satu standar<\/p>\n<\/li>\n<li data-nodeid=\"1742\">\n<p data-nodeid=\"1743\">Didukung oleh pemain utama industri (IBM, Microsoft, Oracle, HP)<\/p>\n<\/li>\n<li data-nodeid=\"1744\">\n<p data-nodeid=\"1745\">Menyediakan mekanisme ekstensi untuk penyesuaian<\/p>\n<\/li>\n<li data-nodeid=\"1746\">\n<p data-nodeid=\"1747\">Menjadi standar de facto untuk pemodelan berbasis objek<\/p>\n<\/li>\n<\/ul>\n<blockquote data-nodeid=\"1748\">\n<p data-nodeid=\"1749\">\u26a0\ufe0f\u00a0<strong data-nodeid=\"2156\">Perspektif Kritis<\/strong>: Beberapa orang berpendapat bahwa UML adalah &#8216;bahasa raksasa yang dirancang oleh komite&#8217; dengan semantik yang tidak tepat pada versi awal.<\/p>\n<\/blockquote>\n<hr data-nodeid=\"1750\"\/>\n<h2 data-nodeid=\"1751\">\ud83d\udd39 Kelas dan Atribut<\/h2>\n<h3 data-nodeid=\"1752\">Struktur Kelas<\/h3>\n<p data-nodeid=\"1753\">Kelas UML direpresentasikan sebagai persegi panjang dengan hingga tiga kompartemen.<\/p>\n<p id=\"zEMvvmf\"><img alt=\"\" class=\"alignnone size-full wp-image-12648\" decoding=\"async\" height=\"183\" loading=\"lazy\" src=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbbe222b36.png\" width=\"258\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:PS-n2i8m483XFP1tkB55ABfcAcuk4d3e80uXEMimlPJaIX7ntOqKeUBw_NTmrsOsYQSXI663oHbEF3aaXgSK05UVCX_DWAfuyjH_i8pz6Gx6X_EsQNQN7oQR7YEZqzsQDy2HJT3H4-UgLd0WnXxJqZAoBfVCCRbgdBzxzHBj3UrTT-kWO1zZG4DIlAHeaLnvvmq0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edit PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:PS-n2i8m483XFP1tkB55ABfcAcuk4d3e80uXEMimlPJaIX7ntOqKeUBw_NTmrsOsYQSXI663oHbEF3aaXgSK05UVCX_DWAfuyjH_i8pz6Gx6X_EsQNQN7oQR7YEZqzsQDy2HJT3H4-UgLd0WnXxJqZAoBfVCCRbgdBzxzHBj3UrTT-kWO1zZG4DIlAHeaLnvvmq0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1754\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Student {\r\n  firstName: String\r\n  lastName: String\r\n  email[0..1]: String\r\n  encryptedPW: String\r\n  + totalPoints(): Integer\r\n  + setPassword(pw: String)\r\n  + checkPW(pw: String): Boolean\r\n}\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:PS-n2i8m483XFP1tkB55ABfcAcuk4d3e80uXEMimlPJaIX7ntOqKeUBw_NTmrsOsYQSXI663oHbEF3aaXgSK05UVCX_DWAfuyjH_i8pz6Gx6X_EsQNQN7oQR7YEZqzsQDy2HJT3H4-UgLd0WnXxJqZAoBfVCCRbgdBzxzHBj3UrTT-kWO1zZG4DIlAHeaLnvvmq0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:PS-n2i8m483XFP1tkB55ABfcAcuk4d3e80uXEMimlPJaIX7ntOqKeUBw_NTmrsOsYQSXI663oHbEF3aaXgSK05UVCX_DWAfuyjH_i8pz6Gx6X_EsQNQN7oQR7YEZqzsQDy2HJT3H4-UgLd0WnXxJqZAoBfVCCRbgdBzxzHBj3UrTT-kWO1zZG4DIlAHeaLnvvmq0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edit PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3 data-nodeid=\"1755\">Sintaks Deklarasi Atribut<\/h3>\n<pre data-nodeid=\"1756\"><code>[visibilitas] nama[multiplicity]: Tipe [= nilaiDefault] {properti}\r\n<\/code><\/pre>\n<p data-nodeid=\"1757\"><strong data-nodeid=\"2164\">Contoh PlantUML:<br \/>\n<\/strong><img alt=\"\" class=\"alignnone size-full wp-image-12649\" decoding=\"async\" height=\"134\" loading=\"lazy\" sizes=\"auto, (max-width: 310px) 100vw, 310px\" src=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbc08ba555.png\" srcset=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbc08ba555.png 310w, https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbc08ba555-300x130.png 300w\" width=\"310\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:FOwn2eD044HxmNzOJ1aY8QKGiB2na0WMAKAAvMuz9BhAkWQC9D-UkoBfXfatm-IpekWoz75aUfndQ7Inn0fR707iePRH2GwNDlZhxPYcftlc8UdOmHcIgcoIG1w0sCWwATdw-WUsLiONyJiGE-XOIHZxiiYWzDgHXE034ve7EggbUw9IWOg_XJZotPpO-eTV\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edit PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:FOwn2eD044HxmNzOJ1aY8QKGiB2na0WMAKAAvMuz9BhAkWQC9D-UkoBfXfatm-IpekWoz75aUfndQ7Inn0fR707iePRH2GwNDlZhxPYcftlc8UdOmHcIgcoIG1w0sCWwATdw-WUsLiONyJiGE-XOIHZxiiYWzDgHXE034ve7EggbUw9IWOg_XJZotPpO-eTV\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1758\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Student {\r\n  + ProgramOfStudy[0..2]: String = \"MIS\"\r\n  - encryptedPW: String {frozen}\r\n  # internalID: Integer\r\n  ~ packagePrivateData: String\r\n}\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:FOwn2eD044HxmNzOJ1aY8QKGiB2na0WMAKAAvMuz9BhAkWQC9D-UkoBfXfatm-IpekWoz75aUfndQ7Inn0fR707iePRH2GwNDlZhxPYcftlc8UdOmHcIgcoIG1w0sCWwATdw-WUsLiONyJiGE-XOIHZxiiYWzDgHXE034ve7EggbUw9IWOg_XJZotPpO-eTV\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:FOwn2eD044HxmNzOJ1aY8QKGiB2na0WMAKAAvMuz9BhAkWQC9D-UkoBfXfatm-IpekWoz75aUfndQ7Inn0fR707iePRH2GwNDlZhxPYcftlc8UdOmHcIgcoIG1w0sCWwATdw-WUsLiONyJiGE-XOIHZxiiYWzDgHXE034ve7EggbUw9IWOg_XJZotPpO-eTV\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edit PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3 data-nodeid=\"1759\">Cakupan Atribut<\/h3>\n<ul data-nodeid=\"1760\">\n<li data-nodeid=\"1761\">\n<p data-nodeid=\"1762\"><strong data-nodeid=\"2170\">Cakupan Instans<\/strong>\u00a0(default): Setiap objek memiliki nilainya sendiri<\/p>\n<\/li>\n<li data-nodeid=\"1763\">\n<p data-nodeid=\"1764\"><strong data-nodeid=\"2175\">Cakupan Kelas<\/strong>\u00a0(static): Satu nilai yang dibagikan oleh semua instans<\/p>\n<\/li>\n<\/ul>\n<p id=\"IpqQSPg\"><img alt=\"\" class=\"alignnone size-full wp-image-12650\" decoding=\"async\" height=\"85\" loading=\"lazy\" src=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbc920bfbd.png\" width=\"227\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:5Omn2W0X30JxGFwGTrZPNdql40qYQ0HTA_7lvvKp3ECdmi1gbIdMCAUyM4aDifb4B3HrLurY-UTzQvHu9FPbSF8ODEjWEanUBTtF1m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edit PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:5Omn2W0X30JxGFwGTrZPNdql40qYQ0HTA_7lvvKp3ECdmi1gbIdMCAUyM4aDifb4B3HrLurY-UTzQvHu9FPbSF8ODEjWEanUBTtF1m00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1765\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Student {\r\n  name: String\r\n  {static} count: Integer\r\n}\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:5Omn2W0X30JxGFwGTrZPNdql40qYQ0HTA_7lvvKp3ECdmi1gbIdMCAUyM4aDifb4B3HrLurY-UTzQvHu9FPbSF8ODEjWEanUBTtF1m00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:5Omn2W0X30JxGFwGTrZPNdql40qYQ0HTA_7lvvKp3ECdmi1gbIdMCAUyM4aDifb4B3HrLurY-UTzQvHu9FPbSF8ODEjWEanUBTtF1m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edit PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3 data-nodeid=\"1766\">Kunci dalam UML \u26a0\ufe0f<\/h3>\n<p data-nodeid=\"1767\"><strong data-nodeid=\"2181\">Keterbatasan Penting<\/strong>: UML tidak memiliki konsep bawaan tentang kunci. Gunakan stereotip atau nilai bertanda sebagai solusi sementara.<\/p>\n<p id=\"hLmsAEe\"><img alt=\"\" class=\"alignnone size-full wp-image-12651\" decoding=\"async\" height=\"117\" loading=\"lazy\" src=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbcd8087f6.png\" width=\"184\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8BYbDISqhKQZcvL9Gg2x8hbN8JB5IyCmhIKrFBGAB9MORrYgavYPcvbW1LHTbvgM3X7KLyX9pKn4YjRnS3gbvAK2J0G00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edit PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8BYbDISqhKQZcvL9Gg2x8hbN8JB5IyCmhIKrFBGAB9MORrYgavYPcvbW1LHTbvgM3X7KLyX9pKn4YjRnS3gbvAK2J0G00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1768\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Student {\r\n  {pk} id: Integer\r\n  {ak1} email: String\r\n  - name: String\r\n}\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8BYbDISqhKQZcvL9Gg2x8hbN8JB5IyCmhIKrFBGAB9MORrYgavYPcvbW1LHTbvgM3X7KLyX9pKn4YjRnS3gbvAK2J0G00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8BYbDISqhKQZcvL9Gg2x8hbN8JB5IyCmhIKrFBGAB9MORrYgavYPcvbW1LHTbvgM3X7KLyX9pKn4YjRnS3gbvAK2J0G00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edit PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<hr data-nodeid=\"1769\"\/>\n<h2 data-nodeid=\"1770\">\ud83d\udd39 Asosiasi dan Hubungan<\/h2>\n<h3 data-nodeid=\"1771\">Asosiasi Dasar &amp; Kelipatan<\/h3>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmhKWjIiuiJeNndJCI2qfIYtYvO18AIWPwUbfA2hgw2ag6Udg6IZ0b2bOAJgav-NdfnI7vl5mEgNafG6C1\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edit PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmhKWjIiuiJeNndJCI2qfIYtYvO18AIWPwUbfA2hgw2ag6Udg6IZ0b2bOAlfavcTcyN0wfUIb08m40\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1772\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Exercise\r\nclass Chapter\r\nExercise \"0..*\" -- \"1..1\" Chapter : Milik\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmhKWjIiuiJeNndJCI2qfIYtYvO18AIWPwUbfA2hgw2ag6Udg6IZ0b2bOAlfavcTcyN0wfUIb08m40\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmhKWjIiuiJeNndJCI2qfIYtYvO18AIWPwUbfA2hgw2ag6Udg6IZ0b2bOAJgav-NdfnI7vl5mEgNafG6C1\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edit PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p data-nodeid=\"1773\"><em data-nodeid=\"2190\">Interpretasi<\/em>: Setiap latihan dimiliki oleh tepat satu bab; sebuah bab dapat berisi nol atau lebih latihan.<\/p>\n<h3 data-nodeid=\"1774\">Nama Peran<\/h3>\n<p data-nodeid=\"1775\">Alih-alih (atau selain) nama asosiasi, gunakan nama peran di ujung asosiasi:<\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8I2qgpi-3yPppSmiIyofvkI322ae6UdfQIWgwkdPWfg4IJ8M2bO9hRa5EVcLggZwKKSJBvP2Qbm8q6m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edit PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8I2qgpi-3yPppSmiIyofvkI322ae6UdfQIWgwkdPWfg4IJ8M2bO9tOb5bOdbYddv0QcvIQb6cWdTgKLOYBvT3QbuAq080\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1776\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Person\r\nclass Company\r\nPerson \"0..*\" --&gt; \"0..1\" Company : Karyawan\/Pemberi Kerja\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8I2qgpi-3yPppSmiIyofvkI322ae6UdfQIWgwkdPWfg4IJ8M2bO9tOb5bOdbYddv0QcvIQb6cWdTgKLOYBvT3QbuAq080\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8I2qgpi-3yPppSmiIyofvkI322ae6UdfQIWgwkdPWfg4IJ8M2bO9hRa5EVcLggZwKKSJBvP2Qbm8q6m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Sunting PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p data-nodeid=\"1777\"><em data-nodeid=\"2203\">Implementasi<\/em>: The\u00a0<code data-backticks=\"1\" data-nodeid=\"2197\">Orang<\/code>\u00a0tabel akan memiliki kunci asing\u00a0<code data-backticks=\"1\" data-nodeid=\"2199\">pemberi kerja<\/code>\u00a0mengacu pada\u00a0<code data-backticks=\"1\" data-nodeid=\"2201\">Perusahaan<\/code>.<\/p>\n<h3 data-nodeid=\"1778\">Navigasi<\/h3>\n<p data-nodeid=\"1779\">Tentukan arah travers dengan panah:<\/p>\n<p id=\"akPRCei\"><img alt=\"\" class=\"alignnone size-full wp-image-12652\" decoding=\"async\" height=\"170\" loading=\"lazy\" src=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbd4c87489.png\" width=\"104\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmhKWjIiuiJeNndJCI2qfIYtYvO18AIWPwUbfA2hgwTWfAXae81GwfUIb0Wm00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Sunting PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmhKWjIiuiJeNndJCI2qfIYtYvO18AIWPwUbfA2hgwTWfAXae81GwfUIb0Wm00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1780\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Exercise\r\nclass Chapter\r\nExercise \"0..*\" --&gt; \"1\" Chapter\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmhKWjIiuiJeNndJCI2qfIYtYvO18AIWPwUbfA2hgwTWfAXae81GwfUIb0Wm00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmhKWjIiuiJeNndJCI2qfIYtYvO18AIWPwUbfA2hgwTWfAXae81GwfUIb0Wm00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Sunting PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<ul data-nodeid=\"1781\">\n<li data-nodeid=\"1782\">\n<p data-nodeid=\"1783\">Panah menunjukkan arah travers yang efisien<\/p>\n<\/li>\n<li data-nodeid=\"1784\">\n<p data-nodeid=\"1785\">Pada OODBs: diimplementasikan sebagai pointer hanya dalam satu arah<\/p>\n<\/li>\n<li data-nodeid=\"1786\">\n<p data-nodeid=\"1787\">Pada RDBMS: join bekerja dalam kedua arah tanpa peduli<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"1788\">Jenis Koleksi dengan\u00a0<code data-backticks=\"1\" data-nodeid=\"2210\">{terurut}<br \/>\n<\/code><\/h3>\n<p id=\"eKzRwWF\"><img alt=\"\" class=\"alignnone size-full wp-image-12653\" decoding=\"async\" height=\"187\" loading=\"lazy\" src=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbd8d068d1.png\" width=\"129\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmpaWiA4ajWd5TArABaZEBKtcve18AIePA2hgw2ae6UdfQId1v1Ik5wloYbDIYr9HQNYw7rBmKe9a0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Sunting PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmpaWiA4ajWd5TArABaZEBKtcve18AIePA2hgw2ae6UdfQId1v1Ik5wloYbDIYr9HQNYw7rBmKe9a0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1789\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Chapter\r\nclass Exercise\r\nChapter \"1\" -- \"0..*\" Exercise : {ordered}\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmpaWiA4ajWd5TArABaZEBKtcve18AIePA2hgw2ae6UdfQId1v1Ik5wloYbDIYr9HQNYw7rBmKe9a0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmpaWiA4ajWd5TArABaZEBKtcve18AIePA2hgw2ae6UdfQId1v1Ik5wloYbDIYr9HQNYw7rBmKe9a0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Sunting PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<ul data-nodeid=\"1790\">\n<li data-nodeid=\"1791\">\n<p data-nodeid=\"1792\"><code data-backticks=\"1\" data-nodeid=\"2211\">{terurut}<\/code>: Pertahankan urutan (gunakan daftar, bukan himpunan)<\/p>\n<\/li>\n<li data-nodeid=\"1793\">\n<p data-nodeid=\"1794\">Implementasi di RDBMS: Tambahkan atribut nomor urutan<\/p>\n<\/li>\n<\/ul>\n<pre class=\"lang-sql\" data-nodeid=\"1795\"><code data-language=\"sql\">EXERCISES (\r\n    id PRIMARY KEY,\r\n    chapter_id REFERENCES CHAPTERS,\r\n    sort_no INTEGER,\r\n    UNIQUE (chapter_id, sort_no)\r\n)\r\n<\/code><\/pre>\n<h3 data-nodeid=\"1796\">Pengkualifikasi<\/h3>\n<p data-nodeid=\"1797\">Pengkualifikasi membagi objek yang terkait menggunakan mekanisme seperti kunci:<\/p>\n<p id=\"kMuWSIi\"><img alt=\"\" class=\"alignnone size-full wp-image-12654\" decoding=\"async\" height=\"187\" loading=\"lazy\" src=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbdce6a835.png\" width=\"206\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmpaWiA4ajWd5TArABaZEBKtcve18AIePA2hgwTWfA1dfwG2PCWOALWerDOMbYJcPQPcgHdPr2NhwLWcTUIMewo327rBmKe2K0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edit PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmpaWiA4ajWd5TArABaZEBKtcve18AIePA2hgwTWfA1dfwG2PCWOALWerDOMbYJcPQPcgHdPr2NhwLWcTUIMewo327rBmKe2K0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1798\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Chapter\r\nclass Exercise\r\nChapter \"1\" --&gt; \"0..1\" Exercise : &lt;&lt;qualifier&gt;&gt; no: Integer\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmpaWiA4ajWd5TArABaZEBKtcve18AIePA2hgwTWfA1dfwG2PCWOALWerDOMbYJcPQPcgHdPr2NhwLWcTUIMewo327rBmKe2K0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmpaWiA4ajWd5TArABaZEBKtcve18AIePA2hgwTWfA1dfwG2PCWOALWerDOMbYJcPQPcgHdPr2NhwLWcTUIMewo327rBmKe2K0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edit PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p data-nodeid=\"1799\"><em data-nodeid=\"2220\">Makna<\/em>: Diberikan sebuah Bab dan nomor latihan, paling banyak satu Latihan dikembalikan.<\/p>\n<h3 data-nodeid=\"1800\">Kelas Asosiasi<\/h3>\n<p data-nodeid=\"1801\">Ketika sebuah asosiasi memiliki atribut atau operasi:<\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:JOun2W8n44NxGExmsLBOi7MgBRImzWHXCsWW9fAPo89uzurWN9jX_f_XyMOMLwJUerPBTCouIFMKfCVJIcK9JBzpZbL2JdXf1NWdP75iyvCUEIHXYtCIkbBHwgtL5uTXCkOmO1pxri6mk3a6v_Wat_uxtvXTvR_SXMPAlebl\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edit PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:JK-z2W8n3DuBVOTmet35kTCDEZZx1E4QjDXBfKdXH7ntArZF9NnVmlUJIHIBrYLPCoSKWRFMGAoT7bSgSnJwdNEg6ZF3qng0W4eU3cr-s3r7Ll5mOgKB5MjUrdpjODWxjnjW73lgnk11AU4L5k879HACD-Gcx47ERPt-brkpYJYq3zu0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1802\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Student\r\nclass Exercise\r\nclass Solution {\r\n  date: Date\r\n  points: Integer\r\n}\r\nStudent \"0..*\" -- \"0..*\" Exercise : telah menyelesaikan\r\nSolution .. Student\r\nSolution .. Exercise\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:JK-z2W8n3DuBVOTmet35kTCDEZZx1E4QjDXBfKdXH7ntArZF9NnVmlUJIHIBrYLPCoSKWRFMGAoT7bSgSnJwdNEg6ZF3qng0W4eU3cr-s3r7Ll5mOgKB5MjUrdpjODWxjnjW73lgnk11AU4L5k879HACD-Gcx47ERPt-brkpYJYq3zu0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:JOun2W8n44NxGExmsLBOi7MgBRImzWHXCsWW9fAPo89uzurWN9jX_f_XyMOMLwJUerPBTCouIFMKfCVJIcK9JBzpZbL2JdXf1NWdP75iyvCUEIHXYtCIkbBHwgtL5uTXCkOmO1pxri6mk3a6v_Wat_uxtvXTvR_SXMPAlebl\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edit PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<ul data-nodeid=\"1803\">\n<li data-nodeid=\"1804\">\n<p data-nodeid=\"1805\">Satu\u00a0<code data-backticks=\"1\" data-nodeid=\"2224\">Solusi<\/code>\u00a0objek per pasangan (Siswa, Latihan)<\/p>\n<\/li>\n<li data-nodeid=\"1806\">\n<p data-nodeid=\"1807\">Mewajibkan: siswa yang sama tidak dapat mengumpulkan dua solusi untuk latihan yang sama<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"1808\">Komposisi vs. Agregasi<\/h3>\n<table data-nodeid=\"1810\">\n<thead data-nodeid=\"1811\">\n<tr data-nodeid=\"1812\">\n<th data-nodeid=\"1814\">Fitur<\/th>\n<th data-nodeid=\"1815\">Komposisi (<code data-backticks=\"1\" data-nodeid=\"2230\">*--<\/code>)<\/th>\n<th data-nodeid=\"1816\">Agregasi (<code data-backticks=\"1\" data-nodeid=\"2233\">o--<\/code>)<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"1820\">\n<tr data-nodeid=\"1821\">\n<td data-nodeid=\"1822\">Simbol<\/td>\n<td data-nodeid=\"1823\">Berlian hitam<\/td>\n<td data-nodeid=\"1824\">Berlian putih<\/td>\n<\/tr>\n<tr data-nodeid=\"1825\">\n<td data-nodeid=\"1826\">Hubungan<\/td>\n<td data-nodeid=\"1827\">Bagian-keseluruhan, kepemilikan kuat<\/td>\n<td data-nodeid=\"1828\">Bagian-keseluruhan, referensi lemah<\/td>\n<\/tr>\n<tr data-nodeid=\"1829\">\n<td data-nodeid=\"1830\">Siklus Hidup<\/td>\n<td data-nodeid=\"1831\">Bagian dihapus bersama keseluruhan<\/td>\n<td data-nodeid=\"1832\">Bagian independen<\/td>\n<\/tr>\n<tr data-nodeid=\"1833\">\n<td data-nodeid=\"1834\">Kelipatan<\/td>\n<td data-nodeid=\"1835\">1 atau 0..1 di sisi keseluruhan<\/td>\n<td data-nodeid=\"1836\">Semua<\/td>\n<\/tr>\n<tr data-nodeid=\"1837\">\n<td data-nodeid=\"1838\">Pemetaan RDBMS<\/td>\n<td data-nodeid=\"1839\"><code data-backticks=\"1\" data-nodeid=\"2248\">ON DELETE CASCADE<\/code><\/td>\n<td data-nodeid=\"1840\">Kunci asing standar<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmpaWiA4ajWd5TArABaZEBKtcve18AMhgw2ae6UdfQId191Ii5v_pSWlpYp9BC_3o4qdoiIXtJqujIqnCXIXrIyrA0jWC0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edit PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmpaWiA4ajWd5TArABaZEBKtcve18AMhgw2ae6UdfQId191Ii5x_pSWlpYpE9CXC9yh0eTqujIqnD1wXnIyrA05WC0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1841\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Chapter\r\nclass Exercise\r\nChapter *-- \"0..*\" Exercise : Komposisi\r\nChapter o-- \"0..*\" Exercise : Agregasi\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmpaWiA4ajWd5TArABaZEBKtcve18AMhgw2ae6UdfQId191Ii5x_pSWlpYpE9CXC9yh0eTqujIqnD1wXnIyrA05WC0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmpaWiA4ajWd5TArABaZEBKtcve18AMhgw2ae6UdfQId191Ii5v_pSWlpYp9BC_3o4qdoiIXtJqujIqnCXIXrIyrA0jWC0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edit PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<hr data-nodeid=\"1842\"\/>\n<h2 data-nodeid=\"1843\">\ud83d\udd39 Operasi dan Metode<\/h2>\n<h3 data-nodeid=\"1844\">Sintaks Deklarasi Operasi<\/h3>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:JOzB2i9038RtXTuXonRr0eL2yGLT2k8-fA4Cn1d8P4GflRjJBUWo_-iZNJHKItSf2nAC4Gueb0GjA4nb0R21aUqQ3AMAbeR-s43lZKVMBJXFSdgQOWFx48JHGmkcYUi6pXBGO7BnabXVxQBEtxqf8ytHl0ptFX-UkCgD7tdDKSYk9ihA_ETMpZjpA3UKn2keNYexKAOrzbby13UKHSPsx8Vyuni0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edit PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:JOzB2i9038RtXTuXonRr0eL2yGLT2k8-fA4Cn1d8P4GflRjJBUWo_-iZNJHKItSf2nAC4Gueb0GjA4nb0R21aUqQ3AMAbeR-s43lZKVMBJXFSdgQOWFx48JHGmkcYUi6pXBGO7BnabXVxQBEtxqf8ytHl0ptFX-UkCgD7tdDKSYk9ihA_ETMpZjpA3UKn2keNYexKAOrzbby13UKHSPsx8Vyuni0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1845\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Calculator {\r\n  + getTotal(studID: Integer, inclExtra: Boolean = true): Float {isQuery=true}\r\n  + {static} getInstance(): Calculator\r\n  + {constructor} Calculator(initialValue: Float)\r\n  - recalculate(): void\r\n}\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:JOzB2i9038RtXTuXonRr0eL2yGLT2k8-fA4Cn1d8P4GflRjJBUWo_-iZNJHKItSf2nAC4Gueb0GjA4nb0R21aUqQ3AMAbeR-s43lZKVMBJXFSdgQOWFx48JHGmkcYUi6pXBGO7BnabXVxQBEtxqf8ytHl0ptFX-UkCgD7tdDKSYk9ihA_ETMpZjpA3UKn2keNYexKAOrzbby13UKHSPsx8Vyuni0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:JOzB2i9038RtXTuXonRr0eL2yGLT2k8-fA4Cn1d8P4GflRjJBUWo_-iZNJHKItSf2nAC4Gueb0GjA4nb0R21aUqQ3AMAbeR-s43lZKVMBJXFSdgQOWFx48JHGmkcYUi6pXBGO7BnabXVxQBEtxqf8ytHl0ptFX-UkCgD7tdDKSYk9ihA_ETMpZjpA3UKn2keNYexKAOrzbby13UKHSPsx8Vyuni0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edit PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p data-nodeid=\"1846\"><strong data-nodeid=\"2256\">Spesifikasi Parameter<\/strong>:<\/p>\n<pre data-nodeid=\"1847\"><code>[arah] nama: Tipe [= nilaiDefault]\r\n<\/code><\/pre>\n<ul data-nodeid=\"1848\">\n<li data-nodeid=\"1849\">\n<p data-nodeid=\"1850\">Arah:\u00a0<code data-backticks=\"1\" data-nodeid=\"2258\">masuk<\/code>\u00a0(bawaan),\u00a0<code data-backticks=\"1\" data-nodeid=\"2260\">keluar<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"2262\">masuk\/keluar<\/code><\/p>\n<\/li>\n<li data-nodeid=\"1851\">\n<p data-nodeid=\"1852\">Nilai bawaan memungkinkan parameter opsional<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"1853\">Stereotip Operasi Khusus<\/h3>\n<table data-nodeid=\"1855\">\n<thead data-nodeid=\"1856\">\n<tr data-nodeid=\"1857\">\n<th data-nodeid=\"1859\">Stereotip<\/th>\n<th data-nodeid=\"1860\">Tujuan<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"1863\">\n<tr data-nodeid=\"1864\">\n<td data-nodeid=\"1865\"><code data-backticks=\"1\" data-nodeid=\"2267\">{isQuery=true}<\/code><\/td>\n<td data-nodeid=\"1866\">Menjamin tidak ada modifikasi status<\/td>\n<\/tr>\n<tr data-nodeid=\"1867\">\n<td data-nodeid=\"1868\"><code data-backticks=\"1\" data-nodeid=\"2269\">{konstruktor}<\/code><\/td>\n<td data-nodeid=\"1869\">Menciptakan dan menginisialisasi instance baru<\/td>\n<\/tr>\n<tr data-nodeid=\"1870\">\n<td data-nodeid=\"1871\"><code data-backticks=\"1\" data-nodeid=\"2271\">{statis}<\/code><\/td>\n<td data-nodeid=\"1872\">Operasi tingkat kelas, tanpa implisit<code data-backticks=\"1\" data-nodeid=\"2273\">diri sendiri<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 data-nodeid=\"1873\">Operasi dalam Konteks Basis Data<\/h3>\n<p data-nodeid=\"1874\"><strong data-nodeid=\"2279\">Perpecahan Budaya<\/strong>: OO menekankan enkapsulasi; relasional menekankan akses data langsung.<\/p>\n<p data-nodeid=\"1875\"><strong data-nodeid=\"2284\">Strategi Implementasi<\/strong>:<\/p>\n<table data-nodeid=\"1876\">\n<thead data-nodeid=\"1877\">\n<tr data-nodeid=\"1878\">\n<th data-nodeid=\"1880\">Jenis Operasi<\/th>\n<th data-nodeid=\"1881\">Implementasi RDBMS<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"1884\">\n<tr data-nodeid=\"1885\">\n<td data-nodeid=\"1886\">Akses atribut sederhana<\/td>\n<td data-nodeid=\"1887\">SELECT\/UPDATE langsung<\/td>\n<\/tr>\n<tr data-nodeid=\"1888\">\n<td data-nodeid=\"1889\">Atribut turunan (tanpa parameter)<\/td>\n<td data-nodeid=\"1890\">VIEW Basis Data<\/td>\n<\/tr>\n<tr data-nodeid=\"1891\">\n<td data-nodeid=\"1892\">Atribut turunan (dengan parameter)<\/td>\n<td data-nodeid=\"1893\">Prosedur penyimpanan atau logika aplikasi<\/td>\n<\/tr>\n<tr data-nodeid=\"1894\">\n<td data-nodeid=\"1895\">Penegakan batasan kompleks<\/td>\n<td data-nodeid=\"1896\">Pemicu atau prosedur aplikasi<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr data-nodeid=\"1897\"\/>\n<h2 data-nodeid=\"1898\">\ud83d\udd39 Generalisasi dan Pewarisan<\/h2>\n<h3 data-nodeid=\"1899\">Generalisasi Dasar<\/h3>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8I2qgpi-3yO9BIbDIyqhWaaNvQQd5nVb5l5mGTGesDRgw25N8WaXg7LBpKe1M0000\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edit PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8I2qgpi-3yO9BIbDIyqhWaaNvQQd5nVb5l5mGTGesDRgw25N8WaXg7LBpKe1M0000\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1900\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Person\r\nclass Student\r\nclass Professor\r\nPerson &lt;|-- Student\r\nPerson &lt;|-- Professor\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8I2qgpi-3yO9BIbDIyqhWaaNvQQd5nVb5l5mGTGesDRgw25N8WaXg7LBpKe1M0000\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8I2qgpi-3yO9BIbDIyqhWaaNvQQd5nVb5l5mGTGesDRgw25N8WaXg7LBpKe1M0000\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edit PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3 data-nodeid=\"1901\">Kelas Abstrak dan Operasi<\/h3>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:TSun2iCm50FGtU0xQ4mflK2cTEazb6z33OvT_7-Q8UJkQMWxPfKUGeCQcyrJzewZMgCO95CLTv4w5yFg7N33oCmYiSSZLzgHNH7YgsgoZjCXVzMbnxkcy1NhVtJ3akmP6fSJlNatn18-JtO0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edit PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:TSun2eGm50JGFf0xJEaYNi1Acxt7c0GCnaIIhnRYtLNMTjkPnp1T4MPPvw3Lv08BE1J9dD0RazOeEBG26WmCZCQr-8P4UR8QrYsfUAauF_AjFYssvErF7E_QYTtBQ3FtF_ZKgdFHtZyk\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1902\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nkelas abstrak Account {\r\n  - balance: Float\r\n  + deposit(amount: Float): void\r\n  + {abstrak} withdraw(amount: Float): void\r\n}\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:TSun2eGm50JGFf0xJEaYNi1Acxt7c0GCnaIIhnRYtLNMTjkPnp1T4MPPvw3Lv08BE1J9dD0RazOeEBG26WmCZCQr-8P4UR8QrYsfUAauF_AjFYssvErF7E_QYTtBQ3FtF_ZKgdFHtZyk\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:TSun2iCm50FGtU0xQ4mflK2cTEazb6z33OvT_7-Q8UJkQMWxPfKUGeCQcyrJzewZMgCO95CLTv4w5yFg7N33oCmYiSSZLzgHNH7YgsgoZjCXVzMbnxkcy1NhVtJ3akmP6fSJlNatn18-JtO0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edit PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3 data-nodeid=\"1903\">Kendala Generalisasi<\/h3>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8I2qgpi-3yO9BIbDIyqhWaaNvQQd5nVb5C07_aepK8fWM2ArWKwEh2zEeOALWOrETabcSbP-PLwAZa9oVMv2JMf9QQsU7gXvkCj4waAp6gySXDIy5w3y0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edit PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuUNAJir9B5O8I2qgpi-3yO9BIbDIyqhWaaNvQQd5nVb5C07_aepK8fWM2ArWKwEh2zEeOALWOrDTd9YJcPUka9DQa5Yi0wJoqhCJ2shjx52rm0qdHHEI0mXfSqZDIm5w5000\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1904\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nkelas Person\r\nkelas Student\r\nkelas Professor\r\nkelas OtherPerson\r\nPerson &lt;|-- Student : &lt;&lt;{saling lepas, lengkap}&gt;&gt;\r\nPerson &lt;|-- Professor : &lt;&lt;{saling lepas, lengkap}&gt;&gt;\r\nPerson &lt;|-- OtherPerson : &lt;&lt;{saling lepas, lengkap}&gt;&gt;\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuUNAJir9B5O8I2qgpi-3yO9BIbDIyqhWaaNvQQd5nVb5C07_aepK8fWM2ArWKwEh2zEeOALWOrDTd9YJcPUka9DQa5Yi0wJoqhCJ2shjx52rm0qdHHEI0mXfSqZDIm5w5000\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8I2qgpi-3yO9BIbDIyqhWaaNvQQd5nVb5C07_aepK8fWM2ArWKwEh2zEeOALWOrETabcSbP-PLwAZa9oVMv2JMf9QQsU7gXvkCj4waAp6gySXDIy5w3y0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edit PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3 data-nodeid=\"1905\">Klasifikasi Ganda \/ Diskriminators<\/h3>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmpIt8oQzCJONnWqiIqz9W7BV4vDASaaeOryFN7yRqoyy3ys3Q5MngT7KXcXMi56niiZFpKkpiqEMXvk5H0JGKB9kPLrnQb9YNd8gf168rfYg7rBmKeCS0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edit PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuUNAJir9B5PmpIt8oQzCJONnWqiIqz9W7BV4vDASaaeOryFN7yRqoyy3ys3Q5MngT7KXcXMi56niibBpCeljxD0LG0t4fmHeB5WwiRYqA36lE1DJ1SHk34KEgNafG8y10000\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1906\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nkelas Employee\r\nkelas Staff\r\nkelas Faculty\r\nkelas HMO\r\nkelas NonHMO\r\nEmployee &lt;|-- Staff : &lt;&lt;jenis&gt;&gt;\r\nEmployee &lt;|-- Faculty : &lt;&lt;jenis&gt;&gt;\r\nEmployee &lt;|-- HMO : &lt;&lt;asuransi&gt;&gt;\r\nEmployee &lt;|-- NonHMO : &lt;&lt;asuransi&gt;&gt;\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuUNAJir9B5PmpIt8oQzCJONnWqiIqz9W7BV4vDASaaeOryFN7yRqoyy3ys3Q5MngT7KXcXMi56niibBpCeljxD0LG0t4fmHeB5WwiRYqA36lE1DJ1SHk34KEgNafG8y10000\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmpIt8oQzCJONnWqiIqz9W7BV4vDASaaeOryFN7yRqoyy3ys3Q5MngT7KXcXMi56niiZFpKkpiqEMXvk5H0JGKB9kPLrnQb9YNd8gf168rfYg7rBmKeCS0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edit PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<ul data-nodeid=\"1907\">\n<li data-nodeid=\"1908\">\n<p data-nodeid=\"1909\">Diskriminators mengelompokkan spesialisasi yang saling eksklusif<\/p>\n<\/li>\n<li data-nodeid=\"1910\">\n<p data-nodeid=\"1911\">Objek dapat memiliki satu nilai per dimensi diskriminator<\/p>\n<\/li>\n<\/ul>\n<hr data-nodeid=\"1912\"\/>\n<h2 data-nodeid=\"1913\">\ud83d\udd39 Mekanisme Ekstensi<\/h2>\n<p data-nodeid=\"1914\">UML menyediakan tiga mekanisme ekstensibilitas:<\/p>\n<h3 data-nodeid=\"1915\">1. Stereotip<code data-backticks=\"1\" data-nodeid=\"2305\">&lt;&lt; &gt;&gt;<\/code><\/h3>\n<p data-nodeid=\"1916\">Perluas semantik UML dengan membuat \u201csubjenis\u201d baru dari elemen metamodel.<\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmBYqkoSzDBLAmiKdDAyaigRIpKwZcvL9Gq5N8JB5IyCmhIKrFBO88v2Ncfbef19SKPUQbytBLmepmJIp9yCbCAaeigWIQKbgIcODaZBP2SMQUHeMLWbjEVcA99fI6o2Jd5sEH0Phha9gN0dGZ0000\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edit PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:RSv12i8m40NGVI1tcAKYNY2KKX04mQuymMY7EfXC83C1HRoxWIguSFNXVtZyGGsBrHIzkr54XLrLouaAT1s9iQ7sFJoz0zW2Jm4EOZHJMGh1H05ELbXcxrvVOqIx7lbSi3mQKutZhxC1PLdT0-nZHbj_SbakMVyi3Hv8flRo3G00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1917\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nkelas Customer &lt;&lt;entitas&gt;&gt; {\r\n  - id: Integer\r\n  - name: String\r\n}\r\nkelas MathLibrary &lt;&lt;utilitas&gt;&gt; {\r\n  + sin(x: Float): Float\r\n  + cos(x: Float): Float\r\n}\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:RSv12i8m40NGVI1tcAKYNY2KKX04mQuymMY7EfXC83C1HRoxWIguSFNXVtZyGGsBrHIzkr54XLrLouaAT1s9iQ7sFJoz0zW2Jm4EOZHJMGh1H05ELbXcxrvVOqIx7lbSi3mQKutZhxC1PLdT0-nZHbj_SbakMVyi3Hv8flRo3G00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmBYqkoSzDBLAmiKdDAyaigRIpKwZcvL9Gq5N8JB5IyCmhIKrFBO88v2Ncfbef19SKPUQbytBLmepmJIp9yCbCAaeigWIQKbgIcODaZBP2SMQUHeMLWbjEVcA99fI6o2Jd5sEH0Phha9gN0dGZ0000\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edit PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3 data-nodeid=\"1918\">2. Nilai Bertanda<code data-backticks=\"1\" data-nodeid=\"2312\">{kunci=nilai}<\/code><\/h3>\n<p data-nodeid=\"1919\">Tambahkan properti khusus ke elemen model.<\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8BYbDISqhKQZcvL9Gg4uiBSd8Bx8jJj9HA4ijAixCpxCrr3FGKIW0SOfBKlEIKstXx99Qa1vTXSmKAmNFl9BKzDGYNYwWc4DgNWhG1W00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Sunting PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8BYbDISqhKQZcvL9Gg4uiBSd8Bx8jJj9HA4ijAixCpxCrr3FGKIW0SOfBKlEIKstXx99Qa1vTXSmKAmNFl9BKzDGYNYwWc4DgNWhG1W00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1920\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Student {\r\n  {author=sb, version=1.0, persistence=persistent}\r\n  - id: Integer\r\n}\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8BYbDISqhKQZcvL9Gg4uiBSd8Bx8jJj9HA4ijAixCpxCrr3FGKIW0SOfBKlEIKstXx99Qa1vTXSmKAmNFl9BKzDGYNYwWc4DgNWhG1W00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbO8BYbDISqhKQZcvL9Gg4uiBSd8Bx8jJj9HA4ijAixCpxCrr3FGKIW0SOfBKlEIKstXx99Qa1vTXSmKAmNFl9BKzDGYNYwWc4DgNWhG1W00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Sunting PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3 data-nodeid=\"1921\">3. Kendala\u00a0<code data-backticks=\"1\" data-nodeid=\"2315\">{...}<\/code><\/h3>\n<p data-nodeid=\"1922\">Tambahkan pembatasan semantik menggunakan teks bebas, OCL, atau singkatan yang telah ditentukan sebelumnya.<\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmhKWjIiuiJbMevkLIKD1LoCktKl3CAqbDJos221JaP-QL5CC55QhB4dDAKnNiR1KCQa4ggY4A56ni5N8JAmB07A0443cavgK0RG80\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Sunting PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmhKWjIiuiJbMevkLIKD1LoCktKl3CAqbDJos221JaP-QL5CC55QhB4dDAKnNiR1KCQa4ggY4A56ni5N8JAmB07A0443cavgK0RG80\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"1923\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Exercise {\r\n  - no: Integer\r\n  - points: Integer {value &gt;= 0}\r\n  {points &lt;= maxPoints}\r\n}\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmhKWjIiuiJbMevkLIKD1LoCktKl3CAqbDJos221JaP-QL5CC55QhB4dDAKnNiR1KCQa4ggY4A56ni5N8JAmB07A0443cavgK0RG80\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbPmhKWjIiuiJbMevkLIKD1LoCktKl3CAqbDJos221JaP-QL5CC55QhB4dDAKnNiR1KCQa4ggY4A56ni5N8JAmB07A0443cavgK0RG80\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Sunting PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<hr data-nodeid=\"1924\"\/>\n<h2 data-nodeid=\"1925\">\ud83d\udd39 UML untuk Desain Basis Data: Pertimbangan Utama<\/h2>\n<h3 data-nodeid=\"1926\">Menerjemahkan UML ke Skema Relasional<\/h3>\n<table data-nodeid=\"1928\">\n<thead data-nodeid=\"1929\">\n<tr data-nodeid=\"1930\">\n<th data-nodeid=\"1932\">Konstruksi UML<\/th>\n<th data-nodeid=\"1933\">Implementasi Relasional<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"1936\">\n<tr data-nodeid=\"1937\">\n<td data-nodeid=\"1938\">Kelas<\/td>\n<td data-nodeid=\"1939\">Tabel<\/td>\n<\/tr>\n<tr data-nodeid=\"1940\">\n<td data-nodeid=\"1941\">Atribut<\/td>\n<td data-nodeid=\"1942\">Kolom<\/td>\n<\/tr>\n<tr data-nodeid=\"1943\">\n<td data-nodeid=\"1944\">Kunci utama\u00a0<code data-backticks=\"1\" data-nodeid=\"2326\">{pk}<\/code><\/td>\n<td data-nodeid=\"1945\">Kendala PRIMARY KEY<\/td>\n<\/tr>\n<tr data-nodeid=\"1946\">\n<td data-nodeid=\"1947\">Asosiasi (1:*)<\/td>\n<td data-nodeid=\"1948\">Kunci asing di sisi &#8220;banyak&#8221;<\/td>\n<\/tr>\n<tr data-nodeid=\"1949\">\n<td data-nodeid=\"1950\">Asosiasi (<em data-nodeid=\"2341\">:<\/em>)<\/td>\n<td data-nodeid=\"1951\">Tabel persilangan\/jembatan<\/td>\n<\/tr>\n<tr data-nodeid=\"1952\">\n<td data-nodeid=\"1953\">Komposisi<\/td>\n<td data-nodeid=\"1954\">Kunci asing +\u00a0<code data-backticks=\"1\" data-nodeid=\"2345\">ON DELETE CASCADE<\/code><\/td>\n<\/tr>\n<tr data-nodeid=\"1955\">\n<td data-nodeid=\"1956\">Kelas asosiasi<\/td>\n<td data-nodeid=\"1957\">Tabel dengan FK komposit + atribut<\/td>\n<\/tr>\n<tr data-nodeid=\"1958\">\n<td data-nodeid=\"1959\">Generalisasi<\/td>\n<td data-nodeid=\"1960\">Tabel terpisah (dengan FK) atau tabel tunggal dengan penanda tipe<\/td>\n<\/tr>\n<tr data-nodeid=\"1961\">\n<td data-nodeid=\"1962\"><code data-backticks=\"1\" data-nodeid=\"2350\">{terurut}<\/code>\u00a0asosiasi<\/td>\n<td data-nodeid=\"1963\">Tambahkan kolom urutan + batasan unik<\/td>\n<\/tr>\n<tr data-nodeid=\"1964\">\n<td data-nodeid=\"1965\">Pengkualifikasi<\/td>\n<td data-nodeid=\"1966\">Bagian dari kunci komposit atau kolom yang diindeks<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 data-nodeid=\"1967\">Perbedaan Kritis: OO vs. Relasional<\/h3>\n<table data-nodeid=\"1969\">\n<thead data-nodeid=\"1970\">\n<tr data-nodeid=\"1971\">\n<th data-nodeid=\"1973\">Aspek<\/th>\n<th data-nodeid=\"1974\">Berbasis Objek<\/th>\n<th data-nodeid=\"1975\">Relasional<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"1979\">\n<tr data-nodeid=\"1980\">\n<td data-nodeid=\"1981\"><strong data-nodeid=\"2362\">Identitas<\/strong><\/td>\n<td data-nodeid=\"1982\">Referensi objek (surrogat)<\/td>\n<td data-nodeid=\"1983\">Kunci utama (bisnis atau surrogat)<\/td>\n<\/tr>\n<tr data-nodeid=\"1984\">\n<td data-nodeid=\"1985\"><strong data-nodeid=\"2368\">Operasi<\/strong><\/td>\n<td data-nodeid=\"1986\">Inti dalam desain, terenkapsulasi<\/td>\n<td data-nodeid=\"1987\">Eksternal (SQL, prosedur)<\/td>\n<\/tr>\n<tr data-nodeid=\"1988\">\n<td data-nodeid=\"1989\"><strong data-nodeid=\"2374\">Enkapsulasi<\/strong><\/td>\n<td data-nodeid=\"1990\">Atribut pribadi, antarmuka publik<\/td>\n<td data-nodeid=\"1991\">Akses tabel langsung secara default<\/td>\n<\/tr>\n<tr data-nodeid=\"1992\">\n<td data-nodeid=\"1993\"><strong data-nodeid=\"2380\">Pewarisan<\/strong><\/td>\n<td data-nodeid=\"1994\">Dukungan bahasa asli<\/td>\n<td data-nodeid=\"1995\">Strategi pemetaan yang kompleks<\/td>\n<\/tr>\n<tr data-nodeid=\"1996\">\n<td data-nodeid=\"1997\"><strong data-nodeid=\"2386\">Hubungan<\/strong><\/td>\n<td data-nodeid=\"1998\">Penunjuk\/referensi<\/td>\n<td data-nodeid=\"1999\">Kunci asing dan join<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 data-nodeid=\"2000\">Rekomendasi Praktis untuk Desainer DB<\/h3>\n<ol data-nodeid=\"2001\">\n<li data-nodeid=\"2002\">\n<p data-nodeid=\"2003\"><strong data-nodeid=\"2398\">Modelkan kunci secara eksplisit<\/strong>: Gunakan\u00a0<code data-backticks=\"1\" data-nodeid=\"2394\">{pk}<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"2396\">{ak1}<\/code>\u00a0stereotip karena UML tidak mendukung kunci secara bawaan<\/p>\n<\/li>\n<li data-nodeid=\"2004\">\n<p data-nodeid=\"2005\"><strong data-nodeid=\"2405\">Tandai persistensi<\/strong>: Gunakan\u00a0<code data-backticks=\"1\" data-nodeid=\"2403\">{persistent}<\/code>\u00a0nilai bertanda untuk membedakan kelas basis data dari kelas aplikasi sementara<\/p>\n<\/li>\n<li data-nodeid=\"2006\">\n<p data-nodeid=\"2007\"><strong data-nodeid=\"2410\">Sederhanakan operasi<\/strong>: Peta operasi kueri ke tampilan; operasi kompleks ke prosedur penyimpanan<\/p>\n<\/li>\n<li data-nodeid=\"2008\">\n<p data-nodeid=\"2009\"><strong data-nodeid=\"2415\">Kelola pewarisan dengan hati-hati<\/strong>: Pilih strategi pemetaan berdasarkan pola kueri<\/p>\n<\/li>\n<li data-nodeid=\"2010\">\n<p data-nodeid=\"2011\"><strong data-nodeid=\"2420\">Dokumentasikan batasan<\/strong>: Gunakan OCL atau batasan teks jelas untuk aturan bisnis<\/p>\n<\/li>\n<li data-nodeid=\"2012\">\n<p data-nodeid=\"2013\"><strong data-nodeid=\"2425\">Gunakan kelas asosiasi secara bijak<\/strong>: Hanya ketika hubungan memiliki atribut yang signifikan<\/p>\n<\/li>\n<\/ol>\n<hr data-nodeid=\"2014\"\/>\n<h2 data-nodeid=\"2015\">\ud83c\udfaf Lembar Referensi Cepat<\/h2>\n<h3 data-nodeid=\"2016\">Ringkasan Notasi Diagram Kelas PlantUML<\/h3>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbQmiIakIIrApI-fB4YrirDm1Wdw9UQcAbJpSYaeL9SafgUdfjYM9UQKfjQ2HAArzNNrbVNhOXNoWAgYSqjpIcAj54A0kXMYRHM0wc8LgWkAyWkAiQZMA4WiIimjrhHI24ejGIW38eVKl1IWem00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edit PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbQmiIakIIrApI_9BB2pKt06YVabvgOgLFDoAIXKboIcfwUcsEPbvYHcre94ehNrTVMLzUjY5VA0gg9pItDAOgqKGZ8BKXMYRHNA4dDY5QeBYl8BYh6erYX8B4hCBTQqKWXABK4e0oA7rBmKe9i0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"2017\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass &lt;&lt;stereotip&gt;&gt; ClassName {\r\n  {tagged=nilai}\r\n  [+\/-\/#\/~] name[mult]: Tipe [= val] {props}\r\n  [+\/-\/#\/~] name(params): Ret {props}\r\n}\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbQmiIakIIrApI_9BB2pKt06YVabvgOgLFDoAIXKboIcfwUcsEPbvYHcre94ehNrTVMLzUjY5VA0gg9pItDAOgqKGZ8BKXMYRHNA4dDY5QeBYl8BYh6erYX8B4hCBTQqKWXABK4e0oA7rBmKe9i0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:SoWkIImgAStDuULApaaiBbQmiIakIIrApI-fB4YrirDm1Wdw9UQcAbJpSYaeL9SafgUdfjYM9UQKfjQ2HAArzNNrbVNhOXNoWAgYSqjpIcAj54A0kXMYRHM0wc8LgWkAyWkAiQZMA4WiIimjrhHI24ejGIW38eVKl1IWem00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edit PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3 data-nodeid=\"2018\">Notasi Asosiasi<\/h3>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:LSvD2e0W40NWVT0T1ZT1u0LQXDQ-Eqmb8gWJZNN-x8UetS3x7cyK9rpJ5dnPz1wPDOYm-QG5I7cVdO0hwQ01pKoJm-Ge3XZCswapVX1Kq5DOYDsfNa4_eQrTZSMVaBBzY05tPt7qUKEPEES73m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edit PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:LOv12e0W50NtGNVuk0a2Bz0Yije5tU51KePczEt-IKNOxi7Cm6iuu0YditdMMJ0h4kwqGGcIyfcje9kqLD481yMU3TXyGHdDrw221k_sA2JS_xYQ3psdkPHrWdli2DIRLLkiMABMw6sA_ou0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"2019\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nClassA \"multA\" -- \"multB\" ClassB : NamaAsosiasi\r\nClassA *-- ClassB  ' Komposisi\r\nClassA o-- ClassB  ' Agregasi\r\nClassA --&gt; ClassB  ' Dapat Dijelajahi\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com#plantuml:LOv12e0W50NtGNVuk0a2Bz0Yije5tU51KePczEt-IKNOxi7Cm6iuu0YditdMMJ0h4kwqGGcIyfcje9kqLD481yMU3TXyGHdDrw221k_sA2JS_xYQ3psdkPHrWdli2DIRLLkiMABMw6sA_ou0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com#plantuml:LSvD2e0W40NWVT0T1ZT1u0LQXDQ-Eqmb8gWJZNN-x8UetS3x7cyK9rpJ5dnPz1wPDOYm-QG5I7cVdO0hwQ01pKoJm-Ge3XZCswapVX1Kq5DOYDsfNa4_eQrTZSMVaBBzY05tPt7qUKEPEES73m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edit PlantUML di VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3 data-nodeid=\"2020\">Simbol Visibilitas<\/h3>\n<ul data-nodeid=\"2021\">\n<li data-nodeid=\"2022\">\n<p data-nodeid=\"2023\"><code data-backticks=\"1\" data-nodeid=\"2430\">+<\/code>\u00a0Publik<\/p>\n<\/li>\n<li data-nodeid=\"2024\">\n<p data-nodeid=\"2025\"><code data-backticks=\"1\" data-nodeid=\"2432\">-<\/code>\u00a0Pribadi<\/p>\n<\/li>\n<li data-nodeid=\"2026\">\n<p data-nodeid=\"2027\"><code data-backticks=\"1\" data-nodeid=\"2434\">#<\/code>\u00a0Dilindungi<\/p>\n<\/li>\n<li data-nodeid=\"2028\">\n<p data-nodeid=\"2029\"><code data-backticks=\"1\" data-nodeid=\"2436\">~<\/code>\u00a0Paket<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"2030\">Properti &amp; Kendala Umum<\/h3>\n<ul data-nodeid=\"2031\">\n<li data-nodeid=\"2032\">\n<p data-nodeid=\"2033\"><code data-backticks=\"1\" data-nodeid=\"2441\">{statis}<\/code>\u00a0\/\u00a0<code data-backticks=\"1\" data-nodeid=\"2443\">{isQuery=true}<\/code>\u00a0\/\u00a0<code data-backticks=\"1\" data-nodeid=\"2445\">{abstrak}<\/code><\/p>\n<\/li>\n<li data-nodeid=\"2034\">\n<p data-nodeid=\"2035\"><code data-backticks=\"1\" data-nodeid=\"2446\">{nilai &gt;= 0}<\/code>\u00a0\/\u00a0<code data-backticks=\"1\" data-nodeid=\"2448\">{xor}<\/code>\u00a0\/\u00a0<code data-backticks=\"1\" data-nodeid=\"2450\">{terurut}<\/code>\u00a0\/\u00a0<code data-backticks=\"1\" data-nodeid=\"2452\">{pk}<\/code><\/p>\n<\/li>\n<\/ul>\n<hr data-nodeid=\"2036\"\/>\n<blockquote data-nodeid=\"2037\">\n<p data-nodeid=\"2038\">\ud83d\udca1\u00a0<strong data-nodeid=\"2462\">Pemikiran Akhir<\/strong>: Diagram kelas UML sangat kuat untuk pemodelan konseptual, tetapi ingat bahwa diagram ini dirancang terutama untuk rekayasa perangkat lunak. Saat menggunakan UML untuk desain basis data, bersiaplah untuk memperluas notasi (dengan stereotip, nilai bertanda, kendala) untuk menangkap konsep relasional seperti kunci, normalisasi, dan kendala deklaratif yang tidak bawaan dalam fondasi OO UML.<\/p>\n<\/blockquote>\n<p class=\"\" data-nodeid=\"2039\"><em data-nodeid=\"2470\">Panduan disusun dari \u201cBagian 6: Diagram Kelas UML\u201d oleh Stefan Brass, Universit\u00e4t Halle, 2003. Semua diagram diformat dalam sintaks PlantUML untuk kompatibilitas dengan alat modern.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\ud83d\udca1\u00a0Catatan: Semua diagram disediakan dalam formatPlantUML format. Anda dapat merender mereka secara instan menggunakanVisual Paradigm Diagram sebagai Kode. \ud83d\udd39 Pengantar<\/p>\n","protected":false},"author":3482,"featured_media":11075,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"","fifu_image_url":"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbb7554f19.png","fifu_image_alt":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-11074","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Panduan Lengkap tentang Diagram Kelas UML (Diagram sebagai Kode) - ArchiMetric Indonesian<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.archimetric.com\/id\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/\" \/>\n<meta property=\"og:locale\" content=\"id_ID\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Panduan Lengkap tentang Diagram Kelas UML (Diagram sebagai Kode) - ArchiMetric Indonesian\" \/>\n<meta property=\"og:description\" content=\"\ud83d\udca1\u00a0Catatan: Semua diagram disediakan dalam formatPlantUML format. Anda dapat merender mereka secara instan menggunakanVisual Paradigm Diagram sebagai Kode. \ud83d\udd39 Pengantar\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.archimetric.com\/id\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/\" \/>\n<meta property=\"og:site_name\" content=\"ArchiMetric Indonesian\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-03T05:38:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbb7554f19.png\" \/><meta property=\"og:image\" content=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbb7554f19.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1208\" \/>\n\t<meta property=\"og:image:height\" content=\"658\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"curtis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbb7554f19.png\" \/>\n<meta name=\"twitter:label1\" content=\"Ditulis oleh\" \/>\n\t<meta name=\"twitter:data1\" content=\"curtis\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimasi waktu membaca\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 menit\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.archimetric.com\/id\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.archimetric.com\/id\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/\"},\"author\":{\"name\":\"curtis\",\"@id\":\"https:\/\/www.archimetric.com\/id\/#\/schema\/person\/71e6318556cda44457a5b68e284bedba\"},\"headline\":\"Panduan Lengkap tentang Diagram Kelas UML (Diagram sebagai Kode)\",\"datePublished\":\"2026-06-03T05:38:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.archimetric.com\/id\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/\"},\"wordCount\":1078,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.archimetric.com\/id\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.archimetric.com\/id\/wp-content\/uploads\/sites\/15\/2026\/06\/img_6a1fbb7554f19.png\",\"articleSection\":[\"Uncategorized\"],\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.archimetric.com\/id\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.archimetric.com\/id\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/\",\"url\":\"https:\/\/www.archimetric.com\/id\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/\",\"name\":\"Panduan Lengkap tentang Diagram Kelas UML (Diagram sebagai Kode) - ArchiMetric Indonesian\",\"isPartOf\":{\"@id\":\"https:\/\/www.archimetric.com\/id\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.archimetric.com\/id\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.archimetric.com\/id\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.archimetric.com\/id\/wp-content\/uploads\/sites\/15\/2026\/06\/img_6a1fbb7554f19.png\",\"datePublished\":\"2026-06-03T05:38:37+00:00\",\"author\":{\"@id\":\"https:\/\/www.archimetric.com\/id\/#\/schema\/person\/71e6318556cda44457a5b68e284bedba\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.archimetric.com\/id\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#breadcrumb\"},\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.archimetric.com\/id\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\/\/www.archimetric.com\/id\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#primaryimage\",\"url\":\"https:\/\/www.archimetric.com\/id\/wp-content\/uploads\/sites\/15\/2026\/06\/img_6a1fbb7554f19.png\",\"contentUrl\":\"https:\/\/www.archimetric.com\/id\/wp-content\/uploads\/sites\/15\/2026\/06\/img_6a1fbb7554f19.png\",\"width\":1208,\"height\":658},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.archimetric.com\/id\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.archimetric.com\/id\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Panduan Lengkap tentang Diagram Kelas UML (Diagram sebagai Kode)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.archimetric.com\/id\/#website\",\"url\":\"https:\/\/www.archimetric.com\/id\/\",\"name\":\"ArchiMetric Indonesian\",\"description\":\"EA, Dev Ops, Scrum, Agile and More\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.archimetric.com\/id\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"id\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.archimetric.com\/id\/#\/schema\/person\/71e6318556cda44457a5b68e284bedba\",\"name\":\"curtis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\/\/www.archimetric.com\/id\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6910084565fcc601ec03c6693bb8ea480c1e52ccaa0efb299eb038bb6a1edc87?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6910084565fcc601ec03c6693bb8ea480c1e52ccaa0efb299eb038bb6a1edc87?s=96&d=mm&r=g\",\"caption\":\"curtis\"},\"url\":\"https:\/\/www.archimetric.com\/id\/author\/curtis\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Panduan Lengkap tentang Diagram Kelas UML (Diagram sebagai Kode) - ArchiMetric Indonesian","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.archimetric.com\/id\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/","og_locale":"id_ID","og_type":"article","og_title":"Panduan Lengkap tentang Diagram Kelas UML (Diagram sebagai Kode) - ArchiMetric Indonesian","og_description":"\ud83d\udca1\u00a0Catatan: Semua diagram disediakan dalam formatPlantUML format. Anda dapat merender mereka secara instan menggunakanVisual Paradigm Diagram sebagai Kode. \ud83d\udd39 Pengantar","og_url":"https:\/\/www.archimetric.com\/id\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/","og_site_name":"ArchiMetric Indonesian","article_published_time":"2026-06-03T05:38:37+00:00","og_image":[{"url":"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbb7554f19.png","type":"","width":"","height":""},{"width":1208,"height":658,"url":"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbb7554f19.png","type":"image\/png"}],"author":"curtis","twitter_card":"summary_large_image","twitter_image":"https:\/\/www.archimetric.com\/wp-content\/uploads\/2026\/06\/img_6a1fbb7554f19.png","twitter_misc":{"Ditulis oleh":"curtis","Estimasi waktu membaca":"5 menit"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.archimetric.com\/id\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#article","isPartOf":{"@id":"https:\/\/www.archimetric.com\/id\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/"},"author":{"name":"curtis","@id":"https:\/\/www.archimetric.com\/id\/#\/schema\/person\/71e6318556cda44457a5b68e284bedba"},"headline":"Panduan Lengkap tentang Diagram Kelas UML (Diagram sebagai Kode)","datePublished":"2026-06-03T05:38:37+00:00","mainEntityOfPage":{"@id":"https:\/\/www.archimetric.com\/id\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/"},"wordCount":1078,"commentCount":0,"image":{"@id":"https:\/\/www.archimetric.com\/id\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#primaryimage"},"thumbnailUrl":"https:\/\/www.archimetric.com\/id\/wp-content\/uploads\/sites\/15\/2026\/06\/img_6a1fbb7554f19.png","articleSection":["Uncategorized"],"inLanguage":"id","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.archimetric.com\/id\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.archimetric.com\/id\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/","url":"https:\/\/www.archimetric.com\/id\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/","name":"Panduan Lengkap tentang Diagram Kelas UML (Diagram sebagai Kode) - ArchiMetric Indonesian","isPartOf":{"@id":"https:\/\/www.archimetric.com\/id\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.archimetric.com\/id\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#primaryimage"},"image":{"@id":"https:\/\/www.archimetric.com\/id\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#primaryimage"},"thumbnailUrl":"https:\/\/www.archimetric.com\/id\/wp-content\/uploads\/sites\/15\/2026\/06\/img_6a1fbb7554f19.png","datePublished":"2026-06-03T05:38:37+00:00","author":{"@id":"https:\/\/www.archimetric.com\/id\/#\/schema\/person\/71e6318556cda44457a5b68e284bedba"},"breadcrumb":{"@id":"https:\/\/www.archimetric.com\/id\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#breadcrumb"},"inLanguage":"id","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.archimetric.com\/id\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/"]}]},{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.archimetric.com\/id\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#primaryimage","url":"https:\/\/www.archimetric.com\/id\/wp-content\/uploads\/sites\/15\/2026\/06\/img_6a1fbb7554f19.png","contentUrl":"https:\/\/www.archimetric.com\/id\/wp-content\/uploads\/sites\/15\/2026\/06\/img_6a1fbb7554f19.png","width":1208,"height":658},{"@type":"BreadcrumbList","@id":"https:\/\/www.archimetric.com\/id\/comprehensive-guide-to-uml-class-diagrams-diagram-as-code\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.archimetric.com\/id\/"},{"@type":"ListItem","position":2,"name":"Panduan Lengkap tentang Diagram Kelas UML (Diagram sebagai Kode)"}]},{"@type":"WebSite","@id":"https:\/\/www.archimetric.com\/id\/#website","url":"https:\/\/www.archimetric.com\/id\/","name":"ArchiMetric Indonesian","description":"EA, Dev Ops, Scrum, Agile and More","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.archimetric.com\/id\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"id"},{"@type":"Person","@id":"https:\/\/www.archimetric.com\/id\/#\/schema\/person\/71e6318556cda44457a5b68e284bedba","name":"curtis","image":{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.archimetric.com\/id\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6910084565fcc601ec03c6693bb8ea480c1e52ccaa0efb299eb038bb6a1edc87?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6910084565fcc601ec03c6693bb8ea480c1e52ccaa0efb299eb038bb6a1edc87?s=96&d=mm&r=g","caption":"curtis"},"url":"https:\/\/www.archimetric.com\/id\/author\/curtis\/"}]}},"_links":{"self":[{"href":"https:\/\/www.archimetric.com\/id\/wp-json\/wp\/v2\/posts\/11074","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.archimetric.com\/id\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.archimetric.com\/id\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.archimetric.com\/id\/wp-json\/wp\/v2\/users\/3482"}],"replies":[{"embeddable":true,"href":"https:\/\/www.archimetric.com\/id\/wp-json\/wp\/v2\/comments?post=11074"}],"version-history":[{"count":0,"href":"https:\/\/www.archimetric.com\/id\/wp-json\/wp\/v2\/posts\/11074\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.archimetric.com\/id\/wp-json\/wp\/v2\/media\/11075"}],"wp:attachment":[{"href":"https:\/\/www.archimetric.com\/id\/wp-json\/wp\/v2\/media?parent=11074"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.archimetric.com\/id\/wp-json\/wp\/v2\/categories?post=11074"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.archimetric.com\/id\/wp-json\/wp\/v2\/tags?post=11074"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}