7. 1 Bab 07 Menginput Nilai melalui Keyboard.

Slides:



Advertisements
Presentasi serupa
ALGORITMA dan STRUKTUR DATA 1
Advertisements

Keyword, Variabel, Konstanta, Tipe Data, Operator, dan Input / Output
Input/Output.
Struktur Dasar Bahasa C
BAHASA PEMROGRAMAN C IRSAN JAELANI.
09 Control Statement if 143.
DASAR-DASAR PEMROGRAMAN C
DASAR-DASAR PEMROGRAMAN
02.1 Hari-2.
Linked List Pembuatan Simpul Awal.
Pemrograman Terstruktur
//program untuk menulis ke dalam file teks kemudian menampilkan isi file ke layar #include Void main() { const int mak 80; file p; // deklarasi file.
Perintah Input/Output
INSTRUKSI MASUKAN DAN KELUARAN
3 Variabel, Konstanta Tipe Data dan dalam Bahasa C/C++ Java dan Bab
Tipe Data, Variabel, Konstanta, Operator
Pengenalan Variabel, Tipe Data dan Perintah Masukan dan Keluaran
PERTEMUAN X DATA TINGKAT LANJUT - 2 JURUSAN TELEKOMUNIKASI POLITEKNIK ELEKTRONIKA NEGERI SURABAYA Oleh : Muh. Zen S. Hadi, ST.
5. 1 Bab 05 Tipe Data dan Mengisi Variabel.
Algoritma dan Struktur Data
Dasar Pemrograman Komputer [TKL-4002] 2010
Data dan Struktur Data.
Pertemuan String Matakuliah : T0616 / Algoritma dan Pemrograman
Statement Input – Output
Bab 05 Tipe Data dan Mengisi Variabel
Dasar Pemrograman Komputer
1 Pertemuan 1 Pengenalan Pemrograman Terstruktur C Matakuliah: H0112 – Pemrograman Bahasa Tingkat Tinggi Tahun: 2005/2006 Versi: xxx/2.
Pengantar C++.
Pertemuan 1 Pengenalan Bahasa C++.
PEMROGRAMAN DASAR.
INPUT DAN OUTPUT OLEH: SRI SUPATMI,S.KOM.
Bab & 7.3 NESTED LOOP Array 1 Dimensi 273.
Pertemuan III Komentar, Identifier dan Tipe data.
Elemen dasar Pertemuan 3.
TIPE DATA Brian Damastu, S.T., M.Kom
POINTER 6.3 & 7.3 NESTED LOOP.
Dasar Pemrograman Renni Angreni, S.Kom.
Introduction using 03b to Algorithm C / C++ teknik dasar Algoritma.
Introduction 03 using to Algorithm C / C++ teknik dasar Algoritma.
Pertemuan 1 DATA & STRUKTUR DATA.
PEMROGRAMAN DASAR (BAHASA C)
Mengenal Model Data, Perintah I/O
LAB PEMOGRAMAN DASAR (BAHASA C)
Perintah Input/Output
TIPE DATA DASAR C++.
Bagian 3 Unsur-unsur kode program Borlan C++
02.1 Hari-2.
7.1 Bab 07 Menginput Nilai melalui Keyboard 103.
291.
Teori Pendukung Introduction to Algorithm 01.
Bagian 4 LINTAS DATA.
Input Dan Output.
Pemrograman Terstruktur
ALGORITMA & STRUKTUR DATA I
VARIABEL DAN TIPE DATA Erizal, S.Si, M.Kom Sistem Informasi
S. Indriani Lestariningati, M.T
Pemrograman Terstruktur
09.3 Hari-9.
Pertemuan Hari ke - 1 Sesi-1.
PERINTAH INPUT DAN OUTPUT
Input dan Output Pertemuan ke-3 Bahasa C.
Mencetak & Membaca Data
Bab 08 Menghitung Total Data yang Diinput Dari Keyboard
Pertemuan 3 Input/output Statement Assignment Statement
Data dan Struktur Data.
Bab 05 Tipe Data dan Mengisi Variabel
Mencetak Nilai Konstanta
Pengantar Pemrograman Bahasa C
Bab 03 Variabel dan Tipe Data
Operator, Variabel, Konstanta, Tipe Data
Transcript presentasi:

7. 1 Bab 07 Menginput Nilai melalui Keyboard

5 Ilustrasi menginput data melalui keyboard 5 Memory 7. 2 Ilustrasi menginput data melalui keyboard 5 5 KEYBOARD Memory SCREEN Data yang diketik melalui keyboard harus diterima oleh sebuah variabel.

1). Instrusi input tanpa menggunakan format, 7.1. Menginput Data Melalui Keyboard Pada Program C 7. 3 1). Instrusi input tanpa menggunakan format, yang menggunakan instruksi : gets(var) var = getche() var = getchar() var = getch() 2). Instrusi input yang menggunakan format. yang menggunakan instruksi : scanf()

#include<stdio.h> void main() { char S[10]; 7.1.1. Menginput Data Melalui Keyboard Tanpa Format Pada Program C 1). Menginput string dengan gets(var) #include<stdio.h> void main() { char S[10]; printf(“Inputkan String: ); gets(S); printf(“%s”, S); } Apabila yang diinput adalah ABCDEFG maka terlihat dilayar : Inputkan String: ABCDEFG ABCDEFG

