[{"data":1,"prerenderedAt":188},["ShallowReactive",2],{"site-header":3,"site-footer-license":37,"article-menggunakan-tipe-data-record-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},"74","Menggunakan Tipe Data RECORD pada Pascal","menggunakan-tipe-data-record-pada-pascal","RECORD merupakan tipe data terstruktur pada bahasa Pascal yang terdiri dari kumpulan tipe data standar dan bentukan.","2020-11-27T13:54:30.000Z",{"id":49},"92bbe4a8-316f-4549-9819-797a44472a45",[51,52,53,54],"pascal","record","tipe-data","struktur-data",3,null,"Setelah sebelumnya kita membahas tentang tipe [data bentukan](https://invasikode.com/data-bentukan-pascal/) pada Pascal, kali ini kita akan membahas tentang salah satu tipe data terstruktur, yaitu **RECORD** pada Pascal.\n\n## Pengertian RECORD Pada Pascal\n\n**RECORD** merupakan tipe data terstruktur pada bahasa Pascal yang terdiri dari kumpulan tipe [data standar](https://invasikode.com/tipe-data-pascal/) dan bentukan.\n\nFungsi dari RECORD adalah untuk menyatukan beberapa tipe data yang berbeda menjadi satu.\n\nBayangkan seperti ini.\n\nSuatu sekolah ingin menyimpan data dari para siswanya. Nah data siswa ini terdiri dari beberapa komponen sebagai berikut:\n\n* Nama Lengkap\n* Nama Panggilan\n* Kelas\n* Umur\n* Jenis Kelamin\n\nAgar tetap terstruktur data tersebut harus dituliskan dalam satu lembar kertas. Tidak mungkin kan jika nama lengkap dan kelas ditulis dalam kertas yang berbeda. Cara itu tidak efisien.\n\nNah kurang lebih peran RECORD di sini adalah sebagai kertas yang menyatukan beberapa data siswa.\n\n## Format Penulisan RECORD pada Pascal\n\nRECORD harus dideklarasikan terlebih dahulu pada bagian `type`, karena nantinya akan digunakan sebagai tipe data.\n\n```\ntype\nnama-record = record\n  data-1: tipe-data;\n  data-2: tipe-data;\n  ...\n  data-n: tipe-data;\nend;\n```\n\nBerikut ini cara mendeklarasikan RECORD untuk data siswa.\n\n```pascal\ntype\nData_Siswa = record\n  nama_lengkap  : string;\n  nama_panggilan: string;\n  kelas         : integer;\n  umur          : integer;\n  jenis_kelamin : string;\nend;\n\nvar\n  siswa: Data_Siswa; // deklarasi variable dengan tipe RECORD \"Data_Siswa\"\n```\n\nAtau untuk lebih cepatnya, deklarasi RECORD dapat langsung digunakan sebagai tipe data variable.\n\n```pascal\nvar\n  siswa: record\n    nama_lengkap  : string;\n    nama_panggilan: string;\n    kelas         : integer;\n    umur          : integer;\n    jenis_kelamin : string;\n  end; \n```\n\n> Saya sarankan untuk memberi ekstra spasi pada deklarasi RECORD hingga tanda titik dua sejajar karena dapat memudahkan dalam membaca kode program.\n\n## Mengakses Nilai pada RECORD\n\nUntuk mengakses nilai pada RECORD, entah memasukkan nilai atau membaca nilai, dapat digunakan tanda titik setelah nama variable record.\n\nUntuk lebih jelasnya mari kita langsung coba membuat sebuah program sederhana.\n\n```pascal\nprogram BelajarRecord;\nuses crt;\n\ntype\nData_Siswa = record\n  nama_lengkap  : string;\n  nama_panggilan: string;\n  kelas         : integer;\n  umur          : integer;\n  jenis_kelamin : string;\nend;\n\nvar\n  siswa: Data_Siswa;\n\nbegin\n  clrscr;\n  siswa.nama_lengkap   := 'Budi Pekerti';\n  siswa.nama_panggilan := 'Budi';\n  siswa.kelas          := 10;\n  siswa.umur           := 15;\n  siswa.jenis_kelamin  := 'Laki-laki';\n\n  // mencetak isi RECORD datasiswa\n  writeln('nama lengkap: ', siswa.nama_lengkap);\n  writeln('nama panggilan: ', siswa.nama_panggilan);\n  writeln('kelas: ', siswa.kelas);\n  writeln('umur: ', siswa.umur);\n  writeln('jenis kelamin: ', siswa.jenis_kelamin);\n  readln;\nend.\n```\n\nPada contoh tersebut kita mengisikan variable **siswa** yang berupa RECORD dengan nilainya masing-masing lalu mencetaknya. Kira kira outputnya akan tampak seperti ini.\n\n```\nnama lengkap: Budi Pekerti\nnama panggilan: Budi\nkelas: 10\numur: 15\njenis kelamin: Laki laki\n```\n\nNilai dalam variable RECORD ini pada dasarnya seperti variable biasa, sehingga dapat dilakukan operasi [aritmatika](https://invasikode.com/operasi-aritmatika-pascal/) maupun [boolean](https://invasikode.com/operasi-logika-pascal/).\n\nKalau melihat contoh kode tersebut sepertinya terlihat panjang ya. Apa ada cara supaya lebih singkat?\n\n**Ada dong...**\n\nUntuk mempersingkat pemanggilan tipe data RECORD kita bisa menggunakan perintah WITH DO.\n\n## Menggunakan WITH DO untuk Mengakses Nilai RECORD\n\n**WITH DO** memungkinkan kita untuk menggunakan RECORD sekaligus. Jadi saat akan mengakses nilai dalam RECORD kita tidak perlu lagi memanggil nama variablenya.\n\nMari kita modifikasi kode yang sebelumnya kita buat, dengan menggunakan WITH DO.\n\n```pascal\nprogram BelajarRecord;\nuses crt;\n\ntype\nData_Siswa = record\n  nama_lengkap  : string;\n  nama_panggilan: string;\n  kelas         : integer;\n  umur          : integer;\n  jenis_kelamin : string;\nend;\n\nvar\n  siswa: Data_Siswa;\n\nbegin\n  clrscr;\n  with siswa do // menggunakan perintah WITH DO\n  begin\n    nama_lengkap   := 'Budi Pekerti';\n    nama_panggilan := 'Budi';\n    kelas          := 10;\n    umur           := 15;\n    jenis_kelamin  := 'Laki-laki';\n  end;\n\n  // mencetak isi RECORD datasiswa\n  with siswa do\n  begin\n    writeln('nama lengkap: ', nama_lengkap);\n    writeln('nama panggilan: ', nama_panggilan);\n    writeln('kelas: ', kelas);\n    writeln('umur: ', umur);\n    writeln('jenis kelamin: ', jenis_kelamin);\n  end;\n  readln;\nend.\n```\n\nJika dijalankan output yang dihasilkan akan sama seperti sebelumnya.\n\nFungsi perintah WITH DO disini adalah untuk menggunakan inisial dari variable. Sehingga seluruh blok kode yang berupa variable di antara BEGIN dan END akan otomatis merujuk pada variable RECORD.\n\nJadi lebih bersih bukan :D\n\n## Penutup\n\nCukup sekian untuk tutorial kali ini, semoga bermanfaat :D\n\nPada tutorial selanjutnya kita akan membahas tentang [array pada Pascal](https://invasikode.com/array-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,81,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":43,"title":44,"slug":45,"excerpt":46,"thumbnail_image":79,"tags":80},{"id":49},[51,52,53,54],{"id":82,"title":83,"slug":84,"excerpt":85,"thumbnail_image":86,"tags":88},"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.",{"id":87},"50e5c328-b262-4919-aabc-1fbd607f6c2b",[51,89,53,54],"array",{"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>Setelah sebelumnya kita membahas tentang tipe \u003Ca href=\"https://invasikode.com/data-bentukan-pascal/\">data bentukan\u003C/a> pada Pascal, kali ini kita akan membahas tentang salah satu tipe data terstruktur, yaitu \u003Cstrong>RECORD\u003C/strong> pada Pascal.\u003C/p>\n\u003Ch2 id=\"pengertian-record-pada-pascal\">Pengertian RECORD Pada Pascal\u003C/h2>\n\u003Cp>\u003Cstrong>RECORD\u003C/strong> merupakan tipe data terstruktur pada bahasa Pascal yang terdiri dari kumpulan tipe \u003Ca href=\"https://invasikode.com/tipe-data-pascal/\">data standar\u003C/a> dan bentukan.\u003C/p>\n\u003Cp>Fungsi dari RECORD adalah untuk menyatukan beberapa tipe data yang berbeda menjadi satu.\u003C/p>\n\u003Cp>Bayangkan seperti ini.\u003C/p>\n\u003Cp>Suatu sekolah ingin menyimpan data dari para siswanya. Nah data siswa ini terdiri dari beberapa komponen sebagai berikut:\u003C/p>\n\u003Cul>\n\u003Cli>Nama Lengkap\u003C/li>\n\u003Cli>Nama Panggilan\u003C/li>\n\u003Cli>Kelas\u003C/li>\n\u003Cli>Umur\u003C/li>\n\u003Cli>Jenis Kelamin\u003C/li>\n\u003C/ul>\n\u003Cp>Agar tetap terstruktur data tersebut harus dituliskan dalam satu lembar kertas. Tidak mungkin kan jika nama lengkap dan kelas ditulis dalam kertas yang berbeda. Cara itu tidak efisien.\u003C/p>\n\u003Cp>Nah kurang lebih peran RECORD di sini adalah sebagai kertas yang menyatukan beberapa data siswa.\u003C/p>\n\u003Ch2 id=\"format-penulisan-record-pada-pascal\">Format Penulisan RECORD pada Pascal\u003C/h2>\n\u003Cp>RECORD harus dideklarasikan terlebih dahulu pada bagian \u003Ccode>type\u003C/code>, karena nantinya akan digunakan sebagai tipe data.\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=\"type%0Anama-record%20%3D%20record%0A%20%20data-1%3A%20tipe-data%3B%0A%20%20data-2%3A%20tipe-data%3B%0A%20%20...%0A%20%20data-n%3A%20tipe-data%3B%0Aend%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>type\nnama-record = record\n  data-1: tipe-data;\n  data-2: tipe-data;\n  ...\n  data-n: tipe-data;\nend;\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Berikut ini cara mendeklarasikan RECORD untuk data siswa.\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=\"type%0AData_Siswa%20%3D%20record%0A%20%20nama_lengkap%20%20%3A%20string%3B%0A%20%20nama_panggilan%3A%20string%3B%0A%20%20kelas%20%20%20%20%20%20%20%20%20%3A%20integer%3B%0A%20%20umur%20%20%20%20%20%20%20%20%20%20%3A%20integer%3B%0A%20%20jenis_kelamin%20%3A%20string%3B%0Aend%3B%0A%0Avar%0A%20%20siswa%3A%20Data_Siswa%3B%20%2F%2F%20deklarasi%20variable%20dengan%20tipe%20RECORD%20%22Data_Siswa%22\" 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>type\nData_Siswa = record\n  nama_lengkap  : string;\n  nama_panggilan: string;\n  kelas         : integer;\n  umur          : integer;\n  jenis_kelamin : string;\nend;\n\nvar\n  siswa: Data_Siswa; // deklarasi variable dengan tipe RECORD \"Data_Siswa\"\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Atau untuk lebih cepatnya, deklarasi RECORD dapat langsung digunakan sebagai tipe data variable.\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%20siswa%3A%20record%0A%20%20%20%20nama_lengkap%20%20%3A%20string%3B%0A%20%20%20%20nama_panggilan%3A%20string%3B%0A%20%20%20%20kelas%20%20%20%20%20%20%20%20%20%3A%20integer%3B%0A%20%20%20%20umur%20%20%20%20%20%20%20%20%20%20%3A%20integer%3B%0A%20%20%20%20jenis_kelamin%20%3A%20string%3B%0A%20%20end%3B%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>var\n  siswa: record\n    nama_lengkap  : string;\n    nama_panggilan: string;\n    kelas         : integer;\n    umur          : integer;\n    jenis_kelamin : string;\n  end; \u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cblockquote>\n\u003Cp>Saya sarankan untuk memberi ekstra spasi pada deklarasi RECORD hingga tanda titik dua sejajar karena dapat memudahkan dalam membaca kode program.\u003C/p>\n\u003C/blockquote>\n\u003Ch2 id=\"mengakses-nilai-pada-record\">Mengakses Nilai pada RECORD\u003C/h2>\n\u003Cp>Untuk mengakses nilai pada RECORD, entah memasukkan nilai atau membaca nilai, dapat digunakan tanda titik setelah nama variable record.\u003C/p>\n\u003Cp>Untuk lebih jelasnya mari kita langsung coba membuat sebuah program sederhana.\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%20BelajarRecord%3B%0Auses%20crt%3B%0A%0Atype%0AData_Siswa%20%3D%20record%0A%20%20nama_lengkap%20%20%3A%20string%3B%0A%20%20nama_panggilan%3A%20string%3B%0A%20%20kelas%20%20%20%20%20%20%20%20%20%3A%20integer%3B%0A%20%20umur%20%20%20%20%20%20%20%20%20%20%3A%20integer%3B%0A%20%20jenis_kelamin%20%3A%20string%3B%0Aend%3B%0A%0Avar%0A%20%20siswa%3A%20Data_Siswa%3B%0A%0Abegin%0A%20%20clrscr%3B%0A%20%20siswa.nama_lengkap%20%20%20%3A%3D%20'Budi%20Pekerti'%3B%0A%20%20siswa.nama_panggilan%20%3A%3D%20'Budi'%3B%0A%20%20siswa.kelas%20%20%20%20%20%20%20%20%20%20%3A%3D%2010%3B%0A%20%20siswa.umur%20%20%20%20%20%20%20%20%20%20%20%3A%3D%2015%3B%0A%20%20siswa.jenis_kelamin%20%20%3A%3D%20'Laki-laki'%3B%0A%0A%20%20%2F%2F%20mencetak%20isi%20RECORD%20datasiswa%0A%20%20writeln('nama%20lengkap%3A%20'%2C%20siswa.nama_lengkap)%3B%0A%20%20writeln('nama%20panggilan%3A%20'%2C%20siswa.nama_panggilan)%3B%0A%20%20writeln('kelas%3A%20'%2C%20siswa.kelas)%3B%0A%20%20writeln('umur%3A%20'%2C%20siswa.umur)%3B%0A%20%20writeln('jenis%20kelamin%3A%20'%2C%20siswa.jenis_kelamin)%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 BelajarRecord;\nuses crt;\n\ntype\nData_Siswa = record\n  nama_lengkap  : string;\n  nama_panggilan: string;\n  kelas         : integer;\n  umur          : integer;\n  jenis_kelamin : string;\nend;\n\nvar\n  siswa: Data_Siswa;\n\nbegin\n  clrscr;\n  siswa.nama_lengkap   := 'Budi Pekerti';\n  siswa.nama_panggilan := 'Budi';\n  siswa.kelas          := 10;\n  siswa.umur           := 15;\n  siswa.jenis_kelamin  := 'Laki-laki';\n\n  // mencetak isi RECORD datasiswa\n  writeln('nama lengkap: ', siswa.nama_lengkap);\n  writeln('nama panggilan: ', siswa.nama_panggilan);\n  writeln('kelas: ', siswa.kelas);\n  writeln('umur: ', siswa.umur);\n  writeln('jenis kelamin: ', siswa.jenis_kelamin);\n  readln;\nend.\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Pada contoh tersebut kita mengisikan variable \u003Cstrong>siswa\u003C/strong> yang berupa RECORD dengan nilainya masing-masing lalu mencetaknya. Kira kira 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%20lengkap%3A%20Budi%20Pekerti%0Anama%20panggilan%3A%20Budi%0Akelas%3A%2010%0Aumur%3A%2015%0Ajenis%20kelamin%3A%20Laki%20laki\" 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 lengkap: Budi Pekerti\nnama panggilan: Budi\nkelas: 10\numur: 15\njenis kelamin: Laki laki\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Nilai dalam variable RECORD ini pada dasarnya seperti variable biasa, sehingga dapat dilakukan operasi \u003Ca href=\"https://invasikode.com/operasi-aritmatika-pascal/\">aritmatika\u003C/a> maupun \u003Ca href=\"https://invasikode.com/operasi-logika-pascal/\">boolean\u003C/a>.\u003C/p>\n\u003Cp>Kalau melihat contoh kode tersebut sepertinya terlihat panjang ya. Apa ada cara supaya lebih singkat?\u003C/p>\n\u003Cp>\u003Cstrong>Ada dong...\u003C/strong>\u003C/p>\n\u003Cp>Untuk mempersingkat pemanggilan tipe data RECORD kita bisa menggunakan perintah WITH DO.\u003C/p>\n\u003Ch2 id=\"menggunakan-with-do-untuk-mengakses-nilai-record\">Menggunakan WITH DO untuk Mengakses Nilai RECORD\u003C/h2>\n\u003Cp>\u003Cstrong>WITH DO\u003C/strong> memungkinkan kita untuk menggunakan RECORD sekaligus. Jadi saat akan mengakses nilai dalam RECORD kita tidak perlu lagi memanggil nama variablenya.\u003C/p>\n\u003Cp>Mari kita modifikasi kode yang sebelumnya kita buat, dengan menggunakan WITH DO.\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%20BelajarRecord%3B%0Auses%20crt%3B%0A%0Atype%0AData_Siswa%20%3D%20record%0A%20%20nama_lengkap%20%20%3A%20string%3B%0A%20%20nama_panggilan%3A%20string%3B%0A%20%20kelas%20%20%20%20%20%20%20%20%20%3A%20integer%3B%0A%20%20umur%20%20%20%20%20%20%20%20%20%20%3A%20integer%3B%0A%20%20jenis_kelamin%20%3A%20string%3B%0Aend%3B%0A%0Avar%0A%20%20siswa%3A%20Data_Siswa%3B%0A%0Abegin%0A%20%20clrscr%3B%0A%20%20with%20siswa%20do%20%2F%2F%20menggunakan%20perintah%20WITH%20DO%0A%20%20begin%0A%20%20%20%20nama_lengkap%20%20%20%3A%3D%20'Budi%20Pekerti'%3B%0A%20%20%20%20nama_panggilan%20%3A%3D%20'Budi'%3B%0A%20%20%20%20kelas%20%20%20%20%20%20%20%20%20%20%3A%3D%2010%3B%0A%20%20%20%20umur%20%20%20%20%20%20%20%20%20%20%20%3A%3D%2015%3B%0A%20%20%20%20jenis_kelamin%20%20%3A%3D%20'Laki-laki'%3B%0A%20%20end%3B%0A%0A%20%20%2F%2F%20mencetak%20isi%20RECORD%20datasiswa%0A%20%20with%20siswa%20do%0A%20%20begin%0A%20%20%20%20writeln('nama%20lengkap%3A%20'%2C%20nama_lengkap)%3B%0A%20%20%20%20writeln('nama%20panggilan%3A%20'%2C%20nama_panggilan)%3B%0A%20%20%20%20writeln('kelas%3A%20'%2C%20kelas)%3B%0A%20%20%20%20writeln('umur%3A%20'%2C%20umur)%3B%0A%20%20%20%20writeln('jenis%20kelamin%3A%20'%2C%20jenis_kelamin)%3B%0A%20%20end%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 BelajarRecord;\nuses crt;\n\ntype\nData_Siswa = record\n  nama_lengkap  : string;\n  nama_panggilan: string;\n  kelas         : integer;\n  umur          : integer;\n  jenis_kelamin : string;\nend;\n\nvar\n  siswa: Data_Siswa;\n\nbegin\n  clrscr;\n  with siswa do // menggunakan perintah WITH DO\n  begin\n    nama_lengkap   := 'Budi Pekerti';\n    nama_panggilan := 'Budi';\n    kelas          := 10;\n    umur           := 15;\n    jenis_kelamin  := 'Laki-laki';\n  end;\n\n  // mencetak isi RECORD datasiswa\n  with siswa do\n  begin\n    writeln('nama lengkap: ', nama_lengkap);\n    writeln('nama panggilan: ', nama_panggilan);\n    writeln('kelas: ', kelas);\n    writeln('umur: ', umur);\n    writeln('jenis kelamin: ', jenis_kelamin);\n  end;\n  readln;\nend.\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Jika dijalankan output yang dihasilkan akan sama seperti sebelumnya.\u003C/p>\n\u003Cp>Fungsi perintah WITH DO disini adalah untuk menggunakan inisial dari variable. Sehingga seluruh blok kode yang berupa variable di antara BEGIN dan END akan otomatis merujuk pada variable RECORD.\u003C/p>\n\u003Cp>Jadi lebih bersih bukan :D\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 membahas tentang \u003Ca href=\"https://invasikode.com/array-pascal/\">array 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,185],{"text":173,"depth":174,"id":175},"Pengertian RECORD Pada Pascal",2,"pengertian-record-pada-pascal",{"text":177,"depth":174,"id":178},"Format Penulisan RECORD pada Pascal","format-penulisan-record-pada-pascal",{"text":180,"depth":174,"id":181},"Mengakses Nilai pada RECORD","mengakses-nilai-pada-record",{"text":183,"depth":174,"id":184},"Menggunakan WITH DO untuk Mengakses Nilai RECORD","menggunakan-with-do-untuk-mengakses-nilai-record",{"text":186,"depth":174,"id":187},"Penutup","penutup",1791045067407]