Saya menemukan salah satu faktor yang membuat seorang pemula sulit belajar programming, yaitu tidak memiliki kerangka belajar pemrograman. Kerangka ini sangat memudahkan kita belajar pemrograman, mempelajari bahasa baru dalam waktu singkat. Bukan karena menghapal rumus cepat 😀 Mau belajar bahasa apapun, baliknya ke kerangka ini lagi. Berikut saya bagikan kerangka belajar pemrograman tersebut.
Tapi sebelum Anda menyesal, saya ingatkan juga bahwa belajar pemrograman memang tidak mudah. Tidak ada cara yang mudah, hanya ada cara yang tepat. LURUSKAN NIAT ANDA. Jika niat Anda cari cara yang mudah, Anda akan sangat-sangat menyesal dan sebaiknya segera tutup halaman ini.
Kerangka ini sebetulnya bisa kita temukan dengan membaca buku Algoritma dan bahasa pemrogaman secara UTUH, bukan secuil-secuil. Buku pemrograman yang bagus, akan mengajarkan kerangka ini dari dasar, langkah demi langkah. Oleh sebab itu sejak tahun 1990an, kita sudah mengenal buku-buku menguasai bahasa pemrograman dalam 21 hari seperti Teach Yourself C++ in 21 days misalnya.
Programmer yang baik akan menguasai kerangka ini dulu, dijadikan sebagai mindset, kemudian dilatih berulang-ulang menjadi habit/kebiasaan. Di luar kerangka ini, kita tinggal baca help, manual atau dokumentasi.
Oke, masih bersama saya rupanya. Berikut kerangka belajar pemrograman yang saya maksud. 🙂
1. Membuat Alur Kerja
Coba pelajari resep sederhana membuat mie rebus atau nasi goreng. Ada langkah-langkahnya kan? Ada urutan prosesnya kan? Nah itulah salah satu bentuk alur kerja. Urutan proses yang benar, akan memberikan hasil yang benar atau diinginkan.
Cobalah ubah urutan prosesnya.Misalnya, pada saat Anda membuat nasi goreng, taruh kecapnya ke dalam bumbu sebelum nasi. Hasilnya apa?
Nah, membuat program juga perlu tahu dulu urutan proses yang harus dilakukan bagaimana sebelum menulis source codenya. Di sinilah kita mengenal pseudo-code, yang mewakili urutan proses tersebut secara abstrak.
Nah di sini kita harus tentukan dulu problemnya apa dan kita mau buat apa? Alur kerjanya bagaimana? Urutan prosesnya apa saja? Apakah itu hanya berupa operasi matematika sederhana atau operasi yang lebih kompleks? Kalau tidak tahu alur kerjanya, trus mau bikin apa?
2. Membuat Statement & Expression
Statement dan Expression adalah perintah atau instruksi yang kita berikan kepada CPU untuk diproses. Misalnya, statement untuk menerima input, menghasilkan output ke layar, operasi matematika, operasi logika, deklarasi variabel.
Untuk tahap awal, fokus saja pelajari statement dasar ini
- Input & Output: Buatlah program Hello World yang menampilkan nama Anda.
- Operasi aritmatika sederhana: Buatlah program sederhana untuk penjumlahan 2 variabel, perkalian dan pembagian. Di sini Anda akan belajar berbagai tipe variabel numerik.
- Operasi logika: Buatlah program sederhana dengan melakukan operasi logika AND, OR, XOR, NOT, NAND, dengan input bertipe boolean, numerik bahkan string.
- Operasi string: String adalah tipe variabel untuk menampung data teks yang sangat bermanfaat dan sangat sering digunakan. Cobalah buat program sederhana untuk memotong string, menggabungkan 2 string, membolak-balik (reverse) string, mengacak-acak isi elemennya. Percayalah ini bagian yang sangat menyenangkan 😀
Sebagai tambahan, pelajari tipe data yang lebih kompleks seperti record, pointer, array, set, dan tipe data yang spesifik ada di bahasa pemrograman tersebut. Setiap tipe data atau tipe variabel, punya karakternya sendiri. Bagaimana data tersebut disimpan di memori, diolah, ditampilkan ke layar, dan lain sebagainya.
3. Membuat Keputusan (Decision) atau Percabangan
Salah satu fitur yang membuat prosesor itu cukup ‘pintar’ adalah karena ia dapat membuat keputusan berdasarkan kondisi yang diterimanya. Keputusan yang konsisten tentu saja 😀 Membuat keputusan ini direpresentasikan dalam statement IF dan CASE (atau SWITCH).
Dalam bentuk sederhananya seperti ini:
C/C++
if(kondisi) { // jalankan blok statement ini }
Pascal
if kondisi then begin // jalankan blok statement ini end;
Python
if kondisi: statement
Pada intinya, statement IF ini artinya: Jika kondisinya begini, lakukan ini, tapi kalau kondisinya begitu, lakukan yang itu. 🙂
Statement IF bisa dibuat beranak-pinak, artinya dalam statement IF, kita bisa buat statement IF lagi di dalamnya. Istilahnya Nested (bersarang).
CASE/SWITCH
Statement CASE atau SWITCH adalah bentuk decision yang lebih lengkap dari pada IF. Jika kita harus melakukan pengecekan variabel yang variasinya bukan cuma TRUE dan FALSE, maka gunakan statement CASE atau SWITCH.
C/C++
switch(condition) { case satu: { // jalankan statement ini } case dua: { // jalankan statement ini } else { // jalankan statement ini } }
4. Membuat Perulangan, Loop atau Repetition
Nah, perulangan ini sangat membantu programmer dalam membuat program. Kalau CPU tidak mengenal perulangan, niscaya tidak ada orang yang mau jadi programmer 🙂
Perulangan artinya melakukan satu atau beberapa statement sekaligus dalam jumlah tertentu atau sampai menemukan suatu kondisi.
FOR (Unconditional Loop)
Statement FOR pada intinya memberi instruksi kepada CPU untuk menjalankan perintah tersebut sebanyak sekian kali. Disebut Unconditional Loop sebab dia baru selesai setelah melakukannya sebanyak X.
Misalnya, saya mau instruksikan CPU untuk membuat flashdisk custom dengan memanggil fungsi buat_flashdisk_custom() sebanyak 1000 pcs. Kira-kira instruksinya begini.
C/C++
for( jumlah = 1; jumlah <= 1000; jumlah++ ) { buat_flashdisk_custom(); }
Pascal
for jumlah:=1 to 1000 do buat_flashdisk_custom;
atau
for jumlah:=1 to 1000 do begin buat_flashdisk_custom; end;
WHILE-DO & DO-WHILE (Conditional Loop)
Conditional Loop artinya memberi instruksi kepada CPU untuk menjalankan perintah berulang-ulang sampai suatu kondisi ditemukan (do-while) atau selama kondisi tersebut ditemukan (while-do). Biar gampang, bedanya hanya di pengecekan kondisi saja. WHILE-DO mengecek kondisi di depan sebelum instruksi loop dijalankan. Sementara DO-WHILE mengecek kondisi di akhir setelah instruksi.
while-do
C/C++
jumlah = 0; while(jumlah < 1000) { buat_flashdisk_custom(); jumlah++; }
do-while
C/C++
jumlah = 0; do { buat_flashdisk_custom(); jumlah++; } while(jumlah < 1000);
Bisa lihat bedanya? Mungkin belum. Kita butuh kasus yang lebih sesuai untuk mengetahui kapan pakai while-do dan kapan pakai do-while.
Penutup
Nah, kerangkanya sih cuma itu aja. Jangan dihafalkan. Tapi jadikan sebagai mindset, lalu otomatiskan sebagai habit/kebiasaan. Sisanya baca manual dan dokumentasi. Lupa, bingung, error, tinggal baca manual aja kok. Yang susah itu mengalokasikan ruang pikiran dan waktu untuk latihan 😀
Bagaimana dengan Pemrogaman Berorientasi Objek atau OOP (Object Oriented Programming)? OOP itu perluasan saja dari pemrograman fungsional. Anda bisa hidup tanpa OOP, tapi Anda tidak bisa hidup tanpa FUNCTIONAL programming. OOP akan kita bahas di kesempatan lainnya.
Jika Anda tertarik belajar pemrograman terutama C, C++, Pascal/FreePascal/Delphi, Python, PHP, bisa belajar sama saya gratis di kantor. Syaratnya ngga susah kok, cuma rajin dan kerja keras 😀