… Belajar pemrograman (ngoding)
itu tidak seperti belajar matematika di jaman SMA, kalau nilainya
kurang bagus bisa ikut BimBel atau Les Privat, latihan ngerjakan soal-soal
yang mirip dengan soal-soal diujian. Karena ngoding itu tentang cara
berfikir dan skill menyelesaikan permasalahan komputasional – A
Random Thought
Ilustarsi: Code Program Java
Hari ini di milis dosen jurusan saya
isu itu muncul kembali. Lagi-lagi, para dosen mengeluhkan semakin banyak
mahasiswa yang tidak bisa ngoding di Jurusan yang meluluskan
para Sarjana Komputer itu. Dulu, kurikulumnya yang dituduh jadi biang kerok
karena banyak mata kuliah pemrograman yang tidak dimunculkan tapi disisipkan di
mata kuliah yang lain. Sekarang ketika kurikulum sudah diganti dengan yang
baru, dimana mata kuliah – mata kuliah pemrograman itu dimunculkan kembali,
nyatanya juga sama saja. Semakin banyak saja mahasiswa yang masih tidak bisa.
Mungkin, tidak lebih dari 20% saja mahasiswa yang menguasai core skill sarjana
komputer ini. Bahkan, bukan rahasia lagi yang sudah lulus dengan gelar S.Kom
dan IPK bagus pun, banyak yang tetep tidak bisa ngoding properly. Ndak
malu apa ya, dengan gelar Sarjana Komputer nya?
Benar memang, bahwa pekerjaan
untuk lulusan sarjana komputer tidak terbatas pada ngoding saja.
Tetapi, rasanya ada yang salah ketika kurikulumnya didesain untuk membuat
mereka menguasai pemrograman, tetapi luaranya tidak seperti yang diharapkan.
Dan ini menurut saya menjadi semacam alarm menjelang
dimulainya MEA. Jika bigini, bagaimana para sarjana yang diharapkan jadi pemain
unggul di industri kreatif ini mampu bersaing dengan pemain dari negara tetangga,
seperti: Singapura, Thailand, Malaysia? Lalu, siapa yang salah?
Mahasiswanya pasti menyalahkan dosen
nya yang ndak becus ngajar. Sebaliknya, dosen nya menyalahkan
mahasiswanya yang tidak bisa diajar. Siapa yang benar, siapa yang salah?
Baiklah, saya sebagai mantan mahasiswa, pernah jadi dosen, dan sekarang menjadi
mahasiswa lagi, mencoba mengurai akar permasalahan ini secara lebih fair.
Catat ya, ini sekedar opini saya, benar tidaknya silah direfleksikan
kepada sampean sendiri saja.
Mengapa Banyak Mahasiswa Calon
Sarjana Komputer banyak yang merasa kesulitan belajar ngoding?
Para calon sarjana komputer ini bisa
mahasiswa Jurusan ilmu komputer, teknik informatika, sistem informasi, dan
jurusan yang serumpun lainya. Menurut saya penyebabnya adalah:
Pertama, karena banyak mahasiswa yang gagal ‘move on’ dari
cara belajar di bangku sekolah ke cara belajar bangku kuliah. Dasar mata kuliah
pemorgraman biasanya diberikan di semester 1 dan semester 2. Nah ketika cara
belajar yang dipakai mahasiswa masih cara belajar di SMA disitulah akan
menimbulkan masalah. Apa sih bedanya cara belajar anak sekolahan sama anak
kuliahan? Filsosofinya sederhana sekali, anak sekolahan itu ibarat anak kecil
yang belum bisa makan sendiri sehingga harus disuapi, kalau anak kuliahan sampean itu
dianggap sudah besar (istilah keren nya ‘adult learner‘), sudah bisa
makan sendiri. Kalau lapar ya makan sendiri dan tahu makanan apa yang terbaik
untuk kamu. Hampir semua mahasiswa hanya mengandalkan dan merasa sudah
cukup belajar hanya dari perkuliahan di kelas, padahal kuliah dikelas itu
seharusnya hanya stimulus alias perangsang buat sampean
untuk belajar sendiri lebih lanjut. Analoginya, kuliah di kelas hanya petunjuk
makanan apa yang bagus untuk pertumbuhan sampean. Selanjutnya sampean
sendiri yang harus mencari dan memakan sendiri makanan itu.
Kedua, karena semakin banyak mahasiswa yang SPOILED alias
MANJA alias Manis Jancuki. Ini
berdasarkan observasi saya membandingkan model mahasiswa jaman sekarang dan
mahasiswa jaman saya dulu (awal 2000 an). Mungkin karena lingkungan jaman anak
sekarang yang terlalu dimanja oleh teknologi dan dibalut budaya konsumerisme
yang mengakibat mental ora wani soro ini. Mahasiswa jaman
sekarang ke kampus dandananya modis, wangi. Ke kampus nyetir mobil. Peganganya
berbagai Gadget. Tongkronganya (alasanya ngerjakan tugas bareng) di mall. Dari
keluarga miskin, dapat tunjangan biaya hidup beasiswa Bidik Misi. Jaman saya
kuliah dulu, baju andalanya jaket hima (dalamnya ndak ganti-ganti, bau pisan),
ke kampus kebanyakan jalan kaki atau ngontel, atau sekeren-kerenya pakek sepeda
motor butut. Handphone tuh yang punya masih beberapa orang dan masih handphone
nokia monophonic yang bisa buat ngelempar asu.
Saya juga tahu dengan mata kepala sendiri, ada beberapa teman saya yang harus
kerja serabutan demi untuk bertahan hidup karena orang tua tak mampu membiayai.
Tetapi kalau bicara daya juang jangan tanya. Masih ingat jaman kuliah dulu,
kalau ngerjakan tugas harus di lab. Hampir tiap malam bahkan sabtu-minggu
ngelembur ngerjakan di Lab. Jangankan laptop, PC saja masih satu dua orang saja
yang punya. Internet juga masih barang mahal, tidak seperti sekarang yang
tersedia WIFI dimana-mana. Sehingga semuanya harus dikerjakan di Lab. Jamanya
dosen saya (tahun 90-an) lebih soro lagi. Tetapi kemudahan fasilitas
yang dimiliki mahasiswa jaman sekarang itu anehnya tidak membuat mahasiswa
semakin pintar. Tapi sebaliknya. Kalau jaman dulu, seorang mahasiswa bisa
menguasai 3-5 bahasa pemrograman itu sudah biasa, anak sekarang bisa satu
bahasa pemrograman saja sudah syukur. Indeed, semangat belajar mahasiswa
jaman dulu jauh lebih tinggi dari mahasiswa jaman sekarang. Benar filosofi
huruf jawa, kalau dipangku mati, artinya kalau seseorang itu
terlalu diberi kemudahan malah kreatifitasnya mati, dan sebaliknya.
Ketiga, ada gap knowledge yang terlalu lebar antar
dosen dan mahasiswanya. Dosen setidaknya harus berijasah S2, banyak diantarnya
yang bergerlar Doktor dan Professor. Nah, ini sering kali beberapa dosen secara
tidak sadar bahwa yang berada dihadapanya adalah anak-anak yang baru lulus
sekolah kemaren sore. Sering kali dosen ini menggunakan jargon-jargon yang
kurang membumi yang sangat biasa di kepala dosen, tapi masih sangat asing di
kepala para mahasiswa. Gap knowledge inilah yang sering kali membuat
mahasiswa gagal paham bahkan malah bingung. Idealnya, seorang dosen yang hebat
adalah yang bisa menjelaskan konsep-konsep yang rumit menjadi hal-hal sederhana
yang mudah dipahami mahasiswanya, mindset nya ketika mengajar sementara harus dirubah
dulu ke mindset anak-anak yang baru lulus sekolah kemaren sore. Tetapi, indeed pengalaman
saya jadi dosen, ini bukan perkara yang mudah.
Tips Belajar Bahasa Pemrograman
Seperti saya sebutkan diatas intinya
adalah sampean harus bisa belajar sendiri tanpa menunggu
diajari dan tidak manja. Hidup ini akan terasa keras kalau sampean
terlalu lunak terhadap sampean sendiri. Sebaliknya, hidup akan
terasa lunak kalau sampean keras terhadap diri sampean sendiri.
Sampean tidak bisa menuntut dosen seharusnya begini dan
begitu, karena sampean sudah dianggap dewasa, dianggap
tahu apa yang harus dilakukan. Kalau sampean merasa tidak tahu
ya tanya langsung sama dosen nya atau sampean bisa tahu
sendiri dari tempat yang lain.
Belajar di jaman sekarang, apalagi
belajar pemrograman dan skill IT lainya itu lo sebenarnya sangat-sangat
mudah. Sampean punya laptop, punya koneksi internet, dan bisa
bahasa Inggris. Sampean bisa belajar apa saja dari internet.
Kalau tidak tahu tempatnya, tinggal tanya sama mbah Google.
Lah sampean sih laptop hanya dipakek untuk facebookan,
twitteran, ngepath, dan instragraman saja. Mas, Mbak mbok ya
dipakai untuk belajar.
Belajar ngoding itu
menurut saya ada dua hal yang harus dipahami. Pertama adalah conceptual
skill dan yang kedua adalah technical skill. Untuk
kemampuan konseptual sampean harus paham dasar-dasar algoritma dan
struktur data. Algoritma itu akan membentuk pola pikir sampean bagaimana
menyelesaikan permasalahan komputasi secara logis. Untuk kemampuan technical
skill sampean hanya perlu membiasakan cara mengekpresikan conceptual
skill dalam bahasa pemrograman yang spesifik.
Untuk pemahaman konsep, sampean bisa
ikutan kuliah online gratis di berbagai MOOC (Massive Open Online Course)
dari berbagai kampus terbaik dunia, seperti:
- https://www.coursera.org
- https://www.edx.org/
- https://www.futurelearn.com
- https://www.udemy.com
- https://lagunita.stanford.edu
- khanacademy.com
- ocw.mit.edu
Tinggal ketikan saja kata kuncinya, algorithm
atau programming atau computer science ada ratusan kuliah
online gratis disitu. Layaknya kuliah sungguhan, ada video, materi, exercise,
forum diskusi, quiz, dan ujian disitu. Beberapa mata kuliah yang saya
sarankan: Think Create Code, Algorithm
1 , Introduction to Computer Programming , Introduction to Java Programming, Java
Tutorial for Complete Beginner , Introduction to Programming with Java.
Sedangkan untuk kemampuan
teknis, cara belajar yang terbaik adalah learning by doing yaitu
dengan coba nulis code langsung. Kalau sampean sudah paham
konsepnya, dan familiar dengan salah satu bahasa pemrograman saja. Untuk
mencoba bahasa pemrograman yang lain tidaklah sulit. Ada beberapa online
learning by doing yang bagus, diantaranya adalah:
Intinya banyak sekali resource
belajar di internet asal sampean mau belajar sendiri. Tinggal
googling saja. Sayangnya, resource belajar yang terbaik semuanya masih
dalam bahasa Inggris. Kalau sampean masih pusing dengan bahasa inggris
yah, ya wassalam. Tapi kan sudah ada google translate to? Dan mau tidak
mau menurut saya sampean harus paksa diri untuk paham itu
bahasa Inggris. Terkadang yang perlu sampean lakukan adalah
memaksa sampean sendiri untuk tidak manja dan wani
soro untuk belajar sendiri. Saya ingatkan sekali lagi, Jangan
manja! Seiring berjalanya waktu, resource belajar yang bahasa
inggris itu akan menjadi terbiasa buat sampean. Dan terjemahan
google translate itu akan berpindah dan mengendap di otak sampean. Kalau
manja, ndak berani memaksa dan keras pada diri sendiri, ya selamanya ndak
bakalan bisa to? Jika merasa kesulitan, bingung, gagal paham, itu wajar bero !
namanya belajar sesuatu yang baru. Belajar kadang terasa menyakitkan, jika
begitu berbahagialah, karena itu artinya sampean benar-benar
belajar. Ibarat membuka berlian yang dibungkus ikatan kain yang berlapis-lapis,
dibutuhkan kesabaran, dan daya juang tanpa lelah. Kadang harus mengulang dan
mengulang lagi, mencoba dan mencoba lagi. Hingga akhirnya, ketemulah berlian
itu.
Pengalaman saya belajar ngoding ,
saya merasa skill ngoding saya well-improved ketika saya
belajar sendiri. Dan memang kuliah di kelas itu hanya perangsang untuk belajar
lebih lanjut. Selanjutnya, terserah sampean. Satu lagi tips
biar jago coding adalah by practice. Saya dulu sejak semester
3 hingga lulus kuliah (4 tahun pas) nyambi kerja part-time di software
house milik salah satu alumni. Disanalah skill pemrograman saya terasah. Indeed,
kalau sampean sudah nemu cara belajar yang tepat buat sampean sendiri,
belajar ngoding itu sangat menyenangkan dan menantang. Sangat
merangsang otak untuk mikir secara logis.
Kalaupun tidak harus kerja
part-time, karena mengganngu kuliah sampean. Ada websitu untuk
mengasah problem solving sampean, dari yang level paling ecek-ecek
sampai level dewa. Disini sampean bisa submit code program,
dan akan dicompile diserver. Sampean akan tahu benar tidaknya,
dan seberapa cepat dan hemat memori program sampean. Semakin banyak
problem yang bisa diselesaikan, semakin tinggi skor sampean
layaknya sebuah permainan game. Salah satunya adalah: SPOJ
Terakhir, menurut saya
kemampuan ngoding adalah inti dari kuliah di jurusan ilmu
komputer dan jurusan turunanya termasuk sistem informasi. Seperti riset
operasi di jurusan Teknik Industri. Kalau sarjana komputer ndak bisa ngoding
itu ibarat dokter ndak bisa nyuntik. Mengapa? karena tanpa kemampuan ngoding yang
proper sampean tidak akan bisa mengimplementasikan
algoritma-algoritma terbaru yang bisa sampean baca pada paper di
jurnal-jurnal ilmiah terbitan terbaru. Disamping,
sampean juga harus paham betul konsep matematika diskrit untuk bisa
membaca paper jurnal tersebut, karena sudah pasti paper jurnal
tersebut dijelaskan dengan simbol-simbol konsep-konsep di matematika diskrit
(termasuk aljabar linier dan matrik). Tahukah sampean dibalik
aplikasi-aplikasi cerdas yang sampean gunakan di smart
phone ataupun desktop adalah algoritma-algoritma yang sophisticated.
Pernahkah sampean berfikir apa yang terjadi dibelakang layar,
ketika sampean terkagum-kagum dengan terjemahan google
translate lebih bagus dari bahasa inggris sampean? Atau facebook yang
bisa mengenali foto teman sampean? Tentu di belakangnya adalah
algoritma yang shopisticated. Jadi mahasiswa IT malu dong,
jika hanya menjadi pengguna teknologi IT. Saatnya, sampean yang
seharusnya develop aplikasi-aplikasi cerdas tersebut.
Sebagai tambahan dari komentar di
bawah, ada yang bertanya:
Di perkuliahan, satu hal yang masih
menjadi kendala bagi saya yaitu melogikakan suatu permasalahan kedalam program.
Apalagi tentang, mengenai pemahaman Matematika Diskrit hampir semua soal yang
berkaitan dengan logika seperti ini tak ada satupun yang bisa saya jawab, pak
-_-
Mohon sarannya pak, bagaiman seharusnya saya bisa mengatasi hal seperti ini
Mohon sarannya pak, bagaiman seharusnya saya bisa mengatasi hal seperti ini
Well, ini pertanyaan menarik sekali menurut saya. Karena
permasalahan ini saya yakin banyak dihadapi oleh kebanyakan mahasiswa. Ada
yang missing ketika mata kuliah Pemrograman diajarkan di
semester pertama. Bayangno!, seorang mahasiswa yang masih kosongan itu ‘dipaksa’
memahami coding oleh seorang dosen yang sudah berpuluh-puluh
tahun bergumul dengan pemrograman, yang tentu saja di kepala sang dosen
sudah embedded algorithmic problem solving skill atau logical
thinking skill. Mungkin inilah, penyebab mata kuliah pemrograman
terasa sulit buat mahasiswa baru, yang pada akhirnya tidak menyukai
pemrograman.
Di kampus saya, di Universitas
Nottingham, ternyata sebelum mahasiswa mengambil mata kuliah
Pemrograman, mereka wajib lulus mata kuliah ‘Algorithmic Problem Solving‘
terlebih dahulu. Saya kebetulan pernah mengikuti mata kuliah ini, atau menyusup
lebih tepatnya (karena saya mahasiswa PhD yang sedang ngepoin sistem pendidikan
S1 ilmu komputer di Universitas Nottingham). Di mata kuliah ini, mahasiswa sama
sekali belum bersentuhan dengan komputer. Belajarnya hanya menggunakan kertas
dan bolpoin. Saat itu, kita dikelas sedang diskusi memecahkan
permasalahan Pak Tani yang akan menyebrang sungai. Intinya adalah
bagaimana mahasiswa diajak memecahkan permasalahan dengan memformulasikan dan
mencari solusi permasalhan tersebut secara logis, step by step.
Kemampuan inilah kemampuan ‘melogikakan suatu permasalahan kedalam program’
itu.
Profesor yang ngajar mata kuliah
ini, Prof.
Roland Backhouse, kebetulan sudah membukukan bahan ajarnya
dalam sebuah buku tipis. Buat sampean yang tertarik dengan
mata kuliah ini, bisa dilihat disini dan disini (sampean bisa download lecture notes,
tugas-tugas, dan tutorial untuk mata kuliah ini). Dan bukunya bisa dibeli disini, jangan tanyan pdf lo ya! Bondo Rek,
Bondo! Untuk improve kemampuan logika sampean
juga bisa melatihnya dengan game-game atau puzzle logika. Search saja di
google play dengan kata kunci : ‘logic’. Barangkali bisa membantu.
Ohya, mungkin dari teman-teman
bagaimana sih cara ngajar mata kuliah algoritma dan pemrograman di kampus luar
negeri? Well, saya mungkin sedikit bisa cerita pengalaman di kampus
saya. Yang jelas sebelum masuk ke mata kuliah programming, mereka sudah
mengambil mata kuliah Algorithmic problem solving terlebih dahulu seperti
cerita saya di atas. Lalu bagiaman kuliah algoritma pemrograman nya?
Kebetulan setiap semester musim
gugur, saya diminta jadi asisten dosen ndoro dosen pembimbing S3 saya
pada mata kuliah Algoritma dan Struktur Data. Lebih tepatnya dipaksa, lahwong
saya ini background nya sistem informasi bukan ilmu komputer, yang tentu saja
ndak sedalam di jurusan ilmu komputer/teknik informatika belajar algoritmanya.
Sehingga, saya sempat menolak tawaran itu. But, the show must go on.
Untuk mata kuliah angker ini,
ada tiga jenis tatap muka dalam seminggu. Pertama, dua kali pertemuan
kuliah masing-masing 50 menit (di kampus ini hampir semua kuliah maksimal 50
menit, biar mahasiswa nya ndak teler). Kedua, tutorial selama 50 menit, untuk
materi tambahan di kelas. Ketiga, lab. session, juga selama 50 menit. FYI,
ketiga jenis tatap muka ini, semuanya tidak wajib hadir, karena disini tidak
ada yang namanya absensi kuliah.
Sistem penilainya, 20% dari
coursework dan 80% dari ujian tulis final examination. Coursework itu semacam
tugas gitu kali ya kalau di Indonesia. Ada 3 coursework untuk mata kuliah ini.
Setiap coursework, berisi problem set dan open question yang harus diselesaikan
dengan coding dan dijelaskan dalam sebuah report yang
harus disubmit pada saat deadline bersama dengan code program nya. Nah, pada
waktu lab. session itulah, mahasiswa mengerjakan coursework. Di lab. ndoro dosen,
saya, dan beberapa teman asisten dosen lainya stand by di lab. Kita sama
sekali tidak guide mereka di lab, kita juga sama sekali tidak
boleh ngasih clue dari problem yang harus mereka selesaikan. Mereka
benar-benar diumbar begitu saja, kecuali jika mereka ada hal yang ingin
ditanyakan atau didiskusikan, mereka cukup melambaikan tangan, dan kita para
asisten dosen akan datang. Layaknya, memanggil pelayan di sebuah restoran.
Di akhir deadline, mereka harus
submit report, yang berisi penjelasan solusi dari problem set, penjelasan dan
analisa code program yang sudah mereka buat. Analisa code ini
harus mereka jelaskan secara matematik, maupun secara experiment. Tugas saya
sebagai asisten dosen adalah menilai report tadi, dan memberi feedback. Nilai
dari coursework, 80% dari report, dan 20% dari feedback session (something like
interview).
Saat menilai report dan memeriksa
code inilah, saya benar-benar terkagum. Mahasiswa disini, benar-benar genuine,
ndak ada yang namanya nyontek code orang lain dengan mengganti nama variabel
nya doang. Saya bisa melihat mana yang genuine, dan mana yang nyontek logika
orang lain. Dan saya menemukan disini, 99.9% genuine. Aplagi,
pertanyaanya open. Dimana jawaban yang benar tidak pasti A, tetapi
bisa B, C, D sesuai dengan analisa dan interprestasi mahasiswa. Sementara, di
sesi feedback. Saya menginterview, masing-masing mahasiswa satu persatu,
memastikan mereka paham dengan problem set di coursework, dan menjelaskan kepada
mereka jika mereka kurang paham.
Point saya adalah saya melihat
bahwa mahasiwa disini begitu independent dalam belajar, serta memiliki
kesadaran belajar yang sangat tinggi. Nah, ini yang kurang dengan kebanyakan
mahasiswa-mahasisa di tempat kita. Coba deh, absensi ditiadakan dan 80%
penilainya dari final exam. Mungkin kelas-kelas jadi sepi, hehehe….. Tapi
mungkin saya salah.
Baiklah, semoga sampean jadi
semangat dan tidak manja untuk berani memaksa sampean sendiri
belajar ngoding. Semoga sukses belajarnya ! Dan lulus jadi
Sarjana Komputer yang bisa ngoding. Good Luck!
Nara Sumber : https://cakshon.com/
Nara Sumber : https://cakshon.com/
No comments:
Post a Comment