Hungarian Notation

Aku ini termasuk orang yang cukup rewel dalam hal coding. Coding dan Naming convention merupakan salah satu titik yang paling aku soroti. Salah satu naming convention yang paling aku benci adalah Hungarian Notation. Definisi singkatnya: A linguistic convention requiring one or more letters to be added to the start of variable names to denote scope and/or type.

Kebanyakan orang, mungkin tanpa berpikir panjang, memandang bahwa notasi ini bagus. Menamai variabel dengan nama seperti iJumlah, strNama, sepertinya merupakan ide yang bagus karena bisa tahu tipe variabelnya dari namanya. Tapi setelah aku jelaskan lagi titik-titik kejelekannya, kebanyakan mengerti dan mulai meninggalkan notasi ini. Sudah ada banyak artikel di internet yang menjelaskan mengenai jeleknya notasi ini, misalnya ini, singkatnya adalah:

  1. Tipe variabel sudah akan dicek oleh compiler, kecuali di bahasa seperti Visual Basic
  2. Dalam OO, kebanyakan variabel adalah instans kelas, jadi percuma memberi awalan obj
  3. Dalam bahasa seperti C++ dan Java, variabel dideklarasikan seperlunya, mencari deklarasi variabel
    sangat mudah
  4. Tools (IDE) yang ada saat ini sudah cukup membantu dalam menentukan tipe dan scope variabel
  5. Jika nama tipe diubah, semua nama variabel juga harus diubah

Dan kemarin aku senang karena berhasil meyakinkan sebuah tim mengenai betapa tidak bergunanya notasi ini :P. Semoga semakin banyak yang mengikutiku 🙂

7 thoughts on “Hungarian Notation”

  1. buhuuuuuu…. mentang² blog ku ga ap tu det ga ada di linknyaa… buhuuuuuu…. huwaaaa…. huwaaaaaaaa… *menggaruk-garuk meja*

  2. wakh notasi apalagi tuch? Hongarian Notation.
    gw pernah pake Algebraic Notation maupun Descriptive Notation. tapi ga pernah
    diimplementasikan di kodinger gw. Hmm apakah pernah baca buku Code Complete?

  3. Barangkali persoalannya karena prefiks yang ditambahkan membawa tipe data variabel tersebut, sedangkan alat bantu (IDE, dll.) atau bahasa pemrograman yang digunakan, sudah melakukan pemeriksaan tersendiri. Seingat saya pada zaman masih sering menggunakan bahasa pemrograman yang “strict type”, awalan tersebut diperlukan untuk mengurangi jumlah salah kompilasi (IDE saat itu belum menampilkan “hint” identitas variabel), dan membantu pemrogram menuliskan statemen yang cocok. Misalnya di Pascal, dapat digunakan untuk membantu konversi tipe data yang diperlukan.

    Walaupun HN dikritik a.l. karena menyelipkan “commenting” menjadi bagian dari nama variabel, menurut saya konvensi penamaan variabel masih diperlukan untuk pekerjaan pemrograman berskala besar. Boleh jadi bukan persoalan tipe data, yang memang merepotkan seandainya tipe data variabel berubah, melainkan atribut lain yang langsung dengan mudah dapat ditangkap oleh mayoritas pemrogram begitu membaca nama variabel tersebut.

    Jangan lupa, ada pemrogram yang masih menggunakan Vim sebagai editor merangkap IDE… 🙂

  4. Hehehe, coding dan naming convention memang perlu, asal jangan pake Hungarian Notation aja deh 😛

  5. 5. Jika nama tipe diubah, semua nama variabel juga harus diubah

    mengeditnya mudah saja kok…, coba aja pake menu “find and replace”

    Naming conventions help Visual Basic programmers:
    * standardize the structure, coding style and logic of an application.
    * create precise, readable, and unambiguous source code.
    * be consistent with other language conventions (most importantly, the Visual Basic Programmers Guide and standard Windows C Hungarian notation).
    * be efficient from a string size and labor standpoint, thus allowing a greater opportunity for longer and fuller object names.
    * define the minimal requirements necessary to do the above.

    mauj pakai convention yg mana aja ga masalah,
    yg penting konsisten…

    baca deh disini:

    http://support.microsoft.com/kb/q110264/

    1. Belum baca dokumen Microsoft terbaru ya? mereka menyarankan untuk TIDAK MENGGUNAKAN HUNGARIAN NOTATION

      http://msdn.microsoft.com/en-us/library/ms229045.aspx

      Ada tulisan dalam format tebal (bold):

      Do not use Hungarian notation.

      Mengenai hal no 5:

      5. Jika nama tipe diubah, semua nama variabel juga harus diubah

      tidak selalu semudah itu mengubahnya:

      Find and replace puluhan/ratusan file dengan ribuan variabel bukan hal yang mudah. Kadang yang lebih parah lagi: kode yang berubah bukan milik kita sendiri. Kadang-kadang kodenya milik pihak ketiga. Di Windows API Microsoft, ada nama dalam hungarian notation, yang tidak cocok dengan tipenya, dan hal itu tidak bisa kita ubah, sehingga naming convention menjadi tidak konsisten.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.