Gudang Ilmu: Bagaimana Urutan Belajar Programming Untuk Pemula?

Tuesday, 1 August 2023

Bagaimana Urutan Belajar Programming Untuk Pemula?

 Programmer menjadi salah satu profesi yang sangat menjanjikan pada saat ini. Mulai dari bangun tidur sampai tidur lagi, tidak terhitung seberapa banyak kita mengakses smartphone, komputer, smartTV, serta berbagai perangkat digital lain. Semua peralatan ini butuh software untuk beroperasi, yang merupakan buah karya dari seorang programmer.

Skill untuk menjadi programmer bisa dipelajari oleh siapa saja, tidak harus ikut sekolah formal untuk bisa membuat program. Dengan modal sebuah komputer dan sumber belajar yang tepat, anda pun bisa menjadi seorang programmer profesional.

Ilustrasi belajar programming

Namun memang perlu waktu, disiplin dan ketekunan untuk bisa berhasil. Meskipun membuat program sederhana bisa dilakukan dalam hitungan menit (bagi yang awam sekalipun), tapi untuk bisa menguasai sebuah bahasa pemrograman bisa makan waktu berbulan-bulan, hingga tahunan.

Jika saat ini sedang kuliah di jurusan komputer, maka selamat! Semua skill dasar yang diperlukan untuk seorang programmer sudah diajarkan di kampus. Di kampus juga memiliki semacam “urutan belajar” yang sudah baku, misalnya harus selesai dahulu mata kuliah struktur data sebelum masuk ke materi database. Atau harus selesai dahulu materi algoritma sebelum masuk ke mata kuliah pemrograman object.

Namun bagi yang tidak kuliah di jurusan komputer, urutan belajar ini bisa buat pusing. Sebagai gambaran, terdapat ratusan bahasa pemrograman yang tersedia. Setiap bahasa ini kadang juga bergantung dengan bahasa lain. Apa yang sebaiknya dipelajari pertama kali? Atau apakah tepat untuk langsung belajar bahasa pemrograman? Dalam artikel ini saya ingin membahas tahapan belajar yang pas untuk menjadi seorang programmer.

PS: Apa yang akan saya jelaskan di sini adalah jalur belajar “ideal” menurut pengalaman saya pribadi. Dalam kenyataannya, banyak juga programmer yang tidak mengikuti jalur ini, atau bahkan punya cara belajar sendiri misalnya dengan try-error (langsung coba-coba saja). Banyak jalan menuju roma, begitu pula dengan belajar programming.


Paham Cara Mengoperasikan Komputer

Ini merupakan skill paling dasar yang harus dikuasai. Mungkin terkesan aneh, tapi tidak sedikit ada yang ingin langsung belajar programming tapi tidak bisa membuka file pdf, atau belum pernah menginstall sebuah program komputer sebelumnya.

Idealnya, skill dasar pengoperasian komputer ini harus dikuasai terlebih dahulu, seperti:

  • Sudah pernah beberapa kali menginstall program di komputer (meskipun hanya klik-klik tombol next saja).
  • Paham jenis-jenis extension umum seperti .doc.jpg.pdf serta mengetahui aplikasi yang digunakan untuk membuka file-file tersebut.
  • Paham tentang file .zip atau .rar dan cara membukanya.
  • Familiar dengan web browser dan sudah bisa mendownload file dari internet.
  • Paham dengan manajemen file di sistem operasi, misalnya bisa membuat folder, bisa copy paste file dari satu tempat ke tempat lain.

Bisa mengoperasikan komputer ini cukup secara umum saja. Jangan sampai kita belajar cara membuat link ke file pdf, tapi tidak paham apa itu file pdf.

Jika diibaratkan, apabila kita ingin belajar cara memperbaiki mobil (jadi montir), maka seharusnya sudah bisa mengoperasikan mobil itu terlebih dahulu. Jika tidak, akan banyak kendala selama proses belajar.

Mulai dari Algoritma

Setelah lancar mengoperasikan komputer, kita sudah bisa masuk ke materi pertama, yakni belajar algoritma. Secara sederhana, algoritma adalah langkah-langkah logis untuk memecahkan masalah. Algoritma ini sebenarnya bersifat umum dan sudah sering kita terapkan sehari-hari.

Pernah memasak mie goreng? Bisakah anda menjelaskan urutan yang harus dilakukan? Itu sudah termasuk salah satu bentuk algoritma, yakni “algoritma memasak mie goreng”.

