Dasar JavaScript
9. Cheatsheet Sakti

Cheatsheet Method Sakti ๐Ÿง™โ€โ™‚๏ธ

Ini adalah kumpulan method "kecil-kecil cabe rawit". Kelihatannya sepele, tapi kalau gak tau ini, lo bakal coding muter-muter.

1. String Manipulation (Otak-atik Teks) ๐Ÿ“

Sering dipake buat ngerapihin input user atau format tampilan.

A. Memecah & Menggabung (split & join)

Jurus mengubah Kalimat jadi Array, dan sebaliknya.

const kalimat = "aku-anak-sehat";
 
// 1. Pecah jadi Array (Hapus tanda strip)
const arr = kalimat.split("-");
console.log(arr); // ["aku", "anak", "sehat"]
 
// 2. Gabung lagi jadi String (Pake spasi)
const baru = arr.join(" ");
console.log(baru); // "aku anak sehat"

B. Bersih-bersih (trim)

Hapus spasi gak guna di depan/belakang (biasanya pas user input form).

const inputUser = "   otong@gmail.com   ";
console.log(inputUser.trim()); // "otong@gmail.com"

C. Ganti Teks (replace)

const teks = "Halo Anjing";
// Ganti kata kasar (Cuma yang pertama ketemu)
console.log(teks.replace("Anjing", "***")); // "Halo ***"
 
// Ganti SEMUA (Pake replaceAll)
console.log("A A A".replaceAll("A", "B")); // "B B B"

2. Object Methods (Bongkar Kunci) ๐Ÿ—๏ธ

  • Masalah: Object itu GAK BISA di-map (looping) secara langsung.
  • Solusi: Ubah dulu jadi Array pake method ini.
const user = {
  nama: "Otong",
  umur: 25,
  kota: "Gorontalo",
};

A. Ambil Kuncinya (Object.keys)

Berguna kalau lo mau bikin Table Header dinamis.

const kunci = Object.keys(user);
console.log(kunci); // ["nama", "umur", "kota"]

B. Ambil Isinya (Object.values)

Berguna kalau lo cuma butuh datanya doang.

const isi = Object.values(user);
console.log(isi); // ["Otong", 25, "Gorontalo"]

C. Ambil Dua-duanya (Object.entries)

Dapet array berpasangan [key, value].

const pasangan = Object.entries(user);
// [ ["nama", "Otong"], ["umur", 25] ... ]

3. JSON Conversion (Bahasa Alien) ๐Ÿ‘ฝ

Wajib tau kalau main API. Server sama Client ngobrol pake teks JSON.

A. Object ke String (JSON.stringify)

Dipake pas mau Kirim Data ke server.

const data = { id: 1, status: "ok" };
 
const siapKirim = JSON.stringify(data);
console.log(siapKirim); // '{"id":1,"status":"ok"}' (Jadi teks)

B. String ke Object (JSON.parse)

Dipake pas Nerima Data dari server (biar bisa dipake di JS).

const dariServer = '{"nama": "Budi"}';
 
const dataAsli = JSON.parse(dariServer);
console.log(dataAsli.nama); // "Budi"
โš ๏ธ

JSON.parse bakal Error kalau format string-nya acak-acakan. Selalu bungkus pake try-catch kalau parsing data gak jelas.

4. Number & Math (Hitungan) ๐Ÿงฎ

A. Format Uang/Koma (toFixed)

const harga = 15000.789;
console.log(harga.toFixed(2)); // "15000.79" (Dibulatkan 2 desimal jadi string)

B. Pembulatan

    Math.round(4.7) -> 5 (Bulat terdekat)
 
    Math.ceil(4.1) -> 5 (Paksa ke Atas / Plafon)
 
    Math.floor(4.9) -> 4 (Paksa ke Bawah / Lantai)

C. Angka Acak (Math.random)

Berguna buat bikin ID unik sementara di React.

// Angka acak 0 - 100
const acak = Math.floor(Math.random() * 100);

5. Konversi Tipe Data (Sulap) ๐ŸŽฉ

Kadang angka dari HTML itu bentuknya String ("10"), harus diubah biar bisa dihitung.

const a = "10";
const b = "20.5";
 
// String jadi Angka
console.log(Number(a) + 5); // 15 (Benar)
console.log(parseInt(b)); // 20 (Koma ilang)
console.log(parseFloat(b)); // 20.5 (Koma aman)
 
// Angka jadi String
const c = 100;
console.log(c.toString()); // "100"

6. Waktu / Timer โณ

Ini sering dipake buat efek animasi atau delay.

A. setTimeout (Sekali Jalan)

"Tunggu 3 detik, terus jalanin."

setTimeout(() => {
  console.log("Muncul setelah 3 detik");
}, 3000);

