Download as pdf
Download as pdf
You are on page 1of 15
BAB IV STRUKTUR INPUT DAN OUTPUT Kompetensi Umum: Dapat menjelaskan konsep dasar penggunaan struktur untuk memasukkan dan mengeluarkan data pada bahasa C. Kompetensi Khusus: Dapat menjelaskan struktur input dasar. Dapat menggunakan fungsi-fungsi untuk memasuk- kan data. Dapat menjelaskan struktur output dasar. Dapat menggunakan fungsi-fungsi untuk mengeluar- kan data. 4.1 STRUKTUR INPUT TAK TERFORMAT Di dalam melakukan pemrograman tentu saja programmer akan melakukan input dan output program. Input berarti programmer memasukkan data ke dalam program atau melakukan inisialisasi, sedangkan output berarti pro- gram akan menghasilkan keluaran berupa data yang ditampilkan ke layar, tercetak di printer, keluar di speaker, dan keluaran lainnya. Suatu program yang dibuat pasti menghasilkan output. Di dalam bahasa C sudah terdapat fungsi-fungsi bawaan (standard function) yang berkaitan dan mengatur input dan output sehingga programmer hanya perlu menggunakannya saja. Hal pertama yang dibahas adalah melakukan input secara tak terformat. Dalam input tak terformat, programmer tidak bisa memasukkan data dengan bentuk tertentu, misalnya dalam bentuk desimal dengan ketelitian 68 Algoritma dan Pemrograman dengan Bahasa C 2 angka di belakang koma. Input tak terformat pada bahasa C merupakan struktur input yang paling sederhana dan mudah dilakukan. Pemasukan data dilakukan dengan menggunakan fungsi-fungsi pustaka dari file header stdio.h, yaitu gets() dan scanf() serta file header conio.h, yaitu getche(), getchar() dan getch(). 4.1.1 Memasukkan Data Karakter Tak Terformat Fungsi getche(), getchar() dan getch() masing-masing dapat dipilih untuk Memasukkan data yang berupa sebuah karakter dari keyboard ke suatu identifier tertentu. Masing-masing mempunyai_karakteristik sebagai berikut: Fungsi getche() > Tanpa Enter, karakter terlihat Fungsi getchar() > Dengan Enter, karakter terlihat Fungsi getch() > Tanpa Enter, karakter tidak terlihat Contoh 1: #include #include dint main() { char hrf; printf ("Masukkan sebuah karakter ; “ee hrf = getche(); printf£("\nNilai yang dimasukkan : %ec\n", hrf); getch(); Hasilnya : Masukkan sebuah karakter : N Nilai yang dimasukkan : N Contoh 2: #include #include int main() t char hrf; Struktur Input dan Output 09 printf ("Masukkan sebuah karakter : "); hrf = getchar(); printf("\nNilai yang dimasukkan : %c\n",hrf); getch(); : Hasilnya : Masukkan sebuah karak’ Nilai yang dimasukkan Contoh 3: #include #include int main() t char hrf; print£(*"Masukkan sebuah karakter : "); hrf = getch (); printf("\nNilai yang dimasukkan : %c\n",hrf); getch(); Hasilnya : Masukkan sebuah karakter : Nilai yang dimasukkan : N Contoh 4: #include #include int main() { print£("Tekan sembarang tombol..."); getch(); printf("\nTerimakasih, Anda sudah menekan tombol..."); } 10 Algoritma dan Pemrograman dengan Bahasa C Hasilnya: Tekan sembarang tombol... Terimakasih , Anda sudah menekan tombol... 4.1.2 Memasukkan Data String Tak Terformat: String adalah kumpulan karakter. Jadi jika karakter adalah satu huruf Saja maka string adalah kumpulan huruf. Untuk lebih jelasnya, contoh karakter adalah ‘a’, ‘n’, ’t’, ’o’ ,’n’; sedangkan contoh string adalah “anton”. Untuk memasukkan nilai string dapat digunakan fungsi gets()/. Cara memakai fungsi ini berbeda dengan fungsi-fungsi sebelumnya, karena memerlukan sebuah argumen/parameter yang berupa identifier string yang akan menerima data yang dimasukkan. Contoh: #include #include int main() { char kata[10]; print£("Masukkan suatu nilai string : "); gets (kata); print£("Nilai string yang dimasukkan : %s\n",kata); Hasilnya : Masukkan suatu nilai string : anton Nilai string yang dimasukkan : anton 4.2. STRUKTUR INPUT TERFORMAT Dalam struktur input terformat, Programmer dapat memasukkan data ke dalam program dalam bentuk tertentu yang telah didefinisikan oleh bahasa C. Dengan menggunakan bentuk ini maka Programmer dapat memasukkan data dengan lebih baik, rapi, dan tertib. Struktur input terformat sedikit lebih kompleks dibanding struktur input tidak terformat. Memasukkan data terformat berarti data yang diterima akan diatur bentuk dan lebarnya dengan kode-kode format menggunakan fungsi scanf(). Berikut adalah tabel yang berisi format yang dapat diterima oleh fungsi scanf() Struktur Input dan Output rl Tabel 4.1 Tabel format sconf() Kode Format Kegunaan Membaca sebuah karakter %s Membaca sebuah data string %d Membaca sebuah nilai desimal integer %i Membaca sebuah nilai desimal integer %x Membaca sebuah nilai heksadesimal integer %o Membaca sebuah nilai oktal integer EE Membaca sebuah data pecahan %e Membaca sebuah data pecahan %E Membaca sebuah data pecahan Fungsi scanf() menggunakan pengiriman nilai secara acuan, yang dalam bahasa C dilakukan dengan pointer. Oleh karena itu variabel-variabel yang dipakai harus berupa variabel pointer (diawali dengan “&”). 4.2.1 Memasukkan Nilai Karakter Nilai suatu karakter juga dapat dimasukkan dengan fungsi scanf() menggunakan kode format “%c”. Jika data yang dimasukkan lebih dari satu, sekaligus dalam satu baris input, maka jumlah nilai yang dimasukkan harus sama atau lebih banyak dari cacah variabel penerimanya. Data yang selebihnya akan diabaikan, Contoh: #include #include dint main() . char cl,c2,¢3; print£("Masukkan 3 nilai karakter : "); scan£ ("%e%e%", &C1,&C2,&C3) ; printf("\nAnda memasukkan : %c %c %C¢\n",cl,c2,¢3); eee Hasilnya : Masukkan 3 nilai karakter : abede Anda memasukkan : a bc n Agoritma dan Permrograman dengan Bahasa ( 4.2.2 Memasukkan Nilai String Nilai string juga dapat dimasukkan dengan fungsi scanf(), menggunakan kode format “%s”. Khusus untuk nilai string, variabel yang digunakan tidak perlu menggunakan operator pointer “&”, karena pengenal ini sudah berbentuk pointer. Contoh: #include #include int main() { char kata[10]; printf ("Masukkan suatu nilai string : "); scant ("%s",kata) ; printé("Nilai string yang dimasukkan : %s\n",kata); Hasilnya : Masukkan suatu nilai string : Anton Nilai string yang dimasukkan ; Anton Untuk memasukkan nilai string dengan fungsi ini, jika string yang dimasukkan mengandung spasi (whie space), maka kata yang diterima hanyalah sebatas sebelum karakter spasi. Untuk mengatasi hal ini, kode format “%s” dapat diganti dengan “%[4\n]”, yang berarti bahwa karakter nilai string akan dibaca terus sampai ditemui penekanan tombol Enter bentuk ‘*’ menunjukkan maksud ‘tidak’ dan karakter ‘\n’ berarti Enter). Dengan demikian semua karakter, termasuk spasi dan tabulasi, akan dibaca sampai ditemukan penekanan tombol Enter. Contoh 2: #include #include dint main() { char kata[20]; printf£("Masukkan suatu nilai string : "); scanf("%[*\n]",kata) ; printf£("Nilai string yang dimasukkan : %s\n",kata) ; Struktur Input dan Output B Hasilnya : Masukkan suatu nilai string : Antonius RC Nilai string yang dimasukkan : Antonius RC Kode format “%{]” juga dapat digunakan sebagai pemetaan dari karakter- karakter yang akan dimasukkan. Misalnya, kode format “%[abc]” hanya akan menerima karakter ‘a’, ’b’, atau ‘c’ saja. Karakter yang lain tetap dapat dimasukkan, tetapi mulai karakter selain ‘a’, 'b’ dan ‘c’ akan diabaikan. Misalnya, data yang dimasukkan “acabdbacas” maka yang akan diterima hanya “acab” sementara “dbacas” akan diabaikan. 4.2.3 Memasukkan Nilai Numerik Untuk nilai numerik, beberapa versi bahasa C juga menggunakan pengubah “!’ dan “L” yang dikombinasikan dengan kode format data numerik, Pengubah “I” untuk nilai integer digunakan untuk data long int. Pengubah “!’ untuk nilai pecahan digunakan untuk data pecahan ketepatan ganda (double). Pengubah “L” digunakan untuk data long double. Pengubah ini ditulis di depan huruf konversi dari kode formatnya sebagai berikut: “#li” atau “%ld” long int “dle”, “Alf” atau “%lg” double “%Le”, "LF" atau “%Lg” long double Nilai numerik integer dalam bentuk heksadesimal dapat dimasukkan sebagai data dengan menggunakan kode format “%x”. Nilai_numerik pecahan ketepatan tunggal dapat dimasukkan sebagai data dengan menggunakan kode format “%f” atau “%e” atau “%g” (dapat dipilih salah satu). Contoh: #include #include int main() t int I; printf("Masukkan nilai heksadesimal: "); scant ("%x",&I) 7 print£("Heksadesimal %x adalah %i desimal\n",1,1); 4 Algoritma dan Pemrograman dengan Bahasa C Hasilnya : Masukkan nilai heksadesimal: fe Heksadesimal fe adalah 254 desimal 4.3. STRUKTUR OUTPUT TAK TERFORMAT Struktur output tidak terformat berarti pengguna atau programmer dapat menampilkan data ke layar atau ke bentuk output lain seperti file dalam bentuk yang sederhana dan terbatas namun mudah, Di dalam C terdapat fungsi untuk menampilkan secara tidak terformat, yaitu putchar(char) dan puts(char[]). Contoh: dnt main() { char N,D[15] = "antonius re"; N= 'xXt; putchar(N) ; puts (D); getch(); Hasilnya adalah Xantonius rc. Kebaikan dari pemakaian fungsi ini adalah bentuknya yang sederhana, sedangkan kelemahannya adalah bahwa fungsi ini tidak dapat digunakan untuk menampilkan bentuk yang rumit dan hanya dapat menggunakan sebuah argumen saja. 4.4 STRUKTUR OUTPUT TERFORMAT Di dalam bahasa C, perintah untuk menampilkan hasil terformat adalah printf(). Bentuk-bentuk terformat menggunakan kode-kode format tertentu yang mirip dengan input terformat pada subbab sebelumnya. Berikut adalah tabel kode untuk menampilkan output terformat pada bahasa C: Struktur Input dan Output 5 Tabel 4.2 Tabel Format Printf() Kode Format Kegunaan %C Menampilkan sebuah karakter %S Menampilkan nilai string %d Menampilkan nilai desimal integer %i Menampilkan nilai desimal integer %u Menampilkan nilai desimal integer tak bertanda %x Menampilkan nilai heksadesimal integer %O Menampilkan nilai oktal integer %E Menampilkan nilai pecahan %e Menampilkan nilai dalam notasi saintifik %g Sebagai pengganti %f atau %e tergantung yang terpendek %p Menampilkan suatu alamat memori untuk pointer 4.4.1 Menampilkan Nilai Karakter Terformat Untuk menampilkan karakter di C secara terformat, kita dapat mengguna- kan “%c”. Misalnya, untuk menampilkan sebuah karakter dengan lebar 3 posisi (dua karakter di depan karakternya blank), digunakan format “%3c” dan untuk membuat tampilan output rata kiri (blank space ada di sebelah kanan karakternya) dapat digunakan simbol (flag) minus, misalnya “%-3c’. Beberapa contoh lainnya dapat dilihat berikut ini: #include #include int main() { char c = ‘a’; printf£("%3c\n",c); print£("%-3c\n",c); getch(); iO Algoritma dan Pemrograman dengan Bahasa C 4.4.2 Menampilkan String Terformat Seperti yang sudah dijelaskan sebelumnya, string adalah kumpulan karak- ter. Untuk menampilkan output berupa string dengan format tertentu, kode-kode formatnya dapat dilihat pada tabel berikut ini. Tabel 4.3 Tabel Format String FORMAT | KETERANGAN “%s" Menampilkan semua nilai karakter pada nilai string. “%Ns” Menampilkan semua karakter rata kanan dengan lebar N posisi; N adalah konstanta numerik bulat. “%-Ns” Menampilkan semua karakter rata kiri dengan lebar N posisi; N adalah konstanta numerik bulat. “%N.Ms” Menampilkan rata kanan, hanya M _ buah_ karakter pertama saja dengan lebar N posisi; M dan N adalah konstanta numerik bulat. “%-N.Ms” | Menampilkan rata kiri hanya M buah karakter pertama saja dengan lebar N posisi; M dan N adalah konstanta numerik bulat, Contoh: #include #include int main() . char D[15] = "Antonius Rachmat printé("12345678901234567890\n"); printf("%s\n",D); /* semua karakter, rata kiri */ print£("%20s\n",D); /* lebar 20, rata kanan */ print£("%-20s\n",D); /* lebar 20, rata kiri */ print£("%20.5s\n",D); /* 5 karakter lbr 20, rata kanen */ print£("%-20,5s\n",D); /* 5 karakter lbr 20, rata kiri */ getch(); 2 Struktur Input dan Output 1 Hasil 1234567B901234567890 Antonius Rachmat C Antonius Rachmat C Antonius Rachmat C Anton Anton 4.4.3 Menampilkan Integer Terformat Untuk menampilkan data integer (bilangan bulat) juga digunakan beberapa kode format tertentu, yaitu sebagai berikut: FORMAT ARTI “Kd”, “i” signed int “Yu” unsigned int “%ld”,"%1i” Long int “Shi” short int “%hu"” unsgined short int “g6lu” unsigned long int R| Contoh: #include #include int main() { int i=1234; printf ("%i\n",i printf ("%5i\n",i); print£("%7d\n",i); print£("%074\n",i); print ("%-74\n",i); getch(); I 1B Algoritma dan Pemrograman dengan Bahasa C 4.4.4 Menampilkan Output Bilangan Pecahan (Floating Point) Untuk menampilkan output berupa bilangan pecahan hampir mirip dengan menampilkan output integer, yaitu. menggunakan kode-kode format tertentu, yang dapat dilihat pada tabel berikut ini: Tabel 4.4 Tabel Format Float FORMAT ARTI “Ae” float dengan nilai pecahan “He” float dengan notasi saintifik “%e"” terpendek dari “%f” atau “%e” “"lt", “Kle” atau “Ig” Double “*LE", “%Le” atau “Le” long double Contoh: #include ffinclude int main() t float x=123.4567; print£("%3£ %15£ %020£\n",x,x,x); print£("%3e %15e %020e\n", x, x, x); getch(); Struktur Input dan Output Hasilnya: 123.456703 123.456703 0000000000123.456703 1.23457e+02 1.23457e+02 0000000001.23457e+02 Contoh 2: 1 #include #include int main() t float F=12345.6789; printf ("%15£\n",F); print£("%15.2£\n",F); print£("%015.2£\n",F); print£("%-15.2£\n",P); print£("%15.0£\n",F); getch(); Hasil: 12345.678711 12345.68 000000012345. 68 12345.68 123456 Contoh: #include #include int main() t print£("123456789\n\n"); print£("%déc\n",'a'); print£("%-4c\n",'a'); print£("%4d\n",50); print£("%-44\n",50); print£("%6f\n",7.56); print£("%6.2£\n",7.56); print£("%6.3£\n",7.56); 80 Ajgoritma dan Pemrograman dengan Bahasa C printé ("%-6.3£\n",7.56): getch(); } Hasilnya: 123456789 a a 50 50 7.560000 7.56 7.560 7.560 4.4.5 Menampilkan Oktal dan Heksadesimal Untuk menampikan output bilangan oktal dapat digunakan format %o sedangkan untuk menampilkan bilangan heksadesimal dapat digunakan format %x. Keduanya tetap menerima input berupa data integer desimal terlebih dahulu. Jadi fungsi %x dan %o hanyalah untuk menampilkan data, bukan mengubahnya menjadi oktal dan heksa secara sebenarnya. Contoh heksadesimal: #include #include int main() { int x = 1234; printf ("%x\n",x); //hasil = 442 getch(); Struktur Input dan Output 81 Contoh oktal: #include #include int main() { int 0=1234; print£("%o\n"); //Hasil = 2322 getch(); d Pada program DevC++ ada fungsi yang bisa digunakan untuk membersihkan layar output dengan meng-include-kan file header conio.h dan menggunakan fungsi system(“cls”). Fungsi ini mengambil kemampuan dari sistem operasi Windows untuk membersihkan layar command prompt, yaitu perintah cls. Contoh: #include #include int main() t system("“cls”); print£("Layar sudah bersih..."); getch();

You might also like