03 i-o

8
INSTRUKSI INPUT / OUTPUT Deklarasi Fungsi Sebuah fungsi dalam C dideklarasikan sbb : Syntax : tipe_return nama_function(argumen); Argumen disebut juga formal parameter, yaitu data yang harus diberikan Kepada fungsi ini untuk diolah. Argumen bersifat opsional, boleh ada boleh juga tidak. Setiap argumen Ditunjukkan dengan tipe datanya Tipe_return adalah tipe data yang dikembalikan INPUT Instruksi Input (masukan) Instruksi masukan adalah function atau macro yang digunakan untuk membaca data. (berada pada file header stdio.h) Syntax : int scanf (const char *format,[address,…]); Function ini membaca sejumlah masukan berformat dari standard input stream. Data yang dimasukkan disesuaikan dengan formatnya dan disimpan di alamat variabel. Jumlahformat harus sama dengan jumlah alamat %[*][width][F|N][h|l|L]type_character * assignment-suppression character width panjang maksimum F|N pointer size modifier h|l|L argument-type modifier

Upload: evert-sandye-taasiringan

Post on 05-Dec-2014

177 views

Category:

Documents


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: 03 i-o

INSTRUKSI INPUT / OUTPUT

Deklarasi Fungsi

Sebuah fungsi dalam C dideklarasikan sbb :

Syntax : tipe_return nama_function(argumen);

Argumen disebut juga formal parameter, yaitu data yang harus diberikanKepada fungsi ini untuk diolah.Argumen bersifat opsional, boleh ada boleh juga tidak. Setiap argumenDitunjukkan dengan tipe datanya

Tipe_return adalah tipe data yang dikembalikan

INPUT

Instruksi Input (masukan)Instruksi masukan adalah function atau macro yang digunakan

untuk membaca data. (berada pada file header stdio.h)

Syntax : int scanf (const char *format,[address,…]);

Function ini membaca sejumlah masukan berformat dari standard input stream. Data yang dimasukkan disesuaikan denganformatnya dan disimpan di alamat variabel. Jumlahformat harussama dengan jumlah alamat

%[*][width][F|N][h|l|L]type_character* assignment-suppression characterwidth panjang maksimumF|N pointer size modifierh|l|L argument-type modifier

Page 2: 03 i-o

Instruksi Input (masukan)

Mencetak unsigned hexadecimal dengana,b,c,d,e,f

%x

Mencetak unsigned octal integer%o

Untuk variabel bertipe string (lebih dari1 karakter)

%s

Untuk variabel bertipe char%c

Untuk variabel bertipe double%e atau %lf

Untuk variabel bertipe long%ld

Untuk variabel bertipe float%f

Untuk variabel bertipe int%d

Format untuk menerima input data dengan scanf

Contoh Instruksi Input dan OutputContoh :

#include <stdio.h>#include <stdlib.h>

int main() {int nilai;printf(“masukkan nilai : “);scanf(“%d”,&nilai); /* & adalah operator untuk menyatakan alamat tempat

disimpannya variabel memory */printf(“nilai yang anda masukkan %d”,nilai);system(“PAUSE”);return 0;

}

Instruksi InputSyntax : int getchar(void);

Function ini mengembalikan karakter berikutnya daristandard input, berupa nilaiASCII-nya. Function initidak memerlukan input parameter karena bernilaivoid.

Syntax : int getch(void);

Function ini membaca satu karakter dari keyboard tapitidak menampilkannya di layar.

Instruksi InputSyntax : int getche(void);

Function ini membaca satu karakter dari keyboard danmenampilkannyake layar .

Syntax : char *gets(char *s);

Function ini mengembalikan sekumpulan karakter(yang diakhiri dengan karakter newline) dari standard input dan menyimpannya di variabel s. Karakternewline diganti dengan karakter null.

Page 3: 03 i-o

MASUKAN TIDAK BERFORMAT

int main() {int kar1, kar2, kar3;

kar1 = getchar(); kar2 = getchar();kar3 = getchar();printf("%c %c %c\n", kar1, kar2, kar3);printf("%d %d %d\n", kar1, kar2, kar3);return 0;

}

int main() {int kar1, kar2, kar3;

kar1 = getchar(); kar2 = getchar();kar3 = getchar();printf("%c %c %c\n", kar1, kar2, kar3);printf("%d %d %d\n", kar1, kar2, kar3);return 0;

}

