Dokumen tersebut memberikan penjelasan tentang penggunaan fungsi printf() dan scanf() dalam bahasa C untuk melakukan input dan output. Fungsi printf() digunakan untuk menampilkan teks dan variabel ke layar, sedangkan scanf() digunakan untuk menerima input dari pengguna. Kedua fungsi ini memerlukan format string untuk menentukan jenis dan format data yang akan dicetak atau diterima.
1 of 14
Download to read offline
More Related Content
Bahan dpk-io-array-fungsi
1. Adharul Muttaqin adharul@ub.ac.id
Catatan Kuliah Dasar Komputer
PENGGUNAAN PRINTF()
Interaksi program dengan user biasanya melalui input dan output (Phisical - C Handbook 2011). Printf() digunakan untuk menampilkan karakter di layar monitor.
printf("Hello world");
Kode di atas adalah untuk menampilkan tulisa Hello world di layar monitor.
Tetapi printf() tidak sekedar menampilkan teks. Perhatikan contoh berikut:
printf("Totalnya adalah %dn", sum);
Ketika program dijalankan kita akan mendapatkan bahwa %d digantikan dengan isi dari variable sum.
printf() selalu memerlukan suatu format string sebagai argument (atau parameter input) pertama dan diikuti oleh satu atau lebih argument berikutnya yang berupa variable, konstanta, atau expression (persamaan) yang akan kita format dan cetak di layar.
Format string dapat terdiri dari tiga jenis text:
1. Karakter biasa yang dicetak seperti apa adanya
2. escape sequences untuk karakter khusus seperti `n' untuk ganti baris;
3. conversion specifications, yaitu teks yang dimulai dengan `%' dan diakhiri dengan conversion character seperti `d'.
Ada banyak escape sequences yang didefinisikan di C , sebagian contohnya adalah:
Escape Sequence
Character represented
n
newline
t
tab
backslash itself
'
quote
"
double quote
Contoh,
printf("t"My name is '%s'"n", "Slim Shady");
hasilnya:
"My name is 'Slim Shady'"
Teks konversi seperti ``%d'' akan menyuruh printf() untuk menyisipkan nilai integer dari argument berikutnya. ``%d'' berarti nilai yang ditampilkan ditulis dalam bentuk bilangan desimal. Contoh:
int a=4;
double x=2.5;
printf("Here is an integer: %dt", a);
2. Adharul Muttaqin adharul@ub.ac.id
Catatan Kuliah Dasar Komputer
printf("and here is a double: %fn", x);
Lihat bahwa kita gunakan %f untuk type double atau float. Kode konversi harus disesuaikan dengan tipe variable yang digunakan dan format yang diinginkan. Hati-hati menggunaan kode konversi ini.
Output kode di atas adalah
Here is an integer: 4 and here is a double: 2.500000
Seperti yang kita lihat, kita mendapatkan tab setelah karakter 4, tapi kiga mendapatkan nilai x yang dicetak sepanjang 6 digit di belakang koma. Hal ini diakibatkan bahwa %f selalu menuliskan bilangan float atau double dengan sepanjang 6 digit di belakang koma.
Jika kita tidak ingin menampilkan 6 digit di belakang koma, misalnya kita ingin menampilkan hanya dua digit di belakang koma, kita dapat tuliskan format teksnya menggunakan %.2f .
Contoh:
printf("Here is an integer: %dt", a);
printf("and here is a double: %.2fn", x);
-----------------------------------------------------------------
Here is an integer: 4 and here is a double: 2.50
Selain menetapkan panjang digit setelah koma (nilai presisi) dapat pula ditetapkan sebuah field-width; yaitu panjang karakter minimum yang akan ditampilkan oleh satu kode konversi. Jika karakter yang ditampilkan lebih pendek, biasanya akan ditambahkan spasi secara otomatis. Contoh:
int a=1;
double x=-0.004;
printf("%3dt%8.2fn", a, x);
a=10;
x=-40.009;
printf("%3dt%8.2fn", a, x);
a=100;
x=-4001;
printf("%3dt%8.2fn", a, x);
-----------------------------
1 -0.00
10 -40.01
100 -4001.00
3. Adharul Muttaqin adharul@ub.ac.id
Catatan Kuliah Dasar Komputer
Di bawah ini beberapa kode konversi yang umum digunakan:
Conversion code
Argument type
Formatted as
%d
int
Angka Biasa (eg. 365)
%i
int
sama dengan %d
%c
int
Character
%f
double
Bilangan real, termasuk angka desimal. Secara default presisinya adalah 6 digit di belakang koma
%e,%E
double
Alternatif untuk %f yang diformat dengan menggunakannotasi eksponensial. Contoh 3.652560e+02, atau 3.652560E+02
%g,%G
double
Kombinasi %f dan %e
%s
string
String
%%
Karakter %
Tidak ada type String sederhana di C; Sampai saat ini yang penting kita tahu, cara unutk menampilkan string adalah dengan %s pada printf().
Contoh lagi:
char c='A';
printf("%s %c is %dn", "The ASCII code for", c, c);
----------------------------------------------
The ASCII code for A is 65
Angka 65 muncul karena isi variable c ditampilkan sebagai bilangan desimal kode ascii dari A.
double x=365.256;
printf("%.1ft%8.1et%.10En", x, x, x);
----------------------------------------
365.3 3.7e+02 3.6525600000E+02
double y=1.25e-5;
printf("%12.4f %8.4gn%12.4f %8.4gn", y, y, y*1000, y*1000);
printf("%12.4f %8.4gn", y*1e8, y*1e8);
printf("%12.4f %8.4gn", y*1e12, y*1e12);
---------------------------------------------------------------
0.0000 1.25e-05
0.0125 0.0125
1250.0000 1250
12500000.0000 1.25e+07
Hati-hati dalam menggunakan format specifier, mungkin program kita tidak error tapi akan mengeluarkan karakter aneh.
4. Adharul Muttaqin adharul@ub.ac.id
Catatan Kuliah Dasar Komputer
PENGGUNAAN SCANF()
scanf() digunakan untuk menerima data input. Cara kerja lebih mirip kebalikan dari printf(). Seperti juga printf(), scanf() juga memerlukan format string sebagai argument atau parameter pertamannya, kemudian diikuti beberapa parameter yang merupakan variabel-variabel yang akan diisi dengan suatu nilai.
Format string untuk scanf() secara umum sama dengan yang ada pada printf(). Dua perbedaannya adalah:
1. Spasi pada format string harus sesuai dengan jumlah spasi dan tab pada input
2. Conversion specier untuk float dan double tidak sama: floats tetap menggunakan %f, tetapi double harus menggunakan %lf {Catatan: l adalah huruf el bukan angka 1; lf=long float :) }
Disamping menuliskan nama variabel yang akan menampung nilai input, kita harus memberikan awalan & untuk mengarahkan ke lokasi memori yang digunakan variabel.
Contoh scanf yang menggabungkan double dan int:
Values input are:
4 0.00451
-------------------
/* Code fragment to use to input data of the above format */
int x;
double y;
scanf("%d %lf", &x, &y);
Pengecualian adalah untuk string (misalnya array of char) yang tidak memerlukan & untuk menerima input.
#include <stdio.h>
#include <stdlib.h>
int
main()
{
int i;
float f;
double d;
char strng[21];
printf("type in an int: ");
scanf("%d", &i);
printf("value entered: %dnn", i);
printf("type in a float: ");
scanf( "%f", &f);
printf("value entered: %fnn", f);
printf("type in a double: ");
scanf("%lf", &d);
printf("value entered: %fnn", d);
printf("type in a string (up to 20 characters long): ");
scanf("%s", strng); /***Strings do NOT require the & operator***/
printf("string entered: %snn", strng);
6. Adharul Muttaqin adharul@ub.ac.id
Catatan Kuliah Dasar Komputer
ARRAY
DEFINISI
Array adalah sebuah tipe variable yang dapat menampung sekumpulan data yang bertipe sama. Data tersebut disimpan secara berurutan dan masing-masing data mempunyai nilai index yang identik sebagai nomor urut data. Untuk array sepanjang N elemen, urutan data yang pertama mempunyai index 0, urutan data terkahir mempunyai index N-1.
DEKLARASI
Variabel bertipe array dideklarasikan dengan cara yang sama seperti variabel biasa, dimulai type data diikuti dengan nama variable, tetapi khusus untuk array setelah nama variable harus diikuti dengan tanda kurung kotak (square bracket) yang berisi angka yang menetapkan berapa panjang array. Angka ini harus selalu integer dalam bentuk konstanta atau pun variabel. Perhatikan contoh berikut:
char cc[10],c; /* mendeklarasikan variable cc dengan type array of 10
* char dan sebuah variable c dengan type char biasa
*/
int xx[4];
int i, j=3, readings[200];
double y[25], sum, voltage[j]; //nilai j=3, lihat baris sebelumnya.
ARRAY ELEMENTS
Begitu kita deklarasikan array, kita dapat menggunakannya setiap data sebagai sebuah elemen seperti penggunaan variable biasa. Element atau item suatu array dapat dipanggil dengan menggunakan nama variabel diiikuti dengan nilai index di dalam kurung kotak. Contoh:
harga[2] = 6.5;
i = i * harga[2];
printf(Masukkan harga item ke 1/n);
scanf(%f,&harga[0]);
Seringkali array diproses secara identik dan masal yang biasanya diterapkan dalam loop. Contoh:
sum=0.0;
for (i=0; i<4; i++)
sum += xx[i]*yy[i];
INISIALISASI
Berikut ini contoh melakukan inisialisasi nilai pada sebuah array pada C:
int a[5] = { 5, 10, 15, 20, 25 };
/* contoh di atas akan sama dengan */
int a[5];
7. Adharul Muttaqin adharul@ub.ac.id
Catatan Kuliah Dasar Komputer
a[0]=5; a[1]=10; a[2]=15; a[3]=20; a[4]=25;
Jika menggunakan inisialisasi seperti di atas, sebenarnya kita tidak perlu menetapkan panjang array. Compiler akan menghiung sendiri panjang array berdasarkan nilai inisialiasai. Perhatikan contoh berikut, didalam kurang kotak [] tidak ada angkanya: (Deitel and Deitel 2008)
int a[] = {5, 10, 15, 20, 25, 30, 35 }; /* Secara otomatis compiler akan
tahu dan membuat deklarasi int a[7] */
Contoh: #include <stdio.h>
int main(){ //Contoh deklarasi array tunggal float nilai[5]; //Contoh deklarasi dan inisialisasi char kode[5]={'a','b','c','d','e'}; char t; int idx;
//mengambil isi item dengan index tertentu dari suatu aray idx=kode[3]; printf("Variable nama index 3 bernilai %c n",kode[3]);
//mengisi nilai satu elemen atau item pada suatu array kode[3]='r'; printf("Variable nama index 3 bernilai %c n",kode[3]);
//mengisi nilai item array menggunakan looping for (idx=0; idx<5; idx++){ nilai[idx]=2*idx+3; }
for (idx=0; idx<5; idx++){ printf("nKarakter sebagai input ke %d ",idx); scanf(" %c",&kode[idx]); /*perhatikan bahwa tulisan " %c" harus ada spasin sebelum % *apa pengaruhnya kalau tidak diberi spasi? * (Bukan kasus array, tapi kasus char) */ }
//menampilkan atau mengambil isi dari suatu array pada looping printf("Nomor t kode tt nilai n"); for (idx=0; idx<5; idx++){ printf("%d t %c tt %.2f n",idx, kode[idx], nilai[idx]); }
system("pause"); }
8. Adharul Muttaqin adharul@ub.ac.id
Catatan Kuliah Dasar Komputer
ARRAY 2 DIMENSI
Struktur:
<tipedata> <arrayID>[<brs>][<klm>];
<tipedata> <arrayID>[<brs>][<klm>] =
{{<E11>, <E12>, ..., <E1klm>},
{<E21>, <E22>, ..., <E2klm>},
...
{<Ebrs1>, <Ebrs2>, ..., <Ebrsklm>}};
Contoh:
DEKLARASI DAN INISIALISASI:
int A[3][3]={{1,2,3},{4,5,6},{7,8,9}};
int B[2][3] = {{1,2,3}, {4,5,6}};
PENGGUNAAN
int nilai;
nilai=A[0][1];
9. Adharul Muttaqin adharul@ub.ac.id
Catatan Kuliah Dasar Komputer
Contoh: /* Contoh ARRAY Multidimensi */
#include <stdio.h>
int main(){ int matrik_A[3][3]; int matrik_B[3][3]={{1,3,7}, {5,4,2}, {0,8,3}} ; int matrik_C[2][3]={{1,3,7}, {0,8,3}} ;
int i,j;
printf("isi matrik B elemen [2,1] adalah %d n " , matrik_B[1][0]);
matrik_A[0][0]=matrik_B[0][0]; //Menampilkan matrik B hanya untuk baris ke-1 for(i=0;i<3;i++){ printf("matrik_B[1][%d] %d n", i,matrik_B[1][i]); }
//matrik_A diisi seperti matrik_B for(i=0;i<3;i++){ for(j=0;j<3;j++){ matrik_A[i][j]=matrik_B[i][j]; } }
for(i=0;i<3;i++){ for(j=0;j<3;j++){ printf("matrik_A[%d][%d] %d n", i,j,matrik_A[i][j]); } }
for(i=0;i<3;i++){ for(j=0;j<2;j++){ printf("matrik_C[%d][%d] %d n", i,j,matrik_C[i][j]); } }
system("pause"); }
10. Adharul Muttaqin adharul@ub.ac.id
Catatan Kuliah Dasar Komputer
FUNCTION/ FUNGSI
PENGERTIAN
Fungsi adalah suatu bagian program yang dimaksudkan untuk mengerjakan suatu tugas tertentu dan letaknya dipisahkan dari bagian program yang menggunakannya.
Ada dua jenis fungsi di dalam bahasa C
1. Fungsi yang mempunyai nilai kembalian
Seperti kita ketika menulis fungsi matematika y=f(x), kita mempunyai sebuah fungsi dengan nama x yang memproses x untuk menghasilkan suatu nilai yang isinya akan disimpan oleh y. Ketika dipanggil fungsi jenis ini akan memberikan suatu hasil kembalian.
2. Fungsi yang tidak mempunya nilai kembalian.
Sering disebut sebagai prosedur. Berisi urutan proses yang tidak memberikan suatu ouput yang dapat ditangkap oleh suatu variable.
Struktur umum:
Tipe_kembalian nama_fungsi ( argumen1, argumen2, ... )
{
statement statement;
return value;
}
Suatu fungsi yang memberikan hasil balik (return value) selain integer perlu dideklarasikan sebelum digunakan. Deklarasi fungsi ditulis sebelum fungsi tersebut digunakan. Akan tetapi sebaiknya setiap fungsi dideklarasikan terlebih dahulu.
Deklarasi Fungsi:
tipe nama_fungsi( argumen1, argumen2, ... ); // (Tanpa ada badan fungsi atau statement)
Jika suatu fungsi memberikan kembalian suatu nilai, maka nilai hasil balik yang diberikan oleh fungsi dapat dilakukan oleh statement return yang diikuti oleh nilai hasil baliknya yang ditulis tanda kurung. Contoh : return(F);
SIFAT - SIFAT DAN MANFAAT FUNGSI
1. Menghindari penulisan program yang berulang
2. Fungsi akan membagi program menjadi modul - modul yang lebih kecil (modular design) , sehingga jika terjadi kesalahan dalam program akan lebih mudah dilacak.
3. Setiap fungsi memiliki tingkatan yang sama dan berdiri sendiri. Dengan demikian fungsi - fungsi ini dapat dipanggil dari sembarang fungsi yang lain dengan mudah. Dalam C tidak diperkenankan sebuah fungsi ada dalam fungsi yang lain (nested function)
4. Fungsi dalam C dapat menghasilkan nilai, data ataupun hasil atau kegiatan lain yang bukan berupa data maupun nilai. C tidak membedakan fungsi yang menghasilkan nilai ( fungsi) dan fungsi yg menghasilkan data (prosedur).
11. Adharul Muttaqin adharul@ub.ac.id
Catatan Kuliah Dasar Komputer
RUANG LINGKUP VARIABEL
Jenis-jenis variable berdasarkan ruang lingkup pengaksesannya adalah sebagai berikut:
1. Variabel local
variabel yang namanya dan nilainya hanya dikenal di suatu blok statement tertentu saja atau didalam suatu fungsi. Variabel ini tidak dapat diakses dari luar fungsi atau blok statement.
2. Variabel global
variabel yang dikenal di semua bagian dari program dan dapat diakses dari semua fungsi.
3. Variabel statik
variabel yang tidak berubah nilai akhirnya bila suatu proses telah keluar dari suatu blok ( fungsi ) yang mendeklarasikannya dan kemudian masuk kembali ke blok ( fungsi ) tersebut.
Contoh: #include <stdio.h>
int a; //deklarasi variable global a float c; //deklarasi variable global c
float absolut(float angka);//deklarasi prototype fungsi
int main(){ char b; //variable lokal, hanya dikenali di function main() }
void suatuFungsi(float angka){ float hasil;//variable lokal, hanya dikenali di function suatuFungsi() char b;//variable lokal, hanya dikenali di function suatuFungsi() return hasil ; }
PENGIRIMAN PARAMETER
Ada dua cara pengiriman parameter ke sebuah fugnsi
1. Pengiriman parameter secara nilai (by value):.
- Yang dikirim adalah nilai dari datanya, bukan alamat memori letak datanya.
- Perubahan nilai di fungsi tidak akan merubah nilai asli di bagian program yang memanggil fungsi walaupun keduanya menggunakan nama variabel yang sama.
- Merupakan pengiriman searah, yaitu dari bagian program yang memanggil fungsi ke fungsi yang dipanggil.
2. Pengiriman parameter secara acuan (by refference).
- Yang dikirim adalah alamat memori letak datanya, bukan nilai dari datanya.
- Perubahan nilai di fungsi akan merubah nilai asli di bagian program yang memanggil fungsi.
12. Adharul Muttaqin adharul@ub.ac.id
Catatan Kuliah Dasar Komputer
- Merupakan pengiriman dua arah, yaitu dari bagian program yang memanggil fungsi ke fungsi yang dipanggil dan sebaliknya.
Contoh program : #include <stdio.h >
double absolut (double X ); /* prototype fungsi Absolut */
main() //main function. Sudah tahu kan apa ini? { double nilai, hasil; nilai = -123.45; hasil=absolut(nilai); //nilai kembalian dari fungsi absolut() diisikan ke hasil printf("Nilai Mutlaknya adalah %.2lf n",hasil); //dapat pula langsung digunakan di printf printf("Nilai Mutlaknya adalah %.2lf n",absolut(nilai)); system("pause"); }
/* --- Fungsi untuk membuat nilai mutlak --- */ double absolut ( double X ) /* definisi fungsi */ { if ( X < 0 ) X = -X; return ( X ); }
REKURSIF
Rekursif adalah suatu proses dari fungsi yang memanggil dirinya sendiri secara berulang ulang.
Contoh program : #include <stdio.h > long int faktorial ( int n ); /* prototype fungsi */
main() { int n ; n = 5; printf(" %d != %dn", n, faktorial(n)); system("pause"); }
long int faktorial ( int n ) /* definisi fungsi */ { long int fak; if ( n <= 1 ) return( 1 ) ; else { fak = n * faktorial( n - 1);
14. Adharul Muttaqin adharul@ub.ac.id
Catatan Kuliah Dasar Komputer
BIBLIOGRAPHY
Deitel, Paul, and Harvey Deitel. "C How To Program Sixth Edition." In C How To Program Sixth Edition, by Paul Deitel, & Harvey Deitel. Deitel, 2008.
Phisical - C Handbook. 2011. http://www-teaching.physics.ox.ac.uk/computing/handbook_c/handbook_C.html (accessed December 4, 2011).