Bagikan

Belajar pemrograman otodidak untuk pemula

Resep dan Tips untuk kamu yang baru pertama belajar pemrograman secara mandiri.

  • Oktober 31, 2023

Membuat program komputer terdengar keren, seperti membuat web, aplikasi smartphone atau kamu merasa jengah dengan program yang ada di komputer lalu ingin membuat program sendiri.

Rasanya sayang kalo punya perangkat komputer tapi gak dimanfaatin dengan koding. Koding bisa membuka peluang kita membuat karya dengan komputer secara leluasa sekaligus melatih daya penalaran dan kreatif kita.

Ada banyak program yang bisa kita bikin dengan komputer, antara bertujuan untuk manfaat ataupun hiburan. Misalnya, kamu sering baca novel sama nulis cerita-cerita pendek. Dengan manfaatin komputer kamu bisa menghidupkan cerita-cerita kamu ke dalam visual novel atau game kalau kamu bisa koding.

Gak hanya hiburan, mari kita berpikir sedikit agak jauh. Misalnya kamu tertarik dengan robot dan aplikasi-aplikasi hebat di ponsel pintar kita, sebuah keajaiban itu semua berhasil karena ada algoritme yang di koding oleh programmer – yang mungkin salah satunya itu kamu.

Semoga disuatu hari nanti, ada nama orang indonesia yang bikin sistem operasi, aplikasi canggih, bahasa pemrograman, web framework, game, alat keamanan siber ataupun hal-hal bermanfaat lainya menggunakan komputer (ga selamanya harus berkaitan dengan bisnis, seperti startup teknologi dsb).

Semua itu dimulai dari langkah kecil dari satu aktivitas yang dikenal dengan programming, sebuah usaha membuat program komputer untuk menjalankan algoritme. Penulis merangkum jalan pemrograman yang ia raih saat belajar otodidak saat dibangku sekolah lalu kuliah hingga sekarang.

Penulis tidak melihat program sebagai prospek karir cerah (itu hanya bonus), tetapi sebagai petualangan sains mendalami seni didalam komputer.

Kenali dirimu saat melihat komputer

Komputer adalah mesin elektronik untuk mengolah perhitungan informasi, namun tanpa ada nya program didalamnya komputer hanya mesin elektronik bodoh yang tidak menggunakan kekuatanya. Kekuatanya dari komputer sudah tampak begitu jelas mengubah peradaban manusia di abad ke-21, tapi kekuatan yang kuat sampai terlalu ajaib itu perlu seorang penyihir.

Penyihir itu adalah programmer dan kamu adalah calon penyihir itu. Programmer merupakan sebuatan untuk orang yang membuat program. Saya menggunakan sebut penyihir untuk menyebut programmer. Saya mengajak kamu untuk melihat program komputer dari sesuatu yang ajaib berangsur berpindah ke hal yang bisa masuk akal.

Kita dalah penyihir dan komputer adalah tongkat dan topi penyihir kita.

Sebagai penyihir muda kita perlu mengetahui teori dan teknik sihir, tentu dari yang terkecil supaya kita tidak celaka.

  • Pertama, kamu mententukan kamu ini penyihir seperti apa ?
    • Penyihir
      • Web
      • Data Sain
      • Keamanan Siber
      • Sistem
      • Game
      • Robot atau semacamnya.
    • Penulis sendiri : Penyihir Web, Keamanan Siber, Sistem dan Game.
    • Jenis penyihir tergantung dengkan perkembangan teknologi informasi, daftar diatas tidak semua, maka sisanya kamu cari/riset sendiri.
  • Siap belajar teori sihir dasar, meskipun tidak terlihat berguna ?
    • Belajar tentang dasar pemrograman komputer, seperti
      • Algoritme
      • Teknik pemrograman dasar
      • Flowchart
      • Organisasi komputer (tentang perangkat keras komputer seperti CPU, RAM,HDD dsb)
    • Belajar cara berpikir seperti ilmuan komputer
      • Berpikir Komputasional
      • (Opsional) Kemampuan memahami teks untuk bisa baca tutorial atau buku panduan
  • (Optional) Siap belajar bahasa inggris sampai tahap membaca (reading) yang cukup untuk memahami teks.

