SlideShare a Scribd company logo
Clean Code and
Design Pattern
Meaningful Names
By:
Adam Mukharil Bachtiar
CLEAN CODE
I like my code to be elegant and efficient. The
logic should be straightforward to make it hard
for bugs to hide, the dependencies minimal to
ease maintenance, error handling complete
according to an articulated strategy, and
performance close to optimal so as not to tempt
people to make the code messy with unprincipled
optimizations. Clean code does one thing well.
Sumber: Clean Code, Robert C. Martin
Bjarne Stroustrup
Founder of C++
Nama itu selalu ada di dalam kode
program dan bisa muncul dalam
bentuk variabel, nama fungsi,
argumen, class, dan packages.
Bad Code
Kode program tersebut untuk
apa? Berapa detik yang
dibutuhkan untuk paham maksud
dari program ini?
Clean Code
Nama fungsi sudah cukup
menggambarkan maksud
dari fungsinya. Nama
variabel lebih jelas.
Bagaimana menggunakan
konsep nama yang baik
dalam membuat kode
program?
Tips 1
Gunakan nama yang
Intention-Revealing
Do this: Instead of this:
Tips 2
Hindari Disinformation
Penggunaan nama yang
mengandung istilah di
pemrograman sebaiknya sesuai
dengan implementasinya.
Do this: Instead of this:
nameList = [’Adam’, ‘Budi’, ‘Vano’]
Catatan:
List dalam python diwakili dengan tanda [ ].
nameList = (’Adam’, ‘Budi’, ‘Vano’)
Catatan:
Tanda ( ) menandakan tipe SET di dalam Python.
Tips 3
Buat nama yang
Jelas Perbedaannya
Do this: Instead of this:
Catatan:
Penggunaan source dan dest (destination)
meningkatkan perbedaan dibanding
penggunaan a1 dan a2
Tips 4
Gunakan
Pronounceable Names
Seringkali programmer
membicarakan kode
program ketika sedang
istirahat ataupun mengobrol.
Do this: Instead of this:
Catatan:
Penggunaan nama yang mudah disebutkan
akan menolong programmer ketika
berdiskusi tanpa komputer.
Tips 5
Gunakan
Searchable Names
Penggunaan nama variabel
dengan satu karakter
biasanya menyulitkan
pencarian kode program.
Do this: Instead of this:
Catatan:
Nama variabel yang hanya satu karakter
akan muncul bersamaan dengan kode lain
yang mengandung karakter tersebut.
Tips 6
Hindari penggunaan
Encoding
Do this: Instead of this:
nama%20orang = [’Adam’, ‘Budi’, ‘Vano’]
Catatan:
Beberapa bahasa sangat strict dalam
penggunaan encoding
namaOrang = (’Adam’, ‘Budi’, ‘Vano’)
Catatan:
Variabel nama orang bisa bertukar dengan
nama_orang. Sesuaikan bahasa yang digunakan.
Do this: Instead of this:
Catatan:
Beberapa programmer biasanya
menambahkan imbuhan untuk penanda.
Do this: Instead of this:
interface IBangunDatar{
..
}
Catatan:
Penggunaan prefix I biasanya digunakan
programmer untuk membedakan interface
dengan abstract class pada Java.
interface BangunDatar{
..
}
Tips 7
Hindari penggunaan
Mental Mapping
Pengajar pemrograman
seringkali menanamkan
penggunaan variabel i dalam
struktur perulangan.
Tips 8
Gunakan kata benda untuk
nama kelas
Tips 9
Nama method harus
mengandung verb atau
verb-phrase
Mahasiswa
deleteMahasiswa
ControllerMatkul
MataKuliah
hapusMataKuliah
cetakReportSKS
Nama Class
Nama
Method
Tips 10
Pilih satu nama untuk
setiap konsep
Sebagai contoh untuk fungsi
ubah data, pilih satu nama baik
ubahData( ) atau editData( ) tapi
tidak keduanya.
Tips 11
Gunakan nama dari
Solution Domain
Penggunaan nama yang
familiar oleh Programmer
dapat membuat kode
program lebih dipahami.
antrianKeluhan ataukeluhanQueue?
Catatan: lakukan ini hanya jika ada istilah yang memang common di domain programming, selebihnya
gunakan problem domain
Tips 12
Tambahkan
Meaningful Context
Pahami Kode
Program Berikut!
Bandingkan kode
sebelumnya
dengan yang ini!

More Related Content

PDF
PDF
Clean Code - Clean Comments
PDF
Clean Code - Formatting Code
PDF
[PBO] Pertemuan 5 - Polymorphism
PPTX
Error Handling - P 7 Teknik Kompilasi
PDF
UML dan Use Case View
DOCX
SOAL ESSAY HOTS ANIMASI 2D 3D SEMESTER 2
PPTX
Analisis Semantik - P 6 Teknik Kompilasi
Clean Code - Clean Comments
Clean Code - Formatting Code
[PBO] Pertemuan 5 - Polymorphism
Error Handling - P 7 Teknik Kompilasi
UML dan Use Case View
SOAL ESSAY HOTS ANIMASI 2D 3D SEMESTER 2
Analisis Semantik - P 6 Teknik Kompilasi

