INPUT/OUTPUT– menampilkan karakter ascii di ch di monitor tanpa memindahkan kursor ke posisi...

14
1 Algoritma dan Pemrograman 3: I/O INPUT/OUTPUT Fungsi-fungsi pustaka yang digunakan untuk memasukkan data melalui keyboard, prototypenya ada di: stdio.h gets() scanf() getchar conio.h getche() getch() Untuk memasukkan nilai karakter tidak terformat digunakan: getchar() getch() getche() tergantung dari karakteristik masing-masing. getchar() Sintak: : int getchar(void): Fungsi: mengembalikan sebuah karakter (nilai ASCII) berikutnya dari buffer keyboard. Karakter ditampilkan di layar monitor Menunggu sampai ada ENTER Header file ada di stdio.h getch() Sintak: int getch(void): Fungsi mengembalikan satu karakter dari buffer keyboard karakter tidak ditampilkan di layar monitor (no echo) Tidak menunggu sampai ada ENTER Menunggu pemasukkan karakter apa pun dari keyboard Cocok untuk membuat password Header file ada di conio.h getche() Sintak : int getche(void) Fungsi : mengembalikan satu karakter dari keyboard Karakter ditampilkan di layar (echo) Tidak menunggu sampai ada ENTER Header file ada di conio.h gets() Sintak : char *gets(char *buffer) Fungsi: membaca string dari keyboard sampai ketemu new-line dan disimpan pada buffer. Kemudian new-line di replace dengan null character Mengembalikan nilai NULL jika ada error dan mengembalikan argument-nya (buffer) jika sukses

Transcript of INPUT/OUTPUT– menampilkan karakter ascii di ch di monitor tanpa memindahkan kursor ke posisi...

1

Algoritma dan Pemrograman 3: I/O

INPUT/OUTPUT Fungsi-fungsi pustaka yang digunakan untuk memasukkan data melalui keyboard, prototypenya ada di: stdio.h

gets()

scanf()

getchar conio.h

getche()

getch() Untuk memasukkan nilai karakter tidak terformat digunakan: getchar() getch() getche()

tergantung dari karakteristik masing-masing. getchar() Sintak: : int getchar(void): Fungsi:

mengembalikan sebuah karakter (nilai ASCII) berikutnya dari buffer keyboard.

Karakter ditampilkan di layar monitor

Menunggu sampai ada ENTER

Header file ada di stdio.h getch() Sintak: int getch(void): Fungsi – mengembalikan satu karakter dari buffer keyboard – karakter tidak ditampilkan di layar monitor (no echo) – Tidak menunggu sampai ada ENTER

Menunggu pemasukkan karakter apa pun dari keyboard – Cocok untuk membuat password – Header file ada di conio.h getche() Sintak : int getche(void) Fungsi : – mengembalikan satu karakter dari keyboard – Karakter ditampilkan di layar (echo) – Tidak menunggu sampai ada ENTER – Header file ada di conio.h gets() Sintak : char *gets(char *buffer) Fungsi: – membaca string dari keyboard sampai ketemu new-line dan disimpan pada buffer. – Kemudian new-line di replace dengan null character – Mengembalikan nilai NULL jika ada error dan mengembalikan argument-nya (buffer) jika

sukses

2

Algoritma dan Pemrograman 3: I/O

Untuk melakukan input nilai data terformat digunakan perintah scanf(). Spesifikai format adalah : ”% type” dimana type bisa diganti dengan salah satu dari sbb:

Fungsi scanf mengembalikan tipe integer, dimana nilai nya menyatakan jumlah field yang sukses di assigned. Contoh: int x,y,z,w;

x=scanf("%d %d %d",&y,&z,&w);

maka : – Jika di input dari keyboard 3 buah nilai interger 6 7 8, maka nilai x = 3; – Jika di input dari keyboard 4 buah nilai interger 6 7 8 9 maka nilai x = 3 (karena 3 nilai yg

sukses diassigned – masing-masing ke variabel y, z dan w)

Whitespace Characters Karakter Space, tab, linefeed, carriage-return, formfeed, vertical-tab, dan newline disebut ”white-space characters” . Contoh : char ss[40];

