Tutorial Belajar Pascal Part 11: Cara Penggunaan serta Perbedaan Read dan Readln Pascal

Posted on

Setelah mempelajari perintah write dan writeln, di panduan belajar pascal kali ini kita akan membahas mengenai cara penggunaan perintah read dan readln di di bahasa pemrograman pascal.


Manfaat pedoman read dan readln

Seandainya pedoman write dan writeln berfungsi untuk menampilkan ‘sesuatu’ ke jendela tampilan, karenanya pedoman read dan readln berfungsi untuk memasukkan ‘sesuatu’ ke di kode program. Di di pemrograman, ini disebut selaku pedoman ‘input’.


Cara Penulisan read dan readln

Untuk dapat menggunakan pedoman read dan readln, kita mesti mempersiapkan variabel yang akan menampung hasil inputan dari pengguna. Variabel ini pun mesti mempunyai tipe data yang sama dengan apa yang akan diinput.

Selaku contoh, apabila kita mengharapkan pengguna untuk memasukkan nama, karenanya variabel penampung mesti bertipe string, namun apabila kita meminta inputan umur, karenanya mesti menggunakan variabel bertipe integer.

Agar lebih memahami konsep ini, berikut ialah contoh kode program pemakaian kedua pedoman ini:

Hasil kode program:

Di kode diatas, saya menampung hasil inputan di variabel nama, tempat tinggal, umur, dan ipk. Ketika kode program hingga di pedoman readln(nama), karenanya tampilan akan berhenti sesaat untuk menunggu inputan. Tombol Enter digunakan untuk mengakhiri proses input, dan program akan lanjut ke pedoman berikutnya.


Perbedaan read dan readln

Command read dan readln sama-sama digunakan untuk meminta input dari pengguna. Keduanya mempunyai perbedaan dari cara pembacaan data.

Command read akan membaca data secara ‘horizontal’. Setelah proses input selesai, posisi cursor akan tetap berada di baris yang sama. Kita dapat menggunakan karakter ‘spasi’ atau ‘enter’ untuk memisahkan 1 input dengan input lainnya (dengan beberapa pengecualian).

Command readln akan membaca data secara ‘vertikal’. Setelah proses input selesai, posisi cursor akan pindah ke baris baru. Kita dapat menggunakan karakter ‘enter’ untuk memisahkan 1 input dengan input lainnya.

Defenisi perbedaan diatas ‘hanya’ secara teori. Di prakteknya, kedua pedoman ini akan membangun prilaku berbeda tergantung tipe data yang digunakan. Terutama untuk pedoman read yang kadang berfungsi ‘aneh’. Kita akan melihat permasalahan ini via beberapa contoh kode program.


Pemakaian read dan readln untuk tipe data integer dan real

Seandainya menggunakan tipe data angka (integer/real), pedoman read akan membaca seluruh inputan yang dipisah dengan spasi maupun enter. Berikut contoh penggunaannya:

Hasil kode program:

Perhatikan bahwa saya menggunakan 2 kali pedoman readln di ahir program. Ini digunakan untuk ‘menahan’ jendela program agar tak seketika menutup ketika di–run. Seandainya tak menggunakan ini, rekan-rekan dapat melihat hasil program dari fitur Debug->User Screen atau menekan tombol ALT+F5.

Command diatas pun dapat ditulis menjadi seperti berikut ini:

Kali ini saya menggabungkan penulisan input 4 variabel ke di 1 pedoman read.

Seandainya menggunakan pedoman readln, karenanya kita mesti memisahkan keempat inputan dengan enter, seperti contoh berikut:

Hasil program:

Khusus untuk tipe data angka (integer/real), pedoman read dapat digunakan dengan pemisah spasi, maupun enter. Berikut contohnya:

Hasil program:


Pemakaian read dan readln untuk tipe data char

Seandainya menggunakan tipe data char, pedoman read akan membaca seluruh karakter teks (termasuk spasi dan enter) di 1 baris secara vertikal. Kita dapat mencoba hal ini via kode program berikut:

Hasil program:

Seandainya kita menginput 5 karakter (atau lebih), dan mengakhiri dengan tombol enter, tiap-tiap varibel akan diisi dengan 5 karakter pertama-tama dari teks (teks ke-6 dan seterusnya akan diabaikan).

Seandainya rekan-rekan mencoba menekan ‘enter’ di dikala menginput 5 karakter awal, karenanya pascal akan menampilkan sesuatu yang ‘berbeda’:

Hasil diatas di dapat dengan mengetik huruf a, ‘enter’, huruf b, dan program akan seketika selesai. Ini terjadi karena cara pascal memproses karakter ‘enter’.

Sebuah karakter enter di di pascal terdiri dari 2 karakter khusus, yakni carriage return dan line feed. Kedua karakter ini hanya tampak seperti ‘spasi’ (kosong), sehingga apabila kita menekan tombol enter, 2 variabel akan seketika terisi. 1 dengan karakter carriage return, dan 1 lagi dengan karakter line feed. Kedua variabel ini akan ditampilkan ‘kosong’.

Seandainya kita mengganti read dengan readln, pembacaan karakter akan dilakukan secara vertikal. Setiap karakter di pisah dengan enter, seperti contoh kode program berikut:

Hasil kode program:

Kali ini, enter di karakter ke-2 atau lebih dianggap selaku tombol untuk masuk ke variabel berikutnya.

Seandainya rekan-rekan menambahkan beberapa karakter setelah karakter pertama-tama di sebuah baris, sisanya akan diabaikan oleh readln:


Pemakaian read dan readln untuk tipe data string

Apabila menggunakan tipe data string, pedoman read berprilaku sedikit ‘membingungkan’. Perhatikan contoh kode berikut:

Seandainya kita menginput 4 kata yang dipisah dengan spasi, dan menekan tombol enter, keempat kata ini akan diinput kedalam variabel a:

Hasil program:

Namun apabila kita membangun sebuah kata dan menekan enter, program akan ‘melewati’ variabel b, c, dan d:

Hasil program:

Solusi untuk hal ini, kita mengganti pedoman read dengan readln. Dengan semacam itu, setiap teks dipisah dengan enter dan diinput kepada masing-masing variabel.

Hasil kode program:

Untuk menghindari hal ini, sebaiknya kita selalu menggunakan pedoman readln apabila ingin memproses data input bertipe string.


Di panduan kali ini kita telah membahas mengenai cara menginput data ke di program menggunakan perintah read dan readln. Umumnya rekan-rekan akan banyak menggunakan pedoman readln dari di read, karena seperti yang kita lihat di kasus tipe data string, pedoman read kadang tak sesuai dengan apa yang dirancang.

Berikutnya kita akan masuk ke pembahasan mengenai tipe-tipe data di di pascal, yang dimulai dengan tipe data integer.

Referensi:

http://stackoverflow.com/questions/5693186/pascal-read-readln-function-impurities

http://stackoverflow.com/questions/8997678/pascal-read-function-strange-behavior


Sumber https://www.duniailkom.com/