What's hot (20)

PPTX
Intermediate code kode antara
PDF
Lembar Kerja Peserta Didik Jurusan TKJ Perencanaan dan Pengalamatan Jaringan
PDF
Alur Logika Pemrograman
PDF
Menonaktifkan Pesan Notifikasi No Valid Subscription pada Proxmox VE 5.1
PDF
Activity Diagram
PDF
Modul server debian 5
PDF
Pengujian Perangkat Lunak
PPTX
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQL
DOC
Proposal penawaran pembuatan website baru
PPT
Subnetting.ppt
PDF
[PBO] Pertemuan 10 - Generic Programming & Collection
DOCX
PDF
Panduan Praktikum Administrasi Sistem Jaringan - Proxmox VE 8.0.pdf
PDF
Soal dan Jawaban Sumatif Tengah Semester 1 Media Desain Brief.pdf
PPTX
Paralel prosesor
PPTX
Model pengguna
PPTX
Ancaman-Ancaman pada Keamanan Jaringan Komputer
PDF
Soal dan Jawaban Sumatif Tengah Semester 1 Perangkat Lunak Desain.pdf
PDF
Visual basic materi pembelajaran dasar
PPT
7. cara penanganan kesalahan
Intermediate code kode antara
Lembar Kerja Peserta Didik Jurusan TKJ Perencanaan dan Pengalamatan Jaringan
Alur Logika Pemrograman
Menonaktifkan Pesan Notifikasi No Valid Subscription pada Proxmox VE 5.1
Activity Diagram
Modul server debian 5
Pengujian Perangkat Lunak
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQL
Proposal penawaran pembuatan website baru
Subnetting.ppt
[PBO] Pertemuan 10 - Generic Programming & Collection
Panduan Praktikum Administrasi Sistem Jaringan - Proxmox VE 8.0.pdf
Soal dan Jawaban Sumatif Tengah Semester 1 Media Desain Brief.pdf
Paralel prosesor
Model pengguna
Ancaman-Ancaman pada Keamanan Jaringan Komputer
Soal dan Jawaban Sumatif Tengah Semester 1 Perangkat Lunak Desain.pdf
Visual basic materi pembelajaran dasar
7. cara penanganan kesalahan
Ad

More from Adam Mukharil Bachtiar (20)

PDF
Materi 8 - Data Mining Association Rule.pdf
PDF
Model Driven Software Development
PDF
Scrum: How to Implement
PDF
Data Mining Clustering
PPTX
Data Mining Klasifikasi (Updated 30 Desember 2020)
PDF
Analisis Algoritma - Strategi Algoritma Dynamic Programming
PDF
Analisis Algoritma - Strategi Algoritma Divide and Conquer
PDF
Analisis Algoritma - Strategi Algoritma Greedy
PDF
Analisis Algoritma - Penerapan Strategi Algoritma Brute Force
PDF
Analisis Algoritma - Strategi Algoritma Brute Force
PDF
Analisis Algoritma - Kelas-kelas Dasar Efisiensi Algoritma
PDF
Analisis Algoritma - Teorema Notasi Asimptotik
PDF
Analisis Algoritma - Notasi Asimptotik
PDF
Analisis Algoritma - Langkah Desain Algoritma
PDF
Validasi ide Menggunakan Javelin Board (Idea Validation)
PDF
Analisis Algoritma - Pengantar Kompleksitas Algoritma
PDF
Analisis Algoritma - Pengantar Analisis Algoritma
PDF
Mini Google Design Sprint
PDF
Scrum: How to Implements (Update)
PDF
Business Model Canvas: Cara Pengisian
Materi 8 - Data Mining Association Rule.pdf
Model Driven Software Development
Scrum: How to Implement
Data Mining Clustering
Data Mining Klasifikasi (Updated 30 Desember 2020)
Analisis Algoritma - Strategi Algoritma Dynamic Programming
Analisis Algoritma - Strategi Algoritma Divide and Conquer
Analisis Algoritma - Strategi Algoritma Greedy
Analisis Algoritma - Penerapan Strategi Algoritma Brute Force
Analisis Algoritma - Strategi Algoritma Brute Force
Analisis Algoritma - Kelas-kelas Dasar Efisiensi Algoritma
Analisis Algoritma - Teorema Notasi Asimptotik
Analisis Algoritma - Notasi Asimptotik
Analisis Algoritma - Langkah Desain Algoritma
Validasi ide Menggunakan Javelin Board (Idea Validation)
Analisis Algoritma - Pengantar Kompleksitas Algoritma
Analisis Algoritma - Pengantar Analisis Algoritma
Mini Google Design Sprint
Scrum: How to Implements (Update)
Business Model Canvas: Cara Pengisian
Ad

Clean Code and Design Pattern - Meaningful Names