dengan gets(S); bila diinput : ABCDEFG<Enter> 0 1 2 3 4 5 6 7 8 9 S[0] S[1] S[9] dengan char S[10]; dengan gets(S); bila diinput : ABCDEFG<Enter> Maka isi array S[ ] 0 1 2 3 4 5 6 7 8 9 A B C D E F G \0 NULL Bila yang diinput : ABC DEF maka isi S menjadi A B C D E F \0

7. 6 Beberapa contoh hasil input dengan gets(var); Keterangan & bila dicetak dengan : printf( “%s “, S ); Bila data yang diinput Akan disimpan dalam variable S 0 1 2 3 4 5 6 7 8 9 ABC A B C \0 \0 = Tanda untuk batas nilai Tercetak : ABC ABCbDE A B C D E \0 Tercetak : ABC DE ABCbb A B C \0 b= blank (space) tercetak : ABCbb bbABC A B \0 tercetak : bbABC “ABC” “ A B C “ \0 Tercetak : “ABC” ‘ABC’ ‘ A B C ‘ \0 Tercetak : ‘ ABC ’ ABCDEFGHI A B C D E F G H I \0 Untuk S[10] maksimum 9 karakter ABCDEFGHIJ Error lebih dari 9 karakter 12345 1 2 3 4 5 \0 Tercetak karakter : 12345 Kalau hanya diinput <Enter> maka S tak ada isinya kalau dicetak, tak ada yang tercetak  \0 Perhatikan dua program berikut ini. #include<stdio.h> void main() { char S[10]; int I; printf(“Inputkan String : ); gets(S); I = 0; while (S[I] != ‘\0’) { printf(“%c\n”, S[I]); I++; } } Atau : #include<stdio.h> void main() { char S[10]; int I; printf(“Inputkan String : ); gets(S); for(I=0; (S[I] != ‘\0’); I++) printf(“%c\n”, S[I]); } Bila diinput ABC  maka akan tercetak : A B C Bila diinput ABC  maka akan tercetak : A B C

7. 7 2). Menginput sebuah character dengan var = getche() #include<stdio.h> #include<conio.h> void main() { char C; printf(“Inputkan Sebuah Karakter: “ ); C = getche(); printf(“\n%c”, C); } Agar dapat menggunakan instruksi getche(), diperlukan : #include<conio.h> Variabel harus bertipe char Apabila yang diINPUT karakter A maka terlihat dilayar : Inputkan Sebuah Karakter : A A Hasil ketikan melalui keyboard tanpa mengetik <Enter> Hasil instruksi printf(“%c”, C); Bila yang di input Yang tersimpan dalam var C Keterangan A A Tercetak : A Bila yang diketik bukan sebuah karakter, tapi hanya menekan <Enter>, maka isi C adalah ‘\r’ dan bila dicetak tak ada yang tercetak di layar <Enter> \r Bila hanya menekan <Enter> maka N akan berisi Nilai ASCII 13 atau carriage return sehingga bila ditest dengan : if (C == 13) atau dengan : if (C == ‘\r’ ) maka akan menghasilkan nilai TRUE. \r = carriage return

7. 8 Beberapa contoh hasil input dengan var = getche( ); #include<stdio.h> #include<conio.h> void main() { char C1, C2, C3, C4; printf(“Ketik Password Anda: ); C1 = getche(); C2 = getche(); C3 = getche(); C4 = getche(); } Bila diketik : ABCD, maka dilayar akan terlihat sebagai berikut : Ketik Password Anda: ABCD Bila password diganti dengan karakter X Bila program ini dijalankan, apapun karakter yang diketik melalui keyboard (sebanyak 4 karakter) akan terlihat sebagai berikut : Ketik Pasword Anda: XXXX Semua yang diketik diganti dengan : X \b maksudnya back space mundur satu spasi #include<stdio.h> #include<conio.h> void main() { char N1, N2, N3, N4; printf(“Ketik Password Anda : ); N1 = getche(); printf(“\bX”); N2 = getche(); printf(“\bX”); N3 = getche(); printf(“\bX”); N4 = getche(); printf(“\bX”); } Disediakan : 0 1 2 3 A B C D Misal diketik : ABCD maka isi C[ ] adalah ABCD, tapi yang terlihat dilayar : XXXX #include<stdio.h> #include<conio.h> void main() { char C[4]; int I; printf(“Ketik Password Anda : ); I=0; while(I<4) { C[I] = getche(); printf(“\bX”); I++; } printf(“\nPassword Anda Adalah : ”); { printf(“%c”,C[I]); } Bila diketik : ABCD maka yang terlihat dilayar : Ketik Password Anda : XXXX Password Anda Adalah : ABCD

7. 9 3). Menginput sebuah character dengan var = getchar() #include<stdio.h> void main() { char C; printf(“Inputkan Sebuah Karakter : “ ); C = getchar(); printf(“%c”, C); } Catatan : Bila diketik lebih dari satu karakter, maka hanya karakter pertama yang diambil Apabila yang diinput adalah : A maka terlihat dilayar : Inputkan Sebuah Karakter : A A Hasil ketikan melalui keyboard diakhiri dengan menekan <Enter> Hasil instruksi printf(“%c”, C); Bila yang di input Yang tersimpan dalam var C Keterangan A<Enter> A Tercetak : A Bila yang diketik bukan sebuah karakter, tapi hanya menekan <Enter> maka C akan diisi dengan ‘\n’ dan bila dicetak, tidak ada yang tercetak, tapi mengakibatkan turun satu baris (line feed). <Enter> \0 Bila hanya menekan <Enter> maka C akan berisi Nilai ASCII 10 atau line feed sehingga bila ditest dengan : if (C == 10) atau dengan : if (C == ‘\n’ ) maka akan menghasilkan nilai TRUE. \n = line feed