scanf(”%s”,ss);

Pada potongan program diatas, jika dimasukkan string ”Selamat Pagi Pak” dari keyboard maka yg dimasukkan ke variabel ss hanya “Selamat” saja. Untuk mengambil string yang diakhiri karakter tertentu (misalnya ENTER), dengan scanf, menggunakan format [^\n]. Menjadi : char ss[40];

scanf(”%[^\n]”,ss);

3

Algoritma dan Pemrograman 3: I/O

MENAMPILKAN HASIL Prototype dari fungsi-fungsi untuk menampilkan hasil terdapat pada file judul stdio.h bersifat standar yaitu – putchar() – puts() – printf() – fprintf() dan conio.h bersifat tidak standar, dalam arti tidak semua kompiler C menyediakan yaitu – clrscr() – gotoxy() Untuk menampilkan hasil tidak terformat digunakan: – putchar() untuk menampilkan karakter tidak terformat – puts() untuk menampilkan string tidak terformat. Maksudnya tidak terformat adalah lebar dan bentuk tampilannya tidak dapat diatur. Sedangkan untuk hasil terformat digunakan perintah printf dengan spesifikai format sbb: %[flags][width] [.precision] type;

Width : menentukan jumlah kolom yang disediakan Precision : menentukan jumlah angka dibelakang koma (untuk bilangan pecahan) Flags dapat diganti dengan: none : right justify (rata kanan) - : left justify (rata kiri) + : untuk bilangan dimulai dgn tanda – jika negatif atau + jika positip

4

Algoritma dan Pemrograman 3: I/O

Contoh 1: printf(“%6d”, 34); ….34

printf(”%-6d”, 34); 34….

Contoh 2: printf(“%10s”, “GUNDAR”); ...GUNDAR

printf(“%-10s”, “GUNDAR”); GUNDAR...

printf(“%8.2f”, 3.14159 ); ....3.14

printf("%c\n",65); //akan ditampilkan A

printf("%x\n",'A'); // akan ditampilkan 41

printf("%o\n",65); // akan ditampilkan 101

printf("%+d\n",34); // akan ditampilkan +34

printf("%+d\n",-45); // akan ditampilkan -45

printf("%e\n",3.14); // akan ditampilkan 3.140000e+000

Contoh 3: #include <stdio.h>

int main(){

char ss[]="Selamat Datang";

printf("123456789012345678901234567890\n");

printf("%.10s di Gundar\n",ss);

printf("%10s di Gundar\n",ss);

printf("%-10s di Gundar\n",ss);

printf("%.20s di Gundar\n",ss);

printf("%20s di Gundar\n",ss);

printf("%-20s di Gundar\n",ss);

printf("%20.10s di Gundar\n",ss);

printf("%-20.10s di Gundar\n",ss);

return 0;

}

Output Program disamping sbb:

123456789012345678901234567890

Selamat Da di Gundar

Selamat Datang di Gundar

Selamat Datang di Gundar

Selamat Datang di Gundar

Selamat Datang di Gundar

Selamat Datang di Gundar

Selamat Da di Gundar

Selamat Da di Gundar

5

Algoritma dan Pemrograman 3: I/O

putchar( ) Sintak: int putchar(int c) Fungsi : – Menampilkan karakter ke layar monitor pada cursor, kemudian setelah ditampilkan cursor

bergerak ke posisi berikutnya. – Mengembalikan EOF jika error, dan mengembalikan karakter yang ditampilkan jika sukses – Putchar adalah macro yang sama artinya dengan: putc(c, stdout ) – Header File : stdio.h putch( ) Sintak : int putch(int ch) Fungsi : – menampilkan karakter ascii di ch di monitor tanpa memindahkan kursor ke posisi

