Cara Kerja Barcode: Bagaimana Garis-Garis Menyimpan Data

Kalau minggu lalu kita membedah QR code, sekarang saatnya ke “kakeknya”: barcode. Setiap belanja di supermarket, buku pinjam di perpustakaan, atau paket yang tiba di kurir — selalu ada deretan garis hitam-putih dengan angka di bawahnya. Bentuknya sederhana, tapi teknologi ini sudah dipakai lebih dari 50 tahun dan masih jadi tulang punggung ritel dunia. Bagaimana garis-garis itu bisa menyimpan data? Ini catatan belajar saya.

Sejarah: dari paten 1952 sampai scan pertama 1974

Kisahnya dimulai tahun 1948. Bernard Silver, mahasiswa pascasarjana Drexel Institute of Technology di Philadelphia, tidak sengaja mendengar presiden jaringan supermarket Food Fair meminta riset sistem untuk membaca data produk otomatis di kasir. Silver bercerita ke temannya, Norman Joseph Woodland, dan mereka mulai menggarap ide tersebut. Inspirasinya datang dari kode Morse — titik dan garis yang diperluas menjadi batang tebal dan tipis. Versi awal Woodland bahkan berbentuk lingkaran konsentris (bullseye), dan keduanya memegang paten AS tahun 1952.

Tapi butuh lebih dari 20 tahun sampai idenya benar-benar laku. Tahun 1972, supermarket Sainsbury’s di Inggris sudah memakai sistem barcode (dikembangkan Plessey) untuk rak. Lalu pada 1973, Uniform Grocery Product Code Council memilih desain George Laurer dari IBM — barcode batang vertikal yang lebih mudah dicetak daripada lingkaran Woodland. Desain inilah yang menjadi UPC.

Momen bersejarah: Juni 1974, di supermarket Marsh, Troy, Ohio, sebuah scanner memindai barcode UPC pada bungkus permen karet Wrigley’s — scan komersial pertama yang berhasil. Sejak itu barcode menyebar ke seluruh dunia dan menstandardisasi perdagangan ritel modern.

Cara kerja dasar: garis gelap-terang itu bit

Prinsip barcode 1D (satu dimensi) sederhana: garis gelap (bar) dan terang (spasi) merepresentasikan bit, dan lebarnya bervariasi antara 1 sampai 4 unit. Scanner menyorotkan cahaya (laser atau LED) ke barcode; bar gelap memantulkan sedikit cahaya, spasi terang memantulkan banyak. Sensor membaca pola pantulan itu sebagai deretan 0 dan 1, lalu menerjemahkannya menjadi angka — biasanya 12 atau 13 digit.

Angka di bawah garis bukan sekadar pajangan: itu human-readable, supaya manusia bisa membaca/mengetik kode kalau scanner bermasalah. Barcode yang sama bisa discan dari kiri ke kanan maupun sebaliknya — sistem paritas mengatur itu (lebih detail di bawah).

Anatomi barcode EAN-13

Standar yang paling umum di dunia ritel (termasuk Indonesia) adalah EAN-13 — 13 digit, diatur oleh organisasi global GS1. Ilustrasi di bawah adalah EAN-13 untuk kode 8992809101014 (899 = GS1 Indonesia):

Anatomi barcode EAN-13: quiet zone, guard pattern, 6 digit kiri, guard tengah, 6 digit kanan
Anatomi EAN-13: 95 modul = guard + 12 digit + guard, diapit quiet zone
  • Quiet zone (abu-abu): area kosong di kiri-kanan, wajib ada supaya scanner tahu di mana barcode dimulai/berakhir.
  • Guard pattern (merah): pola pembatas di awal dan akhir (101), dan guard tengah (01010) yang memisahkan dua bagian digit.
  • 6 digit kiri (biru): paritas ganjil/genap mengikuti digit pertama — ini kunci pembacaan dua arah.
  • 6 digit kanan (oranye): pola bar dibalik (mirror) dari kiri, supaya scanner bisa membaca mundur.
  • Check digit (digit ke-13): hasil perhitungan matematis untuk mendeteksi kesalahan baca.

13 digit itu isinya apa?

EAN-13 menyimpan angka yang terstruktur:

  • GS1 prefix (3 digit pertama) — menandai negara/region registrasi. 899 = Indonesia, 690-699 = China, 880 = Korea Selatan, dst.
  • Kode produsen (4-5 digit) — diberikan GS1 ke perusahaan.
  • Kode produk (3-5 digit) — nomor item yang ditetapkan produsen.
  • Check digit (1 digit terakhir) — pengaman kesalahan baca.

Struktur di atas adalah alokasi logis; yang penting secara fisik adalah 13 digit itu di-encode menjadi 95 modul (kotak terkecil) dengan pola tetap: tiap digit = 2 bar + 2 spasi dengan total lebar 7 modul, dan lebar tiap elemen 1-4 unit.

Check digit: pengaman kesalahan baca

Digit terakhir dihitung dari 12 digit sebelumnya dengan rumus bobot selang-seling 3 dan 1 (modulo 10). Contoh untuk 899280910101:

  1. Tulis 12 digit: 8 9 9 2 8 0 9 1 0 1 0 1
  2. Kalikan dari kanan dengan bobot 3,1,3,1,… (digit paling kanan berbobot 3): 8×1 + 9×3 + 9×1 + 2×3 + 8×1 + 0×3 + 9×1 + 1×3 + 0×1 + 1×3 + 0×1 + 1×3 = 76
  3. Check digit = (10 − (76 mod 10)) mod 10 = (10 − 6) = 4

