[{"data":1,"prerenderedAt":236},["ShallowReactive",2],{"tag-labels":3,"site-header":4,"article-tentang-struktur-data-linked-list-id":72},{},{"featuredPost":5,"navigations":29},{"id":6,"title":7,"title_id":8,"slug":9,"excerpt":10,"excerpt_id":11,"has_translation":12,"published_at":13,"reading_time":14,"hidden_from_listing":15,"tags":16,"thumbnail_image":21,"og_image":22,"series":23,"authors":28},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.",true,"2026-10-06T15:25:21.000Z",5,false,[17,18,19,20],"karier","framework","opini","pengalaman",null,"\u002Fog\u002Fketika-pilih-framework-cuma-biar-kelihatan-beda.png",{"id":24,"title":25,"title_id":26,"slug":27},9,"Articles","Artikel","all",[],[30,46,67],{"collection":31,"item":32},"series",{"__typename":31,"title":25,"title_id":26,"slug":27,"children_series":33},[34,38,42],{"title":35,"title_id":36,"slug":37},"Artificial Intelligence","Kecerdasan Artifisial","kecerdasan-artifisial",{"title":39,"title_id":40,"slug":41},"Programming Fundamentals","Konsep Dasar Pemrograman","konsep-dasar-pemrograman",{"title":43,"title_id":44,"slug":45},"Algorithms and Data Structures","Algoritma dan Struktur Data","algoritma-struktur-data",{"collection":31,"item":47},{"__typename":31,"title":48,"title_id":48,"slug":49,"children_series":50},"Tutorial","tutorial",[51,55,59,63],{"title":52,"title_id":53,"slug":54},"Learning Python","Belajar Python","belajar-python",{"title":56,"title_id":57,"slug":58},"Learning Go","Belajar Golang","belajar-golang",{"title":60,"title_id":61,"slug":62},"Learning Java","Belajar Java","belajar-java",{"title":64,"title_id":65,"slug":66},"Learning Pascal","Belajar Pascal","belajar-pascal",{"collection":31,"item":68},{"__typename":31,"title":69,"title_id":69,"slug":70,"children_series":71},"Lab","lab",[],{"article":73,"renderedBody":124,"renderedTakeaway":125,"latestArticles":126,"toc":222},{"id":74,"title":75,"title_id":75,"slug":76,"excerpt":77,"excerpt_id":77,"has_translation":12,"published_at":78,"reading_time":79,"hidden_from_listing":15,"tags":80,"thumbnail_image":21,"og_image":85,"series":86,"authors":116,"seoTitle":21,"seoDescription":21,"body_locale":119,"available_locales":120,"body":122,"takeway":123,"prerequisite":21},48,"Tentang Struktur Data LinkedList","tentang-struktur-data-linked-list","Linked list adalah rantai linear berisi node, dan setiap node menyimpan data plus pointer ke node berikutnya. Ini ongkosnya dibanding array, plus implementasi paling sederhananya.","2026-11-21T01:00:00.000Z",3,[81,82,83,84],"struktur-data","linked-list","pointer","konsep","\u002Fog\u002Ftentang-struktur-data-linked-list.png",{"id":87,"title":88,"title_id":89,"slug":90,"description":91,"description_id":92,"articles":93,"children_series":105,"parent_series":106},28,"Linear Data Structures","Struktur Data Linear","asd-struktur-linear","Linear structures like linked lists, from building one to the operations you'll actually use.","Struktur data linear seperti linked list, dibahas dari cara membentuknya sampai operasi dasarnya.",[94],{"id":74,"title":95,"title_id":75,"slug":76,"excerpt":96,"excerpt_id":77,"has_translation":12,"published_at":78,"reading_time":79,"hidden_from_listing":15,"tags":80,"thumbnail_image":21,"og_image":85,"series":97,"authors":98},"What a Linked List Actually Is","A linked list is a linear chain of nodes, each holding data and a pointer to the next node. Here is what that chain costs next to an array, plus a minimal implementation you can run.",{"id":87,"title":88,"title_id":89,"slug":90},[99],{"authors_id":100},{"id":101,"name":102,"slug":103,"role":104,"profile_picture":21},1,"Daffa Izzuddin","izzudd","Writer",[],{"id":107,"title":43,"title_id":44,"slug":45,"parent_series":108,"children_series":109},15,{"id":24,"title":25,"title_id":26,"slug":27},[110,115],{"id":111,"title":112,"title_id":113,"slug":114,"cover_image":21},27,"About Algorithms and Data Structures","Tentang Algoritma dan Struktur Data","asd-intro",{"id":87,"title":88,"title_id":89,"slug":90,"cover_image":21},[117],{"authors_id":118},{"id":101,"name":102,"slug":103,"role":104,"profile_picture":21},"id",[121,119],"en","\nLinked list menyimpan kumpulan data sebagai rantai objek kecil, bukan sebagai satu blok memori. Artikel ini membahas rantai itu, perbandingannya dengan array, dan implementasi paling sederhana yang bisa kamu jalankan sendiri.\n\n## Tentang Linked List\n\nLinked list adalah rantai linear berisi `node`. Setiap node menyimpan dua hal: **data** dan **pointer** ke node berikutnya.\n\nStruktur ini disebut linear karena setiap node merujuk tepat ke satu node lain. Kalau digambarkan, bentuknya mirip ular: satu ruas mengikuti ruas berikutnya, tanpa cabang.\n\nUntuk membaca isinya dibutuhkan titik mulai. Titik itu disebut node *head*. Tidak ada yang merujuk ke `head`, dan `head` merujuk ke node berikutnya.\n\nUjung sebaliknya disebut *tail*. Node lain merujuk ke `tail`, tapi `tail` tidak merujuk ke mana pun.\n\nAda tiga jenis yang umum: singly, doubly, dan circular linked list. Pembahasannya menyusul.\n\n## Kenapa Tidak Pakai Array?\n\nArray dan linked list punya tugas yang sama, yaitu menyimpan kumpulan data. Bedanya di cara data itu ditata di memori.\n\nArray bersifat **berurutan**. Elemennya duduk berdampingan, jadi elemen mana pun bisa kamu capai lewat indeks dalam O(1). Batasnya, panjang array tetap sejak kamu mendeklarasikannya.\n\nLinked list bersifat **tersebar**. Node-nya bisa berada di mana saja di memori, dan pointer yang menyambungnya. Karena itu list bisa tumbuh node demi node. Batasnya, mencapai posisi ke-k berarti menelusuri k node dari `head`, yaitu O(k).\n\nMemori per elemen juga lebih besar, karena setiap node menyimpan satu pointer tambahan di samping datanya.\n\n| Aspek | Linked list | Array |\n|---|---|---|\n| Ukuran | Bisa tumbuh node demi node | Tetap sejak dideklarasikan |\n| Waktu akses | O(k), menelusuri k node untuk mencapai posisi ke-k | O(1) lewat indeks |\n| Tata letak di memori | Tersebar, disambung pointer | Berurutan, mengikuti indeks |\n\nTidak ada yang menang secara umum. Pilihannya tergantung apa yang paling sering kamu kerjakan di program.\n\n## Node dan Implementasi Sederhana\n\nNode adalah bagian utamanya, jadi dia dapat class sendiri. Isinya field `data` dan field `next`, yaitu pointer ke node berikutnya. Di Java, pointer itu tidak lain adalah referensi objek biasa.\n\nUntuk list sederhana, yang perlu kamu simpan cuma referensi ke `head`. Itu pintu masuk ke seluruh node lain. Menyimpan referensi ke `tail` sifatnya opsional, walau sering dipakai supaya menambah data di ujung jadi lebih mudah.\n\nProgram berikut menyusun list 1, 2, 3, 4, lalu mencetak isinya dengan mulai dari `head` dan mengikuti `next` sampai bertemu null:\n\n```java\npublic class SimpleLinkedList {\n  static class Node {\n    int data;\n    Node next;\n\n    Node(int data) {\n      this.data = data;\n    }\n  }\n\n  public static void main(String[] args) {\n    Node head = new Node(1);\n    head.next = new Node(2);\n    head.next.next = new Node(3);\n    head.next.next.next = new Node(4);\n\n    for (Node current = head; current != null; current = current.next) {\n      System.out.println(current.data);\n    }\n  }\n}\n```\n\nSudah dicoba compile dan jalankan dengan javac 21, hasilnya:\n\n```plain\n1\n2\n3\n4\n```\n\nPerulangannya sama sekali tidak memakai indeks. Yang diikuti cuma pointer, dan itulah penelusuran O(k) dari bagian sebelumnya.\n\n## Selanjutnya\n\nPada artikel berikutnya, singly linked list dibuat dengan rapi: node, class pembungkusnya, dan method yang bekerja di atas list.\n\nSelamat berkoding ria 👋\n","- Linked list adalah rantai linear berisi node, dan setiap node menyimpan data plus pointer ke node berikutnya.\n- Mengakses posisi ke-k butuh O(k) karena harus menelusuri dari head, sementara array bisa langsung ke indeks mana pun dengan O(1).\n- Ongkos tumbuh adalah harga yang ditukar: linked list bisa menambah node satu per satu, sedangkan panjang array tetap sejak dideklarasikan.\n- Setiap node membawa satu pointer tambahan, jadi memori per elemen lebih besar daripada array.","\u003Cp>Linked list menyimpan kumpulan data sebagai rantai objek kecil, bukan sebagai satu blok memori. Artikel ini membahas rantai itu, perbandingannya dengan array, dan implementasi paling sederhana yang bisa kamu jalankan sendiri.\u003C\u002Fp>\n\u003Ch2 id=\"tentang-linked-list\">Tentang Linked List\u003C\u002Fh2>\n\u003Cp>Linked list adalah rantai linear berisi \u003Ccode>node\u003C\u002Fcode>. Setiap node menyimpan dua hal: \u003Cstrong>data\u003C\u002Fstrong> dan \u003Cstrong>pointer\u003C\u002Fstrong> ke node berikutnya.\u003C\u002Fp>\n\u003Cp>Struktur ini disebut linear karena setiap node merujuk tepat ke satu node lain. Kalau digambarkan, bentuknya mirip ular: satu ruas mengikuti ruas berikutnya, tanpa cabang.\u003C\u002Fp>\n\u003Cp>Untuk membaca isinya dibutuhkan titik mulai. Titik itu disebut node \u003Cem>head\u003C\u002Fem>. Tidak ada yang merujuk ke \u003Ccode>head\u003C\u002Fcode>, dan \u003Ccode>head\u003C\u002Fcode> merujuk ke node berikutnya.\u003C\u002Fp>\n\u003Cp>Ujung sebaliknya disebut \u003Cem>tail\u003C\u002Fem>. Node lain merujuk ke \u003Ccode>tail\u003C\u002Fcode>, tapi \u003Ccode>tail\u003C\u002Fcode> tidak merujuk ke mana pun.\u003C\u002Fp>\n\u003Cp>Ada tiga jenis yang umum: singly, doubly, dan circular linked list. Pembahasannya menyusul.\u003C\u002Fp>\n\u003Ch2 id=\"kenapa-tidak-pakai-array\">Kenapa Tidak Pakai Array?\u003C\u002Fh2>\n\u003Cp>Array dan linked list punya tugas yang sama, yaitu menyimpan kumpulan data. Bedanya di cara data itu ditata di memori.\u003C\u002Fp>\n\u003Cp>Array bersifat \u003Cstrong>berurutan\u003C\u002Fstrong>. Elemennya duduk berdampingan, jadi elemen mana pun bisa kamu capai lewat indeks dalam O(1). Batasnya, panjang array tetap sejak kamu mendeklarasikannya.\u003C\u002Fp>\n\u003Cp>Linked list bersifat \u003Cstrong>tersebar\u003C\u002Fstrong>. Node-nya bisa berada di mana saja di memori, dan pointer yang menyambungnya. Karena itu list bisa tumbuh node demi node. Batasnya, mencapai posisi ke-k berarti menelusuri k node dari \u003Ccode>head\u003C\u002Fcode>, yaitu O(k).\u003C\u002Fp>\n\u003Cp>Memori per elemen juga lebih besar, karena setiap node menyimpan satu pointer tambahan di samping datanya.\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Aspek\u003C\u002Fth>\n\u003Cth>Linked list\u003C\u002Fth>\n\u003Cth>Array\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>Ukuran\u003C\u002Ftd>\n\u003Ctd>Bisa tumbuh node demi node\u003C\u002Ftd>\n\u003Ctd>Tetap sejak dideklarasikan\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Waktu akses\u003C\u002Ftd>\n\u003Ctd>O(k), menelusuri k node untuk mencapai posisi ke-k\u003C\u002Ftd>\n\u003Ctd>O(1) lewat indeks\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Tata letak di memori\u003C\u002Ftd>\n\u003Ctd>Tersebar, disambung pointer\u003C\u002Ftd>\n\u003Ctd>Berurutan, mengikuti indeks\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Cp>Tidak ada yang menang secara umum. Pilihannya tergantung apa yang paling sering kamu kerjakan di program.\u003C\u002Fp>\n\u003Ch2 id=\"node-dan-implementasi-sederhana\">Node dan Implementasi Sederhana\u003C\u002Fh2>\n\u003Cp>Node adalah bagian utamanya, jadi dia dapat class sendiri. Isinya field \u003Ccode>data\u003C\u002Fcode> dan field \u003Ccode>next\u003C\u002Fcode>, yaitu pointer ke node berikutnya. Di Java, pointer itu tidak lain adalah referensi objek biasa.\u003C\u002Fp>\n\u003Cp>Untuk list sederhana, yang perlu kamu simpan cuma referensi ke \u003Ccode>head\u003C\u002Fcode>. Itu pintu masuk ke seluruh node lain. Menyimpan referensi ke \u003Ccode>tail\u003C\u002Fcode> sifatnya opsional, walau sering dipakai supaya menambah data di ujung jadi lebih mudah.\u003C\u002Fp>\n\u003Cp>Program berikut menyusun list 1, 2, 3, 4, lalu mencetak isinya dengan mulai dari \u003Ccode>head\u003C\u002Fcode> dan mengikuti \u003Ccode>next\u003C\u002Fcode> sampai bertemu null:\u003C\u002Fp>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">JAVA\u003C\u002Fspan>\n    \u003C\u002Fdiv>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"public%20class%20SimpleLinkedList%20%7B%0A%20%20static%20class%20Node%20%7B%0A%20%20%20%20int%20data%3B%0A%20%20%20%20Node%20next%3B%0A%0A%20%20%20%20Node(int%20data)%20%7B%0A%20%20%20%20%20%20this.data%20%3D%20data%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20public%20static%20void%20main(String%5B%5D%20args)%20%7B%0A%20%20%20%20Node%20head%20%3D%20new%20Node(1)%3B%0A%20%20%20%20head.next%20%3D%20new%20Node(2)%3B%0A%20%20%20%20head.next.next%20%3D%20new%20Node(3)%3B%0A%20%20%20%20head.next.next.next%20%3D%20new%20Node(4)%3B%0A%0A%20%20%20%20for%20(Node%20current%20%3D%20head%3B%20current%20!%3D%20null%3B%20current%20%3D%20current.next)%20%7B%0A%20%20%20%20%20%20System.out.println(current.data)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D\" title=\"Salin kode\">\n      \u003Csvg class=\"w-3.5 h-3.5 copy-icon-svg\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n        \u003Cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\">\u003C\u002Fpath>\n      \u003C\u002Fsvg>\n      \u003Cspan class=\"copy-text\">Copy\u003C\u002Fspan>\n    \u003C\u002Fbutton>\n  \u003C\u002Fdiv>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\">\u003Ccode>public class SimpleLinkedList {\n  static class Node {\n    int data;\n    Node next;\n\n    Node(int data) {\n      this.data = data;\n    }\n  }\n\n  public static void main(String[] args) {\n    Node head = new Node(1);\n    head.next = new Node(2);\n    head.next.next = new Node(3);\n    head.next.next.next = new Node(4);\n\n    for (Node current = head; current != null; current = current.next) {\n      System.out.println(current.data);\n    }\n  }\n}\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Sudah dicoba compile dan jalankan dengan javac 21, hasilnya:\u003C\u002Fp>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">PLAIN\u003C\u002Fspan>\n    \u003C\u002Fdiv>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"1%0A2%0A3%0A4\" title=\"Salin kode\">\n      \u003Csvg class=\"w-3.5 h-3.5 copy-icon-svg\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n        \u003Cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\">\u003C\u002Fpath>\n      \u003C\u002Fsvg>\n      \u003Cspan class=\"copy-text\">Copy\u003C\u002Fspan>\n    \u003C\u002Fbutton>\n  \u003C\u002Fdiv>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\">\u003Ccode>1\n2\n3\n4\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Perulangannya sama sekali tidak memakai indeks. Yang diikuti cuma pointer, dan itulah penelusuran O(k) dari bagian sebelumnya.\u003C\u002Fp>\n\u003Ch2 id=\"selanjutnya\">Selanjutnya\u003C\u002Fh2>\n\u003Cp>Pada artikel berikutnya, singly linked list dibuat dengan rapi: node, class pembungkusnya, dan method yang bekerja di atas list.\u003C\u002Fp>\n\u003Cp>Selamat berkoding ria 👋\u003C\u002Fp>\n","\u003Cul>\n\u003Cli>Linked list adalah rantai linear berisi node, dan setiap node menyimpan data plus pointer ke node berikutnya.\u003C\u002Fli>\n\u003Cli>Mengakses posisi ke-k butuh O(k) karena harus menelusuri dari head, sementara array bisa langsung ke indeks mana pun dengan O(1).\u003C\u002Fli>\n\u003Cli>Ongkos tumbuh adalah harga yang ditukar: linked list bisa menambah node satu per satu, sedangkan panjang array tetap sejak dideklarasikan.\u003C\u002Fli>\n\u003Cli>Setiap node membawa satu pointer tambahan, jadi memori per elemen lebih besar daripada array.\u003C\u002Fli>\n\u003C\u002Ful>\n",[127,132,149,167,184,204],{"id":74,"title":95,"title_id":75,"slug":76,"excerpt":96,"excerpt_id":77,"has_translation":12,"published_at":78,"reading_time":79,"hidden_from_listing":15,"tags":80,"thumbnail_image":21,"og_image":85,"series":128,"authors":129},{"id":87,"title":88,"title_id":89,"slug":90},[130],{"authors_id":131},{"id":101,"name":102,"slug":103,"role":104,"profile_picture":21},{"id":133,"title":134,"title_id":135,"slug":136,"excerpt":137,"excerpt_id":138,"has_translation":12,"published_at":139,"reading_time":140,"hidden_from_listing":15,"tags":141,"thumbnail_image":21,"og_image":144,"series":145,"authors":146},47,"Why Understanding Algorithms and Data Structures Actually Matters","Pentingnya Memahami Algoritma dan Struktur Data","pentingnya-memahami-algoritma-dan-struktur-data","An algorithm is an ordered list of steps, and that order decides how expensive a problem is. The examples are on the back of an instant noodle packet, in a factorial, and behind ctrl+z.","Sebagai konsep fundamental, algoritma menentukan seberapa mahal sebuah masalah diselesaikan. Contohnya ada di bungkus mie instan, di bilangan faktorial, dan di tombol undo.","2026-11-19T01:00:00.000Z",7,[142,81,84,143],"algoritma","dasar","\u002Fog\u002Fpentingnya-memahami-algoritma-dan-struktur-data.png",{"id":111,"title":112,"title_id":113,"slug":114},[147],{"authors_id":148},{"id":101,"name":102,"slug":103,"role":104,"profile_picture":21},{"id":150,"title":151,"title_id":152,"slug":153,"excerpt":154,"excerpt_id":155,"has_translation":12,"published_at":156,"reading_time":14,"hidden_from_listing":15,"tags":157,"thumbnail_image":21,"og_image":162,"series":163,"authors":164},108,"At 11 a.m. the AI Quota Runs Out, and the Work Stops There","Jam 11 siang kuota AI-nya habis, dan kerjaan berhenti di situ","jam-11-kuota-ai-habis-kerjaan-berhenti","The panel says the usage limit is reached and the work stops, not because it is finished. Three guesses explain it, and all three are wrong: the limit is shaped like a cliff, and the day is built on top of one tool.","Panel di layar bilang batas pemakaian tercapai, dan kerja berhenti di situ. Bukan karena selesai. Ada tiga tebakan kenapa ini terjadi, dan ketiganya salah: batasnya berbentuk tebing, dan harinya dibangun di atas satu alat.","2026-11-12T01:00:00.000Z",[158,159,160,161],"ai","tooling","rate-limit","produktivitas","\u002Fog\u002Fjam-11-kuota-ai-habis-kerjaan-berhenti.png",{"id":24,"title":25,"title_id":26,"slug":27},[165],{"authors_id":166},{"id":101,"name":102,"slug":103,"role":104,"profile_picture":21},{"id":168,"title":169,"title_id":170,"slug":171,"excerpt":172,"excerpt_id":173,"has_translation":12,"published_at":174,"reading_time":14,"hidden_from_listing":15,"tags":175,"thumbnail_image":21,"og_image":178,"series":179,"authors":181},139,"Python Classes: the History Every Account Shared","Python Class: Riwayat yang Dipakai Bersama Semua Akun","python-class-object","Two accounts, and each history lists the other account's deposits. The list sat in the class body, `append` never writes to the object, so both accounts appended into the same one.","Dua akun, dan riwayat masing-masing memuat setoran akun lain. List-nya duduk di body class, `append` tidak pernah menulis ke objek, jadi kedua akun menambah ke list yang sama.","2026-11-07T01:00:00.000Z",[176,177],"python","oop","\u002Fog\u002Fpython-class-object.png",{"id":180,"title":52,"title_id":53,"slug":54},10,[182],{"authors_id":183},{"id":101,"name":102,"slug":103,"role":104,"profile_picture":21},{"id":185,"title":186,"title_id":187,"slug":188,"excerpt":189,"excerpt_id":190,"has_translation":12,"published_at":191,"reading_time":14,"hidden_from_listing":15,"tags":192,"thumbnail_image":21,"og_image":195,"series":196,"authors":201},137,"Java Operators: the Average That Came Out a Whole Number","Operator Java: Rata-Rata yang Keluar Sebagai Bilangan Bulat","java-operators","Three scores, one division, and the average prints as 82. Both operands are `int`, so the fraction is cut off, and the obvious cast prints `82.0` without fixing anything.","Tiga nilai, satu pembagian, dan rata-ratanya tercetak 82. Kedua operand-nya `int`, jadi pecahannya dipotong, dan cast yang paling wajar malah mencetak `82.0` tanpa memperbaiki apa pun.","2026-11-06T01:00:00.000Z",[193,194],"java","operator","\u002Fog\u002Fjava-operators.png",{"id":197,"title":198,"title_id":199,"slug":200},22,"Variables, Types, and Operations","Variabel, Tipe Data, dan Operasi","java-variabel-tipe-data",[202],{"authors_id":203},{"id":101,"name":102,"slug":103,"role":104,"profile_picture":21},{"id":205,"title":206,"title_id":207,"slug":208,"excerpt":209,"excerpt_id":210,"has_translation":12,"published_at":191,"reading_time":140,"hidden_from_listing":15,"tags":211,"thumbnail_image":21,"og_image":213,"series":214,"authors":219},136,"Python Modules: the Import That Printed the Report","Modul Python: Import yang Mencetak Laporannya","python-modules","You pull one function out into its own file, import it, and the whole report runs again and eats your input. A module is a file, `import` runs it top to bottom, and one line decides which of the two jobs it is doing.","Kamu memindahkan satu fungsi ke file sendiri, meng-import-nya, dan seluruh laporan jalan lagi lalu memakan inputmu. Modul adalah file, `import` menjalankannya dari atas ke bawah, dan satu baris menentukan pekerjaan mana yang sedang dijalankan file itu.",[176,212],"modules","\u002Fog\u002Fpython-modules.png",{"id":215,"title":216,"title_id":217,"slug":218},18,"Working with Python Scripts","Menggunakan Script Python","python-pemrograman-dengan-script",[220],{"authors_id":221},{"id":101,"name":102,"slug":103,"role":104,"profile_picture":21},[223,227,230,233],{"text":224,"depth":225,"id":226},"Tentang Linked List",2,"tentang-linked-list",{"text":228,"depth":225,"id":229},"Kenapa Tidak Pakai Array?","kenapa-tidak-pakai-array",{"text":231,"depth":225,"id":232},"Node dan Implementasi Sederhana","node-dan-implementasi-sederhana",{"text":234,"depth":225,"id":235},"Selanjutnya","selanjutnya",1794029326172]