Setelah kamu menentukan satu jenis penyihir apa yang cocok dengan kamu saat ini dan baca-baca teori sihir dasar, maka kamu siap ke tahap selanjutnya. Teori sihir dasar ini gak berkerja di komputer tapi sebagai kerangka pikir saat kamu menyusun program.

Menyiapkan komputer untuk pemrograman

Penulis berasumsi kamu sudah cukup mengenali administrasi komputer, seperti install/menghapus program di sistem operasi, menambah dan menghapus file dan folder. Ada beberapa persiapan yang perlu kamu lakukan untuk membuat lingkungan komputer kamu siap untuk memrogram.

  1. Install Kode Editor, ada banyak jenisnya pilih yang sesuai.

    • Visual Studio Code (Disarankan)
    • Notepad++ (untuk RAM <3GB)
    • Gedit (untuk RAM <3GB)
    • micro
  2. (Opsional) Kalau kamu punya komputer dengan RAM kecil, saya menyarankan pindah ke sistem operasi berbasis Linux agar lebih ringan seperti Lubuntu atau Linux Mint.

  3. (Opsional) Urusan pemrograman akan lebih mudah di sistem operasi berbasis Posix seperti sistem berbasis Linux atau MacOS, tetapi bila menggunakan windows ada opsi WSL namun tidak disarankan untuk RAM kurang dari 8GB.

  4. Install Bahasa Pemrograman, tapi untuk ini akan dibahas lanjut di bagian Belajar Dasar Pemrograman.

Persiapan diatas untuk memberikan kenyamanan dalam koding. Jangan lupa sesuai personalisasi di teks editor agar mengurangi stress saat koding.

Jangan disibukan mencari bahasa pemrograman untuk pemula

Ini kesesatan umum yang ketika belajar pemrograman. Sebenarnya ada bahasa yang mudah untuk pemula seperti Python dan Javascript, tapi ini jawaban yang subjektif dan setiap orang bisa beda-beda merasakanya.

Ada yang bilang Python susah, kemudian Javascript susah akhirnya keduanya susah. Sibuk milih bahasa tidak ada satupun konsep pemrograman yang didapat.

Semua bahasa pemrograman ketika belajar pemrograman pertama pasti terasa susah dan akan terasa mudah setelah terbiasa dan dari sini perlahan memahami.

Maka, pilihlah bahasa pemrograman yang mengklaim dirinya mudah dipelajari dari halaman web resminya. Saat memilih bahasa pastikan kamu mengunjungi halaman resminya supaya informasi yang kamu dapat jelas dan tidak bias.

Berikut contohnya ini dan bahasa awal yang saya sarankan:

Jika tidak ada pilihan bahasa yang lebih mudah, maka pakai salah satu contoh bahasa di atas sebagai pengantar.

Ketika kamu sudah cukup punya konsep pemrograman, seperti bisa membuat kasus program perulangan dan percabangan dengan array. Kemudian, belajar bahasa lain ketika ada keperluan disana, seperti kamu ingin membuat game maka belajar GDscript atau C# dan sebagainya.

Jadi, tidak masalah bahasa yang kamu pelajari pertama kali “kurang terpakai”, karena yang terpenting kamu mendapat konsep pemrograman.

Penulis belajar pemrograman dahulu mengunakan Visual Basic 6, lalu apakah masih adakah sekarang yang pakai visual basic 6 ? jawabanya hampir tidak ada, sudah digantikan dengan VB.NET.

Namun, ilmu yang didapat masih bisa digunakan ? jawabanya masih dan sangat berguna bahkan web yang kamu lihat ini salah satu hasilnya.

