Setelah mempelajari perintah write dan writeln, dalam tutorial belajar pascal kali ini kita akan membahas tentang cara penggunaan perintah read dan readln di dalam bahasa pemrograman pascal.
Fungsi perintah read dan readln
Jika perintah write dan writeln berfungsi untuk menampilkan 'sesuatu' ke jendela tampilan, maka perintah read dan readln berfungsi untuk memasukkan 'sesuatu' ke dalam kode program. Di dalam pemrograman, ini disebut sebagai perintah 'input'.
Cara Penulisan read dan readln
Untuk dapat menggunakan perintah read dan readln, kita harus mempersiapkan variabel yang akan menampung hasil inputan dari pengguna. Variabel ini juga harus memiliki tipe data yang sama dengan apa yang akan diinput.
Sebagai contoh, jika kita mengharapkan pengguna untuk memasukkan nama, maka variabel penampung harus bertipe string, namun jika kita meminta inputan umur, maka harus menggunakan variabel bertipe integer.
Agar lebih memahami konsep ini, berikut adalah contoh kode program penggunaan kedua perintah ini:
program input; uses crt; var  nama,alamat:string;  umur:integer;  ipk:real; begin  clrscr;  writeln('Masukkan Data Mahasiswa');  writeln('=======================');  write('Nama  :');  readln(nama);  write('Alamat :');  readln(alamat);  write('Umur  :');  read(umur);  write('IPK   :');  readln(ipk);  writeln;  writeln('=========HASIL=========');  write('Nama: ',nama,'. Alamat: ',alamat);  writeln('. Umur: ',umur,'. IPK: ',ipk:1:2);  readln; end.
Hasil kode program:
Dalam kode diatas, saya menampung hasil inputan dalam variabel nama, alamat, umur, dan ipk. Ketika kode program sampai pada perintah readln(nama), maka tampilan akan berhenti sesaat untuk menunggu inputan. Tombol Enter digunakan untuk mengakhiri proses input, dan program akan lanjut ke perintah berikutnya.
Perbedaan read dan readln
Perintah read dan readln sama-sama digunakan untuk meminta input dari pengguna. Keduanya memiliki perbedaan dari cara pembacaan data.
Perintah read akan membaca data secara 'horizontal'. Setelah proses input selesai, posisi cursor akan tetap berada di baris yang sama. Kita bisa menggunakan karakter 'spasi' atau 'enter' untuk memisahkan 1 input dengan input lainnya (dengan beberapa pengecualian).
Perintah readln akan membaca data secara 'vertikal'. Setelah proses input selesai, posisi cursor akan pindah ke baris baru. Kita bisa menggunakan karakter 'enter' untuk memisahkan 1 input dengan input lainnya.
Defenisi perbedaan diatas 'hanya' secara teori. Dalam prakteknya, kedua perintah ini akan membuat prilaku berbeda tergantung tipe data yang digunakan. Terutama untuk perintah read yang kadang berfungsi 'aneh'. Kita akan melihat permasalahan ini melalui beberapa contoh kode program.
Penggunaan read dan readln untuk tipe data integer dan real
Jika menggunakan tipe data angka (integer/real), perintah read akan membaca seluruh inputan yang dipisah dengan spasi maupun enter. Berikut contoh penggunaannya:
program input; uses crt; var  a,b,c,d:integer; begin  clrscr;  writeln('Input 4 angka, dipisah dengan spasi:');  read(a);  read(b);  read(c);  read(d);  writeln;  writeln('Hasil Input:');  writeln('a: ',a,', b: ',b,', c: ',c,', d: ',d);  readln; readln; end.
Hasil kode program:
Input 4 angka, dipisah dengan spasi: 65 7 89 999 Hasil Input: a: 65, b: 7, c: 89, d: 999
Perhatikan bahwa saya menggunakan 2 kali perintah readln di akhir program. Ini digunakan untuk 'menahan' jendela program agar tidak langsung menutup ketika di–run. Jika tidak menggunakan ini, anda bisa melihat hasil program dari menu Debug->User Screen atau menekan tombol ALT+F5.
Perintah diatas juga bisa ditulis menjadi seperti berikut ini:
program input; uses crt; var a,b,c,d:integer; begin clrscr; writeln('Input 4 angka, dipisah dengan spasi:'); read(a,b,c,d); writeln; writeln('Hasil Input:'); writeln('a: ',a,'. b: ',b,'. c: ',c,' d: ',d); readln; end.
Kali ini saya menggabungkan penulisan input 4 variabel ke dalam 1 perintah read.
Jika menggunakan perintah readln, maka kita harus memisahkan keempat inputan dengan enter, seperti contoh berikut:
program input; uses crt; var a,b,c,d:integer; begin clrscr; writeln('Input 4 angka, dipisah dengan enter:'); readln(a); readln(b); readln(c); readln(d); writeln; writeln('Hasil Input:'); writeln('a: ',a,'. b: ',b,'. c: ',c,' d: ',d); readln; end.
Hasil program:
Input 4 angka, dipisah dengan enter: 45 23 65 111 Hasil Input: a: 45. b: 23. c: 65 d: 111
Khusus untuk tipe data angka (integer/real), perintah read bisa digunakan dengan pemisah spasi, maupun enter. Berikut contohnya:
program input; uses crt; var a,b,c,d,e,f,g,h,i:integer; begin clrscr; writeln('Input Matriks 3x3'); read(a,b,c); read(d,e,f); read(g,h,i); writeln; writeln('Hasil Matriks:'); writeln(a,' ',b,' ',c); writeln(d,' ',e,' ',f); writeln(g,' ',h,' ',i); readln; readln; end.
Hasil program:
Input Matriks 3x3 4 5 6 9 7 1 4 9 9 Hasil Matriks: 4 5 6 9 7 1 4 9 9
Penggunaan read dan readln untuk tipe data char
Jika menggunakan tipe data char, perintah read akan membaca seluruh karakter teks (termasuk spasi dan enter) dalam 1 baris secara vertikal. Kita bisa mencoba hal ini melalui kode program berikut:
program input; uses crt; var a,b,c,d,e:char; begin clrscr; writeln('Input Teks Sembarang (5 karakter)'); read(a); read(b); read(c); read(d); read(e); Â writeln; writeln('Hasil Teks:'); write(a,' ',b,' ',c,' ',d,' ',e); readln; readln; end.
Hasil program:
Input Teks Sembarang (5 karakter) belajar Hasil Teks: b e l a j
Jika kita menginput 5 karakter (atau lebih), dan mengakhiri dengan tombol enter, tiap-tiap varibel akan diisi dengan 5 karakter pertama dari teks (teks ke-6 dan seterusnya akan diabaikan).
Jika anda mencoba menekan 'enter' pada saat menginput 5 karakter awal, maka pascal akan menampilkan sesuatu yang 'berbeda':
Input Teks Sembarang (5 karakter) a b Hasil Teks: Â b
Hasil diatas di dapat dengan mengetik huruf a, 'enter', huruf b, dan program akan langsung selesai. Ini terjadi karena cara pascal memproses karakter 'enter'.
Sebuah karakter enter di dalam pascal terdiri dari 2 karakter khusus, yakni carriage return dan line feed. Kedua karakter ini hanya tampak seperti 'spasi' (kosong), sehingga jika kita menekan tombol enter, 2 variabel akan langsung terisi. 1 dengan karakter carriage return, dan 1 lagi dengan karakter line feed. Kedua variabel ini akan ditampilkan 'kosong'.
Jika kita mengganti read dengan readln, pembacaan karakter akan dilakukan secara vertikal. Setiap karakter di pisah dengan enter, seperti contoh kode program berikut:
program input; uses crt; var a,b,c,d,e:char; begin clrscr; writeln('Input Teks Sembarang (5 karakter) :'); readln(a); readln(b); readln(c); readln(d); readln(e); Â writeln; writeln('Hasil Teks:'); write(a,' ',b,' ',c,' ',d,' ',e); readln; end.
Hasil kode program:
Input Teks Sembarang (5 karakter) : i l k o m Hasil Teks: i l k o m
Kali ini, enter pada karakter ke-2 atau lebih dianggap sebagai tombol untuk masuk ke variabel selanjutnya.
Jika anda menambahkan beberapa karakter setelah karakter pertama di sebuah baris, sisanya akan diabaikan oleh readln:
Input Teks Sembarang (5 karakter) : belajar pascal di dunia ilkom Hasil Teks: b p d d i
Penggunaan read dan readln untuk tipe data string
Apabila menggunakan tipe data string, perintah read berprilaku sedikit 'membingungkan'. Perhatikan contoh kode berikut:
program input; uses crt; var a,b,c,d:string; begin clrscr; writeln('Input 4 kata:'); Â read(a); read(b); read(c); read(d); Â writeln; writeln('Hasil Teks:'); writeln('a: ',a); writeln('b: ',b); writeln('c: ',c); writeln('d: ',d); readln; readln; end.
Jika kita menginput 4 kata yang dipisah dengan spasi, dan menekan tombol enter, keempat kata ini akan diinput kedalam variabel a:
Hasil program:
Input 4 kata: saya sedang belajar pascal Hasil Teks: a: saya sedang belajar pascal b: c: d:
Namun jika kita membuat sebuah kata dan menekan enter, program akan 'melewati' variabel b, c, dan d:
Hasil program:
Input 4 kata: saya Hasil Teks: a: saya b: c: d:
Solusi untuk hal ini, kita mengganti perintah read dengan readln. Dengan begitu, setiap teks dipisah dengan enter dan diinput kepada masing-masing variabel.
program input; uses crt; var  a,b,c,d:string; begin  clrscr;  writeln('Input 4 kata:');  readln(a);  readln(b);  readln(c);  readln(d);  writeln;  writeln('Hasil Teks:');  writeln('a: ',a);  writeln('b: ',b);  writeln('c: ',c);  writeln('d: ',d);  readln; end.
Hasil kode program:
Input 4 kata: belajar pascal di duniailkom sangat menyenangkan Hasil Teks: a: belajar pascal b: di duniailkom c: sangat d: menyenangkan
Untuk menghindari hal ini, sebaiknya kita selalu menggunakan perintah readln jika ingin memproses data input bertipe string.
Dalam tutorial kali ini kita telah membahas tentang cara menginput data ke dalam program menggunakan perintah read dan readln. Umumnya anda akan banyak menggunakan perintah readln dari pada read, karena seperti yang kita lihat pada kasus tipe data string, perintah read kadang tidak sesuai dengan apa yang dirancang.
Selanjutnya kita akan masuk ke pembahasan tentang tipe-tipe data di dalam 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
mantap…ini dia tutorial yg saya cari2 selama ini…saya berusaha belajar pemrograman delphi 7…yg sedianya bahasa perogramnya menggunakan bahasa pascal…trims atas tutorialnya ini
Terimakasih juga untuk kunjungan dan komentarnya :)
Iya, Delphi menggunakan Pascal sebagai bahasa dasar, oleh karena itu banyak mahasiswa (termasuk saya dulu) lebih nyaman menggunakan Delphi daripada VB, karena pascal sudah diajarkan diawal kuliah.
boleh dibuatkan tutorial pemrograman delphi 7..?? trims sebelumnya
Requestnya ditampung dulu y, soalnya mau menyelesaikan tutorial Pascal dulu.
Tapi sebenarnya saya lebih tertarik membahas Lazarus, aplikasi mirip delphi tetapi gratis. Borland Delphi memang jauh lebih populer tapi aplikasi asli nya berbayar, jadi terpaksa pakai yang bajak*n. Lazarus sendiri bisa di download dengan gratis dan masih terus dikembangkan.
Terimakasih Pak artikelnya sangat2 bermanfaat. Ditunggu postingan tutorial Pascal berikutnya..
Mas, Mbak, yang baik, tolong dong bhs program buat "program searching (mencari)", misal: IPK < 3,00 (IPK kurang dari 3,00)… So, nanti akan muncul beberapa nama yg IPKnya < 3,00… Trim's yaa :) (Ditunggu)
Ditunggu juga reply nya di email Saya yaa… Trim's
Saya tampung dulu y.. mungkin nanti akan dibahas dalam materi tentang kondisi IF atau array/record di Pascal agar lebih pas :)
Pak apa tutorialnya hanya sampai yag ke 11 untuk yang pasccal. Tapi terima kasih infonya, bermanfaat :D
Hehe… iya, tutorial Pascalnya masih sekedar perkenalan, belum sempat saya lanjutkan… ditunggu saja updatenya y…
Bagus banget ni artikel nya, saya tertarik buat belajar pascal. Kira2 tutorialnya bisa sampe berapa part ni? Kalo bisa secepetnya dilanjutkan. Nice Work Gan!! :D
Mungkin bisa sampe 30-40 gan.. soalnya masih banyak yang belum dibahas.. Ditunggu saja updatenya y..
Makasi bang Andre…. Tutorialnya membantu banget buat pemula…
Saya jadi cepet ngerti belajar bahasa pascal
:)
Kalo bisa di lanjutin lagi tutorialnya…Hehehe
iya nih, tutorialnya masih 'menggantung', hehe… Ditunggu updatenya ya.. :)
Gilaa…. ,,, Abang cocok jadi dosen di kampus Saya aja…. dosen di kampus saya jelasin, ane nggak ngerti…
nanti saya sarankan dosen saya agar ambil materi dari situs dunia ilkom saja…. thanks abang… :))
yesssssssssssssssssss…………………..
Nanti kalau saya jadi dosen, siapa yang lanjutin tutorial Pascal di Duniailkom ini gan? hehe…
Sip, saya juga senang tutorialnya bisa dipahami dengan mudah :)
program input;
uses crt;
var
a,b,c,d:integer;
begin
clrscr;
writeln('Input 4 angka, dipisah dengan spasi:');
read(a);
read(b);
read(c);
read(d);
writeln;
writeln('Hasil Input:');
writeln('a: ',a,', b: ',b,', c: ',c,', d: ',d);
readln; readln;
end.
maaf gan saya mau tanya , kenapa saya jalankan kode diatas hanya muncul "Input 4 angka, dipisah dengan spasi:" apakah variable tersebut harus di berikan nilai terlebih dahulu?
Betul gan, perintah read() digunakan untuk memberikan nilai ke dalam kode program (untuk input). Jadi angkanya harus ditulis juga.
Halo bang Andre, sebelumnya saya mau ngucapin terima kasih banyak atas tutorial2 belajar pemrograman yg di posting d DuniaIlkom, sangat membantu dan bermanfaat sekali, khusunya bagi saya yang baru mau belajar pemrograman hehe.
Mau nanya bang Andre, yg dimaksud kode "ipk:1:2" dalam contoh program input itu apa ya bang Andre, mohon pencerahannya bang? tadinya saya kira itu jumlah digit angka di depan dan belakang desima, contoh: 3.22, tapi setelah saya tidak sengaja mengiput 400.00, output program saat dirunning tetap menampilak 400.00, mohon pencerahannya bang Andre, terima kasih sebelumnya bang :)
Betul gan, itu menentukan jumlah digit di depan dan dibelakang. Tp jika angka yang dimasukkan melebihi batas ini (seperti 400), Pascal akan menampilkan angka itu.
Penjelasan lebih lengkap akan di bahas saat kita mempelajari tipe data real: https://www.duniailkom.com/tutorial-belajar-pascal-pengertian-dan-cara-penggunaan-tipe-data-real-pascal/
Kalo fungsi readln sebelum end. itu untuk apa ? apa ada sebutan khusus untuk fungsinya ?
Itu tambahan untuk menahan jendela cmd ketika program di run. Kalau baris tersebut dihapus, ketika program di run akan tampil sekilas saja (g sampai 1 detik). Untuk melihat hasilnya kita terpaksa tekan ALT+F5.
Penjelasan ini sudah saya bahas di tutorial sebelumnya: https://www.duniailkom.com/tutorial-belajar-pascal-aturan-dan-cara-penulisan-kode-program-pascal/
Bang kok saya gak ad bedany antara read dg readln??udah saya coba berkali2 tetap juga sama(input data vertikal),itu ngapa bang??
ngerti maksudnya, tapi kenapa 'readln' bisa menahan tampilan jendela ? readln fungsi nya meng input kan ke baris selanjutnya
Lebih tepatnya readln digunakan untuk menerima input dari user. Selama input belum diketik, jendela akan ditahan dulu.
Dengan demikian jika perintah readln kosong ditempatkan di baris terakhir, efeknya akan menahan jendela sampai user menginput sesuatu, yakni mengetik apapun di keyboard.
Masih bingung ni Bang, kenapa perintah readln harus ditulis 2x di bagian akhir. Padahalkan di program2 di tutorial sebelumnya meskipun readln ditulis hanya sekali tapi masih tetap bisa menahan jendelanya. Mohon penjelasannya Bang Andre..
Terimakasih
Sepertinya itu efek lain dari perintah read. Jika di dalam kode program ada perintah read, diakhir kode program terpaksa ditulis 2 kali readln agar bisa menahan jendela tampilan. Tp kalau tidak ada perintah read, cukup 1 kali readln.
masih kurang paham mas. maksudnya read ini sama kaya write dan readln sama kaya writeln? tpi kalo gitu. kok pas pake perintah read, kok cursor nya tetap pindah ke baris baru, gk kaya write.
Dan saya masih belum paham sama sekali bedanya. mohon pencerahannya mas. sekian terima kasih
Untuk read cursornya g pindah ke baris baru kok gan, tapi memang untuk tipe data integer, tetap bisa diinput walaupun di pisah dengan karakter enter. Tapi dengan spasi juga bisa.
Jika menggunakan readln, karakter yang diinput harus dipisahkan dengan enter.
masih kurang paham mas. Gk berpindah gmana, kan pas kita input data, cursor nya pindah ke baris baru, sama kaya readln.
dan satu lg, mksud membaca input secara horizontal sama vertikal itu gmana?
sekian terima kasih
Sudah coba kode yang ini gan?
program input;
uses crt;
var
a,b,c,d:integer;
begin
clrscr;
writeln('Input 4 angka, dipisah dengan spasi:');
read(a,b,c,d);
writeln;
writeln('Hasil Input:');
writeln('a: ',a,'. b: ',b,'. c: ',c,' d: ',d);
readln;
end.
Untuk input variabel a, b, c, dan d cukup dipisah dengan spasi. Hanya di akhir tetap harus di enter. Dan bandingkan jika read() diganti readln().
udh saya coba, dan kedua2 nya bisa dipisah dengan spasi maupun enter
Makasih Vang sejauh ini tutorialnya bermanfaat :3 xD
walaupun ane jurusan TKJ pengen belajar pascal ggwp lah :3
Siip gan…
program input;
uses crt;
var
a,b,c,d:integer;
begin
clrscr;
writeln('Input 4 angka, dipisah dengan spasi:');
read(a,b,c,d);
writeln;
writeln('Hasil Input:');
writeln('a: ',a,'. b: ',b,'. c: ',c,' d: ',d);
readln;
end.
Saya mau tanya kenapa yang muncul cuma 'Input 4 angka,dipisah dengan spasi'?
Terima kasih
Silahkan di ketik 4 angka yang dipisah dengan spasi, kemudian hasilnya di cek dengan menekan tombol ALT+F5.
Atau bisa ditambah 1 baris "readln;" lagi sebelum "end." untuk menahan jendela agar tidak langsung tertutup.
Halo bang Andre, sebelumnya saya mau ngucapin terima kasih banyak atas tutorial-tutorial belajar pemrograman yang sudah di posting di website DuniaIlkom, sangat membantu dan bermanfaat sekali, khusunya bagi saya yang baru mau belajar pemrograman hehe ????.
Saya mau tanya ni bang. Saya kan buat variabel char 3(kar1,kar2,kar3). Trus pas dibagian input dengan fungsi read dia dan variabel lainnya normal-normal aja. Tapi dibagian output(saat write variabel char) hanya variabel char yang keluarannya aneh. Misalkan di input saya masukkan "saj" di output malah keluar huruf s dengan enter(whitespace) diatasnya. Itu kesalahan saya atau memang ada aturan lainnya pada Pascal ?. Mohon sekali bantuannya, pak Andre, karena dari kemarin saya stuck disini gabisa ngelanjutin bagian lainnya jadinya :(
berikut programmnya
program fungsi_read_dan_readln;
uses
crt;
var
kar1,kar2,kar3:char;
nama, alamat:string;
umur,nilai_ulangan1,nilai_ulangan2,matr1,matr2,matr3,matr4:integer;
ipk:real;
begin
clrscr;
writeln('Masukkan Data Mahasiswa');
writeln('=======================');
write('Nama : '); readln(nama);
write('Alamat : '); readln(alamat);
write('Umur : '); readln(umur);
write('IPK : '); readln(ipk);
write('Nilai Ulangan 1&2 : '); read(nilai_ulangan1, nilai_ulangan2);
writeln('Input Matriks 2×2');
read(matr1,matr2);
read(matr3,matr4);
writeln('Input Karakter Apa Saja 3 karakter (horizontal) : ');
read(kar1,kar2,kar3);
// Hasil Inputan
writeln;
writeln('=========Hasil=========');
writeln('Nama : ',nama);
writeln('Alamat : ',alamat);
writeln('Umur : ',umur);
writeln('IPK : ',ipk:1:2);
writeln('Nilai : ',nilai_ulangan1,' & ',nilai_ulangan2);
writeln('Matriks 2×2');
writeln(matr1,' ',matr2);
writeln(matr3,' ',matr4);
writeln('Karakter dari read : ');
write(kar1, kar2, kar3);
readln;
readln;
end.
Bisa coba diganti saja read menjadi readln, karena seperti yang saya bahas di tutorial ini, read banyak "errornya". Jadi input angka bisa berurutan ke bawah.
Terimakasih sudah dijawab bang andre :D, solusinya sudah ketemu, yaitu menambahkan readln; setelah
read 3 char dalam 1 read(). Kayak gini :
read(kar1,kar2,kar3);
readln;
Siip… :)
terimakasih atas ilmu nya mas, sangat bermanfaat bagi saya yg masih awam dalam hal 'ngoding'. tetapi saya punya pertanyaan, dalam pascal gotoxy itu maksudnya bagaimana ya mas? Karena utk akhir tahun ini saya ada tugas besar. mohon masukan dan sarannya mas makasih…
GOTOXY itu function bawaan pascal untuk mengubah letak cursor di layar. Misalnya kita ingin menampilkan teks langsung di tengah2 halaman. Tapi penerapan GOTOXY ini tidak terlalu efektif, karena resolusi layar tiap2 komputer bisa beda2.
dan kalau misalkan saya lagi ngoding di sublime text, apakah bisa docopy ke aplikasi pascal nya mas? terimakasih sebelumnya
Yup bisa, hanya saja kalau pakai editor Free Pascal, nanti ada menu khusus untuk copy paste. Tidak bisa langsung dengan CRTL + V.
program input;
uses crt;
var
nama,alamat:string;
umur:integer;
ipk:real;
begin
clrscr;
writeln('Masukkan Data Mahasiswa');
writeln('=======================');
write('Nama :');
readln(nama);
write('Alamat :');
readln(alamat);
write('Umur :');
read(umur);
write('IPK :');
readln(ipk);
writeln;
writeln('=========HASIL=========');
write('Nama: ',nama,'. Alamat: ',alamat);
writeln('. Umur: ',umur,'. IPK: ',ipk:1:2);
readln;
end.
SAYA BINGUNG KOK JENDELA HASILNY CUMA:
MASUKKAN DATA MAHASISWA
==================
Nama:
Itu doang, jadi namanya siapa, umurny berapa, alamatnya dimana, IPKnya berapa itu ketikny di bagian mana ya??
tolong mass puyeng bnerr nii masalahnya program anda seperti diatas kok tiba2 ad nama:Andria Putri,umur,alamat,IPK,padahal anda tidak ad ngetik Andria Putri di program????.
Udah saya masukkin data2 di var ttp hasilnya sama sperti yg saya bilang tadi.tolong dong mass????????
Betul, kalau dijalankan pertama kali tampilannya memang seperti itu.
Silahkan ketik nama siswa (terserah), tekan enter, ketik lagi umur, enter, dst hingga ipk. Nanti hasilnya akan muncul di baris paling bawah.
"Betul, kalau dijalankan pertama kali tampilannya memang seperti itu.
Silahkan ketik nama siswa (terserah), tekan enter, ketik lagi umur, enter, dst hingga ipk. Nanti hasilnya akan muncul di baris paling bawah." Mass maksud mas ap ya???saya blom ngerti.mohon dong mass dari maren saya blom ngerti dg read dan readln ini.plissssss.
Hallo min… makasih sebelumnya udah nge share banyak tutorial pemrograman di website DI, jujur sangat membantu, tapi tapi saya punya tugas pemrograman pascal, lumayan susah nih min, jadi tugas nya, di suruh buat menu tapi make highlight shading, ini saya kasih script pascal yang sudah saya buat ya min,
program rumus_bangun_datar ;
uses crt ;
var
button: string;
pilih: shortint;
jari2, alas, sg1, sg2, sg3, tinggi, s1, s2: integer;
l_lkr, kel_lkr, l_sgt, k_sgt, l_psg, kel_psg: real;
procedure menu();
begin
textbackground(white);
clrscr;
textcolor(0);
repeat repeat
gotoxy(1,2);write('MENU PROGRAM');
gotoxy(1,3);write('————————————');
gotoxy(1,4);write('————————————');
gotoxy(1,6);write('| 1. PROGRAM RUMUS LINGKARAN |');
gotoxy(1,8);write('| 2. PROGRAM RUMUS SEGITIGA |');
gotoxy(1,10);write('| 3. PROGRAM RUMUS PERSEGI |');
gotoxy(1,12);write('| 4. KELUAR |');
gotoxy(1,14);write('————————————');
gotoxy(1,16);write('PILIHAN ANDA : ',pilih);
// validasi tombol
button := readkey;
if button = #80 then begin // keyword down
if (pilih=4) then begin
pilih := 0;
end;
inc(pilih);
end
else
if button = #72 then begin // keyword up
if (pilih=1) then begin
pilih := 5;
end;
dec(pilih);
end;
until (button = #13);
case pilih of
1: begin
gotoxy();textbackground(3);
gotoxy(1,17);writeln('——————————–');
gotoxy(1,19);writeln('PROGRAM RUMUS LINGKARAN') ;
gotoxy(1,21);write('MASUKAN RENTANG NILAI JARI-JARI : ');
readln(jari2);
l_lkr := 3.14*jari2*jari2;
kel_lkr := 3.14*(jari2+jari2);
writeln;
writeln('HASIL DARI PERHITUNGAN') ; writeln;
writeln('LUAS LINGKARAN : ', l_lkr:0:0,' cm'); writeln;
writeln('KELILING LINGKARAN : ', kel_lkr:0:0,' cm');
end;
2: begin
textbackground(4);
gotoxy(1,17);writeln('——————————–');
gotoxy(1,19);writeln('PROGRAM RUMUS SEGITIGA');
gotoxy(1,21);write('MASUKAN RENTANG NILAI ALAS : '); readln(alas);
gotoxy(1,23);write('MASUKAN RENTANG NILAI TINGGI : '); readln(tinggi);
gotoxy(1,25);write('MASUKAN RENTANG SISI 1 : '); readln(sg1);
gotoxy(1,27);write('MASUKAN RENTANG SISI 2 : '); readln(sg2);
gotoxy(1,29);write('MASUKAN RENTANG SISI 3 : '); readln(sg3);
l_sgt := alas*tinggi/2;
k_sgt := sg1+sg2+sg3;
writeln;
writeln('HASIL DARI PERHITUNGAN'); writeln;
writeln('LUAS SEGITIGA : ', l_sgt:0:0,' cm');
writeln('KELILING SEGITIGA : ', k_sgt:0:0,' cm');
end;
3: begin
gotoxy(1,17);writeln('——————————–');
gotoxy(1,19);writeln('PROGRAM RUMUS PERSEGI');
gotoxy(1,21);write('MASUKAN RENTANG NILAI SISI 1 : '); readln(s1);
gotoxy(1,23);write('MASUKAN RENTANG NILAI SISI 2 : '); readln(s2);
l_psg := s1*s2;
kel_psg := 4*s1;
writeln;
writeln('HASIL DARI PERHITUNGAN'); writeln;
writeln('LUAS PERSEGI : ', l_psg:0:0, ' cm'); writeln;
writeln('KELILING PERSEGI : ', kel_psg:0:0, ' cm');
end;
4: begin
gotoxy(1,17);writeln('————————————');
gotoxy(1,19);writeln('TERIMA KASIH KARENA TELAH BERMAIN');
writeln ;
gotoxy(1,21);writeln('SALAM PASCAL……:)');
end;
end;
readkey;
clrscr;
until (pilih = 4);
end.
mohon bantuanya, terima kasih….
Kek nya Abang lebih pantas jdi dosen algoritma dan pemrograman terstruktur d kampus sya, soalnya dosen sya yg skrg ngejelasin Pascal cuma nulis program doang abis itu suruh mahasiswa nya ngikutin program yg dia tulis (bhs kasar nya cuma nyuruh jiplak aja)
Hehe, terimakasih…
Beberapa dosen memang ada yang seperti itu, dulu saya juga mengalami.
Sebagai mahasiswa jurusan komputer, mau g mau kita yang harus aktif belajar otodidak dari buku atau dari internet seperti web duniailkom ini. Jika mengandalkan dari dosen saja, kadang tidak lengkap atau cuma dapat sepotong2.