Suatu program pada dasarnya dibuat untuk memecahkan sebuah masalah. Misalnya kita ingin membuat program pemutar mp3, masalah yang ingin kita pecahkan adalah bagaimana menginstruksikan komputer agar ketika ada yang men-klik tombol “play”, maka musik terdengar dari speaker.

Bagi pengguna aplikasi, langkah yang diperlukan sangat sederhana, yakni klik menu Open, cari file dengan extension .mp3, lalu klik tombol Play.

Tapi pada saat membuat program tersebut, si programmer harus menjalankan ratusan hingga ribuan langkah. Mulai dari membuat tampilan aplikasi, mengatur posisi tombol “Open”, memeriksa apakah file yang di open memang sebuah file .mp3 atau tidak, memeriksa apakah di komputer sudah terinstall driver sound card atau tidak, dst.

Pemahaman tentang algoritma akan melatih kita untuk menulis langkah demi langkah sendiri, tidak harus selalu bergantung kepada tutorial yang ada.

Pada prakteknya, algoritma ini mirip seperti soal teka-teki yang akan mengasah logika kita. Misalnya buatlah kode program untuk membuat deret kelipatan 3 sejumlah angka yang diinput user. Jadi ketika user mengetik angka 6, tampilkan 6 buah angka kelipatan 3:

3, 6, 9, 12, 15, 18

Atau jika user mengetik angka 10, tampilkan 10 buah angka kelipatan 3:

3, 6, 9, 12, 15, 18, 21, 24, 27, 30

Lebih rumit lagi, jika angka yang ditampilkan habis dibagi 4, tambah angka itu dengan 100. Jadi jika user mengetik angka 10, hasilnya adalah:

3, 6, 9, 112, 15, 18, 21, 124, 27, 30

Contoh lain, buatlah program pemecah nilai uang. Yakni jika diinput angka 1139350, hasilnya adalah:

pecahan 100.000 = 11 lembar
pecahan 50.000  = 0 lembar
pecahan 20.000  = 1 lembar
pecahan 10.000  = 1 lembar
pecahan 5.000   = 1 lembar
pecahan 2.000   = 2 lembar
pecahan 1.000   = 0 lembar
pecahan 500     = 0 lembar
pecahan 100     = 3 lembar
sisa            = 50

Bagaimana merancang langkah-langkah logika untuk membuat aplikasi seperti ini? Itulah yang akan dipelajari dalam materi algoritma.

Algoritma ini tidak terikat ke satu bahasa pemrograman tertentu. Kedua soal di atas bisa dibuat menggunakan bahasa pemrograman apa saja.

Namun kebanyakan materi belajar algoritma menggunakan bahasa pemrograman dasar seperti PascalC atau C++. Aplikasi yang dihasilkan juga sangat sederhana, yakni aplikasi berbasis DOS (teks hitam putih), seperti tampilan berikut:

Program menghitung pecahan uang pascal

Saya sendiri belum menemukan buku algoritma dengan bahasa yang lebih modern seperti PHPJavaScript, atau Visual Basic. Salah satu alasannya karena di bahasa Pascal, C atau C++ ini, kita tidak pusing dengan banyaknya fitur2 yang ada dan juga tidak perlu syarat materi tambahan.

Misalnya jika algoritma ini diajarkan menggunakan bahasa PHP, maka harus punya skill HTML terlebih dahulu. Selain itu alur menampilkan teks di PHP juga cukup rumit (harus install XAMPP, buka di web browser, dst).

Alasan lain karena biasanya di kampus-kampus IT, bahasa Pascal, C dan C++ sudah dikuasai mendalam oleh dosen-dosen senior karena bahasa pemrograman ini sudah ada puluhan tahun lalu.

Oleh karena itu, agar bisa mendalami algoritma, pilihan kita terbatas di 3 bahasa pemrograman tersebut, yakni PascalC atau C++. Tidak perlu belajar ketiganya, tapi cukup pilih salah satu saja.

Di kampus jurusan komputer, pada tahun pertama mahasiswa baru juga diwajibkan belajar algoritma terlebih dahulu. Pilihan bahasa pemrograman tergantung kesukaan dosen pengajar, jika dosennya lebih mahir di bahasa C, maka yang dipakai adalah bahasa C. Tapi umumnya tetap salah satu antara Pascal, C atau C++.