Kalau scanner membaca salah satu digit, hasil perhitungannya tidak cocok dan sistem tahu ada kesalahan. Metode ini mendeteksi semua kesalahan satu digit dan sekitar 90% kesalahan tertukar posisi (transposisi). Itulah kenapa barcode yang kusut pun sering ketahuan “salah baca” daripada diam-diam menghasilkan harga keliru.

Jenis barcode 1D lain

JenisDigit/KarakterDipakai untuk
UPC-A12 digitRitel Amerika Utara
EAN-1313 digitRitel global (termasuk Indonesia)
EAN-88 digitProduk kecil (permen, kosmetik mini)
Code 39A-Z, 0-9, simbolIndustri, logistik, militer
Code 128ASCII penuh (128 karakter)Pengiriman, logistik, label GS1-128
ITF-1414 digitKarton/kemasan luar (GS1)

Contoh barcode EAN-13 (prefix 899 Indonesia)

Ini barcode EAN-13 asli yang di-generate dari kode 8992809101014 — coba scan dengan kamera HP (biasanya aplikasi kamera bawaan atau Google Lens bisa membacanya sebagai teks/angka):

Contoh barcode EAN-13 dengan prefix 899 Indonesia
EAN-13 8992809101014 — coba scan!

Barcode 1D vs QR Code 2D

Perbandingan barcode 1D dan QR code 2D
Barcode 1D vs QR Code 2D
AspekBarcode 1DQR Code 2D
Arah penyimpanan1 arah (horizontal)2 arah (baris + kolom)
Kapasitas12-13 digit / ±100 karakters.d. 7.089 digit / 2.953 byte
Toleransi posisiHarus tegakBisa miring (360°)
Toleransi kerusakanRendahTinggi (s.d. 30% dengan Reed-Solomon)
Penggunaan utamaKode produk retailURL, pembayaran, Wi-Fi, identitas

Kesimpulan

Barcode membuktikan bahwa teknologi paling sukses kadang yang paling sederhana: garis gelap-terang dengan lebar berbeda, dibaca lewat pantulan cahaya. Ditambah check digit untuk pengaman, barcode bertahan puluhan tahun karena murah, andal, dan universal. QR code mewarisi filosofi yang sama — hanya saja “menumpuk” data ke dua arah supaya kapasitasnya jauh lebih besar. Jadi kalau sudah paham barcode, memahami QR code jadi lebih mudah: keduanya adalah cara mengubah data menjadi pola visual yang bisa dibaca mesin.

Sumber

Cara Kerja QR Code: Kenapa Titik-Titik “Acak” Itu Menyimpan Data

Hampir tiap hari kita memindai QR code — bayar di warung, buka menu restoran, sambungkan Wi-Fi, sampai login WhatsApp Web. Bentuknya seperti kumpulan titik hitam-putih yang tampak acak, tapi setiap kali discan, datanya keluar utuh: URL, teks, atau nomor rekening. Kok bisa? Ternyata titik-titik itu tidak acak sama sekali. Ini catatan belajar saya tentang cara kerja QR code dari sisi teknisnya.

Awal mula: dari barcode garis ke kotak-kotak

QR code (kependekan dari Quick Response code) ditemukan tahun 1994 oleh Masahiro Hara di perusahaan Jepang Denso Wave (anak perusahaan Toyota), awalnya untuk melacak suku cadang mobil di pabrik. Berbeda dari barcode 1D yang cuma menyimpan data secara horizontal, QR code menyimpan data dalam dua arah (matriks), sehingga kapasitasnya jauh lebih besar dan bisa dibaca lebih cepat — makanya dinamai “quick response”.

Menariknya, Denso Wave memilih tidak mengeksploitasi hak patennya, sehingga QR code bebas dipakai siapa saja. Standarnya kemudian dibakukan dalam ISO/IEC 18004. Itulah kenapa QR bisa muncul di struk, kartu nama, iklan, sampai kuburan.

Titik “acak” itu sebenarnya bit

Setiap titik kecil di QR code disebut modul, dan satu modul menyimpan satu bit: modul hitam = 1, modul putih = 0. Scanner tinggal membaca deretan bit itu dan menerjemahkannya menjadi teks. Kalau hanya itu, kenapa bentuknya tidak seperti barcode sederhana saja?

Karena QR code punya aturan ketat: ada pola fungsi (function patterns) yang wajib ada supaya kamera bisa menemukan, mengorientasikan, dan mengukur kode dengan cepat. Sisa area yang kosong baru diisi data dengan pola zig-zag tertentu, lalu dimasking supaya tidak muncul pola yang menyesatkan pembaca. Hasil akhirnya memang terlihat acak — tapi itu hasil rekayasa, bukan kebetulan.

Anatomi QR code

Gambar di bawah adalah QR code versi 6 (41×41 modul) yang menyimpan URL blog ini, dengan bagian-bagiannya diwarnai:

Anatomi QR code: finder pattern, separator, timing, alignment, dark module, area data
Anatomi QR code versi 6 (41×41 modul)
  • 3 pola finder (merah): kotak di tiga sudut dengan rasio gelap-terang 1:1:3:1:1. Pola ini sangat jarang muncul di area lain, jadi scanner mudah menemukannya dan langsung tahu orientasi kode — itulah kenapa QR bisa dibaca dari arah mana pun (360°).
  • Separator (oranye): batas putih satu modul di sekeliling finder, supaya pola finder tidak tertukar dengan data di dekatnya.
  • Pola timing (biru): garis putus-putus antara finder yang memberi tahu scanner ukuran grid (berapa modul per baris/kolom).
  • Pola alignment (hijau): kotak kecil pembantu agar scanner tetap bisa membaca saat kode miring atau terdistorsi (ada di versi 2 ke atas).
  • Dark module (ungu): satu modul hitam yang selalu ada, bagian dari area format info.
  • Area data (abu-abu): bit data + koreksi kesalahan + format info (mode, level koreksi, pola mask).

