modul v pemrograman bahasa c ( bagian ii ) · pdf filepemrograman bahasa c ... mengenal dan...

14
Modul V Pemrograman Bahasa C ( bagian II ) 5.1 Tujuan Percobaan 1. Mengenal dan memahami fungsi (function) dan kegunaanya serta aplikasinya dalam program sederhana. 2. Mengenal dan memahami fungsi array-larik dan kegunaanya serta aplikasi dalam program sederhana. 3. Mengenal dan memahami struktur (struct) dan kegunaanya serta aplikasi dalam program sederhana. 4. Mengenal dan memahami operasi file dan aplikasinya dalam program sederhana. 5.2 Materi Percobaan I. Fungsi Fungsi adalah bagian dari program yang dimaksudkan untuk mengerjakan suatu tugas tertentu dan letaknya dipisahkan dari bagian program yang menggunakannya. Fungsi- fungsi merupakan elemen utama dari program bahasa C. program dari bahasa C dibentuk dari kumpulan fungsi, mulai dari fungsi utama dengan nama main(), fungsi-fungsi pustaka standar, dan fungsi-fungsi yang dibuat sendiri oleh pemrogram. Fungsi dibuat dengan tujuan tertentu, diantaranya adalah: 1. Program menjadi lebih terstruktur, sehingga mudah untuk dipahami, mencari kesalahan kode dan dikembangkan lebih lanjut. 2. Untuk mengurangi penulisan kebali kode yang telah dibuat. Bentuk umum sebuah fungsi adalah sebagai berikut: tipe_fungsi nama_fungsi(argumen1, argumen2,..){ . . } Tubuh / isi fungsi

Upload: doandieu

Post on 06-Feb-2018

237 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Modul V Pemrograman Bahasa C ( bagian II ) · PDF filePemrograman Bahasa C ... Mengenal dan memahami fungsi array-larik dan kegunaanya serta aplikasi dalam ... Array string Pada dasarnya

Modul V

Pemrograman Bahasa C ( bagian II )

5.1 Tujuan Percobaan

1. Mengenal dan memahami fungsi (function) dan kegunaanya serta aplikasinya dalam

program sederhana.

2. Mengenal dan memahami fungsi array-larik dan kegunaanya serta aplikasi dalam

program sederhana.

3. Mengenal dan memahami struktur (struct) dan kegunaanya serta aplikasi dalam

program sederhana.

4. Mengenal dan memahami operasi file dan aplikasinya dalam program sederhana.

5.2 Materi Percobaan

I. Fungsi

Fungsi adalah bagian dari program yang dimaksudkan untuk mengerjakan suatu tugas

tertentu dan letaknya dipisahkan dari bagian program yang menggunakannya. Fungsi-

fungsi merupakan elemen utama dari program bahasa C. program dari bahasa C dibentuk

dari kumpulan fungsi, mulai dari fungsi utama dengan nama main(), fungsi-fungsi

pustaka standar, dan fungsi-fungsi yang dibuat sendiri oleh pemrogram. Fungsi dibuat

dengan tujuan tertentu, diantaranya adalah:

1. Program menjadi lebih terstruktur, sehingga mudah untuk dipahami, mencari

kesalahan kode dan dikembangkan lebih lanjut.

2. Untuk mengurangi penulisan kebali kode yang telah dibuat.

Bentuk umum sebuah fungsi adalah sebagai berikut:

tipe_fungsi nama_fungsi(argumen1, argumen2,..){

.

.

}

Tubuh / isi fungsi

Page 2: Modul V Pemrograman Bahasa C ( bagian II ) · PDF filePemrograman Bahasa C ... Mengenal dan memahami fungsi array-larik dan kegunaanya serta aplikasi dalam ... Array string Pada dasarnya

Berikut adalah contoh penggunaan fungsi:

#include <stdio.h>

void cetakTulisan(void){

printf("Fungsi ini hanya akan menampilkan tulisan ini.\n");

printf("Selamat Mencoba!!");

}

int main(){

printf("Ini adalah demo fungsi:\n");

cetakTulisan();

}

Bagian yang bercetak tebal merupakan sebuah fungsi yang bernama cetakTulisan dengan

tipe void dan argumennya adalah void (tanpa parameter). Fungsi ini akan menampilkan

tulisan yang ada pada perintah printf tersebut. Fungsi ini dipanggil di fungsi utama

(main) dengan sintaks: cetakTulisan();. Sehingga jika ingin menampilkan tulisan serupa,

kita tidak harus menulis perintah printf dan menuliskan tulisannya, tetapi hanya tinggal