Barulah di tahun kedua dan ketiga mahasiswa masuk ke bahasa pemrograman yang lebih berorientasi praktek dunia kerja, seperti Java, PHP, JavaScript, Python, Delphi, dst.

Sebenarnya penerapan dari bahasa Pascal, C dan C++ tidak hanya terbatas untuk belajar algoritma dan membuat aplikasi DOS saja.

Bahasa Pascal juga bisa dipakai untuk membuat aplikasi Desktop yang berbasis grafis hingga android, tapi sudah menggunakan aplikasi terpisah seperti Lazarus dan Delphi.

Bahasa C juga banyak digunakan untuk memprogram embedded system seperti mesin-mesin pabrik dan perangkat robotik seperti arduino. Sedangkan C++ bisa dipakai untuk membuat aplikasi desktop (dengan Visual C++), serta basis dari beragam aplikasi pembuat game seperti Unreal EngineUnity, dan Construct.

Namun umumnya buku-buku algoritma tidak sampai membahas ke tahap ini.

Jika tertarik belajar dasar algoritma, di Duniailkom sudah tersedia eBook/Buku: Pascal Uncover dan C++ Uncover.

Bagi adik-adik SMA / SMK / MA, bahasa pemrograman C++ saat ini menjadi bahasa pemrograman yang dipakai dalam Olimpiade Sains Nasional bidang komputer.


Pilih Bahasa Pemrograman Sesuai Aplikasi Yang Akan Dibuat


Setelah konsep algoritma di kuasai, pada tingkat ini barulah kita masuk ke bahasa pemrograman “asli”. Maksudnya, hasil akhir dari proses ini sudah berbentuk aplikasi yang sering kita jumpai sehari-hari, bukan hanya aplikasi berbasis DOS sebagaimana ketika belajar algoritma.

Dasar algoritma yang sudah dipelajari akan sangat membantu dalam menguasai bahasa pemrograman apapun.

Pada titik ini kita sudah harus memilih dari sekian banyak bahasa pemrograman. Cara memilihnya mulai dari “Saya akan membuat aplikasi apa?

Mayoritas bahasa pemrograman spesifik untuk membuat aplikasi tertentu, misalnya jika ingin membuat aplikasi desktop, bisa menggunakan bahasa pemrograman A. Tapi bahasa pemrograman A ini sudah tidak bisa lagi dipakai untuk membuat web. Namun memang ada beberapa bahasa pemrograman yang bersifat generik dan bisa dipakai untuk membuat berbagai aplikasi.

Agar lebih sederhana, saya akan bagi jenis aplikasi ini ke dalam 3 kelompok besar:

  • Aplikasi Desktop, yakni aplikasi yang bisa di install di komputer (terutama berbasis Windows).
  • Aplikasi Mobile, yakni aplikasi yang diinstall di smartphone (berbasis Android dan iOS).
  • Aplikasi Web, yakni bahasa pemrograman untuk membuat website.

Untuk setiap aplikasi, tersedia beberapa jenis bahasa pemrograman. Kita akan bahas beberapa diantaranya:

Cara Membuat Aplikasi Desktop (untuk OS Windows)

Terdapat beberapa bahasa pemrograman yang bisa dipakai untuk membuat aplikasi desktop, terutama untuk sistem operasi Windows.

Yang paling populer adalah “keluarga” Microsoft Visual Studio. Visual Studio merupakan aplikasi buatan Microsoft yang mendukung berbagai jenis bahasa pemrograman. Di dalam aplikasi Visual Studio ini kita bisa memilih salah satu dari bahasa C++C# atau Basic.

Karena Microsoft sudah menambah fitur-fitur khusus yang diperlukan untuk membuat aplikasi desktop, maka setiap bahasa ini ditambah dengan awalan “Visual” menjadi Visual C++Visual C#, dan Visual Basic.

Jadi dengan Visual Studio kita bisa membuat aplikasi desktop menggunakan berbagai bahasa pemrograman, tergantung kesukaan masing-masing. Visual Studio paling pas untuk membuat aplikasi berbasis Windows karena disediakan oleh yang membuat Windows itu sendiri, yakni Microsoft.

tampilan web microsoft visual studio 2019

Alternatif bahasa pemrograman lain yang bisa dipakai adalah Delphi dan Lazarus, yang keduanya menggunakan basis bahasa pemrograman Pascal. Bahasa Java juga bisa dipakai untuk membuat aplikasi Desktop.

