BAB V BAHASA C I
5.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). Bahasa C pertama kali digunakan di Computer Digital Equipment Corporation PDP-11 dengan sistem operasi UNIX. Hingga saat ini, hampir semua perguruan tinggi di dunia menjadikan bahasa C sebagai salah satu matakuliah wajib. Selain itu, banyak bahasa pemrograman populer seperti PHP dan Java menggunakan sintaks dasar yang mirip bahasa C. Oleh karena itu, kita juga sangat perlu mempelajarinya. 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. Selain itu bahasa C memiliki beberapa kekurangan seperti banyak operator dan fleksibilitas penulisan program kadang membingungkan pemakai, bagi pemula pada umumnya akan kesulitan menggunakan pointer, kekuatan sistem lemah, dan keamanan sistem tidak aman. 5.1.1 Algoritma dan Flowchart 1. Algoritma Algoritma adalah langkah-langkah yang logis dan sistematis untuk menyelesaikan suatu masalah. Dalam pemrograman terdapat berbagai macam algoritma untuk mengolah data. Misalnya, algoritma mengurutkan data, mencari data, geometri, menggambar
69
70
grafik, perhitungan matematika, pengolahan data paralel, dan lainlain. 2. Flowchart Flowchart adalah suatu struktur yang menggambarkan proses algoritma. Flowchart menolong analis dan programmer untuk memecahkan masalah kedalam segmen-segmen yang lebih kecil dan menolong dalam menganalisis alternatif-alternatif lain dalam pengoperasian. System flowchart adalah urutan proses dalam system dengan menunjukkan alat media input, output serta jenis media penyimpanan dalam proses pengolahan data. Tabel 5.1 Simbol dalam Flowchart
71
5.1.2 Variabel Variabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai tertentu di dalam proses program. Berbeda dengan konstanta yang nilainya selalu tetap, nilai dari suatu variable bisa diubah-ubah sesuai kebutuhan. Pengenal harus diawali dengan huruf (A. . Z, a. . z) atau karakter garis bawah ( _ ). Selanjutnya dapat berupa huruf, digit (0 . . 9) atau karakter garis bawah atau tanda dollar ($). Panjang pengenal boleh lebih dari 31 karakter, tetapi hanya 31 karakter pertama yang akan dianggap berarti. Pengenal tidak boleh menggunakan nama yang tergolong sebagai kata-kata cadangan (reserved words) seperti int, if, while dan sebagainya. Variabel yang akan digunakan haruslah didefinisikan terlebih dahulu. Bentuk umum penulisan variabel adalah : Tipe daftar-variabel; Pada pendeklarasian varibel, daftar-variabel dapat berupa sebuah variabel atau beberapa variabel yang dipisahkan dengan koma. Contoh: int var_bulatl; float var_pecahanl, var_pecahan2;
5.1.3 Fungsi Input dan Output 1. Input a. scanf() Fungsi pustaka scanf() digunakan untuk menginput data berupa data numerik, karakter dan string secara terformat. Hal-hal yang perlu diperhatikan dalam pemakaian fungsi scanf() adalah sebagai berikut.
Fungsi scanf() memakai penentu format
72
Fungsi scanf() memberi pergantian baris secara otomatis
Variabelnya harus menggunakan operator alamat (&)
Bentuk umumnya adalah printf(“kata yang akan dicetak dan simbol-simbol format”, nama_variabel_untuk_simbol_format_1, nama_variabel_untuk_simbol_format_2, ...);
b. Kode Penentu Format Format data adalah suatu kombinasi tanda – tanda khusus berupa karakter yang dipakai untuk mengatur bentuk data tampilan. Format data dipakai disesuaikan dengan jenis dan tampilan. Beberapa kode penentu format data yang ada adalah sebagai berikut. Tabel 5.2 Macam-macam format data
Format Data
Bentuk Tampilan Data
%c
Karakter tunggal (single character )
%d
Bilangan bulat desimal (decimal integer)
%e
Bilangan bernotasi ilmiah
%f
Bilangan berjenis pecahan bertitik (floating point number)
%g
Pilihan tampilan yang terpendek di antara bentuk %e atau %f
%i
Bilangan bulat desimal ( sama dengan %d )
%n
Digunakan
untuk
menyimpan
banyak
karakter yang ditampilkan oleh perintah printf() ke dalam suatu petunjuk jenis integer %o
Notasi bilangan oktal
73
%p
Tampilan pointer
%s
Tampilan deretan karakter (string)
%u
Bilangan desimal tak tertanda (unsigned)
%x
Notasi bilangan hexadesimal
%%
Tampilan tanda %
c. getch() dan getche() Fungsi getch() dan getche() digunakan untuk membaca data karakter. Jika menggunakan fungsi getch() karakter yang dimasukkan tidak akan ditampilkan pada layar, sering digunakan sebagai inputan password. Sedangkan pada getche() karakter yang dimasukkan akan ditampilkan pada layar. Bentuk umumnya adalah :
char c = getch();
char s[] = gets();
2. Output a. Printf(), puts() dan putchar() Menggunakan fungsi printf(), puts(), dan putchar(), akan lebih ditekankan pada penggunaan printf(). Bentuk umumnya adalah :
printf(“kata yang akan dicetak dan simbol-simbol format”, nama_variabel_untuk_simbol_format_1, nama_variabel_untuk_simbol_format_2, ...);
puts(‘karakter tunggal’); dalam bahasa C, karakter tunggal diapit tanda petik tunggal, string diapit tanda petik ganda.
puts(“string/kumpulan karakter”);
74
5.1.4 Percabangan Percabangan atau penyeleksian kondisi adalah suatu proses untuk melakukan suatu perintah pada kondisi yang ditentukan. Jika kondisinya terpenuhi, maka akan melakukan suatu proses, jika tidak maka akan melakukan proses lain. Flowchartnya adalah
Gambar 5.1 Flowchart percabangan
Percabangan terdiri dari if, if else, switch case, dan if bersarang. 1. If Struktur if dibentuk dari pernyataan if dan sering digunakan untuk menyeleksi suatu kondisi tunggal. Bila proses yang diseleksi terpenuhi atau bernilai benar, maka pernyataan yang ada di dalam blok if akan diproses dan dikerjakan. 2. If Else Dalam struktur kondisi if.....else minimal terdapat dua pernyataan. Jika kondisi yang diperiksa bernilai benar atau terpenuhi maka pernyataan pertama yang dilaksanakan dan jika kondisi yang diperiksa bernilai salah maka pernyataan yang kedua yang dilaksanakan.
75
3. Switch Case Struktur
kondisi
switch....case....default
digunakan
untuk
penyeleksian kondisi dengan kemungkinan yang terjadi cukup banyak. Struktur ini akan melaksanakan salah satu dari beberapa pernyataan ‘case’ tergantung nilai kondisi yang ada di dalam switch. Selanjutnya proses diteruskan hingga ditemukan pernyataan ‘break’. Jika tidak ada nilai pada case yang sesuai dengan nilai kondisi, maka proses akan diteruskan kepada pernyataan yang ada di bawah ‘default’. 5.1.5 Perulangan Ada kalanya kita membutuhkan suatu bagian program diulangulang sebanyak sekian kali. Untuk melakukannya kita bisa melakukan perulangan atau loop dengan for, while, dan do while, tidak dengan menuliskan perintah yang sama berulang-ulang. 1. For Struktur perulangan for biasa digunakan untuk mengulang suatu proses yang telah diketahui jumlah perulangannya. Dari segi penulisannya, struktur perulangan for tampaknya lebih efisien karena susunannya lebih simpel dan sederhana. 2. While Perulangan WHILE banyak digunakan pada program yang terstruktur.
Perulangan
ini
banyak
digunakan
bila
jumlah
perulangannya belum diketahui. Proses perulangan akan terus berlanjut selama kondisinya bernilai benar (true) dan akan berhenti bila kondisinya bernilai salah. 3. Do While Pada proses perulangan dengan while, seleksi berada di while yang letaknya di atas sementara pada perulangan do....while, seleksi while berada di bawah batas perulangan. Dengan menggunakan
76
struktur do…while sekurang-kurangnya akan terjadi satu kali perulangan.
5.1.6 Pointer Semua variabel yang sudah dideklarasikan akan diberikan suatu tempat di memori untuk menyimpan data atau nilai. Tempat-tempat di memori memiliki alamat. Variabel yang dideklarasi akan diberikan sebuah alamat di memori. Pointer merupakan variabel yang menyimpan alamat dari variabel lain, sehingga variabel pointer menunjuk tempat yang sama dengan variabel yang ditunjuknya. Karena menunjuk tempat yang sama, variabel pointer bisa mengambil nilai dari variabel yang ditunjuknya. 5.2 Tujuan 1. Praktikan dapat menerapkan konsep algoritma, flowchart kedalam Bahasa C. 2. Praktikan dapat menjelaskan konsep library dalam Bahasa C. 3. Praktikan dapat menjelaskan tipe data, format data, dan struktur dari Bahasa C. 4. Praktikan dapat menjelaskan dan menerapkan dasar input output dalam Bahasa C. 5. Praktikan
dapatmengerti
dan
mengimplementasikan
konsep
penyeleksian kondisi percabangan dan perulangan dalam Bahasa C.
77
5.3 Langkah Kerja 5.3.1 Mencetak karakter ke layar konsol Untuk menampilkan karakter pada layar konsol kita gunakan fungsi printf 1. Ketikkan #include <stdio.h> tekan enter. 2. Ketikkan #include
tekan enter. 3. Ketik int main(){ sebagai fungsi utama. 4. Ketikkan printf(“kata yang ingin ditampilkan\n”);. 5. Ketikkan getch(); 6. Compile dengan menekan tombol F9. 7. Run dengan tekan tombol F10. Contoh sebagai berikut: #include <stdio.h> #include Int main(){ printf(“Kata yang ingin ditampilkan \n”); getch(); } Setiap program dari bahasa c selalu didahului dengan include library. Dilanjutan dengan int main(){ untuk memulai program. Untuk menampilkan karakter pada layar konsol kita tinggal mengetikkan karater yang diinginan pada baris printf seperti gambar diatas. Contoh penggunaannya:
Gambar 5.2 Perintah printf
78
Dengan penulisan kode yang benar, maka perintah seperti gambar diatas pasti dapat dirun dengan lancar. Tidak lupa setiap perintah diakhiri dengan titik koma.
5.3.2 Deklarasi dan Inisialisasi Variabel 1. Ketikkan #include <stdio.h> tekan enter. 2. Ketikkan #include tekan enter. 3. Ketik int main(){ sebagai fungsi utama. 4. Ketik int x;. 5. Dengan perintah deklarasi telah dilakukan. 6. Untuk melakukan inisialisasi dengan cara mengetik x=3;. 7. Ketik getch();. 8. Compile dengan menekan tombol F9. 9. Run dengan menekan tombol F10. #include <stdio.h> #include Int main(){ Int x; X=3; Getch(); } Cara mendeklarasikan suatu variabel adalah dengan mengetik int variabel; seperti contoh diatas. Untuk inisialisasi atau pemberian nilai pada variabel, bisa dengan variabel=nilai;. Contoh penggunaanya:
79
Gambar 5.3 Perintah deklarasi dan inisialisasi
Dengan mengetik int x; kita sudah mendeklarasikan variabel x, dan dengan mengeti x=3, kita sudah memberi nilai variabel x yaitu 3.
5.3.3 Mengambil input pengguna 1. Untuk mengambil Input Pengguna menggunakan perintah scanf (); 2. Misal anda telah mendeklarasikan x sebagai variabel, maka anda dapat memasukkan nilai x dengan input dari pengguna. 3. Sebagai contoh : Int main (){ Int x; Scanf(“%d”, &x); Getch(); } Didalam scanf terdapat perintah %d maksudnya adalah data yang dimasukkan merupakan bilangan desimal dan int merupakan bilangan bulat. &x menunujukkan nilai yang diinput akan diinisialisasikan ke variabel x. Contoh penggunaannya
Gambar 5.4 Perintah mengambil input pengguna
80
Kita menambahkan printf agar hasil dapat terlihat, sebelum menulis program selalu dahului dengan include library dan diakhiri dengan titi koma pada setiap perintah. Perintah diatas untuk membuat variabel x dan memberi nilai pada variabel x dengan cara menginput ketika program dirun.
5.3.4 Percabangan Dalam bahasa C percabangan menggunakan if, else if, switch case, dan if bersarang. Untuk setiap percabangan memiliki ciri-ciri tersendiri, lebih jelasnya dapat dilihat pada penjelasan berikut: 1. If Seperti penulisan fungsi pada umumnya, didahului dengan menginclude library seperti yang sudah dijelaskan sebelumnya. Diikuti int main(){program}. Flowchart if sebagai berikut:
Gambar 5.5 Flowchart fungsi if
81
Data akan dideteksi apakah akan masuk ke kondisi 1 atau 2, apabila cocok pada kondisi 1 atau 2, maka akan muncul hasil sesuai dengan hasil 1 atau 2. Pernulisan inti program if yaitu:
If ( kondisi 1 ) { Apabila kondisi benar maka program akan menjalankan perintah yang ada disini } Apabila kondisi sesuai atau benar, maka program akan dijalankan. Contoh penggunaan if :
Gambar 5.6 Penggunaan fungsi if
Pada gambar diatas, apabila kita input data <165 maka perintah pada if pertama akan dijalankan. Jika input>165, maka perintah dari if kedua yang dijalankan. 2. If else If else dan else biasanya mengikuti perintah if artinya jika anda menginkan 3 kondisi sekaligus untuk dijalankan dalam sebuah program.
82
Gambar 5.7 Flowchart fungsi if else
Pada flowchart diatas, setelah data masuk kondisi, apabila benar maka perintah untuk kondisi benar akan dijalankan. Apabila kondisi salah, maka akan dijalankan perintah untuk kondisi salah. Contoh penulisan untuk kodenya sebagai berikut: If (kondisi 1){ Jika kondisi 1 benar , maka akan dijalankan} Else if (kondisi 2){ Jika kondisi 1 salah maka, program akan mengecek kondisi 2 dan jika benar maka akan dieksekusi} Else {jika kondisi 1 dan kondisi 2 salah maka program akan langsung di eksekusi kode yang ada disini}.
83
Contoh penulisan penggunaan kodenya:
Gambar 5.8 Penggunaan fungsi if else
Apabila kita input data <50, maka perintah untuk kondisi 1 dijalankan. Apabila input antara 50-60, maka perintah untuk kondisi 2 dijalankan, dan apabila input bukan keduanya, maka perintah ketiga dijalankan. 3. If bersarang Di dalam if bisa mengandung if lagi, sehingga terlihat seperti bersarang. Flowchartnya:
Gambar 5.9 Flowchart fungsi if bersarang
84
Seperti tergambar dari flowchart diatas, data akan masuk dulu ke kondisi 1, jika benar, data akan diproses lagi, apakah masuk ke kondisi 1.1 ataukah kondisi 1.2. jika masuk ke kondisi 1.1 maka perintah 1.1 akan dijalankan, jika masuk ke kondisi 1.2, maka perintah 1.2 yang akan dijalankan. Contoh penulisan kodenya: If(jenis kelamin L){ If(usia>18){ Printf(“sudah boleh nikah”); } Else{ Printf(“tidak boleh nikah”); } Contoh penggunaan kodenya:
Gambar 5.10 Penggunaan fungsi if bersarang
85
Pada gambar diatas, dapat dilihat apabila kita input jenis kelamin L atau P, data akan diproses lagi ketika kita menginput umur apakah lebih dari 18 atau kurang. 4. Swicth Case Struktur
kondisi
switch....case....default
digunakan
untuk
penyeleksian kondisi dengan kemungkinan yang terjadi cukup banyak. Struktur ini akan melaksanakan salah satu dari beberapa pernyataan ‘case’ tergantung nilai kondisi yang ada di dalam switch. Selanjutnya proses diteruskan hingga ditemukan pernyataan ‘break’. Jika tidak ada nilai pada case yang sesuai dengan nilai kondisi, maka proses akan diteruskan kepada pernyataan yang ada di bawah ‘default’.
Gambar 5.11 Flowchart fungsi Switch Case
Data yang diinput, akan dideteksi apakah akan cocok pada case 1, case 2, dan case 3, apabila tidak ada yang cocok akan masuk pada perintah default untuk mengeksekusi perintah yang salah.
86
Contoh penulisan kodenya: Switch(variabel) { Case 1: //perintah jika yang diinput variabel==1 Break; Case 2: //perintah jika yang diinput variabel==2 Break; Case 3: //perintah jika yang diinput variabel==3 Break; Case n: //perintah jika yang diinput variabel==n Break; Default: //perintah jika data yang diinput tidak sessuai dengan variabel Break; Pada penulisan case, diawali dengan serial(variabel){, setiap perintah case selalu diakhiri dengan bereak, seperti biasa setiap perintah diakhiri dengan titik koma. Contoh penggunaan kodenya:
Gambar 5.11 Flowchart fungsi Switch Case
Pada contoh penggunaan swicth case diatas, terdapat 4 piihan case, yaitu 1, 2, 3, dan 4. Apabila pengguna menginput data selain itu, maka data akan masuk pada perintah default.
87
5.3.5 Perulangan Dalam bahasa C, Perulangan atau loop menggunakan fungsi while , for dan do while. 1. For Struktur perulangan for biasa digunakan untuk mengulang suatu proses yang telah diketahui jumlah perulangannya. Dari segi penulisannya, struktur perulangan for tampaknya lebih efisien karena susunannya lebih simpel dan sederhana. Flowchartnya:
Gambar 5.13 Flowchart for
Untuk perintah for, data akan melalui inisialisasi. Bila cocok data akan masuk ke kondisi, jika benar perintah kondisi benar dijalankan dan akan terus diulangi selagi kondisinya benar. Bentuk umum penulisan kodenya: for ( inisialisasi ; kondis; finalisasi){ Program akan dijalankan jika kondisi benar}
88
Contoh penggunaannya:
Gambar 5.14 Penggunaan for
Seperti pada gambar diatas, perintah for akan diulang terus jika inisialisasi< variabel dan hasil perintah akan bertambah satu demi satu. 2. While Untuk melakukan perintah loop while maka praktikan mengetik while (){} dimana () menunjukkan kondisi untuk menjalankan program yang ada didalam kurung kurawal {}. Selama kondisi benar, maka program akan terus dijalankan. Flowchatnya:
Gambar 5.15 Flowchart While
89
Nampak pada flowchart diatas, apabila kondisi benar, maka perintah akan terus diulang. Contoh penulisan kodenya: while (kondisi) { //Perintah yang dijalankan selama kondisi BENAR ... ... } Contoh penggunaan kodenya:
Gambar 5.16 Penggunaan While
Program diatas adalah program perulangan dengan while dimana selagi kondisi benar maka program akan terus diulang. Begitu pula apabila program tersebut dirun dan kita input berapa kali perulangan yang diinginkan, maka perintah akan diulang sesuai dengan input pengulangan. 3. Do While Pada proses perulangan dengan while, seleksi berada di while yang letaknya di atas sementara pada perulangan do....while, seleksi
90
while berada di bawah batas perulangan. Dengan menggunakan struktur do…while sekurang-kurangnya akan terjadi satu kali perulangan. Flowchartnya adalah sebagai berikut.
Gambar 5.17 Flowchart Do While
Dari flowchart diatas dapat diketahui perintah akan dijalanan terlebih dahulu, baru jika kondisi benar, maka perintah akan diulang. Contoh penulisannya: Do
{
Perintah akan dijalankan sekali dan jika kondisi benar maka akan dijalankan lagi} While (kondisi);
91
Contoh penggunaanya:
Gambar 5.18 Penggunaan Do While
Dari gambar diatas, berapapun jumlah yang kita input, program akan tetap dijalankan sekali di awal, jika kondisinya benar baru mengalami perulangan.
5.3.6 Pointer Pointer adalah sebuah variabel yang menyimpan alamat variabel. Untuk membuatnya dapat dilakukan langkah-langkah: 1. Includ library yang sesuai. 2. Ketik int main(){ untu memulai program. 3. Ketik int variabel; untuk membuat variabel. 4. Ketik int *alamat_variabel; untuk variabel yang menyimpan alamat variabel. 5. Beri nilai variabel dengan variabel=nilai;. 6. Ketik alamat_variabel=&variabel;. 7. Compile dengan menekan F9. 8. Run dengan menekan F10.
92
Contoh penulisannya: Int variabel; Int *alamat; variabel=4; alamat=&variabel
Contoh penggunaanya:
Gambar 5.19 Penggunaan Pointer
Diawali dengan deklarasi variabel, deklarasi alamat variabel, inisialisasi variabel dan alamat, serta printf untuk menampilkan hasil.
5.4 Analisa dan Pembahasan 5.4.1 Mencetak karakter ke layar konsol Mencetak karakter pada layar konsol dapat dilakukan dengan mudah apabila kita menulisan programnya dengan benar. Seperti contoh program pada gambar dibawah:
Gambar 5.20 Mencetak karakter ke layar
93
Pada gambar diatas, diawali dengan #include, include diatas adalah perintah untuk menginclude library yang ingin kita gunakan untuk menyelesaikan suatu masalah atau program. Stdio.h dan Conio.h adalah salah satu dari nama-nama library yang terdapat dalam Dev-C++. Int main(){ digunakan sebagai fungsi utama yang nantinya didalamnya berisi fungsi-fungsi tertentu. Printf adalah fungsi untuk perintah menampilkan karakter pada konsol. Dalam fungsi printf diikuti (“kata yang diketik”) dan setiap fungsi diakhiri dengan titik koma (;). Getch berfungsi agar saat program dirun ada pause sebentar. Apabila program tersebut dicompile dan dirun, maka akan muncul:
Gambar 5.21 Hasil mencetak karakter ke layar
5.4.2 Deklarasi dan Inisialisasi Variabel Setelah melakukan langkah kerja sesuai dengan yang di atas, mendeklarasikan dan menginisialisasi variabel dapat dilakukan dengan mudah. Dengan menuliskan program seperti:
Gambar 5.22 Deklarasi dan Inisialisasi
Apabila dicompile dan dirun akan menampilkan hasil:
94
Gambar 5.23 Hasil deklarasi dan Inisialisasi
Pada gambar diatas, diawali dengan #include, include diatas adalah perintah untuk menginclude library yang ingin kita gunakan untuk menyelesaikan suatu masalah atau program. Stdio.h dan Conio.h adalah salah satu dari nama-nama library yang terdapat dalam Dev-C++. Int main(){ digunakan sebagai fungsi utama yang nantinya didalamnya berisi fungsi-fungsi tertentu. Int x; adalah untuk mendeklarasikan variabel x. Pada titik ini nilai x masih bervariasi. Untuk memberi nilai x atau inisialisasi dapat dilakukan dengan cara x=3;. Maka otomatis nilai x=3. Saat dirun tidak menampilkan karakter apapun karena tidak ada fungsi yang berfungsi untuk menampilkan karakter.
Gambar 5.24 Deklarasi dan Inisialisasi dengan printf
Sama seperti perintah diatas, namun setelah ditambah menu printf maka nilai x dapat ditampilkan pada konsol. %d pada isi fungsi printf diatas menandakan bahwa tipe data yang digunakan adalah bilangan bulat. Hasilnya seperi dibawah ini:
Gambar 5.25 Hasil deklarasi dan Inisialisasi dengan printf
95
5.4.3 Mengambil Input Pengguna Mengambil input pengguna atau memasukkan input data namun dilakukan setelah program dirun dapat dilakukan dengan menulis program sesuai pada langkah kerja. Atau lebih jelasnya sebagai berikut:
Gambar 5.26 Mengambil input pengguna
Dengan menuliskan fungsi-fungsi seperti yang terdapat pada gambar, kita dapat mengambil input pengguna. Pada gambar diatas, diawali dengan #include, include diatas adalah perintah untuk menginclude library yang ingin kita gunakan untuk menyelesaikan suatu masalah atau program. Stdio.h dan Conio.h adalah salah satu dari nama-nama library yang terdapat dalam Dev-C++. Int main(){ digunakan sebagai fungsi utama yang nantinya didalamnya berisi fungsi-fungsi tertentu. Int x; adalah perintah untuk membuat variabel x yang nilainya dapat kita input sesuka kita. printf("masukkan nilai x: "); ketika dirun akan muncul perintah unttuk menginput berapa nilai x seperti pada gambar hitam diatas. Scanf untuk menentukan tipe data untuk variabel, dan &x adalah nama variabelnya. Jika dirun dan kita menginputkan angka, misal angka 2,dilanjutkan dengan menekan enter, maka hasilnya:
Gambar 5.27 Mencetak pengambilan input pengguna
96
Setelah kita tekan enter, akan muncul karakter dari printf("nilai x adalah: %d", x); yang akan menampilkan kembali data yang kita input sebelumnya.
5.4.4 Percabangan Seperti telah dijelaskan di depan, percabangan dibagi menjadi if, if else, if bersarang dan switch case. 1. If Membuat program dengan perintah if dapat dilakukan sesuai dengan langkah kerja. Sebagai contoh programnya:
Gambar 5.28 Percabangan if
Pada gambar diatas, diawali dengan #include, include diatas adalah perintah untuk menginclude library yang ingin kita gunakan untuk menyelesaikan suatu masalah atau program. Stdio.h dan Conio.h adalah salah satu dari nama-nama library yang terdapat dalam Dev-C++. Int main(){ digunakan sebagai fungsi utama yang nantinya didalamnya berisi fungsi-fungsi tertentu. Setelah itu kita ketik int tinggi; untuk membuat deklarasi tinggi. Dilanjutkan dengan printf("masukkan tinggi badanmu: "); untuk menginput tinggi badan seperti terlihat pada saat dirun. scanf("%d", &tinggi); untuk tipe data berupa bilangan bulat dan membuat variabel tinggi.
97
Apabila dicompile dan dirun maka akan muncul:
Gambar 5.29 Percobaan percabangan if tanpa input
Apabila kita inputkan data dan menekan enter, akan nampak seperti dibawah:
Gambar 5.30 Percobaan percabangan if dengan input I
Apabila menginput data kurang dari 165, maka akan nampak hasil
seperti
pada
gambar.
Hal
ini
sesuai
dengan
if(tinggi<165){printf("anda kurang tinggi.\n");}. Dimana jika data yang diinput kurang dari 165 maka konsol akan menampilkan teks “anda kurang tinggi”.
Gambar 5.31 Percobaan percabangan if dengan input II
Apabila kita menginput data lebih dari 165, maka akan nampak hasil
seperti
pada
gambar.
Hal
ini
sesuai
dengan
if(tinggi>165){printf("anda termasuk tinggi.\n");}. Dimana jika data yang diinput lebih dari 165 maka konsol akan menampilkan teks “anda termasuk tinggi”.
98
2. If Else Membuat program dengan perintah if else adalah membuat program dengan pengkodisian lebih dari 2. Dapat dilihat contoh dari program if else:
Gambar 5.32 Percabangan if else
Pada gambar diatas, diawali dengan #include, include diatas adalah perintah untuk menginclude library yang ingin kita gunakan untuk menyelesaikan suatu masalah atau program. Stdio.h dan Conio.h adalah salah satu dari nama-nama library yang terdapat dalam Dev-C++. Int main(){ digunakan sebagai fungsi utama yang nantinya didalamnya berisi fungsi-fungsi tertentu. Int berat; untuk mendeklarasi berat. Dilanjutkan dengan printf("berapa kilo berat badan anda?"); untuk menginput data berat badan seperti nampak pada gambar. scanf("%d", &berat); untuk mengatur bahwa data yang diinput berupa bilangan bulat untuk variabel berat. Apabila program diatas dicompile dan dirun, maka akan nampak seperti dibawah:
Gambar 5.33 Run percabangan if else
99
Selanjutnya bila kita menginputkan data dan menekan enter akan tampak seperti:
Gambar 5.34 Run dan input percabangan if else
Apabila kita menginput data kurang dari 50, maka akan nampak hasil
seperti
pada
gambar.
Hal
ini
sesuai
dengan
if(berat<50){printf("anda orang yang kurus.\n");}. Dimana apabila kita menginput data kurang dari 50, maka konsol akan menampilkan teks seperti pada gambar.
Gambar 5.35 Run percabangan if else dengan input I
Apabila kita menginput data antara 50-60, maka akan nampak hasil
seperti
pada
gambar.
Hal
ini
sesuai
dengan
elseif(berat<60){printf("berat badan anda ideal.\n");}. Karena data yang diinput tidak memenuhi pada kondisi 1, dan sesuai pada kondisi 2, program dijalankan sesuai pernyataan kedua dan pada konsol nampak seperti gambar diatas.
Gambar 5.36 Run percabangan if else dengan input II
100
Apabila kita menginput data selain kondisi 1 dan kondisi 2, maka akan nampak hasil seperti pada gambar. Hal ini sesuai dengan else{printf("anda termasuk orang gendut.\n");}. Karena data yang diinput tidak memenuhi pada kondisi 1, dan kondisi 2, program dijalankan sesuai pernyataan kedua dan pada konsol nampak seperti gambar diatas. 3. If Bersarang If bersarang adalah perintah untuk program yang dalam pembuatannya menginginkan dalam satu kondisi akan masuk ke dalam pengkondisian lagi. Dapat dilihat contoh programnya:
Gambar 5.37 Percabangan if bersarang
Pada gambar diatas, diawali dengan #include, include diatas adalah perintah untuk menginclude library yang ingin kita gunakan untuk menyelesaikan suatu masalah atau program. Stdio.h dan Conio.h adalah salah satu dari nama-nama library yang terdapat
101
dalam Dev-C++. Int main(){ digunakan sebagai fungsi utama yang nantinya didalamnya berisi fungsi-fungsi tertentu. Int umur; untuk mendeklarasikan variabel umur. Char jenis_kelamin; untuk variabel namun berupa karakter. printf("Masukkan umur : "); untuk mencetak karakter pada layar konsol dan sekaligus input umur. scanf("%d", &umur); untuk menandakan bahwa ada variabel umur dengan tipe data bilangan bulat. printf("Masukkan jenis kelamin (L/P) : "); untuk menampilkan karakter sekaligus input jenis kelamin. scanf(" %c", &jenis_kelamin);
untuk
menandakan
bahwa
ada
variabel
jenis_kelamin dengan tipe data karakter. if (jenis_kelamin == 'L' || jenis_kelamin == 'l'){ adalah pengkondisian bila input jenis_kelamin berupa L atau l akan dilanjutkan perintah if (umur >= 19){ yaitu apabila umur yang diinput lebih besar sama dengan 19 pada layar konsol akan muncul tampilan sesuai perintah printf("Menurut UU anda sudah boleh menikah.\n");. Apabila kurang dari 19 akan muncul tampilan sesual perintah else {printf("Menurut UU anda masih belum boleh menikah.\n");. Begitu pula untuk perintah if else, prinsipnya sama dengan yang telah dijelaskan tadi. Berbeda dengan perintah else {printf("Kami tidak mengenali jenis kelamin yang anda masukkan\n");} dimana jika data yang diinput selain L atau P akan muncul tampilan seperti perintah printf tersebut. Apabila program dicompile dan dirun akan nampak tampilan seperti:
Gambar 5.38 Run percabangan if bersarang
Selanjutnya apabila kita input data L atau P dengan umur yang kita inginkan, akan muncul pada layar konsol. Sebagai contoh kita input L dan umur 23.
102
Gambar 5.39 Run percabangan if bersarang dengan input
Tampilan diatas sesuai dengan perintah yang terdapat pada program, yaitu apabila jenis kelamin L dan usia >=19 maka menurut UU sudah boleh menikah. 4. Switch Case Switch case adalah perintah agar program berjalan sesuai input data berupa angka dari 1, 2, 3, ...n sesuai jumlah case. Sebagai contoh dapat dilihat pada gambar dibawah.
Gambar 5.40 Percabangan Switch Case
Pada gambar diatas, diawali dengan #include, include diatas adalah perintah untuk menginclude library yang ingin kita gunakan
103
untuk menyelesaikan suatu masalah atau program. Stdio.h dan Conio.h adalah salah satu dari nama-nama library yang terdapat dalam Dev-C++. Int main(){ digunakan sebagai fungsi utama yang nantinya didalamnya berisi fungsi-fungsi tertentu. Int pilihan; untuk mendeklarasi pilihan. Dilanjutkan dengan printf("\"monggo mas, pilih nopo?\"\n");untuk menampilkan karakter pertanyaan pada konsol seperti pada gambar. printf("1. rames\n2. soto\n3. pecel\n4. gorengan\n"); untuk menampilkan pilihan yang tersedia pada konsol. printf("pilihan anda:"); untuk menginput pilihan kita. scanf("%d", &pilihan); untuk mengatur bahwa data yang diinput berupa bilangan bulat untuk variabel pilihan. Apabila program diatas dicompile dan dirun akan muncul tampilan:
Gambar 5.41 Run percabangan Switch Case
Selanjutnya apabila kita input data berupa angka akan nampak seperti:
Gambar 5.42 Run percabangan Switch Case dengan input
104
Apabila kita menginput data 2, maka akan nampak hasil seperti pada gambar. Hal ini sesuai dengan case2: printf ("pilih soto.\n");break; Karena data yang diinput 2, program dijalankan sesuai pernyataan kedua dan pada konsol nampak seperti gambar diatas. Begitu pula apabila kita input 1, maka akan muncul “pilih rames”, kalau input 3 akan muncul “pilih pecel”, kalau kita input 4 akan muncul “pilih gorengan”. 5. Perbedaaan Blok If dan else. Perbedaan mencolok antara if dan else adalah jika if didahului dengan kondisi, apabila kondisi benar maka perintah akan dihalankan. Sebagai contoh:
Gambar 5.43 Bentuk fungsi if
Sedangkan else adalah tindak lanjut dari if, apabila kondisi tidak cocok di bagian if maupun else if, maka perintah akan dieksekusi di perintah else. Contoh:
Gambar 5.44 Bentuk fungsi else
5.4.5 Perulangan 1. For Untuk membuat program perulangan dengan fungsi for dapat dilakuan dengan perintah seperti gambar dibawah:
105
Gambar 5.45 Perulangan For
Pada gambar diatas, diawali dengan #include, include diatas adalah perintah untuk menginclude library yang ingin kita gunakan untuk menyelesaikan suatu masalah atau program. Stdio.h dan Conio.h adalah salah satu dari nama-nama library yang terdapat dalam Dev-C++. Int main(){ digunakan sebagai fungsi utama yang nantinya didalamnya berisi fungsi-fungsi tertentu. Int n; untuk mendeklarasikan
variabel
n.
Char
nama[20]
untuk
proses
penginputan karakter nama maksimal 20 karakter. printf("siapa nama anda?"); untuk menginput nama yang ingin kita masukkan. scanf("%s", &nama); untuk menentukan bahwa tipe data yang digunakan untuk variabel nama adalah tipe bilangan string. printf("mau dipanggil berapa kali?"); untuk menginput data berupa angka untuk kali perulanagan. scanf("%d", &n); untuk menandakan bahwa tipe data yang dipakai untuk variabel n adalah tipe bilangan bulat. for (int i=0; i
106
Gambar 5.46 Run perulangan For
Selanjutnya apabila kita inputkan nama dan menekan enter, dilanjutan dengan menginput jumlah perulangan yang diinginkan, akan tampat seperti:
Gambar 5.47 Run perulangan For dengan input
Kita ketikkan karakter untuk mengisi nama kita dan berapa kali pengulangan yang kita inginkan, disini kita misalkan dengan nama jokowi dengan pengulangan 3 kali, maka nampak hasil seperti gambar. 2. While Perintah prulangan while yaitu perulangan yang dimana akan tetap diulang apabila kondisi benar. Contoh penulisan programnya:
Gambar 5.48 Perulangan While
107
Pada gambar diatas, diawali dengan #include, include diatas adalah perintah untuk menginclude library yang ingin kita gunakan untuk menyelesaikan suatu masalah atau program. Stdio.h dan Conio.h adalah salah satu dari nama-nama library yang terdapat dalam Dev-C++. Int main(){ digunakan sebagai fungsi utama yang nantinya didalamnya berisi fungsi-fungsi tertentu. Int n; untuk mendeklarasikan
variabel
n.
Char
nama[20]
untuk
proses
penginputan karakter nama maksimal 20 karakter. printf("siapa nama anda?"); untuk menginput nama yang ingin kita masukkan. scanf("%s", &nama); untuk menentukan bahwa tipe data yang digunakan untuk variabel nama adalah tipe bilangan string. printf("mau dipanggil berapa kali?"); untuk menginput data berupa angka untuk kali perulanagan. scanf("%d", &n); untuk menandakan bahwa tipe data yang dipakai untuk variabel n adalah tipe bilangan bulat. int i=0; untuk mendeklarasikan dan menginisialisasi bahwa ada variabel i yang bernilai 0. while (i
Gambar 5.49 Run perulangan While
Selanjutnya apabila kita inputan nama dan menekan enter, dilanjutkan jumlah perulangan yang kita inginkan, akan tampak seperti:
108
Gambar 5.50 Run perulangan While dengan input
Kita ketikkan karakter untuk mengisi nama kita dan berapa kali pengulangan yang kita inginkan, disini kita misalkan dengan nama susi dengan pengulangan 7 kali, maka nampak hasil seperti gambar. 3. Do While Perintah perulangan do while
adalah perintah perulangan
dimana akan dilakukan (do) selagi (while) dalam kondisi benar. Sebagai contoh programnya seperti gambar dibawah:
Gambar 5.51 Perulangan Do While
Pada gambar diatas, diawali dengan #include, include diatas adalah perintah untuk menginclude library yang ingin kita gunakan untuk menyelesaikan suatu masalah atau program. Stdio.h dan Conio.h adalah salah satu dari nama-nama library yang terdapat dalam Dev-C++. Int main(){ digunakan sebagai fungsi utama yang
109
nantinya didalamnya berisi fungsi-fungsi tertentu. Int n; untuk mendeklarasikan
variabel
n.
Char
nama[20]
untuk
proses
penginputan karakter nama maksimal 20 karakter. printf("siapa nama anda?"); untuk menginput nama yang ingin kita masukkan. scanf("%s", &nama); untuk menentukan bahwa tipe data yang digunakan untuk variabel nama adalah tipe bilangan string. printf("mau dipanggil berapa kali?"); untuk menginput data berupa angka untuk kali perulanagan. scanf("%d", &n); untuk menandakan bahwa tipe data yang dipakai untuk variabel n adalah tipe bilangan bulat. int i=0; untuk mendeklarasikan dan menginisialisasi bahwa ada variabel i yang bernilai 0. do {printf("%s\n", nama);i++;} untuk menjalankan
perintah
printf("%s\n",
nama);
dengan
cara
penambahan 1 pada i di setiap pengulangan segali while (i
Gambar 5.52 Run perulangan Do While
Selanjutnya apabila kita input nama kita dilanjutkan menekan enter, dan input berapa kali perulangan yang kita inginkan, akan muncul seperti:
Gambar 5.53 Run perulangan Do While dengan input
110
Kita ketikkan karakter untuk mengisi nama kita dan berapa kali pengulangan yang kita inginkan, disini kita misalkan dengan nama anggun dengan pengulangan 8 kali, maka nampak hasil seperti gambar. 4. Perbedaan Blok While dan Do While Perbedaan antara While dan Do while terdapat pada perintah eksekusi datanya. Dimana while hanya akan dieksekusi dan diulangi jika kondisi benar. Contoh:
Gambar 5.54 Blok while
Seperti gambar diatas, selagi i
Gambar 5.55 Blok Do while
Disitu nampak jelas perintah do akan dieksekusi terlebih dahulu, baru jika pada while masih bernilai benar, maka perintah akan diulang.
5.4.6 Pointer Seperti telah dijelaskan diawal, pointer adalah variabel yang menyimpan alamat variabel lain. Dengan mengiuti langkah kerja diatas dengan benar, perintah pointer dapat dijalankan. Sebagai contoh:
111
Gambar 5.56 Pointer
Pada gambar diatas, diawali dengan #include, include diatas adalah perintah untuk menginclude library yang ingin kita gunakan untuk menyelesaikan suatu masalah atau program. Stdio.h dan Conio.h adalah salah satu dari nama-nama library yang terdapat dalam Dev-C++. Int main(){ digunakan sebagai fungsi utama yang nantinya didalamnya berisi fungsi-fungsi tertentu. Int a; untuk membuat variabel a. Int*b; untuk membuat pointer b. a=2; untuk memberi nilai 2 pada variabel a. b=&a; untuk menyatakan bahwa pointer b menyimpan alamat variabel a. printf(“%d %x”,*b,b); untuk menandakan bahwa *b akan menampilkan nilai dari a yang berupa bilangan bulat, dan b akan menampilkan alamat a yang berupa data dengan tipe %x. Apabila program diatas dicompile dan dirun akan muncul:
Gambar 5.57 Run Pointer
Angka 2 disitu menunjukan nilai dari variabel a. sedangkan 23fea8 adalah sebuah alamat dari variabel a.
112
5.4.7 Aplikasi bahasa C Untuk pengaplikasian bahasa C, kelompok A2 mendapat tugas untuk membuat program luas lingarang. Langkah yang dilakukan yaitu: 1. Algoritma Algoritma dari luas lingkaran sebagai berikut: 1. Mulai 2. Input jari-jari 3. Jika jari-jari>0 akan berlanjut pada proses, jika tidak program tidak dilanjutkan. 4. Proses (L=pi*jari-jari^2) 5. Hasil 6. Selesai 2. Flowchart
Gambar 5.58 Flowchart luas lingkaran
Sesuai dengan flowchart diatas, data jari-jari yang masuk akan masuk ke kondisi, apabila jari-jari>0 akan berlanjut ke perintah atau
113
proses L=pi*jari-jari^2. Selanjutnya akan diperoleh hasil berupa luas. 3. Penulisan Kode
Gambar 5.59 Penulisan program luas lingkaran
Pada gambar diatas, diawali dengan #include, include diatas adalah perintah untuk menginclude library yang ingin kita gunakan untuk menyelesaikan suatu masalah atau program. Stdio.h dan Conio.h adalah salah satu dari nama-nama library yang terdapat dalam Dev-C++. Int main(){ digunakan sebagai fungsi utama yang nantinya didalamnya berisi fungsi-fungsi tertentu. Float r, pi, dan luas; untuk membuat variabel r, pi, dan luas yang berbentuk bilangan desimal.
Pi=3.14;
untuk
memberikan
nilai
pi
yaitu
3.14.
printf(“masukkan jari-jari=”); untuk menampilkan dilayar konsol dan input jari-jari. scanf("%f", &r); untuk menyatakan bahwa ada variabel r dengan bentuk bilangan deasimal. Luas=pi*r*r; adalah rumus luas lingkaran. If(r>0){ manandakan bahwa jika input jarijari>0 maka akan berlanjut ke Printf(“luas lingkaran: %f”, luas); untuk menampilkan luas lingkaran. Namun jika kurang dari 0 maka akan masuk ke fungsi else dan muncul tampilan seperti pada perintah printf("jari-jari yang anda masukkan salah"); Apabila dicompile dan dirun program akan tampil seperti:
114
Gambar 5.60 Run program luas lingkaran
Selanjutnya bila dilanjutkan dengan menginput jari-jari dan menekan enter, maka akan muncul hasil luas lingkarannya:
Gambar 5.61 Run program luas lingkaran dengan input
Sesuai dengan rumus, jadi apabila kita input jari-jari 10, maka luas lingkaran tersebut adalah 314,00. Jika kita input data<0 maka akan tampil:
Gambar 5.62 Run program luas lingkaran dengan input<0
115
5.4.8 Kesalahan yang Sering Terjadi Kesalahan yang sering dialami pengguna dalam menjalankan program bahasa C adalah: 1. Lupa memberikan titik koma (;) pada setiap akhir fungsi atau perintah. 2. Lupa memasukkan library pada awal program. 3. Include library yang tidak sesuai pada program. 4. Compile program dengan pilihan compile yang tidak support dengan pc. Misal data dicompile dengan 64 bit compiler padahal pc pengguna masih 32 bit. 5. Mengedit program lama dengan program baru namu tidak disave as atau dinamai ulang. Hal ini akan menyebabkan eror pada program.
116
5.5 Kesimpulan 1. Tipe data merupakan bagian yang penting karena tipe data mempengaruhi setiap intruksi yang akan dilakukan oleh computer. 2. Tipe data mempunyai 5 macam tipe data yaitu int, double, fload, char dan void. 3. Printf mempunyai fungsi untuk menampilkan suatu kata atau kalimat yang akan kita tampilkan dalam program yang akan dibuat. 4. Scanf memilii fungsi untuk menyatakan variabel dan bentuk bilangan variabel. 5. Setiap membuat program harus menginclude library yang cocok. 6. Pada awal program ketik int main(){ untuk mengawali program. 7. If Else adalah salah satu Kondisional “if...else...” yang disusun oleh kata if dan else serta digunakan untuk dua kondisi. Bila kondisi terpenuhi maka proses di dalam if akan di jalankan, bila tidak maka proses di dalam else yang dijalankan 8. Switch Case adalah Kondisional “switch...case…”yang digunakan untuk penyeleksian kondisi dengan kondisi yang sangat banyak. Struktur ini akan melakukan proses atau pernyataan pada saat pilihan (case) yang tepat, selanjutnya keluar dengan perintah break 9. For adalah salah satu dalam sintaks khusus. Sintaks khusus tersebut adalah sintaks pengulangan. Struktur perulangan for digunakan untuk perulangan yang telah diketahui atau ditentukan jumlah perulangannya. Dari segi penulisannya, perulangan for ini lebih efisien. 10. Kesalahan yang sering terjadi pada pemprograman bahasa C adalah: a. Lupa memberikan titik koma (;) pada setiap akhir fungsi atau perintah. b. Lupa memasukkan library pada awal program. c. Include library yang tidak sesuai pada program. d. Compile program dengan pilihan compile yang tidak support dengan pc. Misal data dicompile dengan 64 bit compiler padahal pc pengguna masih 32 bit. e. Mengedit program lama dengan program baru namu tidak disave as atau dinamai ulang. Hal ini akan menyebabkan eror pada program.