7. 10 4). Menginput sebuah character dengan var = getch() #include<stdio.h> void main() { char C; printf(“Inputkan Sebuah Karakter : “ ); C = getch(); printf(“%c”, C); } Apabila yang diINPUT adalah A maka terlihat dilayar : Inputkan Sebuah Karakter : A Hasil ketikan melalui keyboard TIDAK TERLIHAT diketik tanpa <Enter> Hasil instruksi printf(“%c”, C); Bila yang di input Yang tersimpan dalam var C Keterangan A A Tercetak : A \0 Bila yang diketik bukan sebuah karakter, tapi hanya menekan <Enter>, maka isi N adalah ‘\r’ dan bila dicetak tak ada yang tercetak di layar <Enter> Bila hanya menekan <Enter> maka C akan berisi Nilai ASCII 13 atau carriage return sehingga bila ditest dengan : if (N == 13) atau dengan : if (N == ‘\r’ ) maka akan menghasilkan nilai TRUE. \r = carriage return

7. 11 7.1.2. Menginput Data Melalui Keyboard Dengan Format Pada Program C 1). Menginput character dengan scanf() a. Menginput sebuah karakter Penulisan format seperti ini mempunyai efek yang sama #include<stdio.h> void main() { char C; printf(“Inputkan Sebuah Karakter: “ ); scanf(“%c”, &C); printf(“%c”, C); } “%c”, atau “ % c”, atau “ %c” Ada spasi atau blank sebelum %c Apabila yang diinput adalah A maka terlihat dilayar : Inputkan Sebuah Karakter : A A Hasil ketikan melalui keyboard diakhiri dengan menekan <Enter> Hasil instruksi printf(“%s”, C); Bila yang di input Yang tersimpan dalam var C Keterangan A A Tercetak : A AB  A Tercetak : A, yang diambil hanya satu karakter karakter selebihnya tidak diambil ‘A’  ‘ Tercetak : ‘ 65  6 Tercetak : 6 Bila yang diketik bukan sebuah karakter, tapi hanya menekan <Enter> maka C akan diisi dengan ‘\n’ dan bila dicetak, tidak ada yang tercetak, tapi mengakibatkan turun satu baris (line feed).  \n Bila hanya menekan <Enter> maka N akan berisi Nilai ASCII 10 atau line feed (\n = line feed) sehingga bila ditest dengan : if (C == 10) atau dengan : if (C == ‘\n’ ) maka akan menghasilkan nilai TRUE.

7. 12 b. Menginput dua buah karakter dengan 2 format tanpa disisipkan koma Mempunyai efek yang sama (baik cara menginput data maupun hasilnya) bila instruksi input [ scanf() ] ditulis menjadi dua baris instruksi sebagai berikut : #include<stdio.h> void main() { char C1, C2; printf(“Inputkan Dua Buah Karakter : “ ); scanf(“%c%c”, &C1,&C2); printf(“%c %c”, C1, C2); printf(“selesai”); } scanf(“%c”, &C1); scanf(“%c”, &C2); Apabila yang diinput adalah AB<Enter> maka terlihat dilayar : Tak ada Pemisah antara dua karakter, Inputkan Sebuah Karakter: AB A Bselesai Diketik: AB<Enter> Yang tersimpan dalam variabel Tercetak dengan instuksi printf() diatas Format scanf() Bila yang di input C1 C2 Keterangan “%c%c” AB A B A Bselesai Tak ada pemisah antara A dan B Yang diambil hanya dua karakter Karakter-karakter selebihnya tidak diambil Tak ada jarak ABC A B A Bselesai Ada jarak satu spasi antara A dan B C2 berisi blank (spasi) A B  A A selesai A  A A selesai C2 berisi blank A,B  A ‘ A ,selesai C2 berisi , (koma) A selesai C2 berisi ‘\n’ (line feed), kalau dicetak efeknya turun satu baris A  A \n  B  C1 berisi ‘\n’ (line feed) kalau dicetak efeknya turun satu baris \n B Bselesai

7. 13 c. Menginput dua buah karakter, dengan 2 format disisipkan koma Mempunyai efek yang sama (baik cara menginput data maupun hasilnya) bila instruksi input [ scanf() ] ditulis menjadi dua baris instruksi sebagai berikut : #include<stdio.h> void main() { char C1, C2; printf(“Inputkan Dua Buah Karakter : “ ); scanf(“%c,%c”, &C1,&C2); printf(“%c %c”, C1, C2); printf(“selesai”); } scanf(“%c”, &C1); scanf(“,%c”, &C2); Apabila yang diINPUT adalah AB<Enter> maka terlihat dilayar : , (koma) sebagai pemisah Inputkan Sebuah Karakter : A,B A Bselesai Diketik: A,B<Enter> Yang tersimpan dalam var iabel Tercetak dengan instuksi printf() diatas Format scanf() Bila yang di input C1 C2 Keterangan “%c,%c” A,B A B A Bselesai Koma sebagai pemisah A dan B Yang diambil hanya dua karakter Karakter-karakter selebihnya tidak diambil , (koma) sebagai pemisah A,B,C  A B A Bselesai Antara A dan B tak ada pemisah C2 berisi karakter û AB  A û A ûselesai A B  A Ada jarak satu spasi antara A dan B C2 berisi karakter û û A ûselesai  B  \n û ûselesai C1 berisi ‘\n’ A  Tak sempat mengeti karakter kedua C2 berisi û A û A ûselesai  ,B  \n Bselesai C1 berisi ‘\n’ (line feed) kalau dicetak efeknya turun satu baris B

