Value dan Expression

Value dan Expression

Mula-mula kita bahas hal-hal paling dasar di Javascript….

Mendefinisikan value di bahasa pemrograman itu sama susahnya kaya mendefinisikan angka di matematika, kaya kita engga bisa nemu kata yang tepat tapi kita sama-sama tahu bahwa dia itu ada, bisa kita gunakan sewaktu-waktu kita butuh, dan gunanya untuk membantu kita menyelesaikan persoalan-persoalan di kehidupan pemrograman.

Di javascript secara umum ada dua kategori value, yaitu primitive value dan yang satunya object/function.

Primitive value

Seperti namanya, primitive value ini jenis value yang primitive (sungguh ini tidak menjelaskan apapun), value yang paling dasar di semua bahasa pemrograman, bukan sebuah object (tentu saja) dan tidak punya method apapun di dalamnya. Umumnya, penamaan tipe data untuk primitive value itu sama antara bahasa pemrograman yang satu dengan lainnya. Misalnya, di Javascript ada string, di Java, python, C++, Go juga namanya string.

Di Javascript sendiri ada enam tipe data yang termasuk dalam primitive value antara lain number, string, boolean, bigint, symbol, dan undefined.

console.log(123);
console.log("Ekor kuda");
console.log(false);

Dari berbagai macam tipe data yang telah aku sebutkan, primitive value di Javascript punya satu kesamaan, yaitu kita tidak bisa mengubahnya isinya secara langsung. Ini mungkin terdengar aneh, padahal ubah ya tinggal ubah aja, tapi bear with me, kita akan bahas ini perlahan-lahan.

let string = "kuda poni";
string[3] = "i";
console.log(string);

Apa yang akan terjadi dengan variable string ? Apakah isinya berubah? Apakah enggak berubah? Atau mungkin malah error? Hmm…

Jawabannya adalah string tetap berisi "kuda poni" . Enggak berubah sama sekali, enggak terpengaruh, ini adalah maksud dari kita enggak bisa mengubah isi dari primitive value.

Berbeda dengan bahasa pemrograman yang lain misalnya C++

string s;
s = "kuda poni";
s[3] = 'i';

cout << s << endl; // kudi poni

Karena di C++ string itu array of char dan bukan primitive value, makanya mengubah isi value string s secara langsung memungkinkan dilakukan di C++, sedangkan di Javascript enggak bisa begitu karena string adalah primitive value. Ketidakbisaan kita mengubah isi value ini bahasa kerennya disebut immutable.

Object/function

Seperti namanya, tentu saja value jenis yang satu ini merupakan representasi dari data-data berupa object ataupun function. Ngomong-ngomong ada yang unik dari value jenis ini, coba jalankan kode di bawah ini di browser console

console.log({});
console.log([]);
console.log(() => {});

Apakah kamu sekarang bertanya apa yang unik? Coba perhatikan dan bedakan ketika kamu melakukan console.log primitive value dan object. Kamu akan melihat ada segitiga kecil sebelum value di tampilkan di browser console ketika kamu melakukan console.log value berupa object/function.

Tipe data yang masuk dalam value ini antara lain object, array, function, dan null.

Bentar kenapa array dan null ada di object? Memang array ini object? Kalau kamu bertanya seperti ini, memang sih di bahasa pemrograman lain array dan object ini cukup beda, tapi di dunia Javascript array merupakan sebuah object, ya sebuah object. Untuk yang null… aku akan bahas di cerita yang akan datang. Enggak seru dong masak dispill semua sekarang.

Berbeda dengan primitive value, object/function ini bisa kita otak-atik isinya secara langsung atau mutable dan juga bisa kita hubungkan dengan value lainnya.

Itu dia jenis value yang ada di Javascript.

Expression

Ketika kita bingung akan sesuatu, secara alamiah kita akan bertanya-tanya atau bertanya aja, nah Javascript ini bisa menjawab pertanyaan-pertanyaanmu. Tapi ya tentu saja Javascript enggak bisa menjawab persoalan hidupmu, seperti apakah kamu harus nembak si doi atau enggak, untuk hal ini jangan andalkan Javascript, mungkin dia enggak akan membantumu.

Tapi ada beberapa jenis pertanyaan yang bisa Javascript jawab, pertanyaan-pertanyaan ini disebut expression.

Misalnya, jika kita menanyakan “berapa 2+2”, Javascript akan menjawab 4.

console.log(2 + 2); // 4

Ketika kita tanya Javascript enggak mengembalikan pertanyaanmu dengan pertanyaan lainnya, dia akan menjawab dengan suatu jawaban berupa value. Contoh lainnya…

function gandakan(a) {
return a + a;
};

console.log(gandakan(3 + 3)); // 12

3 + 3 adalah expression, secara bahasa kita bisa artikan “gandakan 3+3!”, maka Javascript menjawab penggandaan dari (3+3) yaitu 6, dan jawabannya adalah 12.

Nah itu tadi cerita pertama kita tentang dasar-dasar Javascript, stay with me, kita akan pelan-pelan bahas satu persatu konsep dasar Javascript supaya kita ngoding Javascript lebih tenang.

Have a nice day!