Bahasa kedua yang saya pelajari ketika pindah dari VB6 yakni Python sekaligus pindah sistem operasi ke Linux yang dibilang cocok untuk programmer. Saya pindah lagi ke C\C++, Java dan Ruby karena tugas kuliah, kemudian Javascript lalu Go (sekitar tahun 2020) secara mandiri untuk magang. Akhir-akhir ini, saya belajar berkenalan dengan bahasa fungsional sekedar untuk menambah wawasan.

Dan tahu kamu apa ? pasti suatu saat kamu akan berpindah bahasa pemrograman dari satu bahasa ke bahasa lain baik secara sukarela ataupun tuntutan dari luar seperti tugas sekolah, lowongan kerja atau memang bahasanya nyaman buat kamu.

Bahasa pemrograman itu media komunikasi, Konsep pemrograman itu inti dari komunikasi, Program itu bukti keberhasilan komunikasi dengan komputer.

Istilah dasar dalam pemrograman

  • Source code

    Saat membuat program kita akan menulis file yang disebut dengan source code/kode sumber. Kode sumber ini yang akan nanti dijalankan oleh bahasa pemrograman untuk menjalankan kode program yang kita tulis.

  • Kompiler

    Program yang membaca kode sumber lalu menghasilkan program biner untuk dijalankan oleh komputer. Secara de facto, kompiler adalah program yang berisi definisi bahasa pemrograman. Jadi kalau mau pakai bahasa pemrograman, kita perlu download kompiler/interpreternya.

  • Program Biner

    Program yang sudah diterjemahkan kedalam bahasa mesin yang siap dijalankan oleh sistem operasi. Kita biasa menjumpainya pada file eskutable .exe atau ELF.

  • Interpreter

    Program yang membaca kode sumber dan menjalankan arti kode sumber langsung tanpa harus menjadi program biner. Sama seperti kompiler, program yang berisi definisi bahasa pemrograman. Jadi kalau mau pakai bahasa pemrograman, kita perlu download kompiler/interpreternya.

  • Code Editor

    Tempat kita menulis dan mengedit kode sumber, biasanya memiliki warna-warni diteksnya yang disebut code highlight.

  • Software Developer

    Istilah untuk pengembang perangkat lunak dalam bahasa Ingris. Ini mencakup Web, IoT dan Mobile.

Belajar Dasar Pemrograman

Memilih bahasa pemrograman harus disesuaikan dengan jenis penyihir kamu, tapi untuk latihan dasar pemrograman hal itu bisa diabaikan sementara. Saya menyarankan untuk menggunakan bahasa pemrograman Python, karena sintaksnya sederhana, mudah dipahami dan tidak terlalu kompleks.

Ada beberapa unsur dasar di pemrograman yang perlu kamu ketahui:

  • Nilai Literal dan Tipe Data
  • Variabel
  • Input Pengguna
  • Pemilihan
  • Pengulangan
  • Koleksi sepert Array atau List
  • Fungsi

Lalu coba terapkan teknik untuk mengasah keterampilan, coba buat program berikut :

  • Program Menu Sederhana
    • Contoh: Menu ATM, Menu Kasir
    • Petunjuk teknik: variable, input pengguna, looping dan pemilihan.

Berlatih menantang diri

Pelaut yang hebat tidak tercipta dari lautan yang tenang.

Pepatah diatas mewakilkan bagian ini. Kita mulai belajar pemrograman dari teknik dasar yang kecil dan masalah sederhana lalu perlahan berpindah ke membuat algoritme sendiri untuk masalah yang lebih kompleks dan belajar teknik yang sulit dan displin yang rumit.

