bahan dpk-io-array-fungsi

14
Adharul Muttaqin [email protected] 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 %d\n", 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: %d\t", a);

Upload: jevri-ardiansah

Post on 04-Jul-2015

141 views

Category:

Education


0 download

DESCRIPTION

Dasar pemrograman komputer

TRANSCRIPT

Page 1: Bahan dpk-io-array-fungsi

Adharul Muttaqin [email protected] 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 %d\n", 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: %d\t", a);

Page 2: Bahan dpk-io-array-fungsi

Adharul Muttaqin [email protected] Catatan Kuliah Dasar Komputer

printf("and here is a double: %f\n", 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: %d\t", a);

printf("and here is a double: %.2f\n", 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("%3d\t%8.2f\n", a, x);

a=10;

x=-40.009;

printf("%3d\t%8.2f\n", a, x);

a=100;

x=-4001;

printf("%3d\t%8.2f\n", a, x);

-----------------------------

1 -0.00

10 -40.01

100 -4001.00

Page 3: Bahan dpk-io-array-fungsi

Adharul Muttaqin [email protected] 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 %d\n", "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("%.1f\t%8.1e\t%.10E\n", x, x, x);

----------------------------------------

365.3 3.7e+02 3.6525600000E+02

double y=1.25e-5;

printf("%12.4f %8.4g\n%12.4f %8.4g\n", y, y, y*1000, y*1000);

printf("%12.4f %8.4g\n", y*1e8, y*1e8);

printf("%12.4f %8.4g\n", 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.

Page 4: Bahan dpk-io-array-fungsi

Adharul Muttaqin [email protected] 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: %d\n\n", i);

printf("type in a float: ");

scanf( "%f", &f);

printf("value entered: %f\n\n", f);

printf("type in a double: ");

scanf("%lf", &d);

printf("value entered: %f\n\n", d);

printf("type in a string (up to 20 characters long): ");

scanf("%s", strng); /***Strings do NOT require the & operator***/

printf("string entered: %s\n\n", strng);

Page 5: Bahan dpk-io-array-fungsi

Adharul Muttaqin [email protected] Catatan Kuliah Dasar Komputer

exit(0);

}

Page 6: Bahan dpk-io-array-fungsi

Adharul Muttaqin [email protected] 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];

Page 7: Bahan dpk-io-array-fungsi

Adharul Muttaqin [email protected] 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 \t\t nilai \n");

for (idx=0; idx<5; idx++){

printf("%d \t %c \t\t %.2f \n",idx, kode[idx], nilai[idx]);

}

system("pause");

}

Page 8: Bahan dpk-io-array-fungsi

Adharul Muttaqin [email protected] 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];

Page 9: Bahan dpk-io-array-fungsi

Adharul Muttaqin [email protected] 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");

}

Page 10: Bahan dpk-io-array-fungsi

Adharul Muttaqin [email protected] 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).

Page 11: Bahan dpk-io-array-fungsi

Adharul Muttaqin [email protected] 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.

Page 12: Bahan dpk-io-array-fungsi

Adharul Muttaqin [email protected] 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 != %d\n", 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);

Page 13: Bahan dpk-io-array-fungsi

Adharul Muttaqin [email protected] Catatan Kuliah Dasar Komputer

return(fak);

}

}

Page 14: Bahan dpk-io-array-fungsi

Adharul Muttaqin [email protected] 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).