berikutnya – Header file : conio.h – Mengembalikan EOF jika error, dan mengembalikan karakter yang di tampilkan jika sukses. puts( ) Sintak : int puts(const char *str); Fungsi: – Menampilkan string str ke layar monitor dan memindahkan kursor ke baris baru. – Header file: stdio.h – Mengembalikan nilai non-negative jika sukses dan EOF jika ada error. Contoh: puts(”Selamat Datang”); puts(”Di GUNDAR”); Tampilan di layar monitor: Selamat Datang Di GUNDAR Penempatan kursor – Layar dapat dihapus dengan menggunakan fungsi: clrscr(); – Kursor dapat dipindahkan ke posisi manapun di dalam layar monitor dengan menggunakan

fungsi : gotoxy(col,row);

dimana col = kolom dan row = baris – Sebagian dari baris, mulai posisi kursor hingga akhir baris (end of line), dapat dihapus

dengan fungsi: clreol();

– Function prototype untuk fungsi gotoxy(), clrscr(), clreol() pada bahasa C terdapat pada header file :

<conio.h>

6

Algoritma dan Pemrograman 3: I/O

Screen Output Fungsi Screen output terbagi atas tiga kategori umum: Character output Line output Formatted output

Character Output : putchar(), putc(), and fputc() Fungsi output dari C library's character mengirimkan sebuah karakter tunggal ke sebuah Stream putchar() mengirimkan output ke stdout (umumnya ke layar -screen) fputc() and putc() mengirimkan output ke sebuah stream yang telah ditentukan di dalam

daftar argument(argument list) putchar() Function

int putchar(int c); Fungsi ini menuliskan karakter yang disimpan dalam c ke stdout. Fungsi ini melakukan return karakter yang baru saja dituliskan, atau EOF jika terjadi kesalahan. Listing 14.10 menampilkan karakter dengan nilai ASCII antara 14 dan 127. Listing 14.10. The putchar() function. 1: /* Demonstrates putchar(). */ 2: 3: #include <stdio.h> 4: main() 5: { 6: int count; 7: 8: for (count = 14; count < 128; ) 9: putchar(count++); 10: 11: return 0; 12: }

7

Algoritma dan Pemrograman 3: I/O

Listing 14.11. Displaying a string with putchar(). 1: /* Using putchar() to display strings. */ 2: 3: #include <stdio.h> 4: 5: #define MAXSTRING 80 6: 7: char message[] = "Displayed with putchar()."; 8: main() 9: { 10: int count; 11: 12: for (count = 0; count < MAXSTRING; count++) 13: { 14: 15: /* Look for the end of the string. When it's found, */ 16: /* write a newline character and exit the loop. */ 17: 18: if (message[count] == `\0') 19: { 20: putchar(`\n'); 21: break; 22: } 23: else 24: 25: /* If end of string not found, write the next character. */ 26: 27: putchar(message[count]); 28: } 29: return 0; 30: } Output: Displayed with putchar(). putc() dan fputc() Functions Kedua fungsi ini menjalankan aksi yang sama--mengirimkan sebuah karakter tunggal ke stream yang telah ditentukan