memanggil fungsi cetakTulisan();.

1. Fungsi tanpa parameter

Fungsi tanpa parameter tidak memiliki parameter (bisa dikatakan juga sebagai data

input), dan pada argumennya biasa dituliskan void. Contohnya adalah sebagai berikut:

#include <stdio.h>

int panjang,lebar,Luas;

void cetakLuas(void){

Luas = panjang*lebar;

printf("Luasnya adalah %d",Luas);

}

int main(){

panjang=10;

lebar=5;

cetakLuas();

}

Pada kode di atas terlihat bahwa fungsi cetakLuas tidak memiliki parameter karena

argumennya adalah void.

Page 3: Modul V Pemrograman Bahasa C ( bagian II ) · PDF filePemrograman Bahasa C ... Mengenal dan memahami fungsi array-larik dan kegunaanya serta aplikasi dalam ... Array string Pada dasarnya

2. Fungsi dengan parameter

Fungsi dengan parameter memiliki argument yang bukan void. Akan tetapi argumennya

adalah suatu variable dengan berbagai macam tipe data. Berikut adalah contoh

kodenya:

#include <stdio.h>

void cetakLuas(int panjang, int lebar){

int Luas;

Luas = panjang*lebar;

printf("Luasnya adalah %d",Luas);

}

int main(){

int p=10, l=5;

cetakLuas(p, l);

}

Terlihat bahwa fungsi cetakLuas memiliki bentuk yang berbeda dengan contoh

sebelumnya. Dalam contoh ini fungsi cetakLuas memiliki parameter berupa variable

panjang dan lebar yang bertipe integer. Sehingga saat fungsi tersebut dipanggil di

dalam fungsi main(), maka harus dimasukkan nilai parameter-parameter tersebut

(dalam hal ini adalah p dan l).

3. Fungsi dengan return value

Pada contoh-contoh sebelumnya, fungsi yang dibuat tidak memiliki nilai kembalian /

return value (bisa dikatakan sebagai output fungsi). Hal ini dikarenakan fungsi tersebut

bertipe void. Fungsi dapat memiliki tipe selain void seperti: int, float, char, double, dan

lain-lain tergantung tipe data yang akan dikembalikan/return. Contoh programnya

adalah seperti di bawah:

#include <stdio.h>

int cetakLuas(int panjang, int lebar){

int Luas;

Luas = panjang*lebar;

return Luas;

}

Page 4: Modul V Pemrograman Bahasa C ( bagian II ) · PDF filePemrograman Bahasa C ... Mengenal dan memahami fungsi array-larik dan kegunaanya serta aplikasi dalam ... Array string Pada dasarnya

int main(){

int p=10, l=5, L;

L = cetakLuas(p,l);

printf("Luasnya adalah %d",L);

}

Pada program di atas, tampak bahwa tipe dari fungsi cetakLuas adalah int. Tipe data

tersebut dipilih karena data yang dikembalikan juga bertipe int, yaitu Luas. Karena

fungsi ini memiliki nilai kembalian (output), maka output tersebut disimpan di variable

L saat dipanggil di fungsi main(). Dan hasilnya ditampilkan dengan menuliskan

perintah printf di dalam fungsi main().

4. Prototype fungsi

Secara default sebuah fungsi di dalam bahasa C dideklarasikan/ditulis sebelum fungsi

main. Namun bahasa C memungkinkan pembentukan fungsi setelah fungsi main. Hal

ini dilakukan dengan syarat bahwa fungsi tersebut sudah dideklarasikan sebelum fungsi

main ditulis hal inilah yang disebut dengan prototipe fungsi. Penulisan prototipe fungsi

adalah sebagai berikut.

#include <stdio.h>

int cetakLuas(int panjang, int lebar);

int main(){

int p=10, l=5, L;

L = cetakLuas(p,l);

printf("Luasnya adalah %d",L);

}

int cetakLuas(int panjang, int lebar){

int Luas;

Luas = panjang*lebar;

return Luas;

}

Pada contoh di atas, fungsi cetakLuas dideklarasikan terlebih dahulu tanpa tubuh

fungsi. Deklarasi fungsi tersebut ditulis sebelum fungsi main(). Baru setelah fungsi

main(), ditulis tubuh dari fungsi cetakLuas. Ini merupakan cara kedua untuk membuat

suatu fungsi.

Page 5: Modul V Pemrograman Bahasa C ( bagian II ) · PDF filePemrograman Bahasa C ... Mengenal dan memahami fungsi array-larik dan kegunaanya serta aplikasi dalam ... Array string Pada dasarnya

II. Array (Larik)

