Cukup sering aku ketemu orang yang menganggap kalau belajar Informatika itu nggak perlu. Bahwa jurusan apapun bisa belajar bikin program komputer dan terjun ke dunia IT. Menurut orang-orang tersebut, belajar 4 tahun kuliah informatika nggak terlalu berguna. Menurutku itu salah.
Kalau hanya ingin membuat program bisnis sederhana, atau membuat aplikasi web biasa, memang sembarang orang bisa belajar dengan cepat, tapi untuk aplikasi yang besar dan rumit, segala ilmu yang dipelajari di kuliah informatika sangat perlu.Saya akan memberikan beberapa contoh aplikasi yang cukup besar, dan ilmu apa saja di Informatika yang diperlukan.
Contoh pertama adalah membuat DBMS berbasis SQL. Memang, seumur hidup programmer, belum tentu mereka akan membuat program semacam ini. Saya cuma mau mencontohkan program yang dipakai sehari-hari yang ternyata cukup banyak membutuhkan ilmu informatika.
Untuk membuat DBMS SQL, berarti harus memiliki parser untuk parsing SQL, dan berarti harus mengetahui teknik kompilasi (yang dasarnya adalah otomata). Hasil parsing adalah parse tree yang harus diproses sesuai dengan statement SQL yang diberikan (proyeksi/seleksi, union, dll), berarti teori basis data juga diperlukan.
Data tentunya harus disimpan di file (ilmu arsitektur komputer atau sistem berkas), dan struktur data harus dirancang dengan baik agar DBMS-nya optimal (kuliah struktur data diperlukan), atau jika tidak optimal, setidaknya harus mendukung konsep ACID dalam basis data.
Bagaimana jika data perlu diakses bersama? pengaturan multi tasking diperlukan (ada di kuliah konkuren atau sistem informasi). Bagaimana jika servernya boleh ada di komputer lain dalam jaringan? (ilmu networking diperlukan)
Dan list tersebut masih terus bertambah jika servernya mendukung sinkronisasi atau load balancing dalam jaringan (ilmu distributed system diperlukan).
Kita ganti dengan contoh lain: Aplikasi bisnis yang besar. Kalau diminta merancang (belum sampai level implementasi) suatu jaringan besar seperti yang dimiliki oleh Visa atau MasterCard, terbayangkah hal-hal yang harus ditangani? Coba kita lihat list berikut:
Bagaimana menangani data transaksi yang jumlahnya milyaran?
Bagaimana melakukan konversi mata uang seluruh dunia secara realtime?
Bagaimana cara menangani transaksi yang berbeda wilayah waktunya? bagaimana proses settlementnya, dll?
Bagaimana komunikasi antar program yang ada di aneka bank?
Ini cuma sebuah list singkat, tapi tanpa dasar informatika yang baik, bisakah aplikasi sebesar itu dibuat?
Contoh lain adalah aplikasi kritis: bagaimana merancang aplikasi penerbangan yang reliable, tidak pernah hang, terbukti kebenarannya, memproses data dari banyak sumber secara konkuren?
Saya sudah cukup banyak melihat aplikasi yang dibuat dan “asal jalan”, dan kadang khawatir jika suatu saat aplikasi-aplikasi tersebut suatu saat akan error, dan menimbulkan kerusakan yang besar.
Merancang aplikasi (atau sistem berbasis komputer) dengan baik, mengimplementasikan dengan benar, dan bahkan mendokumentasikan hal tersebut, semuanya butuh ilmu informatika yang benar (dan menyeluruh).
Bisa memprogram dalam suatu bahasa tidak sama dengan menguasai seluruh ilmu informatika.
Read More......
Kalau hanya ingin membuat program bisnis sederhana, atau membuat aplikasi web biasa, memang sembarang orang bisa belajar dengan cepat, tapi untuk aplikasi yang besar dan rumit, segala ilmu yang dipelajari di kuliah informatika sangat perlu.Saya akan memberikan beberapa contoh aplikasi yang cukup besar, dan ilmu apa saja di Informatika yang diperlukan.
Contoh pertama adalah membuat DBMS berbasis SQL. Memang, seumur hidup programmer, belum tentu mereka akan membuat program semacam ini. Saya cuma mau mencontohkan program yang dipakai sehari-hari yang ternyata cukup banyak membutuhkan ilmu informatika.
Untuk membuat DBMS SQL, berarti harus memiliki parser untuk parsing SQL, dan berarti harus mengetahui teknik kompilasi (yang dasarnya adalah otomata). Hasil parsing adalah parse tree yang harus diproses sesuai dengan statement SQL yang diberikan (proyeksi/seleksi, union, dll), berarti teori basis data juga diperlukan.
Data tentunya harus disimpan di file (ilmu arsitektur komputer atau sistem berkas), dan struktur data harus dirancang dengan baik agar DBMS-nya optimal (kuliah struktur data diperlukan), atau jika tidak optimal, setidaknya harus mendukung konsep ACID dalam basis data.
Bagaimana jika data perlu diakses bersama? pengaturan multi tasking diperlukan (ada di kuliah konkuren atau sistem informasi). Bagaimana jika servernya boleh ada di komputer lain dalam jaringan? (ilmu networking diperlukan)
Dan list tersebut masih terus bertambah jika servernya mendukung sinkronisasi atau load balancing dalam jaringan (ilmu distributed system diperlukan).
Kita ganti dengan contoh lain: Aplikasi bisnis yang besar. Kalau diminta merancang (belum sampai level implementasi) suatu jaringan besar seperti yang dimiliki oleh Visa atau MasterCard, terbayangkah hal-hal yang harus ditangani? Coba kita lihat list berikut:
Bagaimana menangani data transaksi yang jumlahnya milyaran?
Bagaimana melakukan konversi mata uang seluruh dunia secara realtime?
Bagaimana cara menangani transaksi yang berbeda wilayah waktunya? bagaimana proses settlementnya, dll?
Bagaimana komunikasi antar program yang ada di aneka bank?
Ini cuma sebuah list singkat, tapi tanpa dasar informatika yang baik, bisakah aplikasi sebesar itu dibuat?
Contoh lain adalah aplikasi kritis: bagaimana merancang aplikasi penerbangan yang reliable, tidak pernah hang, terbukti kebenarannya, memproses data dari banyak sumber secara konkuren?
Saya sudah cukup banyak melihat aplikasi yang dibuat dan “asal jalan”, dan kadang khawatir jika suatu saat aplikasi-aplikasi tersebut suatu saat akan error, dan menimbulkan kerusakan yang besar.
Merancang aplikasi (atau sistem berbasis komputer) dengan baik, mengimplementasikan dengan benar, dan bahkan mendokumentasikan hal tersebut, semuanya butuh ilmu informatika yang benar (dan menyeluruh).
Bisa memprogram dalam suatu bahasa tidak sama dengan menguasai seluruh ilmu informatika.

.jpg)