Sarjana Komputer Tidak Bisa Coding ? Apa Kata Dunia !?

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 skillmenyelesaikan permasalahan komputasional – A Random Thought

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 hanyastimulus 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, kalaudipangku 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:
  1.     https://www.coursera.org
  2.     https://www.edx.org/
  3.     https://www.futurelearn.com
  4.     https://www.udemy.com
  5.     https://lagunita.stanford.edu
  6.     khanacademy.com
  7.     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:
  1.     Codeacademy
  2.     w3schools
  3.     LearnJavaOnline 
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 otaksampean. 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


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!

sumber : http://www.techpackerdaily.com
(Artikel ini saya ambil dari cakshon.com)