Array merupakan koleksi data dengan setiap elemen data menggunakan nama yang

samadan masing-masing elemen data bertipe sama. Setiap komponen/elemen array dapat

diakses dan dibedakan melalui indeks array. Deklarasi array didahului oleh jenis tipe

data dari array yang dikehendaki kemudian nama variabelnya. Sedangkan jumlah elemen

ditulis dalam tanda “[ ]”. Array dapat berupa satu dimensi maupun banyak dimensi.

1. Array 1 dimensi

Bentuk umunya adalah sebagai berikut :

tipe_data nama_array [banyak elemen]

misal : int X[5]

Deklarasi di atas berarti array dengan nama variabel X, memiliki tipe data berupa

integer dan memiliki anggota sebanyak 5 buah. Perbedaan antara array dan variabel

biasa adalah sebuah array bisa menyimpan sejumlah nilai, sedangkan variabel biasa

hanya dihubungkan dengan sebuah nilai saja. Jika diinginkan jumlah data yang banyak

dan memiliki tipe yang sama, maka lebih efisien jika digunakan tipe array. Contoh

penggunaan array adalah sebagai berikut:

#include <stdio.h>

int main(){

int nilai[4];

//memberi nilai keempat elemen array nilai

nilai[0]=2; //array nilai indeks ke 0 bernilai 2

nilai[1]=4; //array nilai indeks ke 1 bernilai 4

nilai[2]=3; //array nilai indeks ke 2 bernilai 3

nilai[3]=7; //array nilai indeks ke 3 bernilai 7

//mencetak masing2 elemen array

for(int i=0;i<4;i++){

printf("nilai ke %d adalah %d\n",i,nilai[i]);

}

}

2. Array multidimensi

Array multidimensi merupakan array yang memiliki dimensi lebih dari satu, misalkan

array 2 dimensi. Array 2 dimensi (sering disebut matrix), dapat direpresentasikan

Page 6: Modul V Pemrograman Bahasa C ( bagian II ) · PDF filePemrograman Bahasa C ... Mengenal dan memahami fungsi array-larik dan kegunaanya serta aplikasi dalam ... Array string Pada dasarnya

sebagai sebuah tabel yang memiliki baris dan kolom. Bentuk array 2 dimensi adalah

sebagai berikut:

tipe_data nama_array [banyak elemen1][ banyak elemen2]

misal : int X[5][3]

Pada contoh di atas, array 2 dimensi X dapat dikatakan memiliki baris sebanyak 5 dan

kolom sebanyak 3. Sehingga elemen total array X adalah 5x3 = 15 elemen. Jadi ada 15

nilai yang dapat diisikan ke array X. Contoh programnya adalah seperti di bawah:

#include <stdio.h>

int main(){

int matrik[2][3];

//memberi nilai keenam elemen array nilai

matrik[0][0]=1;

matrik[0][1]=3;

matrik[0][2]=5;

matrik[1][0]=4;

matrik[1][1]=9;

matrik[1][2]=8;

//mencetak nilai elemen2 aray

for(int i=0;i<2;i++){

for(int j=0;j<3;j++){

printf("matrik[%d][%d] = %d\n",i,j,matrik[i][j]);

}

}

}

3. Array string

Pada dasarnya tipe data string merupakan array dari tipe data char. Sehingga untuk

membuat array string, maka digunakan array bertipe char 2 dimensi. Berikut

contohnya:

#include <stdio.h>

int main()

{

int I,J;

char hari[7][7]={

"minggu",

"senin",

Page 7: Modul V Pemrograman Bahasa C ( bagian II ) · PDF filePemrograman Bahasa C ... Mengenal dan memahami fungsi array-larik dan kegunaanya serta aplikasi dalam ... Array string Pada dasarnya

"selasa",

"rabu",

"kamis",

"jumat",

"sabtu"

};

for(I=0; I<7; I++) {

for(J=0; J<7; J++)

printf("%c", hari[I][J]);

printf("\n");

}

}

III. Struct

Struktur merupakan sekumpulan variable yang mungkin terdiri dari beberapa tipe data

berbeda dan dikelompokan dalam satu nama untuk kemudian diakses oleh program. Tipe

data yang dimaksud adalah tipe data dasar termasuk tipe data bentukan seperti array,

pointer, dan juga struktur lain yang telah didefinisikan sebelumnya. Dalam beberapa

bahasa pemrograman lain (misalnya Pascal), struktur sering disebut dengan istilah

rekaman (record). Kehadiran struktur akan sangat membantu untuk menyederhanakan

masalah dalam pengaturan data yang realtif kompleks, karena dalam struktur kita

