[{"data":1,"prerenderedAt":295},["ShallowReactive",2],{"tag-labels":3,"site-header":4,"article-menggunakan-tipe-data-array-pada-pascal-id":72},{},{"featuredPost":5,"navigations":29},{"id":6,"title":7,"title_en":8,"slug":9,"excerpt":10,"excerpt_en":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,"Ketika Pilih Framework Cuma Biar Kelihatan Beda","When You Pick a Framework Just to Look Different","ketika-pilih-framework-cuma-biar-kelihatan-beda","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.","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.",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_en":26,"slug":27},9,"Artikel","Articles","all",[],[30,46,67],{"collection":31,"item":32},"series",{"__typename":31,"title":25,"title_en":26,"slug":27,"children_series":33},[34,38,42],{"title":35,"title_en":36,"slug":37},"Kecerdasan Artifisial","Artificial Intelligence","kecerdasan-artifisial",{"title":39,"title_en":40,"slug":41},"Konsep Dasar Pemrograman","Programming Fundamentals","konsep-dasar-pemrograman",{"title":43,"title_en":44,"slug":45},"Algoritma dan Struktur Data","Algorithms and Data Structures","algoritma-struktur-data",{"collection":31,"item":47},{"__typename":31,"title":48,"title_en":48,"slug":49,"children_series":50},"Tutorial","tutorial",[51,55,59,63],{"title":52,"title_en":53,"slug":54},"Belajar Python","Learning Python","belajar-python",{"title":56,"title_en":57,"slug":58},"Belajar Golang","Learning Go","belajar-golang",{"title":60,"title_en":61,"slug":62},"Belajar Java","Learning Java","belajar-java",{"title":64,"title_en":65,"slug":66},"Belajar Pascal","Learning Pascal","belajar-pascal",{"collection":31,"item":68},{"__typename":31,"title":69,"title_en":69,"slug":70,"children_series":71},"Lab","lab",[],{"article":73,"renderedBody":180,"renderedTakeaway":181,"latestArticles":182,"toc":282},{"id":74,"title":75,"title_en":76,"slug":77,"excerpt":78,"excerpt_en":79,"has_translation":12,"published_at":80,"reading_time":81,"hidden_from_listing":15,"tags":82,"thumbnail_image":21,"og_image":87,"series":88,"authors":173,"body_locale":176,"available_locales":177,"body":179,"takeway":21,"prerequisite":21},75,"Menggunakan Tipe Data Array pada Pascal","Using the Array Data Type in 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.","An ARRAY is a structure that holds a set of data with the same type, and you reach each item in it through its index.","2020-12-02T14:01:22.000Z",4,[83,84,85,86],"pascal","array","tipe-data","struktur-data","\u002Fog\u002Fmenggunakan-tipe-data-array-pada-pascal.png",{"id":89,"title":90,"title_en":91,"slug":92,"description":93,"description_en":94,"articles":95,"children_series":152,"parent_series":153},25,"Tipe Data Bentukan","Composite Types","pascal-tipe-data-bentukan","Tipe data racikan sendiri: record, array, sampai pointer yang sering bikin pusing di awal.","Types you build yourself: record, array, and the pointer that keeps confusing everyone at first.",[96,116,131,136],{"id":97,"title":98,"title_en":99,"slug":100,"excerpt":101,"excerpt_en":102,"has_translation":12,"published_at":103,"reading_time":104,"hidden_from_listing":15,"tags":105,"thumbnail_image":21,"og_image":107,"series":108,"authors":109},73,"Tentang Tipe Data Bentukan pada Pascal","User-Defined Data Types in Pascal","tentang-tipe-data-bentukan-pada-pascal","Tipe data bentukan atau User defined data types terbagi menjadi 2, yaitu Enumerated dan Subrange","User-defined data types in Pascal come in 2 kinds, Enumerated and Subrange, and you declare both of them yourself.","2020-11-22T13:49:03.000Z",3,[83,85,86,106],"konsep","\u002Fog\u002Ftentang-tipe-data-bentukan-pada-pascal.png",{"id":89,"title":90,"title_en":91,"slug":92},[110],{"authors_id":111},{"id":112,"name":113,"slug":114,"role":115,"profile_picture":21},1,"Daffa Izzuddin","izzudd","Writer",{"id":117,"title":118,"title_en":119,"slug":120,"excerpt":121,"excerpt_en":122,"has_translation":12,"published_at":123,"reading_time":104,"hidden_from_listing":15,"tags":124,"thumbnail_image":21,"og_image":126,"series":127,"authors":128},74,"Menggunakan Tipe Data RECORD pada Pascal","Using the RECORD Data Type in Pascal","menggunakan-tipe-data-record-pada-pascal","RECORD merupakan tipe data terstruktur pada bahasa Pascal yang terdiri dari kumpulan tipe data standar dan bentukan.","RECORD is a structured data type in Pascal, built from a collection of standard and user-defined data types.","2020-11-27T13:54:30.000Z",[83,125,85,86],"record","\u002Fog\u002Fmenggunakan-tipe-data-record-pada-pascal.png",{"id":89,"title":90,"title_en":91,"slug":92},[129],{"authors_id":130},{"id":112,"name":113,"slug":114,"role":115,"profile_picture":21},{"id":74,"title":75,"title_en":76,"slug":77,"excerpt":78,"excerpt_en":79,"has_translation":12,"published_at":80,"reading_time":81,"hidden_from_listing":15,"tags":82,"thumbnail_image":21,"og_image":87,"series":132,"authors":133},{"id":89,"title":90,"title_en":91,"slug":92},[134],{"authors_id":135},{"id":112,"name":113,"slug":114,"role":115,"profile_picture":21},{"id":137,"title":138,"title_en":139,"slug":140,"excerpt":141,"excerpt_en":142,"has_translation":12,"published_at":143,"reading_time":144,"hidden_from_listing":15,"tags":145,"thumbnail_image":21,"og_image":147,"series":148,"authors":149},76,"Menggunakan Pointer pada Bahasa Pascal","Using Pointers in Pascal","menggunakan-pointer-pada-bahasa-pascal","Sebuah variable yang bertipe pointer nantinya hanya dapat berisi sebuah alamat dari variable lain.","A variable of pointer type can only hold the address of another variable, and changing it changes that other variable.","2020-12-02T14:17:47.000Z",2,[83,146,85,106],"pointer","\u002Fog\u002Fmenggunakan-pointer-pada-bahasa-pascal.png",{"id":89,"title":90,"title_en":91,"slug":92},[150],{"authors_id":151},{"id":112,"name":113,"slug":114,"role":115,"profile_picture":21},[],{"id":154,"title":64,"title_en":65,"slug":66,"parent_series":155,"children_series":156},14,{"id":112,"title":48,"title_en":48,"slug":49},[157,162,167,168],{"id":158,"title":159,"title_en":160,"slug":161,"cover_image":21},23,"Berkenalan dengan Bahasa Pascal","Getting Started with Pascal","pascal-intro",{"id":163,"title":164,"title_en":165,"slug":166,"cover_image":21},24,"Struktur Kontrol","Control Structures","pascal-struktur-kontrol",{"id":89,"title":90,"title_en":91,"slug":92,"cover_image":21},{"id":169,"title":170,"title_en":171,"slug":172,"cover_image":21},26,"Pemrograman Prosedural","Procedural Programming","pascal-pemrograman-prosedural",[174],{"authors_id":175},{"id":112,"name":113,"slug":114,"role":115,"profile_picture":21},"id",[178,176],"en","Sebelumnya kita telah membahas tentang tipe data [RECORD](https:\u002F\u002Finvasikode.com\u002Fmenggunakan-tipe-data-record-pada-pascal\u002F) pada Pascal. Pada kesempatan kali ini kita akan membahas satu lagi data terstruktur dalam pascal yaitu ARRAY atau larik.\n\n## Pengertian ARRAY pada Pascal\n\n**Apa sih ARRAY itu?**\n\nARRAY merupakan struktur data yang berisi sekumpulan data dengan tipe data yang sama. Bayangkan seperti deretan loker yang berjejer rapi, tiap kotak punya nomor urut dan bisa kita akses langsung lewat **index**-nya.\n\n> 📷 *Ilustrasi: deretan kotak berurutan yang merepresentasikan elemen array beserta nomor indeksnya.*\n\nBiar makin kebayang bedanya, coba perhatikan kode program berikut:\n\n```pascal\nprogram BuatArray;\nuses crt;\nvar\n  nama1, nama2, nama3, nama4, nama5: string;\nbegin\n  clrscr;\n  nama1 := 'adi';\n  nama2 := 'budi';\n  nama3 := 'putri';\n  nama4 := 'putra';\n  nama5 := 'ida';\n\n  writeln('nama1: ', nama1);\n  writeln('nama2: ', nama2);\n  writeln('nama3: ', nama3);\n  writeln('nama4: ', nama4);\n  writeln('nama5: ', nama5);\n  readln;\nend.\n```\n\nKita punya 5 variable mulai dari **nama1** sampai **nama5** dengan tipe data string. Setiap variable berisi nama seseorang. Kode tersebut terlihat normal saja bukan ?\n\n**Sekarang bagaimana kalau kita punya variable nama1 sampai nama100?**\n\nMenuliskan satu per satu nama variable jadi kurang efektif dan nggak efisien. Di sinilah ARRAY dapat berperan. Dengan menggunakan ARRAY kita cukup mendeklarasikan variable nama sebanyak 1 kali saja.\n\n## Penulisan ARRAY pada Pascal\n\nKomponen dalam deklarasi ARRAY ada 3 yaitu panjang ARRAY, tipe data ARRAY, dan nama variable ARRAY. Untuk format penulisannya adalah sebagai berikut\n\n```\nvar\n  nama-variable: array [batas-bawah..batas-atas] of tipe-data;\n```\n\nBatas bawah dan batas atas pada deklarasi ARRAY merupakan index awal dan akhir yang bisa diakses. Sedangkan tipe data merupakan tipe data yang akan disimpan dalam ARRAY.\n\nContoh kita ingin membuat variable **nama** bertipe string yang berisi 5 elemen. Kita bisa mendeklarasikannya sebagai berikut\n\n```pascal\nvar\n  nama: array [1..5] of string;\n```\n\nLalu untuk mengakses elemen dalam ARRAY bisa kita gunakan yang namanya **index**.\n\nIndex merupakan nomor yang dituliskan setelah nama variable ARRAY. Nomor ini nggak boleh kurang dari batas bawah ARRAY, dan nggak boleh lebih dari batas atas ARRAY. Contohnya sebagai berikut\n\n```pascal\nvar\n  nama: array [1..5] of string; \u002F\u002F ARRAY nama punya 5 elemen\nbegin\n  nama[1] := 'Budi'; \u002F\u002F mengisi nilai pada indeks ke-1\n  nama[4] := 'Adi';\n  nama[6] := 'Ida';  \u002F\u002F error karena ARRAY nama tidak punya elemen ke-12\n  nama[0] := 'Rani';\nend.\n```\n\nKarena ARRAY juga termasuk sebagai tipe data, jadi kita bisa membuat sebuah ARRAY dengan tipe data ARRAY. Ini disebut sebagai ARRAY multidimensi. Contohnya:\n\n```pascal\nvar\n  matrix2D: array [1..2] of array [1..2] of integer; \u002F\u002F array dengan tipe data array integer\n```\n\n**Bagaimana cara mengakses elemen dari ARRAY multi dimensi?**\n\nCaranya kurang lebih sama seperti sebelumnya, yaitu tetap menggunakan *index*. Bedanya, karena *array* ini bertingkat atau multidimensi, waktu kita mengakses indeks pertama kita masih mendapatkan elemen yang berupa *array* juga. Nah, buat mengambil nilai di dalamnya, kita perlu melakukan dua kali pengaksesan indeks, mirip koordinat baris dan kolom.\n\n> 📷 *Ilustrasi: tabel dua dimensi yang menggambarkan indeks baris dan kolom pada array.*\n\n```pascal\nvar\n  M: array [1..2] of array [1..2] of integer; \u002F\u002F array dengan tipe data array integer\nbegin\n  M[1][1] := 1; \u002F\u002F akses nilai pertama dari array pertama dari M\n  M[1][2] := 2;\n  M[2][1] := 3;\n  M[2][2] := 4;\nend.\n```\n\n$$\n\\begin{aligned}\nM &= \\begin{bmatrix} 1 & 2 \\\\ 3 & 4 \\end{bmatrix} \\\\\nM_{11} &= 1 \\\\\nM_{12} &= 2 \\\\\nM_{21} &= 3 \\\\\nM_{22} &= 4\n\\end{aligned}\n$$\n\nARRAY tersebut dinamakan ARRAY 2 dimensi, karena pengaksesan indeksnya dilakukan 2 kali. Konsepnya sama seperti mengakses *entry* dalam matrix (menggunakan baris dan kolom).\n\nARRAY multidimensi nggak hanya terbatas pada 2 dimensi saja, tetapi juga bisa berlanjut sampai 3, 4, bahkan sampai **n** dimensi tergantung kebutuhan.\n\n## Menggunakan ARRAY dalam Perulangan\n\nKeuntungan menggunakan ARRAY adalah dapat digunakan dengan perulangan. Mari kita coba membuat ulang kode yang ada di awal tutorial ini.\n\n```pascal\nprogram BuatArray;\nuses crt;\nvar\n  nama: array [1..5] of string; \u002F\u002F menggunakan array\n  i: integer; \u002F\u002F variable untuk perulangan\nbegin\n  clrscr;\n  nama[1] := 'adi';\n  nama[2] := 'budi';\n  nama[3] := 'putri';\n  nama[4] := 'putra';\n  nama[5] := 'ida';\n\n  \u002F\u002F mencetak nama[1] sampai nama[5] dengan for loop\n  for i:=1 to length(nama) do writeln('nama[',i,']: ', nama[i]);\n  readln;\nend.\n```\n\nBisa kalian coba jalankan program tersebut. Kurang lebih outputnya akan tampak seperti ini:\n\n```\nnama[1]: adi\nnama[2]: budi\nnama[3]: putri\nnama[4]: putra\nnama[5]: ida \n```\n\nUdah nggak perlu lagi memanggil variable **nama1** sampai **nama5** satu per satu. Dengan memanfaatkan fitur index pada ARRAY kita cukup menggunakan variable **i** sebagai indeksnya.\n\nAda satu perintah yang mungkin asing yaitu `length()`.\n\n**Apa itu perintah `length()`?**\n\nPerintah ini berfungsi untuk mengembalikan panjang dari ARRAY atau STRING. Jadi semisal kita punya ARRAY dengan batas bawah 1 dan batas atas 10, maka panjang ARRAY nya adalah 10.\n\n**Mengembalikan panjang STRING juga?**\n\nIya, STRING sebenarnya juga merupakan ARRAY. Lebih tepatnya ARRAY of CHAR.\n\nSTRING merupakan [tipe data standar](https:\u002F\u002Finvasikode.com\u002Ftipe-data-pascal\u002F) pada Pascal yang memiliki nilai berupa **kata** atau **kalimat**. Nah, kata atau kalimat ini terdiri dari beberapa karakter huruf. Karakter huruf juga termasuk dalam tipe data standar Pascal yaitu CHAR.\n\nPerlakuan dalam ARRAY juga bisa kita lakukan pada STRING.\n\n```pascal\nvar\n  kata: string;\n  i: integer;\nbegin\n  kata := 'Belajar pascal di invasikode';\n  for i := 1 to length(kata) do writeln('Huruf ke-',i,': ',kata[i]);\nend.\n```\n\nApabila dijalankan, kode tersebut akan mencetak output berupa huruf satu per-satu.\n\n## Penutup\n\nCukup sekian untuk tutorial kali ini, semoga bermanfaat :D\n\nPada tutorial selanjutnya kita akan coba belajar tentang [pointer pada Pascal.](https:\u002F\u002Finvasikode.com\u002Fpointer-pascal\u002F)\n","\u003Cp>Sebelumnya kita telah membahas tentang tipe data \u003Ca href=\"https:\u002F\u002Finvasikode.com\u002Fmenggunakan-tipe-data-record-pada-pascal\u002F\">RECORD\u003C\u002Fa> pada Pascal. Pada kesempatan kali ini kita akan membahas satu lagi data terstruktur dalam pascal yaitu ARRAY atau larik.\u003C\u002Fp>\n\u003Ch2 id=\"pengertian-array-pada-pascal\">Pengertian ARRAY pada Pascal\u003C\u002Fh2>\n\u003Cp>\u003Cstrong>Apa sih ARRAY itu?\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>ARRAY merupakan struktur data yang berisi sekumpulan data dengan tipe data yang sama. Bayangkan seperti deretan loker yang berjejer rapi, tiap kotak punya nomor urut dan bisa kita akses langsung lewat \u003Cstrong>index\u003C\u002Fstrong>-nya.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>📷 \u003Cem>Ilustrasi: deretan kotak berurutan yang merepresentasikan elemen array beserta nomor indeksnya.\u003C\u002Fem>\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>Biar makin kebayang bedanya, coba perhatikan kode program berikut:\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\">PASCAL\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=\"program%20BuatArray%3B%0Auses%20crt%3B%0Avar%0A%20%20nama1%2C%20nama2%2C%20nama3%2C%20nama4%2C%20nama5%3A%20string%3B%0Abegin%0A%20%20clrscr%3B%0A%20%20nama1%20%3A%3D%20'adi'%3B%0A%20%20nama2%20%3A%3D%20'budi'%3B%0A%20%20nama3%20%3A%3D%20'putri'%3B%0A%20%20nama4%20%3A%3D%20'putra'%3B%0A%20%20nama5%20%3A%3D%20'ida'%3B%0A%0A%20%20writeln('nama1%3A%20'%2C%20nama1)%3B%0A%20%20writeln('nama2%3A%20'%2C%20nama2)%3B%0A%20%20writeln('nama3%3A%20'%2C%20nama3)%3B%0A%20%20writeln('nama4%3A%20'%2C%20nama4)%3B%0A%20%20writeln('nama5%3A%20'%2C%20nama5)%3B%0A%20%20readln%3B%0Aend.\" 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>program BuatArray;\nuses crt;\nvar\n  nama1, nama2, nama3, nama4, nama5: string;\nbegin\n  clrscr;\n  nama1 := 'adi';\n  nama2 := 'budi';\n  nama3 := 'putri';\n  nama4 := 'putra';\n  nama5 := 'ida';\n\n  writeln('nama1: ', nama1);\n  writeln('nama2: ', nama2);\n  writeln('nama3: ', nama3);\n  writeln('nama4: ', nama4);\n  writeln('nama5: ', nama5);\n  readln;\nend.\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Kita punya 5 variable mulai dari \u003Cstrong>nama1\u003C\u002Fstrong> sampai \u003Cstrong>nama5\u003C\u002Fstrong> dengan tipe data string. Setiap variable berisi nama seseorang. Kode tersebut terlihat normal saja bukan ?\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Sekarang bagaimana kalau kita punya variable nama1 sampai nama100?\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Menuliskan satu per satu nama variable jadi kurang efektif dan nggak efisien. Di sinilah ARRAY dapat berperan. Dengan menggunakan ARRAY kita cukup mendeklarasikan variable nama sebanyak 1 kali saja.\u003C\u002Fp>\n\u003Ch2 id=\"penulisan-array-pada-pascal\">Penulisan ARRAY pada Pascal\u003C\u002Fh2>\n\u003Cp>Komponen dalam deklarasi ARRAY ada 3 yaitu panjang ARRAY, tipe data ARRAY, dan nama variable ARRAY. Untuk format penulisannya adalah sebagai berikut\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\">TEXT\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=\"var%0A%20%20nama-variable%3A%20array%20%5Bbatas-bawah..batas-atas%5D%20of%20tipe-data%3B\" 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>var\n  nama-variable: array [batas-bawah..batas-atas] of tipe-data;\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Batas bawah dan batas atas pada deklarasi ARRAY merupakan index awal dan akhir yang bisa diakses. Sedangkan tipe data merupakan tipe data yang akan disimpan dalam ARRAY.\u003C\u002Fp>\n\u003Cp>Contoh kita ingin membuat variable \u003Cstrong>nama\u003C\u002Fstrong> bertipe string yang berisi 5 elemen. Kita bisa mendeklarasikannya sebagai berikut\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\">PASCAL\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=\"var%0A%20%20nama%3A%20array%20%5B1..5%5D%20of%20string%3B\" 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>var\n  nama: array [1..5] of string;\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Lalu untuk mengakses elemen dalam ARRAY bisa kita gunakan yang namanya \u003Cstrong>index\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cp>Index merupakan nomor yang dituliskan setelah nama variable ARRAY. Nomor ini nggak boleh kurang dari batas bawah ARRAY, dan nggak boleh lebih dari batas atas ARRAY. Contohnya sebagai berikut\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\">PASCAL\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=\"var%0A%20%20nama%3A%20array%20%5B1..5%5D%20of%20string%3B%20%2F%2F%20ARRAY%20nama%20punya%205%20elemen%0Abegin%0A%20%20nama%5B1%5D%20%3A%3D%20'Budi'%3B%20%2F%2F%20mengisi%20nilai%20pada%20indeks%20ke-1%0A%20%20nama%5B4%5D%20%3A%3D%20'Adi'%3B%0A%20%20nama%5B6%5D%20%3A%3D%20'Ida'%3B%20%20%2F%2F%20error%20karena%20ARRAY%20nama%20tidak%20punya%20elemen%20ke-12%0A%20%20nama%5B0%5D%20%3A%3D%20'Rani'%3B%0Aend.\" 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>var\n  nama: array [1..5] of string; \u002F\u002F ARRAY nama punya 5 elemen\nbegin\n  nama[1] := 'Budi'; \u002F\u002F mengisi nilai pada indeks ke-1\n  nama[4] := 'Adi';\n  nama[6] := 'Ida';  \u002F\u002F error karena ARRAY nama tidak punya elemen ke-12\n  nama[0] := 'Rani';\nend.\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Karena ARRAY juga termasuk sebagai tipe data, jadi kita bisa membuat sebuah ARRAY dengan tipe data ARRAY. Ini disebut sebagai ARRAY multidimensi. Contohnya:\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\">PASCAL\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=\"var%0A%20%20matrix2D%3A%20array%20%5B1..2%5D%20of%20array%20%5B1..2%5D%20of%20integer%3B%20%2F%2F%20array%20dengan%20tipe%20data%20array%20integer\" 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>var\n  matrix2D: array [1..2] of array [1..2] of integer; \u002F\u002F array dengan tipe data array integer\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>\u003Cstrong>Bagaimana cara mengakses elemen dari ARRAY multi dimensi?\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Caranya kurang lebih sama seperti sebelumnya, yaitu tetap menggunakan \u003Cem>index\u003C\u002Fem>. Bedanya, karena \u003Cem>array\u003C\u002Fem> ini bertingkat atau multidimensi, waktu kita mengakses indeks pertama kita masih mendapatkan elemen yang berupa \u003Cem>array\u003C\u002Fem> juga. Nah, buat mengambil nilai di dalamnya, kita perlu melakukan dua kali pengaksesan indeks, mirip koordinat baris dan kolom.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>📷 \u003Cem>Ilustrasi: tabel dua dimensi yang menggambarkan indeks baris dan kolom pada array.\u003C\u002Fem>\u003C\u002Fp>\n\u003C\u002Fblockquote>\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\">PASCAL\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=\"var%0A%20%20M%3A%20array%20%5B1..2%5D%20of%20array%20%5B1..2%5D%20of%20integer%3B%20%2F%2F%20array%20dengan%20tipe%20data%20array%20integer%0Abegin%0A%20%20M%5B1%5D%5B1%5D%20%3A%3D%201%3B%20%2F%2F%20akses%20nilai%20pertama%20dari%20array%20pertama%20dari%20M%0A%20%20M%5B1%5D%5B2%5D%20%3A%3D%202%3B%0A%20%20M%5B2%5D%5B1%5D%20%3A%3D%203%3B%0A%20%20M%5B2%5D%5B2%5D%20%3A%3D%204%3B%0Aend.\" 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>var\n  M: array [1..2] of array [1..2] of integer; \u002F\u002F array dengan tipe data array integer\nbegin\n  M[1][1] := 1; \u002F\u002F akses nilai pertama dari array pertama dari M\n  M[1][2] := 2;\n  M[2][1] := 3;\n  M[2][2] := 4;\nend.\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cspan class=\"katex-display\">\u003Cspan class=\"katex\">\u003Cspan class=\"katex-mathml\">\u003Cmath xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML\" display=\"block\">\u003Csemantics>\u003Cmtable rowspacing=\"0.25em\" columnalign=\"right left\" columnspacing=\"0em\">\u003Cmtr>\u003Cmtd>\u003Cmstyle scriptlevel=\"0\" displaystyle=\"true\">\u003Cmi>M\u003C\u002Fmi>\u003C\u002Fmstyle>\u003C\u002Fmtd>\u003Cmtd>\u003Cmstyle scriptlevel=\"0\" displaystyle=\"true\">\u003Cmrow>\u003Cmrow>\u003C\u002Fmrow>\u003Cmo>=\u003C\u002Fmo>\u003Cmrow>\u003Cmo fence=\"true\">[\u003C\u002Fmo>\u003Cmtable rowspacing=\"0.16em\" columnalign=\"center center\" columnspacing=\"1em\">\u003Cmtr>\u003Cmtd>\u003Cmstyle scriptlevel=\"0\" displaystyle=\"false\">\u003Cmn>1\u003C\u002Fmn>\u003C\u002Fmstyle>\u003C\u002Fmtd>\u003Cmtd>\u003Cmstyle scriptlevel=\"0\" displaystyle=\"false\">\u003Cmn>2\u003C\u002Fmn>\u003C\u002Fmstyle>\u003C\u002Fmtd>\u003C\u002Fmtr>\u003Cmtr>\u003Cmtd>\u003Cmstyle scriptlevel=\"0\" displaystyle=\"false\">\u003Cmn>3\u003C\u002Fmn>\u003C\u002Fmstyle>\u003C\u002Fmtd>\u003Cmtd>\u003Cmstyle scriptlevel=\"0\" displaystyle=\"false\">\u003Cmn>4\u003C\u002Fmn>\u003C\u002Fmstyle>\u003C\u002Fmtd>\u003C\u002Fmtr>\u003C\u002Fmtable>\u003Cmo fence=\"true\">]\u003C\u002Fmo>\u003C\u002Fmrow>\u003C\u002Fmrow>\u003C\u002Fmstyle>\u003C\u002Fmtd>\u003C\u002Fmtr>\u003Cmtr>\u003Cmtd>\u003Cmstyle scriptlevel=\"0\" displaystyle=\"true\">\u003Cmsub>\u003Cmi>M\u003C\u002Fmi>\u003Cmn>11\u003C\u002Fmn>\u003C\u002Fmsub>\u003C\u002Fmstyle>\u003C\u002Fmtd>\u003Cmtd>\u003Cmstyle scriptlevel=\"0\" displaystyle=\"true\">\u003Cmrow>\u003Cmrow>\u003C\u002Fmrow>\u003Cmo>=\u003C\u002Fmo>\u003Cmn>1\u003C\u002Fmn>\u003C\u002Fmrow>\u003C\u002Fmstyle>\u003C\u002Fmtd>\u003C\u002Fmtr>\u003Cmtr>\u003Cmtd>\u003Cmstyle scriptlevel=\"0\" displaystyle=\"true\">\u003Cmsub>\u003Cmi>M\u003C\u002Fmi>\u003Cmn>12\u003C\u002Fmn>\u003C\u002Fmsub>\u003C\u002Fmstyle>\u003C\u002Fmtd>\u003Cmtd>\u003Cmstyle scriptlevel=\"0\" displaystyle=\"true\">\u003Cmrow>\u003Cmrow>\u003C\u002Fmrow>\u003Cmo>=\u003C\u002Fmo>\u003Cmn>2\u003C\u002Fmn>\u003C\u002Fmrow>\u003C\u002Fmstyle>\u003C\u002Fmtd>\u003C\u002Fmtr>\u003Cmtr>\u003Cmtd>\u003Cmstyle scriptlevel=\"0\" displaystyle=\"true\">\u003Cmsub>\u003Cmi>M\u003C\u002Fmi>\u003Cmn>21\u003C\u002Fmn>\u003C\u002Fmsub>\u003C\u002Fmstyle>\u003C\u002Fmtd>\u003Cmtd>\u003Cmstyle scriptlevel=\"0\" displaystyle=\"true\">\u003Cmrow>\u003Cmrow>\u003C\u002Fmrow>\u003Cmo>=\u003C\u002Fmo>\u003Cmn>3\u003C\u002Fmn>\u003C\u002Fmrow>\u003C\u002Fmstyle>\u003C\u002Fmtd>\u003C\u002Fmtr>\u003Cmtr>\u003Cmtd>\u003Cmstyle scriptlevel=\"0\" displaystyle=\"true\">\u003Cmsub>\u003Cmi>M\u003C\u002Fmi>\u003Cmn>22\u003C\u002Fmn>\u003C\u002Fmsub>\u003C\u002Fmstyle>\u003C\u002Fmtd>\u003Cmtd>\u003Cmstyle scriptlevel=\"0\" displaystyle=\"true\">\u003Cmrow>\u003Cmrow>\u003C\u002Fmrow>\u003Cmo>=\u003C\u002Fmo>\u003Cmn>4\u003C\u002Fmn>\u003C\u002Fmrow>\u003C\u002Fmstyle>\u003C\u002Fmtd>\u003C\u002Fmtr>\u003C\u002Fmtable>\u003Cannotation encoding=\"application\u002Fx-tex\">\\begin{aligned}\nM &amp;= \\begin{bmatrix} 1 &amp; 2 \\\\ 3 &amp; 4 \\end{bmatrix} \\\\\nM_{11} &amp;= 1 \\\\\nM_{12} &amp;= 2 \\\\\nM_{21} &amp;= 3 \\\\\nM_{22} &amp;= 4\n\\end{aligned}\u003C\u002Fannotation>\u003C\u002Fsemantics>\u003C\u002Fmath>\u003C\u002Fspan>\u003Cspan class=\"katex-html\" aria-hidden=\"true\">\u003Cspan class=\"katex-base\">\u003Cspan class=\"katex-strut\" style=\"height:8.4em;vertical-align:-3.95em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mtable\">\u003Cspan class=\"col-align-r\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:4.45em;\">\u003Cspan style=\"top:-6.45em;\">\u003Cspan class=\"pstrut\" style=\"height:3.45em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.109em;\">M\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"top:-4.36em;\">\u003Cspan class=\"pstrut\" style=\"height:3.45em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.109em;\">M\u003C\u002Fspan>\u003Cspan class=\"msupsub\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.3011em;\">\u003Cspan style=\"top:-2.55em;margin-left:-0.109em;margin-right:0.05em;\">\u003Cspan class=\"pstrut\" style=\"height:2.7em;\">\u003C\u002Fspan>\u003Cspan class=\"katex-sizing reset-size6 size3 mtight\">\u003Cspan class=\"mord mtight\">\u003Cspan class=\"mord mtight\">11\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.15em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"top:-2.86em;\">\u003Cspan class=\"pstrut\" style=\"height:3.45em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.109em;\">M\u003C\u002Fspan>\u003Cspan class=\"msupsub\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.3011em;\">\u003Cspan style=\"top:-2.55em;margin-left:-0.109em;margin-right:0.05em;\">\u003Cspan class=\"pstrut\" style=\"height:2.7em;\">\u003C\u002Fspan>\u003Cspan class=\"katex-sizing reset-size6 size3 mtight\">\u003Cspan class=\"mord mtight\">\u003Cspan class=\"mord mtight\">12\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.15em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"top:-1.36em;\">\u003Cspan class=\"pstrut\" style=\"height:3.45em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.109em;\">M\u003C\u002Fspan>\u003Cspan class=\"msupsub\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.3011em;\">\u003Cspan style=\"top:-2.55em;margin-left:-0.109em;margin-right:0.05em;\">\u003Cspan class=\"pstrut\" style=\"height:2.7em;\">\u003C\u002Fspan>\u003Cspan class=\"katex-sizing reset-size6 size3 mtight\">\u003Cspan class=\"mord mtight\">\u003Cspan class=\"mord mtight\">21\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.15em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"top:0.14em;\">\u003Cspan class=\"pstrut\" style=\"height:3.45em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord\">\u003Cspan class=\"mord mathnormal\" style=\"margin-right:0.109em;\">M\u003C\u002Fspan>\u003Cspan class=\"msupsub\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.3011em;\">\u003Cspan style=\"top:-2.55em;margin-left:-0.109em;margin-right:0.05em;\">\u003Cspan class=\"pstrut\" style=\"height:2.7em;\">\u003C\u002Fspan>\u003Cspan class=\"katex-sizing reset-size6 size3 mtight\">\u003Cspan class=\"mord mtight\">\u003Cspan class=\"mord mtight\">22\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.15em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:3.95em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"col-align-l\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:4.45em;\">\u003Cspan style=\"top:-6.45em;\">\u003Cspan class=\"pstrut\" style=\"height:3.45em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord\">\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mrel\">=\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"minner\">\u003Cspan class=\"mopen delimcenter\" style=\"top:0em;\">\u003Cspan class=\"delimsizing size3\">[\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mtable\">\u003Cspan class=\"col-align-c\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:1.45em;\">\u003Cspan style=\"top:-3.61em;\">\u003Cspan class=\"pstrut\" style=\"height:3em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord\">1\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"top:-2.41em;\">\u003Cspan class=\"pstrut\" style=\"height:3em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord\">3\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.95em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"arraycolsep\" style=\"width:0.5em;\">\u003C\u002Fspan>\u003Cspan class=\"arraycolsep\" style=\"width:0.5em;\">\u003C\u002Fspan>\u003Cspan class=\"col-align-c\">\u003Cspan class=\"vlist-t vlist-t2\">\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:1.45em;\">\u003Cspan style=\"top:-3.61em;\">\u003Cspan class=\"pstrut\" style=\"height:3em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord\">2\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"top:-2.41em;\">\u003Cspan class=\"pstrut\" style=\"height:3em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord\">4\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:0.95em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"mclose delimcenter\" style=\"top:0em;\">\u003Cspan class=\"delimsizing size3\">]\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"top:-4.36em;\">\u003Cspan class=\"pstrut\" style=\"height:3.45em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord\">\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mrel\">=\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">1\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"top:-2.86em;\">\u003Cspan class=\"pstrut\" style=\"height:3.45em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord\">\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mrel\">=\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">2\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"top:-1.36em;\">\u003Cspan class=\"pstrut\" style=\"height:3.45em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord\">\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mrel\">=\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">3\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan style=\"top:0.14em;\">\u003Cspan class=\"pstrut\" style=\"height:3.45em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">\u003Cspan class=\"mord\">\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mrel\">=\u003C\u002Fspan>\u003Cspan class=\"mspace\" style=\"margin-right:0.2778em;\">\u003C\u002Fspan>\u003Cspan class=\"mord\">4\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-s\">​\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"vlist-r\">\u003Cspan class=\"vlist\" style=\"height:3.95em;\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cp>ARRAY tersebut dinamakan ARRAY 2 dimensi, karena pengaksesan indeksnya dilakukan 2 kali. Konsepnya sama seperti mengakses \u003Cem>entry\u003C\u002Fem> dalam matrix (menggunakan baris dan kolom).\u003C\u002Fp>\n\u003Cp>ARRAY multidimensi nggak hanya terbatas pada 2 dimensi saja, tetapi juga bisa berlanjut sampai 3, 4, bahkan sampai \u003Cstrong>n\u003C\u002Fstrong> dimensi tergantung kebutuhan.\u003C\u002Fp>\n\u003Ch2 id=\"menggunakan-array-dalam-perulangan\">Menggunakan ARRAY dalam Perulangan\u003C\u002Fh2>\n\u003Cp>Keuntungan menggunakan ARRAY adalah dapat digunakan dengan perulangan. Mari kita coba membuat ulang kode yang ada di awal tutorial ini.\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\">PASCAL\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=\"program%20BuatArray%3B%0Auses%20crt%3B%0Avar%0A%20%20nama%3A%20array%20%5B1..5%5D%20of%20string%3B%20%2F%2F%20menggunakan%20array%0A%20%20i%3A%20integer%3B%20%2F%2F%20variable%20untuk%20perulangan%0Abegin%0A%20%20clrscr%3B%0A%20%20nama%5B1%5D%20%3A%3D%20'adi'%3B%0A%20%20nama%5B2%5D%20%3A%3D%20'budi'%3B%0A%20%20nama%5B3%5D%20%3A%3D%20'putri'%3B%0A%20%20nama%5B4%5D%20%3A%3D%20'putra'%3B%0A%20%20nama%5B5%5D%20%3A%3D%20'ida'%3B%0A%0A%20%20%2F%2F%20mencetak%20nama%5B1%5D%20sampai%20nama%5B5%5D%20dengan%20for%20loop%0A%20%20for%20i%3A%3D1%20to%20length(nama)%20do%20writeln('nama%5B'%2Ci%2C'%5D%3A%20'%2C%20nama%5Bi%5D)%3B%0A%20%20readln%3B%0Aend.\" 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>program BuatArray;\nuses crt;\nvar\n  nama: array [1..5] of string; \u002F\u002F menggunakan array\n  i: integer; \u002F\u002F variable untuk perulangan\nbegin\n  clrscr;\n  nama[1] := 'adi';\n  nama[2] := 'budi';\n  nama[3] := 'putri';\n  nama[4] := 'putra';\n  nama[5] := 'ida';\n\n  \u002F\u002F mencetak nama[1] sampai nama[5] dengan for loop\n  for i:=1 to length(nama) do writeln('nama[',i,']: ', nama[i]);\n  readln;\nend.\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Bisa kalian coba jalankan program tersebut. Kurang lebih outputnya akan tampak seperti ini:\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\">TEXT\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=\"nama%5B1%5D%3A%20adi%0Anama%5B2%5D%3A%20budi%0Anama%5B3%5D%3A%20putri%0Anama%5B4%5D%3A%20putra%0Anama%5B5%5D%3A%20ida%20\" 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>nama[1]: adi\nnama[2]: budi\nnama[3]: putri\nnama[4]: putra\nnama[5]: ida \u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Udah nggak perlu lagi memanggil variable \u003Cstrong>nama1\u003C\u002Fstrong> sampai \u003Cstrong>nama5\u003C\u002Fstrong> satu per satu. Dengan memanfaatkan fitur index pada ARRAY kita cukup menggunakan variable \u003Cstrong>i\u003C\u002Fstrong> sebagai indeksnya.\u003C\u002Fp>\n\u003Cp>Ada satu perintah yang mungkin asing yaitu \u003Ccode>length()\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Apa itu perintah \u003Ccode>length()\u003C\u002Fcode>?\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Perintah ini berfungsi untuk mengembalikan panjang dari ARRAY atau STRING. Jadi semisal kita punya ARRAY dengan batas bawah 1 dan batas atas 10, maka panjang ARRAY nya adalah 10.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Mengembalikan panjang STRING juga?\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Iya, STRING sebenarnya juga merupakan ARRAY. Lebih tepatnya ARRAY of CHAR.\u003C\u002Fp>\n\u003Cp>STRING merupakan \u003Ca href=\"https:\u002F\u002Finvasikode.com\u002Ftipe-data-pascal\u002F\">tipe data standar\u003C\u002Fa> pada Pascal yang memiliki nilai berupa \u003Cstrong>kata\u003C\u002Fstrong> atau \u003Cstrong>kalimat\u003C\u002Fstrong>. Nah, kata atau kalimat ini terdiri dari beberapa karakter huruf. Karakter huruf juga termasuk dalam tipe data standar Pascal yaitu CHAR.\u003C\u002Fp>\n\u003Cp>Perlakuan dalam ARRAY juga bisa kita lakukan pada STRING.\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\">PASCAL\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=\"var%0A%20%20kata%3A%20string%3B%0A%20%20i%3A%20integer%3B%0Abegin%0A%20%20kata%20%3A%3D%20'Belajar%20pascal%20di%20invasikode'%3B%0A%20%20for%20i%20%3A%3D%201%20to%20length(kata)%20do%20writeln('Huruf%20ke-'%2Ci%2C'%3A%20'%2Ckata%5Bi%5D)%3B%0Aend.\" 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>var\n  kata: string;\n  i: integer;\nbegin\n  kata := 'Belajar pascal di invasikode';\n  for i := 1 to length(kata) do writeln('Huruf ke-',i,': ',kata[i]);\nend.\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Apabila dijalankan, kode tersebut akan mencetak output berupa huruf satu per-satu.\u003C\u002Fp>\n\u003Ch2 id=\"penutup\">Penutup\u003C\u002Fh2>\n\u003Cp>Cukup sekian untuk tutorial kali ini, semoga bermanfaat :D\u003C\u002Fp>\n\u003Cp>Pada tutorial selanjutnya kita akan coba belajar tentang \u003Ca href=\"https:\u002F\u002Finvasikode.com\u002Fpointer-pascal\u002F\">pointer pada Pascal.\u003C\u002Fa>\u003C\u002Fp>\n","",[183,202,215,228,241,262],{"id":184,"title":185,"title_en":21,"slug":186,"excerpt":187,"excerpt_en":21,"has_translation":15,"published_at":188,"reading_time":189,"hidden_from_listing":15,"tags":190,"thumbnail_image":21,"og_image":193,"series":194,"authors":199},133,"Python Strings: the Badge That Only Worked for One Name","python-strings","The badge script printed the right name for the person who wrote it and the wrong name for everybody else. Slicing counts characters, and a name is words.","2026-10-28T13:00:00.000Z",6,[191,192],"python","string","\u002Fog\u002Fpython-strings.png",{"id":195,"title":196,"title_en":197,"slug":198},30,"Koleksi dan String","Collections and Strings","python-collections",[200],{"authors_id":201},{"id":112,"name":113,"slug":114,"role":115,"profile_picture":21},{"id":203,"title":204,"title_en":21,"slug":205,"excerpt":206,"excerpt_en":21,"has_translation":15,"published_at":207,"reading_time":189,"hidden_from_listing":15,"tags":208,"thumbnail_image":21,"og_image":210,"series":211,"authors":212},132,"Python Tuples: Why All Three Points Are the Same Point","python-tuples","Three points walk into a loop and come out identical. The list was never copied three times; the name was. A tuple makes that bug impossible.","2026-10-28T12:00:00.000Z",[191,209],"tuple","\u002Fog\u002Fpython-tuples.png",{"id":195,"title":196,"title_en":197,"slug":198},[213],{"authors_id":214},{"id":112,"name":113,"slug":114,"role":115,"profile_picture":21},{"id":216,"title":217,"title_en":21,"slug":218,"excerpt":219,"excerpt_en":21,"has_translation":15,"published_at":220,"reading_time":189,"hidden_from_listing":15,"tags":221,"thumbnail_image":21,"og_image":223,"series":224,"authors":225},131,"Python Sets: the Duplicate That Keeps Coming Back","python-sets","A de-duplication loop that works on clean data leaves four tags where there should be two. The bug is case, and the fix is a `set`.","2026-10-28T11:00:00.000Z",[191,222],"set","\u002Fog\u002Fpython-sets.png",{"id":195,"title":196,"title_en":197,"slug":198},[226],{"authors_id":227},{"id":112,"name":113,"slug":114,"role":115,"profile_picture":21},{"id":229,"title":230,"title_en":21,"slug":231,"excerpt":232,"excerpt_en":21,"has_translation":15,"published_at":233,"reading_time":189,"hidden_from_listing":15,"tags":234,"thumbnail_image":21,"og_image":236,"series":237,"authors":238},130,"Python Dictionaries: the Key That Isn't There","python-dictionary","A word counter dies the first time it meets a word twice. The fix is one line; what takes longer is knowing which of a dict's three lookups to reach for.","2026-10-28T10:00:00.000Z",[191,235],"dictionary","\u002Fog\u002Fpython-dictionary.png",{"id":195,"title":196,"title_en":197,"slug":198},[239],{"authors_id":240},{"id":112,"name":113,"slug":114,"role":115,"profile_picture":21},{"id":242,"title":243,"title_en":244,"slug":245,"excerpt":246,"excerpt_en":247,"has_translation":12,"published_at":248,"reading_time":14,"hidden_from_listing":15,"tags":249,"thumbnail_image":21,"og_image":256,"series":257,"authors":259},129,"Biar RAG nggak kena 504: pisahin jalur query dan ingestion","So Your RAG Stops Hitting 504: Split the Query Path From Ingestion","rag-pisah-jalur-query-dan-ingestion","Satu service RAG yang merangkap parsing dan menjawab kueri bakal tumbang pas ada yang upload PDF 200 halaman. Obatnya dua jalur dan satu queue.","One RAG service that both parses uploads and answers queries will fall over the moment someone uploads a 200-page PDF. The cure is two paths and one queue.","2026-10-22T01:30:00.000Z",[250,251,252,253,254,255],"rag","cloud-run","cloud-tasks","gcp","serverless","arsitektur","\u002Fog\u002Frag-pisah-jalur-query-dan-ingestion.png",{"id":258,"title":35,"title_en":36,"slug":37},8,[260],{"authors_id":261},{"id":112,"name":113,"slug":114,"role":115,"profile_picture":21},{"id":263,"title":264,"title_en":265,"slug":266,"excerpt":267,"excerpt_en":268,"has_translation":12,"published_at":269,"reading_time":189,"hidden_from_listing":15,"tags":270,"thumbnail_image":21,"og_image":277,"series":278,"authors":279},128,"Linear atau graf: cara mengatur banyak agent tanpa loop abadi","Linear or Graph: How to Run Many Agents Without an Eternal Loop","multi-agen-linear-atau-grafik","Satu agent dengan dua puluh tool gampang kacau. Begitu beberapa agent saling revisi, kamu butuh graf yang mendukung cycle dan angka yang membuatnya berhenti.","One agent with twenty tools gets messy fast. Once several agents revise each other, you need a graph that allows cycles and a number that makes it stop.","2026-10-21T16:05:00.000Z",[271,272,273,274,275,276],"multi-agent","langgraph","autogen","orkestrasi","checkpoint","llm","\u002Fog\u002Fmulti-agen-linear-atau-grafik.png",{"id":258,"title":35,"title_en":36,"slug":37},[280],{"authors_id":281},{"id":112,"name":113,"slug":114,"role":115,"profile_picture":21},[283,286,289,292],{"text":284,"depth":144,"id":285},"Pengertian ARRAY pada Pascal","pengertian-array-pada-pascal",{"text":287,"depth":144,"id":288},"Penulisan ARRAY pada Pascal","penulisan-array-pada-pascal",{"text":290,"depth":144,"id":291},"Menggunakan ARRAY dalam Perulangan","menggunakan-array-dalam-perulangan",{"text":293,"depth":144,"id":294},"Penutup","penutup",1793295834701]