Memasukkan data dan menampilkannya
merupakan hal yang
sering dilakukan dalam pemrograman. Salah satu jenis
pernyataan yang hampir selalu digunakan pada tiap program adalah pernyataan
pemanggilan fungsi untuk keperluan input/output. Untuk operasi input output
dibutuhkan praprosessor berupa #include <stdio.h>. Ada
beberapa fungsi dasar dalam fasilitas I/O, yaitu : putchar dan getchar.
Fungsi putchar digunakan khusus untuk menampilkan sebuah karakter ke
layar, sedangkan getchar digunakan untuk membaca sebuah karakter. Contoh
penggunaan fungsi dasar I/O adalah sebagai berikut:
/*
-------------------------------*/
/* Penggunaan Fungsi Dasar I/O */
/* ------------------------------_*/
#include <stdio.h>
main()
{
int c;
while ((c=getchar())
!= EOF)
putchar(c);
}
Setelah program di atas dijalankan, selama belum
dienter data diinputkan terus. Untuk menghentikan penginputan tekan CTRL c
sehingga muncul shell prompt.
Selain fasilitas dasar I/O, bahasa C juga mempunyai
fasilitas I/O yang terformat, yaitu dengan fungsi scanf dan printf. Terformat
artinya lebar dan bentuk tampilannya dapat diatur. Tabel 4 merupakan penggunaan
fasilitas I/O terformat.
Tabel 3.1.
Fasilitas I/O terformat
Format %
|
Tipe
|
Hasil
|
c
|
char
|
Satu karakter
|
i , d
|
int
|
Angka desimal
|
o
|
int
|
Angka oktal
|
x
|
int
|
Angka heksadesimal
|
u
|
int
|
Desimal tak bertanda
|
s
|
string
|
String
|
f
|
float
|
Angka pecahan
|
e
|
float
|
Angka pecahan dalam notasi saintifik
|
g
|
float
|
Angka pecahan pengganti %f atu %e tergantung yang
terpendek
|
p
|
Alamat memori untuk printer
|
|
%
|
Menampilkan pesan
|
Simbol % dinamakan momen, sering juga disebut penentu
format. Memon digunakan untuk mengeluarkan nilai dari suatu dengan tipe data
tertentu. Antara tanda % dan format dapat diberi (-) tanda minus atau
angka-angka integer. Tanda minus dapat menjadikankarakter rata-kiri. Tanda
minus dapat menjadikan karakter rata – kiri, sedangkan angka integer
menunjukkan lebar field. Tanda m.n dengan m=lebar field dan n = digit presisi
setelah titik koma. Misalnya:
- % ns artinya menampilkan hasil bertipe string rata kanan selebar n
- %-ns artinya menampilkan hasil bertipe string rata kiri selebar n
- %n.ms artinya menampilkan hasil bertipe string rata kanan, m buah karakter pertama saja dengan lebar n posisi
3.1. FUNGSI printf
Fungsi printf() merupakan
fungsi yang digunakan untuk menampilkan berbagai jenis data yang dapat diformat
karena fungsi ini dapat menggunakan kode-kode format, yaitu karakter-karakter
konversi. Bentuk umum fungsi ini adalah :
printf(“string kontrol”,
argumen1, argumen2,.....);
string kontrol dapat berupa keterangan beserta penentu format (
seperti %d, %f dan lain-lain). Argumen adalah data yang akan ditampilkan dapat
berupa variabel, konstanta, maupun ungkapan. Contoh program untuk menampilkan
karakter terformat adalah sebagaai berikut:
/*----------------------------------*/
/* Format karakter */
/*----------------------------------*/
#include
<stdio.h>
main()
{
int tahun = 2002;
float pi = 3.14159;
printf(“ Tahun %d \n”, tahun);
printf(“Tahun %5d\n”,tahun);
printf(“Nilai pi %.3f\n”,pi);
printf(“Nilai pi %f\n”,pi);
printf(“ Komisi 15 %%\n”);
printf(“ Nilai 15 \%\n”);
}
Tampilan program:
Tahun
2002
Tahun
2002
Nilai pi
3.142
Nilai pi
3.141590
Komisi
15%
Nilai 15%
Contoh lain dari karakter terformat adalah :
/* ---------------------------- */
/* Karakter Terformat */
/*----------------------------*/
#include <stdio.h> main o
main()
{
/*
---------------------------- */
/*
Karakter Terformat */
/*----------------------------*/
#include
<stdio.h> main o
main()
{
printf("
Berikut contoh karakter terformat\n");
printf("
-----------------------------------\n");
printf("
| %-7s | % -30s | %3s |\n","Kode", "Mata Kuliah",
"SKS");
printf("
| %-7s | % -30s | %3d |\n", "MKP3203", "Pemrograman
C", 2);
printf("
| %-7s | % -30s | %3d |\n", "DKM2408", "Logika dan
Algoritma", 4);
printf("
| %-7s | % -30s | %3d |\n", "KKM3045", "Pemrograman Client
Server", 4);
printf("
| %-7s | % -30s | %3d |\n", "KKM5417", "Sistem
Operasi", 4);
}
Tampilan program:
contoh karakter terformat
-----------------------------------------
| Kode | Mata
Kuliah |
SKS
| MKP 3203 | Pemrograman C | 2
| DKM 2408 | Logika dan Algoritma | 4
| KKM 3045 | Pemrogramman Client Server4 | 4
| KKM 5417 | Sistem Operasi |
4
3.2 Fungsi scanf
Fungsi scanf() merupakan
fungsi yang digunakan untuk memasukkan jenis data. Fungsi ini mirip dengan
printf. Pada contoh-contoh program di atas
sudah ditentukan dari dalam program, sedangkan program-program di bawah akan
membaca masukan dari keyboard, artinya ditentukan oleh pemakai masukan dari
keyboard. Contoh penggunaan fungsi scanf dapat dilihat pada program berikut:
/* -------------------------------------------*/
/* Menghitung Luas persegi Panjang */
/* ------------------------------------------*/
#include <stdio.h>
main()
{
float a,b,hasil;
printf(“Masukkan nilai
panjang = “);
scanf(“%f”,&a);
printf("Masukkan nilai
lebar =”);
scanf("%f",&b);
hasil=a*b;
printf("Luas
= %.2f\n",hasil);
}
Tampilan program:
Masukkan nilai panjang = 9.7
Masukkan nilai lebar = 6.5
Luas = 63.05
Program berikut adalah untuk
menghitung rata-rata dari dua buah data
#include <stdio.h>
main()
{
float a,b,hasil;
printf("Masukan dua buah nilai "\
"dipisahkan dengan koma “);
scanf("%f,%f", &a,&b);
hasil=(a+b)/2;
printf("Rata-rata =%f\n",hasil);
}
Tampilan program:
Masukan dua buah
nilai dipisahkan dengan koma 7,9
Rata-rata
=8.000000
Contoh-Contoh soal
1. Buatlah
program untuk menghitung luas dan keliling lingkaran dengan besarnya jari-jari
lingkaran dimasukkan melalui keyboard.
Jawab
:
/*
-------------------------------------*/
/*
Menghitung Luas dan keliling Lingkaran*/
/*
-------------------------------------*/
# include
<stdio.h>
main()
{
float
phi=3.14,jari,luas,keliling;
printf("Masukan jari-jari lingkaran = “);
scanf(“%f”,
&jari);
luas=phi*jari*jari;
keliling=2*phi*jari;
printf("Lingkaran
berjari-jari %.2f mempunyai luas %.2f dan keliling %.2f\n",jari,luas,keliling);
}
Tampilan program:
Masukan
jari-jari lingkaran = 100
Lingkaran berjari-jari 100.00 mempunyai luas 31400.00 dan
Keliling 628.00
Pada
program di atas perhitungan jari-jari kuadrat ditulis jari*jari. Bayangkan jika
ada kasus yang membutuhkan perhitungan perpangkatan yang bilangan pemangkatnya
bernilai lebih dari satu. Penulisan perintahnya menjadi panjang. Misalnya 5
pangkat 10 akan ditulis 5*5*5*5*5*5*5*.
Ini tidak efisien. Alternatif lain untuk menghitung perpangkatan adalah
menggunakan pow(argumenl,argumen2) yang terdapat dalam library math. Karena
itu, untuk perhitungan tersebut dibutuhkan praprosessor
#include<math.h>. argumenl adalah bilangan yang
akan dipangkatkan, sedangkan argumen2 adalah bilangan yang akan digunakan
sebagai pemangkat. Program di atas dapat ditulis sebagai berikut:
/* ---------------------------------------------- */
/* Menghitung Luas
& Keliling Lingkaran */
/* ---------------------------------------------- */
#include
<stdio.h>
#include <math.h> main o
main()
{
float phi=3.14,jari,luas,keliling;
printf("Masukan jari-jari lingkaran = “);
scanf (
"%f", &jari) ;
luas=phi *pow ( jari , 2 ) ;
keliling=2*phi*jari;
printf ( "Lingkaran berjari-jari %.2f
mempunyai luas %.2f dan keliling
%.2f\n",jari,luas,keliling);
}
Karena program di
atas menggunakan header yang tidak standar,yaitu math, maka ketika mengkompile
agak berbeda diperlukan proses me-link ke
library math. Misalkan script di atas disimpan sebagai lingkaran.c, maka
pengkompilelannya seperti berikut:
gcc -o lingkaran lingkaran.c –lm
2. Buatlah program untuk menghitung sisi miring segitiga
siku-siku dengan
|
|||||||||||||||||||||||||