Skip to content

Instantly share code, notes, and snippets.

@solanoize
Created October 12, 2022 17:19
Show Gist options
  • Select an option

  • Save solanoize/6591a911793a9cac3dd0c4fc27ddda91 to your computer and use it in GitHub Desktop.

Select an option

Save solanoize/6591a911793a9cac3dd0c4fc27ddda91 to your computer and use it in GitHub Desktop.

Belajar Objek

imam syafii: "Jika kamu tidak tahan terhadap penatnya belajar, maka kamu akan menanggung bahayanya kebodohan."

let obj = {
  nama: "Junox",
  email: "junox@dark.silent",
  tinggi: 175
}

console.log(obj.nama);
console.log(obj.email);
console.log(obj.tinggi);

Objek memiliki objek lagi:

let obj = {
  nama: "Junox",
  email: "junox@dark.silent",
  tinggi: 175,
  alamat: {
    jalan: "JL. Kartika",
    nomor: "56",
    rt: "003",
    rw: "004"
  }
}

console.log(obj.nama);
console.log(obj.email);
console.log(obj.tinggi);
console.log(obj.alamat.jalan);
console.log(obj.alamat.nomor);
console.log(obj.alamat.rt);
console.log(obj.alamat.rw);

Properti bisa dalam bentuk fungsi:

let obj = {
  nama: "Junox",
  namaBelakang: "Solahudin",
  // ...
  namaLengkap: function () {
    return this.nama + " " + this.namaBelakang;
  }
}

// ...
console.log(obj.namaLengkap());

Objek bisa berisi objek lainnya dari variabel:

let objPelanggan = {
  nama: "Junox",
  namaBelakang: "Solahudin",
  email: "junox@dark.silent",
  tinggi: 175,
  alamat: {
    jalan: "JL. Kartika",
    nomor: "56",
    rt: "003",
    rw: "004"
  },
  namaLengkap: function () {
    return this.nama + " " + this.namaBelakang;
  }
}

const objekMobil = {
  merk: "Viat",
  harga: 123000000000,
  pemilik: objPelanggan
}

console.log(objekMobil.pemilik.email);

Final coding:

let objPelanggan = {
  nama: "Junox",
  namaBelakang: "Solahudin",
  email: "junox@dark.silent",
  tinggi: 175,
  alamat: {
    jalan: "JL. Kartika",
    nomor: "56",
    rt: "003",
    rw: "004"
  },
  namaLengkap: function () {
    return this.nama + " " + this.namaBelakang;
  }
}

const objekMobil = {
  merk: "Viat",
  harga: 123000000000,
  pemilik : objPelanggan,
  kondisi: null,
  error : "",
  gigi : 0,
  gantiGigi : function (status) {
    if (status) {
      this.gigi++;
    } else {
      this.gigi--;
    }
  },
  belok : function (kemana) {
    if (kemana === "kekanan" || kemana === "kekiri") {
      this.kondisi = "Mobil sedang belok ke " + kemana;
    } else {
      this.error = "Parameter salah";
    }
  },
  jalan : 
  function (kemana) {
    this.kondisi = "Mobil sedang jalan ke " + kemana;
  }
}


console.log(objekMobil.kondisi);
objekMobil.belok("depan");
console.log(objekMobil.kondisi);
objekMobil.belok("kiri");
console.log(objekMobil.kondisi);
objekMobil.jalan("depan");
console.log(objekMobil.kondisi);
objekMobil.jalan("mundur");
console.log(objekMobil.kondisi);
objekMobil.gantiGigi(true);
console.log(objekMobil.gigi);
objekMobil.gantiGigi(true);
console.log(objekMobil.gigi);
objekMobil.gantiGigi(false);
console.log(objekMobil.gigi);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment