{"id":11061,"date":"2026-02-21T11:56:23","date_gmt":"2026-02-21T03:56:23","guid":{"rendered":"https:\/\/www.cybermedian.com\/id\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/"},"modified":"2026-02-21T11:56:23","modified_gmt":"2026-02-21T03:56:23","slug":"mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study","status":"publish","type":"post","link":"https:\/\/www.cybermedian.com\/id\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/","title":{"rendered":"Menguasai Desain Berorientasi Objek dengan Kartu CRC: Studi Kasus yang Ramah Pemula"},"content":{"rendered":"<blockquote data-nodeid=\"3344\">\n<p data-nodeid=\"3345\"><em data-nodeid=\"3691\">\u201cCara terbaik untuk belajar desain berorientasi objek bukan dengan menghafal pola \u2014 melainkan dengan memainkan peran-peran tersebut.\u201d<\/em><\/p>\n<\/blockquote>\n<p data-nodeid=\"3346\">Dalam artikel ini, kita akan membahas secara bertahap<strong data-nodeid=\"3703\">pengantar langkah demi langkah tentang kartu CRC<\/strong>\u00a0(Kelas\u2013Tanggung Jawab\u2013Kolaborator) menggunakan contoh dunia nyata yang ramah pemula: sebuah<strong data-nodeid=\"3704\">Sistem Peminjaman Buku Perpustakaan<\/strong>. Baik Anda baru memulai perjalanan Anda ke dunia desain perangkat lunak atau memimpin lokakarya tim, kartu CRC menawarkan cara sederhana, kuat, dan kolaboratif untuk memodelkan sistem berorientasi objek.<\/p>\n<hr data-nodeid=\"3347\"\/>\n<h2 data-nodeid=\"3348\">\ud83c\udfaf Apa Itu Kartu CRC?<\/h2>\n<p data-nodeid=\"3349\"><strong data-nodeid=\"3714\">Kartu CRC<\/strong>\u00a0adalah teknik pemodelan ringan, fisik (atau digital) yang digunakan dalam desain berorientasi objek. Setiap kartu mewakili sebuah<strong data-nodeid=\"3715\">kelas<\/strong>\u00a0dan berisi tiga elemen utama:<\/p>\n<table data-nodeid=\"3351\">\n<thead data-nodeid=\"3352\">\n<tr data-nodeid=\"3353\">\n<th data-nodeid=\"3355\">Bidang<\/th>\n<th data-nodeid=\"3356\">Deskripsi<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"3359\">\n<tr data-nodeid=\"3360\">\n<td data-nodeid=\"3361\"><strong data-nodeid=\"3721\">Kelas<\/strong><\/td>\n<td data-nodeid=\"3362\">Nama kelas (misalnya\u00a0<code data-backticks=\"1\" data-nodeid=\"3723\">Buku<\/code>)<\/td>\n<\/tr>\n<tr data-nodeid=\"3363\">\n<td data-nodeid=\"3364\"><strong data-nodeid=\"3728\">Tanggung Jawab<\/strong><\/td>\n<td data-nodeid=\"3365\">Apa yang kelas tersebut<strong data-nodeid=\"3737\">ketahui<\/strong>\u00a0atau\u00a0<strong data-nodeid=\"3738\">lakukan<\/strong><\/td>\n<\/tr>\n<tr data-nodeid=\"3366\">\n<td data-nodeid=\"3367\"><strong data-nodeid=\"3742\">Kolaborator<\/strong><\/td>\n<td data-nodeid=\"3368\">Kelas-kelas lain yang perlu kelas ini bekerja sama dengannya<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p data-nodeid=\"3369\">Mereka sangat efektif untuk\u00a0<strong data-nodeid=\"3757\">berpikir kreatif<\/strong>,\u00a0<strong data-nodeid=\"3758\">merancang<\/strong>, dan\u00a0<strong data-nodeid=\"3759\">memvalidasi<\/strong>struktur kelas sejak awal pengembangan \u2014 sebelum menulis satu baris kode pun.<\/p>\n<hr data-nodeid=\"3370\"\/>\n<h2 data-nodeid=\"3371\">\ud83d\udcda Studi Kasus: Sistem Peminjaman Buku Perpustakaan<\/h2>\n<p data-nodeid=\"3372\">Mari kita bayangkan sebuah perpustakaan umum kecil di mana anggota dapat:<\/p>\n<ul data-nodeid=\"3373\">\n<li data-nodeid=\"3374\">\n<p data-nodeid=\"3375\">Cari buku berdasarkan judul<\/p>\n<\/li>\n<li data-nodeid=\"3376\">\n<p data-nodeid=\"3377\">Meminjam buku yang tersedia (hingga batas tertentu)<\/p>\n<\/li>\n<li data-nodeid=\"3378\">\n<p data-nodeid=\"3379\">Mengembalikan buku setelah selesai<\/p>\n<\/li>\n<\/ul>\n<p data-nodeid=\"3380\">Sistem harus melacak:<\/p>\n<ul data-nodeid=\"3381\">\n<li data-nodeid=\"3382\">\n<p data-nodeid=\"3383\">Buku mana yang dipinjam<\/p>\n<\/li>\n<li data-nodeid=\"3384\">\n<p data-nodeid=\"3385\">Oleh siapa<\/p>\n<\/li>\n<li data-nodeid=\"3386\">\n<p data-nodeid=\"3387\">Kapan batas waktu pengembalian<\/p>\n<\/li>\n<\/ul>\n<p data-nodeid=\"3388\">Kami akan menggunakan metode\u00a0<strong data-nodeid=\"3774\">metode kartu CRC<\/strong>\u00a0untuk menemukan dan menyempurnakan kelas-kelas dalam sistem ini \u2014 langkah demi langkah.<\/p>\n<hr data-nodeid=\"3389\"\/>\n<h2 data-nodeid=\"3390\">\u2705 Langkah 1: Temukan Kelas Kandidat (Mendaur ulang Kata Benda)<\/h2>\n<p data-nodeid=\"3391\">Mulailah dengan membaca skenario dan menarik keluar\u00a0<strong data-nodeid=\"3781\">kata benda<\/strong>\u00a0\u2014 ini adalah kelas-kelas potensial.<\/p>\n<p data-nodeid=\"3392\">Berdasarkan deskripsi, kita mengidentifikasi:<\/p>\n<ul data-nodeid=\"3393\">\n<li data-nodeid=\"3394\">\n<p data-nodeid=\"3395\">Perpustakaan<\/p>\n<\/li>\n<li data-nodeid=\"3396\">\n<p data-nodeid=\"3397\">Anggota (atau Pengunjung)<\/p>\n<\/li>\n<li data-nodeid=\"3398\">\n<p data-nodeid=\"3399\">Buku<\/p>\n<\/li>\n<li data-nodeid=\"3400\">\n<p data-nodeid=\"3401\">Pinjaman (atau Peminjaman)<\/p>\n<\/li>\n<li data-nodeid=\"3402\">\n<p data-nodeid=\"3403\">Tanggal Jatuh Tempo (mungkin terlalu kecil)<\/p>\n<\/li>\n<li data-nodeid=\"3404\">\n<p data-nodeid=\"3405\">Kartu Perpustakaan (mungkin bagian dari Anggota)<\/p>\n<\/li>\n<\/ul>\n<p data-nodeid=\"3406\">Kami menyaring dan hanya menyimpan yang paling bermakna:<\/p>\n<blockquote data-nodeid=\"3407\">\n<p data-nodeid=\"3408\">\u2705\u00a0<strong data-nodeid=\"3802\">Anggota<\/strong>,\u00a0<strong data-nodeid=\"3803\">Buku<\/strong>,\u00a0<strong data-nodeid=\"3804\">Pinjaman<\/strong><\/p>\n<\/blockquote>\n<blockquote data-nodeid=\"3409\">\n<p data-nodeid=\"3410\">\u26a0\ufe0f\u00a0<em data-nodeid=\"3810\">Catatan: Jangan khawatir untuk mendapatkan semua kelas dengan benar pada awalnya \u2014 itulah keindahan kartu CRC. Anda akan menemukan yang hilang melalui permainan peran!<\/em><\/p>\n<\/blockquote>\n<hr data-nodeid=\"3411\"\/>\n<h2 data-nodeid=\"3412\">\u270f\ufe0f Langkah 2: Buat Kartu CRC Awal<\/h2>\n<p data-nodeid=\"3413\">Sekarang, kita menetapkan\u00a0<strong data-nodeid=\"3821\">tanggung jawab<\/strong>\u00a0dan\u00a0<strong data-nodeid=\"3822\">kolaborator<\/strong>\u00a0ke setiap kelas.<\/p>\n<h3 data-nodeid=\"3414\">\ud83d\udcd8\u00a0<strong data-nodeid=\"3827\">Kelas: Buku<\/strong><\/h3>\n<table data-nodeid=\"3416\">\n<thead data-nodeid=\"3417\">\n<tr data-nodeid=\"3418\">\n<th data-nodeid=\"3420\">Tanggung Jawab<\/th>\n<th data-nodeid=\"3421\">Kolaborator<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"3424\">\n<tr data-nodeid=\"3425\">\n<td data-nodeid=\"3426\">Mengetahui judulnya<\/td>\n<td data-nodeid=\"3427\">\u2014<\/td>\n<\/tr>\n<tr data-nodeid=\"3428\">\n<td data-nodeid=\"3429\">Mengetahui penulisnya<\/td>\n<td data-nodeid=\"3430\">\u2014<\/td>\n<\/tr>\n<tr data-nodeid=\"3431\">\n<td data-nodeid=\"3432\">Mengetahui ISBN-nya<\/td>\n<td data-nodeid=\"3433\">\u2014<\/td>\n<\/tr>\n<tr data-nodeid=\"3434\">\n<td data-nodeid=\"3435\">Mengetahui apakah saat ini tersedia<\/td>\n<td data-nodeid=\"3436\">Pinjaman<\/td>\n<\/tr>\n<tr data-nodeid=\"3437\">\n<td data-nodeid=\"3438\">Dipinjam<\/td>\n<td data-nodeid=\"3439\">Pinjaman<\/td>\n<\/tr>\n<tr data-nodeid=\"3440\">\n<td data-nodeid=\"3441\">Dikembalikan<\/td>\n<td data-nodeid=\"3442\">Pinjaman<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote data-nodeid=\"3443\">\n<p data-nodeid=\"3444\">\ud83d\udcac\u00a0<em data-nodeid=\"3846\">Buku tidak \u201cmengetahui\u201d siapa yang meminjamnya \u2014 ia hanya mengetahui apakah memiliki pinjaman yang aktif.<\/em><\/p>\n<\/blockquote>\n<hr data-nodeid=\"3445\"\/>\n<h3 data-nodeid=\"3446\">\ud83d\udc64\u00a0<strong data-nodeid=\"3851\">Kelas: Anggota<\/strong><\/h3>\n<table data-nodeid=\"3448\">\n<thead data-nodeid=\"3449\">\n<tr data-nodeid=\"3450\">\n<th data-nodeid=\"3452\">Tanggung jawab<\/th>\n<th data-nodeid=\"3453\">Kolaborator<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"3456\">\n<tr data-nodeid=\"3457\">\n<td data-nodeid=\"3458\">Tahu nama<\/td>\n<td data-nodeid=\"3459\">\u2014<\/td>\n<\/tr>\n<tr data-nodeid=\"3460\">\n<td data-nodeid=\"3461\">Tahu ID anggota<\/td>\n<td data-nodeid=\"3462\">\u2014<\/td>\n<\/tr>\n<tr data-nodeid=\"3463\">\n<td data-nodeid=\"3464\">Tahu berapa banyak buku yang saat ini dipinjam<\/td>\n<td data-nodeid=\"3465\">Pinjaman<\/td>\n<\/tr>\n<tr data-nodeid=\"3466\">\n<td data-nodeid=\"3467\">Meminjam buku (jika diizinkan)<\/td>\n<td data-nodeid=\"3468\">Buku, Pinjaman<\/td>\n<\/tr>\n<tr data-nodeid=\"3469\">\n<td data-nodeid=\"3470\">Mengembalikan buku<\/td>\n<td data-nodeid=\"3471\">Buku, Pinjaman<\/td>\n<\/tr>\n<tr data-nodeid=\"3472\">\n<td data-nodeid=\"3473\">Periksa apakah batas peminjaman telah tercapai<\/td>\n<td data-nodeid=\"3474\">Pinjaman<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote data-nodeid=\"3475\">\n<p data-nodeid=\"3476\">\ud83d\udcac\u00a0<em data-nodeid=\"3870\">Anggota mengelola perilaku peminjaman sendiri dan memeriksa batas melalui kelas Pinjaman.<\/em><\/p>\n<\/blockquote>\n<hr data-nodeid=\"3477\"\/>\n<h3 data-nodeid=\"3478\">\ud83d\udcc5\u00a0<strong data-nodeid=\"3875\">Kelas: Pinjaman<\/strong><\/h3>\n<table data-nodeid=\"3480\">\n<thead data-nodeid=\"3481\">\n<tr data-nodeid=\"3482\">\n<th data-nodeid=\"3484\">Tanggung jawab<\/th>\n<th data-nodeid=\"3485\">Kolaborator<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"3488\">\n<tr data-nodeid=\"3489\">\n<td data-nodeid=\"3490\">Mencatat buku mana yang dipinjam<\/td>\n<td data-nodeid=\"3491\">Buku<\/td>\n<\/tr>\n<tr data-nodeid=\"3492\">\n<td data-nodeid=\"3493\">Mencatat anggota mana yang meminjamnya<\/td>\n<td data-nodeid=\"3494\">Anggota<\/td>\n<\/tr>\n<tr data-nodeid=\"3495\">\n<td data-nodeid=\"3496\">Mencatat tanggal peminjaman<\/td>\n<td data-nodeid=\"3497\">\u2014<\/td>\n<\/tr>\n<tr data-nodeid=\"3498\">\n<td data-nodeid=\"3499\">Menghitung tanggal jatuh tempo<\/td>\n<td data-nodeid=\"3500\">\u2014<\/td>\n<\/tr>\n<tr data-nodeid=\"3501\">\n<td data-nodeid=\"3502\">Tahu apakah sudah terlambat<\/td>\n<td data-nodeid=\"3503\">\u2014<\/td>\n<\/tr>\n<tr data-nodeid=\"3504\">\n<td data-nodeid=\"3505\">Tandai sebagai dikembalikan<\/td>\n<td data-nodeid=\"3506\">Buku<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote data-nodeid=\"3507\">\n<p data-nodeid=\"3508\">\ud83d\udcac\u00a0<em data-nodeid=\"3894\">Kelas Pinjaman menyimpan hubungan antara Anggota dan Buku, termasuk detail waktu.<\/em><\/p>\n<\/blockquote>\n<hr data-nodeid=\"3509\"\/>\n<h2 data-nodeid=\"3510\">\ud83c\udfad Langkah 3: Berperan dalam Suatu Adegan \u2014 \u201cMeminjam Buku\u201d<\/h2>\n<p data-nodeid=\"3511\">Sekarang datang bagian menyenangkannya:\u00a0<strong data-nodeid=\"3904\">berperan<\/strong>\u00a0adegan tersebut seolah-olah kartu-kartu itu benda nyata.<\/p>\n<h3 data-nodeid=\"3512\">\ud83d\udcd6 Adegan: Curtis ingin meminjam\u00a0<em data-nodeid=\"3912\">\u201cKode Bersih\u201d<\/em>, yang tersedia.<\/h3>\n<p data-nodeid=\"3513\">Mari kita bahas satu per satu:<\/p>\n<ol data-nodeid=\"3514\">\n<li data-nodeid=\"3515\">\n<p data-nodeid=\"3516\"><strong data-nodeid=\"3947\">Anggota (Curtis)<\/strong>\u00a0mengatakan:\u00a0<em data-nodeid=\"3948\">\u201cSaya ingin meminjam \u2018Kode Bersih\u2019.\u201d<\/em><br \/>\n\u2192 Pertama dicek:\u00a0<em data-nodeid=\"3949\">\u201cApakah saya sudah memiliki kurang dari 3 buku?\u201d<\/em><br \/>\n\u2192 Bertanya\u00a0<strong data-nodeid=\"3950\">Pinjaman<\/strong>:\u00a0<em data-nodeid=\"3951\">\u201cBerapa banyak pinjaman aktif yang saya miliki?\u201d<\/em><\/p>\n<\/li>\n<li data-nodeid=\"3517\">\n<p data-nodeid=\"3518\"><strong data-nodeid=\"3961\">Pinjaman<\/strong>\u00a0menanggapi:\u00a0<em data-nodeid=\"3962\">\u201cAnda memiliki 1 pinjaman aktif \u2192 Anda dapat meminjam.\u201d<\/em><\/p>\n<\/li>\n<li data-nodeid=\"3519\">\n<p data-nodeid=\"3520\"><strong data-nodeid=\"3988\">Anggota<\/strong>\u00a0mencari buku:\u00a0<em data-nodeid=\"3989\">\u201cDi mana \u2018Kode Bersih\u2019?\u201d<\/em><br \/>\n\u2192 Bertanya\u00a0<strong data-nodeid=\"3990\">Buku<\/strong>:\u00a0<em data-nodeid=\"3991\">\u201cApakah Anda tersedia?\u201d<\/em><\/p>\n<\/li>\n<li data-nodeid=\"3521\">\n<p data-nodeid=\"3522\"><strong data-nodeid=\"4013\">Buku<\/strong>\u00a0memeriksa:\u00a0<em data-nodeid=\"4014\">\u201cApakah saya memiliki pinjaman aktif (belum dikembalikan)?\u201d<\/em><br \/>\n\u2192 Menanyakan\u00a0<strong data-nodeid=\"4015\">Pinjaman<\/strong>:\u00a0<em data-nodeid=\"4016\">\u201cApakah ada pinjaman aktif untuk saya?\u201d<\/em><\/p>\n<\/li>\n<li data-nodeid=\"3523\">\n<p data-nodeid=\"3524\"><strong data-nodeid=\"4029\">Pinjaman<\/strong>\u00a0menanggapi:\u00a0<em data-nodeid=\"4030\">\u201cTidak \u2014 Anda tersedia!\u201d<\/em><\/p>\n<\/li>\n<li data-nodeid=\"3525\">\n<p data-nodeid=\"3526\"><strong data-nodeid=\"4039\">Anggota<\/strong>\u00a0membuat baru\u00a0<strong data-nodeid=\"4040\">Pinjaman<\/strong>\u00a0objek:<\/p>\n<ul data-nodeid=\"3527\">\n<li data-nodeid=\"3528\">\n<p data-nodeid=\"3529\">Menghubungkan ke ini\u00a0<strong data-nodeid=\"4049\">Buku<\/strong>\u00a0dan\u00a0<strong data-nodeid=\"4050\">Anggota<\/strong><\/p>\n<\/li>\n<li data-nodeid=\"3530\">\n<p data-nodeid=\"3531\">Menetapkan tanggal pinjam = hari ini<\/p>\n<\/li>\n<li data-nodeid=\"3532\">\n<p data-nodeid=\"3533\">Menghitung tanggal jatuh tempo = hari ini + 14 hari<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li data-nodeid=\"3534\">\n<p data-nodeid=\"3535\"><strong data-nodeid=\"4062\">Buku<\/strong>\u00a0diperbarui:\u00a0<em data-nodeid=\"4063\">\u201cSekarang saya memiliki pinjaman aktif \u2192 Saya tidak lagi tersedia.\u201d<\/em><\/p>\n<\/li>\n<\/ol>\n<p data-nodeid=\"3536\">\u2705\u00a0<strong data-nodeid=\"4069\">Hasil<\/strong>: Proses peminjaman terasa alami, terdistribusi, dan logis.<\/p>\n<hr data-nodeid=\"3537\"\/>\n<h2 data-nodeid=\"3538\">\ud83d\udd04 Langkah 4: Skenario Lain \u2014 \u201cKembalikan Buku\u201d<\/h2>\n<h3 data-nodeid=\"3539\">\ud83d\udcd6 Skenario: Curtis mengembalikan\u00a0<em data-nodeid=\"4080\">\u201cKode Bersih\u201d<\/em><\/h3>\n<ol data-nodeid=\"3540\">\n<li data-nodeid=\"3541\">\n<p data-nodeid=\"3542\"><strong data-nodeid=\"4094\">Anggota (Curtis)<\/strong>\u00a0mengatakan:\u00a0<em data-nodeid=\"4095\">\u201cSaya ingin mengembalikan \u2018Clean Code\u2019.\u201d<\/em><\/p>\n<\/li>\n<li data-nodeid=\"3543\">\n<p data-nodeid=\"3544\"><strong data-nodeid=\"4108\">Anggota<\/strong>\u00a0menemukan yang sesuai\u00a0<strong data-nodeid=\"4109\">Pinjaman<\/strong>\u00a0(kemungkinan dengan menanyakan\u00a0<strong data-nodeid=\"4110\">Pinjaman<\/strong>\u00a0dengan buku dan anggota).<\/p>\n<\/li>\n<li data-nodeid=\"3545\">\n<p data-nodeid=\"3546\"><strong data-nodeid=\"4119\">Pinjaman<\/strong>\u00a0menandai dirinya sebagai\u00a0<em data-nodeid=\"4120\">dikembalikan<\/em>.<\/p>\n<\/li>\n<li data-nodeid=\"3547\">\n<p data-nodeid=\"3548\"><strong data-nodeid=\"4134\">Pinjaman<\/strong>\u00a0memberi tahu\u00a0<strong data-nodeid=\"4135\">Buku<\/strong>:\u00a0<em data-nodeid=\"4136\">\u201cAnda sekarang tersedia lagi.\u201d<\/em><\/p>\n<\/li>\n<\/ol>\n<p data-nodeid=\"3549\">\u2705\u00a0<strong data-nodeid=\"4142\">Bersih, jelas, dan utuh<\/strong>\u00a0\u2014 tidak ada kelas yang melakukan pekerjaan di luar tanggung jawabnya.<\/p>\n<hr data-nodeid=\"3550\"\/>\n<h2 data-nodeid=\"3551\">\ud83d\udd0d Langkah 5: Sempurnakan &amp; Tambah Kelas yang Hilang<\/h2>\n<p data-nodeid=\"3552\">Setelah berperan, kami menyadari adanya\u00a0<strong data-nodeid=\"4151\">kekosongan<\/strong>:<\/p>\n<blockquote data-nodeid=\"3553\">\n<p data-nodeid=\"3554\">\u2753\u00a0<em data-nodeid=\"4156\">Siapa yang menemukan buku berdasarkan judul?<\/em><\/p>\n<\/blockquote>\n<p data-nodeid=\"3555\">Saat ini,\u00a0<strong data-nodeid=\"4178\">Anggota<\/strong>\u00a0sedang menanyakan\u00a0<strong data-nodeid=\"4179\">Buku<\/strong>\u00a0secara langsung \u2014 tetapi\u00a0<strong data-nodeid=\"4180\">Buku<\/strong>\u00a0tidak tahu cara mencari!<br \/>\nKami membutuhkan\u00a0<strong data-nodeid=\"4181\">koordinator pusat<\/strong>.<\/p>\n<h3 data-nodeid=\"3556\">\u2795 Kelas Baru:\u00a0<strong data-nodeid=\"4186\">Perpustakaan<\/strong><\/h3>\n<table data-nodeid=\"3558\">\n<thead data-nodeid=\"3559\">\n<tr data-nodeid=\"3560\">\n<th data-nodeid=\"3562\">Tanggung jawab<\/th>\n<th data-nodeid=\"3563\">Kolaborator<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"3566\">\n<tr data-nodeid=\"3567\">\n<td data-nodeid=\"3568\">Tambahkan buku baru ke dalam koleksi<\/td>\n<td data-nodeid=\"3569\">Buku<\/td>\n<\/tr>\n<tr data-nodeid=\"3570\">\n<td data-nodeid=\"3571\">Temukan buku berdasarkan judul<\/td>\n<td data-nodeid=\"3572\">Buku<\/td>\n<\/tr>\n<tr data-nodeid=\"3573\">\n<td data-nodeid=\"3574\">Daftarkan anggota baru<\/td>\n<td data-nodeid=\"3575\">Anggota<\/td>\n<\/tr>\n<tr data-nodeid=\"3576\">\n<td data-nodeid=\"3577\">Proses permintaan peminjaman buku<\/td>\n<td data-nodeid=\"3578\">Anggota, Buku, Peminjaman<\/td>\n<\/tr>\n<tr data-nodeid=\"3579\">\n<td data-nodeid=\"3580\">Proses pengembalian buku<\/td>\n<td data-nodeid=\"3581\">Anggota, Buku, Peminjaman<\/td>\n<\/tr>\n<tr data-nodeid=\"3582\">\n<td data-nodeid=\"3583\">Tahu semua peminjaman saat ini<\/td>\n<td data-nodeid=\"3584\">Peminjaman<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote data-nodeid=\"3585\">\n<p data-nodeid=\"3586\">\ud83d\udcac\u00a0<em data-nodeid=\"4205\">Perpustakaan bertindak sebagai pusat utama \u2014 ia mengetahui semua buku, semua anggota, dan semua peminjaman.<\/em><\/p>\n<\/blockquote>\n<hr data-nodeid=\"3587\"\/>\n<h3 data-nodeid=\"3588\">\u2728 Alur Terbaru: \u201cPinjam Buku\u201d dengan Perpustakaan<\/h3>\n<ol data-nodeid=\"3589\">\n<li data-nodeid=\"3590\">\n<p data-nodeid=\"3591\"><strong data-nodeid=\"4228\">Anggota<\/strong>\u00a0\u2192\u00a0<strong data-nodeid=\"4229\">Perpustakaan<\/strong>:\u00a0<em data-nodeid=\"4230\">\u201cTemukan buku berjudul \u2018Clean Code\u2019.\u201d<\/em><\/p>\n<\/li>\n<li data-nodeid=\"3592\">\n<p data-nodeid=\"3593\"><strong data-nodeid=\"4241\">Perpustakaan<\/strong>\u00a0mencari koleksinya dan mengembalikan\u00a0<strong data-nodeid=\"4242\">Buku<\/strong>\u00a0(atau\u00a0<code data-backticks=\"1\" data-nodeid=\"4239\">nol<\/code>\u00a0jika tidak ditemukan).<\/p>\n<\/li>\n<li data-nodeid=\"3594\">\n<p data-nodeid=\"3595\"><strong data-nodeid=\"4256\">Anggota<\/strong>\u00a0sekarang mengetahui buku tersebut ada \u2192 meminta\u00a0<strong data-nodeid=\"4257\">Perpustakaan<\/strong>:\u00a0<em data-nodeid=\"4258\">\u201cBolehkah saya meminjam buku ini?\u201d<\/em><\/p>\n<\/li>\n<li data-nodeid=\"3596\">\n<p data-nodeid=\"3597\"><strong data-nodeid=\"4263\">Perpustakaan<\/strong>\u00a0memeriksa:<\/p>\n<ul data-nodeid=\"3598\">\n<li data-nodeid=\"3599\">\n<p data-nodeid=\"3600\">Apakah buku ini tersedia? (melalui\u00a0<code data-backticks=\"1\" data-nodeid=\"4265\">Book.isAvailable()<\/code>)<\/p>\n<\/li>\n<li data-nodeid=\"3601\">\n<p data-nodeid=\"3602\">Apakah anggota berada di bawah batas peminjaman? (melalui\u00a0<code data-backticks=\"1\" data-nodeid=\"4268\">Loan.countActiveLoans(member)<\/code>)<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li data-nodeid=\"3603\">\n<p data-nodeid=\"3604\">Jika ya \u2192\u00a0<strong data-nodeid=\"4287\">Perpustakaan<\/strong>\u00a0membuat pinjaman baru\u00a0<strong data-nodeid=\"4288\">Pinjaman<\/strong>\u00a0dan memperbarui kedua\u00a0<strong data-nodeid=\"4289\">Buku<\/strong>\u00a0dan\u00a0<strong data-nodeid=\"4290\">Pinjaman<\/strong>.<\/p>\n<\/li>\n<li data-nodeid=\"3605\">\n<p data-nodeid=\"3606\"><strong data-nodeid=\"4299\">Buku<\/strong>\u00a0menjadi tidak tersedia;\u00a0<strong data-nodeid=\"4300\">Pinjaman<\/strong>\u00a0melacak hubungan tersebut.<\/p>\n<\/li>\n<\/ol>\n<p data-nodeid=\"3607\">\u2705\u00a0<strong data-nodeid=\"4310\">Sekarang alirannya masuk akal<\/strong>\u00a0\u2014 yang\u00a0<strong data-nodeid=\"4311\">Perpustakaan<\/strong>\u00a0menangani penemuan dan koordinasi.<\/p>\n<hr data-nodeid=\"3608\"\/>\n<h2 data-nodeid=\"3609\">\ud83e\udde9 Ringkasan Akhir Kartu CRC (Disederhanakan untuk Pemula)<\/h2>\n<table data-nodeid=\"3611\">\n<thead data-nodeid=\"3612\">\n<tr data-nodeid=\"3613\">\n<th data-nodeid=\"3615\">Kelas<\/th>\n<th data-nodeid=\"3616\">Tanggung Jawab Utama<\/th>\n<th data-nodeid=\"3617\">Kolaborator Utama<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"3621\">\n<tr data-nodeid=\"3622\">\n<td data-nodeid=\"3623\"><strong data-nodeid=\"4319\">Perpustakaan<\/strong><\/td>\n<td data-nodeid=\"3624\">Mengelola buku, anggota, pinjaman; menangani peminjaman\/pengembalian<\/td>\n<td data-nodeid=\"3625\">Buku, Anggota, Pinjaman<\/td>\n<\/tr>\n<tr data-nodeid=\"3626\">\n<td data-nodeid=\"3627\"><strong data-nodeid=\"4325\">Anggota<\/strong><\/td>\n<td data-nodeid=\"3628\">Mengetahui informasi pribadi; memulai peminjaman\/pengembalian<\/td>\n<td data-nodeid=\"3629\">Perpustakaan, Pinjaman<\/td>\n<\/tr>\n<tr data-nodeid=\"3630\">\n<td data-nodeid=\"3631\"><strong data-nodeid=\"4331\">Buku<\/strong><\/td>\n<td data-nodeid=\"3632\">Menyimpan metadata; melacak ketersediaan<\/td>\n<td data-nodeid=\"3633\">Perpustakaan, Pinjaman<\/td>\n<\/tr>\n<tr data-nodeid=\"3634\">\n<td data-nodeid=\"3635\"><strong data-nodeid=\"4337\">Pinjaman<\/strong><\/td>\n<td data-nodeid=\"3636\">Melacak riwayat peminjaman; menghitung tanggal jatuh tempo; mengelola status pengembalian<\/td>\n<td data-nodeid=\"3637\">Anggota, Buku, Perpustakaan<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote data-nodeid=\"3638\">\n<p data-nodeid=\"3639\">\u2705\u00a0<strong data-nodeid=\"4353\">Prinsip Desain<\/strong>: Setiap kelas memiliki\u00a0<strong data-nodeid=\"4354\">tujuan yang jelas<\/strong>, dan tanggung jawab adalah\u00a0<strong data-nodeid=\"4355\">kohesif dan tersebar dengan baik<\/strong>.<\/p>\n<\/blockquote>\n<hr data-nodeid=\"3640\"\/>\n<h2 data-nodeid=\"3641\">\ud83c\udf1f Mengapa Kartu CRC Bekerja Sangat Baik (Pemahaman Awal untuk Pemula)<\/h2>\n<table data-nodeid=\"3643\">\n<thead data-nodeid=\"3644\">\n<tr data-nodeid=\"3645\">\n<th data-nodeid=\"3647\">Manfaat<\/th>\n<th data-nodeid=\"3648\">Penjelasan<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"3651\">\n<tr data-nodeid=\"3652\">\n<td data-nodeid=\"3653\"><strong data-nodeid=\"4362\">Desain Berbasis Tanggung Jawab<\/strong><\/td>\n<td data-nodeid=\"3654\">Mendorong Anda untuk berpikir:\u00a0<em data-nodeid=\"4370\">\u201cApa yang diketahui atau dilakukan oleh kelas ini?\u201d<\/em>\u00a0bukan hanya menyimpan data.<\/td>\n<\/tr>\n<tr data-nodeid=\"3655\">\n<td data-nodeid=\"3656\"><strong data-nodeid=\"4374\">Penemuan Alami Kelas yang Hilang<\/strong><\/td>\n<td data-nodeid=\"3657\">Permainan peran mengungkap celah (seperti kelas yang hilang\u00a0<code data-backticks=\"1\" data-nodeid=\"4376\">Perpustakaan<\/code>) \u2014 tidak perlu menebak-tebak.<\/td>\n<\/tr>\n<tr data-nodeid=\"3658\">\n<td data-nodeid=\"3659\"><strong data-nodeid=\"4381\">Umpan Balik Segera Melalui Permainan Peran<\/strong><\/td>\n<td data-nodeid=\"3660\">Jika alur terasa tidak nyaman, Anda tahu tanggung jawab berada di tempat yang salah.<\/td>\n<\/tr>\n<tr data-nodeid=\"3661\">\n<td data-nodeid=\"3662\"><strong data-nodeid=\"4388\">Rendah Formalitas &amp; Kolaboratif<\/strong><\/td>\n<td data-nodeid=\"3663\">Tidak perlu alat rumit \u2014 cukup kartu indeks, catatan perekat, atau papan tulis. Sangat cocok untuk tim.<\/td>\n<\/tr>\n<tr data-nodeid=\"3664\">\n<td data-nodeid=\"3665\"><strong data-nodeid=\"4393\">Menjembatani Kebutuhan ke Kode<\/strong><\/td>\n<td data-nodeid=\"3666\">Mengubah cerita pengguna menjadi interaksi kelas yang nyata.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr data-nodeid=\"3667\"\/>\n<h2 data-nodeid=\"3668\">\ud83d\udee0\ufe0f Tips Cepat untuk Sesi CRC Pertama Anda<\/h2>\n<ol data-nodeid=\"4729\">\n<li data-nodeid=\"4730\">\n<p data-nodeid=\"4731\"><strong data-nodeid=\"4821\">Gunakan kartu fisik<\/strong>\u00a0(kartu indeks 3\u00d75 atau catatan perekat) \u2014 lebih menarik perhatian.<\/p>\n<\/li>\n<li data-nodeid=\"4732\">\n<p data-nodeid=\"4733\"><strong data-nodeid=\"4826\">Satu kelas per kartu<\/strong>\u00a0\u2014 tetap sederhana.<\/p>\n<\/li>\n<li data-nodeid=\"4734\">\n<p data-nodeid=\"4735\"><strong data-nodeid=\"4831\">Tulis dengan ukuran besar dan mudah dibaca<\/strong>\u00a0\u2014 orang lain harus bisa membacanya dengan mudah.<\/p>\n<\/li>\n<li data-nodeid=\"4736\">\n<p data-nodeid=\"4737\"><strong data-nodeid=\"4836\">Mainkan peran secara lisan<\/strong>\u00a0\u2014 bagikan kartu seperti benda nyata.<\/p>\n<\/li>\n<li data-nodeid=\"4738\">\n<p data-nodeid=\"4739\"><strong data-nodeid=\"4841\">Mulailah dengan 3\u20136 skenario inti<\/strong>\u00a0(contoh: meminjam, mengembalikan, mencari).<\/p>\n<\/li>\n<li data-nodeid=\"4740\">\n<p data-nodeid=\"4741\"><strong data-nodeid=\"4850\">Jangan berusaha sempurna<\/strong>\u00a0\u2014 tujuannya adalah\u00a0<strong data-nodeid=\"4851\">iterasi<\/strong>, bukan desain akhir. Sempurnakan seiring berjalannya waktu.<\/p>\n<\/li>\n<li data-nodeid=\"4742\">\n<p data-nodeid=\"4743\"><strong data-nodeid=\"4856\">Gunakan nama yang sederhana dan spesifik domain<\/strong>\u00a0\u2014 hindari istilah teknis. Gunakan \u201cAnggota\u201d alih-alih \u201cPendukung\u201d jika tim Anda setuju.<\/p>\n<\/li>\n<li data-nodeid=\"4744\">\n<p data-nodeid=\"4745\"><strong data-nodeid=\"4861\">Undang semua orang untuk berpartisipasi<\/strong>\u00a0\u2014 bahkan non-programmer bisa membantu mengidentifikasi tanggung jawab yang hilang.<\/p>\n<\/li>\n<li data-nodeid=\"4746\">\n<p data-nodeid=\"4747\"><strong data-nodeid=\"4866\">Gambarlah diagram kelas yang sederhana setelahnya<\/strong>\u00a0\u2014 untuk memvisualisasikan hubungan dan memastikan konsistensi.<\/p>\n<\/li>\n<li data-nodeid=\"4748\">\n<p data-nodeid=\"4749\"><strong data-nodeid=\"4871\">Jadikan menyenangkan<\/strong>\u00a0\u2014 anggaplah seperti permainan. Semakin terlibat tim Anda, hasilnya akan semakin baik.<\/p>\n<\/li>\n<\/ol>\n<hr data-nodeid=\"4750\"\/>\n<h2 data-nodeid=\"4751\">\ud83d\udd04 Coba Sendiri: Domain Selanjutnya yang Dapat Dijelajahi<\/h2>\n<p data-nodeid=\"4752\">Setelah Anda menguasai sistem perpustakaan, coba terapkan kartu CRC pada domain lain yang ramah pemula:<\/p>\n<h3 data-nodeid=\"4753\">\u2615 Sistem Pesanan Kafe<\/h3>\n<ul data-nodeid=\"4754\">\n<li data-nodeid=\"4755\">\n<p data-nodeid=\"4756\">Kelas:\u00a0<code data-backticks=\"1\" data-nodeid=\"4876\">Pelanggan<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4878\">Pesanan<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4880\">MenuItem<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4882\">Barista<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4884\">Kasir<\/code><\/p>\n<\/li>\n<li data-nodeid=\"4757\">\n<p data-nodeid=\"4758\">Skenario: Tempatkan pesanan \u2192 Tambahkan minuman \u2192 Terapkan diskon \u2192 Bayar \u2192 Cetak struk<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"4759\">\ud83e\ude99 Mesin Penjual Otomatis<\/h3>\n<ul data-nodeid=\"4760\">\n<li data-nodeid=\"4761\">\n<p data-nodeid=\"4762\">Kelas:\u00a0<code data-backticks=\"1\" data-nodeid=\"4888\">MesinPenjualOtomatis<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4890\">Produk<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4892\">Koin<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4894\">Pengeluar<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4896\">Kalkulator Uang Kembalian<\/code><\/p>\n<\/li>\n<li data-nodeid=\"4763\">\n<p data-nodeid=\"4764\">Skenario: Masukkan koin \u2192 Pilih produk \u2192 Keluarkan produk \u2192 Kembalikan uang kembalian<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"4765\">\ud83c\udfae Permainan Kuis<\/h3>\n<ul data-nodeid=\"4766\">\n<li data-nodeid=\"4767\">\n<p data-nodeid=\"4768\">Kelas:\u00a0<code data-backticks=\"1\" data-nodeid=\"4900\">Kuis<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4902\">Pertanyaan<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4904\">Pemain<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4906\">Pencatat Skor<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4908\">Sesi Permainan<\/code><\/p>\n<\/li>\n<li data-nodeid=\"4769\">\n<p data-nodeid=\"4770\">Skenario: Mulai kuis \u2192 Jawab pertanyaan \u2192 Periksa kebenaran \u2192 Tampilkan skor akhir<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"4771\">\ud83d\ude97 Garasi Parkir<\/h3>\n<ul data-nodeid=\"4772\">\n<li data-nodeid=\"4773\">\n<p data-nodeid=\"4774\">Kelas:\u00a0<code data-backticks=\"1\" data-nodeid=\"4912\">Garasi<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4914\">Mobil<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4916\">Tempat Parkir<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4918\">Tiket<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4920\">Gerbang<\/code><\/p>\n<\/li>\n<li data-nodeid=\"4775\">\n<p data-nodeid=\"4776\">Skenario: Masuk garasi \u2192 Parkir mobil \u2192 Keluar \u2192 Bayar biaya \u2192 Ambil tiket<\/p>\n<\/li>\n<\/ul>\n<p data-nodeid=\"4777\">Setiap sistem ini dibangun berdasarkan prinsip yang sama:<\/p>\n<ul data-nodeid=\"4778\">\n<li data-nodeid=\"4779\">\n<p data-nodeid=\"4780\">Identifikasi kata benda \u2192 tetapkan tanggung jawab \u2192 berperan \u2192 sempurnakan \u2192 ulangi.<\/p>\n<\/li>\n<\/ul>\n<hr data-nodeid=\"4781\"\/>\n<h2 data-nodeid=\"4782\">\ud83d\udccc Pikiran Akhir: Kartu CRC Lebih dari Sekadar Teknik \u2014 Mereka Adalah Pola Pikir<\/h2>\n<p data-nodeid=\"4783\">Kekuatan sebenarnya dari kartu CRC bukan terletak pada kartu itu sendiri \u2014 melainkan pada\u00a0<strong data-nodeid=\"4930\">percakapan<\/strong>\u00a0yang mereka picu.<\/p>\n<p data-nodeid=\"4784\">Ketika Anda menulis kartu dan berkata,\u00a0<em data-nodeid=\"4940\">\u201cSiapa yang mengerjakan ini?\u201d<\/em>\u00a0atau\u00a0<em data-nodeid=\"4941\">\u201cSiapa yang perlu diajak bicara?\u201d<\/em>, Anda sudah berpikir seperti desainer berbasis objek.<\/p>\n<blockquote data-nodeid=\"4785\">\n<p data-nodeid=\"4786\">\ud83d\udd25\u00a0<strong data-nodeid=\"4947\">Kiat Pro<\/strong>: Gunakan kartu CRC selama perencanaan sprint, penelitian teknis, bahkan dalam wawancara untuk menunjukkan pemikiran desain Anda.<\/p>\n<\/blockquote>\n<p data-nodeid=\"4787\">Mereka bukan hanya untuk pengembang \u2014 mereka untuk\u00a0<strong data-nodeid=\"4953\">siapa saja<\/strong>\u00a0yang terlibat dalam pembuatan perangkat lunak: manajer produk, desainer, pengujicoba, dan mahasiswa.<\/p>\n<hr data-nodeid=\"4788\"\/>\n<h2 data-nodeid=\"4789\">\ud83d\udcce Ingin Tahu Lebih Banyak?<\/h2>\n<p data-nodeid=\"4790\">\ud83d\udc49\u00a0<strong data-nodeid=\"4972\">Unduh template kartu CRC yang bisa dicetak<\/strong>\u00a0(PDF atau digital) untuk digunakan dalam workshop berikutnya Anda.<br \/>\n\ud83d\udc49\u00a0<strong data-nodeid=\"4973\">Coba sesi CRC langsung<\/strong>\u00a0dengan rekan kerja \u2014 tetapkan peran: \u201cKamu adalah Anggota,\u201d \u201cKamu adalah Buku,\u201d dll.<br \/>\n\ud83d\udc49\u00a0<strong data-nodeid=\"4974\">Bagikan hasil Anda<\/strong>\u00a0\u2014 unggah kartu Anda di media sosial dengan #CRCcards atau #OODesignJourney.<\/p>\n<hr data-nodeid=\"4791\"\/>\n<h2 data-nodeid=\"4792\">\ud83c\udfc1 Kesimpulan<\/h2>\n<p data-nodeid=\"4793\">The\u00a0<strong data-nodeid=\"4985\">Sistem Peminjaman Buku Perpustakaan<\/strong>adalah salah satu contoh kartu CRC yang paling klasik dan efektif \u2014 bukan karena kompleks, tetapi karena\u00a0<strong data-nodeid=\"4986\">sederhana, mudah dipahami, dan mengungkapkan<\/strong>.<\/p>\n<p data-nodeid=\"4794\">Dengan mengikuti hanya\u00a0<strong data-nodeid=\"4992\">lima langkah<\/strong>\u2014 brainstorming, pembuatan kartu, peran-peran, penyempurnaan, dan pengulangan \u2014 Anda dapat:<\/p>\n<ul data-nodeid=\"4795\">\n<li data-nodeid=\"4796\">\n<p data-nodeid=\"4797\">Menggali kelas secara alami<\/p>\n<\/li>\n<li data-nodeid=\"4798\">\n<p data-nodeid=\"4799\">Menetapkan tanggung jawab secara jelas<\/p>\n<\/li>\n<li data-nodeid=\"4800\">\n<p data-nodeid=\"4801\">Mendeteksi kekurangan desain sejak dini<\/p>\n<\/li>\n<li data-nodeid=\"4802\">\n<p data-nodeid=\"4803\">Membangun model mental bersama sebagai tim<\/p>\n<\/li>\n<\/ul>\n<p data-nodeid=\"4804\">Dan yang terbaik dari semuanya? Anda tidak perlu menjadi pengembang senior untuk melakukannya.<br \/>\nAnda hanya perlu rasa ingin tahu, beberapa kartu, dan keinginan untuk bermain.<\/p>\n<hr data-nodeid=\"4805\"\/>\n<blockquote data-nodeid=\"4806\">\n<p data-nodeid=\"4807\">\u2705\u00a0<strong data-nodeid=\"5005\">Sekarang giliran Anda<\/strong>: Ambil beberapa catatan sticky, pilih sistem sederhana (seperti kafe atau mesin penjual otomatis), dan coba metode CRC.<\/p>\n<p data-nodeid=\"4808\">\ud83d\udccc\u00a0<strong data-nodeid=\"5011\">Ingat<\/strong>: Desain yang baik bukan tentang menulis kode sempurna \u2014 tetapi tentang mengajukan pertanyaan yang tepat.<\/p>\n<p data-nodeid=\"4809\">Dan dengan kartu CRC, Anda sudah mengajukannya.<\/p>\n<\/blockquote>\n<hr data-nodeid=\"4810\"\/>\n<h3 data-nodeid=\"4811\">\ud83d\udccc Bonus: Templat Kartu CRC yang Dapat Dicetak (Versi Teks)<\/h3>\n<pre data-nodeid=\"4812\"><code>\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\r\n\u2502    [NAMA KELAS]    \u2502\r\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\r\n\u2502 Tanggung Jawab:    \u2502\r\n\u2502 -                  \u2502\r\n\u2502 -                  \u2502\r\n\u2502 -                  \u2502\r\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\r\n\u2502 Kolaborator:       \u2502\r\n\u2502 -                  \u2502\r\n\u2502 -                  \u2502\r\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\r\n<\/code><\/pre>\n<p data-nodeid=\"4813\">Cetak ini pada kartu ukuran 3\u00d75 atau gunakan dalam alat digital seperti Miro, Figma, atau Google Slides.<\/p>\n<hr data-nodeid=\"4814\"\/>\n<p data-nodeid=\"4815\">\ud83d\udcda\u00a0<strong data-nodeid=\"5029\">Langkah Selanjutnya?<\/strong><br \/>\nIngin panduan lengkap tentang\u00a0<strong data-nodeid=\"5030\">Sistem Pemesanan Kafe<\/strong>\u00a0dengan gaya CRC yang sama?<br \/>\n\ud83d\udc49 Cukup katakan saja \u2014 saya akan mengirimkan studi kasus berikutnya, langkah demi langkah, dengan kartu, skenario, dan peran-peran!<\/p>\n<p class=\"\" data-nodeid=\"4816\">Selamat mendesain! \ud83c\udfae\ud83e\udde9\ud83d\udcbb<\/p>\n<ul>\n<li data-nodeid=\"655\"><a data-nodeid=\"684\" href=\"https:\/\/www.visual-paradigm.com\/support\/documents\/vpuserguide\/94\/1289\/6518_drawingcrcca.html\">Cara Menggambar Kartu CRC di Visual Paradigm<\/a>: Panduan langkah demi langkah ini memberikan petunjuk tentang cara membuat kartu CRC menggunakan alat diagram khusus perangkat lunak.<\/li>\n<li data-nodeid=\"657\"><a data-nodeid=\"698\" href=\"https:\/\/www.visual-paradigm.com\/support\/documents\/vpuserguide\/94\/1289_crccarddiagr.html\">Memahami Diagram Kartu CRC di Visual Paradigm<\/a>: Ringkasan yang menjelaskan bagaimana diagram ini digunakan untuk memodelkan sistem berorientasi objek dan interaksi mereka.<\/li>\n<li data-nodeid=\"659\"><a data-nodeid=\"710\" href=\"https:\/\/circle.visual-paradigm.com\/docs\/uml-and-sysml\/15-crc-diagram\/how-to-create-crc-card-diagram\/\">Cara Membuat Diagram Kartu CRC di Visual Paradigm<\/a>: Tutorial mendetail yang ditemukan di Community Circle yang mencakup pembuatan dan penyesuaian diagram CRC.<\/li>\n<li data-nodeid=\"661\"><a data-nodeid=\"722\" href=\"https:\/\/circle.visual-paradigm.com\/docs\/uml-and-sysml\/15-crc-diagram\/\">Pengantar Diagram CRC di Visual Paradigm<\/a>: Panduan komprehensif yang berfokus pada pemanfaatan diagram CRC untuk desain berorientasi objek dan pemodelan sistem yang lebih luas.<\/li>\n<li data-nodeid=\"663\"><a data-nodeid=\"734\" href=\"https:\/\/forums.visual-paradigm.com\/t\/how-can-i-generate-crc-cards-using-class-diagram\/8733\">Menghasilkan Kartu CRC dari Diagram Kelas<\/a>: Diskusi komunitas ini mengeksplorasi metode untuk memanfaatkan diagram kelas yang sudah ada untuk secara otomatis menghasilkan kartu melalui rekayasa balik.<\/li>\n<li data-nodeid=\"665\"><a data-nodeid=\"746\" href=\"https:\/\/forums.visual-paradigm.com\/t\/creating-crc-card-based-on-class-or-visa-versa\/12361\">Menyinkronkan Kartu CRC dengan Diagram Kelas<\/a>: Sumber teknis yang membahas pemodelan dua arah untuk memastikan konsistensi desain antara kartu dan model kelas.<\/li>\n<li data-nodeid=\"667\"><a data-nodeid=\"758\" href=\"https:\/\/circle.visual-paradigm.com\/docs\/uml-and-sysml\/15-crc-diagram\/?format=pdf\">Pengantar Diagram Kartu CRC (Panduan PDF)<\/a>: Sumber teknis yang dapat diunduh yang menjelaskan konsep inti dan aplikasi kartu CRC dalam analisis sistem.<\/li>\n<li data-nodeid=\"669\"><a data-nodeid=\"770\" href=\"https:\/\/forums.visual-paradigm.com\/t\/link-between-crc-and-class\/17656\">Membangun Koneksi antara Kartu CRC dan Diagram Kelas<\/a>: Artikel ini menyoroti teknik untuk menjaga keterlacakan dan keterkaitan antara tingkatan pemodelan yang berbeda.<\/li>\n<li data-nodeid=\"671\"><a data-nodeid=\"782\" href=\"https:\/\/www.visual-paradigm.com\/VPGallery\/capturing\/CRCCard.html\">Templat Kartu CRC di Galeri Visual Paradigm<\/a>: Sumber daya yang menampilkan templat yang dapat diunduh yang dirancang untuk mendukung desain berorientasi objek tahap awal.<\/li>\n<li data-nodeid=\"673\"><a data-nodeid=\"794\" href=\"https:\/\/forums.visual-paradigm.com\/t\/crc-cards-moving-from-diagram-to-diagram\/10242\">Memindahkan Kartu CRC Antar Diagram<\/a>: Panduan yang menjelaskan cara memindahkan kartu antar diagram berbeda sambil mempertahankan konsistensi data.<\/li>\n<\/ul>\n<p class=\"\" data-nodeid=\"4816\">\n","protected":false},"excerpt":{"rendered":"<p>\u201cCara terbaik untuk belajar desain berorientasi objek bukan dengan menghafal pola \u2014 melainkan dengan memainkan peran-peran tersebut.\u201d Dalam artikel ini,<\/p>\n","protected":false},"author":11,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"","footnotes":""},"categories":[5],"tags":[],"class_list":["post-11061","post","type-post","status-publish","format-standard","hentry","category-software-engineering"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Menguasai Desain Berorientasi Objek dengan Kartu CRC: Studi Kasus yang Ramah Pemula - Media Maya<\/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.cybermedian.com\/id\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/\" \/>\n<meta property=\"og:locale\" content=\"id_ID\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Menguasai Desain Berorientasi Objek dengan Kartu CRC: Studi Kasus yang Ramah Pemula - Media Maya\" \/>\n<meta property=\"og:description\" content=\"\u201cCara terbaik untuk belajar desain berorientasi objek bukan dengan menghafal pola \u2014 melainkan dengan memainkan peran-peran tersebut.\u201d Dalam artikel ini,\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.cybermedian.com\/id\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/\" \/>\n<meta property=\"og:site_name\" content=\"Media Maya\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-21T03:56:23+00:00\" \/>\n<meta name=\"author\" content=\"curtis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\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=\"8 menit\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.cybermedian.com\/id\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.cybermedian.com\/id\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/\"},\"author\":{\"name\":\"curtis\",\"@id\":\"https:\/\/www.cybermedian.com\/id\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d\"},\"headline\":\"Menguasai Desain Berorientasi Objek dengan Kartu CRC: Studi Kasus yang Ramah Pemula\",\"datePublished\":\"2026-02-21T03:56:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.cybermedian.com\/id\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/\"},\"wordCount\":1755,\"articleSection\":[\"Software Engineering\"],\"inLanguage\":\"id\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.cybermedian.com\/id\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/\",\"url\":\"https:\/\/www.cybermedian.com\/id\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/\",\"name\":\"Menguasai Desain Berorientasi Objek dengan Kartu CRC: Studi Kasus yang Ramah Pemula - Media Maya\",\"isPartOf\":{\"@id\":\"https:\/\/www.cybermedian.com\/id\/#website\"},\"datePublished\":\"2026-02-21T03:56:23+00:00\",\"author\":{\"@id\":\"https:\/\/www.cybermedian.com\/id\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.cybermedian.com\/id\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/#breadcrumb\"},\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.cybermedian.com\/id\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.cybermedian.com\/id\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.cybermedian.com\/id\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Menguasai Desain Berorientasi Objek dengan Kartu CRC: Studi Kasus yang Ramah Pemula\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.cybermedian.com\/id\/#website\",\"url\":\"https:\/\/www.cybermedian.com\/id\/\",\"name\":\"Media Maya\",\"description\":\"Belajar satu hal baru setiap hari\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.cybermedian.com\/id\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"id\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.cybermedian.com\/id\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d\",\"name\":\"curtis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\/\/www.cybermedian.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.cybermedian.com\/id\/author\/curtis\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Menguasai Desain Berorientasi Objek dengan Kartu CRC: Studi Kasus yang Ramah Pemula - Media Maya","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.cybermedian.com\/id\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/","og_locale":"id_ID","og_type":"article","og_title":"Menguasai Desain Berorientasi Objek dengan Kartu CRC: Studi Kasus yang Ramah Pemula - Media Maya","og_description":"\u201cCara terbaik untuk belajar desain berorientasi objek bukan dengan menghafal pola \u2014 melainkan dengan memainkan peran-peran tersebut.\u201d Dalam artikel ini,","og_url":"https:\/\/www.cybermedian.com\/id\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/","og_site_name":"Media Maya","article_published_time":"2026-02-21T03:56:23+00:00","author":"curtis","twitter_card":"summary_large_image","twitter_misc":{"Ditulis oleh":"curtis","Estimasi waktu membaca":"8 menit"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.cybermedian.com\/id\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/#article","isPartOf":{"@id":"https:\/\/www.cybermedian.com\/id\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/"},"author":{"name":"curtis","@id":"https:\/\/www.cybermedian.com\/id\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d"},"headline":"Menguasai Desain Berorientasi Objek dengan Kartu CRC: Studi Kasus yang Ramah Pemula","datePublished":"2026-02-21T03:56:23+00:00","mainEntityOfPage":{"@id":"https:\/\/www.cybermedian.com\/id\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/"},"wordCount":1755,"articleSection":["Software Engineering"],"inLanguage":"id"},{"@type":"WebPage","@id":"https:\/\/www.cybermedian.com\/id\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/","url":"https:\/\/www.cybermedian.com\/id\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/","name":"Menguasai Desain Berorientasi Objek dengan Kartu CRC: Studi Kasus yang Ramah Pemula - Media Maya","isPartOf":{"@id":"https:\/\/www.cybermedian.com\/id\/#website"},"datePublished":"2026-02-21T03:56:23+00:00","author":{"@id":"https:\/\/www.cybermedian.com\/id\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d"},"breadcrumb":{"@id":"https:\/\/www.cybermedian.com\/id\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/#breadcrumb"},"inLanguage":"id","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.cybermedian.com\/id\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.cybermedian.com\/id\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.cybermedian.com\/id\/"},{"@type":"ListItem","position":2,"name":"Menguasai Desain Berorientasi Objek dengan Kartu CRC: Studi Kasus yang Ramah Pemula"}]},{"@type":"WebSite","@id":"https:\/\/www.cybermedian.com\/id\/#website","url":"https:\/\/www.cybermedian.com\/id\/","name":"Media Maya","description":"Belajar satu hal baru setiap hari","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.cybermedian.com\/id\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"id"},{"@type":"Person","@id":"https:\/\/www.cybermedian.com\/id\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d","name":"curtis","image":{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.cybermedian.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.cybermedian.com\/id\/author\/curtis\/"}]}},"_links":{"self":[{"href":"https:\/\/www.cybermedian.com\/id\/wp-json\/wp\/v2\/posts\/11061","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cybermedian.com\/id\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cybermedian.com\/id\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cybermedian.com\/id\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cybermedian.com\/id\/wp-json\/wp\/v2\/comments?post=11061"}],"version-history":[{"count":0,"href":"https:\/\/www.cybermedian.com\/id\/wp-json\/wp\/v2\/posts\/11061\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.cybermedian.com\/id\/wp-json\/wp\/v2\/media?parent=11061"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cybermedian.com\/id\/wp-json\/wp\/v2\/categories?post=11061"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cybermedian.com\/id\/wp-json\/wp\/v2\/tags?post=11061"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}