[{"data":1,"prerenderedAt":218},["ShallowReactive",2],{"site-footer-license":3,"featured":7,"site-header":24,"latest-articles":57,"homepage-series":130,"$fwW6UskvCyBkh33WFXnOP_K86bOckabnBwopmrQmszLI":212},{"name":4,"url":5,"show":6},"CC BY-SA","https://creativecommons.org/licenses/by-sa/4.0/",false,{"id":8,"title":9,"slug":10,"excerpt":11,"published_at":12,"thumbnail_image":13,"tags":15,"reading_time":20,"series":21,"authors":23},"1","Kenapa AI Suka 'Halu'? Kenalan sama JEPA, Otak AI yang Punya Akal Sehat","kenapa-ai-suka-halu-kenalan-sama-jepa-otak-ai-yang-punya-akal-sehat","AI generatif sering 'halu' karena cuma jago nebak pola kata. JEPA coba ngerombak itu dengan ngajarin AI cara kerja dunia nyata kayak otak manusia.","2026-06-02T08:09:05.595Z",{"id":14},"ccb0b8cf-eec7-4a92-a416-7e0c22bb72ec",[16,17,18,19],"jepa","artificial-intelligence","yann-lecun","agi",4,{"title":22},"Kecerdasan Artifisial",[],{"navigations":25},[26,40],{"collection":27,"item":28},"series",{"__typename":27,"title":29,"slug":30,"children_series":31},"Artikel","all",[32,35,38],{"title":33,"slug":34},"Algoritma dan Struktur Data","algoritma-struktur-data",{"title":36,"slug":37},"Konsep Dasar Pemrograman","konsep-dasar-pemrograman",{"title":22,"slug":39},"kecerdasan-artifisial",{"collection":27,"item":41},{"__typename":27,"title":42,"slug":43,"children_series":44},"Tutorial","tutorial",[45,48,51,54],{"title":46,"slug":47},"Belajar Java","belajar-java",{"title":49,"slug":50},"Belajar Pascal","belajar-pascal",{"title":52,"slug":53},"Belajar Python","belajar-python",{"title":55,"slug":56},"Belajar Golang","belajar-golang",[58,79,99,115],{"id":59,"title":60,"slug":61,"excerpt":62,"published_at":63,"thumbnail_image":64,"tags":66,"reading_time":72,"series":73,"authors":74},"46","Mengapa C Mulai Ditinggalkan: Duel Filosofi Keamanan Rust vs Kesederhanaan Zig","mengapa-c-mulai-ditinggalkan-duel-filosofi-rust-vs-zig","Pernah denger kalau sekitar 70% celah keamanan kritis software modern itu asalnya dari bahasa C? Iya, bahasa yang udah jadi fondasi internet ini 😅. Yuk, kita bedah duel filosofi Rust vs Zig dan cari tahu mana yang pas buat proyek kalian!","2026-09-09T02:19:05.266Z",{"id":65},"1942a5c9-c1f6-476d-9913-768f78d9d8eb",[67,68,69,70,71],"system-programming","rust","zig","c","memory-safety",null,{"title":29},[75],{"authors_id":76},{"name":77,"slug":78},"Inva","inva",{"id":80,"title":81,"slug":82,"excerpt":83,"published_at":84,"thumbnail_image":85,"tags":87,"reading_time":72,"series":95,"authors":96},"45","Rate Limiting Algorithms: Token Bucket vs Leaky Bucket vs Sliding Window","rate-limiting-algorithms-token-bucket-leaky-bucket-sliding-window","Udah tahu kenapa *rate limiting* itu wajib, tapi masih bingung beda Token Bucket, Leaky Bucket, Fixed Window, dan Sliding Window? Yuk, kita adu empat algoritma ini bareng-bareng dan cari tahu mana yang paling pas buat API kalian!","2026-09-09T01:57:55.886Z",{"id":86},"0e0ed26d-20c6-443c-bde1-4a6200f6f801",[88,89,90,91,92,93,94],"backend","system-design","rate-limiting","redis","api-gateway","architecture","traffict-management",{"title":29},[97],{"authors_id":98},{"name":77,"slug":78},{"id":100,"title":101,"slug":102,"excerpt":103,"published_at":104,"thumbnail_image":105,"tags":107,"reading_time":72,"series":72,"authors":112},"44","Transactional Outbox Pattern: Solusi Konsistensi Database dan Message Broker Tanpa 2PC","transactional-outbox-pattern-konsistensi-database-message-broker","Pernah nggak kalian lihat pesanan udah masuk database, tapi email konfirmasinya nggak pernah kekirim? Itu gejala *dual-write problem*. Yuk, kita bedah Transactional Outbox Pattern biar data dan *event* kalian nggak lagi berselisih paham!","2026-09-04T12:15:23.152Z",{"id":106},"e3c617fd-1486-4b82-b937-94fbec846c77",[88,108,93,109,110,89,111],"microservices","database","message-broker","postgresql",[113],{"authors_id":114},{"name":77,"slug":78},{"id":116,"title":117,"slug":118,"excerpt":119,"published_at":120,"thumbnail_image":121,"tags":123,"reading_time":72,"series":72,"authors":127},"43","Dead Letter Queue (DLQ) & Retry Policy: Menyelamatkan Pesan Nyasar di RabbitMQ Tanpa Bikin Worker Macet","dead-letter-queue-retry-policy-rabbitmq-resilient-messaging","Pernah nggak sih, *worker* kalian nolak satu pesan terus-terusan sampai CPU melonjak 100%? Itu namanya *poison message loop*, jebakan klasik di RabbitMQ. Yuk, kita bahas cara pasang *retry policy* dan *dead letter queue* yang bener!","2026-09-03T04:16:07.481Z",{"id":122},"6c0a7ead-4841-4073-b29e-df7ae0f2aa3c",[124,110,88,93,108,125,126],"rabbitmq","async","python",[128],{"authors_id":129},{"name":77,"slug":78},[131,138,151,170,195],{"id":132,"title":133,"slug":134,"articles":135},"27","Tentang Algoritma dan Struktur Data","asd-intro",[136],{"id":137},"47",{"id":139,"title":140,"slug":141,"articles":142},"16","Berkenalan dengan Bahasa Python","python-intro",[143,145,147,149],{"id":144},"80",{"id":146},"81",{"id":148},"82",{"id":150},"83",{"id":152,"title":153,"slug":154,"articles":155},"21","Berkenalan dengan Java","java-intro",[156,158,160,162,164,166,168],{"id":157},"49",{"id":159},"50",{"id":161},"51",{"id":163},"52",{"id":165},"53",{"id":167},"54",{"id":169},"55",{"id":171,"title":172,"slug":173,"articles":174},"23","Berkenalan dengan Bahasa Pascal","pascal-intro",[175,177,179,181,183,185,187,189,191,193],{"id":176},"59",{"id":178},"60",{"id":180},"102",{"id":182},"61",{"id":184},"103",{"id":186},"62",{"id":188},"63",{"id":190},"64",{"id":192},"65",{"id":194},"66",{"id":196,"title":197,"slug":198,"articles":199},"17","Variabel, Tipe Data, dan Operasi","python-variabel-tipe-data",[200,202,204,206,208,210],{"id":201},"84",{"id":203},"85",{"id":205},"86",{"id":207},"87",{"id":209},"88",{"id":211},"89",[126,213,88,214,89,215,216,217],"pascal","dasar","tipe-data","struktur-kontrol","java",1791045064385]