ABA B

65 66 10

ABA B

65 66 10

Contoh getchar()

MASUKAN TIDAK BERFORMAT

int main() {int k1, k2, k3, k4;printf("ketik empat karakter: ");k1 = getch(); putch('*');k2 = getch(); putch('*');k3 = getch(); putch('*');k4 = getch(); puts("*");printf("ketikan Anda"" = %c%c%c%c\n", k1, k2, k3, k4);return 0;

}

int main() {int k1, k2, k3, k4;printf("ketik empat karakter: ");k1 = getch(); putch('*');k2 = getch(); putch('*');k3 = getch(); putch('*');k4 = getch(); puts("*");printf("ketikan Anda"" = %c%c%c%c\n", k1, k2, k3, k4);return 0;

}

ketik empat karakter: ****ketikan Anda = algo

ketik empat karakter: ****ketikan Anda = algo

Contoh getch()

MASUKAN TIDAK BERFORMAT

int main() {char nama[26];

printf("nama ? "); gets(nama);printf("halo %s, kenal Pengki?\n", nama);return 0;

}

int main() {char nama[26];

printf("nama ? "); gets(nama);printf("halo %s, kenal Pengki?\n", nama);return 0;

}

nama ? Pongkihalo Pongki, kenal Pengki?

nama ? Pongkihalo Pongki, kenal Pengki?

Contoh gets()

MASUKAN BERFORMAT

int main() {int a, b;printf("data ke-1 ? ");scanf("%d", &a);printf("data ke-2 ? ");scanf("%d", &b);printf("%d %d\n", a * 2, b * 2);return 0;

}

int main() {int a, b;printf("data ke-1 ? ");scanf("%d", &a);printf("data ke-2 ? ");scanf("%d", &b);printf("%d %d\n", a * 2, b * 2);return 0;

}

data ke-1 ? 125 150data ke-2 ? 250 300

data ke-1 ? 125 150data ke-2 ? 250 300

Entri data bilangan

data ke-1 ? 125data ke-2 ? 150250 300

data ke-1 ? 125data ke-2 ? 150250 300

Page 4: 03 i-o

MASUKAN BERFORMAT

int main() {int a, b;printf("ketik dua bilangan : ");scanf("%d %d", &a, &b);printf("%d x %d = %d\n", a, b, a*b);return 0;

}

int main() {int a, b;printf("ketik dua bilangan : ");scanf("%d %d", &a, &b);printf("%d x %d = %d\n", a, b, a*b);return 0;

}

ketik dua bilangan : 10 610 x 6 = 60

ketik dua bilangan : 10 610 x 6 = 60

Entri dua bilangan sekaligus

ketik dua bilangan : 10610 x 6 = 60

ketik dua bilangan : 10610 x 6 = 60

MASUKAN BERFORMAT

int main() {int dd, mm, yy, hh, mm1, ss;printf("tgl [dd-mm-yy] ? ");scanf("%d-%d-%d", &dd, &mm, &yy);printf("waktu [hh:mm:ss] ? ");scanf("%d:%d:%d", &hh, &mm1, &ss);printf("%d %d %d\n", dd, mm, yy);printf("%d %d %d\n", hh, mm1, ss);return 0;

}

int main() {int dd, mm, yy, hh, mm1, ss;printf("tgl [dd-mm-yy] ? ");scanf("%d-%d-%d", &dd, &mm, &yy);printf("waktu [hh:mm:ss] ? ");scanf("%d:%d:%d", &hh, &mm1, &ss);printf("%d %d %d\n", dd, mm, yy);printf("%d %d %d\n", hh, mm1, ss);return 0;

}

Entri karakter tertentu

tgl [dd-mm-yy] ? 15-12-08waktu [hh:mm:ss] ? 10:15:2015 12 810 15 20

tgl [dd-mm-yy] ? 15-12-08waktu [hh:mm:ss] ? 10:15:2015 12 810 15 20

MASUKAN BERFORMAT

int main() {int a, b;scanf("%2d %2d", &a, &b);printf("%d %d\n", a, b);return 0;

}

int main() {int a, b;scanf("%2d %2d", &a, &b);printf("%d %d\n", a, b);return 0;

}

scanf() dengan width

123456712 34

123456712 34

1 23451 23

1 23451 23

12345 67812 34

12345 67812 34

OUTPUT

Page 5: 03 i-o

