Bagi anda yang sedang belajar C/C++ pasti sering
menggunakan fungsi getch() ataupun getche(). Dari pengalaman saya banayak dosen
Pemrograman yang kurang detail dalam menjelaskan kegunaan dari fungsi getch()
ini. Nah untuk menambah pengetahuan, saya ingin sharing tentang fungsi getch
()dan getche().
Dari pengalaman saya, kebanyakan dosen pemrograman
menjelaskan kegunaan dari fungsi getch() ini hanya digunakan untuk menghentikan
suatu proses yang berjalan. Namun kegunaan fungsi getch() sebenarnya lebih dari
itu, fungsi getch sebenarnya merupakan fungsi yang digunakan untuk membaca
input dari keyboard. getch() ini merupakan kepanjangan dari Get Character. Dan
karakter yang diambil oleh fungsi getch ini tidak akan ditampilkan pada
console. Adapun karakter yang diambil dari keyboard hanya satu karakter.
Berikut adalah contohnya :
#include
#include
main()
{
char a;
printf(“Tekan sebuah tombol pada keyboard!”);
a=getch();
printf(“\nTombol yang baru anda tekan adalah %c”,a);
getch();
}
#include
main()
{
char a;
printf(“Tekan sebuah tombol pada keyboard!”);
a=getch();
printf(“\nTombol yang baru anda tekan adalah %c”,a);
getch();
}
pada syntax a=getch(); artinya apapun yang
ditekan pada keyboard akan disimpan ke dalam variabel a. salah satu kegunaan
fungsi getch() ini adalah untuk masking
password.
Lalu apa perbedaan fungsi getch() dan getche()? Seperti
yang dijelaskan tadi getch() merupakan kepanjangan dari Get Character,
sedangkan untuk getche() merupakan kepanjangan dari Get Character And Echo.
Pada fungsi getch() tombol yang kita tekan pada keyboard tidak akan ditampilkan
pada console (kecuali kita panggil variabelnya dengan fungsi printf atau fungsi
output lainnya), namun untuk getche() tombol yang kita tekan akan langsung
ditampilkan pada console. Berikut adalah contohnya:
#include
#include
main()
{
char a;
printf(“Tekan sebuah tombol pada keyboard!”);
a=getche();
printf(“\nTombol yang baru anda tekan adalah %c”,a);
getch();
}
#include
main()
{
char a;
printf(“Tekan sebuah tombol pada keyboard!”);
a=getche();
printf(“\nTombol yang baru anda tekan adalah %c”,a);
getch();
}
Pada bahasa pemrograman Pascal. Perintah yang
digunakan untuk menampilkan output adalah write dan writeln,
sedangkan untuk keperluan input (membaca input) atau menerima input digunakan
identifier standar READ atau READLN. Identifier
standar Readln sedikit berbeda dengan Read. Perintah input dan output tersebut
akan dibahas satu persatu secara detail sebagai berikut:
- WRITE
Perintah write digunakan untuk menuliskan output,
dengan posisi cursor – penunjuk aktif, terletak pada akhir
output yang ditampilkan pada baris yang sama. Write tidak menambahkan CR
setelah menampilkan data semua argument. Write menampilkan hasil tanpa ganti
baris dan tampilan berikutnya akan disambung dalam baris yang sama.
Syntax :
write(’yang
akan dituliskan’);
write(variabel);
write(‘tulisan’,
variabel);
Contoh program:
Listing Program 1.1
program nothelloworld;
begin
write(‘not a hello world’);
end.
- WRITELN
Perintah writeln digunakan untuk menuliskan output,
dengan posisi cursor – penunjuk aktif, terletak pada awal
baris berikutnya. Writeln menambahkan CR setelah menampilkan data semua
argument. Writeln digunakan untuk menampilkan tampilan perbaris, akan ganti
baris untuk tampilan berikutnya. Argumen perintah writeln boleh berupa ekspresi.
Contoh perintah penyajian writeln(‘Luas = ‘, luasPSP); bisa dikerjakan dengan
perintah: writeln(‘Luas = ‘, panjangPSP * lebarPSP);
Syntax :
writeln(’yang
akan dituliskan’);
write(variabel);
write(‘tulisan’,
variabel);
Contoh program:
Listing Program 1.2
program nothelloworld;
begin
writeln(‘not a hello world’);
end.
- WRITE dan WRITELN dapat
menerima:
- Argumen
bertipe dasar, jumlah argumen bisa lebih dari satu.
- Suatu
ekspresi
- Tanpa
argumen
Writeln (20.13) {argumen bertipe real}
Writeln (678) {argumen bertipe integer}
Writeln (True) {argumen bertipe boolean}
Writeln (‘A’) {argumen bertipe char}
Writeln (‘Turbo Pascal’) {argumen bertipe string}
writeln (2 * 3 + 4) {suatu ekspresi}
writeln (‘Jumlah barang : ‘,jumlahbarang) {lebih
dari satu ekspresi}
Writeln (‘ ‘); {tanpa argumen}
Writeln ; {tanpa argumen}
- Argumen
perintah writeln boleh berupa ekspresi. Contoh perintah penyajian
writeln(‘Luas = ‘, luasPSP); bisa dikerjakan dengan perintah:
writeln(‘Luas = ‘, panjangPSP * lebarPSP);
- Format
Output dari Write atau Writeln
Ada dua format :
- data
: n pada umumnya
- data
: lebar_total : lebar_pecahan bilangan real
writeln (’12345678901234567890′);
writeln (‘Yogya’: 10);
writeln (‘A’ : 8);
writeln (True : 8);
writeln (123 : 8);
writeln (-123 : 8);
writeln (1234.5678 :8);
writeln (1234.5678 :12:5);
writeln (1234.5678 :13:5);
writeln (1234.5678 :13:4);
writeln (1234.5678 :13:0);
writeln (1234.5678 :7:5);
writeln (True : 2);
- Bentuk
umum penulisannya :
WRITE (variabel output); WRITELN (variabel output);
- READ
Perintah read digunakan untuk menerima input, dengan
posisi cursor – penunjuk aktif, setelah diberi input pada
baris berikutnya. Read tidak membaca end of line marker. Pernyataan ini tidak
akan membuang kelebihan data. Kelebihan data akan diberikan pada read atau
readln berikutnya. Read tidak ganti baris, masih dalam baris yang sama
Syntax :
read(variabel);
Contoh program:
Listing Progra 1.3
program nothelloworld;
var
s : integer;
begin
write(‘not a hello world ’);
read(s);
write(s*s);
end.
- READLN
Perintah readln tidak terlalu jauh berbeda dengan
perintah read. Readln membaca end of line marker. Pernyataan ini menyebabkan
kelebihan data akan dibuang (tidak diberikan ke read atau readln berikutnya).
Readln juga digunakan untuk memasukkan data perbaris, artinya setelah tombol
Enter ditekan, maka akan ganti baris,
Syntax :
readln(variabel);
Contoh program:
Listing Program 1. 4
program nothelloworld;
var
s : integer;
begin
write(‘not a hello world ’);
readln(s);
write(s*s);
end.
- READ dan READLN tidak
dapat dipakai untuk memasukkan semua jenis data. Data bilangan, string
maupun karakter dapat ditangani oleh kedua pernyataan ini.
- Perintah
read atau readln dapat digunakan untuk membaca data lebih dari satu
sekaligus dengan berbagai format.
- Bentuk
umum penulisannya :
READ (variabel input) ; READLN (variabel output);
Ada banyak contoh yang dapat kita pelajari. Di bawah
ini adalah beberapa contoh yang dapat kita pelajari dan mencobanya.
- Menggunakan
Readln dan Writeln
Program MasukkanData; (*Layar*)
Var
A, B : Integer;
C : Real;
D : String[10];
E : Char;
BEGIN
(* Memasukkan data untuk masing-masing variabel *)
ReadLn(A);
ReadLn(B);
ReadLn(C);
ReadLn(D);
ReadLn(E);
(* Menampilkan data yang dimasukkan *)
WriteLn;
WriteLn(‘A = ‘,A,’ B = ‘,B,’ C = ‘,C);
WriteLn(‘D = ‘,D);
WriteLn(‘E = ‘,E);
End.
50
12345
12345
HALO
HALO JUGA
A = 50 B = 12345 C = 1.2345000000E+04
D = HALO
E = H
- Menggunakan
Read, write, dan Writeln
Program MasukData; (* Input, Output *)
(*Program untuk mengkonversikan dari derajat celcius
menjadi derajad fahrenheit *)
Var
C, F : Real;
Begin
Write(‘ Berapa Celcius ? ‘);
ReadLn(C);
F := 1.8 * C + 32;
WriteLn;
WriteLn(C,’ Celcius adalah ‘,F,’ Fahrenheit’);
End.
Berapa Celcius ? 10
1.0000000000E+01 Celcius adalah 5.0000000000E+01
Fahrenheit
- Menggunakan
Readln, write, dan Writeln
Var
Sisi, panjang, luas : integer ;
Begin
Write (‘Masukkan sisi persegi panjang =’);
Readln (sisi) ;
Write (‘Masukkan panjang persegi panjang =’);
Readln (panjang) ;
Luas : = sisi x panjang ;
Writeln (‘Luas persegi panjang adalah’, Luas) ;
End.
Output program :
Masukkan sisi persegi panjang = 10 �� data
yg diinput melalui keyboard
Masukkan panjang persegi panjang = 10
Luas persegi panjang adalah 100
- Menggunakan
write
VAR nama : string{15};
BEGIN nama := ‘Dewi’;
write(‘nama : ‘);
write(nama);
END.
Nama : Dewi
- Menggunakan
writeln
VAR nama : string{15};
BEGIN nama := ‘Dewi”;
WriteLn(‘Nama : ‘);
WriteLn(Nama);
END.
Nama :
Dewi
- Menggunakan
write dan writeln
write (‘Selamat Belajar’);
writeln (‘Pascal’);
write (‘Semoga Sukses’);
Dalam layar akan ditampilkan:
Selamat Belajar Pascal
Semoga Sukses
HATI-HATI
Kesalahan Pada Program
Ada dua jenis kesalahan yang mungkin terjadi pada
program, yaitu:
1. Kesalahan sintaks/tatabahasa (syntax error)
2. Kesalahan logika (logical error)