SlideShare a Scribd company logo
Clean Code and
Design Pattern
Clean Method
By:
Adam Mukharil Bachtiar
Kunci untuk membuat method
atau fungsi yang clean adalah
dengan memastikan fungsi tidak
terlalu besar.
Bad Code
Fungsi tentang apa?
Apa isi dari if tersebut?
Clean Code
Semua tujuan fungsi
selain memastikan
TestPage atau bukan,
dipisah ke luar fungsi.
Bagaimana membuat
method yang baik dalam
membuat kode program?
Tips 1
Method yang dibuat
harus berukuran kecil
Tidak ada ketentuan seberapa
kecil suatu method harus dibuat
tapi pastikan hanya satu cerita
saja yang disampaikan.
Catatan: Dengan perkembangan teknologi pemrograman, functional programming bisa makin
memperumit pembacaan kode apabila tidak diikuti dengan clean method
Tips 2
Terapkan Blocks dan
Indentation
Apabila menemukan blok
perulangan atau percabangan,
pastikan isi statement yang cukup
panjang dipisah menjadi sebuah
method tersendiri.
BLOCKS
Catatan: Sebisa mungkin buat isi statement di blok tersebut hanya satu baris
Sebisa mungkin, buatlah indentasi
di method berjumlah maksimal
satu atau dua level.
INDENTATION
Catatan: Seringkali kita menerapkan nested loop atau percabangan lebih dari dua level yang
membuat kode menjadi sulit dipahami
Do this: Instead of this:
Tips 3
Pastikan method hanya
melakukan satu hal
Untuk memastikan satu method
hanya memiliki satu pekerjaan,
gunakan TO Paragraph.
TO RenderPageWithSetupsAndTeardowns, we check to see whether the page is a test page and if
so, we include the setups and teardowns. In either case we render the page in HTML.
Tips 4
Pastikan menerapkan
The Stepdown Rule
To include the setup and teardowns, we include setups, then we include
the test page content, and then we include the teardowns.
To include the setups we include the suite setups if this is a suite,
then we include the regular setup.
To include the suite setup, we search the parent hierarchy forthe
“SuiteSetUp” page and an include statement with the path of that
page.
To search the parent ...
Catatan: Dengan membuat hal seperti ini maka kita akan mudah untuk memecah method.
Tips 5
Pastikan blok switch
ringkas
Salah satu langkah yang bisa
dilakukan untuk membuat blok
switch menjadi ringkas adalah
dengan mengembalikan method
di statement switch-nya.
Perintah return method di badan SWITCH mempermudah
pembacaan kode program
Kode program sebelumnya akan
bermasalah jika ada jenis pegawai
baru yang ditambah yang membuat
beberapa method memiliki beberapa
kemiripan struktur.
Catatan: Gunakan ABSTRACT FACTORY Pattern untuk menyembunyikan
kerumitan di penciptaan tiap objek.
Abstract
Factory Pattern
Tips 6
Hindari pengunaan
parameter yang
terlalu banyak
Jumlah parameter yang ideal
adalah Niladic, Monadic, dan
Dyadic. Selebihnya gunakan objek
atau collection (list, stack, dsb).
PARAMETER IDEAL
public void initMap();
public int addTwoNumber(int operandA, int operandB);
public boolean sendMessage(String message);
Niladic, Monadic, and Dyadic:
Object or List Arguments:
public void renderPage(PageData pageData);
public void renderPeopleList(List<People> peopleList);
Gunakan return statement
dibanding menggunakan parameter
output pada argumen method.
Catatan: Beberapa bahasa pemrograman masih memungkinkan penggunaan
paramater output sehingga ini bisa jadi alternatif.
Tips 7
Pastikan method tidak
memiliki efek samping
Efek Samping
Tips 8
Pastikan method hanya
mengerjakan sesuatu atau
mengembalikan sesuatu
public boolean set(String attribute, String value)
if(attributeExists(“username”)){
setAttribute(“username”,”edinson”);
...
}
if (set("username", "unclebob"))...
Tips 9
Gunakan exception untuk
return error di method
Don’t do this
Do this
Catatan: Nilai exception akan bisa digunakan untuk proses testing dan ditangani dengan baik
Then you can do this

More Related Content

PDF
Clean Code - Clean Comments
PDF
Clean Code and Design Pattern - Meaningful Names
PDF
Clean Code - Formatting Code
PDF
UML dan Use Case View
PPT
7. cara penanganan kesalahan
PDF
E-Business (Business Process and Process Model)
PPTX
Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)
PPTX
Analisis Semantik - P 6 Teknik Kompilasi
Clean Code - Clean Comments
Clean Code and Design Pattern - Meaningful Names
Clean Code - Formatting Code
UML dan Use Case View
7. cara penanganan kesalahan
E-Business (Business Process and Process Model)
Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)
Analisis Semantik - P 6 Teknik Kompilasi

What's hot (20)

