Arsip mwmag  [Up]© 2002 PT Masterweb Media

Ide Operasional Pendidikan S1 Teknik Informatika

Penghindaran Ekstrem

Beberapa Contoh Pertanyaan Menggugah

Refleksi

Pertanyaan Pertama (Operasi Output)

Pertanyaan Kedua (Pemanggilan SQL)

Ide Operasional Pendidikan S1 Teknik Informatika

Kalangan pendidikan TI di Indonesia tampaknya cukup bingung menghadapi dua ekstrem orientasi pendidikan. Jika terlalu praktis, dituduh “tak ubahnya dengan kursus, cuma menghasilkan pengekor”. Jika terlalu konseptual atau teoretis, dituduh “tinggal di menara gading, dan toh tetap menjadi pengekor”.

Bagaimanakah caranya agar hasil didikan cukup praktis (tapi tidak terlalu), cukup konseptual (tapi tidak terlalu), tak sekadar menjadi pengekor, dan berbeda mutunya dari orang yang belajar secara otodidak? Sampai kini, saya tak menemukan gagasan yang cukup rinci atau operasional. Tulisan ini mencoba mengisi kekosongan tersebut.

Penghindaran Ekstrem

Penghindaran ekstrem pertama, yaitu yang terlalu praktis, dapat dilakukan dengan mengharuskan siswa memakai produk-produk yang di pasaran, tapi sebagai salah satu saja—bukan satu-satunya—perkakas untuk mengkaji teori.

Penghindaran ekstrem kedua, yaitu yang terlalu teoritis, dilakukan dengan mengajukan pertanyaan bermutu kepada siswa, berkenaan dengan kaitan antara teori dan praktek. Lalu dengan mengajukan pertanyaan-pertanyaan yang menggugah agar siswa bisa membedakan mana fakta mana fiksi. Atau dengan mengharuskan siswa mendalami esai-esai komputasi, seperti yang dimuat di buku karangan Frederick P. Brooks [Mythical Man Month—Red.]

Secara operasional, selama 3 tahun siswa belajar dalam laboratorium dan proyek-proyek yang “terkendali”, yang sangat mendukung mereka untuk fokus pada konsep, bukan pada hapalan akan nama-nama operasi (seperti perintah atau fungsi). Dalam setahun terakhir, yaitu tahun keempat, mereka harus mengerjakan proyek di luar kampus, di lingkungan yang lebih “tak terkendali”. Dengan arahan yang baik, lewat kontrasnya pengalaman 3 tahun di dalam kampus versus 1 tahun di luar kampus, siswa bisa membedakan fakta-fiksi.

Beberapa Contoh Pertanyaan Menggugah

Contoh 1. Misalnya agar siswa bisa dengan kritis menguji kebenaran klaim bahwa Unix atau utilitas Unix dirancang dengan tingkat kepaduan konseptual yang tinggi, kita sajikan pertanyaan berikut: apakah memang perlu ada 4 operasi output pada level shell? Dalam menjawab pertanyaan ini, peserta dipersilahkan melihat adanya 4 operasi pada shell Unix yakni echo, cat, more, dan od; memikirkan kemungkinan untuk memadukannya, mencoba memadukan semuanya dalam satu operasi atau program, dan menyajikan argumentasinya. Contoh kemungkinan jawaban: Mungkin tidak perlu. Keempat operasi di atas bisa digabung menjadi satu, sebut saja write.

Contoh 2. Melihat cara-cara pemanggilan SQL. Berapa jumlah maksimum cara menjalankan operasi SQL pada virtual machine SQL? Dalam menjawab pertanyaan ini, peserta dipersilakan melihat implementasi SQL di dBASE IV, Microsoft Access, dan Oracle, misalnya.

Contoh 3. Tentang C++ dan OOP. Apa perbedaan typedef dan class di C++? Apakah sebetulnya keduanya mendefinisikan hal yang sama? Apakah kelas dan tipe (atau bahkan interface) itu semua sama? Jika sama, kenapa di OOP orang terlalu “mendewakan” kelas?

Contoh 4. Kembali masalah SQL. Mengapa sangat jarang—jika memang ada—dibuat DFD (Data Flow Diagram) untuk operasi-operasi SQL? Apakah karena tidak bisa atau tidak mudah? Mengapa tidak bisa atau tidak mudah? Apakah ada gunanya kalau bisa atau mudah dibuat? Usaha apa yang bisa dilakukan untuk menyelesaikan masalah tersebut?