int fputc(int c, FILE *fp); Kedua pernyataan berikut ini adalah ekuivalen: putchar(`x'); fputc(`x', stdout);

8

Algoritma dan Pemrograman 3: I/O

puts() and fputs() untuk String Output puts() menampilkan string fputs() mengirimkan sebuah string kepada sebuah string yang telah ditentukan

Listing 14.12. Using the puts() function to display strings. 1: /* Demonstrates puts(). */ 2: 3: #include <stdio.h> 4: 5: /* Declare and initialize an array of pointers. */ 6: 7: char *messages[5] = { "This", "is", "a", "short", "message." }; 8: 9: main() 10: { 11: int x; 12: 13: for (x=0; x<5; x++) 14: puts(messages[x]); 15: 16: puts("And this is the end!"); 17: 18: return 0; 19: } Output: This is a short message. And this is the end!

9

Algoritma dan Pemrograman 3: I/O

Formatted Output: printf() dan fprintf() Untuk menampilkan angka, anda harus menggunakan C library's formatted output functions, yaitu: printf() and fprintf(). printf() selalu mengirimkan output ke stdout fprintf() menentukan output stream, biasanya digunakan untuk output pada disk files

Fungsi printf() memerlukan sejumlah argument, paling sedikit satu. Argument pertama dan hanya yang diperlukan adalah format string, yang

memberitahukan fungsi printf() tentang bentuk output. Argument opsional adalah variabel dan ekpresi yang nilainya akan ditampilkan

statement printf("Hello, world."); menampilkan message Hello, world. Pada layar. Ini

adalah contoh penggunaan printf() dengan hanya satu argument, yaitu format string. The statement printf("%d", i); menampilkan nilai dari variablel i pada layar. . Format

string hanya berisi format specifier %d, yang memberitahukan printf() untuk mencetak sebuah integer desimal tunggal. Argument kedua adalah i, nama variabel yang nilainya akan ditampilkan.

Statement printf("%d plus %d equals %d.", a, b, a+b); menampilkan 2 plus 3 equals 5 pada layar.

Table 14.5. The printf() and fprintf() conversion characters.

Conversion Character

Meaning

d, i Display a signed integer in decimal notation.

u Display an unsigned integer in decimal notation.

o Display an integer in unsigned octal notation.

x, X Display an integer in unsigned hexadecimal notation. Use x for lowercase output and X for uppercase output.

c Display a single character (the argument gives the character's ASCII code).

e, E Display a float or double in scientific notation (for example, 123.45 is displayed as 1.234500e+002). Six digits are displayed to the right of the decimal point unless another precision is specified with the f specifier. Use e or E to control the case of output.

f Display a float or double in decimal notation (for example, 123.45 is displayed as 123.450000). Six digits are displayed to the right of the decimal point unless another precision is specified.

g, G Use e, E, or f format. The e or E format is used if the exponent is less than -3 or greater than the precision (which defaults to 6). f format is used otherwise. Trailing zeros are truncated.

n Nothing is displayed. The argument corresponding to an n conversion command is a pointer to type int. The printf() function assigns to this variable the number of characters output so far.

10

Algoritma dan Pemrograman 3: I/O

s Display a string. The argument is a pointer to char. Characters are displayed until a null character is encountered or the number of characters specified by precision (which defaults to 32767) is displayed. The terminating null character is not output.

% Display the % character.

char *fmt = "The answer is %f."; printf(fmt, x); ekuivalen: printf("The answer is %f.", x); Table 14.6. The most frequently used escape sequences.

Sequence Meaning

\a Bell (alert)

\b Backspace

\n Newline

\t Horizontal tab

\\ Backslash

\? Question mark

\' Single quote

\" Double quote

printf() is somewhat complicated. The best way to learn how to use it is to look at examples and then experiment on your own. Listing 14.13 demonstrates some of the ways you can use printf().

11

Algoritma dan Pemrograman 3: I/O

Listing 14.13. Some ways to use the printf() function. 1: /* Demonstration of printf(). */ 2: 3: #include <stdio.h> 4: 5: char *m1 = "Binary"; 6: char *m2 = "Decimal"; 7: char *m3 = "Octal"; 8: char *m4 = "Hexadecimal"; 9: 10: main() 11: { 12: float d1 = 10000.123; 13: int n, f; 14: 15: 16: puts("Outputting a number with different field widths.\n"); 17: 18: printf("%5f\n", d1); 19: printf("%10f\n", d1); 20: printf("%15f\n", d1); 21: printf("%20f\n", d1); 22: printf("%25f\n", d1); 23: 24: puts("\n Press Enter to continue..."); 25: fflush(stdin); 26: getchar(); 27: 28: puts("\nUse the * field width specifier to obtain field width"); 29: puts("from a variable in the argument list.\n"); 30: 31: for (n=5;n<=25; n+=5) 32: printf("%*f\n", n, d1); 33: 34: puts("\n Press Enter to continue..."); 35: fflush(stdin); 36: getchar(); 37: 38: puts("\nInclude leading zeros.\n"); 39: 40: printf("%05f\n", d1); 41: printf("%010f\n", d1); 42: printf("%015f\n", d1); 43: printf("%020f\n", d1); 44: printf("%025f\n", d1); 45: 46: puts("\n Press Enter to continue..."); 47: fflush(stdin);

12

Algoritma dan Pemrograman 3: I/O

48: getchar(); 49: 50: puts("\nDisplay in octal, decimal, and hexadecimal."); 51: puts("Use # to precede octal and hex output with 0 and 0X."); 52: puts("Use - to left-justify each value in its field."); 53: puts("First display column labels.\n"); 54: 55: printf("%-15s%-15s%-15s", m2, m3, m4); 56: 57: for (n = 1;n< 20; n++) 58: printf("\n%-15d%-#15o%-#15X", n, n, n); 59: 60: puts("\n Press Enter to continue..."); 61: fflush(stdin); 62: getchar(); 63: 64: puts("\n\nUse the %n conversion command to count characters.\n"); 65: 66: printf("%s%s%s%s%n", m1, m2, m3, m4, &n); 67: 68: printf("\n\nThe last printf() output %d characters.\n", n); 69: 70: return 0; 71: } Output: Outputting a number with different field widths. 10000.123047 10000.123047 10000.123047 10000.123047 10000.123047 Press Enter to continue... Use the * field width specifier to obtain field width from a variable in the argument list. 10000.123047 10000.123047 10000.123047 10000.123047 10000.123047 Press Enter to continue... Include leading zeros. 10000.123047 10000.123047 00010000.123047 0000000010000.123047 000000000000010000.123047

13

Algoritma dan Pemrograman 3: I/O

Press Enter to continue... Display in octal, decimal, and hexadecimal. Use # to precede octal and hex output with 0 and 0X. Use - to left-justify each value in its field. First display column labels. Decimal Octal Hexadecimal 1 01 0X1 2 02 0X2 3 03 0X3 4 04 0X4 5 05 0X5 6 06 0X6 7 07 0X7 8 010 0X8 9 011 0X9 10 012 0XA 11 013 0XB 12 014 0XC 13 015 0XD 14 016 0XE 15 017 0XF 16 020 0X10 17 021 0X11 18 022 0X12 19 023 0X13 Press Enter to continue... Use the %n conversion command to count characters. BinaryDecimalOctalHexadecimal The last printf() output 29 characters.

14

Algoritma dan Pemrograman 3: I/O

1: /* Demonstrates the numeric nature of char variables */

2:

3: #include <stdio.h>

4:

5: /* Declare and initialize two char variables */

6:

7: char c1 = `a';

8: char c2 = 90;

9:

10: main()

11: {

12: /* Print variable c1 as a character, then as a number */

13:

14: printf("\nAs a character, variable c1 is %c", c1);

15: printf("\nAs a number, variable c1 is %d", c1);

16:

17: /* Do the same for variable c2 */

18:

19: printf("\nAs a character, variable c2 is %c", c2);

20: printf("\nAs a number, variable c2 is %d\n", c2);

21:

22: return 0;

23: }

As a character, variable c1 is a

As a number, variable c1 is 97

As a character, variable c2 is Z

As a number, variable c2 is 90

1: /* Demonstrates printing extended ASCII characters */

2:

3: #include <stdio.h>

4:

5: unsigned char x; /* Must be unsigned for extended ASCII */

6:

7: main()

8: {

9: /* Print extended ASCII characters 180 through 203 */

10:

11: for (x = 180; x < 204; x++)

12: {

13: printf("ASCII code %d is character %c\n", x, x);

14: }

15:

16: return 0;

17: }

ASCII code 180 is character ¥

ASCII code 181 is character µ

ASCII code 182 is character [partialdiff]

ASCII code 183 is character [Sigma]

ASCII code 184 is character [Pi]

ASCII code 185 is character [pi]

ASCII code 186 is character [integral]

ASCII code 187 is character ª

ASCII code 188 is character º

ASCII code 189 is character [Omega]

ASCII code 190 is character æ

ASCII code 191 is character ø

ASCII code 192 is character ¿

ASCII code 193 is character ¡

ASCII code 194 is character ¬

ASCII code 195 is character [radical]

ASCII code 196 is character [florin]

ASCII code 197 is character ~

ASCII code 198 is character [Delta]

ASCII code 199 is character «

ASCII code 200 is character »

ASCII code 201 is character ...

ASCII code 202 is character g

ASCII code 203 is character À