7. 14 d. Menginput dua buah karakter, dengan 2 format dipisahkan spasi #include<stdio.h> mvoid in() { char C1, C2; printf(“Inputkan Dua Buah Karakter : “ ); scanf(“%c %c”, &C1,&C2); printf(“%c %c”, C1, C2); printf(“selesai”); } Mempunyai efek yang sama (baik cara menginput data maupun hasilnya) bila instruksi input [ scanf() ] ditulis menjadi dua baris instruksi sebagai berikut : scanf(“%c”, &C1); scanf(“ %c”, &C2); Ada satu spasi Apabila yang diinput adalah A B<Enter> maka terlihat dilayar : Satu spasi sebagai pemisah Inputkan Sebuah Karakter : A B A Bselesai Diketik: A B<Enter> Yang tersimpan dalam variabel Tercetak dengan instuksi printf() diatas Format scanf() Bila yang di input C1 C2 Keterangan “%c %c” A B A B A Bselesai Satu spasi sebagai pemisah A dan B A B C  Yang diambil hanya dua karakter Karakter-karakter selebihnya tidak diambil Satu spasi sebagai pemisah A B A Bselesai Antara A dan B tak ada pemisah efeknya sama denga A B AB  A B A Bselesai A,B  Karakter ketiga dan seterusnya tidak diambil A ‘ A ,selesai  B  \0 B Bselesai C1 berisi ‘\n’ A  B  A B A Bselesai  B  \n B Bselesai Sebelum B ada satu spasi C1 berisi ‘\n’ (line feed)

7. 15 scanf(“%s”, Var); 2). Menginput String dengan scanf() Variabel harus dipesan sebagai array character Misal : char S[10]; Tidak pakai tanda & Format pakai : s bukan : c #include<stdio.h> void main() { char S[10]; scanf(“%s”, S); - } Ketik sebuah kalimat (String) diakhiri dengan menekan <Enter> Bila yang diketik : ABCDEFG maka isi S[ ] menjadi : 0 1 2 3 4 5 6 7 8 9 A B C D E F G \0 Bila S[7] ditest dengan : if(S[7] == ‘\0’) Isi variabel S[10] diatas, dapat dicetak dengan : printf(“%s”, S); atau dengan puts(S); atau dengan : if(S[7] == 0 ) atau dengan : if(S[7] == NULL ) Akan menghasilkan nilai : TRUE Atau dengan : int I; while (S[I] != ‘\0’ ) { printf( “%c“,S[I]); I++; }

7. 16 3). Menginput Nilai Integer dengan scanf() a1. Menginput sebuah nilai integer dengan format %i atau %d #include<stdio.h> void main() { int N; printf(“Inputkan Sebuah Nilai : “ ); scanf(“%i”, &N); printf(“%i”, N); } Penulisan format seperti ini mempunyai efek yang sama “%i”, atau “ %i”, atau “ %i” Didepan format %I boleh ada spasi atau blank sebelum %i Pada instruksi scanf() format %i dapat diganti dengan %d Blank didepan atau dibelakang 25 tidak mempengaruhi, jadi 25  b25  25b  b25b  akan menghasilkan hasil yang sama. b = satu atau lebih blank (spasi) Apabila yang diinput adalah 25 maka terlihat dilayar : Inputkan Sebuah Nilai: 25 25 Perhatikan : int N; Variabel yang disiapkan untuk menampung input adalah bertipe int. Karena bertipe int maka lebarnya adlah 2 byte (16 bit). Berapapun besarnya nilai yang diinput, tidak menyebabkan error. Nilai yang dapat ditampung oleh variabel N adalah sebanyak 16 bit. Sehingga minimum dan maksimum isi variabel N dapat digambarkan sebagai berikut : minimum : 0000 0000 0000 0000 maksimum : 1111 1111 1111 1111 Apa yang tercetak bila nilai (bit-bit) yang tersimpan dalam 16 bit diatas dicetak, tergantung format yang digunakan untuk mencetak. Tapi bilai nilai diatas dilakukan operasi aritmetik, maka nilainya adalah bit-bit yang ada.

(integer atau decimal) 7. 17 Hubungan antara tipe data input, format input dan format output untuk data numerik integer seperti yang dicontohkan oleh instruksi input dan output berikut ini : int N; scanf(“%i”, &N); printf(“%i”, N); Batas nilai input yang sesuai dengan hasil cetakan Type data Format scanf() Format printf() Keterangan %i atau %d %u %c %li atau ld %lu %f -32768 -- 32767 0 -- 65535 sesuai karakter ASCII untuk 8 bit paling kanan - Dicetak sebagai Signed integer Dicetak dengan Unsigned Integer Bila diinput 65 akan tercetak: A bila diinput 97 akan tercetak: a Tidak error, tapi hasilnya tidak benar karena data 2 Byte, yang dicetak 4 Byte Error int atau signed int unsigned int short int %i atau %d (integer atau decimal) atau %u (unsigned integer) Untuk signed integer : input 32767 tercetak : 7ffff input -32768 tercetak : 1000 %x (Hexadecimal) Batas nilai data sesuai dengan format input Untuk unsigned integer : input 65535 tercetak : fffff Untuk signed integer : input 32767 tercetak : 77777 input -32768 tercetak : 100000 %o (Octal) Batas nilai data sesuai dengan format input Untuk unsigned integer : input 65535 tercetak : 177777 %li Error

