"Ini zaman OOP, cuk!" boleh jadi jargon para calon insinyur di kampus. Banyak junior saya yang bertanya-tanya : buat apa belajar pemrograman prosedural (imperatif)? Bukankah nantinya jika kita bekerja di perusahaan software, konsep yang kita pakai adalah OOP?

Suka tidak suka. Mau tidak mau. Boleh tidak boleh. Rela tidak rela. Ada sejuta justifikasi mengapa kita perlu belajar dari paradigma prosedural terlebih dahulu. Jika perguruan tinggi memutuskan bahwa mahasiswa harus mulai dari Pascal, bukan dari Java atau .NET, tentu mereka punya alasan yang cukup kuat. Berikut ini hasil cangkrukan saya dengan seorang sobat.


The Reasons Behind

Berkenalan dengan Pascal dan C tidak membuat anda ‘mandul’ untuk memprogram di C#, Java, atau VB.NET. Ada beberapa alasan mengapa menurut saya seorang pemula tidak langsung dijejali dengan konsep-konsep OOP :

  1. Metode Problem Solving Natural

    Manusia melakukan pemecahan masalah secara step-by-step. Itu adalah metode natural yang digunakan manusia di dalam problem solving. Manusia memandang dunia dalam bentuk objek (dan kelas), namun when it comes to solution manusia mendefinisikannya dalam bentuk instruksi imperatif.

    Dengan mempelajari konsep prosedural terlebih dahulu, kita dapat dengan lebih mudah mengekspresikan algoritma ke bahasa komputer.

  2. Selaras dengan Cara Kerja Mesin

    Secara internal, mesin bekerja dengan instruksi step-by-step. Inti pemrograman imperatif adalah kita memberitahu komputer how-to-do secara eksplisit.

    Dengan pemrograman prosedural, kita lebih memahami cara kerja komputer.

  3. Level Abstraksi yang Cukup Dasar

    Pemrograman prosedural ada pada level yang cukup mendasar jika dibandingkan paradigma lain. Salah satu contohnya adalah anda tidak bisa memprogram dengan OOP tanpa menyangkutpautkan instruksi-instruksi imperatif di dalamnya. Dengan metode prosedural, kita juga lebih mudah berkenalan dengan konsep-konsep dasar pemrograman seperti FOR, IF, WHILE, dan sebagainya.

    Demikian pula paradigma fungsional yang has-no-side-effect membutuhkan konsep prosedural. Sebab 100% paradigma fungsional murni yang tidak mempunyai efek samping berarti juga tidak akan menghasilkan output!

    Ke manapun anda melangkah nantinya, konsep prosedural tetap dibutuhkan. Itulah mengapa lebih masuk akal belajar dari paradigma prosedural lebih dahulu.

  4. Masih Minim Pengaruh Outer Force

    Umumnya compiler berbasis OOP relatif lebih kompleks. Dengan pemrograman prosedural, pemula dapat fokus terhadap logika, tanpa banyak mengurusi teknologi yang ada di belakang mesin.

    Demikian pula instruksi imperatif lebih mudah di-debug secara manual.

  5. Analisis Kompleksitas Algortima

    Suatu saat nanti (semester 6 atau 7), mahasiswa akan berhadapan dengan Desain dan Analisis Algoritma. Analisis terhadap kompleksitas algoritma mau tidak mau tetap harus dilakukan secara imperatif, bukan objek!

    Tanpa pemahaman pemrograman prosedural, kita akan kesulitan untuk melakukan analisis, yang berarti juga menyulitkan desain algoritma yang robust.

Itu adalah lima alasan saya mengapa pemrograman prosedural harus diajarkan. Kita juga perlu tahu bahwa tujuan akhir tidak selalu OOP. Masih banyak paradigma pemrograman lain, misalnya fungsional (semua adalah ekspresi matematis, contoh : F# dan Haskell) atau deklaratif (semuanya dideklarasikan, contoh : HTML dan XAML).

Saya yakin bahwa paradigma prosedural lebih memotivasi para pemula. Sebab efek positif dari konsep OOP (ekstensibilitas, fleksibilitas, dsb.) baru kelihatan dalam aplikasi yang berskala besar dan kompleks (sayangnya mahasiswa semester satu tidak mungkin langsung diminta membuat aplikasi yang kompleks). Dengan demikian, dalam mengawali pemrograman, jauh lebih mudah kita ganjar dengan konsep prosedural.

Yang tidak setuju dengan saya, boleh baca paper ini.

 

Ada 7 Komentar | Tambahkan Komentar

  1. ga geek kaya gini

     
    Gravatar Image

    — August 11, 2008 :: 7:40 am

  2. satu alasan lagi…
    jadi matakuliah hobi (ngulang) :-)

     
    Gravatar Image

    — August 14, 2008 :: 1:08 pm

  3. @Dody
    Padahal kamu salah satu super-geek di Programming Club

    @Way
    Kayanya lebih asyik ngulang Prokom daripada Probstat. Duh!

     
    Gravatar Image

    — August 20, 2008 :: 12:33 am

  4. betul sih, simple nya belajar sebaiknya dimulai dari hal yang dasar dasar dulu…

    Aku pun sebelum berkutat di OOP, juga pernah belajar prosedural (walaupun tidak segigih wirawan ).

     
    Gravatar Image

    — September 13, 2008 :: 11:35 am

  5. @harrycalgery
    sekarang giliran belajar OOP

     
    Gravatar Image

    — September 13, 2008 :: 4:05 pm

  6. Bener banget, daripada Probstat mending prokom ato alpro deh.

    Kak wirawan blognya inspiring banget kak

     
    Gravatar Image

    — November 25, 2008 :: 10:03 am

  7. @Wulunkz
    nah, itu calon programmer jago. hahaha…
    thanks.

     
    Gravatar Image

    — November 25, 2008 :: 12:11 pm

 



Anti-spam measure: please retype the above text into the box provided.