Pola finder: rasio 1:1:3:1:1

Tiga kotak sudut (finder) itu berukuran 7×7 modul. Kalau diiris tepat di tengah, baris tengahnya membentuk pola gelap-terang dengan perbandingan 1:1:3:1:1 — satu hitam, satu putih, tiga hitam, satu putih, satu hitam. Scanner memindai piksel, mencari rasio persis ini, lalu langsung tahu: ini QR code, di mana sudut-sudutnya, dan arah yang benar.

Pola finder QR code 7x7 dengan rasio gelap-terang 1:1:3:1:1
Pola finder 7×7: baris tengah = 1 hitam · 1 putih · 3 hitam · 1 putih · 1 hitam

Proses pembuatan: dari teks menjadi titik-titik

Kalau kita menulis QR code secara manual (atau membaca kode programnya), alurnya kira-kira begini:

Diagram alur pembuatan QR code (encode) dan pembacaan (decode)
Dari teks ke QR code (encode) dan kembali ke teks (decode)

Encoder (pembuat):

  1. Analisis data — pilih mode paling efisien: numerik (0-9), alfanumerik (A-Z, 0-9, simbol), byte (teks biasa/UTF-8), atau Kanji. Tulis header berisi mode + panjang data.
  2. Susun bit stream — teks diubah menjadi deretan 0 dan 1.
  3. Tambahkan koreksi kesalahan — deretan bit diolah dengan algoritma Reed-Solomon untuk menghasilkan kata kode cadangan.
  4. Isi matriks — bit ditaruh ke dalam grid dengan pola zig-zag (naik-turun), melewati area pola fungsi.
  5. Masking — coba 8 pola mask, hitung skor penalti tiap pola (ada 4 aturan penilaian), lalu pakai pola dengan skor terendah.
  6. Tulis format & version info — QR code siap dicetak.

Kenapa harus masking? Karena kalau area data dibiarkan apa adanya, bisa muncul blok hitam besar atau pola yang mirip finder — dan itu akan membingungkan scanner. Masking “mengacak” area data secara teratur (misal: balik warna tiap baris genap, atau tiap 3 kolom) sehingga hasilnya seimbang. Scanner membaliknya lagi pakai info pola mask yang disimpan di format info.

Proses pembacaan: dari gambar kembali ke teks

  1. Kamera menangkap gambar QR.
  2. Scanner mencari 3 pola finder (rasio 1:1:3:1:1) untuk menentukan posisi dan orientasi, lalu memperbaiki perspektif kalau kodenya miring.
  3. Menentukan titik tengah tiap modul dan mengubahnya menjadi bit (gelap = 1, terang = 0).
  4. Membaca format info untuk mengetahui mode, level koreksi, dan pola mask → membalik proses masking.
  5. Memisahkan bit data dan bit koreksi, lalu Reed-Solomon memperbaiki bit yang salah karena kotor, sobek, atau tertutup sebagian.
  6. Menerjemahkan bit menjadi teks asli — selesai, dalam hitungan milidetik.

Versi, kapasitas, dan level koreksi

QR code punya 40 versi ukuran: versi 1 berukuran 21×21 modul, setiap naik versi bertambah 4 modul per sisi, sampai versi 40 dengan 177×177 modul. Makin besar versinya, makin banyak data yang bisa ditampung. Kapasitas maksimum (pada level koreksi L) kira-kira:

ModeKapasitas maksimum (versi 40, level L)
Numerik (0-9)7.089 digit
Alfanumerik (A-Z, 0-9, simbol)4.296 karakter
Byte (teks biasa, UTF-8)2.953 byte
Kanji1.817 karakter

Selain versi, ada 4 level koreksi kesalahan yang bisa dipilih. Makin tinggi levelnya, makin tahan kode terhadap kerusakan, tapi kapasitas datanya mengecil:

LevelModul yang bisa rusak/tutupContoh pemakaian
L (Low)± 7%Data banyak, ruang cetak sempit
M (Medium)± 15%Standar umum
Q (Quartile)± 25%Permukaan kasar, sering terlipat
H (High)± 30%Kode diberi logo di tengah

Itulah kenapa QR yang sebagian tertutup logo atau sobek masih bisa dibaca — yang rusak ditambal oleh data cadangan Reed-Solomon. Coba saja: tempel stiker kecil di tengah QR di bawah ini, biasanya tetap ke-scan.

Contoh QR code yang bisa dipindai mengarah ke rudyhartadi.web.id
Coba scan: QR ini menyimpan URL rudyhartadi.web.id

Kesimpulan

QR code terlihat seperti titik acak, padahal semuanya terstruktur: pola fungsi untuk navigasi, bit data yang diatur zig-zag, cadangan Reed-Solomon untuk ketahanan, dan masking untuk keterbacaan. Yang membuatnya “ajaib” bukanlah keacakan, melainkan redundansi dan aturan yang ketat — di balik setiap scan, ada algoritma yang bekerja dalam hitungan milidetik.

Sumber

Belajar Dzikir Pagi: Amalan Ringan yang Menghidupkan Hati

Hari ini saya belajar tentang dzikir pagi. Jujur, selama ini saya mengira dzikir pagi itu cuma rutinitas — baca beberapa wirid lalu selesai, tanpa tahu apa makna di baliknya. Ternyata ilmunya dalam sekali. Catatan ini saya rangkum dari kajian Ustadz Abdullah Zaen, Lc., MA dalam serial Fiqih Doa dan Dzikir, plus artikel dari Rumaysho.com.