diizinkan untuk mengelompokan data-data yang saling berhubungan tersebut ke dalam

suatu entitas yang terpisah. Dalam program-program besar, pendefinisian struktur

biasanya dilakukan dalam unit atau file tersendiri secara terpisah.

#include <stdio.h>

struct identitas{

char nama[12];

int usia;

float tinggi;

};

int main()

{

struct identitas orang;

printf("Nama Anda? "); scanf("%s",orang.nama);

printf("Usia Anda? "); scanf("%d",&orang.usia);

printf("Tinggi Anda? "); scanf("%f",&orang.tinggi);

Page 8: Modul V Pemrograman Bahasa C ( bagian II ) · PDF filePemrograman Bahasa C ... Mengenal dan memahami fungsi array-larik dan kegunaanya serta aplikasi dalam ... Array string Pada dasarnya

printf("Nama : %s\n",orang.nama);

printf("Usia : %d tahun\n",orang.usia);

printf("Tinggi : %.1f",orang.tinggi);

}

Pada kode di atas, identitas merupakan tipe data, orang merupakan variable yang

bertipe data identitas.

IV. Operasi File

Merupakan sumber atau tujuan dari data yang dihubungkan dengan disk atau peripheral

lainnya. Standart library stdio.h mendukung text stream dan binary stream. Text stream

adalah urutan baris yang tiap barisnya terdiri dari nol atau lebih karakter yang diakhiri

oleh ‘\n”.

1. Mode dalam Operasi File

Untuk menguhubungkan sebuah file maka terlebih dahulu harus dideklarasikan

penghubung file yaitu fungsi fopen() untuk membuka file dan fclose() yang keduanya

terdapat dalam header <stdio.h>.

Berikut prototipe dari pemanggilan file tersebut :

FILE *fopen (char_*namafile, char_*mode)

Fungsi ini akan mengembalikan pinter ke file apabila proses yang dilakukan berjalan

dengan benar. Sebaliknya, apabila gagal, maka fungsi akan mengembalikan nilai

NULL. Berikut ini beberapa factor yang menyebabkan terjadinya kesalahan dalam

proses pembukaan file. Nama file yang diisikan tidak valid, misalnya nama file

mengandung spasi ataupun tanda lain.

Membuka file dari disk yang belum disiapkan, misalnya disk belum terformat.

Membuka file yang tidak terdapat di dalam direktori yang dimaksudkan. Membuka

file yang belum terbuat untuk proses pembacaan (mode “r”)

Parameter nama file di atas digunakan untk menunjukan nama file yang akan dibuka

di dalam program. Sedangkan parameter mode digunakan untuk menetukan mode

Page 9: Modul V Pemrograman Bahasa C ( bagian II ) · PDF filePemrograman Bahasa C ... Mengenal dan memahami fungsi array-larik dan kegunaanya serta aplikasi dalam ... Array string Pada dasarnya

atau aksi yang akan dilakukan setelah file dibuka. Adapun mode-mode yang telah

didefinisikan untuk fopen dapat dilihat pada tabel berikut.

Page 10: Modul V Pemrograman Bahasa C ( bagian II ) · PDF filePemrograman Bahasa C ... Mengenal dan memahami fungsi array-larik dan kegunaanya serta aplikasi dalam ... Array string Pada dasarnya

2. Fungsi-Fungsi dalam Operasi File

Berikut fungsi fungsi yang digunakan dalam operasi file :

Fungsi getch ()

Fungsi getch merupakan sebuah proses pembacaan karakter dan menempatkan

karakter di dalam file ke dalam console. Fungsi tersebut hampir sama dengan fungsi

getchar, perbedaanya jika pada getchar adalah membaca input (berupa karakter) dari

keyboard ke dalam program saat running. Sedangkan getc membaca karakter dari

dalam file dan memasukanya dalam running program. Contoh deklarasi getc adalah

sebagai berikut :

int getc (FILE *fp);

Fungsi fgets ()

Fungsi ini digunakan untuk membaca suatu baris data yang terdapat di dalam file.

Adapun prototipenya adalah sebagai berikut :

char fgets (char str, int n, FILE *fp);

Fungsi fscanf ()

Fungsi fscanf hampir sama dengan scanf (), yaitu mengambil data dengan format

tertentu. Perbedaanya fungsi fscanf dilakukan terhadap file sedangkan scanf

dilakukan terhadap data yang dimasukan atau dibaca dari keyboard. Prototipe dari

fungsi scanf () adalah sebagai berikut:

int fscanf (FILE *fp, char *format, …);

Fungsi putc ()