Cara Membuat Aplikasi Mobile

Aplikasi mobile terbagi ke dalam 2 kelompok besar, yakni sistem operasi Android buatan Google, dan sistem operasi iOS buatan Apple.

Bahasa pemrograman yang paling populer untuk membuat aplikasi Android adalah bahasa Java. Sedangkan untuk membuat aplikasi iOS bisa menggunakan bahasa Swift.

Karena di Indonesia Android lebih populer (lebih “merakyat”), maka kita fokus ke sistem operasi android saja. Selain itu saya pribadi juga belum pernah mencoba bahasa pemrograman Swift sehingga tidak bisa berbagi lebih lanjut.

Sama seperti Microsoft Visual Studio, Google sebagai pengembang utama sistem operasi Android juga menyediakan software khusus untuk membuat aplikasi android, yakni Android Studio.

Di dalam Android Studio, kita bisa merancang aplikasi android menggunakan salah satu dari 2 bahasa pemrograman, yakni antara bahasa Java atau bahasa Kotlin. Bahasa pemrograman Kotlin sendiri sangat mirip seperti Java dan baru akhir-akhir ini dijadikan sebagai bahasa resmi di dalam Android Studio.

Namun karena kompleksitasnya, tidak disarankan langsung belajar Android Studio. Sebaiknya pelajari dulu kosep dasar bahasa Java secara terpisah. Setelah itu barulah masuk ke Android Studio.

tampilan web google android studio

Selain Android Studio, cukup banyak bahasa pemrograman alternatif untuk membuat aplikasi android, bahkan beberapa ada yang menyediakan cara instant tanpa coding, seperti MIT App InventorAppy PieAppMakrPhoneGap (Apache Cordova). Namun aplikasi “instant” seperti ini umumnya berbayar atau gratis dengan beberapa batasan. Berbeda dengan Android Studio yang memang 100% gratis.

Jika anda serius ingin berkarir sebagai programmer android, maka Java dan Android Studio adalah pilihan terbaik.

Cara Membuat Aplikasi Web

Dibandingkan dengan membuat aplikasi desktop serta android, membuat website akan terasa sedikit kompleks karena bahasa pemrogrammnya “saling lepas” satu sama lain.

Maksudnya, untuk membuat aplikasi desktop, kita cukup install Visual Studio dan hampir semua hal yang kita butuhkan untuk membuat aplikasi sudah ada di sana. Mulai dari merancang tampilan, design, hingga programming.

Namun untuk web programming, terbagi menjadi 2 kelompok utama: front-end, dan back-end.

Front-end

Front-end adalah sebutan untuk tampilan atau design website yang terlihat di web browser. Untuk sisi front-end ini terdapat bahasa HTMLCSS, dan JavaScript. Ketiganya saling berkaitan dan berhubungan satu sama lain. Secara spesifik lagi, HTML dipakai untuk membuat kerangka dasar web, CSS untuk membuat design tampilan, serta JavaScript untuk membuat efek interaktif dan animasi (salah satunya fitur slider / slideshow yang sering kita temui di halaman home sebuah website).

Ketiga bahasa ini tidak memiliki alternatif, sehingga tidak ada pilihan bahasa pemrograman lain. Ini juga sekaligus menyederhanakan proses belajar karena siapa pun yang ingin belajar front-end, pasti akan ke HTML, CSS dan JavaScript.

Belajar front-end ini juga harus berurutan karena ketiganya saling terhubung. Yakni mulai dari HTML terlebih dahulu, setelah itu ke CSS dan terakhir JavaScript.

Back-end

Back-end adalah sisi web programming yang tidak terlihat di web browser. Umumnya ini berisi proses internal yang akan dijalankan untuk memproses sebuah data.

Sebagai contoh, ketika kita mengisi sebuah form di suatu website dan men-klik tombol submit atau daftar, maka data itu akan diproses oleh bahasa pemrograman back-end. Sangat sering proses ini juga melibatkan aplikasi database, dimana data form itu akan disimpan.

Pilihan bahasa pemrograman back-end ini cukup beragam. Yang paling terkenal sekaligus yang paling banyak digunakan adalah bahasa pemrograman PHP. Dalam fungsinya untuk memproses data, biasanya PHP perlu menyimpan data tersebut ke aplikasi database seperti MySQL.