Contoh 5. Kembali soal Unix. Apakah mungkin menyatukan operasi login, telnet, dan su menjadi satu operasi saja? Dalam menjawab pertanyaan ini, siswa harus dengan seksama menyimpulkan berbagai kesamaan dan perbedaan ketiga operasi, membuat satu operasi bagi ketiganya, dan mengajukan argumentasi. Contoh jawaban misalnya: Ya, mungkin. Operasi login, telnet, dan su memiliki satu kesamaan, yaitu untuk mengakses suatu virtual machine. Ketiganya pada hakekatnya memiliki 3 operan: username, password, dan virtual machine name. Pada login dan su, virtual machine dibatasi kepada current/real machine, sedangkan pada telnet tidak demikian. Ketiganya bisa disatukan ke dalam satu operasi saja, misal: login.

Contoh 6. Tentang Oracle. Apa kira-kira alasan Oracle memakai 4 istilah: TNS name, service name, host string, dan connect string? Apakah bisa kita memakai 1 istilah saja? Jika bisa, istilah apa yang paling cocok? Salah satu jawaban yang mungkin: TNS name dipakai karena Oracle melihat sebuah service name adalah nama pada protokol jaringan level TNS. Service name dipakai karena service dipandang sebagai paduan instans dan database. Host string dipakai karena service ini bisa dipandang sebagai host atau virtual machine (persisnya virtual machine SQL). Connect string dipakai karena nama tersebutlah (nama service) yang dipakai untuk connect. Kita bisa memakai 1 istilah saja. Istilah yang paling cocok adalah service name, karena cukup singkat dan akurat (SQL virtual machine name lebih akurat tapi terlalu panjang). Dengan pengertian ini, kita bisa memodelkan service dalam diagram tipe seperti di Gambar 1 (disederhanakan, dianggap protokol yang dipakai adalah TCP/IP, dan penamaan memakai cara Oracle8, bukan Oracle8i). Terlihat bahwa operasi yang berlaku ke service adalah connect, dan disconnect (bisa dicoba di SQL*Plus). Pembaca dipersilahkan memikirkan diagram tipe untuk memodelkan instans dan database pada Oracle.

Contoh 7. Tentang perbedaan OS Unix dan Windows. Apakah pemaduan DOS/Windows-like volume drive dan Unix-like filesystem bisa diwujudkan? Apakah pemaduan tersebut—bila bisa—akan mempermudah end user? Apakah tidak lebih baik mengganti C:\Documents and Settings\USERNAME, /home/USERNAME (atau /export/home/USERNAME pada satu atau lebih varian Unix) sebagai default home folder bagi user dengan /user/USERNAME atau C:\user\USERNAME? Apakah kesamaan dan perbedaan C:\Documents and Settings dengan /export/home? Apakah mungkin untuk membuat struktur direktori yang bahkan lebih sistematis daripada LSB (Linux Standard Base)? Seperti apa kira-kira solusinya?

Salah satu contoh jawabannya misalnya begini: Pemaduan filesystem mungkin. Adanya Samba sebagai perantara filesystem Linux dengan DOS/Windows menyiratkan hal ini. Pemaduan filesystem ini bisa mempermudah end user. Pengalaman mengajar dan belajar dasar-dasar Unix/Linux meyakinkan saya akan hal ini. Mount point relatif lebih sulit dipahami daripada logical drive/physical drive (drive bisa diganti juga dengan disk atau volume). Penggunaan folder user langsung di bawah root juga mungkin mempermudah. Pengalaman mengajar Oracle di Linux/Unix mengindikasikan demikian. Peserta agak sulit melihat bahwa ada folder /export/home/oracle (atau /home/oracle) adalah karena ada user OS bernama oracle (ini disebabkan ada folder lain yang bernama oracle, yang biasanya /u01/app/oracle). Adanya nama home pada /export/home atau /home juga menambah kebingungan dalam membedakannya dengan ORACLE_HOME. Andai foldernya bernama c:/user/oracle, dan nilai ORACLE_HOME misalnya adalah C:\server\oracle maka peserta akan lebih mudah melihat bahwa c:\user\oracle mengindikasikan adanya user OS bernama oracle, sedangkan c:\server\oracle mengindikasikan adanya software server Oracle.

Refleksi

Berbagai pertanyaan di atas sangat menarik dan menantang untuk dijawab. Jawaban atas satu pertanyaan bisa membimbing penemuan jawaban untuk pertanyaan-pertanyaan lain.

