[{"data":1,"prerenderedAt":382},["ShallowReactive",2],{"tag-labels":3,"site-header":4,"article-sistem-input-dengan-read-dan-readln-pada-bahasa-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":269,"renderedTakeaway":270,"latestArticles":271,"toc":371},{"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":86,"series":87,"authors":262,"body_locale":265,"available_locales":266,"body":268,"takeway":21,"prerequisite":21},60,"Sistem Input dengan Read dan Readln pada Bahasa Pascal","Input with Read and Readln in Pascal","sistem-input-dengan-read-dan-readln-pada-bahasa-pascal","Pada kesempatan kali ini kita akan belajar tentang proses masukan dari keyboard dengan menggunakan perintah read dan readln pada Bahasa Pascal.","This time you'll learn how keyboard input works with the read and readln commands in Pascal.","2020-10-22T12:05:49.000Z",3,[83,84,85],"pascal","input-output","syntax","\u002Fog\u002Fsistem-input-dengan-read-dan-readln-pada-bahasa-pascal.png",{"id":88,"title":89,"title_en":90,"slug":91,"description":92,"description_en":93,"articles":94,"children_series":241,"parent_series":242},23,"Berkenalan dengan Bahasa Pascal","Getting Started with Pascal","pascal-intro","Dari instalasi Free Pascal di Windows dan Linux, bikin Hello World, sampai paham struktur program, komentar, dan operasi aritmatika.","Install Free Pascal on Windows or Linux, write Hello World, then learn how a Pascal program is put together, comments and arithmetic included.",[95,115,120,136,152,168,182,199,214,227],{"id":96,"title":89,"title_en":97,"slug":98,"excerpt":99,"excerpt_en":100,"has_translation":12,"published_at":101,"reading_time":81,"hidden_from_listing":15,"tags":102,"thumbnail_image":21,"og_image":106,"series":107,"authors":108},59,"Getting to Know the Pascal Language","berkenalan-dengan-bahasa-pascal","Pascal merupakan bahasa pemrograman dengan sintaks sederhana, ekspresif, dan mudah dibaca. Ini membuatnya menjadi bahasa pemrograman yang baik untuk pemula.","Pascal is a programming language with a simple, expressive, and readable syntax. That makes it a good first language for beginners.","2020-10-28T09:11:25.000Z",[83,103,104,105],"intro","pemrograman","dasar","\u002Fog\u002Fberkenalan-dengan-bahasa-pascal.png",{"id":88,"title":89,"title_en":90,"slug":91},[109],{"authors_id":110},{"id":111,"name":112,"slug":113,"role":114,"profile_picture":21},1,"Daffa Izzuddin","izzudd","Writer",{"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":86,"series":116,"authors":117},{"id":88,"title":89,"title_en":90,"slug":91},[118],{"authors_id":119},{"id":111,"name":112,"slug":113,"role":114,"profile_picture":21},{"id":121,"title":122,"title_en":123,"slug":124,"excerpt":125,"excerpt_en":126,"has_translation":12,"published_at":127,"reading_time":81,"hidden_from_listing":15,"tags":128,"thumbnail_image":21,"og_image":131,"series":132,"authors":133},61,"Menginstall Free Pascal pada Linux","Installing Free Pascal on Linux","menginstall-free-pascal-pada-linux","Untuk menjalankan kode Pascal pada sistem operasi Windows kita perlu compiler. Kali ini kita akan mengunakan Free Pascal sebagai compiler sekaligus code editor kita.","To run Pascal code you need a compiler. This time we'll use Free Pascal as both our compiler and our code editor.","2020-10-01T07:33:57.000Z",[83,129,130],"instalasi","tooling","\u002Fog\u002Fmenginstall-free-pascal-pada-linux.png",{"id":88,"title":89,"title_en":90,"slug":91},[134],{"authors_id":135},{"id":111,"name":112,"slug":113,"role":114,"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},62,"Mengenal Bagian dan Struktur Bahasa Pascal","The Parts and Structure of a Pascal Program","mengenal-bagian-dan-struktur-bahasa-pascal","Ibarat menulis surat mulai dari kepala surat sampai tanda tangan, kode Pascal juga memiliki aturan penulisan dan struktur yang harus dipenuhi. Mari kita bahas lebih lanjut.","Like a letter that runs from the letterhead to the signature, Pascal code has writing rules and a structure it has to satisfy. Here is what goes where.","2020-10-04T13:29:37.000Z",4,[83,85,105,146],"konsep","\u002Fog\u002Fmengenal-bagian-dan-struktur-bahasa-pascal.png",{"id":88,"title":89,"title_en":90,"slug":91},[150],{"authors_id":151},{"id":111,"name":112,"slug":113,"role":114,"profile_picture":21},{"id":153,"title":154,"title_en":155,"slug":156,"excerpt":157,"excerpt_en":158,"has_translation":12,"published_at":159,"reading_time":81,"hidden_from_listing":15,"tags":160,"thumbnail_image":21,"og_image":163,"series":164,"authors":165},63,"Penulisan Komentar pada Bahasa Pascal","Writing Comments in Pascal","penulisan-komentar-pada-bahasa-pascal","Kali ini kita akan membahas tentang penulisan komentar pada bahasa Pascal. Komentar adalah bagian dar kode yang tidak akan dibaca oleh komputer.","This time we'll cover how to write comments in Pascal. A comment is the part of the code the computer never reads.","2020-10-05T11:08:33.000Z",[83,161,85,162],"komentar","best-practice","\u002Fog\u002Fpenulisan-komentar-pada-bahasa-pascal.png",{"id":88,"title":89,"title_en":90,"slug":91},[166],{"authors_id":167},{"id":111,"name":112,"slug":113,"role":114,"profile_picture":21},{"id":169,"title":170,"title_en":171,"slug":172,"excerpt":173,"excerpt_en":174,"has_translation":12,"published_at":175,"reading_time":81,"hidden_from_listing":15,"tags":176,"thumbnail_image":21,"og_image":177,"series":178,"authors":179},64,"Output dengan Write dan Writeln pada Bahasa Pascal","Output with Write and Writeln in Pascal","output-dengan-write-dan-writeln-pada-bahasa-pascal","Sistem output merupakan suatu yang sangat penting dalam pemrograman. Bukan cuma pemrograman, bahkan semua hal pasti berorientasi pada output.","Output matters in programming, and not only there: every process is judged by what it produces. This is how Pascal puts text on the console.","2020-10-09T11:17:19.000Z",[83,84,85],"\u002Fog\u002Foutput-dengan-write-dan-writeln-pada-bahasa-pascal.png",{"id":88,"title":89,"title_en":90,"slug":91},[180],{"authors_id":181},{"id":111,"name":112,"slug":113,"role":114,"profile_picture":21},{"id":183,"title":184,"title_en":185,"slug":186,"excerpt":187,"excerpt_en":188,"has_translation":12,"published_at":189,"reading_time":190,"hidden_from_listing":15,"tags":191,"thumbnail_image":21,"og_image":194,"series":195,"authors":196},65,"Variable, Konstanta, dan Tipe Data pada Pascal","Variables, Constants, and Data Types in Pascal","variable-konstanta-dan-tipe-data-pada-pascal","Variable, konstanta, dan tipe data merupakan jantung dari pemrograman yang akan kita gunakan untuk melakukan manipulasi data.","Variables, constants, and data types are the heart of programming: they're what you use to manipulate data.","2020-10-11T11:25:24.000Z",7,[83,192,193,105],"variabel","tipe-data","\u002Fog\u002Fvariable-konstanta-dan-tipe-data-pada-pascal.png",{"id":88,"title":89,"title_en":90,"slug":91},[197],{"authors_id":198},{"id":111,"name":112,"slug":113,"role":114,"profile_picture":21},{"id":200,"title":201,"title_en":202,"slug":203,"excerpt":204,"excerpt_en":205,"has_translation":12,"published_at":206,"reading_time":14,"hidden_from_listing":15,"tags":207,"thumbnail_image":21,"og_image":209,"series":210,"authors":211},66,"Operasi Aritmatika pada Bahasa Pascal","Arithmetic Operations in Pascal","operasi-aritmatika-pada-bahasa-pascal","Setelah tahu tentang apa itu tipe data, sekarang kita akan coba belajar tentang operasi apa saja yang dapat dilakukan pada setiap tipe data dalam bahasa Pascal.","Once you know what a data type is, the next question is which operations each type allows. Here is the answer for Pascal, type by type.","2020-10-18T11:46:28.000Z",[83,208,105],"operator","\u002Fog\u002Foperasi-aritmatika-pada-bahasa-pascal.png",{"id":88,"title":89,"title_en":90,"slug":91},[212],{"authors_id":213},{"id":111,"name":112,"slug":113,"role":114,"profile_picture":21},{"id":215,"title":216,"title_en":217,"slug":218,"excerpt":125,"excerpt_en":219,"has_translation":12,"published_at":220,"reading_time":14,"hidden_from_listing":15,"tags":221,"thumbnail_image":21,"og_image":222,"series":223,"authors":224},102,"Menginstal Free Pascal pada Windows","Installing Free Pascal on Windows","menginstal-free-pascal-pada-windows","To run Pascal code on Windows you need a compiler. This time we'll use Free Pascal as both our compiler and our code editor.","2020-09-30T07:32:11.000Z",[83,129,130],"\u002Fog\u002Fmenginstal-free-pascal-pada-windows.png",{"id":88,"title":89,"title_en":90,"slug":91},[225],{"authors_id":226},{"id":111,"name":112,"slug":113,"role":114,"profile_picture":21},{"id":228,"title":229,"title_en":230,"slug":231,"excerpt":232,"excerpt_en":233,"has_translation":12,"published_at":234,"reading_time":144,"hidden_from_listing":15,"tags":235,"thumbnail_image":21,"og_image":236,"series":237,"authors":238},103,"Membuat Program Hello World pada Pascal","Writing Your First Hello World Program in Pascal","membuat-program-hello-world-pada-pascal","Setelah melakukan instalasi Free Pascal baik pada windows atau linux, kali ini kita akan belajar untuk membuat program pertama kita. Sekaligus kenalan sedikit dengan Program Free Pascal.","With Free Pascal installed on Windows or Linux, it's time for your first program, plus a quick look around the Free Pascal IDE.","2020-10-02T13:06:35.000Z",[83,49,105],"\u002Fog\u002Fmembuat-program-hello-world-pada-pascal.png",{"id":88,"title":89,"title_en":90,"slug":91},[239],{"authors_id":240},{"id":111,"name":112,"slug":113,"role":114,"profile_picture":21},[],{"id":243,"title":64,"title_en":65,"slug":66,"parent_series":244,"children_series":245},14,{"id":111,"title":48,"title_en":48,"slug":49},[246,247,252,257],{"id":88,"title":89,"title_en":90,"slug":91,"cover_image":21},{"id":248,"title":249,"title_en":250,"slug":251,"cover_image":21},24,"Struktur Kontrol","Control Structures","pascal-struktur-kontrol",{"id":253,"title":254,"title_en":255,"slug":256,"cover_image":21},25,"Tipe Data Bentukan","Composite Types","pascal-tipe-data-bentukan",{"id":258,"title":259,"title_en":260,"slug":261,"cover_image":21},26,"Pemrograman Prosedural","Procedural Programming","pascal-pemrograman-prosedural",[263],{"authors_id":264},{"id":111,"name":112,"slug":113,"role":114,"profile_picture":21},"id",[267,265],"en","Input atau masukan merupakan hal yang sangat penting dalam pemrograman. Pada kesempatan kali ini kita akan belajar tentang proses masukan dari keyboard dengan menggunakan perintah read dan readln pada Bahasa Pascal.\n\nPerintah input sangat erat kaitannya dengan [penggunaan variable](https:\u002F\u002Finvasikode.com\u002Ftipe-data-pascal\u002F) yang nanti akan melalui proses [operasi data](https:\u002F\u002Finvasikode.com\u002Foperasi-aritmatika-pascal\u002F). Inputan berguna dalam pengisian nilai variable saat program sudah berjalan, sehingga kita tidak perlu lagi mengisikan nilai variable dengan mengubah kode program.\n\n## Penggunaan Perintah readln\n\nDari program Pascal yang telah kita buat sebelumnya pasti kalian sudah pernah bertemu dengan perintah `readln`. Perintah `readln` merupakan singkaran dari **read line** yang artinya **baca baris**. Jadi fungsi dari perintah ini adalah untuk **membaca inputan berupa ketikan dalam satu baris**.\n\nSupaya bisa membayangkan bagaimana proses input itu, coba tuliskan kode Pascal berikut ini.\n\n```pascal\nprogram input;\nuses crt;\nvar\n  nama: string;\n  umur: integer;\n\nbegin\n  clrscr;\n  write('nama: ');\n  readln(nama); \u002F\u002F input nama\n  write('umur: ');\n  readln(umur); \u002F\u002F input umur\n\n  \u002F\u002F output nama dan umur\n  writeln; \u002F\u002F menambah satu spasi\n  writeln('nama saya ', nama);\n  writeln('saya berusia ', umur, ' tahun');\n  readln;\nend.\n```\n\nSetelah kalian jalankan maka program akan berhenti dengan tulisan \"nama: \". Nah kalian bisa mengetikkan nama kalian lalu tekan **enter**. Selanjutnya akan keluar tulisan \"umur: \" silahkan kalian ketikkan umur kalian lalu tekan **enter**.\n\nJika saya mengisi \"Budi\" dan \"17\" maka outputnya kurang lebih akan sebagai berikut\n\n```\nnama: Budi\numur: 17\n\nnama saya Budi\nsaya berusia 17 tahun\n```\n\nNah dari output tersebut kita bisa melihat bahwa nilai variable **nama** dan **umur** memiliki nilai yang sama seperti inputan yang kalian ketik. variable **nama** berisi \"Budi\", dan variable **umur** berisi \"17\".\n\nProses input juga harus meperhatikan tipe data. Variable **nama** memiliki tipe data string, sehingga hanya dapat menerima kata atau kalimat saja. Sedangkan variable **umur** memiliki tipe data integer, sehingga hanya bisa diisikan angka bulat.\n\n> Variable bertipe data string dapat menerima input berupa angka, namun nilai variable tersebut tidak akan bisa melalui proses hitung. Karena angka yang dimasukkan tetap dibaca sebagai kata kata.\n\nUntuk eksperimen coba kalian ubah ubah inputan nama dan umurnya. Oh iya coba juga lakukan input umur dengan angka desimal semisal **9.2**.\n\n## Penggunaan Perintah read\n\nPerintah `read` sama seperti `readln` berfungsi sebagai sistem input. Yang membedakan keduanya hanya cara memasukkan data pada variable saja.\n\nPada perintah `readln` kita harus menekan tombol **enter** agar inputan dapat masuk kedalam nilai variable. Sedangkan pada perintah `read` kita bisa menggunakan tombol **spasi** atau **enter** untuk memasukkan inputan kedalam nilai variable.\n\nSekarang coba kita modifikasi sedikit kode yang telah kita buat sebelumnya.\n\n```pascal\nprogram input;\nuses crt;\nvar\n  nama: string;\n  umur: integer;\n  jmlsaudara: integer; \u002F\u002F tambahkan variable baru\n\nbegin\n  clrscr;\n  write('nama: ');\n  readln(nama); \u002F\u002F input nama\n  writeln('masukkan umur dan jumlah saudara dipisahkan spasi');\n  read(umur); \u002F\u002F input umur\n  read(jmlsaudara); \u002F\u002F input jumlah saudara\n\n  \u002F\u002F output nama dan umur\n  writeln; \u002F\u002F menambah satu spasi\n  writeln('nama saya ', nama);\n  writeln('saya berusia ', umur, ' tahun');\n  writeln('saya punya ', jmlsaudara, ' saudara')\n  readln;\nend.\n```\n\nSelanjutnya coba jalankan kode tersebut lalu masukkan nama lalu tekan enter. Selanjutnya masukkan umur dan jumlah saudara dipisahkan **spasi** contohnya **\"29 4\"** lalu tekan **enter**. Kalau sudah kurang lebih outputnya akan terlihat seperti ini.\n\n```\nnama: Adi\nmasukkan umur dan jumlah saudara dipisahkan spasi\n29 4\n\nnama saya Adi\nsaya berusia 29 tahun\nsaya punya 4 saudara\n```\n\nBisa dilihat kan sesuai outputnya. Variable **nama** bernilai \"Adi\", Variable **umur** dan **jmlsaudara** bernilai \"29\" dan \"4\".\n\n> Jika kalian ingin menggunakan perintah read untuk input variable dengan tipe data string, maka memisahkannya harus dengan menggunakan tombol enter. Ini karena inputan spasi pada tipe data string juga dibaca sebagai sebuah karakter.\n\nSeperti biasa, sebagai eksperimen kalian bisa coba ubah ubah inputan yang kalian ketikkan.\n\n## Penutup\n\nJadi perintah untuk melakukan sistem input pada Pascal ada 2 yaitu read dan readln. Hal yang membedakan perintah read dan readln terdapat pada cara memasukkan nilai variable saja. Jika perintah readln harus menggunakan **enter**, sedangkan perintah read bisa menggunakan **spasi**.\n\nSemoga tutorial kali ini bermanfaat :D Untuk tutorial selanjutnya kita akan coba [membuat program Pascal sederhana](https:\u002F\u002Finvasikode.com\u002Fkonversi-waktu-pascal\u002F) menggabungkan semua yang sudah kita pelajari sebelumnya.\n","\u003Cp>Input atau masukan merupakan hal yang sangat penting dalam pemrograman. Pada kesempatan kali ini kita akan belajar tentang proses masukan dari keyboard dengan menggunakan perintah read dan readln pada Bahasa Pascal.\u003C\u002Fp>\n\u003Cp>Perintah input sangat erat kaitannya dengan \u003Ca href=\"https:\u002F\u002Finvasikode.com\u002Ftipe-data-pascal\u002F\">penggunaan variable\u003C\u002Fa> yang nanti akan melalui proses \u003Ca href=\"https:\u002F\u002Finvasikode.com\u002Foperasi-aritmatika-pascal\u002F\">operasi data\u003C\u002Fa>. Inputan berguna dalam pengisian nilai variable saat program sudah berjalan, sehingga kita tidak perlu lagi mengisikan nilai variable dengan mengubah kode program.\u003C\u002Fp>\n\u003Ch2 id=\"penggunaan-perintah-readln\">Penggunaan Perintah readln\u003C\u002Fh2>\n\u003Cp>Dari program Pascal yang telah kita buat sebelumnya pasti kalian sudah pernah bertemu dengan perintah \u003Ccode>readln\u003C\u002Fcode>. Perintah \u003Ccode>readln\u003C\u002Fcode> merupakan singkaran dari \u003Cstrong>read line\u003C\u002Fstrong> yang artinya \u003Cstrong>baca baris\u003C\u002Fstrong>. Jadi fungsi dari perintah ini adalah untuk \u003Cstrong>membaca inputan berupa ketikan dalam satu baris\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cp>Supaya bisa membayangkan bagaimana proses input itu, coba tuliskan kode Pascal berikut 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%20input%3B%0Auses%20crt%3B%0Avar%0A%20%20nama%3A%20string%3B%0A%20%20umur%3A%20integer%3B%0A%0Abegin%0A%20%20clrscr%3B%0A%20%20write('nama%3A%20')%3B%0A%20%20readln(nama)%3B%20%2F%2F%20input%20nama%0A%20%20write('umur%3A%20')%3B%0A%20%20readln(umur)%3B%20%2F%2F%20input%20umur%0A%0A%20%20%2F%2F%20output%20nama%20dan%20umur%0A%20%20writeln%3B%20%2F%2F%20menambah%20satu%20spasi%0A%20%20writeln('nama%20saya%20'%2C%20nama)%3B%0A%20%20writeln('saya%20berusia%20'%2C%20umur%2C%20'%20tahun')%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 input;\nuses crt;\nvar\n  nama: string;\n  umur: integer;\n\nbegin\n  clrscr;\n  write('nama: ');\n  readln(nama); \u002F\u002F input nama\n  write('umur: ');\n  readln(umur); \u002F\u002F input umur\n\n  \u002F\u002F output nama dan umur\n  writeln; \u002F\u002F menambah satu spasi\n  writeln('nama saya ', nama);\n  writeln('saya berusia ', umur, ' tahun');\n  readln;\nend.\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Setelah kalian jalankan maka program akan berhenti dengan tulisan &quot;nama: &quot;. Nah kalian bisa mengetikkan nama kalian lalu tekan \u003Cstrong>enter\u003C\u002Fstrong>. Selanjutnya akan keluar tulisan &quot;umur: &quot; silahkan kalian ketikkan umur kalian lalu tekan \u003Cstrong>enter\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cp>Jika saya mengisi &quot;Budi&quot; dan &quot;17&quot; maka outputnya kurang lebih akan 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=\"nama%3A%20Budi%0Aumur%3A%2017%0A%0Anama%20saya%20Budi%0Asaya%20berusia%2017%20tahun\" 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: Budi\numur: 17\n\nnama saya Budi\nsaya berusia 17 tahun\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Nah dari output tersebut kita bisa melihat bahwa nilai variable \u003Cstrong>nama\u003C\u002Fstrong> dan \u003Cstrong>umur\u003C\u002Fstrong> memiliki nilai yang sama seperti inputan yang kalian ketik. variable \u003Cstrong>nama\u003C\u002Fstrong> berisi &quot;Budi&quot;, dan variable \u003Cstrong>umur\u003C\u002Fstrong> berisi &quot;17&quot;.\u003C\u002Fp>\n\u003Cp>Proses input juga harus meperhatikan tipe data. Variable \u003Cstrong>nama\u003C\u002Fstrong> memiliki tipe data string, sehingga hanya dapat menerima kata atau kalimat saja. Sedangkan variable \u003Cstrong>umur\u003C\u002Fstrong> memiliki tipe data integer, sehingga hanya bisa diisikan angka bulat.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>Variable bertipe data string dapat menerima input berupa angka, namun nilai variable tersebut tidak akan bisa melalui proses hitung. Karena angka yang dimasukkan tetap dibaca sebagai kata kata.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>Untuk eksperimen coba kalian ubah ubah inputan nama dan umurnya. Oh iya coba juga lakukan input umur dengan angka desimal semisal \u003Cstrong>9.2\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Ch2 id=\"penggunaan-perintah-read\">Penggunaan Perintah read\u003C\u002Fh2>\n\u003Cp>Perintah \u003Ccode>read\u003C\u002Fcode> sama seperti \u003Ccode>readln\u003C\u002Fcode> berfungsi sebagai sistem input. Yang membedakan keduanya hanya cara memasukkan data pada variable saja.\u003C\u002Fp>\n\u003Cp>Pada perintah \u003Ccode>readln\u003C\u002Fcode> kita harus menekan tombol \u003Cstrong>enter\u003C\u002Fstrong> agar inputan dapat masuk kedalam nilai variable. Sedangkan pada perintah \u003Ccode>read\u003C\u002Fcode> kita bisa menggunakan tombol \u003Cstrong>spasi\u003C\u002Fstrong> atau \u003Cstrong>enter\u003C\u002Fstrong> untuk memasukkan inputan kedalam nilai variable.\u003C\u002Fp>\n\u003Cp>Sekarang coba kita modifikasi sedikit kode yang telah kita buat sebelumnya.\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%20input%3B%0Auses%20crt%3B%0Avar%0A%20%20nama%3A%20string%3B%0A%20%20umur%3A%20integer%3B%0A%20%20jmlsaudara%3A%20integer%3B%20%2F%2F%20tambahkan%20variable%20baru%0A%0Abegin%0A%20%20clrscr%3B%0A%20%20write('nama%3A%20')%3B%0A%20%20readln(nama)%3B%20%2F%2F%20input%20nama%0A%20%20writeln('masukkan%20umur%20dan%20jumlah%20saudara%20dipisahkan%20spasi')%3B%0A%20%20read(umur)%3B%20%2F%2F%20input%20umur%0A%20%20read(jmlsaudara)%3B%20%2F%2F%20input%20jumlah%20saudara%0A%0A%20%20%2F%2F%20output%20nama%20dan%20umur%0A%20%20writeln%3B%20%2F%2F%20menambah%20satu%20spasi%0A%20%20writeln('nama%20saya%20'%2C%20nama)%3B%0A%20%20writeln('saya%20berusia%20'%2C%20umur%2C%20'%20tahun')%3B%0A%20%20writeln('saya%20punya%20'%2C%20jmlsaudara%2C%20'%20saudara')%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 input;\nuses crt;\nvar\n  nama: string;\n  umur: integer;\n  jmlsaudara: integer; \u002F\u002F tambahkan variable baru\n\nbegin\n  clrscr;\n  write('nama: ');\n  readln(nama); \u002F\u002F input nama\n  writeln('masukkan umur dan jumlah saudara dipisahkan spasi');\n  read(umur); \u002F\u002F input umur\n  read(jmlsaudara); \u002F\u002F input jumlah saudara\n\n  \u002F\u002F output nama dan umur\n  writeln; \u002F\u002F menambah satu spasi\n  writeln('nama saya ', nama);\n  writeln('saya berusia ', umur, ' tahun');\n  writeln('saya punya ', jmlsaudara, ' saudara')\n  readln;\nend.\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Selanjutnya coba jalankan kode tersebut lalu masukkan nama lalu tekan enter. Selanjutnya masukkan umur dan jumlah saudara dipisahkan \u003Cstrong>spasi\u003C\u002Fstrong> contohnya \u003Cstrong>&quot;29 4&quot;\u003C\u002Fstrong> lalu tekan \u003Cstrong>enter\u003C\u002Fstrong>. Kalau sudah kurang lebih outputnya akan terlihat 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%3A%20Adi%0Amasukkan%20umur%20dan%20jumlah%20saudara%20dipisahkan%20spasi%0A29%204%0A%0Anama%20saya%20Adi%0Asaya%20berusia%2029%20tahun%0Asaya%20punya%204%20saudara\" 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: Adi\nmasukkan umur dan jumlah saudara dipisahkan spasi\n29 4\n\nnama saya Adi\nsaya berusia 29 tahun\nsaya punya 4 saudara\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Bisa dilihat kan sesuai outputnya. Variable \u003Cstrong>nama\u003C\u002Fstrong> bernilai &quot;Adi&quot;, Variable \u003Cstrong>umur\u003C\u002Fstrong> dan \u003Cstrong>jmlsaudara\u003C\u002Fstrong> bernilai &quot;29&quot; dan &quot;4&quot;.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>Jika kalian ingin menggunakan perintah read untuk input variable dengan tipe data string, maka memisahkannya harus dengan menggunakan tombol enter. Ini karena inputan spasi pada tipe data string juga dibaca sebagai sebuah karakter.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>Seperti biasa, sebagai eksperimen kalian bisa coba ubah ubah inputan yang kalian ketikkan.\u003C\u002Fp>\n\u003Ch2 id=\"penutup\">Penutup\u003C\u002Fh2>\n\u003Cp>Jadi perintah untuk melakukan sistem input pada Pascal ada 2 yaitu read dan readln. Hal yang membedakan perintah read dan readln terdapat pada cara memasukkan nilai variable saja. Jika perintah readln harus menggunakan \u003Cstrong>enter\u003C\u002Fstrong>, sedangkan perintah read bisa menggunakan \u003Cstrong>spasi\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cp>Semoga tutorial kali ini bermanfaat :D Untuk tutorial selanjutnya kita akan coba \u003Ca href=\"https:\u002F\u002Finvasikode.com\u002Fkonversi-waktu-pascal\u002F\">membuat program Pascal sederhana\u003C\u002Fa> menggabungkan semua yang sudah kita pelajari sebelumnya.\u003C\u002Fp>\n","",[272,291,304,317,330,351],{"id":273,"title":274,"title_en":21,"slug":275,"excerpt":276,"excerpt_en":21,"has_translation":15,"published_at":277,"reading_time":278,"hidden_from_listing":15,"tags":279,"thumbnail_image":21,"og_image":282,"series":283,"authors":288},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,[280,281],"python","string","\u002Fog\u002Fpython-strings.png",{"id":284,"title":285,"title_en":286,"slug":287},30,"Koleksi dan String","Collections and Strings","python-collections",[289],{"authors_id":290},{"id":111,"name":112,"slug":113,"role":114,"profile_picture":21},{"id":292,"title":293,"title_en":21,"slug":294,"excerpt":295,"excerpt_en":21,"has_translation":15,"published_at":296,"reading_time":278,"hidden_from_listing":15,"tags":297,"thumbnail_image":21,"og_image":299,"series":300,"authors":301},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",[280,298],"tuple","\u002Fog\u002Fpython-tuples.png",{"id":284,"title":285,"title_en":286,"slug":287},[302],{"authors_id":303},{"id":111,"name":112,"slug":113,"role":114,"profile_picture":21},{"id":305,"title":306,"title_en":21,"slug":307,"excerpt":308,"excerpt_en":21,"has_translation":15,"published_at":309,"reading_time":278,"hidden_from_listing":15,"tags":310,"thumbnail_image":21,"og_image":312,"series":313,"authors":314},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",[280,311],"set","\u002Fog\u002Fpython-sets.png",{"id":284,"title":285,"title_en":286,"slug":287},[315],{"authors_id":316},{"id":111,"name":112,"slug":113,"role":114,"profile_picture":21},{"id":318,"title":319,"title_en":21,"slug":320,"excerpt":321,"excerpt_en":21,"has_translation":15,"published_at":322,"reading_time":278,"hidden_from_listing":15,"tags":323,"thumbnail_image":21,"og_image":325,"series":326,"authors":327},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",[280,324],"dictionary","\u002Fog\u002Fpython-dictionary.png",{"id":284,"title":285,"title_en":286,"slug":287},[328],{"authors_id":329},{"id":111,"name":112,"slug":113,"role":114,"profile_picture":21},{"id":331,"title":332,"title_en":333,"slug":334,"excerpt":335,"excerpt_en":336,"has_translation":12,"published_at":337,"reading_time":14,"hidden_from_listing":15,"tags":338,"thumbnail_image":21,"og_image":345,"series":346,"authors":348},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",[339,340,341,342,343,344],"rag","cloud-run","cloud-tasks","gcp","serverless","arsitektur","\u002Fog\u002Frag-pisah-jalur-query-dan-ingestion.png",{"id":347,"title":35,"title_en":36,"slug":37},8,[349],{"authors_id":350},{"id":111,"name":112,"slug":113,"role":114,"profile_picture":21},{"id":352,"title":353,"title_en":354,"slug":355,"excerpt":356,"excerpt_en":357,"has_translation":12,"published_at":358,"reading_time":278,"hidden_from_listing":15,"tags":359,"thumbnail_image":21,"og_image":366,"series":367,"authors":368},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",[360,361,362,363,364,365],"multi-agent","langgraph","autogen","orkestrasi","checkpoint","llm","\u002Fog\u002Fmulti-agen-linear-atau-grafik.png",{"id":347,"title":35,"title_en":36,"slug":37},[369],{"authors_id":370},{"id":111,"name":112,"slug":113,"role":114,"profile_picture":21},[372,376,379],{"text":373,"depth":374,"id":375},"Penggunaan Perintah readln",2,"penggunaan-perintah-readln",{"text":377,"depth":374,"id":378},"Penggunaan Perintah read","penggunaan-perintah-read",{"text":380,"depth":374,"id":381},"Penutup","penutup",1793295835238]