Kapan Waktunya dan Apa Keutamaannya

Dzikir pagi paling utama dibaca setelah masuk waktu Subuh hingga matahari terbit. Namun boleh juga dibaca sampai matahari bergeser ke barat (mendekati waktu Zhuhur). Saya baru paham bahwa dzikir pagi tidak harus lama — yang penting istiqamah. Ibnu Qayyim dalam kitab Al-Wabilush Shoyyib menyebut dzikir punya lebih dari seratus faedah: mengusir setan, mendatangkan keridaan Allah, menghilangkan kekhawatiran dan kesedihan, menguatkan hati dan badan, bahkan mencerahkan wajah dan hati.

Rasulullah shallallahu ‘alaihi wasallam bersabda: “Siapa yang mengucapkan ‘Subhanallahi wa bihamdihi’ seratus kali dalam sehari, maka kesalahan-kesalahannya dihapuskan walaupun sebanyak buih di lautan” (HR. Bukhari dan Muslim). Subhanallah, amalan yang ringan di lisan ternyata begitu besar di sisi Allah.

Satu Wirid yang Kaya Makna

Dari kajian Ustadz Abdullah Zaen, saya belajar satu wirid pagi yang diajarkan Rasulullah: “Ashbahna wa ashbahal mulku lillah, walhamdulillah, laa ilaaha illallah wahdahu laa syarika lah…” — “Kami telah memasuki waktu pagi dan kekuasaan hanya milik Allah. Segala puji bagi Allah. Tidak ada tuhan yang berhak disembah kecuali Allah, tiada sekutu bagi-Nya…” (HR. Muslim, dari Ibnu Mas’ud).

Yang menarik, wirid ini mengajarkan etika berdoa: awali dengan pujian kepada Allah, baru sampaikan permohonan. Pujian itu berisi pengakuan atas nikmat-Nya (salah satunya nikmat umur — betapa banyak orang yang tidak sempat menikmati pagi hari ini) dan pengakuan atas keagungan-Nya. Setelah itu barulah kita memohon dua hal: kebaikan secara umum (rizki halal, kesehatan, keharmonisan keluarga, semangat beribadah) dan perlindungan dari keburukan, baik di dunia (dicontohkan dengan kemalasan dan keburukan masa tua) maupun di akhirat (azab neraka dan azab kubur).

Ustadz Abdullah Zaen juga mengingatkan: kemalasan itu berbeda dengan ketidakmampuan. Orang yang malas sebenarnya mampu, tapi enggan melaksanakan. Dzikir pagi seolah menjadi pengingat harian untuk meminta perlindungan dari sifat malas sebelum kita memulai aktivitas.

Merenungkan semua ini, saya makin paham kenapa para ulama menyebut dzikir sebagai makanan hati. Rencana saya: mulai membiasakan dzikir pagi setelah Subuh, pelan-pelan, sambil meresapi artinya — bukan sekadar membaca. Semoga catatan kecil ini bermanfaat untuk kita semua.

9Router: AI Router Gratis untuk Koding — Catatan Riset & Ulasan

Beberapa hari terakhir saya menelusuri tool yang sedang ramai dibicarakan developer: 9Router. Buat yang sering mentok rate limit di tengah sesi koding pakai Claude Code, Codex, atau Cursor, tool ini menarik banget untuk dicoba. Catatan ini adalah rangkuman riset saya: apa itu, cara kerjanya, fitur unggulan, biaya, sampai catatan keamanannya.

Apa itu 9Router?

9Router adalah AI router open-source (lisensi MIT) yang duduk di antara tool coding AI dan penyedia model LLM. Tool coding seperti Claude Code, Codex, Cursor, Cline, GitHub Copilot, Antigravity, sampai OpenClaw cukup diarahkan ke satu endpoint OpenAI-compatible di localhost:20128/v1, dan 9Router yang meneruskan permintaan ke provider pilihan kita — sekaligus menerjemahkan format permintaan (OpenAI ↔ Claude ↔ Gemini ↔ Vertex, dst.) supaya tool apa pun bisa memakai model apa pun.

Proyek ini lahir Januari 2026 dan tumbuhnya luar biasa cepat: per 6 Agustus 2026 sudah sekitar 24,7 ribu bintang GitHub, 4,3 ribu fork, dan masih sangat aktif dikembangkan — rilis terbaru v0.5.35 (16 Juli 2026), push terakhir 5 Agustus 2026. Slogannya singkat: never stop coding.

Kenapa orang pakai 9Router?

Masalah umum yang dijawab tool ini: kuota langganan terbuang percuma, rate limit di tengah kerja, token terbakar oleh output tool (git diff, grep, ls, log), dan biaya API yang mahal. Fitur utamanya:

  • Smart 3-Tier Fallback — rute otomatis Subscription → Cheap → Free. Begitu kuota habis atau error, langsung pindah tier tanpa jeda.
  • RTK Token Saver — kompresi output tool_result sebelum dikirim ke LLM, hemat 20–40% token input per request, tanpa kehilangan konteks.
  • Caveman Mode & Ponytail — memaksa LLM menjawab ringkas (hemat sampai 65% token output) atau menulis kode minimal ala “lazy senior dev” (YAGNI).
  • Multi-account round-robin, auto-refresh token OAuth, quota tracking real-time, request logging, cloud sync, dan usage analytics.

Provider dan biaya

