diskusi.tech (beta) Community

loading...

Membentuk Mental Model Pemrograman Yang "Sebenar-benarnya"

itsfaqih profile image Muhammad Faqih Muntashir ・2 min read

Ketika kita pertama kali mempelajari suatu hal, sering kali kita mencari sebuah perumpamaan dari hal yang kita ketahui, kemudian kita hubungkan dengan apa yang dipelajari.

Pada tahap awal, menurut saya ini memang diperlukan, dan bahkan bukan suatu hal yang bisa kita kendalikan. Akan tetapi, perlu diingat bahwa perumpamaan yang kita gunakan bisa jadi tidaklah sama persis dengan kenyataannya.

Sebagai contoh, saat awal belajar pemrograman, saya melihat di dalam if adalah sebuah "kondisi" dengan format perbandingan antara dua hal, jika dia benar, maka kode di dalamnya akan jalan.

// 1 tidak sama dengan 2, benar!
if (1 != 2) {
    console.log('Halo!')
}
Enter fullscreen mode Exit fullscreen mode

Ketika dihadapkan hal yang sesuai dengan apa yang saya tangkap, tidak ada masalah, saya bisa memahami beberapa penggunaan if lainnya.

// Jika nama = bambang, maka akan jalan!
if (nama == 'Bambang') {
    console.log('Nama kamu Bambang!');
}
Enter fullscreen mode Exit fullscreen mode

Namun, hal ini jadi masalah ketika if ini diisi dengan hal lain. Misalnya, diisi sebuah teks dan angka.

// Loh, ini kan bukan "kondisi", kok jalan??
if (2 && 'a') {
    console.log('A');
}

// Ini diisi angka dan huruf juga, tapi kok ga jalan??
if (0 && 'b') {
    console.log('B');
}
Enter fullscreen mode Exit fullscreen mode

Ternyata, setelah saya belajar lebih lanjut, yang sebenarnya dibaca oleh komputer bukan lah sebuah teks "kondisi" dengan format perbandingan dua hal, melainkan sebuah jenis data boolean yang nilainya antara true atau false.

Jika true, maka dia baru jalan. Dan true/false ini pun juga bisa kita pakai tanpa menulis sebuah "kondisi"!

if (true) {
    console.log('Jalan!');
}
Enter fullscreen mode Exit fullscreen mode

Tapi, kalau harus boolean yang mana antara true atau false, lalu kenapa 1 != 2 tadi bisa jalan?

Ternyata saya temui lagi, ketika kita coba mencetak "kondisi", nanti secara otomatis akan dikonversi menjadi sebuah boolean!

console.log(1 != 2);
// Output: true
Enter fullscreen mode Exit fullscreen mode

Lalu, bagaimana untuk kasus huruf dan angka tadi? Kan ketika kita cetak, mereka tidak jadi boolean?

Benar, namun jika ditelusuri lebih lanjut, dalam Javascript, ada konsep nilai truthy dan falsy, yang artinya kita bisa menggunakan nilai non-boolean untuk hal-hal yang diisi boolean, seperti if tadi.

Untuk mengetahui bagaimana suatu nilai non-boolean itu truthy (true) atau falsy (false), saya menggunakan bantuan function Boolean() bawaan Javascript untuk mengkonversinya ke bentuk boolean.

console.log(Boolean(2));
// Output: true

console.log(Boolean(0));
// Output: false

console.log(Boolean('a'));
// Output: true
Enter fullscreen mode Exit fullscreen mode

Sejak saat itu saya mulai menyadari bahwa saat belajar, sebisa mungkin hindarilah asumsi-asumsi yang kamu dapat dari perumpamaan, dan segeralah berusaha untuk mencari referensi lebih banyak agar bisa mendapat pemahaman yang sebenar-benarnya.

Discussion

pic
Editor guide