Instruksi Output (keluaran)Perintah yang digunakan untuj mencetaktulisan ke layar. Statement standar yang digunakan untuk mencetak tulisan di C berada di file header stdio.h

Syntax : int printf(const char *format[,argument,…]);

%[flags][width][.prec][F|N|h|l|L]Function menampilkan sejumlah keluaran dengan format tertentu,

setiap argument sesuai dengan format masing-masing.

Instruksi OutputFormat untuk mencetak variabel dengan printf

Mencetak unsigned hexadecimal dengana,b,c,d,e,f

%x

Mencetak unsigned octal integer%o

Untuk variabel bertipe string (lebihdari 1 karakter)

%s

Untuk variabel bertipe char%c

Untuk variabel bertipe long double%lF

Untuk variabel bertipe double%lf

Untuk variabel bertipe long%ld atau %li

Untuk variabel bertipe float%f

Untuk variabel bertipe int%d atau %i

Instruksi OutputSyntax : int putch(int c);Digunakan untuk mencetak karakter ASCII untuk c

ke layar monitor tanpa memindahkan cursor kebaris berikutnya.

Syntax : int putchar(int c);Instruksi ini merupakan macro yang didefinisikan

untuk menjalankan function putch()Syntax : int puts(const char *s);Digunakan untuk mencetak string s ke standard

output stream dan memindahkan cursor ke barisberikutnya

KELUARAN TIDAK BERFORMATint main() {

int angka = 65;char huruf = 'B';putch(angka); putch(huruf); putch('C'); putch('\n');return 0;

}

int main() {int angka = 65;char huruf = 'B';putch(angka); putch(huruf); putch('C'); putch('\n');return 0;

} ABCABC

