Salam kenal saya Eko Heri. Ijinkan saya berbagi pengalaman selama mendidik murid-murid saya. Selama 10 tahun saya mengajar mahasiswa, saya-pun merasa selalu mengajarkan kulitnya saja, tanpa pernah mengupas sebenarnya bahasa pemrograman itu apa. Sekitar tahun 2009 dulu, anak didik saya sudah saya perkenalkan dengan C#.Net, PHP. Bahkan sampai anak didik saya itu, saya arahkan untuk bikin framework MVC sendiri.
Sekitar tahun 2017, saya-pun pindah haluan ke bahasa pemrograman lain, terutama javascript/typescript dan Flutter. Mulai javascript native, ReactJS, Angular, NextJS saya ajarkan ke mereka. Yg terjadi, anak-anak nggak semakin pintar, malah semakin bingung.
Suatu hari, saya melihat anak-anak sedang bincang santai dan menjurus membahas pemrograman. Yg pada akhirnya pembicaraan mereka mengarah ke perdebatan yang membahas “VARIABLE”. Merekapun adu argumen hanya untuk membahas variable, yg menurut kita itu hal yg sangat remeh.
Mendengar perdbatan anak-anak didik saya itu, akhirnya saya berinisiatif untuk bertanya ke hal yang paling fundamental. Pertanyaan saya begini “Setiap hari kalian kan ngetik pake keyboard kan ya? Menurut kalian, seandainya kalian ngetik huruf A di keyboard, kok bisa huruf A tadi tampil di monitor? Bagaimana sebenarnya proses yang terjadi di dalam laptop kalian? Kok bisa huruf A dari keyboard tadi pindah ke monitor?”
Lalu anak-anak itupun mencoba browsing dan tidak ada satupun yg berhasil menemukan jawaban secara benar. Akhirnya saya tunjukkan hakekat bahasa pemrograman, spt gambar ini
Lalu mereka pelan-pelan saya ajari algoritma pemrograman yang mengupas bahasa tingkat rendah (assembler). Saya bandingkan juga dengan bahasa tingkat menengah (C), sekaligus saya bandingkan dgn bahasa tingkat tinggi (Python). Nah dari situlah pelan-pelan anak-anak didik saya mulai memahami apa itu algoritma, dan mereka tidak kaget ketika menemui teknologi baru, seperti misalnya Blazor.
Hipotesa saya, kenapa kok anak didik saya lemah sekali dlm hal pemahaman algoritma? Karena mereka tidak mengenal apa sih sebenarnya yang terjadi di dalam mesin komputer/laptopnya. Sampai-sampai variable saja mereka tidak paham, alokasi di memory-nya seperti apa dan alokasi di register processornya seperti apa. Mereka sering bongkar pasang memory dan processor, tapi mereka tidak mengerti bagaimana proses yg terjadi didalamnya. Itu hipotesa saya ya…saya belum berani pernyataan saya ini sebagai kesimpulan.
Link tutorial algoritma dgn assembler dan C, saya upload disini Algoritma dan Pemrograman - YouTube