Poin penting: software 9Router gratis selamanya. Yang kita bayar hanyalah provider (kalau memakai yang berbayar). Angka “cost” di dashboard hanya estimasi penanda penghematan — bukan tagihan.

  • Gratis: Kiro AI (~50 kredit/bulan, plus 500 kredit trial untuk akun baru), OpenCode Free (tanpa auth), Vertex AI ($300 kredit akun GCP baru, via endpoint Vertex AI Studio).
  • Murah: GLM ($0,6/1 juta token), MiniMax M2.7 ($0,2/1 juta token), Kimi K2.5 ($9/bulan flat).
  • Langganan: Claude Code Pro/Max ($20–200/bulan), Codex, GitHub Copilot, Cursor.

Kombinasi RTK + Kiro + OpenCode Free bisa membuat biaya $0/bulan sambil tetap hemat token. Tapi ingat, free tier provider bisa berubah sewaktu-waktu — contohnya iFlow, Qwen Code, dan Gemini CLI free tier sudah dihentikan sepanjang tahun 2026.

Cara pasang

  1. npm install -g 9router, lalu jalankan 9router.
  2. Dashboard terbuka di http://localhost:20128.
  3. Hubungkan provider — bisa mulai dari yang gratis (Kiro AI atau OpenCode Free).
  4. Arahkan tool coding ke endpoint http://localhost:20128/v1 + API key dari dashboard.

Selain lokal, bisa di-deploy di VPS, Docker, Cloudflare Workers, bahkan Hugging Face Spaces.

Catatan penting: keamanan

Ini bagian yang membuat saya agak hati-hati. Repo ini punya 19 security advisories (Mei–Juli 2026), termasuk beberapa yang berlabel critical: unauthenticated remote code execution via plugin MCP, pencurian kredensial + pengambilalihan database, hardcoded JWT secret, auth bypass lewat spoofing header (Host, X-Forwarded-For, X-9r-Real-Ip), dan SSRF. Kabar baiknya, tim pengembang merespons cepat dengan rilis beruntun. Saran saya:

  • Selalu pakai versi terbaru (v0.5.35+); jangan pakai versi lama untuk instance yang terhubung internet.
  • Jangan expose dashboard/API ke internet publik tanpa proteksi — untuk akses remote pakai Cloudflare Tunnel atau VPN.
  • Hati-hati paket tiruan: nama npm resmi adalah 9router (tanpa “s”). Paket 9routers sempat dikaitkan dengan laporan kerentanan di database pihak ketiga.

Alternatif

  • LiteLLM — 100+ provider, fokus enterprise, tanpa kompresi token bawaan.
  • OpenRouter — cloud-based, praktis, tapi tanpa fitur hemat token lokal.
  • OmniRoute — 4-tier fallback, 36+ provider.

Dibanding ketiganya, 9Router unggul di sisi local-first, gratis, dan kedalaman fitur penghemat token.

Kesimpulan

9Router menarik untuk developer yang ingin memaksimalkan langganan yang sudah ada atau menekan biaya API sampai nol. Tapi karena riwayat keamanannya sibuk, pakai dengan bijak: update rutin, jangan expose ke publik, dan ingat bahwa memakai langganan IDE untuk memanggil backend lain lewat router bisa melanggar ToS masing-masing tool — 9Router sendiri mengingatkan “mind each tool’s policy”. Untuk catatan pribadi saya: layak dicoba di lingkungan lokal/Docker, tapi belum saya rekomendasikan sebagai gerbang utama menuju production.

Sumber

Berita Coding & Web Dev Terbaru (6 Agustus 2026)

Halo! Kumpulan berita coding, web dev & AI paling menarik minggu ini sudah saya rangkum — dari AI coding agent baru dari Meta, ekstensi Laravel untuk editor Zed, sampai fitur CSS anyar yang mulai didukung browser. Langsung saja, ini delapan berita pilihan untuk para developer.

1. Meta Rilis Muse Code — AI Agent untuk Codebase Besar

Meta memperluas lini produk AI coding-nya dengan Muse Code, sebuah AI agent yang diklaim mampu menangani tugas kompleks pada codebase besar, bersamaan dengan pembaruan Muse Spark ke versi 1.2. Berita ini cukup ramai diperbincangkan di Hacker News dengan 178 poin, menandakan banyak developer yang menaruh perhatian pada tren AI coding agent. Sumber: TechCrunch — Meta launches Muse Code, an AI agent for large code bases.

2. Ekstensi Laravel Resmi untuk Editor Zed: LSP PHP & Blade

Laravel kini punya ekstensi resmi untuk editor Zed yang menghubungkan Laravel Language Server (LSP), lengkap dengan autocompletion, hover, diagnostics, dan code actions di file PHP maupun Blade. Buat yang selama ini penasaran mencoba Zed sebagai alternatif VS Code, ini alasan yang bagus untuk mulai migrasi. Sumber: Laravel News — Official Laravel Zed Extension: LSP for PHP & Blade.

3. CSS Gap Decorations Kini Tersedia di Browser

Fitur gap decorations di CSS akhirnya didukung penuh di Chrome dan Edge mulai versi 149, sehingga memberi gaya pada celah (gap) antar baris atau kolom grid jadi jauh lebih mudah dan terkontrol — misalnya untuk membuat garis pemisah antar kolom tanpa elemen tambahan. Ini salah satu fitur CSS yang paling ditunggu-tunggu tahun ini. Sumber: CSS-Tricks — Gap Decorations Are Now Available, Here’s What’s New.

4. PHP 8.6.0 Alpha 3 dan Rilis Pemeliharaan Bulanan

PHP 8.6.0 Alpha 3 resmi tersedia untuk diuji, bersamaan dengan rilis pemeliharaan 8.5.9, 8.4.24, 8.3.33, dan 8.2.33. Buat yang ingin mencicipi fitur-fitur baru PHP 8.6 sebelum rilis final, ini waktu yang tepat untuk ikut menguji dan melaporkan bug. Sumber: php.net — PHP 8.6.0 Alpha 3 available for testing.