int main() {int angka = 97;char huruf = 'b';putchar(angka); putchar(huruf); putchar(‘c'); putchar('\n');return 0;

}

int main() {int angka = 97;char huruf = 'b';putchar(angka); putchar(huruf); putchar(‘c'); putchar('\n');return 0;

} abcabc

Page 6: 03 i-o

KELUARAN TIDAK BERFORMAT

int main() {char *mtkuliah = "ALGORITMA dan C";puts(mtkuliah);puts("***************");return 0;

}

int main() {char *mtkuliah = "ALGORITMA dan C";puts(mtkuliah);puts("***************");return 0;

}

ALGORITMA dan C***************

ALGORITMA dan C***************

KELUARAN BERFORMAT

int main() {int bulatpos = 1234;int bulatneg = -5678;puts("1234567890");printf("%6d\n", bulatpos);printf("%6d\n", bulatneg);printf("%+10d\n", bulatpos);printf("%+10d\n", bulatneg); printf("%08d\n", bulatpos);printf("%08d\n", bulatneg);printf("%2d\n", bulatpos);printf("%2d\n", bulatneg);return 0;

}

int main() {int bulatpos = 1234;int bulatneg = -5678;puts("1234567890");printf("%6d\n", bulatpos);printf("%6d\n", bulatneg);printf("%+10d\n", bulatpos);printf("%+10d\n", bulatneg); printf("%08d\n", bulatpos);printf("%08d\n", bulatneg);printf("%2d\n", bulatpos);printf("%2d\n", bulatneg);return 0;

}

12345678901234

-5678+1234-5678

00001234-00056781234-5678

12345678901234

-5678+1234-5678

00001234-00056781234-5678

Flag dan width

KELUARAN BERFORMAT

int main() {long bulatpos = 12345678;puts("123456789012345");printf("%10ld\n", bulatpos);printf("%+10ld\n", bulatpos);printf("%012ld\n", bulatpos);printf("%2ld\n", bulatpos);return 0;

}

int main() {long bulatpos = 12345678;puts("123456789012345");printf("%10ld\n", bulatpos);printf("%+10ld\n", bulatpos);printf("%012ld\n", bulatpos);printf("%2ld\n", bulatpos);return 0;

}

12345678901234512345678

+1234567800001234567812345678

12345678901234512345678

+1234567800001234567812345678

Flag dan width

KELUARAN BERFORMAT

int main() {char *s = "algoritma dan c";puts("12345678901234567890");printf("%s\n", s);printf("%18s\n", s);printf("%10.4s\n", s);printf("%.3s\n", s);return 0;

}

int main() {char *s = "algoritma dan c";puts("12345678901234567890");printf("%s\n", s);printf("%18s\n", s);printf("%10.4s\n", s);printf("%.3s\n", s);return 0;

} 12345678901234567890algoritma dan c

algoritma dan calgo

alg

12345678901234567890algoritma dan c

algoritma dan calgo

alg

String

Page 7: 03 i-o

KELUARAN BERFORMAT

int main() {float pecah = 123.25;puts("123456789012345");printf("%f\n", pecah);printf("%15f\n", pecah);printf("%10.2f\n", pecah);printf("%e\n", pecah);printf("%.2E\n", pecah);return 0;

}

int main() {float pecah = 123.25;puts("123456789012345");printf("%f\n", pecah);printf("%15f\n", pecah);printf("%10.2f\n", pecah);printf("%e\n", pecah);printf("%.2E\n", pecah);return 0;

}

123456789012345123.250000

123.250000123.25

1.232500e+0021.23E+002

123456789012345123.250000

123.250000123.25

1.232500e+0021.23E+002

Cetak data float

KELUARAN BERFORMAT

int main() {float pecah_f = 123.456;double pecah_d = 123.456;printf("%.10f\n", pecah_f);printf("%.10lf\n", pecah_d);return 0;

}

int main() {float pecah_f = 123.456;double pecah_d = 123.456;printf("%.10f\n", pecah_f);printf("%.10lf\n", pecah_d);return 0;

}123.4560012817123.4560000000

123.4560012817123.4560000000

Cetak double precision

KELUARAN BERFORMAT

int main() {int umur = 50, nilai = 70;char *nama = "Botun";float ipk = 2.75;

printf("%s, teman kuliahku yang berumur %d\n""dan ber-IPK %.2f mendapat nilai algo %d", nama, umur, ipk, nilai);

return 0;}

int main() {int umur = 50, nilai = 70;char *nama = "Botun";float ipk = 2.75;

printf("%s, teman kuliahku yang berumur %d\n""dan ber-IPK %.2f mendapat nilai algo %d", nama, umur, ipk, nilai);

return 0;}

Printf dengan beberapa format

TAMBAHAN

Page 8: 03 i-o

SEARCH SET

Search sethimpunan karakter yang akan diambil darimasukanDituliskan di dalam [ ][abcde] ⇒ hanya 5 huruf pertama yang diambil[^123] ⇒ selain 1, selain 2, selain 3[a-z] ⇒ hanya huruf kecil yang diambil[a-zA-Z] ⇒ hanya huruf yang diambil

SEARCH SET

int main() {char nim[9], nama[26];float ipk;

scanf("%[0123456789] %[^0123456789] %f", nim, nama, &ipk);printf("NIM = %s\n", nim);printf("nama = %s\n", nama);printf("IPK = %.2f\n", ipk);return 0;

}

int main() {char nim[9], nama[26];float ipk;

scanf("%[0123456789] %[^0123456789] %f", nim, nama, &ipk);printf("NIM = %s\n", nim);printf("nama = %s\n", nama);printf("IPK = %.2f\n", ipk);return 0;

}

Contoh pemakaian search set

50671238 Andy Hasten 3.70NIM = 50671238nama = Andy HastenIPK = 3.70

50671238 Andy Hasten 3.70NIM = 50671238nama = Andy HastenIPK = 3.70

SEARCH SET

int main() {char nim[9], nama[26];float ipk;

scanf("%[0123456789]",nim);printf("NIM = %s\n", nim);return 0;

}

int main() {char nim[9], nama[26];float ipk;

scanf("%[0123456789]",nim);printf("NIM = %s\n", nim);return 0;

}

Contoh pemakaian search set

ASSIGNMENT SUPPRESSION CHAR.

Assignment suppression characterMembuang isian yang tidak diperlukanMenggunakan simbol *

int main() {float ipk;

scanf("%*s %f", &ipk);printf("ipk = %.2f\n", ipk);printf("%s", (ipk >= 2.00) ?

"calon sarjana" : "calon drop-out");return 0;

}

int main() {float ipk;

scanf("%*s %f", &ipk);printf("ipk = %.2f\n", ipk);printf("%s", (ipk >= 2.00) ?

"calon sarjana" : "calon drop-out");return 0;

}60001234 3.20ipk = 3.20calon sarjana

60001234 3.20ipk = 3.20calon sarjana

60001245 1.75ipk = 1.75calon drop-out

60001245 1.75ipk = 1.75calon drop-out