Mencegah property object undefined di javascript

pernah mengalami kondisi dimana object yang ada tidak di definisikan atau bisa dbilang undefined ? nah untuk hal seperti itu Bahasa Pemrograman PHP dapat melakukan nya dengan fungsi isset() dimana jika object tersebut tidak didefinisikan maka hasil nya false misalnya kita puya kode php seperti ini.

$data = (object) array('presiden' => 'SBY');

echo $data->presiden; // SBY
echo $data->wakil_presiden; //Undefined property: stdClass::$wakil_presiden
echo ($data->wakil_presiden ? '' : 'Tidak Hadir'); //Undefined property: stdClass::$wakil_presiden Tidak Hadir
echo (isset($data->wakil_presiden) ? '' : 'Tidak Hadir'); //Tidak Hadir

yup jelas dengan penggunaan conditional saja tidak cukup karena object tidak didefinisikan sehingga terjadi kesalahan. maka dari itu harus menggunakan fungsi isset() untuk mengecek apakah variabel atau object di definisikan atau tidak ?

Lain hal nya degan javascript, karena javascript tidak mempunyai fungsi isset maka gimana dong ? oke mari kita lakukan contoh data berikut

var data = {presiden : 'SBY',
            wakil:{'mantan':'jusufkala',}};

data.presiden
> SBY
data.wakil.mantan
> jusufkala
data.wakil.sekarang
> undefined

dan coba kita masukan parent objek nya lagi dan maka hasil nya adalah.

data.wakil.sekarang.nanti
> TypeError: Cannot read property 'nanti' of undefined

yupp mengapa demikian, karena tidak ada objek nanti dan juga tidak ada data untuk objek sekarang. lalu gimana cara mencegahnya

Menggunakan Dummy

kamu bisa menggunakan dummy nya objek atau bisa dbilang objek matik. seperti contoh

data.wakil.sekarang = {}
data.wakil.sekarang.nanti = {}
//maka hasilnya
> Object {}

menggunakan try

yup menggunakan perintah try and catch untuk mengeksplotiasi error hualah gayamu rek rek dan ini juga dapat mencegah script yang akan berjaln selanjutnya akan masih tetap berjalan. penggunaan kode bisa seperti ini.

//var nilai = 5;

try {
   console.log("Nilai MTK saya" + nilai);
} catch(e) {
   //error di sini...
}

untuk melihat live preview bisa dilihat link berikut http://jsbin.com/AyeNoyA/1/edit

  • yudi

    mau nanya om
    di dalam fungsi ada yang beginian om
    {
    cl6 = document.formBarang.cl6.value;
    c6 = document.formBarang.c6.value;

    }

    klo objek cl6 gk ada fungsinya gk mau jalan om, mohon pencerahannya om kalo misalnya objek cl6 blm ada agar diabaikan saja.
    trimakasih :)

    • pedox

      yap bisa dibuat variabel nya terlebih dahulu diluar fungsi tersebut seperti

      var cl6;

      function hae() {
      cl6 = document.formBarang.cl6.value;
      }

      atau bisa juga menggunakan try seperti di atas

      function hae() {
      try {
      cl6 = document.formBarang.cl6.value;
      } catch(e) {
      //jika error di sini… atau abaikan
      }
      }