Operasi Output-Input Operasi output standar e.g. putchar(),putch(),puts(),printf() Format output Operasi input standar e.g. getchar(),getch(),getche(),gets(),scanf() Format input 1
Operasi Output Dipakaiuntuk menampilkan nilai data ke peralatan output sebagai data keluaran. Beberapa fungsi (standard library function) yang terdapat pada bahasa pemrograman C dapat: menampilkan data tidak terformat putchar(); putch(); puts(); menampilkan data terformat printf(); 2
Output Standar Peralatan output standar biasanya adalah layar monitor. Simbol yang lazim digunakan dalam flowchartuntuk output standar adalah: Cetak... 3
Fungsi putchar() Fungsi: Menampilkan karakter ke layar monitor pada cursor, kemudian (setelah karakter tampil) cursor bergerak ke posisi berikutnya. Mengembalikan EOFjika error, atau mengembalikan karakter yang ditampilkan jika sukses Header file: stdio.h Contoh: char ch= A ; putchar(ch); 4
Fungsi putch() Fungsi : Seperti putchar(ch) untuk menampilkan karakter ASCII dari ch di layar monitor. Header file: conio.h Tersedia dalam Borland C++ library, tetapi tidak dalam ANSI C dan ANSI C++ Mengembalikan EOFjika error, atau mengembalikan karakter yang ditampilkan jika sukses. Contoh: char ch= b ; putch(ch); 5
Fungsi puts() Fungsi: Menampilkan string ke layar monitor dan memindahkan kursor ke baris baru. Header file: stdio.h Mengembalikan nilai non-negative jika sukses atau EOF jika ada error. Contoh: puts( Selamat Datang ); puts( Di Bahasa Pemrograman C ); 6
Fungsi putch(),puts(),putchar() Contoh program: #include <stdio.h> #include <conio.h> #include <stdlib.h> int main(){ char c, s[20]="ini data String"; c='a'; putch(65); putchar(65); putch(c); putchar(c); puts(s); putch('\n'); putchar('\n'); Output: AAAAIni data String } system("pause"); return(0); Press any key to continue... 7
Fungsi printf() Menampilkan sejumlah nilai data ke standard output, dengan format tertentu. Standard output biasanya adalah layar monitor, sedangkan standard input biasanya adalah keyboard. Header file untuk printf adalah: stdio.h Sintaks : printf(const char *format[,argument, ]); *format: format string, mengontrol bagaimana setiap fungsi akan mengonversi, memformat dan mencetak setiap argument-nya 8
Fungsi printf() Format specifier memiliki bentuk: %[flags][width][.precision] type_char Komponen flags width precision type_char Keterangan Menentukan rata kanan, kiri atau bertanda: None : rata-kanan - : rata-kiri + : menampilkan tanda (+ atau -) Menentukan jumlah unit ruang (slot karakter) yang disediakan Menentukan jumlah angka di belakang titik desimal (untuk bilangan pecahan) atau jumlah karakter (untuk string) yang ditampilkan Menentukan tipe variabel/nilai-data yang akan ditampilkan 9
Conversion-type Character (type_char) type_char c s Menampilkan karakter tunggal Menampilkan string Keterangan d atau i u x o f E atau e G atau g p L atau l atau h Menampilkan bilangan integer bertanda Menampilkan bilangan integer desimal tak bertanda Menampilkan bilangan integer hexadesimal tak bertanda (x dlm huruf kecil dan X dlm huruf besar) Menampilkan bilangan integer oktal tak bertanda Menampilkan bilangan pecahan (titik desimal) Menampilkan bilangan pecahan eksponensial Menampilkan bilangan pecahan Menampilkan pointer Awalan untuk L atau l (long) dan h (short). 10
Format Karakter Format specifier (kode format) %c %nc %-nc Keterangan Menampilkan sebuah karakter tunggal terformat Menampilkan sebuah karakter lebar n kolom rata kanan Menampilkan sebuah karakter lebar n kolom rata kiri Contoh: #include <stdio.h> #include <stdlib.h> int main(){ printf("%c\n",65); printf("%5c%5c%5c\n",65,66,67); printf("%-5c%-5c%-5c\n",65,66,67); system("pause"); return(0); } 11
Format String Format specifier %s %ns %-ns %n.ms %-n.ms Keterangan Menampilkan sebuah nilai string terformat Menampilkan nilai string lebar n kolom rata kanan Menampilkan nilai string lebar n kolom rata kiri Menampilkan rata kanan hanya m buah karakter pertama saja dengan lebar n kolom. Menampilkan rata kiri hanya m buah karakter pertama saja dengan lebar n kolom. 12
Contoh Format String #include <stdio.h> #include <stdlib.h> int main(){ char s[20]="pemrograman C"; printf("%s%c\n",s,' '); printf("%30s%c\n",s,' '); printf("%-30s%c\n",s,' '); printf("%30.5s%c\n",s,' '); printf("%-30.5s%c\n\n\n",s,' '); } system("pause"); return(0); 13
Format Desimal Integer Format Specifier %d, %i %u %ld, %li %hi %hu %lu %ni, %nd %-ni, %-nd %+ni, %+nd %-+ni, %-+nd %0ni, %0nd Keterangan Menampilkan sebuah nilai signed integer terformat Menampilkan sebuah nilai unsigned integer terformat Menampilkan sebuah nilai long integer terformat Menampilkan sebuah nilai short integer terformat Menampilkan sebuah nilai unsigned short integer terformat Menampilkan sebuah nilai unsigned long integer terformat Menampilkan sebuah nilai integer terformat n kolom rata kanan Menampilkan sebuah nilai integer terformat n kolom rata kiri Menampilkan nilai integer terformat dg tanda (+/-) n kolom rata kanan Menampilkan nilai integer terformat dg tanda (+/-) n kolom rata kiri Menampilkan sebuah nilai integer terformat n kolom rata kanan dg blank di depan diganti 0. 14
Contoh Format Desimal Integer #include <stdio.h> #include <stdlib.h> int main(){ int x=1234, y=-567; long int z = -567; printf("%d %u %hi %lu\n",y,y,y,z); printf("size of short:%d int:%d long:%d\n\n", sizeof(short int), sizeof(int), sizeof(long int)); printf("%d %+8d %+8d %+8ld\n",x,x,y,z); printf("%d %-8d %-8d %-8ld\n",x,x,y,z); printf("%d %-+8d %-+8d %-+8ld\n",x,x,y,z); printf("%d %+-8d %+-8d %+-8ld\n",x,x,y,z); printf("%0d %+08d %+08d %+08ld\n\n",x,x,y,z); system("pause"); return(0); } 15
Format Heksadesimal Format Specifier %x, %X %nx, %nx %0nx, %0nX %-nx, %-nx %#x, %#X %#nx, %#nx %#-nx, %#-nx Keterangan Menampilkan nilai unsigned integer terformat hexadesimal Menampilkan format hexadesimal lebar n kolom rata kanan Menampilkan format hexadesimal lebar n kolom rata kanan dg blank di depan diganti 0. Menampilkan format hexadesimal lebar n kolom rata kiri Menampilkan format hexadesimal diawali dengan 0x atau 0X Menampilkan format hexadesimal lebar n kolom rata kanan diawali dengan 0x atau 0X Menampilkan format hexadesimal lebar n kolom rata kiri diawali dengan 0x atau 0X 16
Contoh Format Heksadesimal #include <stdio.h> #include <stdlib.h> int main(){ int x=7654; printf("%x %X %10x %10X\n\n",x,x,x,x); printf("%x %X %-10x %-10X\n\n",x,x,x,x); printf("%x %X %010x %010X\n\n",x,x,x,x); printf("%#x %#X %#10x %#10X\n\n",x,x,x,x); printf("%#x %#X %#010x %#010X\n\n",x,x,x,x); printf("%#x %#X %#-10x %#-10X\n\n",x,x,x,x); system("pause"); return(0); } 17
Format Oktal Format specifier %o %no %0no %-no Keterangan Menampilkan nilai unsigned integer terformat oktal Menampilkan format oktal lebar n kolom rata kanan Menampilkan format oktal lebar n kolom rata kanan dg blank di depan diganti 0. Menampilkan format oktal lebar n kolom rata kiri %#o Menampilkan format oktal diawali dengan 0 %#no Menampilkan format oktal lebar n kolom rata kanan diawali dengan 0 %#-no Menampilkan format oktal lebar n kolom rata kiri diawali dengan 0 18
Contoh Format Oktal #include <stdio.h> #include <stdlib.h> int main(){ int x=7654; printf("%o %10o%c\n\n",x,x,' '); printf("%o %-10o%c\n\n",x,x,' '); printf("%o %010o%c\n\n",x,x,' '); printf("%o %#o%c\n\n",x,x,' '); printf("%o %#o%c\n\n",x,x,' '); printf("%o %#-10o%c\n\n\n",x,x,' '); system("pause"); return(0); } 19
Format Desimal Pecahan Format Specifier %f %e %g %lf, %le, %lg %Lf, %Le, %Lg %nf %-nf %n.mf %0n.mf %-+n.mf Keterangan Menampilkan sebuah nilai float (pecahan) desimal terformat Menampilkan sebuah nilai float desimal terformat saintifik Menampilkan sebuah nilai float desimal terformat yang terpendek di antara %f atau %e Menampilkan sebuah nilai pecahan terformat double Menampilkan sebuah nilai pecahan terformat long double Menampilkan nilai float integer terformat n kolom rata kanan Menampilkan nilai float integer terformat n kolom rata kiri Menampilkan nilai float integer terformat n kolom rata kanan dg m digit di belakang titik desimal Menampilkan nilai float integer terformat n kolom rata kanan dg m digit di belakang titik desimal dan blank di depan diganti 0. Menampilkan nilai float terformat dg tanda (+/-) n kolom rata kiri dg m digit di belakang titik desimal 20
Contoh Format Desimal Pecahan #include <stdio.h> #include <stdlib.h> int main(){ float x=7654.123456789; double d = 7654.123456789012345l; printf("%f %15f %15.3f\n\n",x,x,x); printf("%e %15e %15.3e\n\n",x,x,x); printf("%g %15g %15.3g\n\n",x,x,x); printf("%lf %20lf %+20.9lf\n\n",d,d,d); system("pause"); return(0); } 21
Contoh Format Desimal Pecahan #include <stdio.h> #include <math.h> #include <stdlib.h> int main(){ int n; double fb; printf(" TABEL FAKTOR BUNGA MAJEMUK\n\n"); printf(" n %10s %10s %10s %10s %10s\n\n", "1.0%","2.0%","3.0%","4.0%","5.0%"); for(n=1; n<=15; n++){ } printf("%02d ",n); for(int i=1; i<=5; i++){ fb = pow(1.0 + i/100.0, n); printf("%11.7lf",fb); } printf("\n"); } printf("\n"); system("pause"); return(0); 22
Operasi Input Operasi untuk menyimpan nilai data ke variabel tertentu melalui peralatan I/O, mis. keyboard, disk, dll. Standard library function berkaitan operasi input standart di bahasa pemrograman C di antaranya: getchar(); getch(); getche(); gets(); scanf(); 23
Input Standar Peralatan input standar adalah keyboard Simbol yang lazim digunakan dalam flowchartuntuk input standar adalah: Baca Daftar_variabel 24
Fungsi getchar() Fungsi: Mengembalikan sebuah karakter (nilai ASCII) dari keyboard buffer Karakter ditampilkan di layar monitor Menunggu sampai ditekan ENTER Header file terdapat di stdio.h Contoh: int ch; ch = getchar(); // cetak ch printf( ch = %c, ch); //atau ch = getchar(); 25
Fungsi getch() Fungsi: Mengembalikan satu karakter dari keyboard buffer Karakter tidak ditampilkan di layar monitor (no echo) Tidak menunggu sampai ada ENTER Header file terdapat di conio.h Contoh: int ch; ch = getch(); // cetak ch printf( ch = %c, ch); //atau ch = getch(); 26
Fungsi getche() Fungsi : Mengembalikan satu karakter dari keyboard buffer Karakter ditampilkan di layar (echo) Tidak menunggu sampai ada ENTER Header file terdapat di conio.h Contoh: int ch; ch = getche(); // cetak ch printf( ch = %c, ch); //atau ch = getche(); 27
Fungsi gets() Fungsi: Membaca string dari keyboard sampai new-linedan menyimpannya pada buffer. Kemudian mengubah new-line menjadi karakter null (\0) Mengembalikan nilai NULLjika ada errordan mengembalikan argumennya (buffer) jika sukses. Contoh: char buffer[40]; gets(buffer); //cetak buffer printf( buffer = %s, buffer); 28
Format: int scanf(const char *format [, argument,..]); Fungsi: Fungsi scanf() Memindai(scan) serangkaian input fields di buffer, satu karakter dalam satu saat Memformatsetiapfieldsesuaidenganformat specifierdalamformat string *format Mengembalikan nilai bertipe integer, yang menyatakan jumlah field yang sukses di-assigned. Semua tipe argument pada scanf() adalah pointer(alamat dari variabel yang akan diisikan data) Untuk memperoleh alamat dari variabel digunakan operator &. Header file: stdio.h Contoh: int umurtahun; scanf( %d, &umurtahun); 29
Fungsi scanf() Format specifier berbentuk : % type_char type_char d,i u o x e,f,g c s [ ] [^..] Dipakai untuk membaca - Data integer - Data unsigned integer - Data unsigned octal - Data heksadesimal - Data floating point - Karakter tunggal (single character) - String, diakhiri dengan whitespace character - String, diakhiri dengan karakter yang tidak ada didalam [...]; dengan kata lain, string yang dibaca & disimpan adalah yang berisi karakter di dalam [ ] - String, diakhiri dengan karakter yang ada didalam [^...] 30
Fungsi scanf() Jika x adalah variabel integerbernilai 234 dan memiliki alamat 4567,apakahperbedaan x dengan &x? Jawab: Nama Variabel Nilai Data/ isi-memori X 234 45678 Alamat-Memori (&x) Jika ada ybertipe integer(int y;) dan y = x; maka y akan berisi data bernilai 234 Jika ada ybertipe pointer to integer(int *y) dan y = &x; maka y akan berisi alamat dari x yaitu 45678 31
Fungsi scanf() Fungsi scanf()mengembalikan nilai bertipe integer, yang menyatakan jumlah field yang sukses di-assigned. Contoh: int x,y,z,w; x = scanf("%d %d %d", &y, &z, &w); Jika diinputkan dari keyboard 3 buah nilai integer 6 7 8, maka nilai x = 3; Jika diinputkan dari keyboard 4 buah nilai integer 6 7 8 9 maka nilai x = 3 (karena hanya ada 3 nilai yangg sukses diassigned ke masing-masing variabel y, z dan w) 32
Fungsi scanf() Contoh Program Luas Segi Empat /* Program Luas_Segi_Empat */ #include <stdio.h> #include <stdlib.h> int main(){ int panjang, lebar, luas; printf("menghitung Luas Segiempat\n\n"); printf("panjang: "); scanf("%d",&panjang); printf( Lebar: "); scanf("%d",&lebar); luas = panjang * lebar; printf("\nluas = %d x %d = %d\n\n", panjang, lebar, luas); system("pause"); return(0); } 33
Fungsi scanf() Mengambil data string dari keyboard dengan fungsi scanf() menggunakan format: %s. Contoh: char ss[40]; scanf( %s,ss); Perhatikan contoh diatas, karena variabel ss tipenya sudah pointer(topik tentang pointer akan dibahas tersendiri), makatidakperluditambahtanda&(i.e. &ss). String yang diambil hanya sampai karakter whitespace. 34
Fungsi scanf() Karakternew line ( \n ), horizontal tab( \t ), carriage-return ( \r ), form feed( \f ), dan vertical-tab ( \v ) disebut white-space characters Contoh: Pada potongan program sebelumnya, jika dimasukkanstring Selamat Pagi Pak dari keyboard maka yg dimasukkan ke variabel ss hanya Selamat saja. Untuk mengambil string yang diakhiri karakter tertentu (misalnyaenter), denganscanf()dapat menggunakan format [^\n] 35
Fungsi scanf() Contoh: char ss[40]; scanf( %[^\n],ss); Pada potongan program diatas, jika dimasukkan string Selamat Pagi Pak kemudian tekan ENTER dari keyboardmaka variabel ssberisi string Selamat Pagi Pak 36
Fungsi scanf() Contoh: char ss[40]; scanf( %[a-z],ss); Pada potongan program diatas, jika dimasukkan string: http://brawijaya.ac.id kemudian ditekan ENTER dari keyboard maka variabel ss hanya berisi string: http. Titik dua ( : ) tidak ada di antara a dan z, sehingga titik dua dianggap sebagai akhir dari string yang dimasukkan. 37
Fungsi scanf() Contoh: int x; scanf("%o", &x); Pada potongan program diatas, jika dimasukkan bilangan : 44 kemudian ditekan ENTER dari keyboard maka variabel xakan berisi nilai : 36desimal, karena 44 dianggap bilangan berbasis oktal. 38
Fungsi scanf() Contoh: int x; scanf("%x", &x); Pada potongan program di atas, jika dimasukkan bilangan: 44 kemudian ditekan ENTER dari keyboard makavariabelxakanberisinilai: 68desimal, karena 44 dianggap bilangan berbasis heksadesimal. 39