Apakah ada guna praktisnya? Banyak, dan contoh-contoh berikut sekaligus menunjukkan nilai lebih yang [berpotensi] membedakan alumni S1 daripada orang yang sekedar kursus atau otodidak. Saya percaya bahwa setiap pengajar harus berusaha agar hasil didikan pendidikan formal memiliki nilai lebih dari seorang otodidak.

Di sini saya hanya akan memberikan analisis dua dari pertanyaan-pertanyaan yang sebelumnya disebutkan.

Pertanyaan Pertama (Operasi Output)

Telah disebutkan bahwa jawaban untuk pertanyaan pertama bisa berupa jawaban ya. Perintah echo, cat, more, dan od bisa disatukan menjadi katakanlah write. Dengan mencoba menyusun sintaks write, kita bisa belajar hal-hal lain. Misalnya, sintaks yang berperilaku seperti echo:

write 5 * 2
write ' Hello '
write 5 * 2; 1.2; 'Hello'
shellvar1 := 10; shellvar2 := ' Hello '; shellvar3 := 1.2
write $(shellvar1); write $(shellvar2); write $(shellvar3)

Dalam contoh-contoh di atas, write berperilaku seperti operasi echo. Contoh-contoh di atas juga menunjukkan suatu ciri umum bahasa skripting yakni weakly-typed: objek-objek (shellvar1 sampai shellvar3) tak perlu dideklarasikan tipenya. Tanda baca ; dipakai sebagai pemisah antarstatement, sementara newline sebagai penutup statement.

Berikut adalah contoh-contoh operasi write berperilaku seperti cat.

write file1
write file1 file2
write file1 file2 > file3

Operasi write akan menafsirkan suatu nama sebagai nama file, bukan nama variabel shell. Itulah sebabnya untuk variable shell dipakai operasi $ sebagai operasi ekstraksi nilai. Hal ini bisa merangsang pemikiran bahwa pemrograman shell berorientasi file. Tanda > dipakai sebagai tanda operasi redireksi output. Hal ini bisa merangsang pemikiran apakah parser shell bisa dibuat sehingga tanda > juga bisa dipakai sebagai tanda operasi pembandingan (seperti di shell C), dan apa kita bisa menyebutnya operation overloading?

Contoh-contoh berikut memperlihatkan perilaku write seperti perilaku operasi more, yang diakomodasi lewat operan -p yang berarti pause.

write -p file1
write -p file1 file2
write -p file1 file2 > file3
write -p 5 * 2

Contoh-contoh berikut memperlihatkan perilaku write seperti perilaku operasi od, yang diakomodasi lewat operand -o (octal).

write -o file1
write –o -p file1
write -o -p file1 file2
write -o -p 5 * 2

Konsekuensi lebih jauh: siswa bisa membedakan operasi output pada pemrograman shell dengan output pada bahasa-bahasa 3GL (generasi ketiga) seperti pada C, Pascal, Java; mengambil kesimpulan perbedaan esensialnya, dan memikirkan seperti apa operasi output pada shell C (yang merupakan hibrida 3GL dan bahasa skripting).

Pertanyaan Kedua (Pemanggilan SQL)

Mungkin hanya ada 3 cara maksimum pemanggilan operasi SQL pada virtual machine SQL. Melihat contoh dBase IV: 1) lewat operasi DO untuk procedure/function yang ada dalam program-file yang sama; 2) lewat operasi DO untuk procedure/function yang ada di program file yang berbeda (eksternal); 3) lewat pemanggilan langsung (SELECT, CREATE, INSERT, DELETE, UPDATE)

Pelajar lalu bisa memeriksa kasusnya untuk Microsoft Access dan Oracle.

Apa efek dari belajar hal ini? Alumni bisa punya perkiraan berapa cara yang akan ia temui saat belajar bahasa baru. Misal, ia belajar HTML. Sebelum mendalami, ia sudah punya ancang-ancang varian-varian pemanggilan HTML operation dalam virtual machine HTML (browser, application server). Ini salah satu bentuk keunggulan hasil didikan dibandingkan orang yang belajar otodidak atau lewat kursus semata, nilai tambah yang ditawarkan program pendidikan formal.

Semoga pembahasan ini bisa menjadi suatu langkah kecil untuk pembaruan besar di pendidikan formal S1 Informatika.

Berna Ridho Hutabarat mantan dosen di STT Telkom, Bandung. Kini memilih menjadi praktisi dan kontraktor. Programer C++, DBA Oracle, dan pencipta bahasa pemrograman Batak. Dapat dihubungi melalui Redaksi di feedback@mwmag.com.

mw

Arsip mwmag  [Up]www.master.web.id/mwmag