5. Neon Klaim Retrieval 100x Lebih Murah dengan Open Model

Tim Neon (perusahaan di balik Postgres cloud) melalui proyek Castform mengklaim berhasil mengalahkan model frontier GPT-5.6 Sol pada tugas retrieval dengan biaya 100x lebih murah menggunakan open model. Buat yang sedang membangun aplikasi RAG dan memikirkan efisiensi biaya, klaim ini layak disimak — artikelnya juga naik ke posisi 226 poin di Hacker News. Sumber: Neon — Beating GPT-5.6 Sol on retrieval with 100x cheaper open models.

6. Kursus Gratis: Claude Code dari Nol sampai Mahir

freeCodeCamp merilis kursus lengkap di kanal YouTube mereka yang membawa pemula dari nol hingga mahir menggunakan Claude Code — mulai dari otomasi workflow development sampai fitur-fitur agentic-nya. Gratis dan langsung praktik, cocok buat yang ingin memanfaatkan AI coding assistant secara lebih serius. Sumber: freeCodeCamp — Claude Code Full Course.

7. Belajar Cara Kerja htmx dengan Membangun Ulang dari Nol

Serge Zaitsev, kreator htmx, menulis artikel “Let’s Make the Worst htmx Ever” — sebuah eksperimen membangun ulang esensi htmx dari nol sebagai cara yang menyenangkan untuk memahami apa yang sebenarnya terjadi di balik layar. Artikel ini muncul di JavaScript Weekly edisi #797, bersama kabar rilis Next.js 16.3 yang juga patut dicek. Sumber: JavaScript Weekly #797 — Reimplementing htmx from scratch.

8. PhpStorm 2026.2 Rilis dengan Laravel Tool Window

JetBrains meluncurkan PhpStorm 2026.2 dengan sejumlah pembaruan menarik: Laravel tool window baru, atribut FileReference untuk PHP, dukungan pipe operator PHP 8.5, dan agent skills manager. Buat pengguna setia PhpStorm, update ini layak segera dipasang. Sumber: Laravel News — PhpStorm 2026.2 Released.

Itu dia delapan berita pilihan minggu ini. Menurut saya yang paling menarik untuk diikuti adalah tren AI coding agent yang makin panas (Muse Code dan Claude Code) serta perkembangan ekosistem Laravel yang makin matang. Kalau ada yang menurutmu terlewat, tulis di komentar ya. Sampai jumpa di rangkuman minggu depan!

Belajar Adab Tidur: Cara Sederhana agar Tidur Kita Bernilai Ibadah

Hari ini saya belajar tentang adab tidur. Jujur, selama ini saya menganggap tidur sebagai aktivitas “mati gaya” — tinggal rebahan, pejamkan mata, selesai. Padahal tidur menghabiskan sepertiga dari hidup kita. Kalau cara kita tidur tidak pernah diperhatikan, berarti sepertiga hidup kita lewat begitu saja tanpa nilai. Ternyata Rasulullah ﷺ mengajarkan adab-adab tidur yang membuat aktivitas ini bisa bernilai ibadah. Catatan ini saya rangkum dari kajian Ustadz Abdullah Zaen tentang adab tidur (10 Adab Harian) dan artikel Rumaysho tentang adab islami sebelum tidur. Berikut poin-poin yang paling berkesan buat saya.

Kenapa adab tidur itu penting?

Karena tidur bukan sekadar istirahat fisik, tapi juga momen kita menyerahkan diri kepada Allah. Dalam doa sebelum tidur, kita mengakui bahwa tidur itu seperti “mati kecil” — kita tidak tahu apa yang terjadi pada diri kita sampai bangun lagi. Karena itu, seorang muslim menutup harinya dengan dzikir dan doa, memohon perlindungan Allah semalaman. Yang menarik, semua adab ini sederhana dan tidak butuh waktu lama, tapi efeknya luar biasa: tidur kita dijaga, hati tenang, dan yang tadinya aktivitas biasa berubah menjadi ibadah.

Adab sebelum tidur yang saya catat

Pertama, berwudhu sebelum tidur lalu berbaring miring ke kanan. Dari Al-Bara’ bin ‘Azib, Nabi ﷺ bersabda: “Jika kamu mendatangi tempat tidurmu, maka wudhulah seperti wudhu untuk shalat, lalu berbaringlah pada sisi kanan badanmu” (HR. Bukhari no. 247 dan Muslim no. 2710). Ibnul Qayyim menjelaskan, tidur miring ke kanan dianjurkan agar kita tidak kesusahan bangun untuk shalat malam, dan lebih baik bagi jantung. Saya jadi paham kenapa dulu sering diajari tidur miring kanan — ternyata ini sunnah yang punya hikmah.

Kedua, membaca dzikir-dzikir sebelum tidur. Yang dicontohkan Nabi ﷺ: mengumpulkan kedua telapak tangan, meniupnya sambil membaca surat Al-Ikhlas, Al-Falaq, dan An-Nas, lalu mengusapkannya ke kepala, wajah, dan tubuh yang terjangkau — diulang tiga kali (HR. Bukhari no. 5017). Selain itu, membaca Ayat Kursi. Dari Abu Hurairah, Nabi ﷺ bersabda bahwa siapa yang membaca Ayat Kursi saat hendak tidur, “maka akan senantiasa ada penjaga dari Allah dan setan tidak akan mendekatinya sampai pagi” (HR. Bukhari no. 3275). Lalu ditutup dengan doa: بِاسْمِكَ اللَّهُمَّ أَمُوتُ وَأَحْيَا — “Bismikallahumma amuutu wa ahyaa” (Dengan nama-Mu ya Allah, aku mati dan aku hidup) (HR. Bukhari no. 6324).