7. 18 5 2 5 2 a2. Menginput dua buah nilai integer dengan format #include<stdio.h> void main() { int N1, N2; scanf(“%i %i”, &N1, &N2); - } intsruksi : scanf(“%i %i”, &N1, &N2); pada program diatas dapat ditulis menjadi dua instruksi sebagai berikut : scanf(“%i”, &N1); scanf(“%i”, &N2); Walaupun cara menulisnya berbeda, tapi cara menginput datanya sama . Misal yang diinput adalah nilai 5 untuk variabel N1, dan 2 untuk variabel N2. Cara menginputnya dapat dilakukan dengan dua cara sebagai berikut : 1. 2. 5 2 5 2 Ketik: <5> <Enter> <2><Enter> Ketik: <5> <spasi> <2> <Enter> Kedua cara diatas, sama-sama menyimpan % di N1, dan 2 di N2 5 2 N1 N2

7. 19 b. Menginput dengan format %li untuk long integer. long int N; scanf(“%li”, &N); printf(“%li”, N); Tipe long int panjangnya 4 Byte (32 bit). Berapapun nilai yang diinput tidak menyebabkan error tapi tempat penampungannya adalah 4 Byte (32 bit) Hubungan antara Tipe Data Format Input, dan Format Output untuk program seperti yang dicontohkan diatas. Batas nilai input yang sesuai dengan hasil cetakan Type data Format scanf() Format printf() Keterangan %i atau %d %u %c %li atau ld %lu %f -32768 -- 32767 0 -- 65535 sesuai karakter ASCII untuk 8 bit paling kanan - Yang dicetak isi 2 byte paling kanan Dicetak sebagai Signed integer Yang dicetak isi dua byta paling kanan Dicetak dengan Unsigned Integer Yang dicetak isi 1 byte paling kanan Bila diinput 65 akan tercetak: A bila diinput 97 akan tercetak: a Tidak error, tapi hasilnya tidak benar karena data 2 Byte, yang dicetak 4 Byte Error %i atau %d atau %u long int atau signed unsigned -32768 -- 32767 0 -- 65535 sesuai karakter ASCII untuk 8 bit paling kanan Yang dicetak isi 2 byte paling kanan Dicetak sebagai Signed integer Dicetak dengan Unsigned Integer Yang dicetak isi 1 byte paling kanan Bila diinput 65 akan tercetak: A bila diinput 97 akan tercetak: a minimal dan maksimal nilai signed long integer Error %i atau %d %u %c %li atau ld %lu %f %li -2147483648 - 2147483647 -2147483648 - 2147483647 %li atau %ld %lu %lu Unsigned long integer, minimum = 0 maksimum = 4294967295 0 - 4294967295

7. 20 4). Menginput Nilai Numerik Floating Point dengan scanf() a. Menginput dengan format %f untuk Single Precision Floating Point (float) float N; scanf(“%f”, &N); printf(“%f”, N); Tipe float panjangnya 4 Byte (32 bit). Nilai yang diinput harus dapat diterima sebagai Floataing Point yaitu nilai numerik yang mengandung titik desimal. Hubungan antara Tipe Data Format Input, dan Format Output untuk program seperti yang dicontohkan diatas. Batas nilai input yang sesuai dengan hasil cetakan Type data Format scanf() Format printf() Keterangan Bila diinput Maka tercetak %f %lf 3.4E-38 -- 3.4E38 positip atau negatip 25 25.0 25.000000 %f %le 25 25.0 2.500000e+01 float %lg 25 25.0 25 %i %x 25 25.0 0 (Format tidak sesuai) %i %f %i 25 25.0 Format tak sesuai %lf Error format tak sesuai

7. 21 b. Menginput dengan format %f untuk Double Precision Floating Point (double) double N; scanf(“%lf”, &N); printf(“%lf”, N); Tipe double panjangnya 8 Byte (64 bit). Nilai yang diinput harus dapat diterima sebagai Floataing Point yaitu nilai numerik yang mengandung titik desimal. Hubungan antara Tipe Data Format Input, dan Format Output untuk program seperti yang dicontohkan diatas. Keterangan Type data Format scanf() Format printf() Bila diinput Maka tercetak %f %lf 25 25.0 25.000000 %f %le 25 25.0 2.500000e+01 double %lg 25 25.0 25 %i %x 25 25.0 0 (Format tidak sesuai) %f %i %i 25 25.0 Format tak sesuai %lf Error format tak sesuai

7.2. Menginput Data Melalui Keyboard Pada Program C++ 22 7.2. Menginput Data Melalui Keyboard Pada Program C++ Berbeda dengan pada program C, pada C++ menginput data tidak menggunakan format. Tipe data yang diinput tergantung langsung dengan tipe data penerimanya. Bila tipe data atau variabel penerima misalnya bertipe int, maka data yang diinput, apapun bentuk dan besarnya akan diterima oleh variabel tersebut sebagai tipe int. Instruksi input melalui keyboard pada C++, hanya ada satu macam yaitu : cin >> var. dimana var adalah nama sebuah variabel Pada program C++, cin (baca C in) ini disebut objek yang digunakan untuk menerima data dari standard input dalam hal ini satndard input adalah keyboard. Contoh. #include<iostream.h> void main() { int N; cin >> N; } Sewaktu melaksanakan instruksi cin >> N;, maka dilayar muncuk kursor sebagai berikut : _ Ditempat kursor berada inilah kita mengetik nilai yang akan diterima oleh variabel N. Misal kita ketik 25 <Enter>, maka yang terlihat dilayar adalah : 25 _ Perhatikan : Setelah mengetik <Enter> maka kursor turun ke baris berikutnya. Bila berikutnya ada instruksi ceta, maka akan tercetak ditempat kursor ini berada.

