Banyak programmer yang masih bertanya, heran mengapa programmer berhitung dari nol, bukan satu. Hal ini disebabkan oleh Array yang dimulai dari nol.

Betul bahwa ada beberapa bahasa pemrograman yang memulai array dari satu, bukan nol, seperti Lua, MATLAB, dan lain sebagainya. Namun mengapa array dimulai dari nol?

Mengapa harus dimulai dengan,

variabelArray[0]

dan bukan,

variabelArray[1]

Mengapa, mengapa, mengapa?


Menilik sejarah dan asal mula

Inilah alasan utama mengapa programmer sebaiknya mengerti konsep dasar bahasa pemrograman.

Ingat, seluruh bahasa pemrograman apa pun muaranya ke assembler dan ke mesin komputer juga.

Karena bahasa mesin itu sendiri hanya kumpulan dari saklar atau binari alias nol dan satu saja. Kemudian para pahlawan pemrograman akhirnya mempermudah komunikasi tersebut menjadi berbagai bahasa yang mudah kita mengerti saat ini.

Komputer memerlukan setidaknya RAM dan CPU. Fungsi RAM adalah untuk menyimpan variabel-variabel yang telah dideklarasi, dan CPU yang melakukan pemrosesan dan perhitungan seluruh kodingan yang ditulis.

Jadi, saat kita membuat aplikasi semisal jam digital di komputer, maka RAM menyimpan variabel seperti nilai detik, menit, dan jamnya. Lalu CPU lah yang menjalankan logikanya seperti menambahkan satu menit jika variabel detik sudah mencapai 60, dan seterusnya.


Permasalahan yang lebih kompleks

Pastinya saat kita membuat sebuah aplikasi, bukan hanya satu atau dua variabel saja bukan yang harus kita deklarasikan? Jumlah variabelnya bisa puluhan, ratusan, atau bahkan ribuan.

Seluruh variabel tersebut disimpan di dalam RAM, seluruhnya memiliki alamatnya masing-masing. Jadi RAM itu mirip seperti loker, atau seperti klaster perumahan, di mana setiap penghuninya benar-benar punya alamat rumah masing-masing.

Lalu apa hubungannya dengan array yang dimulai dari nol, dan bukan dari satu? Bukankah nomor rumah dimulai dari satu, bukan nol?

Nah, sekarang mulai ke sebuah contoh:

Bagaimana kalian membuat atau mendeklarasikan variabel hari?

Apakah dengan variabel individual,

var hari1 = "Minggu"
var hari2 = "Senin"
var hari3 = "Selasa"
var hari4 = "Rabu"
// Dan seterusnya

Atau dengan array?

var hari = ["Minggu", "Senin", "Selasa", "Rabu", "dst"]

Pasti dengan array. Pasti itu.

Perlu diketahui, array adalah kumpulan variabel. Artinya, dalam satu variabel array akan memakan beberapa alamat di RAM.

Misal, variabel hari seperti contoh di atas, jika kalian buat entah lewat tujuh variabel individual atau pun lewat sebuah variabel array, keduanya sama-sama akan mendapatkan tujuh penempatan (baca: alokasi memori) di RAM.

Jadi anggaplah variabel hari tersebut mendapatkan alokasi memori dari alamat 101 hingga 107. Atau analoginya, mendapatkan alamat rumah dari nomor 101 hingga 107.

Artinya:

Variabel hari ke-1 ada di alamat rumah 101 dengan nilai “Minggu”.

Variabel hari ke-2 ada di alamat rumah 102 dengan nilai “Senin”.

Variabel hari ke-3 ada di alamat rumah 103 dengan nilai “Selasa”.

Variabel hari ke-4 ada di alamat rumah 104 dengan nilai “Rabu”.

Dan begitu seterusnya.

Namun ingat, awal alokasi memori atau nomor rumah pertama dari variabel hari ini ada di 101.

Sekarang, kita ingin mengambil variabel hari “Rabu”, ada di nomor rumah berapakah variabel tersebut? Benar, 104.

Berarti, ada tiga rumah dari 101 yang dilewati sampai tiba di rumah 104 yang dihuni variabel hari “Rabu”.

Inilah mengapa hari “Rabu” ada di array[3], bukan array[4].

Mengakses array itu bukan dengan cara berhitung, tapi dengan cara mengindeks.

Jika berhitung, kita pasti akan berkata, “1, 2, 3, …”

Tapi dengan mengindeks, kita akan bertanya, “Kalau dari nomor rumah 101, ada di rumah ke berapa variabel hari “Minggu”? Oh, ada di nomor rumah 101 juga, yang artinya 101 + 0 atau array ke-nol.”


Perlukah mengubah indeks array menjadi 1?

Seperti yang telah saya sebutkan, meski ada bahasa pemrograman yang indeks arraynya dimulai dari satu, namun saya lebih memilih bahasa pemrograman yang indeks arraynya dimulai dari nol.

Saya bahkan cenderung tidak setuju jika array dimulai dari 1.