Doa bangun tidur dan adab menghindari begadang

Saat bangun tidur pun ada doanya: الْحَمْدُ لِلَّهِ الَّذِي أَحْيَانَا بَعْدَ مَا أَمَاتَنَا وَإِلَيْهِ النُّشُورُ — “Alhamdulillahilladzii ahyaanaa ba’da maa amaatanaa wa ilaihin nusyuur” (Segala puji bagi Allah yang telah menghidupkan kami setelah mematikan kami, dan hanya kepada-Nya tempat kembali) (HR. Bukhari no. 6324). Bayangkan, tidur dianggap sebagai “mati kecil”, lalu bangun pagi adalah “hidup lagi” — jadi setiap pagi kita sebenarnya sedang diberi umur baru. Masya Allah, makin saya renungkan makin merinding.

Poin yang paling menampar saya: Nabi ﷺ membenci begadang tanpa kepentingan. Dari Abu Barzah, “Rasulullah ﷺ membenci tidur sebelum shalat Isya dan mengobrol setelahnya” (HR. Bukhari no. 568). Umar bin Khattab bahkan pernah memukul orang yang begadang setelah Isya sambil berkata, “Apakah kalian begadang di awal malam, lalu di akhir malam tertidur lelap?!” Saya langsung muhasabah — berapa malam yang saya habiskan hanya untuk scroll ponsel sampai larut, padahal waktu itu seharusnya bisa dipakai untuk shalat malam atau setidaknya istirahat yang berkah.

Refleksi saya

Malam ini saya berniat memulai: wudhu sebelum tidur, berbaring miring kanan, membaca tiga surat perlindungan, Ayat Kursi, dan doa sebelum tidur. Perubahannya kecil, tapi kalau istiqamah, sepertiga hidup saya tidak lagi terbuang sia-sia — malah jadi ladang pahala. Semoga Allah mudahkan kita semua untuk mengamalkan sunnah-sunnah sederhana ini. Kalau saya ada salah dalam catatan ini, mohon dikoreksi; saya masih belajar.

Belajar Adab Makan: Cara Sederhana agar Makan Kita Penuh Berkah

Hari ini saya belajar tentang adab makan. Jujur, selama ini saya mengira makan itu urusan “teknis” saja — yang penting kenyang dan enak. Ternyata anggapan saya salah. Dalam Islam, cara kita makan bisa menjadi ibadah yang bernilai pahala, bahkan bisa mendatangkan keberkahan. Catatan ini saya rangkum dari kajian Ustadz Muhammad Nuzul Dzikri tentang adab di awal makan, kajian Ustadz Abdullah Zaen tentang adab makan dan minum, serta artikel Rumaysho tentang adab makan yang penuh barokah. Saya tulis di sini poin-poin yang paling berkesan buat saya.

Kenapa adab makan itu penting?

Alasannya sederhana: makan adalah kebutuhan yang kita lakukan setiap hari, bahkan berkali-kali dalam sehari. Kalau setiap kali makan kita melakukannya dengan cara yang dicontohkan Rasulullah ﷺ, otomatis kita mengumpulkan pahala tanpa harus menambah aktivitas apa pun. Sebaliknya, kalau kita makan seenaknya, setan pun ikut “makan” bersama kita. Dari Hudzaifah, Nabi ﷺ bersabda: “Sungguh, setan menghalalkan makanan yang tidak disebut nama Allah padanya” (HR. Muslim no. 2017). Na’udzubillah, saya tidak mau makanan saya dimakan setan, jadi poin ini langsung saya catat baik-baik.

Adab-adab makan yang saya catat

Pertama, membaca bismillah sebelum makan. Ini adab paling utama di awal makan, sebagaimana judul kajian Ustadz Nuzul Dzikri. Kalau lupa membacanya di awal, kita bisa mengucapkan: Bismillaahi awwalahu wa aakhirohu — “dengan nama Allah pada awal dan akhirnya”. Kedua, makan dengan tangan kanan. Nabi ﷺ bersabda: “Jika salah seorang di antara kalian makan, maka makanlah dengan tangan kanannya, dan jika minum, minumlah dengan tangan kanannya, karena setan makan dengan tangan kiri dan minum dengan tangan kirinya pula” (HR. Muslim no. 2020). Saya baru sadar, ternyata sering sekali saya makan pakai tangan kiri tanpa sadar — mulai sekarang harus pelan-pelan dibiasakan.

Ketiga, makan dari yang ada di hadapan kita, bukan mengambil bagian orang lain. Ini nasihat Nabi ﷺ kepada Umar bin Abi Salamah: “Wahai anak, sebutlah nama Allah, makanlah dengan tangan kananmu, dan makanlah yang ada di hadapanmu” (HR. Bukhari no. 5376). Keempat, kalau makan bersama dalam satu wadah, ambil dari pinggir, bukan dari tengah, karena barokah itu turun di tengah-tengah makanan. Kelima, jangan mencela makanan. Rasulullah ﷺ tidak pernah mencela makanan sama sekali; kalau beliau menyukainya, beliau memakannya, dan kalau tidak menyukainya, beliau meninggalkannya begitu saja (HR. Bukhari no. 5409).