7. 23 7.2.1. Menginput Sebuah karakter Melalui Keyboard Pada Program C++ 1). Menggunakan cin >> var; Bila diinput Maka tercetak #include<ipstream.h> void main() { char C; cin >> C; cout << C; } A  65  ABC  ‘A’  “A”  A 6 ‘ “ Hanya karakter pertama yang disimpan dalam variabel C Bila yang diketik A<Enter> maka terlihat dilayar : A A Catatan : Tanda  sebenarnya tidak ada dilayar. Tanda itu hanya untuk menyatakan bahwa disana ditekan <Enter> 2). Menggunakan var = getch(); #include<ipstream.h> #include<conio.h> void main() { char C; C = getch(); cout << C; } Untuk instruksi var = getch() diperlukan #include<conio.h> Hanya menginput satu karakter tanpa menekan <Enter> Yang diketik tidak terlihat dilayar. Huruf A yang terlihat dilayar adalah hasil instruksi cetak denag cout << C; bukan huruf A yang diketik. Apa yang diketik tidak terlihat dilayar. Yang dapat diketik hanya satu karakter. Berusaha mengetik lebih dari satu karakter adalah tidak mungkin. Berbeda dengan cin << C, seperti pada program pertama. Bila yang diketik A maka terlihat dilayar : A

7. 24 3). Menggunakan var = getche(); #include<ipstream.h> #include<conio.h> void main() { char C; C = getch(); cout << C; } Untuk instruksi var = getche() diperlukan #include<conio.h> Hanya menginput satu karakter tanpa menekan <Enter> Yang diketik terlihat dilayar. Ada dua huruf A yang muncul dilayar. Yang pertama hasil ketikan, dengan C = getche(); dan yang kedua hasil pencetakan dengan cout >> A.. Yang diketik hanya satu karakter. Berusaha mengetik lebih dari satu karakter adalah tidak mungkin. Berbeda dengan cin << C, seperti pada program pertama. Bila yang diketik A maka terlihat dilayar : AA Dicetak pada baris yang sama karena setelah mengetik A, kursor tidak pindah baris, karena tidak menekan <Enter> 7.2.2. Menginput String Melalui Keyboard Pada Program C++ 1). Menggunakan cin >> var; Bila diinput Maka tercetak #include<ipstream.h> void main() { char S[7]; cin >> S; cout << S; } ABCDE ABCDEF ABCDEFG ABC DE 65 “ABC” ‘ABC’ ABCDE ABCDEF error ABC 65 “ABC” ‘ABC’ 0 1 2 3 4 5 6 S 0 1 2 3 4 5 6 Hanya bagian ini yang bisa diisi. S A B C D E \0 Yang sangat khusus disini adalah bila dalam string tersebut mengandung spasi sepert : ABC DE maka hanya ABC yang diterma oleh array S.

7. 25 2). Menggunakan cin.getline(var, sizeof(var)); Bila diinput Maka tercetak #include<ipstream.h> void main() { char S[7]; cin.getline(S,7); cout << S; } ABCDE ABCDEF ABCDEFG ABC DE 65 “ABC” ‘ABC’ ABCDE ABCDEF error ABC DE 65 “ABC” ‘ABC’ 0 1 2 3 4 5 6 S 0 1 2 3 4 5 6 Hanya bagian ini yang bisa diisi. S A B C D E \0 Agar tidak salah menulis, maka sebaiknya instruksi: cin.getline(S,7); diganti saja menjadi : cin.getline(S, (sizeof(S)); 7.2.3. Menginput Sebuah Nilai Numerik Melalui Keyboard Pada Program C++ 1). Menginput Nilai Numerik Integer dengan cin >> var; tipe int Bila diinput Maka tercetak #include<ipstream.h> void main() { int N; cin >> N; cout << N; } 25 25.75 32767 32768 65535 65536 -25 -32769 -65535 025 0x25 25 32767 -32768 -1 -25 1 21 37 Nilai yang diketik besarnya tidak dibatasi. Apapun atau berapapun besarnya nilai yang diketik akan dinyatakan dalam bentu bilangan biner atau binary digit. Karena N tipenya int , maka hanya 16 bit paling kananyang diambil dan disimpan kedalam N.

7. 26 Contoh nilai yang diketik dan nilai yang dismpan dalam variabel N Nilai yang diinput Nilai yang diinput dalam bentu binary Binary yang akan disimpan dalam N Nilai sebagai tipe int 25 32767 32768 65535 65536 -25 025 0x25 1 1001 0111 1111 1111 1111 1000 0000 0000 0000 1111 1111 1111 1111 1 0000 0000 0000 0000 1111 1111 1110 0111 1 0101 10 0101 0000 0000 0001 1001 0111 1111 1111 1111 1000 0000 0000 0000 1111 1111 1111 1111 0000 0000 0000 0000 1111 1111 1110 0111 25 32767 -32768 -1 -25 21 37 025 maksudnya nilai octal 25 yang nilai decimalnya = 21 = (2*8 + 5*1) 0x25 maksudnya nilai Hexadecimal 25 yang nilai decimalnya = 37= (2*16 + 5*1) 2). Menginput Nilai Numerik Lain Dengan cin >> var; Telah dicontohkan diatas, menginput data dengan cin, untuk variabel bertipe int (integer 2 Byte) Untuk data tipe long int, float dan double, digunakan instruksi yang sama yaitu >> var. Perbedaannya hanya pada tipe dan jangkauan nilai yang tersimpan dalam variabel tersebut. tipe long int tipe float #include<ipstream.h> void main() { signed long int N; cin >> N; cout << N; } #include<ipstream.h> void main() { float F; cin >> F; cout << F; } Jangkauan nilai dan format cetakan, dapat dilihat pada Bab 5 dan Bab 6.

