Selasa, 16 Oktober 2012

Perbedaan Fungsi getch() dan getche() Pada C/C++


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 <stdio>
#include <conio>
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 <stdio>
#include <conio>
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:
  1. 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.

  1. 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);


  1. 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.

  1. 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)


Setelah pada kesempatan sebelumnya kita belajar tentang Variabel nah sekarang kita akan mengenal printf dan scanf pada Bahasa pemograman C (ingat kita akan belajar menggunakan bahasa C). Nah untuk memahami lebih jauh tentang printf dan scanf, saya sarankan untuk langsung mempraktekannya ok? sekarang siapkan jalankan notepad++nya dan jangan lupa MinGWnya harus sudah ada. oke kita mulai saja pengenalannya.
printf dan scanf merupakan fungsi didalam bahasa pemograman C. kita pecah pasang sejoli itu, pertama kita kenal printf. printf adalah fungsi di bahasa C yang digunakan untuk menampilkan apa yang kita tulis di program. cara menggunakan printf dalam program :

 #include int main(){
       int uang=10000;
       printf("Hello Rudi");
       printf("aku punya uang %d", uang);

       return 0; }
nah itu lah kegunaan dari printf pahamkan?
Setelah kita kenal printf, sekarang kita akan mengenal fungsi scanf. scanf itu fungsi untuk menangkap masukan dari user. cara penulisan dalam bahasa C nya adalah (ketikn program ini di notepad++!).

 #include int main(){
      int uang;
      printf("Hello Rudi");
      printf("kamu punya uang berapa?");
      scanf("%d", &uang);
    return 0; }
Pernyataan Input dan Output
dalam Program Pascal
Dalam bahasa Pascal pernyataan input
adalah pernyataan yang digunakan
untuk memasukkan data. Pernyataan
input yang ada di Pascal adalah READ
dan READLN. Sedangkan pernyataan
output adalah pernyataan yang
digunakan untuk menampilkan hasil.
Ada dua pernyataan output yaitu WRITE
dan WRITELN. Berikut ini contoh
program Pascal tentang cara
melakukan input nama dan NRP
(nomor induk mahasiswa).
program nama_nrp;
uses wincrt;
var
nama:char;
nrp :longint;
begin
write(‘Nama : ‘);
readln(nama);
write(‘NRP : ‘);
readln(nrp);
end.
cin dan cout merupakan beberapa
syntak di dalam c++. cin merupakan
syntak untuk inputan user kedalam
program.
cin adalah syntak untuk
menginputkan data oleh user.
contoh :
cin >> x;
penjelasan :
cin merupakan syntak untuk input
data.
>> merupakan karakter yang harus
mengikuti syntak cin. Jadi dimana cin
ditulis setelahnya wajib menuliskan
karakter >>
x merupakan tempat memori yang
akan diisi oleh inputan user.
Sebenarnya tidak harus x bisa apa
aja tergantung deklarasi yang
dideklarasikan oleh si programer.
; ini merupakan tanda akhir dari
program dalam c++. Ini wajib ditulis
setiap akhir baris program.
Jadi cin >> x; dibaca cin (user) akan
memasukkan nilai kedalam memori x.
cout adalah syntak untuk
mengoutputkan atau menampilkan
hasil ke dalam layar.
contoh :
cout << x;
Penjelasan :
cout merupakan output data ke
dalam layar.
<< merupakan karakter yang harus
mengikuti syntak cout. Jadi dimana
cout ditulis setelahnya wajib
menuliskan karakter <<
x merupakan data yang dioutputkan
yang telah diisi oleh user tentunya.
; ini merupakan tanda akhir dari
program dalam c++. Ini wajib ditulis
setiap akhir baris program.
Jadi cout << x; cout akan
menampilkan data x.