Ada juga yang membuat saya tersentuh: adab mengambil suapan yang jatuh. Kalau ada makanan jatuh, ambil kembali, buang bagian yang kotor, lalu makan — jangan dibiarkan untuk setan. Dan setelah selesai makan, jangan langsung pergi begitu saja. Ucapkan hamdalah, atau doa yang diajarkan Nabi ﷺ: Alhamdulillaahilladzii ath’amani haadzaa wa rozaqoniihi min ghairi haulin minnii wa laa quwwah — “Segala puji bagi Allah yang telah memberiku makanan ini dan merizkikannya kepadaku tanpa daya dan kekuatan dariku”. Barangsiapa membacanya, diampuni dosanya yang telah lalu (HR. Tirmidzi no. 3458, hasan).

Refleksi saya

Belajar hal ini membuat saya malu sekaligus bersemangat. Malu, karena selama ini banyak yang belum saya lakukan — sering lupa bismillah, kadang mencela masakan orang, bahkan makan sambil main HP. Bersemangat, karena perbaikannya ternyata sederhana dan bisa dimulai dari makan berikutnya. Tidak perlu langsung sempurna, yang penting pelan-pelan dan istiqomah. Semoga catatan kecil ini bermanfaat, dan semoga kita semua dimudahkan untuk mengamalkan sunnah-sunnah kecil ini. Kalau nanti saya dapat ilmu baru lagi, insya Allah saya catat lagi di sini.

Berita Coding & AI Terbaru (3 Agustus 2026)

Kumpulan berita coding & AI paling menarik minggu ini (3 Agustus 2026). Ada yang relevan banget buat yang punya GPU kecil kayak saya 😄

1. AirLLM: Inference LLM 70B di GPU 4GB

Proyek open source yang menarik perhatian komunitas: AirLLM memungkinkan inference model 70B hanya dengan satu GPU 4GB — menggunakan teknik layer-wise offloading. Buat yang punya laptop gaming dengan VRAM terbatas, ini kabar bagus. Model sebesar itu biasanya butuh 40GB+ VRAM, tapi dengan offload per-layer ke RAM, jadi bisa jalan walau pelan.

🔗 github.com/lyogavin/airllm

2. MiniMax H3: Open Weights + Audio + Video 2K di ComfyUI

ComfyUI merilis dukungan day-0 untuk MiniMax H3 — model multimodal open weights yang bisa generate audio native dan video resolusi 2K. Buat pecinta AI generatif, ini langkah besar: model semacam ini biasanya closed-source dan mahal, tapi MiniMax merilis bobotnya terbuka.

🔗 blog.comfy.org — MiniMax H3 Day-0 Support in ComfyUI

3. OpenAI: 10 Kemajuan di Matematika & Ilmu Komputer Teoretis

OpenAI mempublikasikan sepuluh kemajuan riset di bidang matematika dan theoretical computer science yang didorong model AI mereka. Menarik untuk diikuti siapa saja yang tertarik sejauh mana LLM bisa membantu riset fundamental, bukan cuma coding atau menulis.

🔗 openai.com — Ten advances in mathematics

4. LLMs Reward Expertise

Esai menarik dari Sean Goedecke: LLM justru “menghargai” keahlian — semakin paham domain kamu, semakin berguna hasil LLM-nya. Berlawanan dengan anggapan “AI bikin skill jadi tidak penting”, esai ini berargumen bahwa yang paling diuntungkan adalah yang sudah ahli. Wajib baca buat yang khawatir AI menggantikan developer.

🔗 seangoedecke.com — LLMs reward expertise

5. Devtools Harus Open Source

Postingan blog exe.dev yang viral di Hacker News: developer tools harus open source. Argumennya sederhana — tool yang dipakai developer untuk membangun perangkat lunak seharusnya bisa diaudit dan dimodifikasi. Diskusi 180+ komentar di HN, menarik buat dibaca dua sisi argumennya.

🔗 blog.exe.dev — Devtools must be open source

6. SQLite: CVE Kritis atau LLM Slop?

Peneliti JFrog membedah klaim “SQLite punya CVE kritis” yang ramai — dan menyimpulkan sebagian besar hype-nya tidak akurat. Kasus menarik soal bagaimana laporan keamanan bisa dibesar-besarkan (atau disebut “LLM slop”) di era berita otomatis. Penting buat yang suka membaca berita keamanan dengan kritis.

🔗 research.jfrog.com — SQLite Critical CVEs or LLM Slop?

7. Vibe Coding: AWS Dukung Superblocks

TechCrunch mengangkat bagaimana AWS membantu startup Superblocks, platform yang fokus pada vibe coding — membangun aplikasi dengan instruksi bahasa natural. Implikasinya besar: cloud provider mulai serius mengakomodasi tren “coding tanpa coding”.

🔗 techcrunch.com — AWS and Superblocks

Itu dia 7 berita pilihan minggu ini. Yang paling saya tunggu follow-up-nya: AirLLM — kalau benar bisa jalan di GPU 4GB, laptop saya (RTX 3050) bisa ikut mainan model 70B 😄

Sampai jumpa di catatan berikutnya!

Cara Mengatasi ‘Call to a member function getQuery() on null’ Pada Laravel

Saat meload data & relasi menggunakan Eloquent, terjadi error ‘Call to a member function getQuery() on null’. Hal ini disebabkan karena pada fungsi relasi di model eloquent tidak ada return hasil. Berikut contohnya:

public function kunjungan()
{
    $this->belongsTo(Kunjungan::class, "kunjungan_id");
}

Seharusnya fungsi relasi tersebut seperti ini:

public function kunjungan()
{
    return $this->belongsTo(Kunjungan::class, "kunjungan_id");
}

Semoga Bermanfaat, Tetap Sehat, Tetap Semangat, agar dapat Tetap dalam Perdjoeangan!!