{"id":74,"date":"2011-04-07T06:10:32","date_gmt":"2011-04-07T06:10:32","guid":{"rendered":"http:\/\/blog.elkom08.x10.bz\/?p=74"},"modified":"2026-11-14T22:08:07","modified_gmt":"2026-11-14T14:08:07","slug":"single-dan-double-orderedlinkedlist-di-java","status":"publish","type":"post","link":"https:\/\/zaf.web.id\/blog\/single-dan-double-orderedlinkedlist-di-java\/","title":{"rendered":"Single dan Double OrderedLinkedList di java"},"content":{"rendered":"<p>Iseng posting tentang linkedlist java, mumpung sedang belajar itu juga di Algoritma dan Struktur Data. Itung itung menuhin blog juga ^_^<br \/>\nlangsung aja, berikut listing programnya :<\/p>\n<p>yg ini untuk file <strong>Node.java<\/strong><\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-java\" data-file=\"Node.java\" data-lang=\"Java\"><code>public class Node {\n\n    int data;\n    Node next;\n    Node prev;\n    Node(int id){\n        data=id;\n    }\n}<\/code><\/pre>\n<\/div>\n<p>file <strong>AddtLinkedList.java<\/strong><\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-java\" data-file=\"AddtLinkedList.java\" data-lang=\"Java\"><code>public class AddtLinkedList {\n\n    static boolean kosongCek(Node head){\n        return (head==null);\n    }\n    static void tukar(Node nd1, Node nd2){\n        Node tmp = new Node(nd1.data);\n        nd1.data=nd2.data;\n        nd2.data=tmp.data;\n    }\n    static void tampil(Node head){\n        Node current=head;\n        while(current!=null){\n            System.out.print(current.data+\" \");\n            current=current.next;\n        }\n        System.out.println();\n    }\n    static void tampil(Node head, Node tail, String a){\n        if (a==\"maju\"){\n            Node current=head;\n            while(current!=null){\n                System.out.print(current.data+\" \");\n                current=current.next;\n            }\n            System.out.println();\n        } else if (a==\"mundur\"){\n            Node current=tail;\n            while(current!=null){\n                System.out.print(current.data+\" \");\n                current=current.prev;\n            }\n            System.out.println();\n        }\n\n    }\n}<\/code><\/pre>\n<\/div>\n<p><!--more--><br \/>\nfile <strong>OrderedList.java<\/strong><\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-java\" data-file=\"OrderedList.java\" data-lang=\"Java\"><code>public class OrderedList {\n    int jumlah;\n    Node head, tail, current;\n    OrderedList(){\n        head=tail=current=null;\n        jumlah=0;\n    }\n    void tambahAwal(int data){\n        Node nd = new Node(data);\n        if (AddtLinkedList.kosongCek(head)){\n            head=tail=nd;\n        } else {\n            nd.next=head;\n            head=nd;\n        }\n        jumlah++;\n    }\n    void tambahAkhir(int data){\n        Node nd = new Node(data);\n        if(AddtLinkedList.kosongCek(head)){\n            head=tail=nd;\n        } else {\n            tail.next=nd;\n            tail=nd;\n        }\n        jumlah++;\n    }\n    void tambahTengah(int data, int posisi){\n        Node nd = new Node(data);\n        if(AddtLinkedList.kosongCek(head)){\n            head=tail=nd;\n        } else if (posisi&gt;jumlah){\n            System.out.println(\"Posisi melebihi jumlah node, maka data di letakkan paling akhir!\");\n            tambahAkhir(data);\n        } else {\n            current=head;\n            int i=1;\n            while(i&lt;(posisi-1)){\n                current=current.next;\n                i++;\n            }\n            nd.next=current.next;\n            current.next=nd;\n        }\n        jumlah++;\n    }\n    void hapusTengah(int posisi){\n        if(AddtLinkedList.kosongCek(head)){\n            System.out.println(\"List masih kosong!\");\n        } else if (posisi&gt;jumlah){\n            System.out.println(\"Di luar jangkauan!\");\n        } else {\n            current=head;\n            int i=1;\n            while(i&lt;(posisi-1)){\n                current=current.next;\n                i++;\n            }\n            current.next=current.next.next;\n        }\n        jumlah--;\n    }\n    Node getHead(){\n        return head;\n    }\n    Node getTail(){\n        return tail;\n    }\n    int getJumlah(){\n        return jumlah;\n    }\n}<\/code><\/pre>\n<\/div>\n<p>file <strong>DoubleOrderedList.java<\/strong><\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-java\" data-file=\"DoubleOrderedList.java\" data-lang=\"Java\"><code>public class DoubleOrderedList {\n    int jumlah;\n    Node head, tail, current;\n    DoubleOrderedList(){\n        head=tail=current=null;\n        jumlah=0;\n    }\n    void tambahAwal(int data){\n        Node nd = new Node(data);\n        if (AddtLinkedList.kosongCek(head)){\n            head=tail=nd;\n        } else {\n            nd.next=head;\n            head.prev=nd;\n            head=nd;\n        }\n        jumlah++;\n    }\n    void tambahAkhir(int data){\n        Node nd = new Node(data);\n        if(AddtLinkedList.kosongCek(head)){\n            head=tail=nd;\n        } else {\n            tail.next=nd;\n            nd.prev=tail;\n            tail=nd;\n        }\n        jumlah++;\n    }\n    void tambahTengah(int data, int posisi){\n        Node nd = new Node(data);\n        if(AddtLinkedList.kosongCek(head)){\n            head=tail=nd;\n        } else if (posisi&gt;jumlah){\n            System.out.println(\"Posisi melebihi jumlah node, maka data di letakkan paling akhir!\");\n            tambahAkhir(data);\n        } else {\n            current=head;\n            int i=1;\n            while(i&lt;(posisi-1)){\n                current=current.next;\n                i++;\n            }\n            nd.next=current.next;\n            nd.prev=current;\n            current.next.prev=nd;\n            current.next=nd;\n        }\n        jumlah++;\n    }\n    void hapusTengah(int posisi){\n        if(AddtLinkedList.kosongCek(head)){\n            System.out.println(\"List masih kosong!\");\n        } else if (posisi&gt;jumlah){\n            System.out.println(\"Di luar jangkauan!\");\n        } else {\n            current=head;\n            int i=1;\n            while(i&lt;(posisi-1)){\n                current=current.next;\n                i++;\n            }\n            current.next=current.next.next;\n            current.next.prev=current;\n        }\n        jumlah--;\n    }\n    Node getHead(){\n        return head;\n    }\n    Node getTail(){\n        return tail;\n    }\n    int getJumlah(){\n        return jumlah;\n    }\n}<\/code><\/pre>\n<\/div>\n<p>file <strong>Main.java<\/strong><\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-java\" data-file=\"Main.java\" data-lang=\"Java\"><code>public class Main {\n\n    public static void main (String args[]) {\n\n        OrderedList ol = new OrderedList();\n        System.out.println(\"list awal...\");\n        ol.tambahAwal(3);\n        ol.tambahAkhir(5);\n        ol.tambahAkhir(7);\n        ol.tambahAkhir(9);\n        ol.tambahAkhir(0);\n        AddtLinkedList.tampil(ol.getHead());\n        System.out.println(\"disisipkan 4 pada posisi ke-2...\");\n        ol.tambahTengah(4, 2);\n        AddtLinkedList.tampil(ol.getHead());\n\n        DoubleOrderedList dol = new DoubleOrderedList();\n        System.out.println(\"list awal...\");\n        dol.tambahAwal(3);\n        dol.tambahAkhir(5);\n        dol.tambahAkhir(7);\n        dol.tambahAkhir(9);\n        dol.tambahAkhir(0);\n        AddtLinkedList.tampil(dol.getHead(), dol.getTail(), \"maju\");\n        System.out.println(\"disisipkan 4 pada posisi ke-2...\");\n        dol.tambahTengah(4, 2);\n        AddtLinkedList.tampil(dol.getHead(), dol.getTail(), \"maju\");\n    }\n}<\/code><\/pre>\n<\/div>\n<p>untuk method method yang lain tinggal di masukkan sendiri \ud83d\ude00<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Iseng posting tentang linkedlist java, mumpung sedang belajar itu juga di Algoritma dan Struktur Data.&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_hide_featured_image":false,"_jetpack_featured_image_duplicate_dismissed":0,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[57],"tags":[87,92,102,105,106],"class_list":["post-74","post","type-post","status-publish","format-standard","hentry","category-programming","tag-algoritma-dan-struktur-data","tag-double-linked-list","tag-linkedlist","tag-oop","tag-pbo"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Single dan Double OrderedLinkedList di java - Ahmad Zafrullah<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/zaf.web.id\/blog\/single-dan-double-orderedlinkedlist-di-java\/\" \/>\n<meta property=\"og:locale\" content=\"id_ID\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Single dan Double OrderedLinkedList di java - Ahmad Zafrullah\" \/>\n<meta property=\"og:description\" content=\"Iseng posting tentang linkedlist java, mumpung sedang belajar itu juga di Algoritma dan Struktur Data.&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zaf.web.id\/blog\/single-dan-double-orderedlinkedlist-di-java\/\" \/>\n<meta property=\"og:site_name\" content=\"Ahmad Zafrullah\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/www.facebook.com\/23Pstars\" \/>\n<meta property=\"article:author\" content=\"http:\/\/www.facebook.com\/23Pstars\" \/>\n<meta property=\"article:published_time\" content=\"2011-04-07T06:10:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-11-14T14:08:07+00:00\" \/>\n<meta name=\"author\" content=\"Zaf\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@23Pstars\" \/>\n<meta name=\"twitter:site\" content=\"@23Pstars\" \/>\n<meta name=\"twitter:label1\" content=\"Ditulis oleh\" \/>\n\t<meta name=\"twitter:data1\" content=\"Zaf\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimasi waktu membaca\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 menit\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/single-dan-double-orderedlinkedlist-di-java\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/single-dan-double-orderedlinkedlist-di-java\\\/\"},\"author\":{\"name\":\"Zaf\",\"@id\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/#\\\/schema\\\/person\\\/ba4e955d59a1e6a8284857e74b14e5ed\"},\"headline\":\"Single dan Double OrderedLinkedList di java\",\"datePublished\":\"2011-04-07T06:10:32+00:00\",\"dateModified\":\"2026-11-14T14:08:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/single-dan-double-orderedlinkedlist-di-java\\\/\"},\"wordCount\":59,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/#\\\/schema\\\/person\\\/ba4e955d59a1e6a8284857e74b14e5ed\"},\"keywords\":[\"algoritma dan struktur data\",\"double linked list\",\"linkedlist\",\"oop\",\"pbo\"],\"articleSection\":[\"Programming\"],\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/zaf.web.id\\\/blog\\\/single-dan-double-orderedlinkedlist-di-java\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/single-dan-double-orderedlinkedlist-di-java\\\/\",\"url\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/single-dan-double-orderedlinkedlist-di-java\\\/\",\"name\":\"Single dan Double OrderedLinkedList di java - Ahmad Zafrullah\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/#website\"},\"datePublished\":\"2011-04-07T06:10:32+00:00\",\"dateModified\":\"2026-11-14T14:08:07+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/single-dan-double-orderedlinkedlist-di-java\\\/#breadcrumb\"},\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/zaf.web.id\\\/blog\\\/single-dan-double-orderedlinkedlist-di-java\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/single-dan-double-orderedlinkedlist-di-java\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Single dan Double OrderedLinkedList di java\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/\",\"name\":\"Ahmad Zafrullah\",\"description\":\"Work to Learn is better than Learn how to Work\",\"publisher\":{\"@id\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/#\\\/schema\\\/person\\\/ba4e955d59a1e6a8284857e74b14e5ed\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"id\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/#\\\/schema\\\/person\\\/ba4e955d59a1e6a8284857e74b14e5ed\",\"name\":\"Zaf\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\\\/\\\/i0.wp.com\\\/zaf.web.id\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/zaf_auto_x2.jpeg?fit=300%2C300&ssl=1\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/zaf.web.id\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/zaf_auto_x2.jpeg?fit=300%2C300&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/zaf.web.id\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/zaf_auto_x2.jpeg?fit=300%2C300&ssl=1\",\"width\":300,\"height\":300,\"caption\":\"Zaf\"},\"logo\":{\"@id\":\"https:\\\/\\\/i0.wp.com\\\/zaf.web.id\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/zaf_auto_x2.jpeg?fit=300%2C300&ssl=1\"},\"sameAs\":[\"http:\\\/\\\/zaf.web.id\",\"http:\\\/\\\/www.facebook.com\\\/23Pstars\",\"https:\\\/\\\/x.com\\\/23Pstars\"],\"url\":\"https:\\\/\\\/zaf.web.id\\\/blog\\\/author\\\/zaf\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Single dan Double OrderedLinkedList di java - Ahmad Zafrullah","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/zaf.web.id\/blog\/single-dan-double-orderedlinkedlist-di-java\/","og_locale":"id_ID","og_type":"article","og_title":"Single dan Double OrderedLinkedList di java - Ahmad Zafrullah","og_description":"Iseng posting tentang linkedlist java, mumpung sedang belajar itu juga di Algoritma dan Struktur Data.&hellip;","og_url":"https:\/\/zaf.web.id\/blog\/single-dan-double-orderedlinkedlist-di-java\/","og_site_name":"Ahmad Zafrullah","article_publisher":"http:\/\/www.facebook.com\/23Pstars","article_author":"http:\/\/www.facebook.com\/23Pstars","article_published_time":"2011-04-07T06:10:32+00:00","article_modified_time":"2026-11-14T14:08:07+00:00","author":"Zaf","twitter_card":"summary_large_image","twitter_creator":"@23Pstars","twitter_site":"@23Pstars","twitter_misc":{"Ditulis oleh":"Zaf","Estimasi waktu membaca":"3 menit"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/zaf.web.id\/blog\/single-dan-double-orderedlinkedlist-di-java\/#article","isPartOf":{"@id":"https:\/\/zaf.web.id\/blog\/single-dan-double-orderedlinkedlist-di-java\/"},"author":{"name":"Zaf","@id":"https:\/\/zaf.web.id\/blog\/#\/schema\/person\/ba4e955d59a1e6a8284857e74b14e5ed"},"headline":"Single dan Double OrderedLinkedList di java","datePublished":"2011-04-07T06:10:32+00:00","dateModified":"2026-11-14T14:08:07+00:00","mainEntityOfPage":{"@id":"https:\/\/zaf.web.id\/blog\/single-dan-double-orderedlinkedlist-di-java\/"},"wordCount":59,"commentCount":0,"publisher":{"@id":"https:\/\/zaf.web.id\/blog\/#\/schema\/person\/ba4e955d59a1e6a8284857e74b14e5ed"},"keywords":["algoritma dan struktur data","double linked list","linkedlist","oop","pbo"],"articleSection":["Programming"],"inLanguage":"id","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/zaf.web.id\/blog\/single-dan-double-orderedlinkedlist-di-java\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/zaf.web.id\/blog\/single-dan-double-orderedlinkedlist-di-java\/","url":"https:\/\/zaf.web.id\/blog\/single-dan-double-orderedlinkedlist-di-java\/","name":"Single dan Double OrderedLinkedList di java - Ahmad Zafrullah","isPartOf":{"@id":"https:\/\/zaf.web.id\/blog\/#website"},"datePublished":"2011-04-07T06:10:32+00:00","dateModified":"2026-11-14T14:08:07+00:00","breadcrumb":{"@id":"https:\/\/zaf.web.id\/blog\/single-dan-double-orderedlinkedlist-di-java\/#breadcrumb"},"inLanguage":"id","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zaf.web.id\/blog\/single-dan-double-orderedlinkedlist-di-java\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/zaf.web.id\/blog\/single-dan-double-orderedlinkedlist-di-java\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zaf.web.id\/blog\/"},{"@type":"ListItem","position":2,"name":"Single dan Double OrderedLinkedList di java"}]},{"@type":"WebSite","@id":"https:\/\/zaf.web.id\/blog\/#website","url":"https:\/\/zaf.web.id\/blog\/","name":"Ahmad Zafrullah","description":"Work to Learn is better than Learn how to Work","publisher":{"@id":"https:\/\/zaf.web.id\/blog\/#\/schema\/person\/ba4e955d59a1e6a8284857e74b14e5ed"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/zaf.web.id\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"id"},{"@type":["Person","Organization"],"@id":"https:\/\/zaf.web.id\/blog\/#\/schema\/person\/ba4e955d59a1e6a8284857e74b14e5ed","name":"Zaf","image":{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2024\/09\/zaf_auto_x2.jpeg?fit=300%2C300&ssl=1","url":"https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2024\/09\/zaf_auto_x2.jpeg?fit=300%2C300&ssl=1","contentUrl":"https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2024\/09\/zaf_auto_x2.jpeg?fit=300%2C300&ssl=1","width":300,"height":300,"caption":"Zaf"},"logo":{"@id":"https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2024\/09\/zaf_auto_x2.jpeg?fit=300%2C300&ssl=1"},"sameAs":["http:\/\/zaf.web.id","http:\/\/www.facebook.com\/23Pstars","https:\/\/x.com\/23Pstars"],"url":"https:\/\/zaf.web.id\/blog\/author\/zaf\/"}]}},"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":1048,"url":"https:\/\/zaf.web.id\/blog\/ketika-ddos-menyerang\/","url_meta":{"origin":74,"position":0},"title":"Ketika DDoS menyerang","author":"Zaf","date":"April 1, 2017","format":false,"excerpt":"Mengelola server merupakan pekerjaan yang tidak\u00a0selalu mudah. Sesuatu\u00a0yang sifatnya open public pastinya memiliki banyak ancaman yang tidak pernah dapat ditebak kapan datangnya. Berapa tahun terakhir saya bertugas untuk mengelola beberapa server\u00a0yang\u00a0menaungi cukup banyak website, mulai dari bisnis, personal, iseng, sampai yang tidak penting. DigitalOcean Sejauh ini layanan VPS (Virtual Private\u2026","rel":"","context":"dalam &quot;Server&quot;","block_context":{"text":"Server","link":"https:\/\/zaf.web.id\/blog\/category\/server\/"},"img":{"alt_text":"DDoS everywhere","src":"https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2017\/03\/ddos-ddos-everywhere.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2017\/03\/ddos-ddos-everywhere.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2017\/03\/ddos-ddos-everywhere.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":1324,"url":"https:\/\/zaf.web.id\/blog\/domain-lokal-menggunakan-virtual-host-di-apache\/","url_meta":{"origin":74,"position":1},"title":"Domain Lokal menggunakan Virtual Host di Apache","author":"Zaf","date":"November 24, 2018","format":false,"excerpt":"Web developer pastinya tidak asing lagi dengan alamat 127.0.0.1 a.k.a localhost. 127.0.0.1 maupun localhost merujuk pada suatu alamat pada mesin komputer kita, atau biasa disebut dengan host, disanalah si Apache biasanya bersarang. Untuk project yang sifatnya masih development biasanya akan menggunakan alamat tersebut. Hanya saja akan ada kendala dimana dalam\u2026","rel":"","context":"dalam &quot;Coretan&quot;","block_context":{"text":"Coretan","link":"https:\/\/zaf.web.id\/blog\/category\/coretan\/"},"img":{"alt_text":"Apache Web Server","src":"https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2018\/12\/apache-web-server-1024x423.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2018\/12\/apache-web-server-1024x423.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2018\/12\/apache-web-server-1024x423.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":2228,"url":"https:\/\/zaf.web.id\/blog\/ai-untuk-incident-response-malware\/","url_meta":{"origin":74,"position":2},"title":"Memakai AI untuk Incident Response Malware (dengan Batasan yang Aman)","author":"Zaf","date":"November 7, 2026","format":false,"excerpt":"Tulisan saya sebelumnya tentang tips keamanan siber disusun dengan bantuan AI. Kali ini saya ingin lebih teknis: bagaimana AI membantu ketika server benar-benar terinfeksi, dan di mana saya sengaja tidak menyerahkan kendali. Prinsip dasar AI saya perlakukan sebagai analis junior yang cepat membaca, bukan operator yang memegang root. Artinya, AI\u2026","rel":"","context":"dalam &quot;Security&quot;","block_context":{"text":"Security","link":"https:\/\/zaf.web.id\/blog\/category\/security\/"},"img":{"alt_text":"Ilustrasi manusia dan AI menganalisis log server bersama","src":"https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2026\/11\/Kolaborasi-manusia-dan-AI.jpg?fit=840%2C472&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2026\/11\/Kolaborasi-manusia-dan-AI.jpg?fit=840%2C472&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2026\/11\/Kolaborasi-manusia-dan-AI.jpg?fit=840%2C472&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2026\/11\/Kolaborasi-manusia-dan-AI.jpg?fit=840%2C472&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":642,"url":"https:\/\/zaf.web.id\/blog\/membuat-booking-form-widget-di-wordpress\/","url_meta":{"origin":74,"position":3},"title":"Membuat Booking Form Widget di WordPress","author":"Zaf","date":"September 19, 2015","format":false,"excerpt":"Kali ini saya akan coba membuat Booking Form Widget untuk Fastboat di WordPress, secara konsep sebetulnya hampir sama untuk penggunaan pada booking platform yang lain. Hanya saja untuk Fastboat kali ini menggunakan API dari Fastboat System yang sudah ada. Pertama-tama adalah membuat class untuk Widget yang akan dibuat didalam file\u2026","rel":"","context":"dalam &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/zaf.web.id\/blog\/category\/programming\/"},"img":{"alt_text":"Fastboat Booking","src":"https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2015\/09\/Screen-Shot-2015-09-17-at-3.19.46-PM1.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":2191,"url":"https:\/\/zaf.web.id\/blog\/pp-33-2026-uu-pdp-untuk-pengelola-server\/","url_meta":{"origin":74,"position":4},"title":"PP 33\/2026 dan UU PDP: Apa yang Harus Disiapkan Pengelola Server?","author":"Zaf","date":"September 29, 2026","format":false,"excerpt":"UU Pelindungan Data Pribadi (UU PDP) sudah berlaku penuh sejak Oktober 2024. Tahun ini pemerintah menerbitkan PP 33 Tahun 2026 sebagai aturan pelaksananya, dengan masa transisi enam bulan. Bagi kita yang mengurus server dan website, ini saat yang tepat untuk berbenah. Catatan: saya bukan praktisi hukum. Tulisan ini melihat dari\u2026","rel":"","context":"dalam &quot;Security&quot;","block_context":{"text":"Security","link":"https:\/\/zaf.web.id\/blog\/category\/security\/"},"img":{"alt_text":"Ilustrasi perlindungan data pribadi dan regulasi di server","src":"https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2026\/09\/AaDr8FVhlNDxUO7jB96c5A-AaDr8FVhdXHYrjA8PW0xfQ.jpg?fit=1200%2C674&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2026\/09\/AaDr8FVhlNDxUO7jB96c5A-AaDr8FVhdXHYrjA8PW0xfQ.jpg?fit=1200%2C674&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2026\/09\/AaDr8FVhlNDxUO7jB96c5A-AaDr8FVhdXHYrjA8PW0xfQ.jpg?fit=1200%2C674&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2026\/09\/AaDr8FVhlNDxUO7jB96c5A-AaDr8FVhdXHYrjA8PW0xfQ.jpg?fit=1200%2C674&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/zaf.web.id\/blog\/wp-content\/uploads\/2026\/09\/AaDr8FVhlNDxUO7jB96c5A-AaDr8FVhdXHYrjA8PW0xfQ.jpg?fit=1200%2C674&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":434,"url":"https:\/\/zaf.web.id\/blog\/implementasi-cipher-dengan-php\/","url_meta":{"origin":74,"position":5},"title":"Implementasi cipher dengan PHP","author":"Zaf","date":"April 4, 2011","format":false,"excerpt":"Kemarin kebetulan belajar keamanan informasi tentang enkripsi, dan di ajarkan beberapa enkripsi yaitu caesar cipher dan vigenere cipher. tiba tiba terfikir ingin mencoba membuat cipher dengan PHP, berhubung saya sedang menggemari bahasa tersebut. ya alhamdulillah setelah beberapa hari akhirnya jadi juga :D untuk menjelaskan programnya satu persatu, mungkin akan memakan\u2026","rel":"","context":"dalam &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/zaf.web.id\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_likes_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p4zLnS-1c","jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/zaf.web.id\/blog\/wp-json\/wp\/v2\/posts\/74","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zaf.web.id\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zaf.web.id\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zaf.web.id\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zaf.web.id\/blog\/wp-json\/wp\/v2\/comments?post=74"}],"version-history":[{"count":3,"href":"https:\/\/zaf.web.id\/blog\/wp-json\/wp\/v2\/posts\/74\/revisions"}],"predecessor-version":[{"id":2288,"href":"https:\/\/zaf.web.id\/blog\/wp-json\/wp\/v2\/posts\/74\/revisions\/2288"}],"wp:attachment":[{"href":"https:\/\/zaf.web.id\/blog\/wp-json\/wp\/v2\/media?parent=74"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zaf.web.id\/blog\/wp-json\/wp\/v2\/categories?post=74"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zaf.web.id\/blog\/wp-json\/wp\/v2\/tags?post=74"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}