Pengalaman Mendalami Dunia Programing Selama Kurang Lebih 3 Tahun
Sudah sangat lama sejak saya menulis di Blog ini, bahkan tulisan kemarin tentang Dropshiper malah belum saya selesaikan, duh dasar saya. Jadi pada kesempatan kali ini saya akan membahas tentang Pengalaman saya mendalami dunia Programming selama kurang lebih 3 tahun, entah dari sisi akademik/kuliah, atau pengalaman dari luar akademik. Tanpa berlama-lama saya akan langsung saja tuliskan pengalaman saya, mohon maaf apabila kurang rapi tulisannya ya.
Mari kita mulai dari tahun pertama, awal saya benar-benar mengenal dunia programming untuk pertamakalinya, waktu semester 1 saya diharuskan mendalami bahasa Pemrograman C. Dan karena waktu itu karena memang saya tidak paham apa-apa soal bahasa pemrograman jadi saya hanya mengikuti saja dan bangga-bangga saja bisa membuat program sederhana menggunakan algoritma dasar pemrograman. Waktu itu minat saya pada dunia programming sangatlah tinggi, saya download semua aplikasi programming seperi Unity, Android Studio, Visual Studio, tak lupa video-video tutorial lainnya, yang pada akhirnya tidak saya apa-apakan, hahaha. Oh ya, pada semester 1 ini saya juga diminta untuk mengclone tampilan dashboard facebook dengan html dan css, agak rumit awalnya karena waktu itu juga baru belajar html dan css, meski dulu tanpa sadar pernah otak-atik html dan css di Blogspot, atau lebih tepatnya copas sana sini biar tampilan blog lebih menarik.
Berlanjut ke semester 2 dimana saya masih sama dengan semester 1 aplikasi dan video tutorial yang saya download masih saja tidak saya apa-apakan. Karena saya sendiri masih bingung dengan dunia Programming, dulu saya berpikir bahwa cara membuat aplikasi itu bisa hanya menggunakan satu bahasa saja, dan saat mempelajari bahasa C saya sadar bahwa, aplikasi-aplikasi sederhana yang saya buat tidak bisa dijalankan di Android, bahkan meski aplikasi tersebut dijalankan di Code::Blocks output yang dikeluarkan hanyalah tulisan di dalam cmd. Jadi waktu itu saya mulai sadar bahwa ternyata setiap bahasa beda fungsinya. Keterlambatan saya dalam memahami dunia programming juga dipengaruhi beberapa matakuliah yang menurut saya, ini menurut saya lo ya, nggak ada hubungannya dengan dunia programming. Seperti Kalkulus 1, Kalkulus 2, Fisika, Elektro dll, yang intinya tidak ada kegiatan membuat program atau apa, jadi otomatis kegitan saya mendalami programming agak terhambat juga, karena saya juga tidak mau ketinggalan materi kelas. Tapi sebenarnya Kalkulus, Fisika, Elektro dll itu sangat ada hubungannya dengan pemrograman kok, hanya saja sampai sekarang saya belum menemukan hubungannya apa, hehehe. Project akhir saya di semester ini adalah membuat aplikasi range tahun dari tanggapan masyarakat, jadi kita bisa membuat laporan tentang suatu kejadian, misal jalan rusak, dan akan difollowup kapan, maka akan muncul range berdasarkan hitungan tanggal. Kemudian setiap laporan akan dimasukkan ke dalam Array dan bisa dihapus dan bisa diurutkan juga. Keren bukan? Tapi itu masih berupa CLI jadi belum bisa diimplementasikan secara langsung.
Berlanjut ke Semester 3, ini adalah awal saya membuat aplikasi web yang full dengan backendnya, tanpa framework karena saat itu saya tidak tahu apa-apa soal framework. Jadi saya benar-benar membuat website penjualan menggunakan php native berbekal tutorial dari Youtube, nama chanelnya Team TRAINIT, alasan kenapa membuat website tersebut karena emang tugas dari kelas web dasar, jadi bukan murni keinginan saya sendiri. Di semester ini saya juga masih diharuskan menggunakan bahasa C sebagai bahasa utama, dan mulai mempelajari tentang push, pop, queue dan sejenisnya. Jadi belajar saya masih sebatas mengerjakan tugas dan tahu-tahu semester sudah selesai. Tapi berkat project web, saya jadi tahu apa itu backend apa itu frontend dan apa itu hosting.
Saya juga mempelajari tentang penggunaan Arduino, karena salah satu matakuliah saya mengharuskan membuat project akhir dengan tema Internet of Things atau IOT, dan kalau projectnya tidak jadi terancam nilai E alias ngulang lagi doooong. Untungnya waktu itu project kami jadi, kami membuat alat monitoring suhu air, kekeruhan air dan pH air menggunakan Arduino dan alat suhu lainnya, dan yang jadi programmer saya lo itu, sombong dikit ah.
Saya juga mengenal Node Js di semester ini, dari teman mata kuliah saya, disitu dia memberitahu saya bahwa dengan belajar Node Js saya bisa membuat backend-end dan front-end hanya dengan Node Js saja, wah saya tertarik dooong, akhirnya saya mulai belajar-belajar project dari Internet, sampai akhirnya saya pusing sendiri karena nyoba project sana sini tapi nggak paham penggunaannya yang benar itu gimana XD. Dan akhirnya saya meninggalkan Node Js begitu saja.
Berlanjut ke Semester 4, ini adalah awal mula saya benar-benar bisa memahami apa itu programming, berkat dosen saya pak Wijanarto M.Kom yang memberikan materi sangat lengkap dan terlebih bisa saya pahami. Saya tidak mengatakan dosen-dosen saya sebelumnya tidak memberikan materi ya, hanya saja saya sulit memahami materi yang mereka sampaikan. Berbeda dengan semester sebelumnya, di Semester ini saya tidak lagi menggunakan bahasa C melainkan menggunakan bahasa Java karena matakuliah yang diajarkan adalah Object Oriented Programming atau OOP, dan ini pertama kalinya saya jatuh cinta dengan bahasa pemrograman, karena di mata saya Java itu indah, meski terkesan bertele-tele dan terlalu kaku, tapi justru itu yang saya suka. Dan tugas akhir yang saya buat dengan kelompok saya waktu itu adalah Game Sudoku, meski belum menerapkan konsep OOP tapi setidaknya gamenya jadi, hahaha. Terimakasih pak Wijanarto.
Dan di semester ini juga saya mulai mengenal apa itu framework, tapi bukan framework backend melainkan framework CSS, Bootstrap. Yap disini saya mendapat tugas tengah semester untuk membuat cloning website bank yang ada di Indonesia menggunakan html dan css, kemudian untuk tugas akhirnya sama, hanya saja menggunakan Bootstrap.
Nah ini dia, akhirnya aplikasi yang saya download sebelumnya saya gunakan, seperti Unity dan Android Studio, meskipun udah ganti laptop juga sih XD. Yap, semester 5 adalah awal saya menggunakan aplikasi Unity dan juga Android studio, akhirnya setelah sekian lama saya bisa mencicipi membuat game dan aplikasi Android, padahal mah sebelumnya juga bisa, saya aja yang masih males dan bingung dengan dunia programming karena saking banyaknya teknologi-teknologi baru. Mari mulai dari Android dulu ya, jadi pada matakuliah yang mempelajari tentang Android, kami diberikan materi tentang layouting dan juga program sederhana, jadi lebih kayak program bahasa C tapi bedanya ini ada tampilannya dan bisa dioperasikan di hp Android secara langsung. Project besar saya di kelas ini adalah membuat aplikasi CRUD(Cread Read Update Delete), dosen saya memberikan kemudahan untuk memilih jenis database apa saja asal bisa melakukan prorses CRUD. Dan di kelas sebenarnya kami mempelajari berbagai koneksi database, seperti MySQL, Firebase dan juga SQLite. Dan pilihan saya jatuh pada MySQL, yap ini pertama kalinya juga saya menghubungkan database yang ada di Laptop dengan Android, jadi ketika ada perubahan di aplikasi Android atau di dalam database laptop, maka kedua-duanya juga akan mengalami perubahan.
Selanjutnya adalah kelas Game, iya, Game, yang bisa dibilang asal muasal saya suka dengan sesuatu yang berbau dengan teknologi, padahal mah kalau main game sukanya Harverst Moon yang bisa dibilang gameplaynya jauh dari teknologi modern, karena kebanyakan seri yang saya mainkan ya di pedesaan, ngurusin sapi, ngurusin ayam, ngurusin ladang, ngurusin masalah orang, eh eh eh udah udah. Kelas Game menggunakan Unity sebagai tool utama, kami diajari bagaimana cara membuat animasi dari potongan beberapa gambar, membuat game flappy bird sederhana, lalu membuat map sederhana juga, kenapa sederhana mulu sih? Ya karena kalau ke tingkat advance atau expert pasti butuh waktu yang cukup lama, karena tidak hanya perlu mempelajari Aplikasi Unity, tapi juga cara membuat programnya. Dan Tugas Akhirnya tentu saja membuat game secara berkelompok, tema bebas dan platform pun juga bebas. Dan game yang kami buat adalah game running, sejenis T-Rex Chrome, hanya saja bertema ninja dan memiliki tingkat kesulitan yang susah, karena akan ada jebakan disetiap rintangan, dan saat itu pula saya sadar ternyata membuat game tidak semudah yang saya bayangkan, saya jadi merasa minder untuk meneruskan membuat game, hehe.
Di semester ini juga saya mulai tertarik dengan Framework Front-end, yakni React Js, sama halnya dengan Node Js, saya mulai cari tutorial sana sini dan mempraktekkannya sampai akhirnya saya sendiri juga nggak paham fungsinya buat apa dan akhirnya bernasip sama dengan Node Js yang saya tinggalkan. Saya juga baru tahu ada framework mobile seperti React Native dan Flutter. Saya awalnya berpikir bahwa React Js itu sama dengan React Native sampai akhirnya saya bertanya-tanya pada teman saya dan ternyata keduanya berbeda, React Js itu untuk Web, dan React Native itu untuk mobile.
Kalau Flutter saya baru tahu dari kakak tingkat saya saat kami ngobrol di depan Lab Komputer. Sedikit informasi nih, selama semester 4 sampai semester 5 saya sempat menjadi asistem lab komputer lo, yah meskipun ada beberapa matakuliah yang nggak ada hubungannya sama program sih, ada yang editing video dan ada yang editing foto, tapi ya lumayan lah, bisa ikut belajar aplikasi dari kelas lain secara gratis, dari dasar pula, jadi bisa belajar bareng. Balik ke kakak tingkat saya tadi, dia sempat membuat aplikasi akademik dengan menggunakan Flutter, melihat itu saya tertarik untuk mempelajarinya, dan sepertinya nasibnya tidak seperti Node Js dan React Js yang membuat saya bingung dengan kegunaannya, saya bisa memahami Flutter dengan lebih mudah hanya dari satu tutorial, hanya saja saat itu saya tidak sempat melanjutkan belajar Flutter karena sudah mau masuk Semester 6.
Sebelum lanjut ke semester 6, saya harap kalian nggak mikir, ‘Lah ini namanya bukan pengalaman mendalami dunia programming, tapi pengalaman kuliah TI kan?’, oke, saya rasa di awal saya terlalu banyak mengawalinya dari setiap semester. Tapi secara pribadi memang seperti itulah kenyataannya, saya mengawali dunia programming saya ya pas dibukanya semester baru sampai semester itu selesai. Karena ketika liburan semester, saya lebih sering/sibuk mencari pengetahuan soal dunia programming, seperti
Apasih framework itu?
Apasih IDE itu?
Apasih teks editor itu?
Framework yang baru apa ya?
Framework ini sama ini bagusan mana ya?
Dan akhirnya saya cuma membandingkan antara teknologi A dengan teknologi B secara terus-terusan tanpa ada niatan terjun di teknologi tersebut. Secara pribadi saya akan lebih bersemangat jika itu berupa tugas dan ketika saya mengerjakan saya mendapat penghargaan, entah nilai ataupun sertifikat, dasar saya. Dan yang paling menghabiskan waktu saya adalah banyak bermain dan menonton Anime dan Film, baca Komik dll, ya mungkin inilah yang paling menghabiskan waktu dan tenaga hahaha.
Tapi liburan menjelang semester 6 ini beda, di liburan menjelang semester 6 saya dan beberapa teman saya lebih memilih untuk melakukan magang. Kemudian saya dan 5 teman saya magang di perusahaan bernama Campus Digital yang lokasinya di dekat kampus, bahkan deket banget sama kosan, kalian bisa kunjungi alamat berikut untuk tahu perusahaannya seperti apa, Campus Digital. Disitu masing-masing dari kami diberikan tugas sendiri-sendiri, dan saya diminta untuk membuat website yang akan digunakan sebagai tempat membuat lowongan pekerjaan untuk perusahaan Campus Digital, selain itu ada juga fitur lain seperti penjualan buku dan ebook(hanya tampilan dan harga, bukan proses transaksi) dan juga menu artikel. Kami magang disana selama 1 bulan penuh, dan alhamdulillah saya bisa menyelesaikan project yang diberikan, yakni website Psikologanda, dan ini merupakan website pertama saya yang saya bangun dengan framework Laravel, yaah meskipun pas saya cek belakangan ini, websitenya udah berubah menjadi website sejenis Udemy, mungkin dirombak ulang karena menyesuaikan keadaan sekarang, dimana course-course online sedang ngetren. Agak sedih sih, tapi yaudah nggak papa, toh juga itu website yang saya buat sebelumnya masih banyak kekurangannya, udah bersyukut dulu sempat dipakai hehe. Terimakasih Pak Faris telah diberi kesempatan magang disana, dan tak lupa juga teman-teman Campus Digital yang begitu ramah dengan kami hehe, dan juga Mas Ajik selaku mentor kami di sana, yang ngalahin saya telak di permaianan PES 6-0 hahaha XD.
Berlanjut ke semester 6, yakni semester awal dimulainya kuliah daring/online. Sebenarnya di kuliah ini tidak ada matakuliah praktek, hanya saja ada beberapa tugas yang jika itu dikerjakan, kami bisa auto lolos UTS/UAS, dan saya akhirnya termotivasi untuk membuat aplikasi Android supaya tidak ikut UAS hehe, males cuy. Akhirnya saya membuat Aplikasi Funny Crypto, kalian bisa download disini jika tertarik, berikut linknya : Funny Crypto Aplication.
Aplikasi yang simple sebenarnya, karena tidak ada fitur yang bisa dibilang susah untuk dibuat, coding yang saya gunakan untuk membuat proses kriptografi juga saya dapat dari Internet, jadi tidak murni saya membuatnya dari 0, hehe. Selain membuat aplikasi mobile disalah satu matakuliah saya juga membuat aplikasi POS atau Point Of Sale berbasis Website secara berkelompok menggunakan Framework Laravel, tapi kali ini tidak hanya membuat aplikasinya saja, tapi juga laporannya, ada Project Plaen, SKPL dan DDPL, terasa berat beban ini, ditambah lagi saya ketuanya, bertambah beratlah beban ini. Tapi kami bisa menyelesaikannya tepat waktu bahkan bisa dibilang lebih cepat dari yang kami targetkan di Project Plan, karena anggota kelompok kami Cuma 4 orang termasuk saya, beberapa ada yang membantu membuat laporan, ada yang membuat tampilan aplikasi, desain database dll, dan saya kebagian program dan membuat laporan. Kontribusi saya dalam pembuatan aplikasi bisa dibilang tidak terlalu banyak, mungkin hanya 20% karena lebih berfokus ke laporan.
Bagi kalian yang mungkin berniat bekerja di salah satu perusahaan apalagi jika ditunjuk sebagai ketua atau leader dari project yang akan dibuat, mempelajari laporan seperti Project Plan, SKPL, DPPL sangatlah penting, karena akan mencakup apa yang akan kalian buat, mulai dari fitur aplikasi, tampilan, alur dll. Awalnya saya berpikir bahwa orang IT asal membuat aplikasi tanpa adanya laporan, ternyata itu salah, dokumentasi itu penting, apalagi jika kalian ingin membuat startup atau kerja tim, pastinya laporan tentang startup yang akan kalian bangun akan sangat berpengaruh jika berhadapan dengan investor, dan kalau kalian bekerja tim, dengan adanya dokumentasi yang baik, pasti bisa membuat pengerjaan project menjadi lebih cepat.
Dipertengahan semester 6, saya mendapatkan informasi dari teman saya kalau ada beasiswa yang diadakan di Dicoding yang bekerjasama dengan Indosat Ooredoo, yakni IDCamp atau Indosat Ooredoo Digital Camp. IDCamp menawarkan kelas-kelas gratis yang ada di Dicoding, ada 4 jalur yang tawarkan, yakni Web, Android, IOS, dan Machine Learning. Karena saya lebih tertarik di mobile, akhirnya saya memilih jalur Android. Sebagai langkah awal mengikuti IDCamp peserta akan diberikan 2 token untuk akses 2 kelas dasar berdasarkan jalur yang diambil, karena saya memilih Android, saya mendapatkan kelas Memulai Pemrograman Dengan Kotlin dan juga Belajar Membuat Aplikasi Android untuk Pemula. Dan ini juga pertama kalinya saya mempelajari Kotlin dan membuat aplikasi Android dengan Kotlin.
Awalnya saya berpikir bahwa gaya penulisa Kotlin lebih rumit ketimbang Java, meskipun penggunaan tipe data tidak serumit Java, tapi inisialisasi tipe data pada Kotlin sangatlah merepotkan menurut saya pribadi, karena harus menulisnya di kanan nama varibel, misal seperti ini :
Java : String nama;
Kotlin : var nama : String
Beda bukan? Meski Kotlin sudah menghilangkan prinsip semicolon atau titik koma(;) yang merupakan bagian akhir dalam setiap baris kode dan merupakan error yang paling menjengkelkan, menurut saya pribadi beberapa penulisan Kotlin terlihat lebih rumit. Terlepas dari penulisannya yang rumit, penggunaan Kotlin sangatlah efisien dalam beberapa baris code, bahkan bisa meringkasnya menjadi lebih singkat ketimbang Java.
Singkat cerita, saya bisa lolos untuk seleksi pemula dan mendapatkan akses ke kelas Belajar Fundamental Aplikasi Android, dimana disini saya belajar lebih mendalam tentang navigasi, layout, frame, pengambilan API dan penerapannya, MVVM dll. Dan baru minggu lalu saya bisa menyelesaikan kelas ini, karena memang pengumuman lolosnya bertepatan dengan UAS jadi selama beberapa minggu kelasnya sempat terbengkalai.
Selain belajar Android, di semester ini saya juga mendalami tentang Node js dan juga Flutter yang sempet saya tinggalkan disemester-semester sebelumnya, atau lebih tepatnya cuma nyoba-nyoba project yang ada di youtube dan mencoba memahaminya lagi, sampai akhirnya saya menemukan beberapa chanel berbahasa Indonesia yang bisa membantu saya lebih memahami ke-2 teknologi tersebut. Lalu bagaimana dengan React Js? Hmm berikut lanjutannya.
Saya mulai melirik salah satu framework Front-end atau lebih tepatnya compiler kali ya, namanya Svelte, saya tahu Svelte beberapa hari sebelum UAS saat tidak sengaja membuka Youtube yang membandingkan Framework Front-End Javascript dan saya menemukan Svelte, dan seketika itu saya jatuh cinta dengan Svelte, jatuh cinta mulu perasaan, atau lebih tepatnya saat Svelte disandingkan dengan ReactJs dari segi penulisan saya lebih bisa memahami Svelte ketimbang ReactJs.
Akhirnya semester 6 selesai, disinilah saya mulai fokus ke beberapa teknologi untuk saya pelajari, yakni Android Native(Kotlin), Svelte, Node Js, javascript. Hah Javascript? Iya Javascript, saya mulai mengulang lagi memori saya tentang javascirpt dari 0, saya mulai membuat website lagi dengan murni menggunakan html, css, dan javascript. Kenapa? Karena lagi-lagi yang memotivasi saya adalah program yang diadakan oleh Baparekraf atau Badan Pariwisata dan Ekonomi Kreatif, yang lagi-lagi bekerjasama dengan Dicoding, dan membuka 2 jalur, yakni Android dan Web. Karena saya sudah mengambil Android jadinya saya mengambil Web, hitung-hitung mendalami lagi tentang Web. Sedikit informasi tambahan bahwa kelas yang ada di Dicoding untuk Web, IOS dan Android adalah kelas Frontend, mungkin menyinggung sedikit soal database, tapi keseluruhan kelas adalah kelas Frontend. Balik lagi ke saya yang mempelajari Javascript, jadi saya mulai mempelajari lagi apa itu DOM, penulisan syntax ES6 dll, dan dengan adanya program dari Baparekraf dan Dicoding, ini sangat membantu saya untuk mengulang kembali materi yang pernah saya pelajari.
Yaah mungkin seperti yang kalian baca, saya terlalu banyak menghabiskan waku untuk bermain dan juga membandingkan teknologi A dengan teknologi B tanpa terjun secara langsung, jadinya selama 3 tahun ini rasanya banyak sekali waktu yang terbuang. Saya juga sulit sekali berfokus pada 1 teknologi, dan mendalami banyak teknologi sekaligus dan berakhir hanya memahami dasarnya saja. Saran saya kepada kalian yang ingin mendalami dunia programming, tentukanlah apa yang ingin kalian buat, lalu pelajari dari dasar atau langsung ke project sampai akhirnya kalian paham dengan teknologi yang sedang kalian pelajari, tapi pesans saya jangan sampai hanya terikat dengan 1 teknologi karena seiring bertambahnya tahun, teknologi pun ikut bertambah, jadi kalian harus siap untuk bermigrasi ke teknologi yang baru yang tentunya lebih dibutuhkan oleh pasar.
Untuk yang mau mampir ke Github saya silahkan ke link berikut : Link Github
Sekian dan Terimakasih.
Update Tanggal 23 November 2020
Pagi ini saya mendapat kabar duka bahwa pak Wijanarto yang merupakan dosen favorit saya, meninggal dunia, saya mengharap doa dari teman-teman semoga amal dan ibadahnya diterima, dan mendapat ampunan dan rahmat dari Allah SWT. Jujur, berita ini cukup mengagetkan saya, karena terakhir kali saya bertemu dengan beliau ya sebelum adanya isolasi mandiri, saat saya sedang menunggu di ruang dosen untuk melakukan konsultasi bimbingan TA. Saya masih sempat menyapa beliau dan sepertinya beliau masih ingat dengan saya, dan nggak tahu kenapa malah mendapat kabar beliau meninggal dunia. Sekali lagi saya minta kepada teman-teman sekalian untuk memberikan doa yang terbaik untuk beliau. Terimakasih. Rest in peace my Guru.
Post a Comment