Fungsi putc merupakan kebalikan dari fungsi getc (), yaitu digunakan untuk

menuliskan sebuah karakter ke dalam file. Prototipe fungsi ini adalah sebagai

berikut.

int putc (int c, FILE *fp);

Fungsi fputs ()

Page 11: Modul V Pemrograman Bahasa C ( bagian II ) · PDF filePemrograman Bahasa C ... Mengenal dan memahami fungsi array-larik dan kegunaanya serta aplikasi dalam ... Array string Pada dasarnya

Fungsi fputs merupakan kebalikan dari fgets, yaitu untuk melakukan penulisan atau

memasukan satu buah baris data ke dalam file. Adapun prototype fputs () adalah

sebagai berikut.

int fputs (char *str, FILE *fp)

Fungsi fprintf ()

Fungsi fprintf merupakan kebalikan dari fscanf (). Fungsi ini digunakan untuk

menuliskan data dengan format tertentu ke dalam file. Prototipenya adalah sebagai

berikut.

int fprintf (FILE *fp, char *format, …);

Fungsi rename ()

Fungsi ini berguna untuk mengubah nama file dari dalam program. Protipe fungsi ini

adalah sebagai berikut :

int rename (const char *oldname, const char *newname );

Fungsi remove ()

Fungsi ini berguna untuk menghapus file.

Fungsi rename dan remove merupakan fungsi dalam manajemen file, berbeda

dengan fungsi fungsi sebelumnya fungsi ini tidak membutuhkan pointer ke file yang

akan dituju. Fungsi ini hanya mendeteksi nama file kemudian diatur, apakah akan

diganti dengan nama tertentu ataupun membuangnya. Sehingga proses ini juga

berlaku untuk mengatur folder.

Contoh Operasi Menulis File

#include <conio.h>

#include <stdio.h>

int main()

{

FILE *fp;

int tekan,a;

char nama_file[20];

while(a=1)

{

Page 12: Modul V Pemrograman Bahasa C ( bagian II ) · PDF filePemrograman Bahasa C ... Mengenal dan memahami fungsi array-larik dan kegunaanya serta aplikasi dalam ... Array string Pada dasarnya

puts("nama file yang diinginkan : ");

gets(nama_file);

if ((fp = fopen(nama_file,"w")) == NULL) {

printf("tidak bisa membuat file %s",nama_file);

return 0;}

printf("\nMasukkan sebarang input ke dalam file %s\n",nama_file);

printf("\ntekan ctrl+z untuk mengakhiri..\nInput : \n");

while ((tekan=getchar()) !=EOF)

putc(tekan,fp);

fclose(fp);

getch();

return 0 ;

break;

}getch();

}

Contoh Operasi Membaca File

#include <conio.h>

#include <stdio.h>

int main()

{

FILE *fp;

char c;

char baca[50];

puts("Nama file yang ingin dibaca :");

gets(baca);

if((fp=fopen(baca,"r")) == NULL){

printf("tidak bisa buka file %s", baca);

}

while((c=getc(fp)) != EOF)

putch(c);

fclose(fp);

return 0;

}

Page 13: Modul V Pemrograman Bahasa C ( bagian II ) · PDF filePemrograman Bahasa C ... Mengenal dan memahami fungsi array-larik dan kegunaanya serta aplikasi dalam ... Array string Pada dasarnya

Contoh Operasi Mengedit dan Menyimpan File

#include <conio.h>

#include <stdio.h>

int main()

{

FILE *fp;

char c;

char baca[50];

puts("Nama file yang ingin diedit :");

gets(baca);

if((fp=fopen(baca,"w+")) == NULL){

printf("tidak bisa buka file %s", baca);

}

printf("\nMasukkan editan ke dalam file %s\n",baca);

printf("\ntekan ctrl+z untuk menyimpan..\nEditan : \n");

while ((c=getchar()) !=EOF)

putc(c,fp);

fclose(fp);

getch();

return 0 ;

}

Contoh Operasi Menghapus File

#include <conio.h>

#include <stdio.h>

int main()

{ FILE *fp;

int tekan;

char nama[20];

puts("nama file yang ingin dihapus : ");

Page 14: Modul V Pemrograman Bahasa C ( bagian II ) · PDF filePemrograman Bahasa C ... Mengenal dan memahami fungsi array-larik dan kegunaanya serta aplikasi dalam ... Array string Pada dasarnya

gets(nama);

remove(nama);

printf("\ntekan ctrl+z untuk mengakhiri penghapusan\n");

while ((tekan=getchar()) !=EOF)

putc(tekan,fp);

getch();

return 0 ;

}