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

PPS
Coding Best Practices
PPTX
clean code book summary - uncle bob - English version
PDF
PPTX
Clean Code I - Best Practices
PPTX
Clean code slide
KEY
Clean code and Code Smells
PPTX
Clean code
PPTX
C# language
Coding Best Practices
clean code book summary - uncle bob - English version
Clean Code I - Best Practices
Clean code slide
Clean code and Code Smells
Clean code
C# language

What's hot (20)

PPTX
Clean code
PDF
Angular components
PPTX
Clean code coding like a professional
PPTX
Coding standards
ODP
Introduction to BDD
PPT
Introduction To C#
KEY
Clean Code
PPTX
Dts x dicoding #1 memulai pemrograman kotlin
PPT
TDD (Test Driven Design)
PPTX
Coding standards and guidelines
PPTX
Introduction to c#
PDF
Android intents
PDF
Function in C
PDF
Clean code
PDF
PDF
Refactoring: Improve the design of existing code
PPTX
Clean code
PPTX
Functions in c
PPTX
C# programming language
PPT
Angular 8
Clean code
Angular components
Clean code coding like a professional
Coding standards
Introduction to BDD
Introduction To C#
Clean Code
Dts x dicoding #1 memulai pemrograman kotlin
TDD (Test Driven Design)
Coding standards and guidelines
Introduction to c#
Android intents
Function in C
Clean code
Refactoring: Improve the design of existing code
Clean code
Functions in c
C# programming language
Angular 8
Ad

More from Adam Mukharil Bachtiar (20)

PDF
Materi 8 - Data Mining Association Rule.pdf
PDF
Clean Code - Formatting Code
PDF
Clean Code - Clean Comments
PDF
Model Driven Software Development
PDF
Scrum: How to Implement
PDF
Pengujian Perangkat Lunak
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
Activity Diagram
PDF
UML dan Use Case View
PDF
Analisis Algoritma - Langkah Desain Algoritma
PDF
Validasi ide Menggunakan Javelin Board (Idea Validation)
Materi 8 - Data Mining Association Rule.pdf
Clean Code - Formatting Code
Clean Code - Clean Comments
Model Driven Software Development
Scrum: How to Implement
Pengujian Perangkat Lunak
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
Activity Diagram
UML dan Use Case View
Analisis Algoritma - Langkah Desain Algoritma
Validasi ide Menggunakan Javelin Board (Idea Validation)
Ad

Clean Code and Design Pattern - Meaningful Names