Memahami masalah dengan baik dan mengidentifikasi tujuan yang ingin dicapai.
Menganalisis masalah secara menyeluruh dan mencari cara untuk membaginya menjadi bagian yang lebih kecil.
Merancang algoritma dengan mempertimbangkan langkah-langkah yang diperlukan untuk mencapai solusi.