Lewati ke konten

Mengapa Object?

Setelah halaman ini, kamu dapat menjelaskan mengapa object digunakan dan membandingkan struktur data tanpa object dengan struktur data menggunakan object.


Kita bisa menyimpan data nama siswa di string, umur di number, dan status di boolean. Tapi jika program kita mengelola banyak siswa, menggunakan variabel-variabel lepas akan sangat memusingkan dan rawan memicu bug tertukarnya data antar siswa.


📄 TypeScript
const namaSiswa1 = "Andi"
const umurSiswa1 = 17
const kelasSiswa1 = "XI RPL"
const namaSiswa2 = "Budi"
const umurSiswa2 = 16
const kelasSiswa2 = "X RPL"

Jika ada 36 siswa, kita akan memiliki 108 variabel lepas. Sangat berantakan dan sulit dibaca.

📄 TypeScript
const siswa1 = ["Andi", 17, "XI RPL"]

Cara ini lebih rapi secara jumlah variabel. Tapi kita kehilangan kejelasan makna:

  • Apa arti indeks 1? Apakah itu umur, nomor absen, atau nilai?
  • Kita harus menghafal indeks: siswa1[0] adalah nama, siswa1[1] adalah umur. Jika urutan array berubah, kode kita rusak.

📄 TypeScript
const siswa1 = {
nama: "Andi",
umur: 17,
kelas: "XI RPL"
}

Sekarang data terorganisir dalam satu variabel (siswa1), dan setiap data memiliki label yang jelas (nama, umur, kelas). Kita tidak perlu menghafal indeks lagi.


Bayangkan kamu memiliki dokumen milik siswa bernama Budi: foto, fotokopi KTP, dan rapor.

  • Tanpa Object seperti menaruh lembaran kertas Budi berserakan di atas meja bersama kertas-kertas milik siswa lain. Kertas mudah tertukar.
  • Dengan Object seperti memasukkan semua dokumen Budi ke dalam satu map plastik besar bertuliskan “PORTFOLIO BUDI”. Dokumen tersimpan rapi dan tidak akan tertukar.

🖥️ Output
TANPA OBJECT DENGAN OBJECT (MAP)
┌──────────┐ ┌──────────┐ ┌──────────────────────┐
│namaSiswa1│ │umurSiswa1│ VS │ siswa1 │
└──────────┘ └──────────┘ │ ├── nama: "Andi" │
┌──────────┐ ┌──────────┐ │ ├── umur: 17 │
│namaSiswa2│ │umurSiswa2│ │ └── kelas: "XI RPL" │
└──────────┘ └──────────┘ └──────────────────────┘
(Variabel berhamburan) (Terorganisir dalam map)

Buat src/bab6/mengapa-object.ts:

📄 TypeScript
// Tanpa objek — data terpisah dan rawan tertukar
const namaSiswa: string = "Andi"
const nilaiUjian: number = 88
// Dengan objek — data terikat rapi pada satu siswa
const profilAndi = {
nama: "Andi",
nilai: 88,
lulus: true
}
console.log(`Siswa lepas: ${namaSiswa} nilainya ${nilaiUjian}`)
console.log(`Siswa objek: ${profilAndi.nama} nilainya ${profilAndi.nilai}`)

Jalankan:

🖥️ Output
tsx src/bab6/mengapa-object.ts

Semua data yang mendeskripsikan satu benda/orang berkumpul di satu variabel. Tidak ada risiko umur Andi tertukar dengan umur Budi.

Key bertindak sebagai dokumentasi langsung. Kita langsung tahu bahwa umur: 17 mengindikasikan informasi umur.

Kita cukup mengirim satu objek ke dalam function, bukan mengirim 5 parameter variabel terpisah:

📄 TypeScript
// Tanpa objek
function tampilkan(nama: string, umur: number, kelas: string) { }
// Dengan objek (jauh lebih rapi)
function tampilkan(siswa: { nama: string; umur: number; kelas: string }) { }

  1. Tuliskan kode deklarasi biodata guru favoritmu tanpa object (gunakan variabel lepas).
  2. Refactor kode itu menjadi satu object guruFavorit.
  3. Bandingkan kejelasan dan kerapian kedua versi kode tersebut.

  • Variabel lepas untuk satu entitas membuat kode berhamburan dan rawan tertukar.
  • Array biasa tidak memberikan label makna pada elemen data.
  • Object menyatukan data berbeda jenis dengan label (key) yang jelas.
  • Object mempermudah pengiriman data terelasi ke dalam function.