BAB VI BAHASA C2
6.1 Pendahuluan Bahasa C merupakan evolusi dari bahasa BCPL yang dibuat oleh Martin Richards pada tahun 1967. Bahasa ini memberikan ide kepada Ken Thompson yang kemudian mengembangkan bahasa B pada tahun 1970. Selanjutnya dikembangkan kembali menjadi bahasa C oleh Dennis Ritchie sekitar tahun 1970-an di Bell Telephone Laboratories Inc. (sekarang bernama AT&T Bell Laboratories). Beberapa alasan mengapa bahasa C banyak digunakan diantaranya adalah bahasa C tersedia hampir di semua jenis komputer, hanya menyediakan sedikit kata kunci, terdapat dukungan library yang banyak, dan memiliki struktur yang baik sehingga mudah dipahami. 6.1.1 Fungsi Fungsi adalah bagian dari program yang dimaksudkan untuk mengerjakan suatu tugas tertentu dan letaknya dipisahkan dari bagian program yang menggunakannya. Fungsi dibuat bertujuan untuk membuat program menjadi lebih terstruktur sehingga mudah untuk dipahami, dan untuk mengurangi penulisan kembali kode yang telah dibuat. 1.
Fungsi Tanpa Parameter Merupakan
data
fungsi
yang
penulisan
argumennya
menggunakan void atau kosong. 2.
Fungsi Dengan Parameter Fungsi dengan parameter memiliki argument yang bukan void. Akan tetapi argumennya adalah suatu variable dengan berbagai macam tipe data.
117
118
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.
6.1.2 Array (Larik) Array merupakan koleksi data dengan setiap elemen data menggunakan nama yang sama dan 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 umumnya 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.
2.
Array Multidimensi Array multidimensi merupakan array yang memiliki dimensi lebih dari satu. Array multidimensi (sering disebut matrix), dapat direpresentasikan 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]
119
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. 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.
6.1.3 Struct Struktur merupakan sekumpulan variable yang mungkin terdiri dari beberapa tipe data berbeda dan dikelompokan dalam satu nama untuk kemudian diakses oleh program. Kehadiran struktur akan sangat membantu karena dalam struktur kita diizinkan untuk mengelompokan data-data yang saling berhubungan tersebut ke dalam suatu identitas yang terpisah.
6.1.4 Operasi File 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.
Menulis File Dalam bahasa C terdpat fasilitas untuk menulis file. File tersebut dapat berisi tulisan yang dapat diisi sesuka hati kita.
2.
Membaca file Dalam bahasa C terdapat fasilitas untuk membaca file yang pernah kita buat sebelumnya. Dengan menu ini kita dapat mengetahui isi dari file yang pernah disimpan sebelumnya.
120
3.
Menghapus file Dalam bahasa C, kita dapat menghapus file yang pernah kita buat sebeumnya. Hal ini dapat dibuktikan dengan membuka lokasi penyimpanan dan dapat dipastikan file tadi sudah tidak ada.
4.
Mengedit file Dalam bahasa C, kita dapat mengedit file yang pernah kita simpan sebelumnya. Selain itu kita dapat menyimpan kembali setelah kita edit.
6.2 Tujuan 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.
121
6.3 Langkah Kerja 6.3.1 Fungsi Fungsi adalah bagian dari program yang dimaksudkan untuk mengerjakan suatu tugas tertentu dan letaknya dipisahkan dari bagian program yang menggunakannya. Fungsi dibagi 2, yaitu dengan parameter dan tanpa parameter. 1. Membuat Fungsi Tanpa Parameter a. Buka program Orwell Dev-C++ b. Buat Project baru c. Tuliskan program sebagai berikut #include
<stdio.h>//#include
sebagai
preprosesor
dan stdio.h sebagai library int panjang,lebar,Luas; /*deklarasi variabel*/ Void cetakLuas(void){//deklarasi fungsi panjang=10;/*pemberian nilai variabel panjang*/ lebar=5;/*pemberian nilai variabel lebar*/ Luas
=
panjang*lebar;
//definisi
Luas
sebagai
panjang dikalikan lebar printf("Luasnya
adalah
%d
",Luas);//output
perhitungan } Int main(){//fungsi utama cetakLuas();//pemanggilan fungsi}
d. Compile dan run dengan menekan F11.
Gambar 6.1 Output fungsi tanpa parameter
hasil
122
2. Membuat Fungsi dengan Parameter a. Buka program Orwell Dev-C++ b. Buat Project baru c. Tuliskan program sebagai berikut #include <stdio.h> //#include sebagai preprosesor dan stdio.h sebagai library int cetakLuas(int panjang, int lebar){//deklarasi fungsi int Luas; /*deklarasi nama variabel*/ Luas
=
panjang*lebar;
//definisi
Luas
sebagai
panjang dikalikan lebar printf("Luasnya adalah %d cm",L); //output hasil perhitungan} int main(){ // Fungsi Utama int p=10, l=5;//inisialisasi p dan l cetakLuas(p,l); //pemanggilan fungsi }
d. Compile dan run dengan menekan tombol F11.
Gambar 6.2 Output fungsi dengan parameter
3. Membuat Fungsi dengan Return Value a. Buka program Orwell Dev-C++ b. Buat Project baru c. Tulisan program sebagai berikut #include
<stdio.h>//#include
sebagai
preprosesor
dan stdio.h sebagai library int
cetakLuas(int
panjang,
int
fungsi dan delarasi variabel int Luas;//delarasi variabel luas
lebar){//membuat
123
Luas = panjang*lebar;//perumusan luas return Luas;//nilai kembali untuk variabel luas } int main(){//fungsi utama int
p=10,
l=5,
L;//deklarasi
dan
inisialisasi
variabel L = cetakLuas(p,l);//pemanggilan fungsi printf("Luasnya
adalah
%d",L);
//perintah
menampilkan hasil }
d. Compile dan run dengan menekan tombol F11.
Gambar 6.3 Output fungsi dengan return value
6.3.2 Array 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. Membuat Array 1 Dimensi a. Buka program Orwell Dev-C++ b. Buat Project baru c. Tuliskan program sebagai berikut #include
<stdio.h>//#include
dan stdio.h sebagai library int main(){//fungsi utama
sebagai
preprosesor
124
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++){//perintah perulangan printf("nilai
ke
%d
adalah
%d\n",i,nilai[i]);//output hasil dari array } }
d. Compile dan run dengan menekan tombol F11.
Gambar 6.4 Output fungsi array 1 dimensi
2. Membuat Array Multidimensi a. Buka program Orwell Dev-C++ b. Buat Project baru c. Isikan program pada fungsi sebagai berikut #include <stdio.h>//#include sebagai preprosesor dan stdio.h sebagai library int main(){//fungsi utama int
matrik[2][3];//memberi
nilai
keenam
array nilai matrik[0][0]=1;//elemen [0][0] bernilai 1 matrik[0][1]=3;//elemen [0][1] bernilai 3 matrik[0][2]=5;//elemen [0][2] bernilai 5 matrik[1][0]=4;//elemen [1][4] bernilai 4 matrik[1][1]=9;//elemen [1][1] bernilai 9 matrik[1][2]=8;//elemen [1][2] bernilai 8
elemen
125
//mencetak nilai elemen2 aray for(int i=0;i<2;i++){//perintah perulangan for(int j=0;j<3;j++){//perintah perulangan printf("matrik[%d][%d]=%d\n",i,j,matrik[i][j]);// output hasil array } } }
d. Compile dan run dengan menekan tombol F11.
Gambar 6.5 Output fungsi array multidimensi
3. Membuat Array String a. Buka program Orwell Dev-C++ b. Buat Project baru c. Isikan program pada fungsi sebagai berikut #include <stdio.h>//#include sebagai preprosesor dan stdio.h sebagai library int main(){//fungsi utama int I,J;//mendelarasian variabel char
hari[7][7]={//deklarasi
dimensi "minggu", "senin", "selasa", "rabu", "kamis", "jumat", "sabtu" };
string
dengan
2
126
//perintah menampilkan hasil for(I=0; I<7; I++) {//perulangan variabel I for(J=0; J<7; J++)//perulangan variabel J printf("%c", hari[I][J]);//menampilkan output printf("\n");//membuat baris baru } }
d. Compile dan run dengan menekan tombol F11.
Gambar 6.6 Output fungsi array string
6.3.3 Struct Struktur merupakan sekumpulan variable yang mungkin terdiri dari beberapa tipe data berbeda dan dikelompokan dalam satu nama untuk kemudian diakses oleh program. Langkah-langkah untuk membuat struct: 1. Buka program Orwell Dev-C++ 2. Buat Project baru 3. Tuliskan program sebagai berikut #include <stdio.h>//#include sebagai preprosesor dan stdio.h sebagai library int main(){//fungsi utama struct identitas{//perintah struct char
nama[25];//deklarasi
maksimal karakter 12
variable
nama
dengan
127
char NIM[14];//delarasi variable NIM dengan maksimal karakter 14 float tinggi;//deklarasi variable tinggi dengan tipe data float }; struct identitas orang;//memanggil fungsi identitas printf("Nama Anda? ");//menampilkan karakter scanf("%s",orang.nama);//input variabel nama printf("NIM? "); //menampilkan karakter scanf("%s",&orang.NIM);//input variabel NIM printf("Tinggi Anda? "); //menampilkan karakter scanf("%f",&orang.tinggi);//input variabel tinggi printf("Nama
: %s\n",orang.nama);//menampilkan hasil
nama printf("NIM
: %s\n",orang.NIM);//menampilkan hasil
NIM printf("Tinggi
:
%.1f",orang.tinggi);//menampilkan
hasil Tinggi }
4. Compile dan run dengan menekan tombol F11.
Gambar 6.7 Output struct
128
6.3.4 Operasi File Merupakan sumber atau tujuan dari data yang dihubungkan dengan disk atau peripheral lainnya. Macam-macam operasi file: 1. Menulis File a. Buka program Orwell Dev-C++ b. Buat Project baru c. Tuliskan program sebagai berikut #include
//#include
sebagai
preprosesor
sebagai
preprosesor
dan conio.h sebagai library #include
<stdio.h>//#include
dan stdio.h sebagai library int main(){//fungsi utama FILE *fp;//perintah operasi file int tekan,a;//deklarasi variabel char
nama_file[20];//deklarasi
variabel
dan
jml
elemen while(a=1){//perintah while selagi benar perintah akan dilanjutkan puts("nama file yang diinginkan : ");//menampilkan karakter gets(nama_file);//input variabel nama_file if ((fp = fopen(nama_file,"w")) == NULL) { //percabangan if, bila benar dilanjutkan printf("tidak
bisa
%s",nama_file);//jika
salah,
membuat perintah
file ini
akan
dalam
file
muncul return 0;}//nilai kembali printf("\nMasukkan
sebarang
input
ke
%s\n",nama_file);//menampilkan karakter
129
printf("\ntekan ctrl+z untuk mengakhiri..\nInput : \n");//menampilkan karakter while
((tekan=getchar())
selagi
belium
!=EOF)//perintah
menekan
ctrl+z.
Program
while, akan
berlanjut putc(tekan,fp);//menuliskan karakter fclose(fp);//menutup file getch();//membaca input return 0 ;//nilai kembali break;//agar program jeda sejenak }getch();}//menahan program
d. Compile dan run dengan menekan tombol F11.
Gambar 6.8 Output menulis file
2. Membaca File a. Buka program Orwell Dev-C++ b. Buat Project baru c. Tuliskan program sebagai berikut #include
//#include
sebagai
preprosesor
sebagai
preprosesor
dan conio.h sebagai library #include
<stdio.h>//#include
dan stdio.h sebagai library int main(){//fungsi utama
130
FILE *fp;//perintah operasi file char c;//delarasi variabel c char
baca[50];//deklarasi
variabel
dan
jumlah
elemen puts("Nama
file
yang
ingin
dibaca
:");//menampilkan karakter gets(baca);//input variabel baca if((fp=fopen(baca,"r"))
==
NULL){//pengkondisian
if, bila kondisi benar maka akan lanjut perintah printf("tidak
bisa
buka
file
%s",
baca);}//bila
kondisi salah akan tampil karakter tersebut while((c=getc(fp))
!=
EOF)//selagi
kita
tidak
menekan ctrl+z maka penulisan akan tetap berlanjut putch(c);//input ke variabel c fclose(fp);//menutup file return 0;//nilai kembali }
d. Compile dan run menggunakan tombol F11.
Gambar 6.9 Output membaca file
3. Mengedit dan Menyimpan File a. Buka program Orwell Dev-C++ b. Buat Project baru c. Tuliskan program sebagai berikut
131
#include
<stdio.h>//#include
sebagai
preprosesor
sebagai
preprosesor
dan stdio.h sebagai library #include
//#include
dan conio.h sebagai library int main(){//fungsi utama FILE *fp;//perintah operasi file char c;//deklarasi variabel c char
baca[50];//deklarasi
variabel
dan
jumlah
elemen puts("Nama
file
yang
ingin
diedit
:");//menampilkan Karakter gets(baca);//fungsi input variabel baca if((fp=fopen(baca,"w+"))
==
if,
akan
jika
kondisi
benar
NULL){//percabangan dilanjut
perintah
selanjutnya printf("tidak
bisa
buka
file
%s",
baca);}//jika
kondisi salah akan tampil karakter tersebut printf("\nMasukkan
editan
ke
dalam
file
%s\n",baca);//menampilkan karakter printf("\ntekan ctrl+z untuk menyimpan..\nEditan : \n");//menampilkan karater while menekan
((c=getchar()) ctrl+z,
!=EOF)//selagi
kita
dianggap
masih
program putc(c,fp);//input variabel c dan fp fclose(fp);//perintah menutup file getch();//agar program jeda sejenak return 0 ;//nilai kembali }
kita
belum
mengedit
132
d. Compile dan run menggunakan tombol F11.
Gambar 6.10 Output mengedit dan menyimpan file
4. Menghapus File a. Buka program Orwell Dev-C++ b. Buat Project baru c. Tuliskan program sebagai berikut #include //#include sebagai preprosesor dan conio.h sebagai library #include <stdio.h>//#include sebagai preprosesor dan stdio.h sebagai library int main(){//fungsi utama FILE *fp;//perintah operasi file int tekan;//deklarasi variable tekan char
nama[20];//deklarasi
variabel
dan
jumlah
elemen puts("nama
file
yang
ingin
dihapus
:
");//menampilkan karater gets(nama);//input variabel nama remove(nama);//perintah hapus file printf("\ntekan
ctrl+z
untuk
mengakhiri
penghapusan\n");//menampilkan karakter while
((tekan=getchar())
!=EOF)//perintah
diteruskan selagi kita belum menekan ctrl+z
akan
133
putc(tekan,fp);//menginput ke variabel tekan dan fp getch();//agar program jeda sejenak return 0 ;}//nilai kembali
d. Compile dan run dengan menekan tombol F11.
Gambar 6.11 Output menghapus file
6.4 Analisa dan Pembahasan 6.4.1 Fungsi 1. Fungsi tanpa Parameter a. Algoritma 1. Mulai program. 2. Deklarasi fungsi cetakLuas. 3. Deklarasi variabel p, l, Luas. 4. Inisialisasi nilai variabel p=10, l=5. 5. Pemanggilan fungsi cetakLuas oleh fungsi utama. 6. Output hasil perhitungan. 7. Selesai.
134
b. Flowchart Mulai
Deklarasi variabel panjang, lebar luas
Deklarasi fungsi cetakLuas
Inisialisasi panjang = 5 lebar = 10
Panggil cetakLuas
luas = panjang * lebar
Output luas Output luas
Selesai
Gambar 6.12 Flowchart fungsi tanpa parameter
c. Gambar Uji
Gambar 6.13 Output fungsi tanpa parameter
135
d. Analisa Sebelum memulai program, kita menginclude library yang sesuai. Dilanjutkan dengan deklarasi fungsi cetakLuas, deklarasi variabel p, l, Luas, serta deklarasi rumus Luas=p*l. Kemudian pemberian nilai pada tiap-tiap variabel yaitu p=10,l=5. Pada fungsi utama, fungsi cetakLuas akan dipanggil untuk diproses. Perbedaan dengan fungsi parameter ialah dalam fungsi tanpa parameter, argumen diisi void. Hasil yang muncul sesuai dengan rumus dan nilai yang diberikan, yaitu luas untuk bidang yang memiliki panjang 10 dan lebar 5 maka akan memiliki luas 50. Hasil yang tampak pada layar konsol sesuai dengan program yang ada pada fungsi. Program pada gambar diatas langsung berahir karena tidak terdapat fungsi getch(); yang berfungsi agar program jeda sejenak. Untuk menambah fungsi getch(); jangan lupa untuk include library conio.h terlebih dahulu.
2. Fungsi dengan Parameter Fungsi dengan parameter ialah fungsi dimana argumennya diisi dengan delarasi variabel. a. Algoritma 1. Mulai program. 2. Deklarasi fungsi cetakLuas. 3. Deklarasi variabel p, l, Luas. 4. Deklarasi rumus Luas. 5. Pada fungsi utama, inisialisasi p=10, l=5. 6. Panggil fungsi cetakLuas di fungsi utama. 7. Output hasil perhitungan. 8. Selesai.
136
b. Flowchart Mulai
Deklarasi fungsi cetakLuas
Inisialisasi panjang = 5 lebar = 10
Panggil cetakLuas
luas = panjang * lebar
Output luas Output luas
Selesai
Gambar 6.14 Flowchart fungsi dengan parameter
c. Gambar Uji
Gambar 6.15 Output fungsi dengan parameter
d. Analisa Sebelum memulai program, kita menginclude library yang sesuai. Dilanjutkan dengan deklarasi fungsi cetakLuas, deklarasi variabel p dan l dalam argumen fungsi. Deklarasi Luas, serta
137
deklarasi rumus Luas=p*l. Kemudian pemberian nilai pada tiaptiap variabel yaitu p=10, l=5 pada fungsi utama. Lalu pada fungsi utama, fungsi cetakLuas akan dipanggil untuk diproses. Perbedaan dengan tanpa parameter ialah dalam fungsi parameter, argumen diisi deklarasi variabel. Hasil yang muncul sesuai dengan rumus dan nilai yang diberikan. Meskipun penulisan perintah perhitungan tidak di program utama, namun program tetap bisa berjalan dengan benar berkat fungsi. Program pada gambar diatas langsung berahir karena tidak terdapat fungsi getch(); yang berfungsi agar program jeda sejenak. Untuk menambah fungsi getch(); jangan lupa untuk include library conio.h terlebih dahulu.
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
dikembalikan/return. a. Algoritma 1. Mulai program. 2. Deklarasi fungsi cetakLuas. 3. Deklarasi variabel p, l, Luas. 4. Deklarasi rumus luas. 5. Return variabel Luas. 6. Pada fungsi utama, inisialisasi p=10, l=5. 7. Panggil fungsi cetakLuas pada fungsi utama. 8. Output hasil perhitungan. 9. Selesai
yang
akan
138
b. Flowchart Mulai
Deklarasi fungsi cetakLuas
Inisialisasi panjang = 5 lebar = 10
Panggil cetakLuas
Luas = panjang * lebar
Return Luas
Output luas Output luas
Selesai
Gambar 6.16 Flowchart fungsi dengan return value
c. Gambar Uji
Gambar 6.17 Output fungsi dengan return value
139
d. Analisa Sebelum memulai program, kita menginclude library yang sesuai. Dilanjutkan dengan deklarasi fungsi cetakLuas, deklarasi variabel p, l, Luas, serta deklarasi rumus Luas=p*l. Pada fungsi kali ini kita tambahkan nilai kembali pada variabel Luas. Kemudian pemberian nilai pada tiap-tiap variabel yaitu p=10,l=5 pada fungsi utama. Lalu pada fungsi utama, fungsi cetakLuas akan dipanggil untuk diproses. Hasil yang muncul sesuai dengan rumus dan nilai yang diberikan. Perbedaan program diatas dengan yang sebelumsebelumnya adalah terdapatnya return value untuk fungsi yang dipanggil. Fungsi dari return yaitu untuk mengembalikan nilai pada variabelnya. Program pada gambar diatas langsung berahir karena tidak
terdapat fungsi getch(); yang berfungsi agar
program jeda sejenak. Untuk menambah fungsi getch(); jangan lupa untuk include library conio.h terlebih dahulu.
6.4.2 Array Array merupakan koleksi data dengan setiap elemen data menggunakan nama yang sama dan 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 a. Algoritma 1. Mulai 2. Deklarasi Array nilai 3. Deklarasi dan inisialisasi i=0
140
4. If i<4 ke langkah 5, else ke langkah 8 5. Output nilai ke i = niali[i] 6. I++ 7. Kembali ke langkah 4 8. End
b. Flowchart
Gambar 6.18 Flowchart Array 1 Dimensi
c. Gambar Uji
Gambar 6.19 Output Array 1 Dimensi
141
d. Analisa Sebelum memulai program, kita include library yang sesuai. Deklarasi array nilai dan jumlah elemennya sejumlah 4. Kemudian
pemberian
nilai
pada
masing-masing
elemen.deklarasi behwa i=0, maka selagi i<4 maka proses perulangan untuk menampilkan hasil akan berlanjut. Hasil diatas sesuai dengan pemberian nilai yang telah diberikan. Perintah for berguna untuk perulangan seperti diatas. Karakter yang tampil pada layar konsol sesuai dengan perintah printf(“nilai ke %d adalah %d”, i,nilai[i]); dimana %d disitu menandakan bilangan bulat. data yang diambil berasal dari variabel i dan nilai[i]. Program langsung berakhir karena tidak diberi perintah getch(); untuk menjeda progam sejenak.
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 sebagai sebuah tabel yang memiliki baris dan kolom. a. Algoritma 1. Mulai 2. Deklarasi Array matrik. 3. Deklarasi dan inisialisasi i=0. 4. If i<2 ke langkah 5, else ke langkah 12 5. Deklarasi dan inisialisasi j=0 6. If j<3 ke langkah 7, else ke langkah 10 7. Output nilai ke i = niali[i] 8. j++ 9. ke langah 6 10. i++ 11. ke langkah 4
142
12. End
b. Flowchart
Gambar 6.20 Flowchart Array Multidimensi
143
c. Gambar Uji
Gambar 6.21 Output Array Multidimensi
d. Analisa Sebelum memulai program, kita include library yang sesuai. Deklarasi array nilai dengan dimensi sebanyak 2 dan jumlah elemennya sejumlah 6. Kemudian pemberian nilai pada masingmasing elemen. inisialisasi bahwa i=0, maka selagi i<2 maka proses perulangan untuk menampilkan hasil akan berlanjut. Lalu masuk inisialisasi j=0, maka selagi j<3 proses perulangan akan dilanjutkan. Hasil diatas sesuai dengan pemberian nilai yang telah diberikan. Perbedaan pada perintah array sebelumnya ialah pada array multidimensi kita dapat membuat lebih dari 1 dimensi. Misalnya saja pada contoh diatas kita menggunaan 2 dimensi. Perhitungan jumlah elemen dimulai dari elemen ke 0. Perintah for berguna untuk perulangan seperti diatas. Program langsung berakhir karena tidak diberi perintah getch(); untuk menjeda progam sejenak.
144
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. a. Algoritma 1. Mulai program. 2. Deklarasi array hari dengan jumlah dimensi 2, jumlah elemen 49. 3. Inisialisasi nilai tiap elemen. 4. Inisialisasi i=0, maka selagi i<7 proses perulangan untuk menampilkan hasil berlanjut dengan pola i++. 5. Inisialisasi j=0, maka selagi i<7 proses perulangan untuk menampilkan hasil berlanjut dengan pola j++. 6. Output dari perintah array. 7. Selesai
145
b. Flowchart
START
Deklarasi hari
i=0
i<7
Y
J=0
j<7 N
N
i++
Y
OutputHari
j++
END
Gambar 6.22 Flowchart Array String
146
c. Gambar Uji
Gambar 6.23 Output Array String
d. Analisa Sebelum memulai program, kita include library yang sesuai. Deklarasi array nilai dengan dimensi sebanyak 2 dan jumlah elemennya sejumlah 49. Kemudian pemberian nilai pada masing-masing elemen. inisialisasi bahwa i=0, maka selagi i<7 maka proses perulangan untuk menampilkan hasil akan berlanjut. Lalu masuk inisialisasi j=0, maka selagi j<7 proses perulangan akan dilanjutkan. Hasil diatas sesuai dengan pemberian karater yang telah diberikan. Pada program diatas kita gunakan array string karena array tersebut memiliki kelebihan dapat membuat berbagai tipe data dengan lebih dari satu dimensi. Perintah for berguna untuk perulangan seperti diatas. Program langsung berakhir karena tidak diberi perintah getch(); untuk menjeda progam sejenak.
6.4.3 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
147
data dasar termasuk tipe data bentukan seperti array, pointer, dan juga struktur lain yang telah didefinisikan sebelumnya. a. Algoritma 1. Mulai 2. Deklarasi Struct identitas
3. Deklarasi orang dalam identitas 4. Output “Nama Anda?” 5. Input orang.nama 6. Output “NIM Anda?” 7. Input orang.nim 8. Output “Tinggi Anda?” 9. Input orang.tinggi 10.Output nama, nim, tinggi 11.END
148
b. Flowchart Mulai
Deklarasi struct identitas berisi nama, nim, tinggi
Deklarasi orang dalam struct identitas
Output Nama:
Input nama
Output NIM:
Input nim
Output Tinggi: Input tinggi Output nama
Output nim Output tinggi
Selesai
Gambar 6.24 Flowchart Struct
149
c. Gambar Uji
Gambar 6.25 Output Struct
d. Analisa Sebelum memulai program, kita include library yang sesuai. Deklarasi variabel string diantaranya nama, NIM, tinggi. Kemudian input nama, NIM, dan tinggi. Sebagai contoh kita input nama Miftah_Adiguna, NIM 21060115120004, dan tinggi 175. Hasil keluaran dari proses akan keluar. Disini kita gunakan fungsi string karena fungsi tersebut dapat mengolah data lebih dari 1 tipe data dan lebih dari 1 variabel. Pada hasil run di atas baris nama , NIM, dan tinggi program dapat menampilkan hasil sesuai dengan input. Program langsung berakhir karena tidak diberi perintah getch(); untuk menjeda progam sejenak.
6.4.4 Operasi File 1. Menulis File Dalam bahasa C, kita dapat membuat program yang bisa digunakan untuk menulis file. a. Algoritma 1. Mulai 2. Mengaktifkan fungsi operasi file 3. Deklarasi a, tekan, nama_file
150
4. Mencetak nama file yang diinginkan 5. Input nama file yang diinginkan ke variabel nama_file 6. If gagal ke langkah 7, else ke langkah 9 7. Mencetak tidak bisa membuat file 8. Ke langkah 15 9. Mencetak masukan sembarang input 10. Mencetak tekan Ctrl + Z untuk mengakhiri 11. Input isi file 12. If Ctrl + Z ditekan ke langkah 13 else ke langkah 11 13. Menulis karakter kedalam file 14. Menutup file 15. END
151
b. Flowchart Mulai
Mengaktifkan fungsi operasi file
Deklarasi a, tekan, nama_file
Output nama file yang diinginkan:
Input nama_file
fopen(nama_file,"w") == NULL Output Masukkan sebaran input ke dalam file:
Output Tekan ctrl+z untuk mengakhiri..
Input isi file
ctrl+z ditekan
Menuliskan isi file ke dalam file
Selesai
Gambar 6.26 Flowchart menulis file
152
c. Gambar Uji
Gambar 6.27 Output menulis file
d. Analisa Dalam penulisan source code diatas pada bagian if ((fp = fopen(nama_file,"w")) == NULL) { huruf w pada perintah disamping berguna untuk menulis file. Apabila nama file yang ingin dibuat belum ada maka akan dibuat file dengan nama tersebut. Apabila sudah ada maka file akan dihapus dan diganti dengan file kosong. Selanjutnya kita akan menginput karakter kedalam file tersebut. Apapun yang kita ketikkan akan tersimpan dalam file. Jika kita sudah mengetik ctrl+z baru penulisan karakter berakhir diikuti program yang berakhir.
2. Membaca File Pada bahasa C, file yang telah dibuat juga dapat dibaca isinya melalui program bahasa C, a. Algoritma 1. Mulai 2. Mengaktifkan fungsi operasi file 3. Deklarasi c, baca
153
4. Mencetak nama file yang ingin dibaca 5. Input nama file yang ingin dibaca ke variabel baca 6. If gagal ke langkah 7, else ke langkah 9 7. Mencetak tidak bisa membuka file 8. Ke langkah 12 9. Mencetak tekan Ctrl + Z untuk mengakhiri 10. Membaca file 11. If Ctrl + Z ditekan ke langkah 12, else ke langkah 10 12. END
b. Flowchart Mulai
Mengaktifkan fungsi operasi file
Deklarasi c, baca
Output nama file yang ingin dibaca:
Input baca
fp=fopen(baca), r == NULL
tidak
Output isi file tidak
ya
Output tidak bisa buka file
Ctrl+z ditekan
ya
Selesai
Gambar 6.28 Flowchart membaca File
154
c. Gambar Uji
Gambar 6.29 Output membaca File
d. Analisa Dalam penulisan source code progam diatas, pada bagian if((fp=fopen(baca,"r")) == NULL){ huruf r pada perintah disamping berfungsi untuk membaca isi file. Apabila nama file yang ingin kita buka belum ada maka akan muncul output gagal buka. Jika nama file yang dimasukkan benar maka akan membuka isi file.
3. Mengedit dan Menyimpan File Dalam bahasa C, file yang telah kita buat dapat diedit dan disimpan kembali. a. Algoritma 1. Mulai 2. Mengaktifkan fungsi operasi file 3. Deklarasi c, baca 4. Mencetak nama file yang ingin diedit 5. Input nama file yang ingin diedit ke variabel baca 6. If gagal ke langkah 7, else ke langkah 9 7. Mencetak tidak bisa membuka file 8. Ke langkah 15 9. Mencetak masukan editan ke dalam file
155
10. Mencetak tekan Ctrl + Z untuk mengakhiri 11. Input isi file 12. If Ctrl + Z ditekan ke langkah 13, else ke langkah 11 13. Menulis karakter kedalam file 14. Menutup file 15. END
156
b. Flowchart Mulai
Mengaktifkan fungsi operasi file
Deklarasi c, baca
Output nama file yang ingin diedit:
Input baca
fopen(baca,"w+ ) == NULL Output Masukkan editan ke dalam file:
Output Tekan ctrl+z untuk mengakhiri..
Input isi file tidak
ctrl+z ditekan ya
Menuliskan isi file ke dalam file
Selesai
Gambar 6.30 Flowchart mengedit dan menyimpan file
157
c. Gambar Uji
Gambar 6.31 Output mengedit dan menyimpan file
d. Analisa Dalam penulisan source code untuk program diatas, pada bagian if((fp=fopen(baca,"w+")) == NULL){ huruf w+ pada bagian tersebut berfungsi untuk proses penulisan dan pembacaan. Apabil file belum ada maka file akan dibuat. Apabila file telah ada maka file tersebut akan ditimpa dengan file baru. Selanjutnya kita akan menginput karakter kedalam file tersebut. Apapun yang kita ketikkan akan tersimpan dalam file. Jika kita sudah mengetik ctrl+z baru penulisan karakter berakhir diikuti program yang berakhir.
4. Menghapus File Dalam bahasa C, kita dapat menghapus file yang telah kita buat. a. Algoritma 1. Mulai 2. Mengaktifkan fungsi operasi file 3. Deklarasi tekan, nama 4. Mencetak nama file yang ingin dihapus 5. Input nama file yang ingin dihapus ke variabel nama
158
6. Menghapus file dalam variabel nama 7. Mencetak tekan Ctrl + Z untuk mengakhiri 8. If Ctrl + Z ditekan ke langkah 9, else ke langkah 8 9. END
b. Flowchart Mulai Mengaktifkan fu ngsi operas i file
Deklarasi tekan, nama Outpu t nama file yan g dihapus
Input nama
Menghapus file Outpu t tekan ctrl + z untuk men gakhiri
N
Ctrl + Z ditekan Y
End Gambar 6.32 Flowchart menghapus file
159
c. Gambar Uji
Gambar 6.33 Output menghapus file
d. Analisa Dalam program diatas, kita diperintah untuk memasukkan nama file yang ingin dihapus. Apabila nama file yang ingin dihapus memang sudah ada filenya, maka file tersebut akan dieksekusi untuk dihapus. Jika tidak ada, maka nama file yang kita ketikkan tidak akan ada pengaruh apa-apa. Selanjutnya akan muncul perintah untuk mengakhiri penghapusan, sebelum kita menekan ctrl+z maka karakter yang kita tulis dianggap sebagai perintah hapus file. Jika kita tekan ctrl+z maka proses penghapusan berakhir diikuti dengan berakhirnya program.
160
6.5 Kesimpulan 1. Bahasa C memilki berbagai macam library yang harus dimasukan dalam pengcodingan. 2. Program dari bahasa C dibentuk dari kumpulan fungsi, mulai dari fungsi utama dengan nama main(), fungsi-fungsi pustaka standar, dan fungsifungsi yang dibuat sendiri oleh pemrogram. 3. Jika ingin membuat source code maka kita harus memperhatikan deklarasi pendiskripsian suatu variable. 4. Fungsi tanpa parameter merupakan data input yang penulisan argumennya menggunakan void 5. Fungsi dengan parameter merupakan data input yang penulisan argumennya menggunakan suatu variabel dengan berbagai macam tipe 6. Fungsi
return
value
merupakan
fungsi
yang
memiliki
nilai
kembalian/return value, fungsi dengan return value dapat bertipe int, float, char, double, dan lain-lain 7. Perbedaan fungsi dengan dan tanpa parameter terletak pada pendeklarasian variable inputnya. 8. Array merupakan koleksi data dengan setiap elemen data menggunakan nama yang sama dan masing-masing elemen data bertipe sama. Array terdiri dari array satu dimensi, array multidimensi dan array string. 9. Array 1 dimensi adalah koleksi data dengan banyak dimensi 1 sehingga banyak elemen sama dengan banyak yang tertulis didalam dimensi[..]. 10. Array multidimensi merupakan array yang memiliki dimensi lebih dari satu. Array multidimensi (sering disebut matrix), dapat direpresentasikan sebagai sebuah tabel yang memiliki baris dan kolom. 11. Array string adalah array dari tipe data char. Sehingga untuk membuat array string, maka digunakan array bertipe char 2 dimensi.
161
12. Struktur merupakan sekumpulan variable yang mungkin terdiri dari beberapa tipe data berbeda dan dikelompokan dalam satu nama untuk kemudian diakses oleh program. 13. Operasi file adalah sumber atau tujuan dari data yang dihubungkan dengan disk dan biasanya digunakan untuk mengolah file ataupun folder. Pada operasi file kerja yang dapat dilakukan adalah menulis file, membaca file ,menghapus file, dan mengedit file serta menghapus file.
.