[{"data":1,"prerenderedAt":1384},["ShallowReactive",2],{"author-izzudd":3,"tag-labels":1335,"site-header":1336},{"id":4,"name":5,"slug":6,"role":7,"description":8,"links":8,"profile_picture":8,"articles":9},1,"Daffa Izzuddin","izzudd","Writer",null,[10,30,43,56,69,95,115,134,152,177,197,212,232,250,266,284,301,315,333,351,372,388,405,422,439,454,470,485,499,518,539,554,568,587,602,617,631,647,661,676,691,706,720,740,756,772,786,800,814,832,851,866,880,896,912,927,941,955,969,983,1001,1015,1030,1044,1062,1078,1093,1107,1123,1137,1151,1165,1179,1193,1210,1224,1238,1252,1266,1280,1294,1308,1322],{"id":11,"title":12,"title_id":8,"slug":13,"excerpt":14,"excerpt_id":8,"has_translation":15,"published_at":16,"reading_time":17,"hidden_from_listing":15,"tags":18,"thumbnail_image":8,"og_image":21,"series":22,"authors":27},133,"Python Strings: the Badge That Only Worked for One Name","python-strings","The badge script printed the right name for the person who wrote it and the wrong name for everybody else. Slicing counts characters, and a name is words.",false,"2026-10-28T13:00:00.000Z",6,[19,20],"python","string","\u002Fog\u002Fpython-strings.png",{"id":23,"title":24,"title_id":25,"slug":26},30,"Collections and Strings","Koleksi dan String","python-collections",[28],{"authors_id":29},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":31,"title":32,"title_id":8,"slug":33,"excerpt":34,"excerpt_id":8,"has_translation":15,"published_at":35,"reading_time":17,"hidden_from_listing":15,"tags":36,"thumbnail_image":8,"og_image":38,"series":39,"authors":40},132,"Python Tuples: Why All Three Points Are the Same Point","python-tuples","Three points walk into a loop and come out identical. The list was never copied three times; the name was. A tuple makes that bug impossible.","2026-10-28T12:00:00.000Z",[19,37],"tuple","\u002Fog\u002Fpython-tuples.png",{"id":23,"title":24,"title_id":25,"slug":26},[41],{"authors_id":42},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":44,"title":45,"title_id":8,"slug":46,"excerpt":47,"excerpt_id":8,"has_translation":15,"published_at":48,"reading_time":17,"hidden_from_listing":15,"tags":49,"thumbnail_image":8,"og_image":51,"series":52,"authors":53},131,"Python Sets: the Duplicate That Keeps Coming Back","python-sets","A de-duplication loop that works on clean data leaves four tags where there should be two. The bug is case, and the fix is a `set`.","2026-10-28T11:00:00.000Z",[19,50],"set","\u002Fog\u002Fpython-sets.png",{"id":23,"title":24,"title_id":25,"slug":26},[54],{"authors_id":55},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":57,"title":58,"title_id":8,"slug":59,"excerpt":60,"excerpt_id":8,"has_translation":15,"published_at":61,"reading_time":17,"hidden_from_listing":15,"tags":62,"thumbnail_image":8,"og_image":64,"series":65,"authors":66},130,"Python Dictionaries: the Key That Isn't There","python-dictionary","A word counter dies the first time it meets a word twice. The fix is one line; what takes longer is knowing which of a dict's three lookups to reach for.","2026-10-28T10:00:00.000Z",[19,63],"dictionary","\u002Fog\u002Fpython-dictionary.png",{"id":23,"title":24,"title_id":25,"slug":26},[67],{"authors_id":68},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":70,"title":71,"title_id":72,"slug":73,"excerpt":74,"excerpt_id":75,"has_translation":76,"published_at":77,"reading_time":78,"hidden_from_listing":15,"tags":79,"thumbnail_image":8,"og_image":86,"series":87,"authors":92},129,"So Your RAG Stops Hitting 504: Split the Query Path From Ingestion","Biar RAG nggak kena 504: pisahin jalur query dan ingestion","rag-pisah-jalur-query-dan-ingestion","One RAG service that both parses uploads and answers queries will fall over the moment someone uploads a 200-page PDF. The cure is two paths and one queue.","Satu service RAG yang merangkap parsing dan menjawab kueri bakal tumbang pas ada yang upload PDF 200 halaman. Obatnya dua jalur dan satu queue.",true,"2026-10-22T01:30:00.000Z",5,[80,81,82,83,84,85],"rag","cloud-run","cloud-tasks","gcp","serverless","arsitektur","\u002Fog\u002Frag-pisah-jalur-query-dan-ingestion.png",{"id":88,"title":89,"title_id":90,"slug":91},8,"Artificial Intelligence","Kecerdasan Artifisial","kecerdasan-artifisial",[93],{"authors_id":94},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":96,"title":97,"title_id":98,"slug":99,"excerpt":100,"excerpt_id":101,"has_translation":76,"published_at":102,"reading_time":17,"hidden_from_listing":15,"tags":103,"thumbnail_image":8,"og_image":110,"series":111,"authors":112},128,"Linear or Graph: How to Run Many Agents Without an Eternal Loop","Linear atau graf: cara mengatur banyak agent tanpa loop abadi","multi-agen-linear-atau-grafik","One agent with twenty tools gets messy fast. Once several agents revise each other, you need a graph that allows cycles and a number that makes it stop.","Satu agent dengan dua puluh tool gampang kacau. Begitu beberapa agent saling revisi, kamu butuh graf yang mendukung cycle dan angka yang membuatnya berhenti.","2026-10-21T16:05:00.000Z",[104,105,106,107,108,109],"multi-agent","langgraph","autogen","orkestrasi","checkpoint","llm","\u002Fog\u002Fmulti-agen-linear-atau-grafik.png",{"id":88,"title":89,"title_id":90,"slug":91},[113],{"authors_id":114},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":116,"title":117,"title_id":118,"slug":119,"excerpt":120,"excerpt_id":121,"has_translation":76,"published_at":122,"reading_time":17,"hidden_from_listing":15,"tags":123,"thumbnail_image":8,"og_image":129,"series":130,"authors":131},127,"Why RAG That Leans on Cosine Similarity Alone Keeps Missing","Kenapa RAG yang cuma andalkan cosine similarity sering nyasar","kenapa-rag-cuma-cosine-similarity-sering-nyasar","RAG that leans only on embeddings returns chunks that look close in meaning, not the ones you need. Here is why, and the two layers that patch it.","RAG yang cuma andalkan embedding balikin chunk yang mirip maknanya, bukan yang kamu butuh. Ini penyebabnya, dan dua lapis penambalnya.","2026-10-19T02:04:06.718Z",[80,124,125,126,127,128],"vector-search","bm25","hybrid-search","retrieval","embedding","\u002Fog\u002Fkenapa-rag-cuma-cosine-similarity-sering-nyasar.png",{"id":88,"title":89,"title_id":90,"slug":91},[132],{"authors_id":133},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":135,"title":136,"title_id":137,"slug":138,"excerpt":139,"excerpt_id":140,"has_translation":76,"published_at":141,"reading_time":142,"hidden_from_listing":15,"tags":143,"thumbnail_image":8,"og_image":147,"series":148,"authors":149},126,"AI Agent Memory: From Vector Store to Temporal Graph","Memori AI Agent: dari Vector Store ke Temporal Graph","memori-ai-agent-vector-store-ke-temporal-graph","Two contradictory facts make an agent answer nonsense. Here is how a vector store and a temporal knowledge graph differ at keeping long-term state.","Dua fakta yang saling bertentangan bikin agent menjawab ngawur. Ini bedanya vector store dan temporal knowledge graph dalam menjaga state jangka panjang.","2026-10-18T13:13:29.458Z",7,[144,109,145,146],"ai","backend","system-design","\u002Fog\u002Fmemori-ai-agent-vector-store-ke-temporal-graph.png",{"id":88,"title":89,"title_id":90,"slug":91},[150],{"authors_id":151},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":153,"title":154,"title_id":155,"slug":156,"excerpt":157,"excerpt_id":158,"has_translation":76,"published_at":159,"reading_time":17,"hidden_from_listing":15,"tags":160,"thumbnail_image":8,"og_image":166,"series":167,"authors":172},124,"The Secret of Zero-Cost Abstractions in Rust, Opened Up from the Assembly","Rahasia Zero-Cost Abstraction di Rust, Dibedah dari Assembly","rahasia-zero-cost-abstraction-di-rust","\"Higher abstractions are always slower\" is an old assumption. Rust iterators can match a hand-written loop, and the assembly is there for you to read. Let's take it apart.","\"Abstraksi tinggi selalu lebih lambat\" itu anggapan lama. Iterator Rust bisa menyamai loop manual, dan assembly-nya bisa kita baca sendiri. Yuk, kita bongkar!","2026-10-13T05:19:00.000Z",[161,162,163,164,165],"rust","performance","system-programming","compiler","optimasi","\u002Fog\u002Frahasia-zero-cost-abstraction-di-rust.png",{"id":168,"title":169,"title_id":170,"slug":171},9,"Articles","Artikel","all",[173,175],{"authors_id":174},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"authors_id":176},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":178,"title":179,"title_id":180,"slug":181,"excerpt":182,"excerpt_id":183,"has_translation":76,"published_at":184,"reading_time":185,"hidden_from_listing":15,"tags":186,"thumbnail_image":8,"og_image":190,"series":191,"authors":194},122,"A Script That Cannot Say Where It Went Wrong","Script yang Nggak Bisa Bilang di Mana Salahnya","script-yang-tidak-bilang-di-mana-salahnya","A script that stops at the first bad line reports only part of the problem. This is what shows up on screen right now.","Script yang berhenti di baris jelek pertama cuma melaporkan sebagian masalah yang ada. Ini yang muncul di layar sekarang.","2026-10-11T23:00:15.000Z",4,[19,187,188,189],"error-handling","validasi","lab","\u002Fog\u002Fscript-yang-tidak-bilang-di-mana-salahnya.png",{"id":192,"title":193,"title_id":193,"slug":189},29,"Lab",[195],{"authors_id":196},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":198,"title":199,"title_id":200,"slug":201,"excerpt":202,"excerpt_id":203,"has_translation":76,"published_at":184,"reading_time":185,"hidden_from_listing":15,"tags":204,"thumbnail_image":8,"og_image":207,"series":208,"authors":209},120,"Every Receipt in This Café Lists the Same Order","Tiap Nota di Kafe Ini Isinya Pesanan yang Sama","tiap-nota-isinya-pesanan-yang-sama","Every table's receipt holds the same items, and the total is Rp0 — even though each table ordered exactly one thing. Guess why, then make `make check` green. A Python scope and mutation lab.","Nota tiap meja isinya sama semua, dan totalnya Rp0 — padahal tiap meja cuma pesan satu barang. Coba tebak kenapa.",[19,205,206,189],"scope","mutasi","\u002Fog\u002Ftiap-nota-isinya-pesanan-yang-sama.png",{"id":192,"title":193,"title_id":193,"slug":189},[210],{"authors_id":211},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":213,"title":214,"title_id":215,"slug":216,"excerpt":217,"excerpt_id":218,"has_translation":76,"published_at":184,"reading_time":78,"hidden_from_listing":15,"tags":219,"thumbnail_image":8,"og_image":223,"series":224,"authors":229},119,"Syntax Rules: One Missing Semicolon Stops the Program","Aturan Sintaks: Satu Titik Koma Bikin Program Nggak Jalan","aturan-sintaks-pemrograman","You wrote a few lines and the program already refuses to run? Most of the time the logic is fine, and one character is missing or in the wrong place.","Baru nulis beberapa baris, programnya udah nolak jalan? Seringnya bukan logikanya yang salah, cuma satu karakter yang kurang atau salah tempat.",[220,221,222,19],"syntax","dasar","konsep","\u002Fog\u002Faturan-sintaks-pemrograman.png",{"id":225,"title":226,"title_id":227,"slug":228},12,"Programming Fundamentals","Konsep Dasar Pemrograman","konsep-dasar-pemrograman",[230],{"authors_id":231},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":233,"title":234,"title_id":235,"slug":236,"excerpt":237,"excerpt_id":238,"has_translation":76,"published_at":239,"reading_time":185,"hidden_from_listing":15,"tags":240,"thumbnail_image":8,"og_image":245,"series":246,"authors":247},114,"One Payment, Four Ledger Rows: An Idempotency Lab","Saldo Naik Empat Kali untuk Satu Pembayaran","saldo-naik-empat-kali-untuk-satu-pembayaran","The code is not wrong and the gateway is not wrong, yet one payment shows up four times in the ledger. Guess why, then make `make check` green in the lab.","Kodenya nggak salah, dan gateway-nya juga nggak salah. Tapi satu pembayaran muncul empat kali di ledger. Coba tebak kenapa — lalu bikin `make check` hijau di lab-nya.","2026-10-11T13:45:00.000Z",[241,242,243,244,189],"idempotency","webhook","postgres","database","\u002Fog\u002Fsaldo-naik-empat-kali-untuk-satu-pembayaran.png",{"id":192,"title":193,"title_id":193,"slug":189},[248],{"authors_id":249},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":251,"title":252,"title_id":253,"slug":254,"excerpt":255,"excerpt_id":256,"has_translation":76,"published_at":257,"reading_time":258,"hidden_from_listing":15,"tags":259,"thumbnail_image":8,"og_image":261,"series":262,"authors":263},116,"The Webhook Arrived Late. The Reconciliation Job Had Already Run.","Webhook-nya Telat, Job Rekonsiliasinya Keburu Jalan","webhook-telat-job-rekonsiliasi-keburu-jalan","The webhook path is already idempotent. Then a morning reconciliation job appears, and one payment gets recorded twice from two paths that are both right. Guess where the key is wrong.","Jalur webhook sudah idempotent. Lalu ada job rekonsiliasi pagi, dan satu pembayaran tercatat dua kali dari dua jalur yang dua-duanya benar. Coba tebak kuncinya salah di mana.","2026-10-11T13:44:00.000Z",3,[241,260,242,243,189],"reconciliation","\u002Fog\u002Fwebhook-telat-job-rekonsiliasi-keburu-jalan.png",{"id":192,"title":193,"title_id":193,"slug":189},[264],{"authors_id":265},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":267,"title":268,"title_id":269,"slug":270,"excerpt":271,"excerpt_id":272,"has_translation":76,"published_at":273,"reading_time":78,"hidden_from_listing":15,"tags":274,"thumbnail_image":8,"og_image":279,"series":280,"authors":281},118,"Learning Idempotency from Stock That Got Bought Too Soon","Belajar Idempotency dari Stok yang Keburu Kebeli","pub-sub-sendiri-lalu-belajar-idempotency","My first task at my first job was a system drowning in webhooks. I decided to build my own pub\u002Fsub from scratch, and the lesson that finally landed came from somewhere else: warehouse stock that got bought before the count caught up.","Tugas pertama saya di kerjaan pertama: sistem yang kewalahan menerima webhook. Saya putuskan membangun pub\u002Fsub sendiri dari nol, dan pelajaran yang akhirnya datang bukan dari situ — tapi dari stok gudang yang keburu kebeli orang.","2026-10-10T14:03:00.000Z",[241,275,276,277,278],"event-driven","celery","rabbitmq","post-mortem","\u002Fog\u002Fpub-sub-sendiri-lalu-belajar-idempotency.png",{"id":168,"title":169,"title_id":170,"slug":171},[282],{"authors_id":283},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":285,"title":286,"title_id":287,"slug":288,"excerpt":289,"excerpt_id":290,"has_translation":76,"published_at":291,"reading_time":17,"hidden_from_listing":15,"tags":292,"thumbnail_image":8,"og_image":296,"series":297,"authors":298},111,"Rust Enters the Linux Kernel: A Real Revolution or Just RIIR Euphoria?","Rust Masuk Kernel Linux: Revolusi Nyata atau Cuma Euforia RIIR?","rust-di-kernel-linux-revolusi-atau-cuma-hype","For more than 30 years the Linux kernel only wanted C, then Rust officially landed in Linux 6.1. Is that a real revolution, or just the pull of the Rewrite It In Rust meme? Let's look at the data, not the opinions.","Selama lebih dari 30 tahun kernel Linux cuma mau bahasa C, lalu tiba-tiba Rust resmi masuk di Linux 6.1. Itu revolusi beneran atau cuma kebawa euforia meme Rewrite It In Rust? Yuk lihat datanya, bukan cuma opininya.","2026-10-07T03:40:24.000Z",[161,293,294,163,295],"linux","kernel","memory-safety","\u002Fog\u002Frust-di-kernel-linux-revolusi-atau-cuma-hype.png",{"id":168,"title":169,"title_id":170,"slug":171},[299],{"authors_id":300},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":302,"title":303,"title_id":304,"slug":305,"excerpt":306,"excerpt_id":307,"has_translation":76,"published_at":308,"reading_time":78,"hidden_from_listing":15,"tags":309,"thumbnail_image":8,"og_image":310,"series":311,"authors":312},104,"N+1 Was Never the Bottleneck: 41 Queries Down to 2, Still One Second","Query-nya Tinggal 2, Tapi Response-nya Masih 1 Detik","query-tinggal-2-tapi-response-masih-1-detik","A feed endpoint that shows 20 posts takes a full second and hits the database with 41 queries. Apply the standard N+1 advice, get it down to 2 queries, and the latency does not move. This is that problem as it happened, plus the lab.","Endpoint feed yang cuma menampilkan 20 tulisan butuh satu detik, dan server database dihujani 41 query. Kamu kerjakan nasihat N+1 yang standar, query-nya turun jadi 2, dan latency-nya nggak bergerak. Ini versi \"apa adanya\" dari masalah itu, plus lab-nya.","2026-10-04T09:59:21.000Z",[244,162,145],"\u002Fog\u002Fquery-tinggal-2-tapi-response-masih-1-detik.png",{"id":192,"title":193,"title_id":193,"slug":189},[313],{"authors_id":314},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":316,"title":317,"title_id":318,"slug":319,"excerpt":320,"excerpt_id":321,"has_translation":76,"published_at":322,"reading_time":185,"hidden_from_listing":15,"tags":323,"thumbnail_image":8,"og_image":328,"series":329,"authors":330},32,"Docker Compose for the Relaxed Developer: One Command to Run Every Service","Docker Compose untuk Developer Santai: Satu Perintah Buat Jalankan Semua Service","docker-compose-untuk-developer-santai","Do you keep retyping `docker run` just to bring up the web app, the database, and the cache one at a time? Here is how to fold all of them into one file and one command.","Pernah nggak kalian ngulang-ngulang perintah `docker run` cuma buat nyalain web, database, dan cache satu-satu? Capek, kan? Yuk, kita rapikan semuanya jadi satu file dan satu perintah!","2026-08-17T04:26:10.375Z",[324,325,326,327,145],"docker","docker-compose","devops","containers","\u002Fog\u002Fdocker-compose-untuk-developer-santai.png",{"id":168,"title":169,"title_id":170,"slug":171},[331],{"authors_id":332},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":334,"title":335,"title_id":336,"slug":337,"excerpt":338,"excerpt_id":339,"has_translation":76,"published_at":340,"reading_time":185,"hidden_from_listing":15,"tags":341,"thumbnail_image":8,"og_image":346,"series":347,"authors":348},31,"Getting to Know Redis: More Than Just an In-Memory Cache","Mengenal Redis: Lebih dari Sekadar In-Memory Cache","mengenal-redis-lebih-dari-sekadar-in-memory-cache","Still treating Redis as nothing but a cache? It can be a leaderboard, a message broker, even a rate limiter. Let's take apart everything it can do.","Masih nganggep Redis cuma buat caching? Padahal dia bisa jadi leaderboard, message broker, sampai rate limiter lho. Yuk, kita bedah semua kemampuannya!","2026-08-17T04:26:10.360Z",[342,145,343,344,345,19],"redis","cache","nosql","in-memory","\u002Fog\u002Fmengenal-redis-lebih-dari-sekadar-in-memory-cache.png",{"id":168,"title":169,"title_id":170,"slug":171},[349],{"authors_id":350},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":23,"title":352,"title_id":353,"slug":354,"excerpt":355,"excerpt_id":356,"has_translation":76,"published_at":357,"reading_time":185,"hidden_from_listing":15,"tags":358,"thumbnail_image":8,"og_image":363,"series":364,"authors":369},"Meet Go: Why So Many Backend Teams Reach for It","Berkenalan dengan Bahasa Go: Kenapa Banyak Dipakai untuk Backend Modern?","berkenalan-dengan-bahasa-go-untuk-backend-modern","How did a young language end up inside Docker and Kubernetes? Meet Goroutines, Channels, and the reason Go is so stingy with memory.","Kok bisa sih Go yang masih muda ini jadi bahasa andalan Docker sampai Kubernetes? Yuk, kita kenalan sama Goroutine, Channel, dan alasan dia hemat memori luar biasa!","2026-08-17T04:26:10.344Z",[359,360,145,361,362,146],"golang","go","concurrency","goroutine","\u002Fog\u002Fberkenalan-dengan-bahasa-go-untuk-backend-modern.png",{"id":365,"title":366,"title_id":367,"slug":368},11,"Learning Go","Belajar Golang","belajar-golang",[370],{"authors_id":371},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":192,"title":373,"title_id":374,"slug":375,"excerpt":376,"excerpt_id":377,"has_translation":76,"published_at":378,"reading_time":185,"hidden_from_listing":15,"tags":379,"thumbnail_image":8,"og_image":383,"series":384,"authors":385},"Understanding Database Indexing: The Secret to Very Fast Queries","Memahami Database Indexing: Rahasia Query Super Cepat","memahami-database-indexing-rahasia-query-super-cepat","Your queries have gone sluggish even though the data only just crossed a million rows? Before you rush to upgrade the server, check the indexes. Here is how database indexing actually works.","Query kalian mulai lelet padahal data baru nembus jutaan baris? Sebelum buru-buru *upgrade* server, yuk cek dulu *index*-nya. Yuk, kita bedah gimana *database indexing* sebenernya kerja!","2026-08-17T04:26:10.325Z",[244,380,381,382,162,145],"sql","postgresql","indexing","\u002Fog\u002Fmemahami-database-indexing-rahasia-query-super-cepat.png",{"id":168,"title":169,"title_id":170,"slug":171},[386],{"authors_id":387},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":389,"title":390,"title_id":391,"slug":392,"excerpt":393,"excerpt_id":394,"has_translation":76,"published_at":395,"reading_time":78,"hidden_from_listing":15,"tags":396,"thumbnail_image":8,"og_image":400,"series":401,"authors":402},28,"Taming the N+1 Query Problem: The Hidden Enemy of Backend Performance","Mengatasi N+1 Query Problem: Musuh Tersembunyi Performa Backend","mengatasi-n-plus-1-query-problem-musuh-tersembunyi-backend","You built an endpoint that only lists 50 posts with their author names, and the response takes 2-3 seconds? You may have hit N+1 Query. Here is the cause, and the cure.","Pernah bikin endpoint yang cuma nampilin 50 postingan beserta nama penulisnya, tapi response-nya lambat banget? Bisa jadi kalian kena N+1 Query. Yuk, kita bedah penyebabnya dan cara memberantasnya!","2026-08-17T04:26:10.309Z",[244,380,397,398,399,162,145],"orm","sqlalchemy","django","\u002Fog\u002Fmengatasi-n-plus-1-query-problem-musuh-tersembunyi-backend.png",{"id":168,"title":169,"title_id":170,"slug":171},[403],{"authors_id":404},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":406,"title":407,"title_id":408,"slug":409,"excerpt":410,"excerpt_id":411,"has_translation":76,"published_at":412,"reading_time":78,"hidden_from_listing":15,"tags":413,"thumbnail_image":8,"og_image":417,"series":418,"authors":419},27,"Background Workers & Task Queues: Don't Run Heavy Work Inside an HTTP Request","Background Worker & Task Queue: Jangan Jalankan Proses Berat di Request HTTP!","background-worker-task-queue-jangan-jalankan-proses-berat-di-http","You tap Create Account and the loading page spins for 15 seconds with no answer? The cause is classic. Here is why heavy work does not belong in an HTTP request.","Pernah nggak sih kalian klik Daftar Akun lalu halaman loading muter sampai 15 detik tanpa kepastian? Penyebabnya klasik banget. Yuk, kita bahas kenapa proses berat nggak boleh dijalanin di request HTTP!","2026-08-17T04:26:10.284Z",[145,414,276,415,277,342,416],"task-queue","fastapi","async","\u002Fog\u002Fbackground-worker-task-queue-jangan-jalankan-proses-berat-di-http.png",{"id":168,"title":169,"title_id":170,"slug":171},[420],{"authors_id":421},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":423,"title":424,"title_id":425,"slug":426,"excerpt":427,"excerpt_id":428,"has_translation":76,"published_at":429,"reading_time":78,"hidden_from_listing":15,"tags":430,"thumbnail_image":8,"og_image":434,"series":435,"authors":436},25,"Why an Event Queue Keeps Your Backend From Collapsing","Kenapa Event Queue Bikin Backend Kalian Nggak Gampang Tumbang?","kenapa-event-queue-bikin-backend-kamu-nggak-gampang-tumbang","You hit Buy Now and the success notice appears instantly, while an invoice, an email, and a push notification still have to be built behind the scenes. The secret is the event queue.","Pernah klik tombol Beli Sekarang dan notifikasi suksesnya muncul dalam sekejap, padahal di belakang layar ada invoice, email, sampai push notification yang harus dibuat? Rahasianya Event Queue. Yuk, kita bedah!","2026-08-17T04:11:23.685Z",[145,146,431,432,433],"event-queue","message-broker","architecture","\u002Fog\u002Fkenapa-event-queue-bikin-backend-kamu-nggak-gampang-tumbang.png",{"id":168,"title":169,"title_id":170,"slug":171},[437],{"authors_id":438},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":78,"title":440,"title_id":441,"slug":442,"excerpt":443,"excerpt_id":444,"has_translation":76,"published_at":445,"reading_time":185,"hidden_from_listing":15,"tags":446,"thumbnail_image":8,"og_image":449,"series":450,"authors":451},"Inside JEPA's Kitchen: The Secrets of EMA, VICReg, and Compute Efficiency","Di Balik Dapur JEPA: Rahasia EMA, VICReg, dan Efisiensi Komputasi","di-balik-dapur-jepa-rahasia-ema-vicreg-dan-efisiensi-komputasi","Bored of AI that only guesses words or memorizes pixels? Meet JEPA, an architecture that teaches machines common sense very cheaply. Here is a look at its technical insides.","Bosen sama AI yang cuma jago nebak kata atau ngafalin pixel? Kenalan sama JEPA, arsitektur revolusioner yang ngajarin mesin punya \"akal sehat\" secara super efisien. Yuk intip jeroan teknisnya!","2026-06-07T16:14:13.723Z",[447,448],"jepa","artificial-intelligent","\u002Fog\u002Fdi-balik-dapur-jepa-rahasia-ema-vicreg-dan-efisiensi-komputasi.png",{"id":88,"title":89,"title_id":90,"slug":91},[452],{"authors_id":453},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":185,"title":455,"title_id":456,"slug":457,"excerpt":458,"excerpt_id":459,"has_translation":76,"published_at":460,"reading_time":185,"hidden_from_listing":15,"tags":461,"thumbnail_image":8,"og_image":465,"series":466,"authors":467},"Beyond Generative AI: JEPA Chases Human-Style Conceptual Understanding","Bukan Sekadar Generative AI, JEPA Coba Kejar Pemahaman Konsep ala Manusia","kenapa-ai-masih-gagal-paham-fisika-dasar-mengenal-arsitektur-jepa","AI usually only guesses pixels, while JEPA tries to learn from abstract concepts in latent space. That approach turns out to reach as far as reading brain waves.","AI biasanya cuma jago nebak piksel, tapi JEPA coba belajar lewat konsep abstrak di ruang laten. Ternyata, cara ini bisa sampai dipakai buat baca gelombang otak.","2026-06-03T09:34:14.840Z",[447,462,463,464],"yann-lecun","machine-learning","agi","\u002Fog\u002Fkenapa-ai-masih-gagal-paham-fisika-dasar-mengenal-arsitektur-jepa.png",{"id":88,"title":89,"title_id":90,"slug":91},[468],{"authors_id":469},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":258,"title":471,"title_id":472,"slug":473,"excerpt":474,"excerpt_id":475,"has_translation":76,"published_at":476,"reading_time":185,"hidden_from_listing":15,"tags":477,"thumbnail_image":8,"og_image":480,"series":481,"authors":482},"Meet JEPA: Where AI Starts Learning Common Sense","Mengenal JEPA: Saat AI Mulai Belajar Punya \"Akal Sehat\"","kenapa-ai-suka-halu-dan-gimana-jepa-beresin-masalah-ini","AI hallucinates because it only guesses data probabilities without understanding reality. The JEPA architecture tries to change that by building a world model in its head.","AI sering 'halu' karena cuma nebak probabilitas data tanpa paham realita. Arsitektur JEPA mencoba mengubah itu dengan membangun model dunia di kepalanya.","2026-06-03T09:32:50.446Z",[478,447,479,462],"artificial-intelligence","world-models","\u002Fog\u002Fkenapa-ai-suka-halu-dan-gimana-jepa-beresin-masalah-ini.png",{"id":88,"title":89,"title_id":90,"slug":91},[483],{"authors_id":484},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":486,"title":487,"title_id":488,"slug":489,"excerpt":490,"excerpt_id":491,"has_translation":76,"published_at":492,"reading_time":185,"hidden_from_listing":15,"tags":493,"thumbnail_image":8,"og_image":494,"series":495,"authors":496},2,"LLMs Are Going to Hit a Wall. What Then?","LLM Bakal Mentok, Terus Gimana Dong?","llm-bakal-mentok-terus-gimana-dong","LLMs like ChatGPT are great at stringing words together, but they never really grasp reality. Yann LeCun says this architecture will hit a wall and needs a new answer.","LLM kayak ChatGPT itu jago ngerangkai kata, tapi nggak beneran paham realitas. Yann LeCun bilang arsitektur ini bakal mentok dan butuh solusi baru.","2026-06-03T08:55:33.003Z",[478,109,462,447],"\u002Fog\u002Fllm-bakal-mentok-terus-gimana-dong.png",{"id":88,"title":89,"title_id":90,"slug":91},[497],{"authors_id":498},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":500,"title":501,"title_id":502,"slug":503,"excerpt":504,"excerpt_id":505,"has_translation":76,"published_at":506,"reading_time":258,"hidden_from_listing":15,"tags":507,"thumbnail_image":8,"og_image":509,"series":510,"authors":515},101,"Default Argument and Keyword Argument in Python","Default Argument dan Keyword Argument pada Python","default-argument-pada-python","A default argument is a function argument with an initial value, which lets you make arguments optional.","Default argument merupakan argument fungsi yang memiliki nilai asal, dengan ini kita bisa membuat argument opsional","2024-02-12T14:01:05.000Z",[19,508,220],"fungsi","\u002Fog\u002Fdefault-argument-pada-python.png",{"id":511,"title":512,"title_id":513,"slug":514},20,"Functional Programming with Python","Pemrograman Fungsional dengan Python","python-pemrograman-fungsional",[516],{"authors_id":517},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":519,"title":520,"title_id":521,"slug":522,"excerpt":523,"excerpt_id":524,"has_translation":76,"published_at":525,"reading_time":185,"hidden_from_listing":15,"tags":526,"thumbnail_image":8,"og_image":530,"series":531,"authors":536},58,"Getting to Know the Float Data Type in Java","Mengenal Tipe Data Float pada Java","mengenal-tipe-data-float-pada-java","Float, or floating point, is a data type that holds decimal and fractional number literals.","Float atau floating point merupakan tipe data yang dapat menampung literal bilangan desimal dan pecahan.","2023-02-15T00:00:00.000Z",[527,528,529],"java","tipe-data","float","\u002Fog\u002Fmengenal-tipe-data-float-pada-java.png",{"id":532,"title":533,"title_id":534,"slug":535},22,"Variables, Types, and Operations","Variabel, Tipe Data, dan Operasi","java-variabel-tipe-data",[537],{"authors_id":538},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":540,"title":541,"title_id":542,"slug":543,"excerpt":544,"excerpt_id":545,"has_translation":76,"published_at":546,"reading_time":17,"hidden_from_listing":15,"tags":547,"thumbnail_image":8,"og_image":549,"series":550,"authors":551},57,"Getting to Know the Integer Data Type in Java","Mengenal Tipe Data Integer pada Java","mengenal-tipe-data-integer-pada-java","Integer, as the name suggests, is a data type that only holds whole numbers (negative, zero, and positive).","Integer, sesuai namanya merupakan tipe data yang hanya bisa menampung bilangan bulat saja (negatif, nol, dan positif)","2023-01-13T00:00:00.000Z",[527,528,548],"integer","\u002Fog\u002Fmengenal-tipe-data-integer-pada-java.png",{"id":532,"title":533,"title_id":534,"slug":535},[552],{"authors_id":553},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":555,"title":556,"title_id":557,"slug":558,"excerpt":559,"excerpt_id":560,"has_translation":76,"published_at":561,"reading_time":258,"hidden_from_listing":15,"tags":562,"thumbnail_image":8,"og_image":563,"series":564,"authors":565},56,"Data Types in the Java Language","Tipe Data pada Bahasa Java","tipe-data-pada-bahasa-java","A data type is an attribute that sticks to a piece of data and decides how that data can be treated.","Tipe data adalah atribut yang menempel pada sebuah data untuk menentukan perlakuan terhadap data tersebut.","2022-12-29T00:00:00.000Z",[527,528,222,221],"\u002Fog\u002Ftipe-data-pada-bahasa-java.png",{"id":532,"title":533,"title_id":534,"slug":535},[566],{"authors_id":567},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":569,"title":570,"title_id":571,"slug":572,"excerpt":573,"excerpt_id":574,"has_translation":76,"published_at":575,"reading_time":142,"hidden_from_listing":15,"tags":576,"thumbnail_image":8,"og_image":578,"series":579,"authors":584},55,"The Input System in the Java Language","Sistem Input pada Bahasa Java","sistem-input-pada-bahasa-java","In Java, the input system is handled by an object named Scanner, and that object has plenty of methods you can use for input.","Pada bahasa Java, sistem input dilayani oleh objek yang bernama Scanner. Objek ini memiliki banyak method yang dapat digunakan untuk sistem input.","2022-09-27T14:15:59.000Z",[527,577,221],"input-output","\u002Fog\u002Fsistem-input-pada-bahasa-java.png",{"id":580,"title":581,"title_id":582,"slug":583},21,"Getting Started with Java","Berkenalan dengan Java","java-intro",[585],{"authors_id":586},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":588,"title":589,"title_id":590,"slug":591,"excerpt":592,"excerpt_id":593,"has_translation":76,"published_at":594,"reading_time":142,"hidden_from_listing":15,"tags":595,"thumbnail_image":8,"og_image":597,"series":598,"authors":599},54,"Variables and Literals in the Java Language","Variabel dan Literal pada Bahasa Java","variabel-dan-literal-pada-bahasa-java","Literals and variables are important components, because these 2 things connect directly to data and how you manipulate it.","Literal dan variabel merupakan komponen yang penting, karena 2 hal ini berhubungan langsung dengan data dan manipulasinya.","2022-09-07T07:33:30.000Z",[527,596,222,221],"variabel","\u002Fog\u002Fvariabel-dan-literal-pada-bahasa-java.png",{"id":580,"title":581,"title_id":582,"slug":583},[600],{"authors_id":601},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":603,"title":604,"title_id":605,"slug":606,"excerpt":607,"excerpt_id":608,"has_translation":76,"published_at":609,"reading_time":78,"hidden_from_listing":15,"tags":610,"thumbnail_image":8,"og_image":612,"series":613,"authors":614},98,"Functions and Sub Programs in Python","Fungsi dan Sub Program pada Python","fungsi-dan-sub-program-pada-python","A function is a block of code used to solve a specific problem, and functions are the key to building large programs in Python.","Fungsi atau dalam istilah pemrograman disebut dengan “function” merupakan blok kode yang digunakan untuk menyelesaikan masalah spesifik.","2022-09-06T03:33:06.000Z",[19,508,611],"sub-program","\u002Fog\u002Ffungsi-dan-sub-program-pada-python.png",{"id":511,"title":512,"title_id":513,"slug":514},[615],{"authors_id":616},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":618,"title":619,"title_id":620,"slug":621,"excerpt":622,"excerpt_id":623,"has_translation":76,"published_at":624,"reading_time":78,"hidden_from_listing":15,"tags":625,"thumbnail_image":8,"og_image":626,"series":627,"authors":628},53,"The Output System in the Java Language","Sistem Output pada Bahasa Java","sistem-output-pada-bahasa-java","When we built the \"Hello World\" program we already met the `System.out.println` method. Java has other output methods too, and this piece goes through them.","Ketika membuat program \"Hello World\" kita sudah melihat method `System.out.println`. Selain method tersebut masih ada method lainnya, mari kita bahas.","2022-08-23T00:00:00.000Z",[527,577,221],"\u002Fog\u002Fsistem-output-pada-bahasa-java.png",{"id":580,"title":581,"title_id":582,"slug":583},[629],{"authors_id":630},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":632,"title":633,"title_id":634,"slug":635,"excerpt":636,"excerpt_id":637,"has_translation":76,"published_at":638,"reading_time":258,"hidden_from_listing":15,"tags":639,"thumbnail_image":8,"og_image":642,"series":643,"authors":644},52,"Writing Comments in the Java Language","Penulisan Komentar pada Bahasa Java","penulisan-komentar-pada-bahasa-java","Java has several kinds of comments: single line comments, multiline comments, and doc comments.","Java memiliki beberapa jenis komentar yaitu komentar satu baris, banyak baris, dan komentar dokumentasi.","2022-08-21T03:23:11.000Z",[527,640,220,641],"komentar","best-practice","\u002Fog\u002Fpenulisan-komentar-pada-bahasa-java.png",{"id":580,"title":581,"title_id":582,"slug":583},[645],{"authors_id":646},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":648,"title":649,"title_id":650,"slug":651,"excerpt":652,"excerpt_id":653,"has_translation":76,"published_at":654,"reading_time":185,"hidden_from_listing":15,"tags":655,"thumbnail_image":8,"og_image":656,"series":657,"authors":658},51,"Understanding the Basic Structure of a Java Program","Mengenal Struktur Dasar Program Java","mengenal-struktur-dasar-program-java","Writing a program has a structure, the way writing a thesis does. And that structure has to be right so the computer doesn't reject it.","Ibarat menulis skripsi, membuat program ternyata juga ada strukturnya. Dan struktur ini harus sesuai supaya tidak ditolak oleh sang komputer.","2022-08-12T09:43:57.000Z",[527,220,221,222],"\u002Fog\u002Fmengenal-struktur-dasar-program-java.png",{"id":580,"title":581,"title_id":582,"slug":583},[659],{"authors_id":660},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":662,"title":663,"title_id":664,"slug":665,"excerpt":666,"excerpt_id":667,"has_translation":76,"published_at":668,"reading_time":4,"hidden_from_listing":15,"tags":669,"thumbnail_image":8,"og_image":671,"series":672,"authors":673},50,"Building a \"Hello World\" Program in Java","Membuat Program \"Hello World\" pada Java","membuat-program-hello-world-pada-java","This time we build our first program, Hello World, in the Java language.","Pada kesempatan kali ini kita akan membuat kode pertama kita, yaitu Hello World pada bahasa Java.","2022-08-11T00:00:00.000Z",[527,670,221],"tutorial","\u002Fog\u002Fmembuat-program-hello-world-pada-java.png",{"id":580,"title":581,"title_id":582,"slug":583},[674],{"authors_id":675},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":677,"title":678,"title_id":679,"slug":680,"excerpt":681,"excerpt_id":682,"has_translation":76,"published_at":668,"reading_time":258,"hidden_from_listing":15,"tags":683,"thumbnail_image":8,"og_image":686,"series":687,"authors":688},49,"Getting to Know the Java Language","Berkenalan dengan Bahasa Java","berkenalan-dengan-bahasa-java","Java is a high-level programming language built on the OOP paradigm, and it carries the slogan “write once, run anywhere”.","Java merupakan bahasa pemrograman tingkat tinggi dengan paradigma OOP. Bahasa ini punya slogan “write once, run anywhere”",[527,684,685,221],"intro","pemrograman","\u002Fog\u002Fberkenalan-dengan-bahasa-java.png",{"id":580,"title":581,"title_id":582,"slug":583},[689],{"authors_id":690},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":692,"title":693,"title_id":694,"slug":695,"excerpt":696,"excerpt_id":697,"has_translation":76,"published_at":698,"reading_time":258,"hidden_from_listing":15,"tags":699,"thumbnail_image":8,"og_image":701,"series":702,"authors":703},100,"The Pass Statement in Python","Pass Statement pada Python","pass-statement-pada-python","The pass statement in Python is a special statement you can only use inside a compound statement.","pass statement pada python merupakan statement spesial yang hanya bisa digunakan di dalam compound statement","2022-01-17T03:51:58.000Z",[19,220,700],"struktur-kontrol","\u002Fog\u002Fpass-statement-pada-python.png",{"id":511,"title":512,"title_id":513,"slug":514},[704],{"authors_id":705},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":707,"title":708,"title_id":709,"slug":710,"excerpt":711,"excerpt_id":712,"has_translation":76,"published_at":713,"reading_time":17,"hidden_from_listing":15,"tags":714,"thumbnail_image":8,"og_image":715,"series":716,"authors":717},99,"The Return Statement in Python","Return Statement pada Python","return-statement-pada-python","The return statement lets you send a value a function has already processed back to the caller.","Return statement memungkinkan kita mengembalikan nilai yang sudah diproses pada fungsi ke pemanggil.","2022-01-03T03:40:03.000Z",[19,508,220],"\u002Fog\u002Freturn-statement-pada-python.png",{"id":511,"title":512,"title_id":513,"slug":514},[718],{"authors_id":719},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":721,"title":722,"title_id":723,"slug":724,"excerpt":725,"excerpt_id":726,"has_translation":76,"published_at":727,"reading_time":78,"hidden_from_listing":15,"tags":728,"thumbnail_image":8,"og_image":731,"series":732,"authors":737},97,"List Comprehension in Python","List Comprehension Pada Pyhton","list-comprehension-pada-pyhton","List comprehension is the ternary operator in Python that shortens the process of initializing a list variable.","list comprehension merupakan ternary operator pada Python untuk mempersingkat proses inisialisasi variable list","2021-11-27T03:17:02.000Z",[19,729,730],"list","list-comprehension","\u002Fog\u002Flist-comprehension-pada-pyhton.png",{"id":733,"title":734,"title_id":735,"slug":736},19,"Control Structures","Struktur Kontrol","python-struktur-kontrol",[738],{"authors_id":739},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":741,"title":742,"title_id":743,"slug":744,"excerpt":745,"excerpt_id":746,"has_translation":76,"published_at":747,"reading_time":258,"hidden_from_listing":15,"tags":748,"thumbnail_image":8,"og_image":751,"series":752,"authors":753},96,"Branching with the Ternary Operator in Python","Percabangan dengan Ternary Operator pada Python","percobangan-dengan-ternary-operator-pada-python","In Python the ternary operator shortens an assignment that involves an IF ELSE condition.","Pada Python ternary operator untuk mempersingkat assignment yang melibatkan kondisi IF ELSE.","2021-11-21T04:07:50.000Z",[19,749,750,700],"percabangan","operator","\u002Fog\u002Fpercobangan-dengan-ternary-operator-pada-python.png",{"id":733,"title":734,"title_id":735,"slug":736},[754],{"authors_id":755},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":757,"title":758,"title_id":759,"slug":760,"excerpt":761,"excerpt_id":762,"has_translation":76,"published_at":763,"reading_time":258,"hidden_from_listing":15,"tags":764,"thumbnail_image":8,"og_image":767,"series":768,"authors":769},95,"The BREAK and CONTINUE Statements in Python","Statement BREAK dan CONTINUE pada Python","statement-break-dan-continue-pada-python","Python has the break and continue statements to handle special cases in control structures.","Python memiliki statement break dan continue untuk mengatasi kasus-kasus khusus pada struktur kontrol.","2021-10-28T03:59:18.000Z",[19,765,766,700],"perulangan","loop","\u002Fog\u002Fstatement-break-dan-continue-pada-python.png",{"id":733,"title":734,"title_id":735,"slug":736},[770],{"authors_id":771},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":773,"title":774,"title_id":775,"slug":776,"excerpt":777,"excerpt_id":778,"has_translation":76,"published_at":779,"reading_time":185,"hidden_from_listing":15,"tags":780,"thumbnail_image":8,"og_image":781,"series":782,"authors":783},94,"Repetition with the WHILE Loop in Python","Perulangan dengan WHILE Loop pada Python","perulangan-dengan-while-loop-pada-python","Unlike the for loop, a while loop uses a boolean condition as its controller.","Berbeda dengan perulangan for, dengan while kita akan menggunakan kondisi boolean sebagai pengendalinya.","2021-07-21T03:52:03.000Z",[19,765,766,700],"\u002Fog\u002Fperulangan-dengan-while-loop-pada-python.png",{"id":733,"title":734,"title_id":735,"slug":736},[784],{"authors_id":785},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":787,"title":788,"title_id":789,"slug":790,"excerpt":791,"excerpt_id":792,"has_translation":76,"published_at":793,"reading_time":78,"hidden_from_listing":15,"tags":794,"thumbnail_image":8,"og_image":795,"series":796,"authors":797},93,"Repetition with the FOR Loop in Python","Perulangan dengan FOR Loop pada Python","perulangan-dengan-for-loop-pada-python","A for loop is a loop where you already know when it starts and when it ends.","for loop merupakan perulangan yang sudah diketahui kapan mulainya dan kapan selesainya.","2021-07-10T03:46:32.000Z",[19,765,766,700],"\u002Fog\u002Fperulangan-dengan-for-loop-pada-python.png",{"id":733,"title":734,"title_id":735,"slug":736},[798],{"authors_id":799},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":801,"title":802,"title_id":803,"slug":804,"excerpt":805,"excerpt_id":806,"has_translation":76,"published_at":807,"reading_time":258,"hidden_from_listing":15,"tags":808,"thumbnail_image":8,"og_image":809,"series":810,"authors":811},92,"Branching with IF, ELIF, ELSE in Python","Percabangan dengan IF, ELIF, ELSE pada Python","percabangan-dengan-if-elif-else-pada-python","A conditional statement runs a command only when its condition holds. In Python, the if statement handles that job.","Conditional statement bertugas untuk menjalankan perintah sesuai kondisi. Pada python, hal ini ditangani oleh if statement.","2021-05-28T03:36:19.000Z",[19,749,700],"\u002Fog\u002Fpercabangan-dengan-if-elif-else-pada-python.png",{"id":733,"title":734,"title_id":735,"slug":736},[812],{"authors_id":813},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":815,"title":816,"title_id":817,"slug":818,"excerpt":819,"excerpt_id":820,"has_translation":76,"published_at":821,"reading_time":185,"hidden_from_listing":15,"tags":822,"thumbnail_image":8,"og_image":823,"series":824,"authors":829},91,"Input and Output Systems in Python 3","Sistem Input dan Output pada Python 3","sistem-input-dan-output-pada-python-3","A few functions, print() and input() among them, are the standard tools most I\u002FO work in Python is built on.","Beberapa fungsi seperti print() dan input(), merupakan fungsi standar yang banyak digunakan untuk melakukan I\u002FO.","2021-05-19T14:57:25.000Z",[19,577,221],"\u002Fog\u002Fsistem-input-dan-output-pada-python-3.png",{"id":825,"title":826,"title_id":827,"slug":828},18,"Working with Python Scripts","Menggunakan Script Python","python-pemrograman-dengan-script",[830],{"authors_id":831},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":833,"title":834,"title_id":835,"slug":836,"excerpt":837,"excerpt_id":838,"has_translation":76,"published_at":839,"reading_time":258,"hidden_from_listing":15,"tags":840,"thumbnail_image":8,"og_image":842,"series":843,"authors":848},79,"Using and Writing a FUNCTION in Pascal","Penggunaan dan Penulisan FUNCTION pada Pascal","penggunaan-dan-penulisan-function-pada-pascal","A sub program that does not return a value is called a PROCEDURE, while one that returns a value is called a FUNCTION.","Sub program yang tidak mengembalikan nilai dinamakan PROCEDURE, sedangkan yang mengembalikan nilai dinamakan FUNCTION.","2021-04-21T13:01:16.000Z",[841,508,611],"pascal","\u002Fog\u002Fpenggunaan-dan-penulisan-function-pada-pascal.png",{"id":844,"title":845,"title_id":846,"slug":847},26,"Procedural Programming","Pemrograman Prosedural","pascal-pemrograman-prosedural",[849],{"authors_id":850},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":852,"title":853,"title_id":854,"slug":855,"excerpt":856,"excerpt_id":857,"has_translation":76,"published_at":858,"reading_time":258,"hidden_from_listing":15,"tags":859,"thumbnail_image":8,"og_image":861,"series":862,"authors":863},78,"Using and Writing a PROCEDURE in Pascal","Penggunaan dan Penulisan PROCEDURE pada Pascal","penggunaan-dan-penulisan-procedure-pada-pascal","The main parts of a PROCEDURE are its name and its body, with parameters and local declarations as the optional parts.","Bagian utama dari sebuah PROCEDURE adalah nama dan tubuh PROCEDURE. Ada juga bagian opsional yaitu parameter dan deklarasi lokal.","2021-04-15T12:54:14.000Z",[841,860,611],"prosedur","\u002Fog\u002Fpenggunaan-dan-penulisan-procedure-pada-pascal.png",{"id":844,"title":845,"title_id":846,"slug":847},[864],{"authors_id":865},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":867,"title":868,"title_id":869,"slug":870,"excerpt":871,"excerpt_id":872,"has_translation":76,"published_at":873,"reading_time":258,"hidden_from_listing":15,"tags":874,"thumbnail_image":8,"og_image":875,"series":876,"authors":877},77,"About Procedural Programming in Pascal","Tentang Pemrograman Prosedural pada Pascal","tentang-pemrograman-prosedural-pada-pascal","Procedural programming is one of the programming paradigms, where several statements are combined into one procedure.","Pemrograman peosedural merupakan salah satu paradigma pemrograman dimana beberapa perintah digabungkan menjadi satu dalam sebuah prosedur.","2021-04-13T12:44:49.000Z",[841,685,860,222],"\u002Fog\u002Ftentang-pemrograman-prosedural-pada-pascal.png",{"id":844,"title":845,"title_id":846,"slug":847},[878],{"authors_id":879},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":881,"title":882,"title_id":883,"slug":884,"excerpt":885,"excerpt_id":886,"has_translation":76,"published_at":887,"reading_time":185,"hidden_from_listing":15,"tags":888,"thumbnail_image":8,"og_image":891,"series":892,"authors":893},90,"Writing and Running a Python Script","Menulis dan Menjalankan Script Python","menulis-dan-menjalankan-script-python","A Python script is a file holding Python code, and it usually carries the .py extension.","Script python merupakan file berisi kode dengan bahasa Python yang biasanya memiliki ekstensi .py","2021-03-21T14:49:24.000Z",[19,670,889,890],"tooling","cli","\u002Fog\u002Fmenulis-dan-menjalankan-script-python.png",{"id":825,"title":826,"title_id":827,"slug":828},[894],{"authors_id":895},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":897,"title":898,"title_id":899,"slug":900,"excerpt":901,"excerpt_id":902,"has_translation":76,"published_at":903,"reading_time":185,"hidden_from_listing":15,"tags":904,"thumbnail_image":8,"og_image":905,"series":906,"authors":909},89,"List Data Types in Python 3","Tipe Data List pada Python 3","tipe-data-list-pada-python-3","In Python, a list is a data type that can hold many values. Other languages may be more familiar to you as arrays.","Pada Python, list merupakan tipe data yang dapat memuat banyak nilai. Dalam bahasa lain mungkin lebih familiar dengan sebutan array.","2021-03-19T14:43:52.000Z",[19,528,729],"\u002Fog\u002Ftipe-data-list-pada-python-3.png",{"id":907,"title":533,"title_id":534,"slug":908},17,"python-variabel-tipe-data",[910],{"authors_id":911},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":913,"title":914,"title_id":915,"slug":916,"excerpt":917,"excerpt_id":918,"has_translation":76,"published_at":919,"reading_time":258,"hidden_from_listing":15,"tags":920,"thumbnail_image":8,"og_image":922,"series":923,"authors":924},88,"Boolean Data Types in Python 3","Tipe Data Boolean pada Python 3","tipe-data-boolean-pada-python-3","A boolean is a data type that holds only 2 values, true and false. It earns its keep once you work with control structures.","Boolean adalah tipe data yang hanya dapat memuat 2 nilai yaitu true dan false. Tipe data ini berguna saat kita berurusan dengan struktur kontrol.","2021-03-18T14:36:11.000Z",[19,528,921],"boolean","\u002Fog\u002Ftipe-data-boolean-pada-python-3.png",{"id":907,"title":533,"title_id":534,"slug":908},[925],{"authors_id":926},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":928,"title":929,"title_id":930,"slug":931,"excerpt":932,"excerpt_id":933,"has_translation":76,"published_at":934,"reading_time":258,"hidden_from_listing":15,"tags":935,"thumbnail_image":8,"og_image":936,"series":937,"authors":938},87,"String Data Types in Python 3","Tipe Data String pada Python 3","tipe-data-string-pada-python-3","A string in Python is a data type that holds one character or a run of them, and quotation marks are what mark it.","String pada Python merupakan tipe data yang memuat sebuah atau sekumpulan karakter. String ditandai dengan tanda petik.","2021-03-08T14:28:42.000Z",[19,528,20],"\u002Fog\u002Ftipe-data-string-pada-python-3.png",{"id":907,"title":533,"title_id":534,"slug":908},[939],{"authors_id":940},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":942,"title":943,"title_id":944,"slug":945,"excerpt":946,"excerpt_id":947,"has_translation":76,"published_at":948,"reading_time":185,"hidden_from_listing":15,"tags":949,"thumbnail_image":8,"og_image":950,"series":951,"authors":952},86,"Numeric Data Types in Python 3","Tipe Data Numerik pada Python 3","tipe-data-numerik-pada-python-3","Python has several numeric data types, such as int, float, and complex. Here is how each one behaves.","Pada python ada beberapa tipe data numerik. Seperti int, float, dan complex. Mari kita bahas lebih lanjut.","2021-02-19T04:13:20.000Z",[19,528,548,529],"\u002Fog\u002Ftipe-data-numerik-pada-python-3.png",{"id":907,"title":533,"title_id":534,"slug":908},[953],{"authors_id":954},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":956,"title":957,"title_id":958,"slug":959,"excerpt":960,"excerpt_id":961,"has_translation":76,"published_at":962,"reading_time":486,"hidden_from_listing":15,"tags":963,"thumbnail_image":8,"og_image":964,"series":965,"authors":966},85,"Getting to Know Data Types in Python 3","Mengenal Tipe Data pada Python 3","mengenal-tipe-data-pada-python-3","A data type is the attribute that spells out which operations can be done to a variable.","Tipe data merupakan atribut yang menandakan perlakuan apa saja yang dapat dilakukan terhadap variabel tersebut.","2021-02-09T04:08:46.000Z",[19,528,221,222],"\u002Fog\u002Fmengenal-tipe-data-pada-python-3.png",{"id":907,"title":533,"title_id":534,"slug":908},[967],{"authors_id":968},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":970,"title":971,"title_id":972,"slug":973,"excerpt":974,"excerpt_id":975,"has_translation":76,"published_at":976,"reading_time":258,"hidden_from_listing":15,"tags":977,"thumbnail_image":8,"og_image":978,"series":979,"authors":980},84,"Creating and Using Variables in Python","Membuat dan Menggunakan Variabel pada Python","membuat-dan-menggunakan-variabel-pada-python","Python is so simple it has no special rule for creating a variable. A variable appears automatically the moment you assign a value to a name.","Saking simpelnya, bahasa python tidak memiliki aturan khusus untuk membuat variable. Variabel otomatis terbuat ketika melakukan assignment.","2021-02-08T04:03:54.000Z",[19,596,221],"\u002Fog\u002Fmembuat-dan-menggunakan-variabel-pada-python.png",{"id":907,"title":533,"title_id":534,"slug":908},[981],{"authors_id":982},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":984,"title":985,"title_id":986,"slug":987,"excerpt":988,"excerpt_id":989,"has_translation":76,"published_at":990,"reading_time":258,"hidden_from_listing":15,"tags":991,"thumbnail_image":8,"og_image":992,"series":993,"authors":998},83,"Getting to Know Python's Basic Syntax","Mengenal Sintaks Dasar Bahasa Python","mengenal-sintaks-dasar-bahasa-python","You can't write Python code any way you like. There are syntax rules you have to follow, or the program errors out.","Penulisan kode python tidak sembarangan, ada beberapa aturan sintaks yang harus kita ikuti agar program tidak error.","2021-02-07T03:56:55.000Z",[19,220,221],"\u002Fog\u002Fmengenal-sintaks-dasar-bahasa-python.png",{"id":994,"title":995,"title_id":996,"slug":997},16,"Getting Started with Python","Berkenalan dengan Bahasa Python","python-intro",[999],{"authors_id":1000},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":1002,"title":1003,"title_id":1004,"slug":1005,"excerpt":1006,"excerpt_id":1007,"has_translation":76,"published_at":1008,"reading_time":486,"hidden_from_listing":15,"tags":1009,"thumbnail_image":8,"og_image":1010,"series":1011,"authors":1012},82,"Playing with the Python Interpreter","Bermain dengan Interpreter Python","bermain-dengan-interpreter-python","Python ships with an interactive interpreter you can use to run Python code right there in the terminal.","Python punya interpreter interaktif yang dapat kita gunakan untuk mengeksekusi kode python secara langsung di terminal.","2021-02-05T03:23:01.000Z",[19,890,889,670],"\u002Fog\u002Fbermain-dengan-interpreter-python.png",{"id":994,"title":995,"title_id":996,"slug":997},[1013],{"authors_id":1014},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":1016,"title":1017,"title_id":1018,"slug":1019,"excerpt":1020,"excerpt_id":1021,"has_translation":76,"published_at":1022,"reading_time":78,"hidden_from_listing":15,"tags":1023,"thumbnail_image":8,"og_image":1025,"series":1026,"authors":1027},81,"Installing Python 3 on Windows and Linux","Instalasi Python 3 di Windows dan Linux","instalasi-python-3-di-windows-dan-linux","Python 3 is the interpreter that runs your Python scripts, the piece that makes the code you write actually execute.","Python 3 ini fungsinya sebagai interpreter dari *script* python agar kode yang kita buat bisa dijalankan.","2021-02-01T15:21:27.000Z",[19,1024,889],"instalasi","\u002Fog\u002Finstalasi-python-3-di-windows-dan-linux.png",{"id":994,"title":995,"title_id":996,"slug":997},[1028],{"authors_id":1029},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":1031,"title":1032,"title_id":1033,"slug":1034,"excerpt":1035,"excerpt_id":1036,"has_translation":76,"published_at":1037,"reading_time":258,"hidden_from_listing":15,"tags":1038,"thumbnail_image":8,"og_image":1039,"series":1040,"authors":1041},80,"Getting to Know the Python Programming Language","Mengenal Bahasa Pemrograman Python","mengenal-bahasa-pemrograman-python","Python was designed so its syntax reads easily and feels human, unlike other languages that bury you in unfamiliar symbols.","Python didesain sedemikian rupa sehingga sintaksnya mudah terbaca dan sangat manusiawi. Tidak seperti bahasa lain yang punya banyak simbol asing.","2021-01-30T13:26:10.000Z",[19,684,685,221],"\u002Fog\u002Fmengenal-bahasa-pemrograman-python.png",{"id":994,"title":995,"title_id":996,"slug":997},[1042],{"authors_id":1043},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":1045,"title":1046,"title_id":1047,"slug":1048,"excerpt":1049,"excerpt_id":1050,"has_translation":76,"published_at":1051,"reading_time":486,"hidden_from_listing":15,"tags":1052,"thumbnail_image":8,"og_image":1054,"series":1055,"authors":1059},76,"Using Pointers in Pascal","Menggunakan Pointer pada Bahasa Pascal","menggunakan-pointer-pada-bahasa-pascal","A variable of pointer type can only hold the address of another variable, and changing it changes that other variable.","Sebuah variable yang bertipe pointer nantinya hanya dapat berisi sebuah alamat dari variable lain.","2020-12-02T14:17:47.000Z",[841,1053,528,222],"pointer","\u002Fog\u002Fmenggunakan-pointer-pada-bahasa-pascal.png",{"id":423,"title":1056,"title_id":1057,"slug":1058},"Composite Types","Tipe Data Bentukan","pascal-tipe-data-bentukan",[1060],{"authors_id":1061},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":1063,"title":1064,"title_id":1065,"slug":1066,"excerpt":1067,"excerpt_id":1068,"has_translation":76,"published_at":1069,"reading_time":185,"hidden_from_listing":15,"tags":1070,"thumbnail_image":8,"og_image":1073,"series":1074,"authors":1075},75,"Using the Array Data Type in Pascal","Menggunakan Tipe Data Array pada Pascal","menggunakan-tipe-data-array-pada-pascal","An ARRAY is a structure that holds a set of data with the same type, and you reach each item in it through its index.","ARRAY merupakan struktur data yang berisi sekumpulan data dengan tipe data yang sama. Data dalam ARRAY ini dapat diakses dengan menggunakan index.","2020-12-02T14:01:22.000Z",[841,1071,528,1072],"array","struktur-data","\u002Fog\u002Fmenggunakan-tipe-data-array-pada-pascal.png",{"id":423,"title":1056,"title_id":1057,"slug":1058},[1076],{"authors_id":1077},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":1079,"title":1080,"title_id":1081,"slug":1082,"excerpt":1083,"excerpt_id":1084,"has_translation":76,"published_at":1085,"reading_time":258,"hidden_from_listing":15,"tags":1086,"thumbnail_image":8,"og_image":1088,"series":1089,"authors":1090},74,"Using the RECORD Data Type in Pascal","Menggunakan Tipe Data RECORD pada Pascal","menggunakan-tipe-data-record-pada-pascal","RECORD is a structured data type in Pascal, built from a collection of standard and user-defined data types.","RECORD merupakan tipe data terstruktur pada bahasa Pascal yang terdiri dari kumpulan tipe data standar dan bentukan.","2020-11-27T13:54:30.000Z",[841,1087,528,1072],"record","\u002Fog\u002Fmenggunakan-tipe-data-record-pada-pascal.png",{"id":423,"title":1056,"title_id":1057,"slug":1058},[1091],{"authors_id":1092},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":1094,"title":1095,"title_id":1096,"slug":1097,"excerpt":1098,"excerpt_id":1099,"has_translation":76,"published_at":1100,"reading_time":258,"hidden_from_listing":15,"tags":1101,"thumbnail_image":8,"og_image":1102,"series":1103,"authors":1104},73,"User-Defined Data Types in Pascal","Tentang Tipe Data Bentukan pada Pascal","tentang-tipe-data-bentukan-pada-pascal","User-defined data types in Pascal come in 2 kinds, Enumerated and Subrange, and you declare both of them yourself.","Tipe data bentukan atau User defined data types terbagi menjadi 2, yaitu Enumerated dan Subrange","2020-11-22T13:49:03.000Z",[841,528,1072,222],"\u002Fog\u002Ftentang-tipe-data-bentukan-pada-pascal.png",{"id":423,"title":1056,"title_id":1057,"slug":1058},[1105],{"authors_id":1106},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":1108,"title":1109,"title_id":1110,"slug":1111,"excerpt":1112,"excerpt_id":1113,"has_translation":76,"published_at":1114,"reading_time":258,"hidden_from_listing":15,"tags":1115,"thumbnail_image":8,"og_image":1116,"series":1117,"authors":1120},72,"Branching with CASE OF in Pascal","Percabangan dengan CASE OF pada Pascal","percabangan-dengan-case-of-pada-pascal","CASE OF in Pascal is branching that uses a variable and its values to decide which condition applies.","CASE OF pada Pascal merupakan percabangan yang menggunakan variable dan nilainya untuk menentukan sebuah kondisi","2020-11-17T12:41:17.000Z",[841,749,700],"\u002Fog\u002Fpercabangan-dengan-case-of-pada-pascal.png",{"id":1118,"title":734,"title_id":735,"slug":1119},24,"pascal-struktur-kontrol",[1121],{"authors_id":1122},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":1124,"title":1125,"title_id":1126,"slug":1127,"excerpt":1128,"excerpt_id":1129,"has_translation":76,"published_at":1130,"reading_time":486,"hidden_from_listing":15,"tags":1131,"thumbnail_image":8,"og_image":1132,"series":1133,"authors":1134},71,"Loops with the REPEAT UNTIL Loop in Pascal","Perulangan dengan REPEAT UNTIL loop pada Pascal","perulangan-dengan-repeat-until-loop-pada-pascal","A REPEAT UNTIL loop checks its condition at the end of the statement and keeps running as long as that condition is still false.","Pada REPEAT UNTIL loop, pengecekan kondisi dilakukan pada akhir perintah dan perulangan akan terus berjalan selama kondisi masih bernilai `false`.","2020-11-15T12:34:28.000Z",[841,765,766,700],"\u002Fog\u002Fperulangan-dengan-repeat-until-loop-pada-pascal.png",{"id":1118,"title":734,"title_id":735,"slug":1119},[1135],{"authors_id":1136},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":1138,"title":1139,"title_id":1140,"slug":1141,"excerpt":1142,"excerpt_id":1143,"has_translation":76,"published_at":1144,"reading_time":258,"hidden_from_listing":15,"tags":1145,"thumbnail_image":8,"og_image":1146,"series":1147,"authors":1148},70,"Loops with the WHILE DO Loop in Pascal","Perulangan dengan WHILE DO loop pada Pascal","perulangan-dengan-while-do-loop-pada-pascal","A WHILE DO loop is a Pascal loop that uses a boolean expression as the marker for repeating, and it keeps going as long as that condition is true.","WHILE DO loop merupakan perulangan pada Pascal yang menggunakan kondisi berupa ekspresi boolean sebagai penanda perulangannya.","2020-11-13T12:29:04.000Z",[841,765,766,700],"\u002Fog\u002Fperulangan-dengan-while-do-loop-pada-pascal.png",{"id":1118,"title":734,"title_id":735,"slug":1119},[1149],{"authors_id":1150},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":1152,"title":1153,"title_id":1154,"slug":1155,"excerpt":1156,"excerpt_id":1157,"has_translation":76,"published_at":1158,"reading_time":258,"hidden_from_listing":15,"tags":1159,"thumbnail_image":8,"og_image":1160,"series":1161,"authors":1162},69,"Loops with the FOR Loop in Pascal","Perulangan dengan FOR loop pada Pascal","perulangan-dengan-for-loop-pada-pascal","In a FOR loop we tell the computer to run a statement a specific number of times, spelled out up front.","Pada FOR loop kita menginstruksikan komputer untuk menjalankan suatu perintah sebanyak berapa kali secara explisit.","2020-11-11T12:16:50.000Z",[841,765,766,700],"\u002Fog\u002Fperulangan-dengan-for-loop-pada-pascal.png",{"id":1118,"title":734,"title_id":735,"slug":1119},[1163],{"authors_id":1164},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":1166,"title":1167,"title_id":1168,"slug":1169,"excerpt":1170,"excerpt_id":1171,"has_translation":76,"published_at":1172,"reading_time":185,"hidden_from_listing":15,"tags":1173,"thumbnail_image":8,"og_image":1174,"series":1175,"authors":1176},68,"Branching with IF and ELSE Conditions in Pascal","Percabangan dengan Kondisi IF dan ELSE pada Pascal","percabangan-dengan-kondisi-if-dan-else-pada-pascal","This time we'll walk through branching conditions in Pascal using the IF ELSE keyword.","Pada kesempatan kali ini kita akan membahas sebuah kondisi percabangan dengan menggunakan keyword IF ELSE.","2020-11-09T14:33:48.000Z",[841,749,700],"\u002Fog\u002Fpercabangan-dengan-kondisi-if-dan-else-pada-pascal.png",{"id":1118,"title":734,"title_id":735,"slug":1119},[1177],{"authors_id":1178},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":1180,"title":1181,"title_id":1182,"slug":1183,"excerpt":1184,"excerpt_id":1185,"has_translation":76,"published_at":1186,"reading_time":185,"hidden_from_listing":15,"tags":1187,"thumbnail_image":8,"og_image":1188,"series":1189,"authors":1190},67,"Boolean Expressions and Logical Operations in Pascal","Expresi Boolean dan Operasi Logika pada Bahasa Pascal","expresi-boolean-dan-operasi-logika-pada-bahasa-pascal","Building a programming algorithm needs boolean expressions, and a boolean expression can be a logical operation or a comparison.","Dalam penyusunan algoritma pemrograman, perlu yang namanya expresi boolean. Expresi boolean dapat berupa operasi logika dan perbandingan.","2020-11-05T14:29:24.000Z",[841,921,750,700],"\u002Fog\u002Fexpresi-boolean-dan-operasi-logika-pada-bahasa-pascal.png",{"id":1118,"title":734,"title_id":735,"slug":1119},[1191],{"authors_id":1192},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":1194,"title":1195,"title_id":1196,"slug":1197,"excerpt":1198,"excerpt_id":1199,"has_translation":76,"published_at":1200,"reading_time":258,"hidden_from_listing":15,"tags":1201,"thumbnail_image":8,"og_image":1202,"series":1203,"authors":1207},59,"Getting to Know the Pascal Language","Berkenalan dengan Bahasa Pascal","berkenalan-dengan-bahasa-pascal","Pascal is a programming language with a simple, expressive, and readable syntax. That makes it a good first language for beginners.","Pascal merupakan bahasa pemrograman dengan sintaks sederhana, ekspresif, dan mudah dibaca. Ini membuatnya menjadi bahasa pemrograman yang baik untuk pemula.","2020-10-28T09:11:25.000Z",[841,684,685,221],"\u002Fog\u002Fberkenalan-dengan-bahasa-pascal.png",{"id":1204,"title":1205,"title_id":1196,"slug":1206},23,"Getting Started with Pascal","pascal-intro",[1208],{"authors_id":1209},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":1211,"title":1212,"title_id":1213,"slug":1214,"excerpt":1215,"excerpt_id":1216,"has_translation":76,"published_at":1217,"reading_time":258,"hidden_from_listing":15,"tags":1218,"thumbnail_image":8,"og_image":1219,"series":1220,"authors":1221},60,"Input with Read and Readln in Pascal","Sistem Input dengan Read dan Readln pada Bahasa Pascal","sistem-input-dengan-read-dan-readln-pada-bahasa-pascal","This time you'll learn how keyboard input works with the read and readln commands in Pascal.","Pada kesempatan kali ini kita akan belajar tentang proses masukan dari keyboard dengan menggunakan perintah read dan readln pada Bahasa Pascal.","2020-10-22T12:05:49.000Z",[841,577,220],"\u002Fog\u002Fsistem-input-dengan-read-dan-readln-pada-bahasa-pascal.png",{"id":1204,"title":1205,"title_id":1196,"slug":1206},[1222],{"authors_id":1223},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":1225,"title":1226,"title_id":1227,"slug":1228,"excerpt":1229,"excerpt_id":1230,"has_translation":76,"published_at":1231,"reading_time":78,"hidden_from_listing":15,"tags":1232,"thumbnail_image":8,"og_image":1233,"series":1234,"authors":1235},66,"Arithmetic Operations in Pascal","Operasi Aritmatika pada Bahasa Pascal","operasi-aritmatika-pada-bahasa-pascal","Once you know what a data type is, the next question is which operations each type allows. Here is the answer for Pascal, type by type.","Setelah tahu tentang apa itu tipe data, sekarang kita akan coba belajar tentang operasi apa saja yang dapat dilakukan pada setiap tipe data dalam bahasa Pascal.","2020-10-18T11:46:28.000Z",[841,750,221],"\u002Fog\u002Foperasi-aritmatika-pada-bahasa-pascal.png",{"id":1204,"title":1205,"title_id":1196,"slug":1206},[1236],{"authors_id":1237},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":1239,"title":1240,"title_id":1241,"slug":1242,"excerpt":1243,"excerpt_id":1244,"has_translation":76,"published_at":1245,"reading_time":142,"hidden_from_listing":15,"tags":1246,"thumbnail_image":8,"og_image":1247,"series":1248,"authors":1249},65,"Variables, Constants, and Data Types in Pascal","Variable, Konstanta, dan Tipe Data pada Pascal","variable-konstanta-dan-tipe-data-pada-pascal","Variables, constants, and data types are the heart of programming: they're what you use to manipulate data.","Variable, konstanta, dan tipe data merupakan jantung dari pemrograman yang akan kita gunakan untuk melakukan manipulasi data.","2020-10-11T11:25:24.000Z",[841,596,528,221],"\u002Fog\u002Fvariable-konstanta-dan-tipe-data-pada-pascal.png",{"id":1204,"title":1205,"title_id":1196,"slug":1206},[1250],{"authors_id":1251},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":1253,"title":1254,"title_id":1255,"slug":1256,"excerpt":1257,"excerpt_id":1258,"has_translation":76,"published_at":1259,"reading_time":258,"hidden_from_listing":15,"tags":1260,"thumbnail_image":8,"og_image":1261,"series":1262,"authors":1263},64,"Output with Write and Writeln in Pascal","Output dengan Write dan Writeln pada Bahasa Pascal","output-dengan-write-dan-writeln-pada-bahasa-pascal","Output matters in programming, and not only there: every process is judged by what it produces. This is how Pascal puts text on the console.","Sistem output merupakan suatu yang sangat penting dalam pemrograman. Bukan cuma pemrograman, bahkan semua hal pasti berorientasi pada output.","2020-10-09T11:17:19.000Z",[841,577,220],"\u002Fog\u002Foutput-dengan-write-dan-writeln-pada-bahasa-pascal.png",{"id":1204,"title":1205,"title_id":1196,"slug":1206},[1264],{"authors_id":1265},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":1267,"title":1268,"title_id":1269,"slug":1270,"excerpt":1271,"excerpt_id":1272,"has_translation":76,"published_at":1273,"reading_time":258,"hidden_from_listing":15,"tags":1274,"thumbnail_image":8,"og_image":1275,"series":1276,"authors":1277},63,"Writing Comments in Pascal","Penulisan Komentar pada Bahasa Pascal","penulisan-komentar-pada-bahasa-pascal","This time we'll cover how to write comments in Pascal. A comment is the part of the code the computer never reads.","Kali ini kita akan membahas tentang penulisan komentar pada bahasa Pascal. Komentar adalah bagian dar kode yang tidak akan dibaca oleh komputer.","2020-10-05T11:08:33.000Z",[841,640,220,641],"\u002Fog\u002Fpenulisan-komentar-pada-bahasa-pascal.png",{"id":1204,"title":1205,"title_id":1196,"slug":1206},[1278],{"authors_id":1279},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":1281,"title":1282,"title_id":1283,"slug":1284,"excerpt":1285,"excerpt_id":1286,"has_translation":76,"published_at":1287,"reading_time":185,"hidden_from_listing":15,"tags":1288,"thumbnail_image":8,"og_image":1289,"series":1290,"authors":1291},62,"The Parts and Structure of a Pascal Program","Mengenal Bagian dan Struktur Bahasa Pascal","mengenal-bagian-dan-struktur-bahasa-pascal","Like a letter that runs from the letterhead to the signature, Pascal code has writing rules and a structure it has to satisfy. Here is what goes where.","Ibarat menulis surat mulai dari kepala surat sampai tanda tangan, kode Pascal juga memiliki aturan penulisan dan struktur yang harus dipenuhi. Mari kita bahas lebih lanjut.","2020-10-04T13:29:37.000Z",[841,220,221,222],"\u002Fog\u002Fmengenal-bagian-dan-struktur-bahasa-pascal.png",{"id":1204,"title":1205,"title_id":1196,"slug":1206},[1292],{"authors_id":1293},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":1295,"title":1296,"title_id":1297,"slug":1298,"excerpt":1299,"excerpt_id":1300,"has_translation":76,"published_at":1301,"reading_time":185,"hidden_from_listing":15,"tags":1302,"thumbnail_image":8,"og_image":1303,"series":1304,"authors":1305},103,"Writing Your First Hello World Program in Pascal","Membuat Program Hello World pada Pascal","membuat-program-hello-world-pada-pascal","With Free Pascal installed on Windows or Linux, it's time for your first program, plus a quick look around the Free Pascal IDE.","Setelah melakukan instalasi Free Pascal baik pada windows atau linux, kali ini kita akan belajar untuk membuat program pertama kita. Sekaligus kenalan sedikit dengan Program Free Pascal.","2020-10-02T13:06:35.000Z",[841,670,221],"\u002Fog\u002Fmembuat-program-hello-world-pada-pascal.png",{"id":1204,"title":1205,"title_id":1196,"slug":1206},[1306],{"authors_id":1307},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":1309,"title":1310,"title_id":1311,"slug":1312,"excerpt":1313,"excerpt_id":1314,"has_translation":76,"published_at":1315,"reading_time":258,"hidden_from_listing":15,"tags":1316,"thumbnail_image":8,"og_image":1317,"series":1318,"authors":1319},61,"Installing Free Pascal on Linux","Menginstall Free Pascal pada Linux","menginstall-free-pascal-pada-linux","To run Pascal code you need a compiler. This time we'll use Free Pascal as both our compiler and our code editor.","Untuk menjalankan kode Pascal pada sistem operasi Windows kita perlu compiler. Kali ini kita akan mengunakan Free Pascal sebagai compiler sekaligus code editor kita.","2020-10-01T07:33:57.000Z",[841,1024,889],"\u002Fog\u002Fmenginstall-free-pascal-pada-linux.png",{"id":1204,"title":1205,"title_id":1196,"slug":1206},[1320],{"authors_id":1321},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{"id":1323,"title":1324,"title_id":1325,"slug":1326,"excerpt":1327,"excerpt_id":1314,"has_translation":76,"published_at":1328,"reading_time":78,"hidden_from_listing":15,"tags":1329,"thumbnail_image":8,"og_image":1330,"series":1331,"authors":1332},102,"Installing Free Pascal on Windows","Menginstal Free Pascal pada Windows","menginstal-free-pascal-pada-windows","To run Pascal code on Windows you need a compiler. This time we'll use Free Pascal as both our compiler and our code editor.","2020-09-30T07:32:11.000Z",[841,1024,889],"\u002Fog\u002Fmenginstal-free-pascal-pada-windows.png",{"id":1204,"title":1205,"title_id":1196,"slug":1206},[1333],{"authors_id":1334},{"id":4,"name":5,"slug":6,"role":7,"profile_picture":8},{},{"featuredPost":1337,"navigations":1353},{"id":1338,"title":1339,"title_id":1340,"slug":1341,"excerpt":1342,"excerpt_id":1343,"has_translation":76,"published_at":1344,"reading_time":78,"hidden_from_listing":15,"tags":1345,"thumbnail_image":8,"og_image":1350,"series":1351,"authors":1352},110,"When You Pick a Framework Just to Look Different","Ketika Pilih Framework Cuma Biar Kelihatan Beda","ketika-pilih-framework-cuma-biar-kelihatan-beda","The last time you chose a new framework or library, was it because your problem needed that tool, or because it sounded cool and few people around you were using it? That question is uncomfortable. Technology decisions are often made for reasons that never appear in any technical document.","Terakhir kali kamu milih framework atau library baru, itu karena masalahmu butuh alat itu, atau karena alatnya kedengaran keren dan belum banyak yang pakai? Pertanyaan ini nggak enak dijawab. Soalnya keputusan teknologi sering diambil dengan alasan yang nggak pernah ditulis di dokumen teknis mana pun.","2026-10-06T15:25:21.000Z",[1346,1347,1348,1349],"karier","framework","opini","pengalaman","\u002Fog\u002Fketika-pilih-framework-cuma-biar-kelihatan-beda.png",{"id":168,"title":169,"title_id":170,"slug":171},[],[1354,1364,1381],{"collection":1355,"item":1356},"series",{"__typename":1355,"title":169,"title_id":170,"slug":171,"children_series":1357},[1358,1359,1360],{"title":89,"title_id":90,"slug":91},{"title":226,"title_id":227,"slug":228},{"title":1361,"title_id":1362,"slug":1363},"Algorithms and Data Structures","Algoritma dan Struktur Data","algoritma-struktur-data",{"collection":1355,"item":1365},{"__typename":1355,"title":1366,"title_id":1366,"slug":670,"children_series":1367},"Tutorial",[1368,1372,1373,1377],{"title":1369,"title_id":1370,"slug":1371},"Learning Python","Belajar Python","belajar-python",{"title":366,"title_id":367,"slug":368},{"title":1374,"title_id":1375,"slug":1376},"Learning Java","Belajar Java","belajar-java",{"title":1378,"title_id":1379,"slug":1380},"Learning Pascal","Belajar Pascal","belajar-pascal",{"collection":1355,"item":1382},{"__typename":1355,"title":193,"title_id":193,"slug":189,"children_series":1383},[],1793336440566]