[{"data":1,"prerenderedAt":1459},["ShallowReactive",2],{"site-header":3,"popular-tags-list":37,"site-footer-license":46,"articles-list":50},{"navigations":4},[5,20],{"collection":6,"item":7},"series",{"__typename":6,"title":8,"slug":9,"children_series":10},"Artikel","all",[11,14,17],{"title":12,"slug":13},"Algoritma dan Struktur Data","algoritma-struktur-data",{"title":15,"slug":16},"Konsep Dasar Pemrograman","konsep-dasar-pemrograman",{"title":18,"slug":19},"Kecerdasan Artifisial","kecerdasan-artifisial",{"collection":6,"item":21},{"__typename":6,"title":22,"slug":23,"children_series":24},"Tutorial","tutorial",[25,28,31,34],{"title":26,"slug":27},"Belajar Java","belajar-java",{"title":29,"slug":30},"Belajar Pascal","belajar-pascal",{"title":32,"slug":33},"Belajar Python","belajar-python",{"title":35,"slug":36},"Belajar Golang","belajar-golang",[38,39,40,41,42,43,44,45],"python","pascal","backend","dasar","system-design","tipe-data","struktur-kontrol","java",{"name":47,"url":48,"show":49},"CC BY-SA","https://creativecommons.org/licenses/by-sa/4.0/",false,{"articles":51,"totalFetched":1458},[52,73,91,107,121,137,156,173,188,203,217,231,247,263,277,294,310,326,340,356,371,387,401,414,429,443,457,470,484,497,510,523,536,549,562,575,588,602,614,626,638,647,662,678,693,707,718,735,750,765,779,795,809,823,836,851,864,877,890,903,916,932,947,962,975,988,1001,1015,1029,1043,1056,1071,1084,1098,1112,1125,1139,1152,1166,1179,1193,1206,1221,1236,1250,1263,1276,1289,1302,1315,1328,1341,1354,1367,1380,1393,1406,1419,1432,1445],{"id":53,"title":54,"slug":55,"excerpt":56,"published_at":57,"thumbnail_image":58,"tags":60,"reading_time":66,"series":67,"authors":68},"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":59},"1942a5c9-c1f6-476d-9913-768f78d9d8eb",[61,62,63,64,65],"system-programming","rust","zig","c","memory-safety",null,{"title":8},[69],{"authors_id":70},{"name":71,"slug":72},"Inva","inva",{"id":74,"title":75,"slug":76,"excerpt":77,"published_at":78,"thumbnail_image":79,"tags":81,"reading_time":66,"series":87,"authors":88},"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":80},"0e0ed26d-20c6-443c-bde1-4a6200f6f801",[40,42,82,83,84,85,86],"rate-limiting","redis","api-gateway","architecture","traffict-management",{"title":8},[89],{"authors_id":90},{"name":71,"slug":72},{"id":92,"title":93,"slug":94,"excerpt":95,"published_at":96,"thumbnail_image":97,"tags":99,"reading_time":66,"series":66,"authors":104},"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":98},"e3c617fd-1486-4b82-b937-94fbec846c77",[40,100,85,101,102,42,103],"microservices","database","message-broker","postgresql",[105],{"authors_id":106},{"name":71,"slug":72},{"id":108,"title":109,"slug":110,"excerpt":111,"published_at":112,"thumbnail_image":113,"tags":115,"reading_time":66,"series":66,"authors":118},"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":114},"6c0a7ead-4841-4073-b29e-df7ae0f2aa3c",[116,102,40,85,100,117,38],"rabbitmq","async",[119],{"authors_id":120},{"name":71,"slug":72},{"id":122,"title":123,"slug":124,"excerpt":125,"published_at":126,"thumbnail_image":127,"tags":129,"reading_time":66,"series":66,"authors":134},"42","Health Check vs Readiness vs Liveness Probe di Kubernetes: Jangan Sampai Traffic Masuk ke Pod Mati!","health-check-readiness-liveness-probe-kubernetes","Semua pod kalian hijau Running, tapi pengguna malah disambut 502 Bad Gateway? Atau seluruh pod restart barengan gara-gara database lagi lambat? Salah kaprah soal probe bisa jadi biangnya. Yuk, kita bongkar bareng!","2026-09-02T03:15:08.836Z",{"id":128},"922ad82d-599d-4285-9540-8d1586cda4ed",[130,131,40,132,100,133,42],"kubernetes","devops","docker","reliability",[135],{"authors_id":136},{"name":71,"slug":72},{"id":138,"title":139,"slug":140,"excerpt":141,"published_at":142,"thumbnail_image":143,"tags":145,"reading_time":151,"series":152,"authors":153},"41","Log Aggregation Modern dengan Grafana Loki dan Vector: Hemat Storage Tanpa Indeks Raksasa","log-aggregation-modern-grafana-loki-vector-hemat-storage","Klaster Elasticsearch kalian rakus RAM dan boros storage, ya? Padahal nggak semua kata di log perlu diindeks, lho. Yuk, kita kenalan sama duet Grafana Loki dan Vector yang jauh lebih ramah kantong!","2026-09-01T15:45:01.066Z",{"id":144},"03c9d1a0-c80a-401d-9f2b-2b3ee7abb115",[40,146,147,148,149,150,131,42],"observa","logging","grafana","loki","vector",5,{"title":8},[154],{"authors_id":155},{"name":71,"slug":72},{"id":157,"title":158,"slug":159,"excerpt":160,"published_at":161,"thumbnail_image":162,"tags":164,"reading_time":66,"series":169,"authors":170},"40","Menyelami Distributed Tracing: Melacak Jejak Request di Balik Keruwetan Microservices","menyelami-distributed-tracing-melacak-jejak-request-microservices","Satu klik Checkout di backend kalian bisa memicu puluhan network call antar-service, tapi pas ada yang lambat, service mana sebenernya yang salah? Log aja nggak cukup buat njawab itu. Yuk, kita bedah Distributed Tracing!","2026-08-31T02:33:31.602Z",{"id":163},"1ace92fa-b89c-4cef-ab75-4e4cd67a089c",[40,165,166,167,100,85,168],"distributed-systems","observability","open-telemetry","tracing",{"title":8},[171],{"authors_id":172},{"name":71,"slug":72},{"id":174,"title":175,"slug":176,"excerpt":177,"published_at":178,"thumbnail_image":179,"tags":181,"reading_time":151,"series":184,"authors":185},"39","Database Sharding vs Partitioning: Kapan Data Perlu Dipecah?","database-sharding-vs-partitioning-kapan-data-perlu-dipecah","Tabel transaksi kalian udah nembus miliaran baris dan tiap *query* laporan bikin *CPU* melonjak 100%? Sebelum asal pecah data, yuk kita pahami dulu beda *sharding* sama *partitioning*!","2026-08-24T06:17:10.104Z",{"id":180},"08ef5fe5-d935-47b3-bbbc-d976948b2a9e",[40,101,103,42,85,182,183],"sharding","scaling",{"title":8},[186],{"authors_id":187},{"name":71,"slug":72},{"id":189,"title":190,"slug":191,"excerpt":192,"published_at":193,"thumbnail_image":194,"tags":196,"reading_time":151,"series":199,"authors":200},"38","Optimistic vs Pessimistic Locking: Mengatasi Rebutan Data di Database","optimistic-vs-pessimistic-locking-mengatasi-rebutan-data-di-database","Seribu orang ngeklik \"Beli Sekarang\" di detik yang sama buat rebutan 1 tiket terakhir. Kira-kira apa yang bakal terjadi di server kalian? Yuk, kita banding *pessimistic* sama *optimistic locking*!","2026-08-24T06:16:37.198Z",{"id":195},"21ab769d-6f82-4a22-be11-17ac16e9fb6b",[40,101,197,103,42,85,198],"concurrency","sql",{"title":8},[201],{"authors_id":202},{"name":71,"slug":72},{"id":204,"title":205,"slug":206,"excerpt":207,"published_at":208,"thumbnail_image":209,"tags":211,"reading_time":151,"series":213,"authors":214},"37","Kenapa Backend Butuh Graceful Shutdown? Jangan Asal Cabut Kabel Server!","kenapa-backend-butuh-graceful-shutdown-jangan-asal-cabut-kabel-server","Pernah nggak sih, abis kalian nge-*deploy* backend, beberapa detik kemudian monitoring malah banjir *alert* **502 Bad Gateway** dari pengguna? Saldo udah kepotong tapi status order belum keburu ter-*update* di *database*. Yuk, kita bahas kenapa *graceful shutdown* itu wajib banget!","2026-08-24T06:15:59.150Z",{"id":210},"251a54a7-1d24-47fd-8cbc-a46fd42cbb6f",[40,131,212,132,130,42,85],"fastapi",{"title":8},[215],{"authors_id":216},{"name":71,"slug":72},{"id":218,"title":219,"slug":220,"excerpt":221,"published_at":222,"thumbnail_image":223,"tags":225,"reading_time":151,"series":227,"authors":228},"36","Mencegah Efek Domino di Mikroservis dengan Circuit Breaker Pattern","mencegah-efek-domino-di-mikroservis-dengan-circuit-breaker-pattern","Pernah nggak sih, satu fitur minor di aplikasi kalian mendadak lelet, eh malah bikin halaman checkout dan login ikut down total? Itu namanya *cascading failure*. Yuk, kita bahas gimana *circuit breaker pattern* (pemutus arus) nyelametin arsitektur kalian!","2026-08-24T06:13:36.734Z",{"id":224},"c2e8e37f-8f9a-423f-a09d-74613b3c2924",[40,100,226,42,85],"circuit-breaker",{"title":8},[229],{"authors_id":230},{"name":71,"slug":72},{"id":232,"title":233,"slug":234,"excerpt":235,"published_at":236,"thumbnail_image":237,"tags":239,"reading_time":151,"series":243,"authors":244},"35","Mengenal Idempotency Key: Rahasia Anti-Double Charge di API Pembayaran","mengenal-idempotency-key-rahasia-anti-double-charge-di-api-pembayaran","Pernah internet kalian ngadat pas lagi nekan tombol Bayar, terus panik ngekliknya tiga kali? Kalau endpoint-nya nggak idempotent, saldo bisa kepotong berkali-kali. Yuk, kenalan sama Idempotency Key!","2026-08-24T06:09:11.645Z",{"id":238},"724cb83a-3ce5-4ee2-b0d7-533e3a0fc7df",[40,240,241,42,242,212,83],"api","idempotency","payment",{"title":8},[245],{"authors_id":246},{"name":71,"slug":72},{"id":248,"title":249,"slug":250,"excerpt":251,"published_at":252,"thumbnail_image":253,"tags":255,"reading_time":258,"series":259,"authors":260},"34","Kenapa Backend Butuh Database Connection Pooling?","kenapa-backend-butuh-database-connection-pooling","Pernah kena error Too many connections padahal CPU server masih santai di angka 30%? Masalahnya bukan di query kalian, tapi di cara aplikasi ngobrol sama database. Yuk, kenalan sama Connection Pooling!","2026-08-24T06:06:47.088Z",{"id":254},"6f7a2d8c-2a37-4901-a522-50df8d9c0a20",[40,101,103,256,42,257],"connection-pooling","performance",4,{"title":8},[261],{"authors_id":262},{"name":71,"slug":72},{"id":264,"title":265,"slug":266,"excerpt":267,"published_at":268,"thumbnail_image":269,"tags":271,"reading_time":258,"series":273,"authors":274},"33","Berkenalan dengan RabbitMQ: Si Kurir Pesan Serba Bisa","berkenalan-dengan-rabbitmq-si-kurir-pesan-serba-bisa","Pernah nggak sih kalian klik Bayar Sekarang dan notifikasi suksesnya muncul seketika, padahal email konfirmasi baru nyampe beberapa detik kemudian? Rahasianya ada di satu kurir tak terlihat. Yuk, kita kenalan sama RabbitMQ!","2026-08-17T04:26:10.388Z",{"id":270},"f6620f79-b3b2-4f9c-8104-283a335e06c4",[116,102,40,100,117,272],"queue",{"title":8},[275],{"authors_id":276},{"name":71,"slug":72},{"id":278,"title":279,"slug":280,"excerpt":281,"published_at":282,"thumbnail_image":283,"tags":285,"reading_time":258,"series":288,"authors":289},"32","Docker Compose untuk Developer Santai: Satu Perintah Buat Jalankan Semua Service","docker-compose-untuk-developer-santai","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",{"id":284},"f4c08f1b-e0d0-410c-b091-c3618944fb3e",[132,286,131,287,40],"docker-compose","containers",{"title":8},[290],{"authors_id":291},{"name":292,"slug":293},"Daffa Izzuddin","izzudd",{"id":295,"title":296,"slug":297,"excerpt":298,"published_at":299,"thumbnail_image":300,"tags":302,"reading_time":258,"series":306,"authors":307},"31","Mengenal Redis: Lebih dari Sekadar In-Memory Cache","mengenal-redis-lebih-dari-sekadar-in-memory-cache","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",{"id":301},"9595b7d7-60e0-48f5-a715-f3cf60f34e1d",[83,40,303,304,305,38],"cache","nosql","in-memory",{"title":8},[308],{"authors_id":309},{"name":292,"slug":293},{"id":311,"title":312,"slug":313,"excerpt":314,"published_at":315,"thumbnail_image":316,"tags":318,"reading_time":258,"series":322,"authors":323},"30","Berkenalan dengan Bahasa Go: Kenapa Banyak Dipakai untuk Backend Modern?","berkenalan-dengan-bahasa-go-untuk-backend-modern","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",{"id":317},"a368631c-f331-4c50-8322-1d0fc44927aa",[319,320,40,197,321,42],"golang","go","goroutine",{"title":8},[324],{"authors_id":325},{"name":292,"slug":293},{"id":327,"title":328,"slug":329,"excerpt":330,"published_at":331,"thumbnail_image":332,"tags":334,"reading_time":258,"series":336,"authors":337},"29","Memahami Database Indexing: Rahasia Query Super Cepat","memahami-database-indexing-rahasia-query-super-cepat","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",{"id":333},"b123036f-1779-478c-a545-cf5f189b5fe9",[101,198,103,335,257,40],"indexing",{"title":8},[338],{"authors_id":339},{"name":292,"slug":293},{"id":341,"title":342,"slug":343,"excerpt":344,"published_at":345,"thumbnail_image":346,"tags":348,"reading_time":151,"series":352,"authors":353},"28","Mengatasi N+1 Query Problem: Musuh Tersembunyi Performa Backend","mengatasi-n-plus-1-query-problem-musuh-tersembunyi-backend","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",{"id":347},"34b94e14-3e9a-4778-9f1f-6df5898915fb",[101,198,349,350,351,257,40],"orm","sqlalchemy","django",{"title":8},[354],{"authors_id":355},{"name":292,"slug":293},{"id":357,"title":358,"slug":359,"excerpt":360,"published_at":361,"thumbnail_image":362,"tags":364,"reading_time":151,"series":367,"authors":368},"27","Background Worker & Task Queue: Jangan Jalankan Proses Berat di Request HTTP!","background-worker-task-queue-jangan-jalankan-proses-berat-di-http","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",{"id":363},"e119c6ad-fc37-4b92-abdc-3eb20f8e34b4",[40,365,366,212,116,83,117],"task-queue","celery",{"title":8},[369],{"authors_id":370},{"name":292,"slug":293},{"id":372,"title":373,"slug":374,"excerpt":375,"published_at":376,"thumbnail_image":377,"tags":379,"reading_time":151,"series":383,"authors":384},"26","REST API vs gRPC: Kapan Sebaiknya Mulai Pindah dari JSON?","rest-api-vs-grpc-kapan-sebaiknya-pindah-dari-json","Pernah nggak sih sistem mikroservis kalian mulai kerasa berat padahal cuma tuker-tukeran data internal? Belum tentu masalah servernya. Yuk, kita bahas kapan REST + JSON masih juara dan kapan gRPC jadi jawabannya!","2026-08-17T04:26:10.249Z",{"id":378},"487500a0-9e09-469d-8736-1583c5ea83aa",[40,380,381,100,382,42],"grpc","rest-api","protobuf",{"title":8},[385],{"authors_id":386},{"name":71,"slug":72},{"id":388,"title":389,"slug":390,"excerpt":391,"published_at":392,"thumbnail_image":393,"tags":395,"reading_time":151,"series":397,"authors":398},"25","Kenapa Event Queue Bikin Backend Kalian Nggak Gampang Tumbang?","kenapa-event-queue-bikin-backend-kamu-nggak-gampang-tumbang","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",{"id":394},"d9e76018-fbcc-4c69-ad42-8f75ff229ecd",[40,42,396,102,85],"event-queue",{"title":8},[399],{"authors_id":400},{"name":292,"slug":293},{"id":402,"title":403,"slug":404,"excerpt":405,"published_at":406,"thumbnail_image":407,"tags":409,"reading_time":258,"series":410,"authors":411},"24","Kenapa Butuh Rate Limiting?","kenapa-butuh-rate-limiting","Pernah nggak sih endpoint login kalian diserbu bot yang nyoba nembak ribuan password cuma dalam semenit? Yuk, kita bahas kenapa Rate Limiting itu wajib, plus cara masangnya di FastAPI!","2026-08-17T04:00:27.728Z",{"id":408},"1401f9e5-6359-404a-8d80-273ddee9a372",[40,82,42,240,83,212],{"title":8},[412],{"authors_id":413},{"name":71,"slug":72},{"id":415,"title":416,"slug":417,"excerpt":418,"published_at":419,"thumbnail_image":420,"tags":422,"reading_time":258,"series":425,"authors":426},"23","Kenapa Pakai FastAPI dan Kenapa Dia Kenceng Banget?","kenapa-pakai-fastapi-dan-kenapa-dia-kenceng-banget","Sering dengar FastAPI tapi masih bingung kenapa dia bisa ngebut kayak NodeJS dan Go? Yuk, kita bedah bareng rahasia ASGI, sihir Pydantic, sampai dokumentasi otomatisnya!","2026-08-16T13:22:46.956Z",{"id":421},"84847c9e-70ab-4dcc-bed7-7be50165f7f4",[212,38,40,423,424],"asgi","pydantic",{"title":8},[427],{"authors_id":428},{"name":71,"slug":72},{"id":430,"title":431,"slug":432,"excerpt":433,"published_at":434,"thumbnail_image":435,"tags":437,"reading_time":66,"series":441,"authors":442},"22","Yang Baru di Nuxt 3: Nitro Engine, Vite, dan Fitur Keren Lainnya","yang-baru-di-nuxt-3-nitro-vite-dan-banyak-lagi","Nuxt 3 hadir membawa perubahan arsitektur besar-besaran untuk menyelaraskan dengan Vue 3. Penasaran apa saja peningkatan performa dan fitur barunya?","2026-06-15T02:39:26.086Z",{"id":436},"8444bdbc-f60c-4d8b-8593-1b49400e8659",[438,439,440],"nuxt-3","vue-3","frontend-framework",{"title":8},[],{"id":444,"title":445,"slug":446,"excerpt":447,"published_at":448,"thumbnail_image":449,"tags":451,"reading_time":66,"series":455,"authors":456},"21","TypeScript: JavaScript dengan Gaya dan Tipe Data Statis","typescript-javascript-dengan-gaya","Pernah pusing gara-gara runtime error di JavaScript? Yuk, kenalan dengan TypeScript yang bawa fitur static typing biar kode kalian makin rapi dan aman!","2026-06-15T02:39:25.712Z",{"id":450},"f615bb1f-8e36-4d6c-9c2c-f1629407173c",[452,453,454],"typescript","javascript","web-development",{"title":8},[],{"id":458,"title":459,"slug":460,"excerpt":461,"published_at":462,"thumbnail_image":463,"tags":465,"reading_time":66,"series":468,"authors":469},"20","Tailwind v3.0 Rilis: Ada JIT, Arbitrary Values, dan Banyak Lagi!","tailwind-v3-0-rilis-jit-arbitrary-dan-banyak-lagi","Tailwind CSS v3.0 resmi dirilis dengan segudang peningkatan performa yang bikin proses coding makin asyik. Apa aja sih fitur andalan yang wajib dicoba?","2026-06-15T02:39:25.372Z",{"id":464},"d5e879fa-5cd0-4015-a155-b0cc69ff12fb",[466,467,454],"tailwind-css","css-framework",{"title":8},[],{"id":471,"title":472,"slug":473,"excerpt":474,"published_at":475,"thumbnail_image":476,"tags":478,"reading_time":66,"series":482,"authors":483},"19","Static Typing dan Dynamic Typing: Apa Bedanya?","static-typing-dan-dynamic-typing-apa-bedanya","Pernah bingung kenapa di Java tipe data harus dideklarasikan, sementara di Python tinggal pakai aja? Yuk, cari tahu perbedaan static typing dan dynamic typing di sini!","2026-06-15T02:39:15.869Z",{"id":477},"98e85e76-9e7b-42d1-b989-7c75e7f49abc",[479,480,481],"programming","types","comparison",{"title":8},[],{"id":485,"title":486,"slug":487,"excerpt":488,"published_at":489,"thumbnail_image":490,"tags":492,"reading_time":66,"series":495,"authors":496},"18","React, Angular, atau Vue: Pilih Framework yang Mana?","react-angular-vue-pilih-framework-yang-mana","Bingung menentukan pilihan di antara React, Angular, dan Vue untuk proyek web kalian berikutnya? Tenang, yuk kita bandingkan kelebihan masing-masing di sini!","2026-06-15T02:38:31.431Z",{"id":491},"ff111270-80c2-4ccb-83d7-d5ab8c021201",[454,493,494],"frontend","framework",{"title":8},[],{"id":498,"title":499,"slug":500,"excerpt":501,"published_at":502,"thumbnail_image":503,"tags":505,"reading_time":66,"series":508,"authors":509},"17","Pemrograman Asynchronous vs Multithreading, Apa Sih Bedanya?","pemrograman-asynchronous-dan-multithreading-apa-bedanya","Sering dengar istilah asynchronous dan multithreading pas ngoding tapi masih bingung bedanya? Yuk, kita bedah perbedaannya lewat analogi bikin mi instan yang gampang dipahami!","2026-06-15T02:38:31.093Z",{"id":504},"9c05d0ae-e829-4f1b-b9f7-a84f3e0439d3",[506,197,507],"pemrograman","tips-coding",{"title":8},[],{"id":511,"title":512,"slug":513,"excerpt":514,"published_at":515,"thumbnail_image":516,"tags":518,"reading_time":66,"series":521,"authors":522},"16","Menggunakan TypeScript dengan Node.js dan Express","menggunakan-typescript-dengan-node-js-dan-express","Pengen bikin server Express di Node.js tapi pakai fitur-fitur keren TypeScript? Yuk, intip cara setup lengkapnya dari nol di sini!","2026-06-15T02:38:30.735Z",{"id":517},"798b60f1-9ef5-4f73-8d43-85825fd86acc",[453,519,520,452],"nodejs","express",{"title":8},[],{"id":524,"title":525,"slug":526,"excerpt":527,"published_at":528,"thumbnail_image":529,"tags":531,"reading_time":66,"series":534,"authors":535},"15","Kenapa Ada Banyak Sekali Distro Linux?","kenapa-ada-banyak-sekali-distro-linux","Pernah bingung pas mau install Linux tapi malah disuguhi puluhan pilihan distro? Tenang, kalian nggak sendirian. Yuk, cari tahu kenapa distro Linux bisa sebanyak itu dan apa bedanya!","2026-06-15T02:38:14.569Z",{"id":530},"b5352a4b-f274-4489-aca9-36814947d514",[532,533],"linux","distro",{"title":8},[],{"id":537,"title":538,"slug":539,"excerpt":540,"published_at":541,"thumbnail_image":542,"tags":544,"reading_time":66,"series":547,"authors":548},"14","Instalasi Java dengan Visual Studio Code","instalasi-java-dengan-visual-studio-code","Mau belajar ngoding Java tapi spek laptop pas-pasan buat buka IDE berat? Yuk, cari tahu cara setup VS Code biar ngoding Java tetap lancar dan enteng!","2026-06-15T02:37:24.974Z",{"id":543},"99b01cc2-11ac-4449-9927-a1a7116347df",[545,45,546],"howto","editor",{"title":8},[],{"id":550,"title":551,"slug":552,"excerpt":553,"published_at":554,"thumbnail_image":555,"tags":557,"reading_time":66,"series":560,"authors":561},"13","Hal yang Perlu Diperhatikan Sebelum Pindah ke Linux","hal-yang-perlu-diperhatikan-sebelum-pindah-ke-linux","Tertarik migrasi dari Windows ke Linux tapi masih ragu? Yuk, pelajari kelebihan, kekurangan, dan persiapan penting sebelum kamu benar-benar pindah!","2026-06-15T02:37:24.570Z",{"id":556},"ae27713e-5025-4d13-88b6-efb4860cc5b3",[532,558,559],"windows","foss",{"title":8},[],{"id":563,"title":564,"slug":565,"excerpt":566,"published_at":567,"thumbnail_image":568,"tags":570,"reading_time":66,"series":573,"authors":574},"12","Buat PowerShell Lebih Berwarna dengan Starship","buat-powershell-lebih-berwarna-dengan-starship","Bosen sama tampilan PowerShell yang hitam putih dan kaku? Yuk, sulap terminalmu jadi lebih interaktif, estetik, dan berwarna pakai Starship!","2026-06-15T02:37:24.143Z",{"id":569},"c5a8262b-43db-4479-8f6c-5a6a0d61653b",[571,558,572],"shell","powershell",{"title":8},[],{"id":576,"title":577,"slug":578,"excerpt":579,"published_at":580,"thumbnail_image":581,"tags":583,"reading_time":66,"series":586,"authors":587},"11","Apa Kabar JavaScript? Rilis State of JS 2022","apa-kabar-javascript-rilis-state-of-js-2022","Survei State of JS 2022 resmi dirilis dengan lonjakan responden yang luar biasa! Framework dan build tool apa saja yang berhasil mencuri perhatian tahun ini?","2026-06-15T02:36:30.205Z",{"id":582},"18df5262-d813-43d1-b1f7-5595a7f53602",[453,584,585],"web","news",{"title":8},[],{"id":589,"title":590,"slug":591,"excerpt":592,"published_at":593,"thumbnail_image":594,"tags":596,"reading_time":66,"series":600,"authors":601},"10","Fungsi dan Prosedur dalam Pemrograman, Apa Bedanya?","fungsi-dan-prosedur","Pernah bingung kapan harus pakai fungsi dan kapan pakai prosedur pas lagi ngoding? Yuk, bongkar rahasia dan bedanya di sini biar kode kamu makin rapi!","2026-06-14T17:23:03.636Z",{"id":595},"aca2cb4a-803b-4fdc-85e8-c8ea2beaf441",[597,598,599],"basic","intro","functions",{"title":15},[],{"id":603,"title":604,"slug":605,"excerpt":606,"published_at":607,"thumbnail_image":608,"tags":610,"reading_time":66,"series":612,"authors":613},"9","Struktur Kontrol Perulangan (For, While, Do-While), Kapan Harus Dipakai?","struktur-kontrol-perulangan","Pernah ngerasa capek nulis baris kode yang sama berulang kali? Gimana caranya nyuruh komputer buat ngerjain itu secara otomatis?","2026-06-14T17:23:03.479Z",{"id":609},"8dd5085f-35bb-46fe-8044-d50a77ede34e",[597,598,611],"looping",{"title":15},[],{"id":615,"title":616,"slug":617,"excerpt":618,"published_at":619,"thumbnail_image":620,"tags":622,"reading_time":66,"series":624,"authors":625},"8","Struktur Kontrol Kondisi (If-Else dan Switch-Case), Apa Bedanya?","struktur-kontrol-kondisi","Sering bingung kapan harus pakai if-else dan kapan switch-case? Kenapa switch-case kadang bisa lebih ngebut? Yuk, bongkar rahasianya di sini!","2026-06-14T17:23:03.446Z",{"id":621},"44de9a02-3223-4969-88df-907973544b04",[597,598,623],"conditions",{"title":15},[],{"id":627,"title":628,"slug":629,"excerpt":630,"published_at":631,"thumbnail_image":632,"tags":634,"reading_time":66,"series":636,"authors":637},"7","Konsep Variabel dan Tipe Data pada Pemrograman","variable-dan-tipe-data","Variabel itu ibarat “tokoh utama” di sebuah program. Nggak peduli bahasa pemrograman apapun, pasti semua punya konsep variabel.","2026-06-14T16:51:40.710Z",{"id":633},"0a59bd7f-b7b1-47c9-a0b8-b3351057a6c7",[597,598,635,480],"variable",{"title":15},[],{"id":639,"title":15,"slug":16,"excerpt":640,"published_at":641,"thumbnail_image":642,"tags":644,"reading_time":66,"series":645,"authors":646},"6","Inti dari pemrograman adalah memberi instruksi alias menyuruh komputer untuk melakukan sesuatu yang kita inginkan.","2026-06-14T16:51:40.694Z",{"id":643},"9c7f5c67-3b29-48f5-85fe-f8497bc3b4cc",[598,597],{"title":15},[],{"id":648,"title":649,"slug":650,"excerpt":651,"published_at":652,"thumbnail_image":653,"tags":655,"reading_time":258,"series":658,"authors":659},"5","Di Balik Dapur JEPA: Rahasia EMA, VICReg, dan Efisiensi Komputasi","di-balik-dapur-jepa-rahasia-ema-vicreg-dan-efisiensi-komputasi","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",{"id":654},"b2c9186e-e850-4b5f-99d5-cce6b53726c4",[656,657],"jepa","artificial-intelligent",{"title":18},[660],{"authors_id":661},{"name":292,"slug":293},{"id":663,"title":664,"slug":665,"excerpt":666,"published_at":667,"thumbnail_image":668,"tags":670,"reading_time":258,"series":674,"authors":675},"4","Bukan Sekadar Generative AI, JEPA Coba Kejar Pemahaman Konsep ala Manusia","kenapa-ai-masih-gagal-paham-fisika-dasar-mengenal-arsitektur-jepa","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",{"id":669},"1dc76e72-c536-44c8-a995-bf05ddff90e5",[656,671,672,673],"yann-lecun","machine-learning","agi",{"title":18},[676],{"authors_id":677},{"name":292,"slug":293},{"id":679,"title":680,"slug":681,"excerpt":682,"published_at":683,"thumbnail_image":684,"tags":686,"reading_time":258,"series":689,"authors":690},"3","Mengenal JEPA: Saat AI Mulai Belajar Punya \"Akal Sehat\"","kenapa-ai-suka-halu-dan-gimana-jepa-beresin-masalah-ini","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",{"id":685},"bf61f88a-4e30-411b-85af-51b4827d1cc4",[687,656,688,671],"artificial-intelligence","world-models",{"title":18},[691],{"authors_id":692},{"name":292,"slug":293},{"id":694,"title":695,"slug":696,"excerpt":697,"published_at":698,"thumbnail_image":699,"tags":701,"reading_time":258,"series":703,"authors":704},"2","LLM Bakal Mentok, Terus Gimana Dong?","llm-bakal-mentok-terus-gimana-dong","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",{"id":700},"2538a162-75e8-4ede-bb30-56049e9a1f8d",[687,702,671,656],"llm",{"title":18},[705],{"authors_id":706},{"name":292,"slug":293},{"id":708,"title":709,"slug":710,"excerpt":711,"published_at":712,"thumbnail_image":713,"tags":715,"reading_time":258,"series":716,"authors":717},"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":714},"ccb0b8cf-eec7-4a92-a416-7e0c22bb72ec",[656,687,671,673],{"title":18},[],{"id":719,"title":720,"slug":721,"excerpt":722,"published_at":723,"thumbnail_image":724,"tags":726,"reading_time":729,"series":730,"authors":732},"101","Default Argument dan Keyword Argument pada Python","default-argument-pada-python","Default argument merupakan argument fungsi yang memiliki nilai asal, dengan ini kita bisa membuat argument opsional","2024-02-12T14:01:05.000Z",{"id":725},"ee745ec6-eddf-4d26-bb05-2edb858286b1",[38,727,728],"fungsi","syntax",3,{"title":731},"Pemrograman Fungsional dengan Python",[733],{"authors_id":734},{"name":292,"slug":293},{"id":736,"title":737,"slug":738,"excerpt":739,"published_at":740,"thumbnail_image":741,"tags":743,"reading_time":258,"series":745,"authors":747},"58","Mengenal Tipe Data Float pada Java","mengenal-tipe-data-float-pada-java","Float atau floating point merupakan tipe data yang dapat menampung literal bilangan desimal dan pecahan.","2023-02-15T00:00:00.000Z",{"id":742},"d915e395-5e17-40c1-ab53-677d9f1252d3",[45,43,744],"float",{"title":746},"Variabel, Tipe Data, dan Operasi",[748],{"authors_id":749},{"name":292,"slug":293},{"id":751,"title":752,"slug":753,"excerpt":754,"published_at":755,"thumbnail_image":756,"tags":758,"reading_time":760,"series":761,"authors":762},"57","Mengenal Tipe Data Integer pada Java","mengenal-tipe-data-integer-pada-java","Integer, sesuai namanya merupakan tipe data yang hanya bisa menampung bilangan bulat saja (negatif, nol, dan positif)","2023-01-13T00:00:00.000Z",{"id":757},"a39127be-6eeb-49cb-9ee9-7f9c1b9f28c1",[45,43,759],"integer",6,{"title":746},[763],{"authors_id":764},{"name":292,"slug":293},{"id":766,"title":767,"slug":768,"excerpt":769,"published_at":770,"thumbnail_image":771,"tags":773,"reading_time":729,"series":775,"authors":776},"56","Tipe Data pada Bahasa Java","tipe-data-pada-bahasa-java","Tipe data adalah atribut yang menempel pada sebuah data untuk menentukan perlakuan terhadap data tersebut.","2022-12-29T00:00:00.000Z",{"id":772},"c67f5e59-a088-4660-9a0f-55f4f7c4a37b",[45,43,774,41],"konsep",{"title":746},[777],{"authors_id":778},{"name":292,"slug":293},{"id":780,"title":781,"slug":782,"excerpt":783,"published_at":784,"thumbnail_image":785,"tags":787,"reading_time":789,"series":790,"authors":792},"55","Sistem Input pada Bahasa Java","sistem-input-pada-bahasa-java","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",{"id":786},"3cdb0187-3373-401c-aeaf-abeda8170a90",[45,788,41],"input-output",7,{"title":791},"Berkenalan dengan Java",[793],{"authors_id":794},{"name":292,"slug":293},{"id":796,"title":797,"slug":798,"excerpt":799,"published_at":800,"thumbnail_image":801,"tags":803,"reading_time":789,"series":805,"authors":806},"54","Variabel dan Literal pada Bahasa Java","variabel-dan-literal-pada-bahasa-java","Literal dan variabel merupakan komponen yang penting, karena 2 hal ini berhubungan langsung dengan data dan manipulasinya.","2022-09-07T07:33:30.000Z",{"id":802},"b3cfdc00-853e-424c-8a85-20c13d627d98",[45,804,774,41],"variabel",{"title":791},[807],{"authors_id":808},{"name":292,"slug":293},{"id":810,"title":811,"slug":812,"excerpt":813,"published_at":814,"thumbnail_image":815,"tags":817,"reading_time":151,"series":819,"authors":820},"98","Fungsi dan Sub Program pada Python","fungsi-dan-sub-program-pada-python","Fungsi atau dalam istilah pemrograman disebut dengan “function” merupakan blok kode yang digunakan untuk menyelesaikan masalah spesifik.","2022-09-06T03:33:06.000Z",{"id":816},"7c341146-fd71-44a9-9685-3d9514f997c8",[38,727,818],"sub-program",{"title":731},[821],{"authors_id":822},{"name":292,"slug":293},{"id":824,"title":825,"slug":826,"excerpt":827,"published_at":828,"thumbnail_image":829,"tags":831,"reading_time":151,"series":832,"authors":833},"53","Sistem Output pada Bahasa Java","sistem-output-pada-bahasa-java","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",{"id":830},"acd35b05-1d92-4944-a89a-d2e5b352f3be",[45,788,41],{"title":791},[834],{"authors_id":835},{"name":292,"slug":293},{"id":837,"title":838,"slug":839,"excerpt":840,"published_at":841,"thumbnail_image":842,"tags":844,"reading_time":729,"series":847,"authors":848},"52","Penulisan Komentar pada Bahasa Java","penulisan-komentar-pada-bahasa-java","Java memiliki beberapa jenis komentar yaitu komentar satu baris, banyak baris, dan komentar dokumentasi.","2022-08-21T03:23:11.000Z",{"id":843},"720de22b-6faa-4d9f-b7be-97b17f20f130",[45,845,728,846],"komentar","best-practice",{"title":791},[849],{"authors_id":850},{"name":292,"slug":293},{"id":852,"title":853,"slug":854,"excerpt":855,"published_at":856,"thumbnail_image":857,"tags":859,"reading_time":258,"series":860,"authors":861},"51","Mengenal Struktur Dasar Program Java","mengenal-struktur-dasar-program-java","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",{"id":858},"dbfbf54c-b840-4c44-9f70-ddb80434a47d",[45,728,41,774],{"title":791},[862],{"authors_id":863},{"name":292,"slug":293},{"id":865,"title":866,"slug":867,"excerpt":868,"published_at":869,"thumbnail_image":870,"tags":872,"reading_time":729,"series":873,"authors":874},"49","Berkenalan dengan Bahasa Java","berkenalan-dengan-bahasa-java","Java merupakan bahasa pemrograman tingkat tinggi dengan paradigma OOP. Bahasa ini punya slogan “write once, run anywhere”","2022-08-11T00:00:00.000Z",{"id":871},"1b4c8254-328d-43a5-b489-6ed7c7da91a0",[45,598,506,41],{"title":791},[875],{"authors_id":876},{"name":292,"slug":293},{"id":878,"title":879,"slug":880,"excerpt":881,"published_at":869,"thumbnail_image":882,"tags":884,"reading_time":885,"series":886,"authors":887},"50","Membuat Program \"Hello World\" pada Java","membuat-program-hello-world-pada-java","Pada kesempatan kali ini kita akan membuat kode pertama kita, yaitu Hello World pada bahasa Java.",{"id":883},"d5ece737-b796-4209-9af8-1b7ce232d554",[45,23,41],1,{"title":791},[888],{"authors_id":889},{"name":292,"slug":293},{"id":891,"title":892,"slug":893,"excerpt":894,"published_at":895,"thumbnail_image":896,"tags":898,"reading_time":729,"series":899,"authors":900},"100","Pass Statement pada Python","pass-statement-pada-python","pass statement pada python merupakan statement spesial yang hanya bisa digunakan di dalam compound statement","2022-01-17T03:51:58.000Z",{"id":897},"88e549d9-dca0-408d-9eae-4763fcf32848",[38,728,44],{"title":731},[901],{"authors_id":902},{"name":292,"slug":293},{"id":904,"title":905,"slug":906,"excerpt":907,"published_at":908,"thumbnail_image":909,"tags":911,"reading_time":760,"series":912,"authors":913},"99","Return Statement pada Python","return-statement-pada-python","Return statement memungkinkan kita mengembalikan nilai yang sudah diproses pada fungsi ke pemanggil.","2022-01-03T03:40:03.000Z",{"id":910},"84ba6cca-3cf8-4eec-a71b-841c9beec237",[38,727,728],{"title":731},[914],{"authors_id":915},{"name":292,"slug":293},{"id":917,"title":918,"slug":919,"excerpt":920,"published_at":921,"thumbnail_image":922,"tags":924,"reading_time":151,"series":927,"authors":929},"97","List Comprehension Pada Pyhton","list-comprehension-pada-pyhton","list comprehension merupakan ternary operator pada Python untuk mempersingkat proses inisialisasi variable list","2021-11-27T03:17:02.000Z",{"id":923},"5e8d4c5d-5506-4852-997d-deaa9f979fb5",[38,925,926],"list","list-comprehension",{"title":928},"Struktur Kontrol",[930],{"authors_id":931},{"name":292,"slug":293},{"id":933,"title":934,"slug":935,"excerpt":936,"published_at":937,"thumbnail_image":938,"tags":940,"reading_time":729,"series":943,"authors":944},"96","Percabangan dengan Ternary Operator pada Python","percobangan-dengan-ternary-operator-pada-python","Pada Python ternary operator untuk mempersingkat assignment yang melibatkan kondisi IF ELSE.","2021-11-21T04:07:50.000Z",{"id":939},"9bfe4ceb-53ed-43e0-99f6-af44c65ed13b",[38,941,942,44],"percabangan","operator",{"title":928},[945],{"authors_id":946},{"name":292,"slug":293},{"id":948,"title":949,"slug":950,"excerpt":951,"published_at":952,"thumbnail_image":953,"tags":955,"reading_time":729,"series":958,"authors":959},"95","Statement BREAK dan CONTINUE pada Python","statement-break-dan-continue-pada-python","Python memiliki statement break dan continue untuk mengatasi kasus-kasus khusus pada struktur kontrol.","2021-10-28T03:59:18.000Z",{"id":954},"cd09cb1e-7ef2-49a0-bf0a-03ff8c377577",[38,956,957,44],"perulangan","loop",{"title":928},[960],{"authors_id":961},{"name":292,"slug":293},{"id":963,"title":964,"slug":965,"excerpt":966,"published_at":967,"thumbnail_image":968,"tags":970,"reading_time":258,"series":971,"authors":972},"94","Perulangan dengan WHILE Loop pada Python","perulangan-dengan-while-loop-pada-python","Berbeda dengan perulangan for, dengan while kita akan menggunakan kondisi boolean sebagai pengendalinya.","2021-07-21T03:52:03.000Z",{"id":969},"a3d2cf83-8fff-4592-a62f-0d91d9a7b054",[38,956,957,44],{"title":928},[973],{"authors_id":974},{"name":292,"slug":293},{"id":976,"title":977,"slug":978,"excerpt":979,"published_at":980,"thumbnail_image":981,"tags":983,"reading_time":151,"series":984,"authors":985},"93","Perulangan dengan FOR Loop pada Python","perulangan-dengan-for-loop-pada-python","for loop merupakan perulangan yang sudah diketahui kapan mulainya dan kapan selesainya.","2021-07-10T03:46:32.000Z",{"id":982},"930bed49-dd1d-4707-85be-e6b774b65505",[38,956,957,44],{"title":928},[986],{"authors_id":987},{"name":292,"slug":293},{"id":989,"title":990,"slug":991,"excerpt":992,"published_at":993,"thumbnail_image":994,"tags":996,"reading_time":729,"series":997,"authors":998},"92","Percabangan dengan IF, ELIF, ELSE pada Python","percabangan-dengan-if-elif-else-pada-python","Conditional statement bertugas untuk menjalankan perintah sesuai kondisi. Pada python, hal ini ditangani oleh if statement.","2021-05-28T03:36:19.000Z",{"id":995},"1d91ec3b-2446-49fd-82e3-e3446468b70a",[38,941,44],{"title":928},[999],{"authors_id":1000},{"name":292,"slug":293},{"id":1002,"title":1003,"slug":1004,"excerpt":1005,"published_at":1006,"thumbnail_image":1007,"tags":1009,"reading_time":258,"series":1010,"authors":1012},"91","Sistem Input dan Output pada Python 3","sistem-input-dan-output-pada-python-3","Beberapa fungsi seperti print() dan input(), merupakan fungsi standar yang banyak digunakan untuk melakukan I/O.","2021-05-19T14:57:25.000Z",{"id":1008},"1997e389-1ea2-4c8b-bc17-c7116c7d954c",[38,788,41],{"title":1011},"Menggunakan Script Python",[1013],{"authors_id":1014},{"name":292,"slug":293},{"id":1016,"title":1017,"slug":1018,"excerpt":1019,"published_at":1020,"thumbnail_image":1021,"tags":1023,"reading_time":729,"series":1024,"authors":1026},"79","Penggunaan dan Penulisan FUNCTION pada Pascal","penggunaan-dan-penulisan-function-pada-pascal","Sub program yang tidak mengembalikan nilai dinamakan PROCEDURE, sedangkan yang mengembalikan nilai dinamakan FUNCTION.","2021-04-21T13:01:16.000Z",{"id":1022},"b81e26a6-f8e9-4fc4-bb89-02d9bad60cb0",[39,727,818],{"title":1025},"Pemrograman Prosedural",[1027],{"authors_id":1028},{"name":292,"slug":293},{"id":1030,"title":1031,"slug":1032,"excerpt":1033,"published_at":1034,"thumbnail_image":1035,"tags":1037,"reading_time":729,"series":1039,"authors":1040},"78","Penggunaan dan Penulisan PROCEDURE pada Pascal","penggunaan-dan-penulisan-procedure-pada-pascal","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",{"id":1036},"8e0a8b3a-8158-45d7-837e-cb0d74f59d08",[39,1038,818],"prosedur",{"title":1025},[1041],{"authors_id":1042},{"name":292,"slug":293},{"id":1044,"title":1045,"slug":1046,"excerpt":1047,"published_at":1048,"thumbnail_image":1049,"tags":1051,"reading_time":729,"series":1052,"authors":1053},"77","Tentang Pemrograman Prosedural pada Pascal","tentang-pemrograman-prosedural-pada-pascal","Pemrograman peosedural merupakan salah satu paradigma pemrograman dimana beberapa perintah digabungkan menjadi satu dalam sebuah prosedur.","2021-04-13T12:44:49.000Z",{"id":1050},"ed098695-35de-42a9-9a45-5de92ecc1ad6",[39,506,1038,774],{"title":1025},[1054],{"authors_id":1055},{"name":292,"slug":293},{"id":1057,"title":1058,"slug":1059,"excerpt":1060,"published_at":1061,"thumbnail_image":1062,"tags":1064,"reading_time":258,"series":1067,"authors":1068},"90","Menulis dan Menjalankan Script Python","menulis-dan-menjalankan-script-python","Script python merupakan file berisi kode dengan bahasa Python yang biasanya memiliki ekstensi .py","2021-03-21T14:49:24.000Z",{"id":1063},"f6c86d9f-f98b-4c80-a317-b0aa86440434",[38,23,1065,1066],"tooling","cli",{"title":1011},[1069],{"authors_id":1070},{"name":292,"slug":293},{"id":1072,"title":1073,"slug":1074,"excerpt":1075,"published_at":1076,"thumbnail_image":1077,"tags":1079,"reading_time":258,"series":1080,"authors":1081},"89","Tipe Data List pada Python 3","tipe-data-list-pada-python-3","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",{"id":1078},"0273fee7-cfd4-4035-81a8-9de49586fee7",[38,43,925],{"title":746},[1082],{"authors_id":1083},{"name":292,"slug":293},{"id":1085,"title":1086,"slug":1087,"excerpt":1088,"published_at":1089,"thumbnail_image":1090,"tags":1092,"reading_time":729,"series":1094,"authors":1095},"88","Tipe Data Boolean pada Python 3","tipe-data-boolean-pada-python-3","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",{"id":1091},"5ac49a12-9fa1-4642-be34-7b0a4c509587",[38,43,1093],"boolean",{"title":746},[1096],{"authors_id":1097},{"name":292,"slug":293},{"id":1099,"title":1100,"slug":1101,"excerpt":1102,"published_at":1103,"thumbnail_image":1104,"tags":1106,"reading_time":729,"series":1108,"authors":1109},"87","Tipe Data String pada Python 3","tipe-data-string-pada-python-3","String pada Python merupakan tipe data yang memuat sebuah atau sekumpulan karakter. String ditandai dengan tanda petik.","2021-03-08T14:28:42.000Z",{"id":1105},"7c605edf-c8bd-4b23-b505-7e9882897e2c",[38,43,1107],"string",{"title":746},[1110],{"authors_id":1111},{"name":292,"slug":293},{"id":1113,"title":1114,"slug":1115,"excerpt":1116,"published_at":1117,"thumbnail_image":1118,"tags":1120,"reading_time":258,"series":1121,"authors":1122},"86","Tipe Data Numerik pada Python 3","tipe-data-numerik-pada-python-3","Pada python ada beberapa tipe data numerik. Seperti int, float, dan complex. Mari kita bahas lebih lanjut.","2021-02-19T04:13:20.000Z",{"id":1119},"08ffa42a-54a8-4180-b6a4-4b92bb4792b5",[38,43,759,744],{"title":746},[1123],{"authors_id":1124},{"name":292,"slug":293},{"id":1126,"title":1127,"slug":1128,"excerpt":1129,"published_at":1130,"thumbnail_image":1131,"tags":1133,"reading_time":1134,"series":1135,"authors":1136},"85","Mengenal Tipe Data pada Python 3","mengenal-tipe-data-pada-python-3","Tipe data merupakan atribut yang menandakan perlakuan apa saja yang dapat dilakukan terhadap variabel tersebut.","2021-02-09T04:08:46.000Z",{"id":1132},"89348b31-9609-44b9-b5a7-4a7bc3a00624",[38,43,41,774],2,{"title":746},[1137],{"authors_id":1138},{"name":292,"slug":293},{"id":1140,"title":1141,"slug":1142,"excerpt":1143,"published_at":1144,"thumbnail_image":1145,"tags":1147,"reading_time":729,"series":1148,"authors":1149},"84","Membuat dan Menggunakan Variabel pada Python","membuat-dan-menggunakan-variabel-pada-python","Saking simpelnya, bahasa python tidak memiliki aturan khusus untuk membuat variable. Variabel otomatis terbuat ketika melakukan assignment.","2021-02-08T04:03:54.000Z",{"id":1146},"0baa43ef-35ab-49f0-8bcb-f02689edad1c",[38,804,41],{"title":746},[1150],{"authors_id":1151},{"name":292,"slug":293},{"id":1153,"title":1154,"slug":1155,"excerpt":1156,"published_at":1157,"thumbnail_image":1158,"tags":1160,"reading_time":729,"series":1161,"authors":1163},"83","Mengenal Sintaks Dasar Bahasa Python","mengenal-sintaks-dasar-bahasa-python","Penulisan kode python tidak sembarangan, ada beberapa aturan sintaks yang harus kita ikuti agar program tidak error.","2021-02-07T03:56:55.000Z",{"id":1159},"238b7ebc-6c79-4848-836c-fbb9f4aa1976",[38,728,41],{"title":1162},"Berkenalan dengan Bahasa Python",[1164],{"authors_id":1165},{"name":292,"slug":293},{"id":1167,"title":1168,"slug":1169,"excerpt":1170,"published_at":1171,"thumbnail_image":1172,"tags":1174,"reading_time":1134,"series":1175,"authors":1176},"82","Bermain dengan Interpreter Python","bermain-dengan-interpreter-python","Python punya interpreter interaktif yang dapat kita gunakan untuk mengeksekusi kode python secara langsung di terminal.","2021-02-05T03:23:01.000Z",{"id":1173},"cd64368d-e008-4c1e-911c-c5184bd4ebb6",[38,1066,1065,23],{"title":1162},[1177],{"authors_id":1178},{"name":292,"slug":293},{"id":1180,"title":1181,"slug":1182,"excerpt":1183,"published_at":1184,"thumbnail_image":1185,"tags":1187,"reading_time":151,"series":1189,"authors":1190},"81","Instalasi Python 3 di Windows dan Linux","instalasi-python-3-di-windows-dan-linux","Python 3 ini fungsinya sebagai interpreter dari *script* python agar kode yang kita buat bisa dijalankan.","2021-02-01T15:21:27.000Z",{"id":1186},"cd603384-0f8d-43e9-81c4-49a2cbc8ecf5",[38,1188,1065],"instalasi",{"title":1162},[1191],{"authors_id":1192},{"name":292,"slug":293},{"id":1194,"title":1195,"slug":1196,"excerpt":1197,"published_at":1198,"thumbnail_image":1199,"tags":1201,"reading_time":729,"series":1202,"authors":1203},"80","Mengenal Bahasa Pemrograman Python","mengenal-bahasa-pemrograman-python","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",{"id":1200},"5991bbf8-ba17-4afd-bd6f-20e59d5fc84e",[38,598,506,41],{"title":1162},[1204],{"authors_id":1205},{"name":292,"slug":293},{"id":1207,"title":1208,"slug":1209,"excerpt":1210,"published_at":1211,"thumbnail_image":1212,"tags":1214,"reading_time":1134,"series":1216,"authors":1218},"76","Menggunakan Pointer pada Bahasa Pascal","menggunakan-pointer-pada-bahasa-pascal","Sebuah variable yang bertipe pointer nantinya hanya dapat berisi sebuah alamat dari variable lain.","2020-12-02T14:17:47.000Z",{"id":1213},"f98ed665-5806-4fb3-ba62-3cca57077b56",[39,1215,43,774],"pointer",{"title":1217},"Tipe Data Bentukan",[1219],{"authors_id":1220},{"name":292,"slug":293},{"id":1222,"title":1223,"slug":1224,"excerpt":1225,"published_at":1226,"thumbnail_image":1227,"tags":1229,"reading_time":258,"series":1232,"authors":1233},"75","Menggunakan Tipe Data Array pada Pascal","menggunakan-tipe-data-array-pada-pascal","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",{"id":1228},"50e5c328-b262-4919-aabc-1fbd607f6c2b",[39,1230,43,1231],"array","struktur-data",{"title":1217},[1234],{"authors_id":1235},{"name":292,"slug":293},{"id":1237,"title":1238,"slug":1239,"excerpt":1240,"published_at":1241,"thumbnail_image":1242,"tags":1244,"reading_time":729,"series":1246,"authors":1247},"74","Menggunakan Tipe Data RECORD pada Pascal","menggunakan-tipe-data-record-pada-pascal","RECORD merupakan tipe data terstruktur pada bahasa Pascal yang terdiri dari kumpulan tipe data standar dan bentukan.","2020-11-27T13:54:30.000Z",{"id":1243},"92bbe4a8-316f-4549-9819-797a44472a45",[39,1245,43,1231],"record",{"title":1217},[1248],{"authors_id":1249},{"name":292,"slug":293},{"id":1251,"title":1252,"slug":1253,"excerpt":1254,"published_at":1255,"thumbnail_image":1256,"tags":1258,"reading_time":729,"series":1259,"authors":1260},"73","Tentang Tipe Data Bentukan pada Pascal","tentang-tipe-data-bentukan-pada-pascal","Tipe data bentukan atau User defined data types terbagi menjadi 2, yaitu Enumerated dan Subrange","2020-11-22T13:49:03.000Z",{"id":1257},"c0e9e3ac-75df-4af6-86c5-2c136dc47233",[39,43,1231,774],{"title":1217},[1261],{"authors_id":1262},{"name":292,"slug":293},{"id":1264,"title":1265,"slug":1266,"excerpt":1267,"published_at":1268,"thumbnail_image":1269,"tags":1271,"reading_time":729,"series":1272,"authors":1273},"72","Percabangan dengan CASE OF pada Pascal","percabangan-dengan-case-of-pada-pascal","CASE OF pada Pascal merupakan percabangan yang menggunakan variable dan nilainya untuk menentukan sebuah kondisi","2020-11-17T12:41:17.000Z",{"id":1270},"7e66c22e-799f-4e20-bccb-f386d45987ba",[39,941,44],{"title":928},[1274],{"authors_id":1275},{"name":292,"slug":293},{"id":1277,"title":1278,"slug":1279,"excerpt":1280,"published_at":1281,"thumbnail_image":1282,"tags":1284,"reading_time":1134,"series":1285,"authors":1286},"71","Perulangan dengan REPEAT UNTIL loop pada Pascal","perulangan-dengan-repeat-until-loop-pada-pascal","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",{"id":1283},"7c6b59b4-5fc4-432f-9bb2-388b761240b4",[39,956,957,44],{"title":928},[1287],{"authors_id":1288},{"name":292,"slug":293},{"id":1290,"title":1291,"slug":1292,"excerpt":1293,"published_at":1294,"thumbnail_image":1295,"tags":1297,"reading_time":729,"series":1298,"authors":1299},"70","Perulangan dengan WHILE DO loop pada Pascal","perulangan-dengan-while-do-loop-pada-pascal","WHILE DO loop merupakan perulangan pada Pascal yang menggunakan kondisi berupa ekspresi boolean sebagai penanda perulangannya.","2020-11-13T12:29:04.000Z",{"id":1296},"a0a6e8a4-08ae-448f-b8a1-b3ca3b24c559",[39,956,957,44],{"title":928},[1300],{"authors_id":1301},{"name":292,"slug":293},{"id":1303,"title":1304,"slug":1305,"excerpt":1306,"published_at":1307,"thumbnail_image":1308,"tags":1310,"reading_time":729,"series":1311,"authors":1312},"69","Perulangan dengan FOR loop pada Pascal","perulangan-dengan-for-loop-pada-pascal","Pada FOR loop kita menginstruksikan komputer untuk menjalankan suatu perintah sebanyak berapa kali secara explisit.","2020-11-11T12:16:50.000Z",{"id":1309},"add308c3-92a3-46cf-b748-c088955b16ac",[39,956,957,44],{"title":928},[1313],{"authors_id":1314},{"name":292,"slug":293},{"id":1316,"title":1317,"slug":1318,"excerpt":1319,"published_at":1320,"thumbnail_image":1321,"tags":1323,"reading_time":258,"series":1324,"authors":1325},"68","Percabangan dengan Kondisi IF dan ELSE pada Pascal","percabangan-dengan-kondisi-if-dan-else-pada-pascal","Pada kesempatan kali ini kita akan membahas sebuah kondisi percabangan dengan menggunakan keyword IF ELSE.","2020-11-09T14:33:48.000Z",{"id":1322},"12176154-b51a-40f7-92c9-76bd22f27edd",[39,941,44],{"title":928},[1326],{"authors_id":1327},{"name":292,"slug":293},{"id":1329,"title":1330,"slug":1331,"excerpt":1332,"published_at":1333,"thumbnail_image":1334,"tags":1336,"reading_time":258,"series":1337,"authors":1338},"67","Expresi Boolean dan Operasi Logika pada Bahasa Pascal","expresi-boolean-dan-operasi-logika-pada-bahasa-pascal","Dalam penyusunan algoritma pemrograman, perlu yang namanya expresi boolean. Expresi boolean dapat berupa operasi logika dan perbandingan.","2020-11-05T14:29:24.000Z",{"id":1335},"0d7b8bac-d407-4c10-adac-9629c054e44a",[39,1093,942,44],{"title":928},[1339],{"authors_id":1340},{"name":292,"slug":293},{"id":1342,"title":1343,"slug":1344,"excerpt":1345,"published_at":1346,"thumbnail_image":1347,"tags":1349,"reading_time":729,"series":1350,"authors":1351},"59","Berkenalan dengan Bahasa Pascal","berkenalan-dengan-bahasa-pascal","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",{"id":1348},"ed6e86a1-9928-4571-b812-1228b8742067",[39,598,506,41],{"title":1343},[1352],{"authors_id":1353},{"name":292,"slug":293},{"id":1355,"title":1356,"slug":1357,"excerpt":1358,"published_at":1359,"thumbnail_image":1360,"tags":1362,"reading_time":729,"series":1363,"authors":1364},"60","Sistem Input dengan Read dan Readln pada Bahasa Pascal","sistem-input-dengan-read-dan-readln-pada-bahasa-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",{"id":1361},"cd7ff963-992f-49cc-8520-a7a6685d7546",[39,788,728],{"title":1343},[1365],{"authors_id":1366},{"name":292,"slug":293},{"id":1368,"title":1369,"slug":1370,"excerpt":1371,"published_at":1372,"thumbnail_image":1373,"tags":1375,"reading_time":151,"series":1376,"authors":1377},"66","Operasi Aritmatika pada Bahasa Pascal","operasi-aritmatika-pada-bahasa-pascal","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",{"id":1374},"20365e59-b759-4ac3-9e1d-6f9c1ddc6ac7",[39,942,41],{"title":1343},[1378],{"authors_id":1379},{"name":292,"slug":293},{"id":1381,"title":1382,"slug":1383,"excerpt":1384,"published_at":1385,"thumbnail_image":1386,"tags":1388,"reading_time":789,"series":1389,"authors":1390},"65","Variable, Konstanta, dan Tipe Data pada Pascal","variable-konstanta-dan-tipe-data-pada-pascal","Variable, konstanta, dan tipe data merupakan jantung dari pemrograman yang akan kita gunakan untuk melakukan manipulasi data.","2020-10-11T11:25:24.000Z",{"id":1387},"52b80649-eebb-4321-990e-c8f34b547c9b",[39,804,43,41],{"title":1343},[1391],{"authors_id":1392},{"name":292,"slug":293},{"id":1394,"title":1395,"slug":1396,"excerpt":1397,"published_at":1398,"thumbnail_image":1399,"tags":1401,"reading_time":729,"series":1402,"authors":1403},"64","Output dengan Write dan Writeln pada Bahasa Pascal","output-dengan-write-dan-writeln-pada-bahasa-pascal","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",{"id":1400},"234ec268-ef60-4f16-837f-b0cf86471406",[39,788,728],{"title":1343},[1404],{"authors_id":1405},{"name":292,"slug":293},{"id":1407,"title":1408,"slug":1409,"excerpt":1410,"published_at":1411,"thumbnail_image":1412,"tags":1414,"reading_time":729,"series":1415,"authors":1416},"63","Penulisan Komentar pada Bahasa Pascal","penulisan-komentar-pada-bahasa-pascal","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",{"id":1413},"a1fb41b3-5d8d-4c47-b0d3-0f344ad33107",[39,845,728,846],{"title":1343},[1417],{"authors_id":1418},{"name":292,"slug":293},{"id":1420,"title":1421,"slug":1422,"excerpt":1423,"published_at":1424,"thumbnail_image":1425,"tags":1427,"reading_time":258,"series":1428,"authors":1429},"62","Mengenal Bagian dan Struktur Bahasa Pascal","mengenal-bagian-dan-struktur-bahasa-pascal","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",{"id":1426},"d003025e-345c-426d-b499-d76da7a8ee72",[39,728,41,774],{"title":1343},[1430],{"authors_id":1431},{"name":292,"slug":293},{"id":1433,"title":1434,"slug":1435,"excerpt":1436,"published_at":1437,"thumbnail_image":1438,"tags":1440,"reading_time":258,"series":1441,"authors":1442},"103","Membuat Program Hello World pada Pascal","membuat-program-hello-world-pada-pascal","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",{"id":1439},"81fde45a-bbc8-4080-8167-4717eef59014",[39,23,41],{"title":1343},[1443],{"authors_id":1444},{"name":292,"slug":293},{"id":1446,"title":1447,"slug":1448,"excerpt":1449,"published_at":1450,"thumbnail_image":1451,"tags":1453,"reading_time":729,"series":1454,"authors":1455},"61","Menginstall Free Pascal pada Linux","menginstall-free-pascal-pada-linux","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",{"id":1452},"36758a2e-8f5d-4485-af44-ac5c17d6b438",[39,1188,1065],{"title":1343},[1456],{"authors_id":1457},{"name":292,"slug":293},100,1791045080052]