Kalau kamu

  • Koding masih kopi-paste tanpa pemahaman mendasar.
    • Perbaikan: coba pahami kode terlebih tahu kalau belum paham, kopi-paste disini bisa menghambat proses belajar kamu.
  • Menghapal kodingan, tapi ga mencoba membiasankan diri tanpa banyak menghapal.
    • Perbaikan: Kodingan di ingat jangan lewat hapalan tapi lewat pembiasaan diri, seperti kita belajar bahasa Indonesia.
  • Alergi bahasa Inggris
    • Perbaikan: Coba di kurangi dahulu dengan membiasakan diri dengan bahasa Inggris dan gunakan fitur penerjemah.

Mulai kebiasaan ini sebaiknya diperbaiki, sebagai bentuk latihan menantang diri.

Setelah terbilang cukup menguasai teknik dasar, saatnya kamu belajar pemrograman sesuai dengan jenis penyihirmu. Jika kamu Web mulai belajar hal pemrograman terkait web, dan yang lain juga menyesuaikan.

Berhubung penulis berkecimpung di bidang Web, Sistem dan Game, berikut daftar saran saya:

  • Web

    • Kenalan dengan konsep kerja World-Wide-Web dan cara kerja HTTP.
    • Belajar bahasa markup seperti HTML dan CSS.
    • Belajar bahasa pemrograman PHP dan Javascript (sebatas untuk antarmuka depan).
    • Belajar tentang pemrograman berbasis objek dan web framework.
    • Belajar tentang konsep database dan basis data.
  • Sistem

    • Pemahaman administrasi sistem dan jaringan komputer.
    • Familiar dengan sistem operasi Linux.
    • Konsep kerja sistem operasi, protokol jaringan dan organisasi komputer.
    • Belajar bahasa pemrograman C\C++, Go, Python atau Assembly.
    • Berkenalan dengan konsep-konsep keamanan dan pertahanan jaringan.
  • Game

    • Belajar pemrograman berorientasi objek dan konsep grafika komputer.
    • Tidak asing dengan konsep matriks dan ruang vektor (tidak harus jago matematika).
    • Belajar bahasa pemrograman GDScript, Lua, RenPy atau Haxe (tergantung Game Engine yang dipakai).
    • Berkenalan dengan Game Engine seperti Godot, Renpy, LOVE atau HaxeFlixel.
  • IoT/Robotika

    • Belajar bahasa C dan perangkat keras Arduino.
    • Kenal konsep dasar rangkaian listrik dan arus listrik.

Beberapa diatas ada yang saya dapat dibangku kuliah seperti Web, IoT dan Sistem (ini campur sama otodidak). lalu sebagian sisanya saya mendapatkanya secara otodidak dari iseng-iseng ngoprek karena di kampus kurang lengkap materinya.

Tapi jenis penyihir yang tidak disebutkan diatas, jangan khawatir. Kamu masih bisa riset pribadi lewat mesin pencari dan bergabung di komunitas. Bagian ini akan lebih lanjut di terangkan dibagian selanjutnya.

Alam terbuka

Internet bukan tempat yang sempit, bahkan blog kecil ini pun masih bisa bercokol didalamnya bersama ketidakberartianya. Artinya, masih banyak sumber belajar yang bisa eksplorasi di Internet.

Komunitas

kanal dan grup komunitas di Telegram ataupun Discord banyak bertebaran, ruang ini bisa menjadi tempat kamu untuk belajar dan menjalani relasi (termasuk karir). Bagi penulis, cara untuk mendapatkan ilmu dengan cara yang santai dan tenang adalah mengamati percakapan di grup komunitas, jika topik menarik bisa diteruskan dengan gooling biar dapat info tambahan lalu tanya ke yang bersangkutan.

Tapi perlu di ingat, tidak semua komunitas itu isinya ramah terkadang ada yang toksik, pamer ego dan tidak layak untuk dimasuki. Maka carilah komunitas yang bisa menerima dan saling menghormati sesama anggotanya.

Sumber Belajar

Mengenali cara belajar adalah setengah jalan menemukan sumber belajar yang tepat. Selain komunitas, ada media belajar via tulisan (seperti blog ini), video ataupun mentoring satu-satu oleh seorang pakar.