PDF
Software Engineering 1 (Requirement Engineering)
PDF
Activity Diagram
PDF
[PBO] Pertemuan 10 - Generic Programming & Collection
DOCX
Soal essay basis data xi
PDF
CAPITULO 1 DE GREENFOOT
PDF
[PBO] Pertemuan 5 - Polymorphism
PDF
Tutorial Packet Tracer NAT DHCP DNS Web Server FTP Email NTP SSH TELNET
PDF
Modul 05 Framework CodeIgniter.pdf
PPTX
Error Handling - P 7 Teknik Kompilasi
PPTX
Intermediate code kode antara
PDF
Mini Google Design Sprint
PDF
Bab 8 pendeteksian tepi
PPTX
Struktur kontrol percabangan
PDF
Lembar Kerja Peserta Didik Jurusan TKJ Perencanaan dan Pengalamatan Jaringan
PDF
Scrum: How to Implement
DOC
Deadlock materi kuliah
PDF
PHP CRUD Database Mysql
PDF
Intelijensia buatan - 02 Agen Cerdas
PDF
Materi Kuliah Data Mining full
PPT
Software Engineering 1 (Requirement Engineering)
Activity Diagram
[PBO] Pertemuan 10 - Generic Programming & Collection
Soal essay basis data xi
CAPITULO 1 DE GREENFOOT
[PBO] Pertemuan 5 - Polymorphism
Tutorial Packet Tracer NAT DHCP DNS Web Server FTP Email NTP SSH TELNET
Modul 05 Framework CodeIgniter.pdf
Error Handling - P 7 Teknik Kompilasi
Intermediate code kode antara
Mini Google Design Sprint
Bab 8 pendeteksian tepi
Struktur kontrol percabangan
Lembar Kerja Peserta Didik Jurusan TKJ Perencanaan dan Pengalamatan Jaringan
Scrum: How to Implement
Deadlock materi kuliah
PHP CRUD Database Mysql
Intelijensia buatan - 02 Agen Cerdas
Materi Kuliah Data Mining full
Ad

Similar to Clean Method (20)

PPTX
(Py CS1)_ Lesson 1 - Syntax & Sequences.pptx
PDF
Algoritam1
PDF
Chapter 1 perkenalan code igniter 2.0
PDF
Pengenalan App Inventor_1.pdf
DOCX
Algoritma dan pemrograman
PPTX
Pemrograman_Dasar_Materi_1_konsep-algoritma.pptx
PPTX
516206149-Solid-Principle-Dan-Design-Pattern.pptx
PPTX
Django Mini Tutorial
PDF
Algoritma Pemrogaman
PDF
[PBO] Pertemuan 13 - Membuat Aplikasi Desktop dengan JDBC DAO MVC
PPTX
Power Point PB 3 - Penulisan dan Notasi Algoritma Pemrograman.pptx
PPTX
ALGORITMA dan PEMROGRAMAN
PPTX
INFORMATIKA KELAS 8 MATERI ALGORITMA.pptx
PPTX
Power Point PB 3 - Penulisan dan Notasi Algoritma Pemrograman.pptx
PDF
Tutorial ci
DOCX
Pengertian pemrograman terstruktur
PDF
JENI-J2ME-Bab09-Optimisasi.pdf
PDF
Diskusi Dasar Pemrograman Pertemuan Ke-4.pdf
DOCX
BAB II Landasan Teori TB
PPTX
2- ALGORITMA, FLOWCHART, TIPE DATA, OPERATOR.pptx
(Py CS1)_ Lesson 1 - Syntax & Sequences.pptx
Algoritam1
Chapter 1 perkenalan code igniter 2.0
Pengenalan App Inventor_1.pdf
Algoritma dan pemrograman
Pemrograman_Dasar_Materi_1_konsep-algoritma.pptx
516206149-Solid-Principle-Dan-Design-Pattern.pptx
Django Mini Tutorial
Algoritma Pemrogaman
[PBO] Pertemuan 13 - Membuat Aplikasi Desktop dengan JDBC DAO MVC
Power Point PB 3 - Penulisan dan Notasi Algoritma Pemrograman.pptx
ALGORITMA dan PEMROGRAMAN
INFORMATIKA KELAS 8 MATERI ALGORITMA.pptx
Power Point PB 3 - Penulisan dan Notasi Algoritma Pemrograman.pptx
Tutorial ci
Pengertian pemrograman terstruktur
JENI-J2ME-Bab09-Optimisasi.pdf
Diskusi Dasar Pemrograman Pertemuan Ke-4.pdf
BAB II Landasan Teori TB
2- ALGORITMA, FLOWCHART, TIPE DATA, OPERATOR.pptx
Ad

More from Adam Mukharil Bachtiar (20)

PDF
Materi 8 - Data Mining Association Rule.pdf
PDF
Model Driven Software Development
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
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
Scrum: How to Implements (Update)
PDF
Business Model Canvas: Cara Pengisian
PDF
SCRUM: How to implements
Materi 8 - Data Mining Association Rule.pdf
Model Driven Software Development
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
Analisis Algoritma - Langkah Desain Algoritma
Validasi ide Menggunakan Javelin Board (Idea Validation)
Analisis Algoritma - Pengantar Kompleksitas Algoritma
Analisis Algoritma - Pengantar Analisis Algoritma
Scrum: How to Implements (Update)
Business Model Canvas: Cara Pengisian
SCRUM: How to implements

Clean Method