Alternatif bahasa pemrograman web back-end lain adalah PythonJava dan juga JavaScript (NodeJS).

Kesimpulan: Urutan Belajar Programming

Menutup artikel ini, berikut kesimpulan urutan belajar untuk menjadi seorang programmer:

  1. Paham cara penggunaan komputer secara umum
  2. Belajar algoritma dari salah satu bahasa pemrograman dasar (PascalC atau C++)
  3. Tentukan ingin membuat aplikasi apa:
    • Jika ingin membuat aplikasi desktop, bisa mulai belajar Visual C#, Visual C++ atau Visual Basic (bagian dari Microsoft Visual Studio).
    • Jika ingin membuat aplikasi android, bisa mulai belajar bahasa pemrograman Java dan dilanjutkan ke Android Studio.
    • Jika ingin membuat website, bisa mulai belajar HTMLCSS dan JavaScript (front-end), lalu lanjut ke PHP dan MySQL (back-end).

Urutan yang saya bahas di sini sebenarnya juga baru materi dasar. Dalam banyak hal, kita juga perlu masuk ke materi yang lebih advanced.

Sebagai contoh di web programming nanti ada yang namanya framework, seperti BootstrapCode IgniterLaravelVueReactNodeJS, dll. Lowongan kerja web programming rata-rata juga mensyaratkan paham framework ini. Tapi tentu saja kita harus belajar secara bertahap. Ibarat belajar matematika, mulainya harus dari kabataku terlebih dahulu, tidak bisa langsung masuk ke kalkulus.

Belajar semua ini juga tidak sebentar. Jika benar-benar mulai dari nol, menurut saya butuh waktu 1 – 2 tahun untuk menyiapkan skill agar bisa memenuhi syarat dasar minimal lowongan kerja programmer. Itu pun sudah termasuk cepat dan dengan catatan sudah memiliki sumber materi belajar yang mudah untuk dipahami.

Terakhir, sedikit tips penutup untuk menuntun fokus belajar programming:

Jangan buru-buru, semua butuh proses dan tidak ada yang instant. Inti dari programming adalah kemampuan pemecahan masalah. Proses pemecahan masalah ini seharusnya bisa dipikirkan sendiri, bukan sekedar copy paste dari buku atau internet.

Di awal ini hindari buku-buku studi kasus. Fokuskan per dalam konsep dasar terlebih dahulu. Setelah paham dasarnya, baru masuk ke studi kasus. Buku atau tutorial studi kasus biasanya tidak akan lagi menjelaskan arti setiap kode yang ditulis. Sehingga jika kita tidak paham maksud kode tersebut, ujung-ujungan hanya jadi copy paste. Programnya memang jadi, tapi kita tidak paham apa fungsi dari kode-kode tersebut.

Sempatkan latihan bahasa inggris, minimal pasif (untuk baca saja). Karena mayoritas teknologi programming ini sumbernya ada di eropa dan amerika. Sebagian besar materi belajar programming ber bahasa Indonesia baru tersedia untuk materi dasar. Untuk materi lanjutan kadang masih belum tersedia versi panduan berbahasa indonesia. Sehingga untuk bisa terus bersaing, mau g mau harus langsung dari sumbernya yang berbahasa inggris.

Programming adalah belajar seumur hidup. Betul, jika memutuskan berkarir di bidang teknologi, terlebih lagi programming. Maka tidak ada namanya berhenti belajar. Kita harus selalu up to date dengan perkembangan terbaru.

Pada tahun 2010, blackberry sangat mendominasi dunia smartphone, bahkan menjadi status sosial seseorang. Jika pada saat itu kita sebagai developer aplikasi blackberry tidak mau beradaptasi dan belajar membuat aplikasi android, maka selesai sudah. Saat ini blackberry sudah tidak terdengar lagi.

Begitu pula dengan android saat ini. Siapa tau 5 tahun ke depan akan muncul teknologi baru yang akan menggantikan. Bisa beradaptasi dan selalu update adalah kunci untuk bisa berhasil menjadi seorang programmer.

Tentu saja itu juga harus diiringi dengan kerja keras dan kerja cerdas. Sangat mungkin suatu saat Indonesia bisa menjadi kiblat IT dunia, tidak lagi sekedar pengikut. Untuk mewujudkan hal itu, Indonesia perlu ribuan programmer tangguh. Andakah salah satunya?















No comments:

Post a Comment

terimakasih telah mengunjungi blog saya.