7.3. Menginput Data Melalui Keyboard Pada Program Java 27 7.3. Menginput Data Melalui Keyboard Pada Program Java 7.3.1. Menginput Sebuah Karakter Melalui Keyboard Pada Program Java Berbeda dengan Bahasa C++ apalagi bahasa C yang mempunyai banyak macam instruksi input data dari keyboard, Java hanya menyiapkan sebuah instruksi dasar yaitu : var = System.in.read(); dimana var = variabel bertipe int Hanya saja penggunaan instruksi System.in.read(), memerlukan instruksi try dan catch. Perhatikan contoh menginput sebuah karakter dari keyboard berikut ini : public class Contoh01 { public static void main (String[] args ) { int N = 0; try { N = System.in.read(); } catch(java.io.IOException e) { System.out.println(“Ada Salah”); System.out.println(N); Apabila program diatas dijalankan, dan diinputkan : A<Enter> maka terlihat dilayar sebagai berikut. A 65 Huruf A adalah karakter yang diketik melalui keyboard, dan 65 adalah hasil cetakan System.out.println(N), karena variabel N bertipe int.

7. 28 Bila diinput ABC<Enter>, maka terlihat dilayar sebagai berikut : ABC 65 Yang diambil hanya satu karakter pertama yaitu karakter A yang nilai integernya = 65 Bila diinput 65<Enter>, maka terlihat dilayar sebagai berikut : 65 54 Yang diambil hanya satu karakter pertama yaitu karakter ‘ 6’ yang nilai integernya = 54 Perhatikan kembali program menginput sebuah karakter sebagai berikut : public class Contoh01 { public static void main (String[] args ) { int N = 0; try { N = System.in.read(); } catch(java.io.IOException e) { System.out.println(“Ada Salah”); System.out.println(N); try { N = System.in.read(); } maksudnya berusaha membaca sebuah karakter dari keyboard. Membaca data dari sistem input, kemungkinan terjadi error (exception). Apabila terjadi error, maka kondisi error tersebut lperlu ditangkap dengan catch.. A pabila catch menagkap kondisi error, maka cetak perkataan “Ada Salah”

7. 29 7.3.2. Menginput String Karakter Melalui Keyboard Pada Program Java Sayangnya, tidak seperti bahasa lain misalnya C atau C++, Java tidak menyiapkan instruksi menginput string.Yang ada hanya menginput sebuah karakter. Terpaksa kita harus bersusah payah menginput karakter demi karakter dan menggabungnya menjadi sebuah string. Salah satu usaha dapat dicontohkan sebagai berikut : Contoh: public class Contoh02 { public static void main (String[] args ) { int N = 0; String S =“”; boolen selesai = false; while(!selesai) { N = System.in.read(); if( N < 0 || (char) N == ‘\n’) selesai = true; else if ( (char) N != ‘\r’ ) S = S + (char) N; } System.out.println(S); Apabila diinputkan : ABC<Enter>, maka terlihat dilayar sebagai berikut. ABC ABC _ Instruksi diatas juga dapat digunakan untuk menginput satu buah karakter dengan diakhiri <Enter>, misal apabila hanya diketik A<Enter> maka akan terlihat dilayar : A A _ Bagi Anda yang belum memahami instruksi while dan instruksi lainnya, pada tahap ini Anda cukup mengikuti saja dulu instruksi diatas.

7. 30 Catatan Penting ! Buku literatur mengajarkan untuk menyederhanakan program utama kita. Untuk menginput string dari keyboard kita cukup menulis sebuah instruksi misal sebagai berikut : String S = InputDariKeyboard.inputString(); yang penggunaannya dicontohkan sebagai berikut : public class Contoh01 { public static void main (String[] args ) { String S; S = InputDariKeyboard.inputString(); System.out.println(S); } Bila program diatas dijalankan, mula mula muncul kursor di layar sebagai tanda komputer sedang melaksanakan instruksi input dan minta data untuk diinput. _ Apabila diinputkan : ABC<Enter>, maka terlihat dilayar sebagai berikut. ABC ABC _ Catatan : Tanda  sebenarnya tidak ada dilayar. Tanda itu hanya untuk menyatakan bahwa disana ditekan <Enter> Dua instruksi : String S; S = InputDariKeyboard.inputString(); dapat ditulis menjadi : String S = InputDariKeyboard.inputString();

7. 31 Nampak bahwa instruksi String S = InputDariKeyboard.inputString(); tidaklah terlalu rumit. Tetapi, ada konsekuensi yang memberatkan kita yaitu, agar instruksi tersebut dapat dikenal dan dapat dilaksanakan, kita harus menulis sebuah program (class ) tersendiri, dikompilasi tersendiri dan file class hasil kompilasi tersebut harus disimpan dengan nama InputDariKeyboard.class dalam direktori yang sama dengan direktori program utama yang kita buat Program tersebut harus ditulis sebagai berikut : public class InputDariKeyboard { public static String inputString() { int Nilai = 0; String S = “”; boolean selesai = false; while (!selesai) { try { Nilai = System.in.read(); if(Nilai < 0 || (char) Nilai == ‘\n’) selesai = true else if ((char) Nilai != ‘\r’) S = S + (char) Nilai; } catch(java.io.IOException e) { System.err.println(“Ada salah input”); selesai = true; return S; Perhatikan : Dua kata InputDariKeyboard, dan inputString() Dua kata ini yang ditiru persis dalam program utama yang kita buat. Dua kata ini boleh diganti, tapi kata yang ada dalam program utama juga harus diganti meniru kata tersebut. Program diatas memang rumit, tapi tidak perlu dipahami sekarang. Sekarang yang diperlukan adalah , ketik, kompilasi dan simpan program tersebut agar instruksi input String var = InputDariKeyboard.inputString() yang kita tulis dalam program utama kita dapat digunakan. Setelah Anda memahami bahasa Java, maka Anda akan dapat merubah program diatas dengan maksud yang sama.

7. 32 7.3.3. Menginput Nilai Numerik Melalui Keyboard Pada Program Java Kembali disayangkan Java tidak menyiapkan instruksi yang dapat dipakai untuk langsung menerima data yang dinput secara nilai numerik. Instruksi yang ada disiapkan sebenarnya hanyalah mengetik sebuah karakter yang telah kita kembangkan sendiri menjadi mengetik sebuah string sebagai berikut : String S = InputDariKeyboard.inputString(); Data yang kita input masuk kedalam variabel S yang bertipe string. Maksudnya data dalam bentuk untaian karakter karaktar. Bila yang diinput : 12 maka data yang diinput adalah dua buah karakter, yaitu karakter 1 dan karakter 2, bukan nilai 12 (dua belas). Agar dua karakter tersebut dapat dianggap sebagai nilai dua belas dan disimpan dalam variabel tipe int (integer), maka karakter-karakter tersebut harus dikonversi kedalam bentuk int. Perhatikan contoh berikut ini. public class Contoh01. { public static void main (String[] args ) { String S; S = InputDariKeyboard.inputString(); int N = Integer.valueOf(S).intValue(); System.out.println(N); } Perhatikan intruksi untuk mengonversi nilai string S kedalam variabel integer N sebagai berikut : int N = Integer.valueOf(S).intValue(); Untuk konversi ke float dan double dapat dibuat : float F = Float.valueOf(S).floatValue(); double D = Double.valueOf(S).doubleValue();

7. 33 7.3.4. Menginput Data dari keyboard dengan Kotak Dialog Pada Program Java Dengan kemampuan membangun aplikasi GUI (Graphic User Interface) Java dapat menampilkan window kecil dengan sebuah text yang pada pemrograman visual biasa disebut kotak dialog. Instruksi yang digunakan : String varS = JOptionPane.showInputDialog (“Kalimat Judul “); Fungsi JOptionPane merupakan salah satu bagian dari package javac.swing, maka perlu ditambahkan instruksi import javac.swing.* JOption.Pane ini mengambil input berupa string yang diketik melalui keyboard, yang disimpan dalam variabel varS . . Bila data yang diketik ingin diperlakukan sebagai nilai numerik misal kedalam tipe int, maka harus dikonversi menjadi nilai numerik int dengan instruksi : int varInt = Integer.parseInt(varS); Perhatikan contoh program berikut ini : import java.swing.*; public class Contoh. { public static void main (String[] args ) { String S = JOption.Pane.showInputDialog(“Nilai : “; int N = Integer.parseInt( S ); System.out.println(N); } dilayar akan muncul kotak dialog sebagai berikut : Input x 75 adalah nilai yang diketik ? Nilai : 75 OK Cansel

? x 7. 34 Input Menu : 1. Entry Nilai 2. Update Nilai 3. Sort Nilai Dalam kotak dialog dapat dimunculkan banyak kalimat sebagai petunjuk menginput data . Perhatikan contoh berikut : import java.swing.*; public class Contoh { public static void main (String[] args ) { String S = JOption.Pane.showInputDialog(“Menu :”+ “\n1. Entry Nilai”+ “\n2. Update Nilai”+ “\n3. Sort Nilai”+ “\n4. Cetak Nilai “ ); int N = Integer.parseInt( S ); - } dilayar akan muncul kotak dialog sebagai berikut : Input x ? Menu : 1. Entry Nilai 2. Update Nilai 3. Sort Nilai 4. Cetak Nilai 1 1 adalah data yang diketik OK Cansel Instruksi JOptionPane diatas, dapat juga ditulis sebagai berikut: String S = JOptionPaneshowInputDialog(“Menu : \n1. Entry Nilai \n2. Update Nilai \n3. Sort Nilai \4. Cetak Nilai “ ) ;

Nama Kota Anda : Jakarta Raya 7. 35 7.3.5. Menginput String dari Keyboard dengan readLine( ) pada Program Java Pada program Java, ada cara yang lebih mudah untuk menginput sebuah kalimat atau string melalui keyboard dengan menggunakan metode readLine(). Perhatikan contoh berikut ini : import java.io.*; public class Contoh { public static void main (String[] args ) { BufferedReader sebarisTeks = new BufferedReader ( new InputStreamReader(System.in) ); System.out.println( “Input Nama Kota : “); String S = “”; try { S = sebarisTeks.readLine(); } catch (IOException i) { System.out.println(“Nama Kota Anda : “ + S); Bila program diatas dijalankan, maka terlihat dilayar sebagai berikut : Input Nama Kota : Jakarta Raya Nama Kota Anda : Jakarta Raya