Dengan mengetahui array dari nol, programmer akan dipaksa untuk memahami konsep dasar pemrograman dan menghargai para pahlawan yang telah berjasa mengubah bahasa mesin menjadi bahasa yang mudah dimengerti manusia.

Bahkan saya yang sudah memiliki pengalaman koding dari assembly ini, menolak ‘unjuk rasa’ sebagian programmer yang ingin mengubah kebijakan array menjadi dimulai dari satu.

Bagi saya, itu seperti memaksa programmer yang sudah lebih senior untuk mempercayai jika bumi itu datar, menyelisihi para ilmuwan yang telah mengorbankan waktu mereka untuk meneliti selama bertahun-tahun mengenai bagaimana bentuk bumi yang sebenarnya.

Suka
Komentar
pos ke FB
pos ke Twitter
๐Ÿค— Selesai! ๐Ÿค—

  • Sebelumnya
    Memilih Engine yang Tepat Untuk Membuat Game

    Berikutnya
    5 Salah Kaprah Masyarakat Tentang Programmer


  • 0 Jejak Manis yang Ditinggalkan

    Minta Komentarnya Dong...

    Silakan tulis komentar kalian di sini, yang ada bintangnya wajib diisi ya...
    Dan jangan khawatir, email kalian tetap dirahasiakan. ๐Ÿ˜‰

    Kembali
    Ke Atas

    Terima kasih telah membaca artikel Anandastoon!

    Apakah artikelnya mudah dimengerti?

    Mohon berikan bintang:

    Judul Rate

    Desk Rate

    Terima kasih telah membaca artikel Anandastoon!

    Dan terima kasih juga sudah berkontribusi menilai kemudahan bacaan Anandastoon!

    Ada saran lainnya untuk Anandastoon? Atau ingin request artikel juga boleh.

    Selamat datang di Polling Anandastoon.

    Kalian dapat iseng memberi polling seperti di Twitter, Facebook, atau Story Instagram. Pollingnya disediakan oleh Anandastoon.

    Kalian juga dapat melihat dan menikmati hasil polling-polling yang lain. ๐Ÿ˜Š


    Memuat Galeri Poll...

    Sebentar ya, Anandastoon muat seluruh galeri pollnya dulu.
    Pastikan internetmu tetap terhubung. ๐Ÿ˜‰

    Asik poll ditemukan!

    Silakan klik salah satu poll yang kamu suka untuk mulai polling!

    Galeri poll akan terus Anandastoon tambahkan secara berkala. ๐Ÿ˜‰

    Judul Poll Galeri

    Memuat poll...

    Sebentar ya, Anandastoon memuat poll yang kamu pilih.
    Pastikan internetmu tetap terhubung. ๐Ÿ˜‰

    Masih memuat ~

    Sebelum memulai poll,

    Anandastoon ingin memastikan bahwa kamu bukan robot.
    Mohon agar menjawab pertanyaan keamanan berikut dengan sepenuh hati.
    Poll yang 'janggal' berpotensi dihapus oleh Anandastoon.
    Sebab poll yang kamu isi mungkin akan bermanfaat bagi banyak orang. ๐Ÿค—

    Apakah nama hari sebelum hari Kamis?

    Mohon jawab pertanyaan keamanan ini. Jika jawaban benar, kamu langsung menuju pollnya.

    Senin
    Rabu
    Jumat
    Sabtu

    Atau, sedang tidak ingin mengisi poll?

     

    Wah, poll telah selesai. ๐Ÿค—

    Sebentar ya... poll kamu sedang di-submit.
    Pastikan internetmu terhubung agar dapat melihat hasilnya.

    Hasil poll ๐Ÿ‘‡

    Menunggu ~

    Ups, sepertinya fitur ini masih dikembangkan Anandastoon

    Di sini nantinya Anandastoon akan menebak rekomendasi artikel yang kamu inginkan ~

    Heihei maihei para pembaca...

    Selesai membaca artikel Anandastoon? Mari, saya coba sarankan artikel lainnya. ๐Ÿ”ฎ

     

    Ups, sepertinya fitur ini masih dikembangkan Anandastoon

    Di sini nantinya kamu bisa main game langsung di artikelnya.

    Permainan di Artikel

    Bermain dengan artikel yang baru saja kamu baca? ๐Ÿ˜ฑ Kek gimana tuh?
    Simpel kok, cuma cari kata dalam waktu yang ditentukan.

    Mempersiapkan game...

    Aturan Permainan

    1. Kamu akan diberikan sebuah kata.

    2. Kamu wajib mencari kata tersebut dalam artikel.

    3. Kata yang ditemukan harap diblok atau dipilih.
    Bisa dengan klik dua kali di laptop, atau di-tap dan tahan sampai kata terblok.

    4. Terus begitu sampai kuota habis. Biasanya jumlahnya 10 kuota.

    5. Kamu akan berhadapan dengan waktu yang terus berjalan.

    6. DILARANG Inspect Element, CTRL + F, atau find and replace. Juga DILARANG berpindah tab/windows.