Namun, kelimpahan internet yang bukan tandingan seorang manusia, kamu perlu menentukan batasan supaya apa yang kamu pelajari tidak membebani kamu karena kebanyakan belajar tapi sedikit kesempatan untuk masuk keotak. Intinya, pakai beragam media belajar tapi sesuaikan sama kapasitas belajar kamu.

Setelah kamu merasa mentok dengan tutorial bahasa indonesia yang itu-itu aja, saatnya kamu pakai kemampuan bahasa inggris kamu dan beralih ke tutorial bahasa inggris atau dokumentasi teknologi yang kamu pakai.

Menurut penulis pribadi, konten yang ditulis disana lebih padat dan berisi karena satu bahasa dengan pembuat teknologi membuat transfer pengetahuan tidak terhalang batasan bahasa yang terkadang memaksa meringkas substansi.

Perubahan

Hal yang konstan pada teknologi adalah perubahan

Manusia menghadapi banyak peradaban, mulai dari zaman batu yang teknologinya terbuat dari batu lalu ke zaman perunggu yang menganti barang-barang dari batu menjadi bahan perunggu dan juga teknik material baru.

Begitu juga dengan teknologi dalam pemrograman. Setiap dunia pemrograman punya trend teknologinya masing-masing, biasanya ini tampak dari hebohnya berita teknologi pemrograman (misalnya Hacker News atau PuloDev), lowongan pekerjaan, melimpahnya sumber belajar dan banyak yang membicarakanya di sosmed.

Seperti di dunia pemrograman Web, sekitar tahun 2010 an, pustaka pemrograman JQuery begitu populer hingga trend beberapa tahun setelahnya. Tapi tak lama digantikan dengan teknologi baru seperti React dan Alpine JS, bahkan yang baru-baru ada namanya HTMX. Tapi ini untuk kasus dunia pemrograman Web yang menurut penulis perubahan teknologinya memang begitu cepat ketimbang bidang lain seperti Game atau Sistem yang paling hanya pembaharuan versi dan tidak pindah teknologi.

Teknologi disini maksudnya pustaka pemrograman atau bahasa pemrograman.

Hal yang penting dalam menghadapi perubahan teknologi seperti ini ialah kebijaksanaan dalam keputusan teknikal. Jangan cepat tergoda untuk pindah ke teknologi terbaru dan juga jangan pakai teknologi yang terlalu ketinggalan sampai tidak terus lagi oleh pihak pembuatnya.

Selama itu masih memenuhi kebutuhan, nyaman dan tidak terlalu ketinggalan, misalnya teknologinya masih ganti versi sekitar setahunan lebih dan banyak sumber belajarnya, kenapa harus pindah (kecuali ada fitur teknologi yang dibutuhkan).

Penutup

Tulisan ini ditujukan sebagai referensi untuk menyusun proses belajar dan mengukur sejauh mana proses kamu, ibaratnya penggaris yang ngukur proses belajar koding kamu. Namun bukan penggaris yang terbuat dari besi, tetapi dari bahan elastis yang bisa kamu sesuaikan dengkan ukuran kamu.

Sebagian besar tulisan ini merupakan hasil perenungan pengalaman penulis belajar koding dan berbagai wejangan kebijaksanaan dari orang-orang yang mencerahkan dalam jalan penulis belajar pemrograman. Jadi syarat terakhir dalam belajar pemrograman adalah alami, aksi dan praktekan jangan biarkan ide belajar koding hanya mimpi yang kamu tidak bisa bangun darinya.

“Always go too far, because that’s where you’ll find the truth” – Albert Camus

Kamu menikmati tulisan ini ?

Blog ini tidak dibiayai oleh iklan untuk bayar server dan jajan milkshake. Agar tetap terus beroperasi dan menorehkan lebih banyak tulisan yang (semoga) bermanfaat!

Beri sedikit tips ke Loka Kode untuk bayar server dan beli milkshake.

Tagar

Tulisan serupa