B. setInterval (Berulang-ulang)

"Jalanin SETIAP 1 detik."

const waktu = setInterval(() => {
  console.log("Detik...");
}, 1000);
 
// Cara stop:
clearInterval(waktu);
โš›๏ธ

Warning React: Kalau pake setInterval di React, JANGAN LUPA dimatiin (clearInterval) pas komponennya ilang (Unmount). Kalau nggak, laptop user bisa nge-lag!


7. Logic Operators (Short Circuit) ๐Ÿง 

Di React, lo bakal jarang pake if-else panjang. Lo bakal sering pake simbol-simbol ini buat Conditional Rendering (Nampilin sesuatu berdasarkan syarat).

A. Operator DAN (&&)

Artinya: "Kalau Kiri bener, baru jalanin Kanan."

const isLogin = true;
 
// Cara biasa
if (isLogin) {
  console.log("Selamat Datang");
}
 
// โœ… Cara Pro (React Style)
isLogin && console.log("Selamat Datang");
// Dibaca: Login oke? Yaudah print "Selamat Datang".

B. Operator ATAU (||)

Artinya: "Ambil yang Kiri. Kalau Kiri kosong/salah, baru ambil yang Kanan (Cadangan)." Sering dipake buat nilai default.

const inputUser = ""; // User gak isi nama (kosong)
const nama = inputUser || "Tamu";
 
console.log(nama); // "Tamu" (Karena inputUser kosong)

C. Nullish Coalescing (??) โœจ

Mirip ||, tapi lebih teliti. Dia cuma jalan kalau nilainya null atau undefined. Angka 0 dianggap valid.

const skor = 0; // Skor 0 itu valid (bukan error)
 
// โŒ Kalau pake || (Salah kaprah)
console.log(skor || 10); // Output: 10 (Padahal skornya emang 0!)
 
// โœ… Kalau pake ?? (Benar)
console.log(skor ?? 10); // Output: 0 (Aman)

8. Date Object (Urusan Tanggal) ๐Ÿ“…

JavaScript punya fitur bawaan buat ngatur tanggal, tapi hati-hati... ada jebakannya.

A. Ambil Tanggal Sekarang

const sekarang = new Date();
console.log(sekarang); // Formatnya jelek banget (ISO String)

B. Format Indonesia (toLocaleDateString) ๐Ÿ‡ฎ๐Ÿ‡ฉ

Biar enak dibaca manusia.

const opsi = {
  weekday: "long",
  year: "numeric",
  month: "long",
  day: "numeric",
};
 
console.log(sekarang.toLocaleDateString("id-ID", opsi));
// Output: "Senin, 9 Desember 2024" (Keren kan?)

C. Ambil Pecahan (Hati-hati Bulan!) โš ๏ธ

const tgl = new Date();
 
console.log(tgl.getDate()); // Tanggal (1-31)
console.log(tgl.getFullYear()); // Tahun (2024)
 
// โš ๏ธ JEBAKAN: Bulan dimulai dari 0!
// Januari = 0, Desember = 11
console.log(tgl.getMonth()); // Kalau Desember, keluarnya 11 (Bukan 12)
 
// Solusi: Selalu tambah 1
const bulanBenar = tgl.getMonth() + 1;

9. Set (Hapus Duplikat) ๐Ÿฆ„

Punya array isinya kembar-kembar? Pake Set buat ngebersihinnya dalam satu baris.

const angka = [1, 2, 2, 3, 3, 3, 4];
 
// Ubah ke Set (Otomatis buang duplikat), terus balikin ke Array
const unik = [...new Set(angka)];
 
console.log(unik); // [1, 2, 3, 4]

10. Debugging Keren (Console) ๐Ÿž

Jangan cuma taunya console.log. Browser punya fitur lain biar mata gak sakit liat log.

A. Console Table (Buat Array Object)

Enak banget buat liat data user/produk.

const users = [
  { id: 1, nama: "Pian", role: "Admin" },
  { id: 2, nama: "Budi", role: "User" },
];
 
console.table(users);
// Bakal muncul Tabel rapi di inspect element!

B. Console Warn & Error

Biar log-nya beda warna (Kuning/Merah).

console.warn("Hati-hati memory bocor!"); // Warna Kuning
console.error("Database meledak!"); // Warna Merah

11. Type Checking (Cek Jenis Data) ๐Ÿ•ต๏ธ

Berguna buat validasi biar aplikasi gak crash.

const data = "123";
 
console.log(typeof data); // "string"
console.log(typeof 100); // "number"
 
// Cek apakah dia Array? (Karena typeof Array itu 'object')
const list = [1, 2];
console.log(Array.isArray(list)); // true