[{"data":1,"prerenderedAt":185},["ShallowReactive",2],{"site-header":3,"site-footer-license":37,"article-menggunakan-tipe-data-array-pada-pascal-with-latest":41},{"navigations":4},[5,20],{"collection":6,"item":7},"series",{"__typename":6,"title":8,"slug":9,"children_series":10},"Artikel","all",[11,14,17],{"title":12,"slug":13},"Algoritma dan Struktur Data","algoritma-struktur-data",{"title":15,"slug":16},"Konsep Dasar Pemrograman","konsep-dasar-pemrograman",{"title":18,"slug":19},"Kecerdasan Artifisial","kecerdasan-artifisial",{"collection":6,"item":21},{"__typename":6,"title":22,"slug":23,"children_series":24},"Tutorial","tutorial",[25,28,31,34],{"title":26,"slug":27},"Belajar Java","belajar-java",{"title":29,"slug":30},"Belajar Pascal","belajar-pascal",{"title":32,"slug":33},"Belajar Python","belajar-python",{"title":35,"slug":36},"Belajar Golang","belajar-golang",{"name":38,"url":39,"show":40},"CC BY-SA","https://creativecommons.org/licenses/by-sa/4.0/",false,{"article":42,"renderedBody":117,"renderedTakeaway":118,"latestArticles":119,"toc":171},{"id":43,"title":44,"slug":45,"excerpt":46,"published_at":47,"thumbnail_image":48,"tags":50,"reading_time":55,"takeway":56,"body":57,"authors":58,"series":64},"75","Menggunakan Tipe Data Array pada Pascal","menggunakan-tipe-data-array-pada-pascal","ARRAY merupakan struktur data yang berisi sekumpulan data dengan tipe data yang sama. Data dalam ARRAY ini dapat diakses dengan menggunakan index.","2020-12-02T14:01:22.000Z",{"id":49},"50e5c328-b262-4919-aabc-1fbd607f6c2b",[51,52,53,54],"pascal","array","tipe-data","struktur-data",4,null,"Sebelumnya kita telah membahas tentang tipe data [RECORD](https://invasikode.com/menggunakan-tipe-data-record-pada-pascal/) 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; // ARRAY nama punya 5 elemen\nbegin\n  nama[1] := 'Budi'; // mengisi nilai pada indeks ke-1\n  nama[4] := 'Adi';\n  nama[6] := 'Ida';  // 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; // 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; // array dengan tipe data array integer\nbegin\n  M[1][1] := 1; // 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$$\nM = \\begin{bmatrix} 1 & 2 \\ 3 & 4 \\ \\end{bmatrix} \\ \nM*{11} = 1 \\ \nM*{12} = 2 \\ \nM*{21} = 3 \\ \nM*{22} = 4 \\\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; // menggunakan array\n  i: integer; // 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  // 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://invasikode.com/tipe-data-pascal/) 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://invasikode.com/pointer-pascal/)",[59],{"authors_id":60},{"name":61,"slug":62,"role":63,"profile_picture":56},"Daffa Izzuddin","izzudd","Writer",{"id":65,"title":66,"slug":67,"articles":68,"parent_series":99},"25","Tipe Data Bentukan","pascal-tipe-data-bentukan",[69,78,87,90],{"id":70,"title":71,"slug":72,"excerpt":73,"thumbnail_image":74,"tags":76},"73","Tentang Tipe Data Bentukan pada Pascal","tentang-tipe-data-bentukan-pada-pascal","Tipe data bentukan atau User defined data types terbagi menjadi 2, yaitu Enumerated dan Subrange",{"id":75},"c0e9e3ac-75df-4af6-86c5-2c136dc47233",[51,53,54,77],"konsep",{"id":79,"title":80,"slug":81,"excerpt":82,"thumbnail_image":83,"tags":85},"74","Menggunakan Tipe Data RECORD pada Pascal","menggunakan-tipe-data-record-pada-pascal","RECORD merupakan tipe data terstruktur pada bahasa Pascal yang terdiri dari kumpulan tipe data standar dan bentukan.",{"id":84},"92bbe4a8-316f-4549-9819-797a44472a45",[51,86,53,54],"record",{"id":43,"title":44,"slug":45,"excerpt":46,"thumbnail_image":88,"tags":89},{"id":49},[51,52,53,54],{"id":91,"title":92,"slug":93,"excerpt":94,"thumbnail_image":95,"tags":97},"76","Menggunakan Pointer pada Bahasa Pascal","menggunakan-pointer-pada-bahasa-pascal","Sebuah variable yang bertipe pointer nantinya hanya dapat berisi sebuah alamat dari variable lain.",{"id":96},"f98ed665-5806-4fb3-ba62-3cca57077b56",[51,98,53,77],"pointer",{"id":100,"title":29,"slug":30,"parent_series":101,"children_series":103},"14",{"id":102,"title":22,"slug":23,"parent_series":56},"1",[104,108,112,113],{"id":105,"title":106,"slug":107,"cover_image":56},"23","Berkenalan dengan Bahasa Pascal","pascal-intro",{"id":109,"title":110,"slug":111,"cover_image":56},"24","Struktur Kontrol","pascal-struktur-kontrol",{"id":65,"title":66,"slug":67,"cover_image":56},{"id":114,"title":115,"slug":116,"cover_image":56},"26","Pemrograman Prosedural","pascal-pemrograman-prosedural","\u003Cp>Sebelumnya kita telah membahas tentang tipe data \u003Ca href=\"https://invasikode.com/menggunakan-tipe-data-record-pada-pascal/\">RECORD\u003C/a> pada Pascal. Pada kesempatan kali ini kita akan membahas satu lagi data terstruktur dalam pascal yaitu ARRAY atau larik.\u003C/p>\n\u003Ch2 id=\"pengertian-array-pada-pascal\">Pengertian ARRAY pada Pascal\u003C/h2>\n\u003Cp>\u003Cstrong>Apa sih ARRAY itu?\u003C/strong>\u003C/p>\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/strong>-nya.\u003C/p>\n\u003Cblockquote>\n\u003Cp>📷 \u003Cem>Ilustrasi: deretan kotak berurutan yang merepresentasikan elemen array beserta nomor indeksnya.\u003C/em>\u003C/p>\n\u003C/blockquote>\n\u003Cp>Biar makin kebayang bedanya, coba perhatikan kode program berikut:\u003C/p>\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/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">PASCAL\u003C/span>\n    \u003C/div>\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/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\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/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Kita punya 5 variable mulai dari \u003Cstrong>nama1\u003C/strong> sampai \u003Cstrong>nama5\u003C/strong> dengan tipe data string. Setiap variable berisi nama seseorang. Kode tersebut terlihat normal saja bukan ?\u003C/p>\n\u003Cp>\u003Cstrong>Sekarang bagaimana kalau kita punya variable nama1 sampai nama100?\u003C/strong>\u003C/p>\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/p>\n\u003Ch2 id=\"penulisan-array-pada-pascal\">Penulisan ARRAY pada Pascal\u003C/h2>\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/p>\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/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">TEXT\u003C/span>\n    \u003C/div>\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/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\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/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\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/p>\n\u003Cp>Contoh kita ingin membuat variable \u003Cstrong>nama\u003C/strong> bertipe string yang berisi 5 elemen. Kita bisa mendeklarasikannya sebagai berikut\u003C/p>\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/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">PASCAL\u003C/span>\n    \u003C/div>\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/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\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/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Lalu untuk mengakses elemen dalam ARRAY bisa kita gunakan yang namanya \u003Cstrong>index\u003C/strong>.\u003C/p>\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/p>\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/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">PASCAL\u003C/span>\n    \u003C/div>\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/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\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; // ARRAY nama punya 5 elemen\nbegin\n  nama[1] := 'Budi'; // mengisi nilai pada indeks ke-1\n  nama[4] := 'Adi';\n  nama[6] := 'Ida';  // error karena ARRAY nama tidak punya elemen ke-12\n  nama[0] := 'Rani';\nend.\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\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/p>\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/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">PASCAL\u003C/span>\n    \u003C/div>\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/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\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; // array dengan tipe data array integer\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>\u003Cstrong>Bagaimana cara mengakses elemen dari ARRAY multi dimensi?\u003C/strong>\u003C/p>\n\u003Cp>Caranya kurang lebih sama seperti sebelumnya, yaitu tetap menggunakan \u003Cem>index\u003C/em>. Bedanya, karena \u003Cem>array\u003C/em> ini bertingkat atau multidimensi, waktu kita mengakses indeks pertama kita masih mendapatkan elemen yang berupa \u003Cem>array\u003C/em> juga. Nah, buat mengambil nilai di dalamnya, kita perlu melakukan dua kali pengaksesan indeks, mirip koordinat baris dan kolom.\u003C/p>\n\u003Cblockquote>\n\u003Cp>📷 \u003Cem>Ilustrasi: tabel dua dimensi yang menggambarkan indeks baris dan kolom pada array.\u003C/em>\u003C/p>\n\u003C/blockquote>\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/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">PASCAL\u003C/span>\n    \u003C/div>\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/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\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; // array dengan tipe data array integer\nbegin\n  M[1][1] := 1; // 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/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>$$\nM = \\begin{bmatrix} 1 &amp; 2 \\ 3 &amp; 4 \\ \\end{bmatrix} \\ \nM*{11} = 1 \\ \nM*{12} = 2 \\ \nM*{21} = 3 \\ \nM*{22} = 4 \u003Cbr>$$\u003C/p>\n\u003Cp>ARRAY tersebut dinamakan ARRAY 2 dimensi, karena pengaksesan indeksnya dilakukan 2 kali. Konsepnya sama seperti mengakses \u003Cem>entry\u003C/em> dalam matrix (menggunakan baris dan kolom).\u003C/p>\n\u003Cp>ARRAY multidimensi nggak hanya terbatas pada 2 dimensi saja, tetapi juga bisa berlanjut sampai 3, 4, bahkan sampai \u003Cstrong>n\u003C/strong> dimensi tergantung kebutuhan.\u003C/p>\n\u003Ch2 id=\"menggunakan-array-dalam-perulangan\">Menggunakan ARRAY dalam Perulangan\u003C/h2>\n\u003Cp>Keuntungan menggunakan ARRAY adalah dapat digunakan dengan perulangan. Mari kita coba membuat ulang kode yang ada di awal tutorial ini.\u003C/p>\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/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">PASCAL\u003C/span>\n    \u003C/div>\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/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\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; // menggunakan array\n  i: integer; // 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  // 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/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Bisa kalian coba jalankan program tersebut. Kurang lebih outputnya akan tampak seperti ini:\u003C/p>\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/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">TEXT\u003C/span>\n    \u003C/div>\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/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\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/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Udah nggak perlu lagi memanggil variable \u003Cstrong>nama1\u003C/strong> sampai \u003Cstrong>nama5\u003C/strong> satu per satu. Dengan memanfaatkan fitur index pada ARRAY kita cukup menggunakan variable \u003Cstrong>i\u003C/strong> sebagai indeksnya.\u003C/p>\n\u003Cp>Ada satu perintah yang mungkin asing yaitu \u003Ccode>length()\u003C/code>.\u003C/p>\n\u003Cp>\u003Cstrong>Apa itu perintah \u003Ccode>length()\u003C/code>?\u003C/strong>\u003C/p>\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/p>\n\u003Cp>\u003Cstrong>Mengembalikan panjang STRING juga?\u003C/strong>\u003C/p>\n\u003Cp>Iya, STRING sebenarnya juga merupakan ARRAY. Lebih tepatnya ARRAY of CHAR.\u003C/p>\n\u003Cp>STRING merupakan \u003Ca href=\"https://invasikode.com/tipe-data-pascal/\">tipe data standar\u003C/a> pada Pascal yang memiliki nilai berupa \u003Cstrong>kata\u003C/strong> atau \u003Cstrong>kalimat\u003C/strong>. Nah, kata atau kalimat ini terdiri dari beberapa karakter huruf. Karakter huruf juga termasuk dalam tipe data standar Pascal yaitu CHAR.\u003C/p>\n\u003Cp>Perlakuan dalam ARRAY juga bisa kita lakukan pada STRING.\u003C/p>\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/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">PASCAL\u003C/span>\n    \u003C/div>\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/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\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/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Apabila dijalankan, kode tersebut akan mencetak output berupa huruf satu per-satu.\u003C/p>\n\u003Ch2 id=\"penutup\">Penutup\u003C/h2>\n\u003Cp>Cukup sekian untuk tutorial kali ini, semoga bermanfaat :D\u003C/p>\n\u003Cp>Pada tutorial selanjutnya kita akan coba belajar tentang \u003Ca href=\"https://invasikode.com/pointer-pascal/\">pointer pada Pascal.\u003C/a>\u003C/p>\n","",[120,133,148,160],{"id":121,"title":122,"slug":123,"excerpt":124,"thumbnail_image":125,"tags":127},"46","Mengapa C Mulai Ditinggalkan: Duel Filosofi Keamanan Rust vs Kesederhanaan Zig","mengapa-c-mulai-ditinggalkan-duel-filosofi-rust-vs-zig","Pernah denger kalau sekitar 70% celah keamanan kritis software modern itu asalnya dari bahasa C? Iya, bahasa yang udah jadi fondasi internet ini 😅. Yuk, kita bedah duel filosofi Rust vs Zig dan cari tahu mana yang pas buat proyek kalian!",{"id":126},"1942a5c9-c1f6-476d-9913-768f78d9d8eb",[128,129,130,131,132],"system-programming","rust","zig","c","memory-safety",{"id":134,"title":135,"slug":136,"excerpt":137,"thumbnail_image":138,"tags":140},"45","Rate Limiting Algorithms: Token Bucket vs Leaky Bucket vs Sliding Window","rate-limiting-algorithms-token-bucket-leaky-bucket-sliding-window","Udah tahu kenapa *rate limiting* itu wajib, tapi masih bingung beda Token Bucket, Leaky Bucket, Fixed Window, dan Sliding Window? Yuk, kita adu empat algoritma ini bareng-bareng dan cari tahu mana yang paling pas buat API kalian!",{"id":139},"0e0ed26d-20c6-443c-bde1-4a6200f6f801",[141,142,143,144,145,146,147],"backend","system-design","rate-limiting","redis","api-gateway","architecture","traffict-management",{"id":149,"title":150,"slug":151,"excerpt":152,"thumbnail_image":153,"tags":155},"44","Transactional Outbox Pattern: Solusi Konsistensi Database dan Message Broker Tanpa 2PC","transactional-outbox-pattern-konsistensi-database-message-broker","Pernah nggak kalian lihat pesanan udah masuk database, tapi email konfirmasinya nggak pernah kekirim? Itu gejala *dual-write problem*. Yuk, kita bedah Transactional Outbox Pattern biar data dan *event* kalian nggak lagi berselisih paham!",{"id":154},"e3c617fd-1486-4b82-b937-94fbec846c77",[141,156,146,157,158,142,159],"microservices","database","message-broker","postgresql",{"id":161,"title":162,"slug":163,"excerpt":164,"thumbnail_image":165,"tags":167},"43","Dead Letter Queue (DLQ) & Retry Policy: Menyelamatkan Pesan Nyasar di RabbitMQ Tanpa Bikin Worker Macet","dead-letter-queue-retry-policy-rabbitmq-resilient-messaging","Pernah nggak sih, *worker* kalian nolak satu pesan terus-terusan sampai CPU melonjak 100%? Itu namanya *poison message loop*, jebakan klasik di RabbitMQ. Yuk, kita bahas cara pasang *retry policy* dan *dead letter queue* yang bener!",{"id":166},"6c0a7ead-4841-4073-b29e-df7ae0f2aa3c",[168,158,141,146,156,169,170],"rabbitmq","async","python",[172,176,179,182],{"text":173,"depth":174,"id":175},"Pengertian ARRAY pada Pascal",2,"pengertian-array-pada-pascal",{"text":177,"depth":174,"id":178},"Penulisan ARRAY pada Pascal","penulisan-array-pada-pascal",{"text":180,"depth":174,"id":181},"Menggunakan ARRAY dalam Perulangan","menggunakan-array-dalam-perulangan",{"text":183,"depth":174,"id":184},"Penutup","penutup",1791045068007]