modul pemrograman terstruktur
Embed Size (px)
DESCRIPTION
Untuk Elektronika dan InstrumentasiTRANSCRIPT

MODUL PEMROGRAMAN TERSTRUKTUR
D3 ELEKTRONIKA DAN INSTRUMENTASI
SEKOLAH VOKASI
UNIVERSITAS GADJAH MADA
2012

1
BAB 1
ELEMEN PEMROGRAMAN BAHASA C
1. SEJARAH
Bahasa C merupakan perkembangan dari bahasa BCPL yang dikembangkan oleh Martin Richards
pada tahun 1967. Selanjutnya bahasa ini memberikan ide kepada Ken Thompson yang kemudian
mengembangkan bahasa yang disebut bahasa B pada tahun 1970. Perkembangan selanjutnya dari
bahasa B adalah bahasa C oleh Dennis Ricthie sekitar tahun 1970-an di Bell Telephone Laboratories Inc.
(sekarang adalah AT&T Bell Laboratories). Bahasa C pertama kali digunakan di computer Digital
Equipment Corporation PDP-11 yang menggunakan system operasi UNIX.
Meskipun C dibuat untuk memprogram sistem dan jaringan komputer namun bahasa ini juga
sering digunakan dalam mengembangkan software aplikasi. C juga banyak dipakai oleh berbagai jenis
platform sistem operasi dan arsitektur komputer, bahkan terdapat beberepa compiler yang sangat
populer telah tersedia. C secara luar biasa memengaruhi bahasa populer lainnya, terutama C++ yang
merupakan extensi dari C.
2. MENGENAL EDITOR BAHASA C
Editor bahasa c sebenarnya banyak. Antara lain netbeans, codeblocks, gcc, Borland c, Turbo c,
dan lain sebagainya. Namun pada praktikum kali ini kita menggunakan editor codeblocks.
Gambar 1. 1. Tampilan Editor Codeblocks

2
2.1. SEKILAS MENGENAI EDITOR CODE BLOCK C
Berikut ini merupakan beberapa bagian dari editor codeblocks C, antara lain:
Gambar 1.2. Tampilan Codeblocks
3. PENULISAN PROGRAM BAHASA C
Program bahasa c tidak mengenal aturan penulisan di kolom tertentu, jadi bisa dimulai dari
kolom manapun. Namun demikian, untuk mempermudah pembacaan program dan untuk keperluan
dokumentasi, sebaiknya penulisan bahasa c diatur sedemikian rupa sehingga mudah dan enak dibaca.
Gambar 3 merupakan contoh penulisan bahasa c yang baik. Sedangkan gambar 4 merupakan contoh
penulisan yang kurang baik.
#include <stdio.h> #include <stdlib.h> int main() { printf("Hello world!\n"); return 0; }
Gambar 1.3. Listing program pertama
Menu utama
EDITOR
PROJECT
LOGS

3
#include <stdio.h> #include <stdlib.h> int main() { printf("Hello world!\n"); return 0; }
Gambar 1.4. Listing program kedua
Gambar 3 dan gambar 4 bila dijalankan akan menghasilkan hasil yang sama berupa tulisan “hello
world!”. Namun dari segi penulisannya program pada gambar 3 tampaknya lebih mudah di baca dan
dipahami dibandingkan dengan program pada gambar 4.
4. LANGKAH-LANGKAH MENGGUNAKAN CODEBLOCKS
Berikut ini akan dijelaskan mengenai langkah-langkah menggunakan editor CodeBlocks:
a. Bukalah program codeblocks. Maka akan tampil tampilan seperti pada gambar 5.
Gambar 1.5. Tampilan pertama program codeblocks

4
b. Buatlah project dengan menekan tulisan “CREATE A NEW PROJECT”.
Gambar 1.6. Membuat project baru
Atau bisa juga dengan menekan menu utama FILENEWPROJECT.
Gambar 1.7. Membuat project baru bagian 2
c. Keluar window baru “new from template”. Pilihlah CONSOLE APPLICATION. Kemudian tekan
tombol Go.
Gambar 1.8. Memilih Project Console

5
d. Muncul window Console application. Klik tombol next.
Gambar 1.9. Console application
e. Pilih bahasa C untuk pemrograman. Kemudian klik tombol next.
Gambar 1.10. Pilih bahasa pemrograman

6
f. Beri nama project pada project title. Dalam program ini beri nama HelloWorld. Kemudian tekan
tombol next.
Gambar 1.11. Memasukkan nama project
g. Pilih compiler. Kemudian tekan tombol FINISH.
Gambar 1.12. Memilih compiler

7
h. Maka akan muncul tampilan berikut ini:
Gambar 1.13. Project pada program
i. Double klok pada main.c . kemudian tuliskan kode sebagai berikut:
Gambar 1.14. Program HelloWorld
j. Simpan project dengan menekan tombol
k. Langkah selanjutnya adalah compile program, build program dan menjalankan program. Untuk
mengkompile, tekan menu utama Build compile. Atau bisa dengan tombol cltr-shift-F9.
Gambar 1.15. Meng-compile
project

8
l. Build program dan menjalankan program dengan jalan menekan menu utama Buildbuild and
run. Bisa juga dengan menekan tombol . Atau dengan shortcut tombol F9.
Gambar 1.16. Build dan run program
m. Hasil program akan seperti pada gambar berikut.
Gambar 1.17. Hasil program
5. TUGAS
a. Buatlah program menuliskan nama dan nim kalian menggunakan bahasa c.
b. Buatlah program menuliskan paragraph pada gambar berikut ini dengan menggunakan bahasa c
Bahasa C merupakan perkembangan dari bahasa BCPL yang dikembangkan oleh Martin Richards pada
tahun 1967. Selanjutnya bahasa ini memberikan ide kepada Ken Thompson yang kemudian
mengembangkan bahasa yang disebut bahasa B pada tahun 1970. Perkembangan selanjutnya dari
bahasa B adalah bahasa C oleh Dennis Ricthie sekitar tahun 1970-an di Bell Telephone Laboratories Inc.
Gambar 1.18. Paragraph yang akan di buat program

9
BAB 2
STRUKTUR DASAR BAHASA C
Setiap program c dimulai dari fungsi yang disebut dengan main. Sebuah fungsi terdiri
dari kumpulan perintah yang dapat melakukan sesuatu. Fungsi main selalu dipanggil ketika
program pertama kali di jalankan, dari fungsi main, kita dapat memanggil fungsi lainnya. Untuk
mengakses fungsi standar yang datang dari compiler, kamu perlu memasukkan header dengan
menuliskan #include. Hal ini dapat secara efektif mengambil dari header dan menyalinnya ke
dalam program kamu.
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("Hello world!\n");
return 0;
}
Gambar 2.1. Bagian dari Program
1. TIPE DATA
Data merupakan suatu nilai yang bisa dinyatakan dalam bentuk konstanta atau variabel.
Konstanta menyatakan nilai yang tetap, sedangkan variabel menyatakan nilai yang dapat diubah-ubah
selama eksekusi berlangsung.
Tabel 2.1. Tipe data
No Tipe Data Ukuran Range (Jangkauan) Keterangan
1 unsigned char 8 bits 0 s/d 255 Karakter/string
2 Char 1 byte -128 s/d 127 Karakter/string
3 short int 16 bits -32.768 s/d 32.767 Integer/bilangan bulat
4 unsigned int 32 bits 0 s/d 4.294.967.295 Integer/bilangan bulat
header
Nama Fungsi main
Mengawali fungsi
Mengakhiri fungsi
Isi fungsi berupa statement

10
5 Int 2 byte -2.147.483.648 s/d 2.147.483.647 Integer/bilangan bulat
6 enum 16 bits -2147483.648 to 2.147.483.648
7 long 32 bits -2.147.483.648 s/d 2.147.483.647
8 unsigned long 32 bits 0 s/d 4.294.967.295
9 Float 4 byte -3.4E-38 s/d 3.4E+38 Float/bilangan pecahan
10 Double 5 byte - 1.7E-308 s/d 1.7+308 Pecahan presisi ganda
11 long double 80 bits 3.4 x 10-4932 to 3.4 x 10+4932 Pecahan presisi ganda
Untuk menampilkan hasil output dibutuhkan kode format, berikut adalah daftar kode format:
Tabel 2.2. Kode Format
No Kode format Kegunaan
1 %c Menampilkan sebuah karakter
2 %s Menampilkan nilai string
3 %d Menampilkan nilai decimal integer
4 %i Menampilkan nilai decimal integer
5 %u Menampilkan nilai decimal integer tidak bertanda (unsigned integer)
6 %ld Menampilkan nilai decimal long integer
7 %lu Menampilkan nilai decimal long integer tak bertanda
8 %li Menampilkan nilai decimal long integer
9 %hu Menampilkan nilai decimal short integer tak bertanda
10 %hi Menampilkan nilai decimal short integer
11 %x Menampilkan nilai heksa decimal integer
12 %o Menampilkan nilai okta integer
13 %f Menampilkan nilai pecahan / float
14 %e Menampilkan nilai float scientific
15 %g Sebagai pengganti %f atau %e tergantung yang terpendek
16 %lf Menampilkan nilai pecahan double
17 %le Menampilkan nilai pecahan double
18 %lg Menampilkan nilai pecahan double
19 %p Menampilkan suatu alamat memory untuk pointer

11
2. KONSTANTA
Konstanta merupakan suatu nilai yang tidak dapat diubah selama proses program berlangsung.
Konstanta nilainya selalu tetap. Konstanta harus didefinisikan terlebih dahulu di awal program.
Konstanta dapat bernilai integer, pecahan, karakter dan string. Penulisan konstanta mempunyai aturan
tersendiri, sesuai dengan tipe masing-masing.
1. Konstanta karakter misalnya ditulis dengan diawali dan diakhiri dengan tanda petik tunggal,
contohnya : ‘A’ dan ‘@’.
2. Konstanta integer ditulis dengan tanda mengandung pemisah ribuan dan tidak mengandung
bagian pecahan, contohnya : –1 dan 32767.
3. Konstanta real (float dan double) bisa mengandung pecahan (dengan tanda berupa titik) dan
nilainya bisa ditulis dalam bentuk eksponensial (menggunakan tanda e), contohnya : 27.5f
(untuk tipe float) atau 27.5 (untuk tipe double) dan 2.1e+5 (maksudnya 2,1 x 105 ).
4. Konstanta string merupakan deretan karakter yang diawali dan diakhiri dengan tanda petik-
ganda (“), contohnya :“Pemrograman Dasar C”.
Contoh :
#define phi 3.14
#define max_data = 50
3. VARIABEL
Variabel adalah identifier yang nilainya dapat berubah atau diubah selama program berjalan
(dieksekusi). Pengubahnya adalah user atau proses.
- Deklarasi variabel (tipe_data nama_variabel;)
Variabel yang akan digunakan dalam program haruslah dideklarasikan terlebih dahulu.
Pengertian deklarasi di sini berarti memesan memori dan menentukan jenis data yang bisa
disimpan di dalamnya.
Contoh :
int a;
int b;
Atau bisa dinyatakan juga dengan:
int a,b;

12
- Inisialisasi variabel (tipe_data nama_variabel = nilai;)
Contoh:
int a = 79;
int b = 80;
double c = 78.9;
Atau bisa dinyatakan juga dengan:
int a = 79, b = 80;
double c = 78.9;
Nama dari suatu variable dapat ditentukan sendiri oleh pemrogram dengan aturan sebagai berikut :
- Terdiri dari gabungan huruf dan angka dengan karakter pertama harus berupa huruf. Bahasa C
bersifat case-sensitive artinya huruf besar dan kecil dianggap berbeda. Jadi antara nim, NIM dan
Nim dianggap berbeda.
- Tidak boleh mengandung spasi.
- Tidak boleh mengandung symbol-simbol khusus, kecuali garis bawah (underscore). Yang
termasuk symbol khusus yang tidak diperbolehkan antara lain : $, ?, %, #, !, &, *, (, ), -, +, = dsb
- Panjangnya bebas, tetapi hanya 32 karakter pertama yang terpakai.
Contoh penamaan variabel yang benar :
NIM, a, x, nama_mhs, f3098, f4, nilai, budi, dsb.
Contoh penamaan variable yang salah :
%nilai_mahasiswa, 80mahasiswa, rata-rata, ada spasi, penting!, dsb
4. KARAKTER ESCAPE
Karakter escape adalah karakter yang diawali dengan tanda backslash (/), yang masing-masing
memiliki makna tertentu.
Tabel 2.3. Karakter Escape
No Karakter Escape Kegunaan
1 \a Bunyi bel (speaker komputer)
2 \b Mundur satu spasi (backspace)
3 \f Ganti halaman (form feed)
4 \n Ganti baris baru (new line)
5 \r Ke kolom pertama baris yang sama (carriage return)

13
6 \t Tab horizontal
7 \v Tab vertical
8 \0 Nilai kosong (NULL)
9 \’ Karakter petik tunggal
10 \” Karakter petik ganda
11 \\ Garis miring terbalik (backslash)
12 \? Karakter tanda tanya
13 \DDD Menyatakan sebuah karakter yang nilai ASCII nya sama
dengan nilai octal DDD
14 \xHH Menyatakan sebuah karakter yang nilai ASCII nya sama
dengan nilai heksadesimal HH
5. DEKLARASI
Deklarasi diperlukan bila kita akan menggunakan pengenal (identifier) dalam program. Identifier
dapat berupa variable, konstanta dan fungsi.
Deklarasi Variabel
Bentuk umum pendeklarasian suatu variable adalah :
Nama_tipe nama_variabel;
Contoh :
int x; // Deklarasi x bertipe integer
char y, huruf, nim[10]; // Deklarasi variable bertipe char
float nilai; // Deklarasi variable bertipe float
double beta; // Deklarasi variable bertipe double
int array[5][4]; // Deklarasi array bertipe integer
char *p; // Deklarasi pointer p bertipe char
Deklarasi Konstanta
Dalam bahasa C konstanta dideklarasikan menggunakan preprocessor #define.
Contohnya :
#define PHI 3.14
#define nim “0111500382”
#define nama “Sri Widhiyanti”

14
Deklarasi Fungsi
Fungsi merupakan bagian yang terpisah dari program dan dapat diaktifkan atau dipanggil di
manapun di dalam program. Fungsi dalam bahasa C ada yang sudah disediakan sebagai fungsi
pustaka seperti printf(), scanf(), getch() dan untuk menggunakannya tidak perlu dideklarasikan.
Fungsi yang perlu dideklarasikan terlebih dahulu adalah fungsi yang dibuat oleh programmer.
Bentuk umum deklarasi sebuah fungsi adalah :
Tipe_fungsi nama_fungsi(parameter_fungsi);
Contohnya :
float luas_lingkaran(int jari);
void tampil();
int tambah(int x, int y);
6. OPERATOR
Operator dalam program berfungsi untuk memanipulasi nilai. Dengan operator, sebuah program
dapat berjalan dan bersifat dinamis. Nilai-nilai dalam sebuah operasi sering disebut dengan operan.
Sebagai contoh, pada sebuah operasi perkalian 2 * 2, nilai 2 dan 2 disebut dengan operan. Operator ada
beberapa macam, antara lain:
a. Operator Penugasan
Operator Penugasan (assignment operator) dalam bahasa C berupa tanda sama dengan (“=”).
Contohnya antara lain:
nilai = 80;
Artinya: variable “nilai ” diisi dengan 80.
A = x*y;
Artinya: variable “A” diisi dengan hasil perkalian antara x dan y.
b. Operator Aritmatika
Operator ini digunakan untuk operasi matematika, semisal pengurangan, penambahan,
perkalian, dan pembagian.

15
Tabel 2.4. Operator aritmatika
No Operator Aritmatika Keterangan
1 * Untuk perkalian
2 / Untuk pembagian
3 % Untuk sisa pembagian(modulus)
4 + Untuk penambahan
5 - Untuk pengurangan
Untuk operator % digunakan untuk mencari sisa pembagian antara dua bilangan. Misalnya:
9 % 2 = 1
9 % 3 = 0
8 % 2 = 0
8 % 3 = 2
Contoh penggunaan operator:
a = y + 2;
b = 5 * 2;
c. Operator hubungan (perbandingan)
Operator Hubungan digunakan untuk membandingkan hubungan antara dua buah operand
(sebuah nilai atau variable). Operator perbandingan antara lain adalah:
Tabel 2.5. Operator perbandingan
No Operator Arti Contoh
1 < Kurang dari X < y Apakah x kurang dari y
2 <= Kurang dari sama dengan X <= y Apakah x kurang dari sama dengan y
3 > Lebih dari X > y Apakah x lebih dari y
4 >= Lebih dari sama dengan X >= y Apakah x lebih dari sama dengan y
5 == Sama dengan X == y Apakah x sama dengan y
6 != Tidak sama dengan X != y Apakah x tidak sama dengan y

16
Catatan:
Perhatikan bahwa test kesamaan dilakukan dengan operator “==” bukan “=”. Operator “=” dalam
pemrograman c merupakan assignment.
Contoh:
If (x == y) x++;
Artinya: cek kesamaan nilai x dan y. Jika x sama dengan y, maka tambahkan nilai x dengan 1.
d. Operator logika
Operator logika diigunakan untuk membandingkan logika hasil dari operator-operator hubungan
(perbandingan). Operator loika antara lain adalah:
Tabel 2.6. Operator Logika
No Operator logika Keterangan
1 && Logika AND (DAN)
2 || Logika OR (ATAU)
3 ! Logika NOT (TIDAK/ INGKARAN)
e. Operator bit
Operator bit digunakan untuk memanipulasi bit-bit dari nilai data yang ada di memori. Operasi
ini bekerja pada bit per bit (jadi tergantung pada representasi bilangan). Operator bit antara lain:
Tabel 2.7. Operator bit
No Operator bit Keterangan
1 << Pergeseran bit ke kiri
2 >> Pergeseran bit ke kanan
3 & Bitwise AND
4 ^ Bitwise XOR (exclusive OR)
5 | Bitwise OR
6 ~ Bitwise NOT
Contoh:
int b = 0xf1;
b = b>>2;

17
Keterangan:
nilai heksadesimal f1 jika di ubah menjadi biner adalah 11110001. Kemudian digeser kekanan
sebanyak 2 kali menjadi 00111100. Sehingga hasilnya dalam decimal adalah 60. Atau dalam
heksadesimal adalah 3c.
f. Operator unary
Operator Unary merupakan operator yang hanya membutuhkan satu operand saja. Operator
unary antara lain adalah:
Tabel 2.8. Operator Unary
No Operator Arti/maksud letak Contoh Equivalent
1 - Unary minus Sebelum
operator
A + -B *C A +(-B) * C
2 ++ Peningkatan dengan penambahan
nilai 1
Sebelum dan
sesudah
A++ A = A+1
3 -- Penurunan dengan pengurangan
nilai 1
Sebelum dan
sesudah
A-- A= A-1
4 sizeof Ukuran dari operand dalam byte Sebelum Sizeof(i) -
5 ! Unary NOT Sebelum !A -
6 ~ Bitwise NOT Sebelum ~A -
7 & Menghasilkan alamat memori
operand
Sebelum &A -
8 * Menghasilkan nilai dari pointer Sebelum *A -
7. RESERVED WORD
Bahasa C standar ANSI memiliki 32 kata tercadang (reserved word) dan Turbo C
menambahkannya dengan 7 kata tercadang. Semua reserved word tidak boleh digunakan dalam
penamaan identifier (variable, nama fungsi dll). Kata Tercadang yang tersedia dalam bahasa C adalah
sebagai berikut:
*asm default for *pascal switch
auto do goto register typedef

18
break double *huge return union
case else if short unsigned
*cdecl enum int signed void
char extern *interrupt sizeof volatile
const *far long static while
continue float *near struct
Keterangan : tanda * menunjukkan tambahan dari Turbo C
8. KOMENTAR PROGRAM
Komentar program hanya diperlukan untuk memudahkan pembacaan dan pemahaman suatu
program (untuk keperluan dokumentasi program). Dengan kata lain, komentar program hanya
merupakan keterangan atau penjelasan program. Untuk memberikan komentar atau penjelasan dalam
bahasa C digunakan pembatas /* dan */ atau menggunakan tanda // untuk komentar yang hanya terdiri
dari satu baris. Komentar program tidak akan ikut diproses dalam program (akan diabaikan).
Contoh:
printf( "Please enter your age" ); /* Asks for age */
9. PROGRAM
Program 1: Penggunaan variable, konstanta, komentar dan tipe data.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int x;
float y;
char z;
double a;
x = 4;
y = 3.25;
z = 'A';
a = 2.45E+15;
printf("nilai dari x adalah : %i \n", x);// mencetak x
printf("nilai dari y adalah : %f \n", y);// mencetak y
printf("nilai dari z adalah : %c \n", z);// mencetak z
printf("nilai dari a adalah : %lf \n", a);// mencetak a
return 0;
}
komentar

19
Program 2: Penggunaan Karakter escape
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("escape\t ini setelah t\n");// karakter escape/t
printf("escape\nini setelah n");// karakter escape/t
return 0;
}
Program 3: Penggunaan Operator penugasan dan aritmatika
#include <stdio.h>
#include <stdlib.h>
int main()
{
float c,d,e,f; // variable
int a,b,g;
a = 10;// deklarasi variabel
b = 6;//deklarasi variable
c = a+b;
d = a-b;
e = a*b;
f = a/b;
g = a % b;
printf("hasil c = %f\n",c);
printf("hasil d = %f\n",d);
printf("hasil e = %f\n",e);
printf("hasil f = %f\n",f);
printf("hasil g = %i\n",g);
return 0;
}
Program 4: Penggunaan Operator perbandingan
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a = 10;
int b = 5;
if (a !=b){ // jika nilai a tidak sama dengan b maka
b = b + 3; //
printf("nilai b = %i\n", b);// nilai b = 5+3=8
}
return 0;
}

20
Program 5: Penggunaan Operator bitwise.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int b = 0xf1;
b = b>>2;
printf("b= %i",b);
return 0;
}
Program 6: Penggunaan Operator unary.
#include <stdio.h>
#include <stdlib.h>
void main()
{
int a,e;
a = 4;
printf("a = %i\n", a );
a = ++a;
printf("b = %i\n", a );
e = 4;
printf("c = %i\n", e );
e = e++;
printf("d = %i\n", e );
}
Program 7. Penghitung luas lingkaran.
#include <stdio.h>
#include <stdlib.h>
#define phi 3.14 // konstanta
int main()
{
int r;
double luas;
r = 15; // variable jari2
luas = 2 * phi * r * r;// masukkan rumus
// tampilkan luas lingkaran
printf("luas lingkaran : %lf\n",luas);
return 0;
}

21
10. TUGAS
Kerjakan tugas berikut ini:
a. Buatlah program konversi suhu. Masukan suhu adalah dalam satuan celcius. Suhu diubah
menjadi satuan Fahrenheit dan reamur.
o 𝑅 = 4
5× 𝐶
o 𝐹 = 9
5× 𝐶 + 32
b. Buatlah program resistor serial dan parallel dengan rumus:
o Resistance serial: R total = R1 + R2;
o Resistance parallel : 𝑅 𝑡𝑜𝑡𝑎𝑙 = 𝑅1×𝑅2
𝑅1+𝑅2
c. Buatlah program penghitung luas persegi panjang.

22
BAB 3
INPUT DAN OUTPUT
1. MEMASUKKAN DATA
Memasukkan suatu data bisa menggunakan beberapa fungsi yang telah tersedia. Fungsi-fungsi
tersebut antara lain adalah:
a. scanf()
b. gets()
c. getchar()
d. getch() dan getche()
Berikut ini akan dijelaskan satu persatu fungsi tersebut.
a. scanf()
Fungsi scanf() digunakan untuk menginput data berupa data numeric, karakter dan string secara
format. Hal-hal yang perlu diperhatikan dalam pemakaian fungsi scanf() antara lain adalah:
o Fungsi scanf() memakai penentu format
o Fungsi scanf() memberikan pergantian baris secara otomatis
o Fungsi scanf() variablenya menggunakan operator alamat &.
Kode penentu format akan dijelaskan pada table 3.1.
Tabel 3.1. Kode penentu format
No Kode format Kegunaan
1 %c Menampilkan sebuah karakter
2 %s Menampilkan nilai string
3 %d Menampilkan nilai decimal integer
4 %i Menampilkan nilai decimal integer
5 %u Menampilkan nilai decimal integer tidak bertanda (unsigned integer)
6 %ld Menampilkan nilai decimal long integer
7 %lu Menampilkan nilai decimal long integer tak bertanda
8 %li Menampilkan nilai decimal long integer
9 %hu Menampilkan nilai decimal short integer tak bertanda
10 %hi Menampilkan nilai decimal short integer

23
11 %x Menampilkan nilai heksa decimal integer
12 %o Menampilkan nilai okta integer
13 %f Menampilkan nilai pecahan / float
14 %e Menampilkan nilai float scientific
15 %g Sebagai pengganti %f atau %e tergantung yang terpendek
16 %lf Menampilkan nilai pecahan double
17 %le Menampilkan nilai pecahan double
18 %lg Menampilkan nilai pecahan double
19 %p Menampilkan suatu alamat memory untuk pointer
Pada gambar 3.1 akan dijelaskan program penggunaan fungsi scanf().
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
void main()
{
char huruf;
int angka;
char nama[20];
char nim[10];
double pecah;
printf(“Masukkan sebuah karakter : “);
scanf(“%c”, &huruf ); /* membaca sebuah karakter */
printf(“Masukkan bilangan bulat : “);
scanf(“%i”, &angka );
printf(“Masukkan nama anda maks 20 karakter : “);
scanf(“%s”, &nama );
printf(“Masukkan nim anda maks 10 karakter :”);
scanf(“%s”, &nim );
printf(“Masukkan bilangan pecah :”);
scanf(“%d”, &pecah );
printf(“\nhuruf = %c\n”, huruf );
printf(“bilangan bulat = %i\n”, angka);
printf(“nama = %s\n”, nama);
printf(“nim= %s\n”, nim);
printf(“bilangan pecah = %d\n”, pecah);
return 0;
}
Gambar 3.1. Program scanf()

24
Gambar 3.2. Hasil program scanf()
b. gets()
Fungsi gets() digunakan untuk memasukkan karakter (huruf dan angka). Fungsi gets() diakhiri
dengan menekan tombol enter. Selain itu, fungsi gets() tidak seperti fungsi scanf(). Fungsi gets() tidak
menggunakan kode penentuan format. Contoh program dapat dilihat pada gambar 3.3.
#include <stdio.h>
#include <stdlib.h>
int main()
{
char nama[36];
printf("Masukkan nama lengkap anda : ");
gets(nama);
printf("Nama : %s", nama);
return 0;
}
Gambar 3.3 Program dengan fungsi gets()
c. getchar()
Fungsi getchar() digunakan untuk memasukkan karakter (huruf dan angka). Fungsi getchar()
diakhiri dengan menekan tombol enter. Fungsi getchar () digunakan untuk mendapatkan atau membaca
input (yaitu karakter tunggal) pada saat dijalankan. Library yang dibutuhkan adalah <STDIO.H>.
Contoh program dapat dilihat pada gambar 3.4.

25
#include <stdio.h>
#include <stdlib.h>
void main()
{
char ch;
printf("Masukkan 1 karakter :");
ch = getchar();
printf("Input Char adalah :%c\n",ch);
}
Gambar 3.4 Program dengan fungsi getchar()
Keterangan:
Di sini, mendeklarasikan variabel ch sebagai tipe data char, dan kemudian mendapatkan nilai melalui
library fungsi getchar() dan menyimpannya dalam variabel ch. Dan kemudian, mencetak nilai dari
variabel ch.
Selama eksekusi program, sebuah karakter tunggal mendapatkan atau membaca melalui getchar(). Nilai
yang diberikan akan ditampilkan pada layar dan menunggu compiler untuk karakter lain untuk diketik.
Jika Anda menekan tombol enter / karakter lain dan kemudian hanya karakter yang diberikan dicetak
melalui fungsi printf.
d. getch()
Fungsi getch () digunakan untuk mendapatkan karakter dari konsol tetapi tidak echo ke layar.
Library yang digunakan adalah <CONIO.H>. Fungsi getch() membaca karakter tunggal langsung dari
keyboard, tanpa bergema ke layar. Fungsi ini mengembalikan karakter dibaca dari keyboard. Contoh
program dapat dilihat pada gambar 3.5.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
void main()
{
char ch;
printf("Masukkan 1 karakter : \n");
ch = getch();
printf("Input Char Is :%c",ch);
} Gambar 3.5 Program dengan fungsi getch()

26
Keterangan:
Di sini, mendeklarasikan variabel ch sebagai tipe data char, dan kemudian mendapatkan nilai melalui
library fungsi getch() dan menyimpannya dalam variabel ch. Dan kemudian, mencetak nilai dari variabel
ch.
Selama eksekusi program, sebuah karakter tunggal didapat atau dibaca melalui fungsi getch(). Nilai yang
diberikan tidak ditampilkan pada layar dan compiler tidak menunggu karakter lain untuk diketik. Dan
kemudian, karakter diberikan dicetak melalui fungsi printf.
e. getche()
Fungsi getche () digunakan untuk mendapatkan karakter dari konsol, dan menggemakan ke
layar. Fungsi getche() membaca satu karakter dari keyboard dan menggema ke jendela teks,
menggunakan direct video atau BIOS. Fungsi ini mengembalikan karakter yang dibaca dari keyboard.
Contoh program dapat dilihat pada gambar 3.6.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
void main()
{
char ch;
printf("masukkan input 1 karakter : ");
ch = getche();
printf("\nInput Char adalah :%c",ch);
} Gambar 3.6 Program dengan fungsi getche()
Keterangan:
Di sini, mendeklarasikan variabel ch sebagai tipe data char, dan kemudian mendapatkan nilai melalui
library fungsi getche() dan menyimpannya dalam variabel ch. Dan kemudian, mencetak nilai dari
variabel ch.
Selama eksekusi program, sebuah karakter tunggal mendapatkan atau membaca melalui getche(). Nilai
yang diberikan akan ditampilkan pada layar dan compiler tidak menunggu karakter lain untuk diketik.
Kemudian, setelah itu karakter yang dicetak melalui fungsi printf.

27
2. MENAMPILKAN DATA
2.1 Menampilkan data ke layar
Menampilkan data ke layar menggunakan beberapa fungsi yang telah tersedia. Beberapa fungsi
tersebut antara lain adalah:
a. printf()
b. puts()
c. putchar()
Berikut ini akan dijelaskan beberapa fungsi untuk menampilkan data.
a. printf()
Fungsi dari printf() adalah digunakan untuk menampilkan semua jenis data (numeric dan
karakter). Bentuk umumnya adalah:
printf(“%<kode format>”, argumen)
Catatan:
Mengatur tampilan bilangan pecah (float).
Bentuk umum:
printf(“%m.nf”, argumen)
keterangan:
m = menyatakan panjang range
n = menyatakan jumlah digit di belakang koma
argument = milai atau variable yang akan di tampilkan.
Contoh program dapat dilihat pada gambar 3.7.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
void main()
{
float nilai;
puts("Masukkan nilai Anda : " );
scanf("%f", &nilai);
printf("Anda memperoleh nilai %5.2f\n", nilai);
printf("Apakah Anda telah puas mendapat nilai %6.4f ?", nilai);
} Gambar 3.7 Program dengan fungsi printf()

28
Gambar 3.8 Hasil program dengan fungsi printf()
b. puts()
Fungsi dari printf() adalah digunakan untuk menampilkan semua jenis data (numeric dan
karakter) secara otomatis akan diakhiri dengan perpindahan baris. Contoh program dapat dilihat pada
gambar 3.9.
#include<stdio.h>
void main( )
{
char name[30] ;
printf ( "Masukkan nama anda : \n" ) ;
gets ( name ) ;
puts ( "---- selamat datang ----");
puts ( name ) ;
}
Gambar 3.9 Program dengan fungsi puts()

29
Gambar 3.10 Hasil program dengan fungsi puts()
c. putchar()
Fungsi putchar() digunakan untuk menampilkan sebuah karakter. Contoh program dapat dilihat
pada gambar 3.11.
#include <stdio.h>
int main()
{
char a;
printf("Masukkan sebuah karakter\n");
a=getchar();
printf("Karakter yang dimasukkan adalah ");
putchar(a);
return 0;
} Gambar 3.11 Program dengan fungsi putchar()
2.2 Menampilkan data ke printer dan file I/O
Menampilkan data ke printer dan file menggunakan beberapa fungsi yang telah tersedia.
Beberapa fungsi tersebut antara lain adalah:
a. fprintf()
b. fputs()
c. fputc()
Berikut ini akan dijelaskan beberapa fungsi untuk menampilkan data ke printer.

30
a. fprintf()
Fungsi fprintf() digunakan untuk mencetak semua jenis tipe data ke printer dan secara otomatis
memberikan efek perpindahan baris.
Selain itu Fungsi fprintf () mengirimkan informasi (argumen) sesuai dengan format yang
ditetapkan ke file yang ditunjukkan oleh stream. fprintf () bekerja seperti | printf () | sesuai format. Nilai
kembalian dari fprintf () adalah jumlah karakter yang dikeluarkan, atau angka negatif jika terjadi
kesalahan.
#include <stdio.h>
#include <stdlib.h>
void main()
{
fprintf(stderr, "Hallo, Saya akan tercetak di printer");
} Gambar 3.12 Program dengan fungsi fprintf()
#include <stdio.h>
#include <stdlib.h>
void main()
{
char name[20] = "Mary";
FILE *out;
out = fopen( "output.txt", "w" );
if( out != NULL )
fprintf( out, "Hello %s\n", name );
} Gambar 3.13 Program dengan fungsi fprintf() untuk mencetak karakter di file
Keterangan:
Pada program pada gambar 3.13, akan terbuat sebuah file baru bernama output.txt pada folder project.
b. fputs()
Fungsi fputs () menulis array karakter ke output stream. Nilai kembali adalah non-negatif jika
berhasil, dan EOF jika gagal.
Keterangan:
Pada program pada gambar 3.14, akan terbuat sebuah file baru bernama output.txt pada folder project.

31
#include <stdio.h>
int main()
{
FILE *f = fopen("output.txt", "wt");
if (f)
{
fputs("nama : Ariesta Martiningtyas H", f);
fclose(f);
}
printf("selesai... silahkan buka fred.txt pada folder project\n");
return 0;
} Gambar 3.14 Program dengan fungsi fputs() untuk mencetak karakter di file
Gambar 3.15 Hasil program dengan fungsi fputs () untuk mencetak karakter di file
c. fputc()
Fungsi fputc () menulis karakter ke output stream. Nilai kembali adalah karakter jika berhasil,
dan EOF jika gagal.
Bentuk umum:
#include <stdio.h>
int fputc(int c, FILE *stream);
Keterangan:
C = Karakter yang akan dituliskan
Stream = stream dimana karakter C akan dituliskan.

32
#include <stdio.h>
#define NUM_ALPHA 26
int main(void)
{
FILE * stream;
int i;
int ch;
char buffer[NUM_ALPHA + 1] = "abcdefghijklmnopqrstuvwxyz";
if (( stream = fopen("myfile.txt", "w"))!= NULL )
{
/* memasukkan buffer into file */
for ( i = 0; ( i < sizeof(buffer) ) &&
((ch = fputc( buffer[i], stream)) != EOF ); ++i );
fclose( stream );
printf("silahkan membuka myfile.txt pada folder project");
}
else
printf( "Error membuka myfile.txt\n" );
}
Gambar 3.16 Program dengan fungsi fputc() untuk mencetak karakter di file
Gambar 3.17 Program dengan fungsi fputc() untuk mencetak karakter di file
Gambar 3.18 merupakan contoh program penghitung luas persegi.
#include <stdio.h>
#include <stdlib.h>
void main()
{
double p,l,luas;
printf("Masukkan panjang : ");
scanf("%lf", &p ); /* membaca sebuah karakter */
printf("Masukkan lebar : ");
scanf("%lf", &l );
luas = p * l;
printf("\nluas : %lf\n", luas);
return 0;
} Gambar 3.18 Program luas persegi panjang

33
3. TUGAS
Kerjakan tugas di bawah ini:
a. Buatlah Program dalam bahasa c untuk menginput dan menampilkan biodata pribadi seseorang
yang terdiri dari nama, tempat, tanggal lahir, alamat, nomor telepon, agama, dan jenis kelamin.
b. Buatlah program penghitung luas lingkaran dengan input dan output seperti contoh pada
gambar 3.19.
Gambar 3.19 Hasil program penghitung luas lingkaran
c. Buatlah program untuk memasukkan nama anda ke dalam dalam suatu file output.txt.
Gambar 3.20 Hasil program input nama ke file
Gambar 3.21 Hasil program input nama ke file pada file output.txt

34
BAB 4
PENGENDALIAN PROGRAM 1
Pengendalian program adalah digunakan untuk mengarahkan perjalanan suatu proses.
Pengendalian program tidak terlepas dari pedoman yang digunakan untuk pembuatan program, yaitu
algoritma. Sering kali algoritma program tidak linear, melainkan bercabang, meloncat kedepan,
meloncat ke belakang atau berulang.
Program adalah perwujudan dari algoritma yang ditulis dengan bahasa pemrograman. Dengan
demikian, program dapat bercabang, meloncat kedepan, meloncat ke belakang atau berulang. Maka
dari itu, program harus dikendalikan menggunakan pengendalian program yang telah disediakan oleh
bahasa pemrograman.
1. PERINTAH 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.
Bentuk umum 1:
If (<kondisi>) {
<pernyataan>;
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
int angka;
printf("Masukkan bilangan bulat : ");
scanf("%i", &angka );
if(angka < 100){
printf("angka kebih kecil dari 100!\n");
}
return 0;
}
Gambar 4.1 Program perintah if bentuk ke 1

35
Bentuk umum 2:
If (<kondisi>) <pernyataan>;
Syarat:
Pernyataan hanya dalam 1 perintah
#include <stdio.h>
#include <stdlib.h>
int main()
{
int angka;
printf("Masukkan bilangan bulat : ");
scanf("%i", &angka );
if(angka < 100) printf("angka kebih kecil dari 100!\n");
return 0;
}
Gambar 4.2 Program perintah if bentuk ke 2
Gambar 4.3 Hasil program perintah if bentuk ke 1 dan ke 2
Keterangan:
Pada program pada gambar 4.1 dan gambar 4.2, program memasukkan nilai input dan disimpan dalam
variable angka. Pada perintah “if(angka < 100) printf("angka kebih kecil dari
100!\n");”, variable angka dibandingkan dengan 100. Jika angka lebih kecil daripada 100, maka akan
tercetak output “angka kebih kecil dari 100!\n”
Semisal kita memasukkannilai 50, maka pada layar akan tercetak tulisan “angka kebih kecil dari
100!\n”. Namun jika input diberi nilai 110, maka tidak akan terjadi output apapun.

36
Bentuk umum 3:
If (<kondisi>) {
<pernyataan1>;
} else {
<pernyataan2>;
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
int angka;
printf("Masukkan bilangan bulat : ");
scanf("%i", &angka );
if(angka < 100){
printf("angka lebih kecil dari 100!\n");
} else {
printf("angka lebih besar atau sama dengan 100!\n");
}
return 0;
} Gambar 4.4 Program perintah if bentuk ke 3
Gambar 4.5 Hasil program perintah if bentuk ke 3
Keterangan:
Pada program pada gambar 4.3, program memasukkan nilai input dan disimpan dalam variable angka.
Kemudian variable angka dibandingkan dengan 100. Jika angka lebih kecil daripada 100, maka akan
tercetak output “angka kebih kecil dari 100!\n”. Jika angka lebih besar daripada 100 atau sama
dengan 100, maka akan tercetak output “angka lebih besar atau sama dengan 100!”.
Semisal kita memasukkannilai 50, maka pada layar akan tercetak tulisan “angka kebih kecil dari
100!\n”. Namun jika input diberi nilai 110, maka tidak akan pada layar akan tercetak “angka lebih
besar atau sama dengan 100!”.

37
mulai
Masukkan bilangan
angka
Angka <
100
Angka
lebih kecil
dari 100
tidak
ya
Angka lebih besar atau
sama dengan 100
selesai
Gambar 4.6 Flowchart program perintah if bentuk ke 3
Bentuk umum 4:
If (<kondisi1>) {
<pernyataan1>;
} else if (<kondisi2>) {
<pernyataan2>;
} else if (<kondisi3>) {
<pernyataan3>;
……
……
} else if (<kondisiN>) {
<pernyataanN>;
} else {
<pernyataan>;
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
int angka;
printf("Masukkan bilangan bulat : ");
scanf("%i", &angka );
if(angka < 100){
printf("angka lebih kecil dari 100!\n");
} else if (angka == 100){
printf("angka sama dengan 100!\n");
} else {
printf("angka lebih besar dari 100!\n");
}
return 0;
} Gambar 4.7 program perintah if bentuk ke 4

38
mulai
Masukkan bilangan
angka
Angka <
100
Angka =
100
Angka
lebih kecil
dari 100
tidak
ya
Angka sama
dengan 100ya
Angka lebih besar
dari pada 100
tidak
selesai
Gambar 4.8 Flowchart program perintah if bentuk ke 4
Keterangan:
Pada program pada gambar 4.7, program memasukkan nilai input dan disimpan dalam variable angka.
Kemudian variable angka dibandingkan dengan 100. Jika angka lebih kecil daripada 100, maka akan
tercetak output “angka kebih kecil dari 100!\n”. Jika angka lebih besar daripada 100 atau sama
dengan 100, maka akan tercetak output “angka lebih besar dari 100!”. Jika angka sama dengan
100, maka akan tercetak output “angka sama dengan 100!”.
Semisal kita memasukkannilai 50, maka pada layar akan tercetak tulisan “angka kebih kecil dari
100!\n”. Namun jika input diberi nilai 110, maka tidak akan pada layar akan tercetak “angka lebih
besar dari 100!”. Jika input diberi nilai 100, maka tidak akan pada layar akan tercetak “angka
sama dengan 100!”.

39
2. PERINTAH SWITCH .. CASE.. DEFAULT
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’.
Bentuk umum:
switch(kondisi)
{
case 1 : pernyataan-1;
break;
case 2 : pernyataan-2;
break;
.....
.....
case n : pernyataan-n;
break;
default : pernyataan-m
}
#include <stdio.h>
#include <conio.h>
void main()
{
int m;
puts("Memilih makanan\n");
puts("1 = roti 2 = eskrim 3 = sate 4 = soto ayam");
puts("5 = gado-gado 6 = pecel 7 = rujak");
printf("\nMasukan kode makanan( 1-7) : ");
scanf("%d", &m);
switch(m)
{
case 1 : puts("roti"); /* kemungkinan pertama */
break;
case 2 : puts("eskrim"); /* kemungkinan kedua */
break;
case 3 : puts("sate"); /* kemungkinan ketiga */
break;
case 4 : puts("soto ayam"); /* kemungkinan keempat */
break;
case 5 : puts("gado-gado"); /* kemungkinan kelima */
break;
case 6 : puts("pecel"); /* kemungkinan keenam */
break;
case 7 : puts("rujak"); /* kemungkinan ketujuh */
break;
default : puts("Kode makanan yang Anda masukan SALAH");
}
getch();
} Gambar 4.9 Program perintah case

40
Gambar 4.9 Program perintah case
3. TUGAS
Kerjakanlah tugas di bawah ini:
1. Buatlah program dengan menggunakan bahasa c dan flowchart dengan ketentuan:
Memilih akan menghitung
o luas lingkaran
o luas persegi panjang.
o Keliling persegi panjang
o Keliling lingkaran
Gambar 4.10 Hasil program tugas 1

41
2. Buatlah program dan flowchart untuk menghitung berapa harga yang harus dibayar oleh
seorang pembeli barang. Untuk pembelian seharga Rp50.000,- atau kurang, tidak ada potongan
harga. Untuk pembelian seharga Rp50.001,- sampai Rp 100.000,- mendapat potongan 10%, dan
pembelian seharga lebih dari Rp100.000,- mendapat potongan 15%. Harga barang dimasukkan
dari keyboard.

42
BAB 5
PENGENDALIAN PROGRAM 2
1. PERINTAH “WHILE”
Perulangan ini banyak digunakan bila jumlah perulangannya belum diketahui. Proses perulangan
pada statement akan terus berlanjut selama kondisinya bernilai benar (true) dan akan berhenti jika
kondisinya bernilai salah.
Bentuk umum:
While(<kondisi>){
<statement1>
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
int x = 1;
while(x <= 5){
printf("%i Hello world!\n",x);
x++;
}
printf("selesaiiiii,,,,\n",x);
return 0;
}
Gambar 5.1 Program while 1
Gambar 5.2 Hasil program while 1

43
#include <stdio.h>
#include <stdlib.h>
int main()
{
int x = 10;
while(x >= 1){
printf("%i ",x);
x--;
}
printf("selesaiiiii,,,,\n",x);
return 0;
}
Gambar 5.3 Program while 2
Gambar 5.4 Hasil program while 2
mulai
X = 10
X >=1
SelesaiPrint x
X = X - 1
tidak
ya
selesai
Gambar 5.5 Flowchart Program while 2

44
2. PERINTAH “DO..WHILE”
Pada dasarnya hampir mirip dengan struktur perintah while. Proses perulangan pada statement
akan terus berlanjut selama kondisinya bernilai benar (true) dan akan berhenti jika kondisinya bernilai
salah. Namun seleksi while berada di bawah batas perulangan. Jadi dengan menggunakan struktur
do..while, sekurang-kurangnya akan terjadi 1 perulangan.
Bentuk umum:
do {
<statement1>
}
while(<kondisi>);
#include <stdio.h>
int main()
{
int j = -5; // initialization
do
{
printf("%d\n", j);
j = j + 1;
}
while(j <= 0); // condition
return 0;
} Gambar 5.6 Program do while
Gambar 5.7 Hasil program do while

45
mulai
j = -5
j <=0
Print j
j = j + 1
selesai
ya
Gambar 5.8 Flowchart program do while
3. PERINTAH “FOR”
Struktur perulangan for biasanya digunakan untuk melakukan perulangan yang sudah diketahui
jumlah perulangannya.
Bentuk Umum :
for (<inisialisasi>,<syarat>,<penambahan>){
<statement>;
}
Keterangan:
Inisialisasi = pernyataan yang menunjukkan keadaan awal dari variable control.
Syarat = ekspresi relasi yang menyatakan kondisi untuk keluar dari perulangan
Penambahan = pengaturan pengubahan variable control.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
for(i = 0;i < 5 ; i++){
printf("%i Hello world!\n",i);
}
return 0;
}
Gambar 5.9 Program for

46
4. PROGRAM
#include <stdio.h>
int main()
{
int i, j;
for(i = 1; i <= 9;){
printf("%d", i);
for(j = i-1; j>0; ){
printf(" %d", j);
j = j - 1;
}
printf("\n");
i = i + 1;
}
return 0;
} Gambar 5.10 Program for 2
Gambar 5.11 Hasil program for 2
#include <stdio.h>
int main()
{
int i = 1, j;
while(i <= 9)
{
printf("%d", i);
j = i-1;
while( j>0 )
{
printf(" %d", j);
j = j - 1;
}
printf("\n");
i = i + 1;
}
return 0;
}
Gambar 5.12 Program while 3

47
Gambar 5.13 Hasil program while 3
5. TUGAS
Kerjakan tugas berikut ini:
1. Buatlah program untuk mencetak tampilan sebagai berikut:
Gambar 5.14 Hasil program tugas 1
2. Buatlah program untuk menampilkan bilangan ganjil dari 1 – 10.
3. Buatlah program untuk mencetak 10 bilangan prima pertama.

48
BAB 6
ARRAY
Array adalah kelompok variable dengan tipe sejenis dinyatakan dengan nama yang sama dan
dalam urutan tertentu. Letak atau posisi dari elemen array ditunjukkan oleh suatu index. Dilihat dari
dimensinya array dapat dibagi menjadi Array dimensi satu, array dimensi dua dan array multi-dimensi.
1. ARRAY DIMENSI SATU
Setiap elemen dari array dapat diakses melalui indeks. Indeks array selalu dimulai dari nilai 0.
Array dapat di ilustrasikan sebuah vector.
… … … … … … … … … …
0 1 2 3 4 5 6 7 8 9
Bentuk umum:
Tipe_array nama_array[n];
Contoh :
int nomor[6];
70 80 37 99 12 23
Nomor[0] Nomor[1] Nomor[2] Nomor[3] Nomor[4] Nomor[5]
#include <stdio.h>
#include <stdlib.h>
int main()
{
int index;
int angka[5];
printf("masukkan 5 angka :\n");
for(index = 0;index<5;index++){
scanf("%i",&angka[index]);
}
printf("\n\n5 angka yang anda masukkan adalah: \n");
for(index=0;index<5;index++){
printf("data ke %i adalah %i\n",index,angka[index]);
}
return 0;
} Gambar 6.1 Program array dimensi 1

49
Gambar 6.2 Hasil Program array dimensi 1
2. ARRAY DIMENSI DUA
Array dimensi dua merupakan array yang terdiri dari m baris dan n kolom. Bentuknya dapat
berupa matriks atau tabel.
Bentuk umum:
Tipe_array nama_array[m][n];
Contoh:
Int x[2][4]
X[0][0] X[0][1] X[0][2] X[0][3]
X[1][0] X[1][1] X[1][2] X[1][3]
Isinya:
10 8 5 15
2 56 32 11
Cara mengakses array 2 dimensi:
- Misalnya ingin mengetahui isi array x pada baris ke 2 kolom ke 3, maka x[1][2] berisi dengan
angka 32.
2 baris
4 kolom

50
Contoh:
Membuat program array dimensi 2 dengan mengisi jumlah baris dan jumlah kolom.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int baris;
int kolom;
int b;
int k;
printf("masukkan jumlah baris : ");
scanf("%i",&b); // masukan jumlah baris
printf("masukkan jumlah Kolom : ");
scanf("%i",&k); // masukan jumlah kolom
int n[b][k];
int kali = b * k; // banyaknya nomor yang di masukkan
printf("masukkan %i nomor :\n",kali);
for(baris = 0; baris<b;baris++){
for(kolom = 0; kolom<k; kolom++){
scanf("%i",&n[baris][kolom]);
}
}
printf("\nNomor yang kamu masukkan :\n");
for(baris = 0; baris<b;baris++){
for(kolom = 0; kolom<k; kolom++){
printf("%i ",n[baris][kolom]); // mencetak nomor yang dimasukkan
}
printf("\n");
}
return 0;
} Gambar 6.3 Program array dimensi 2
Gambar 6.4 Hasil Program array dimensi 2

51
3. ARRAY MULTI-DIMENSI
Array multi-dimensi merupakan array yang mempunyai ukuran lebih dari dua. Bentuk
pendeklarasian array sama saja dengan array dimensi satu maupun array dimensi dua.
Bentuk Umum:
Tipe_array nama_array[i][j][k]
Contoh:
float n[2][3][4];
n[0][0][0] n[0][0][1] n[0][0][2] n[0][0][3] n[1][0][0] n[1][0][1] n[1][0][2] n[1][0][3]
n[0][1][0] n[0][1][1] n[0][1][2] n[0][1][3] n[1][1][0] n[1][1][1] n[1][1][2] n[1][1][3]
n[0][2][0] n[0][2][1] n[0][2][2] n[0][2][3] n[1][2][0] n[1][2][1] n[1][2][2] n[1][2][3]
Gambar 6.5 Array multi dimensi
Gambar 6.7 merupakan comtoh program multi-dimensi dengan hasil seperti pada gambar 6.6.
Gambar 6.5 Hasil Program Array multi dimensi
3
4 4
2

52
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i, j, k;
static int data_huruf[2][8][8] =
{
{
{ 1, 1, 1, 1, 1, 1, 1, 0 },
{ 1, 1, 0, 0, 0, 0, 1, 0 },
{ 1, 1, 0, 0, 0, 0, 0, 0 },
{ 1, 1, 1, 1, 1, 1, 1, 0 },
{ 0, 0, 0, 0, 1, 1, 1, 0 },
{ 1, 0, 0, 0, 1, 1, 1, 0 },
{ 1, 1, 1, 1, 1, 1, 1, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0 }
},
{
{ 1, 1, 0, 0, 0, 1, 1, 0 },
{ 1, 1, 0, 0, 0, 1, 1, 0 },
{ 1, 1, 0, 0, 0, 1, 1, 0 },
{ 1, 1, 1, 1, 1, 1, 1, 0 },
{ 1, 1, 1, 0, 0, 1, 1, 0 },
{ 1, 1, 1, 0, 0, 1, 1, 0 },
{ 1, 1, 1, 0, 0, 1, 1, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0 }
}
};
/* Tampilkan Huruf */
for(i=0; i<2; i++)
{
for(j=0; j<8; j++)
{
for(k=0;k<8; k++)
if(data_huruf[i][j][k])
putchar('\xDB');
else
putchar(" "); /* spasi */
puts("");
}
puts("");
}
getch();
} Gambar 6.7 Program Array multi dimensi

53
4. PROGRAM
#include <stdio.h>
#include <stdlib.h>
int main()
{
int akolom,abaris,bkolom,bbaris,a,b;
printf("Masukkan jumlah kolom matrix A & B : ");
scanf("%i",&akolom);
printf("Masukkan jumlah baris matrix A & B : ");
scanf("%i",&abaris);
int A[abaris][akolom], B[abaris][akolom], jumlah[abaris][akolom];
printf("Masukkan %i nilai matrix A :\n",akolom*abaris);
for(a = 0;a<abaris;a++){
for(b = 0; b<akolom;b++){
printf("nilai A [ %i ][ %i ] : ", a,b);
scanf("%i",&A[a][b]);
}
}
printf("\nMasukkan %i nilai matrix B :\n",akolom*abaris);
for(a = 0;a<abaris;a++){
for(b = 0; b<akolom;b++){
printf("nilai B [ %i ][ %i ] : ", a,b);
scanf("%i",&B[a][b]);
}
}
printf("\nmatrix A :\n");
for(a = 0;a<abaris;a++){
for(b = 0; b<akolom;b++){
printf("%i ", A[a][b]);
}
printf("\n");
}
printf("\nmatrix B :\n");
for(a = 0;a<abaris;a++){
for(b = 0; b<akolom;b++){
printf("%i ", B[a][b]);
}
printf("\n");
}
printf("\nHasil penjumlahan matrix A & B :\n");
for(a = 0;a<abaris;a++){
for(b = 0; b<akolom;b++){
jumlah[a][b] = A[a][b] + B[a][b];
printf("%i ", jumlah[a][b]);
}
printf("\n");
}
return 0;
}
Gambar 6.8 Program penjumlahan Array dimensi 2

54
Gambar 6.9 Program Array multi dimensi
5. TUGAS
Kerjakan tugas di bawah ini:
a. Buatlah program matriks 3 * 3.
b. Buatlah program perkalian matriks antara matriks A dan matriks B.

55
BAB 7
FUNGSI
Fungsi merupakan suatu bagian dari program yang dimaksudkan untuk mengerjakan suatu tugas
tertentu dan letaknya terpisah dari program yang memanggilnya. Fungsi merupakan elemen utama
dalam bahasa C karena bahasa C sendiri terbentuk dari kumpulan fungsi-fungsi. Dalam setiap program
bahasa C, minimal terdapat satu fungsi yaitu fungsi main(). Fungsi banyak diterapkan dalam program-
program C yang terstruktur. Keuntungan penggunaan fungsi dalam program yaitu program akan
memiliki struktur yang jelas (mempunyai readability yang tinggi) dan juga akan menghindari penulisan
bagian program yang sama.
Fungsi merupakan suatu bagian dari program yang dimaksudkan untuk mengerjakan suatu tugas
tertentu dan letaknya terpisah dari program yang memanggilnya. Fungsi merupakan elemen utama
dalam bahasa C karena bahasa C sendiri terbentuk dari kumpulan fungsi-fungsi. Dalam setiap program
bahasa C, minimal terdapat satu fungsi yaitu fungsi main(). Fungsi banyak diterapkan dalam program-
program C yang terstruktur. Keuntungan penggunaan fungsi dalam program yaitu program akan
memiliki struktur yang jelas (mempunyai readability yang tinggi) dan juga akan menghindari penulisan
bagian program yang sama.
1. FUNGSI YANG DI BUAT OLEH PROGRAMMER
1.1. Definisi fungsi
Suatu fungsi secara umum mempunyai dua buah komponen utama, yaitu definisi fungsi dan
tubuh fungsi. Definisi fungsi berisi dengan tipe dari fungsi, nama dari fungsi dan argumen-argumennya
jika digunakan. Tubuh fungsi berisi dengan statemen-statemen yang akan melakukan tugas yang akan
diberikan kepada fungsi yang bersangkutan.
Bentuk umum:
Tipe_fungsi nama_fungsi(parameter_fungsi){
<statement>;
}
Definisi fungsi ditulis sebelum tubuh fungsi tanpa diakhiri dengan titik koma. Tipe di definisi fungsi
menunjukkan tipe dari fungsi. Tipe dari fungsi tergantung dari tipe data hasil balik yang akan diberikan
oleh fungsi. Misalnya hasil balik dari fungsi berupa nilai numerik pecahan, maka tipe dari fungsi dapat

56
dibuat float atau double atau long double tergantung pada ketepatan yang diinginkan. Jika fungsi tidak
memberikan nilai balik, maka tipenya adalah void. Tipe dari fungsi ini tidak dapat ditulis jika tipenya
adalah char atau int. Jika suatu fungsi didefinisikan tanpa menggunakan tipenya, maka akan dianggap
bertipe integer.
Hal-hal yang perlu diperhatikan dalam penggunaan fungsi:
Kalau tipe fungsi tidak disebutkan, maka akan dianggap sebagai fungsi dengan nilai keluaran
bertipe integer.
Untuk fungsi yang memiliki keluaran bertipe bukan integer, maka diperlukan pendefinisian
penentu tipe fungsi.
Untuk fungsi yang tidak mempunyai nilai keluaran maka dimasukkan ke dalam tipe void
Pernyataan yang diberikan untuk memberikan nilai akhir fungsi berupa pernyataan return.
Suatu fungsi dapat menghasilkan nilai balik bagi fungsi pemanggilnya.
Contoh definisi fungsi:
int nomor(int A,int B)
1.2. Deklarasi fungsi
Suatu fungsi yang memberikan hasil balik selain tipe integer perlu dideklarasikan sebelum
digunakan. Deklarasi fungsi ditulis sebelum fungsi tersebut digunakan.
Bentuk deklarasi fungsi:
Tipe_fungsi nama_fungsi(parameter_fungsi);
Jika bagian dari program yang menggunakan fungsi diletakkan sebelum definisi fungsi, maka
deklarasi fungsi diperlukan. Akan tetapi jika bagian program yang menggunakan fungsi terletak setelah
definisi dari fungsi, maka deklarasi fungsi boleh tidak dapat dituliskan. Jika suatu fungsi memberikan
hasil balik, maka nilai hasil balik yang diberikan oleh fungsi dapat dilakukan oleh statement return yang
diikuti oleh nilai hasil baliknya yang ditulis tanda kurung.
Contoh:
return(R);

57
Contoh program menggunakan fungsi dapat dilihat pada gambar 7.1 dan gambar 7.2.
#include <stdio.h>
#include <stdlib.h>
float tambah(float a,float b);
void main()
{
float a,b,c;
printf("program penambahan!\n");
printf("A = ");
scanf("%f",&a);
printf("B = ");
scanf("%f",&b);
c = tambah(a,b);
printf("\nhasil A + B = %.2f",c);
}
float tambah(float a,float b){
return(a+b);
} Gambar 7.1 Program fungsi 1
/** program menghitung luas, keliling lingkaran */
#include <stdio.h>
#include <stdlib.h>
#define phi 3.14
float luas(float r);
float keliling(float r);
void main()
{
float r,L,K;
printf("program menghitung luas dan keliling lingkaran\n");
printf("R = ");
scanf("%f", &r);
L = luas(r);
K = keliling(r);
printf("Luas = %.2f\n",L);
printf("Keliling = %.2f\n",K);
}
float luas(float r){ // definisi fungsi luas lingkaran
float L;
L = 2 * phi * r * r;
return(L); // nilai kembalian dari fungsi luas
}
float keliling(float r){ // definisi fungsi keliling lingkaran
float K;
K = 2 * phi * r;
return(K); // nilai kembalian dari fungsi keliling
} Gambar 7.2 Program fungsi 2

58
Gambar 7.3 Hasil program fungsi 2
1.3. Parameter actual dan parameter formal
Parameter aktual adalah variabel (parameter) yang dipakai dalam pemanggilan fungsi.
Parameter aktual terdapat pada pemanggilan fungsi.
Contoh
void main()
{
float r,L,K;
printf("program menghitung luas dan keliling lingkaran\n");
printf("R = ");
scanf("%f", &r);
L = luas(r);
K = keliling(r);
printf("Luas = %.2f\n",L);
printf("Keliling = %.2f\n",K);
}
Parameter Formal adalah variable atau parameter yang ada pada daftar parameter dalam definisi fungsi. Contoh: float tambah(float a,float b){
return(a+b);
}
1.4. Variable
Variable terdapat 4 macam, antara lain adalah variable local, variable global, variable register,
dan variable static. Berikut ini akan dijelaskan jenis variable tersebut.
a. Variable lokal
Variabel lokal merupakan variabel yang namanya dan nilainya hanya dikenal di suatu blok
statemen tertentu saja atau di dalam suatu fungsi. Variabel lokal akan dihapus dari memori jika proses
Parameter aktual
Parameter formal

59
sudah meninggalkan blok statemen letak variabel lokalnya. Sifatnya hanya dikenal oleh fungsi tempat
variabel dideklarasikan.
/*program mengetahui bilangan yang paling besar */
#include <stdio.h>
#include <stdlib.h>
int Max(int a[], int jum);
void main()
{
int c; // variable lokal
int jum, i; // variable lokal
printf("masukkan jumlah bilangan :\n");
scanf("%i",&jum);
int a[jum]; // variable lokal
printf("masukkan %i bilangan\n", jum);
for(i = 0; i < jum; i++){
printf("nilai ke- %i : ",i+1);
scanf("%i",&a[i]);
}
c = Max(a,jum);
printf("\nNilai yang paling besar : %i",c);
//return 0;
}
int Max(int a[],int jum)
{
int max = 0,j; // variable lokal
for(j = 0;j < jum;j++){
if(a[j] > max){
max = a[j];
}
}
return (max);
}
Gambar 7.4 Program variable lokal
Gambar 7.5 Hasil program variable lokal

60
b. Variable Global
Variabel global (eksternal) adalah variabel yang dideklarasikan di luar fungsi. Sifatnya antara
lain:
Dikenal (dapat diakses) oleh semua fungsi.
Jika tidak diberi nilai awal secara otomatis berisi nilai nol.
#include <stdio.h>
#include <stdlib.h>
void jumlah();
int i = 25; // variable global letaknya di luar fungsi
void main()
{
int a; // variable lokal
printf("i = 25\n");
printf("Masukkan nilai a : ");
scanf("%i",&a);
printf("nilai a + i = %i\n", i + a);
jumlah();
}
void jumlah()
{
int b; // variable lokal
printf("\nMasukkan nilai b : ");
scanf("%i",&b);
printf("nilai b + i = %i", i + b);
} Gambar 7.6 Program variable global
c. Variable register
Variabel Register adalah variabel yang nilainya disimpan dalam resister dan bukan dalam
memori RAM. variabel register disimpan dalam register mikroprosesor. Jumlah variabel yang dapat
dideklarasikan terbatas. Ini berarti bahwa variabel tersebut memiliki ukuran maksimum sama dengan
ukuran register. Jika variabel lebih dinyatakan sebagai variabel terdaftar, mereka diperlakukan sebagai
variabel. Sebuah program yang menggunakan variabel register mengeksekusi programnya lebih cepat
dibandingkan dengan program serupa tanpa variabel register.
Bentuk umum:
register int n;

61
Sifat-sifat variabel register :
Hanya dapat diterapkan pada variabel lokal yang bertipe int dan char.
Digunakan untuk mengendalikan proses perulangan (looping).
Proses perulangan akan lebih cepat karena variabel register memiliki kecepatan yang lebih tinggi
dibandingkan variabel biasa.
Dideklarasikan dengan menambahkan kata “register”.
#include <stdio.h>
int main()
{
register int x = 42; // variable register
printf("%d\n", x);
return 0;
} Gambar 7.7 Program variable global
d. Variable static
Variabel statis adalah variabel yang nilainya tetap dan bisa berupa variable lokal (internal) dan
variabel global (eksternal).
Sifat-sifat variabel statis :
Jika bersifat internal (lokal), maka variabel hanya dikenal oleh fungsi tempat variabel
dideklarasikan.
Jika bersifat eksternal (global), maka variabel dapat dipergunakan oleh semua fungsi yang
terletak pada program yang sama.
Nilai variabel statis tidak akan hilang walau eksekusi terhadap fungsi telah berakhir.
Inisialisasi hanya perlu dilakukan sekali saja, yaitu pada saat fungsi dipanggil pertama kali.
Jika tidak diberi nilai awal secara otomatis berisi nilai nol.
Dideklarasikan dengan menambahkan kata “static”.

62
#include <stdio.h>
static int j = 0;// variable static
void up(void)
{
static int k = 0;
j++;
k++;
printf("up() called. k= %2d, j= %2d\n", k , j);
}
void down(void)
{
static int k = 0;
j--;
k--;
printf("down() called. k= %2d, j= %2d\n", k , j);
}
int main(void)
{
int i;
for (i= 0; i < 3; i++)
up();
for (i= 0; i < 2; i++)
down();
return 0;
}
Gambar 7.8 Program variable static
1.5. Fungsi Rekursi
Rekursi adalah suatu proses dari fungsi yang memanggil dirinya sendiri secara berulang-ulang,
baik secara langsung maupun tidak langsung. Selain dengan metoda iterasi, perulangan juga bisa
dilakukan secara rekursif. Artinya, perulangan dilakukan melalui "pemanggilan sebuah fungsi oleh
dirinya sendiri". Perhatikan contoh di bawah ini yang berfungsi untuk menampilkan bilangan 1 hingga x.
void for_next_iteratif(int x){
int i;
for(i=1;i<=x;i++) printf("%d\n",i);
}
Jika di buat secara rekursif, maka akan menjadi:
void for_next_rekursif(int x){
int i;
if(x==0){
printf("Base case tercapai\n");
} else {
for_next_rekursif(x-1);
printf("%d\n",x);
}
}

63
#include <stdio.h>
#include <stdlib.h>
void for_next_rekursif(int);
void main(){
printf("Fungsi main() \nmemanggil for_next_rekursif(5)\n");
for_next_rekursif(5);
printf("Kembali ke main() dari for_next_rekursif(5)\n");
}
void for_next_rekursif(int x){
if(x==0){
printf("Base case tercapai\n");
} else {
printf("Memanggil for_next_rekursif(%d)\n",x-1);
for_next_rekursif(x-1);
printf("Kembali dari for_next_rekursif(%d)\n",x-1);
printf("%d\n",x);
}
} Gambar 7.9 Program fungsi Rekursif
Gambar 7.10 Hasil Program fungsi Rekursif
Perbedaan antara metode iterasi dan metode rekursi:
Iterasi
o Menggunakan struktur perulangan (for..do, while..do, repeat..until)
o Pengulangan dilakukan dengan penggunaan struktur pengulangan yang eksplisit
o Berakhir ketika kondisi yang mengharuskan dilakukannya pengulangan tidak tercapai
o Mengendalikan pengulangan dengan menggunakan pencacah (counter)

64
Rekursi
o Menggunakan struktur pemilihan (if..then..else atau case..of)
o Pengulangan dilakukan melalui pemanggilan fungsi secara berulang-ulang
o Berakhir ketika kasus paling dasar (base case) berhasil dicapai
o Mengendalikan pengulangan dengan memecah masalah menjadi bagian-bagian yang
lebih kecil
2. FUNGSI YANG TELAH TERSEDIA DALAM LIBRARY
2.1. Fungsi String
strcpy()
o strcpy() berfungsi untuk menyalin suatu string asal ke variable string tujuan.
o Bentuk umum :
strcpy(var_tujuan, string_asal);
strlen()
o berfungsi untuk memperoleh jumlah karakter dari suatu string.
o Bentuk umum :
strlen(string);
#include <stdio.h>
#include <stdlib.h>
void main()
{
char nama[25];
strcpy(nama, "Ariesta Martiningtyas Handayani\n");
printf("Nama : %s", nama);
printf("\nBanyaknya karakter nama Anda adalah : %i", strlen(nama));
getch();
} Gambar 7.11 Program fungsi string

65
Gambar 7.12 Hasil Program fungsi string
strcat()
o Digunakan untuk menambahkan string sumber ke bagian akhir dari string tujuan.
o Bentuk umum :
strcat(tujuan, sumber);
strupr()
o Digunakan untuk mengubah setiap huruf dari suatu string menjadi huruf capital.
o Bentuk umum :
strupr(string);
strlwr()
o Digunakan untuk mengubah setiap huruf dari suatu string menjadi huruf kecil semua.
o Bentuk umum :
strlwr(string);
#include <stdio.h>
#include <stdlib.h>
void main()
{
char a[30] = "Sekolah Vokasi ";
char b[30] = "Universitas Gadjah Mada";
strcat(a, b);
printf("\nHasil penggabungannya : %s\n", a);
printf("\nhuruf kapital :\n");
printf("%s", strupr(a));
printf("\n\nhuruf kecil :\n");
printf("%s", strlwr(a));
getch();
} Gambar 7.13 Program fungsi string 2

66
Gambar 7.14 Hasil Program fungsi string 2
strcmp()
o Digunakan untuk membandingkan dua buah string.
o Hasil dari fungsi ini bertipe integer dengan nilai :
Negative, jika string pertama kurang dari string kedua.
Nol, jika string pertama sama dengan string kedua
Positif, jika string pertama lebih besar dari string kedua.
o Bentuk umum : strcmp(string1, string2);
#include <stdio.h>
#include <stdlib.h>
void main()
{
char string1[20], string2[20];
int hasil;
printf("Masukkan kata ke-1 : "); scanf("%s", &string1);
printf("Masukkan kata ke-2 : "); scanf("%s", &string2);
hasil = strcmp(string1, string2);
if(hasil > 0)
printf("%s > %s", string1,string2);
else if(hasil == 0)
printf("%s = %s", string1, string2);
else
printf("%s < %s", string1, string2);
getch();
}
Gambar 7.15 Program fungsi string 3
Gambar 7.16 Hasil Program fungsi string 3

67
2.2. Fungsi Karakter
islower()
o Fungsi akan menghasilkan nilai benar (bukan nol) jika karakter merupakan huruf kecil.
o Bentuk umum : islower(char);
isupper()
o Fungsi akan menghasilkan nilai benar (bukan nol) jika karakter merupakan huruf kapital.
o Bentuk umum : isupper(char);
isdigit()
o Fungsi akan menghasilkan nilai benar (bukan nol) jika karakter merupakan sebuah digit.
o Bentuk umum : isdigit(char);
tolower()
o Fungsi akan mengubah huruf capital menjadi huruf kecil.
o Bentuk umum : tolower(char);
toupper()
o Fungsi akan mengubah huruf kecil menjadi huruf kapital.
o Bentuk umum : toupper(char);
#include <stdio.h>
#include <stdlib.h>
void main()
{
char karakter;
printf("Masukkan sebuah karakter : "); karakter = getche();
if(isupper(karakter)) //periksa apakah “karakter” adalah huruf kapital
{
puts(" adalah huruf besar");
printf("Huruf kecilnya adalah : %c", tolower(karakter));
}
else if(islower(karakter)) //periksa apakah “karakter” adalah huruf kecil
{
puts(" adalah huruf kecil");
printf("Huruf besarnya adalah : %c", toupper(karakter));
}
else if(isdigit(karakter)) //periksa apakah “karakter” adalah digit
puts(" adalah karakter digit");
else
puts(" bukan huruf besar, huruf kecil atau digit");
getch();
}
Gambar 7.17 Program fungsi karakter

68
2.3. Fungsi Operasi Matematik
sqrt()
o Digunakan untuk menghitung akar dari sebuah bilangan.
o Bentuk umum :
sqrt(bilangan);
pow()
o Digunakan untuk menghitung pemangkatan suatu bilangan.
o Bentuk umum :
pow(bilangan, pangkat);
sin(), cos(), tan()
o Masing-masing digunakan untuk menghitung nilai sinus, cosinus dan tangens dari suatu
sudut.
o Bentuk umum :
sin(sudut);
cos(sudut);
tan(sudut);
atof()
o Digunakan untuk mengkonversi nilai string menjadi bilangan bertipe double.
o Bentuk umum :
atof(char x);
atoi()
o Digunakan untuk mengkonversi nilai string menjadi bilangan bertipe integer.
o Bentuk umum :
atoi(char x);
div()
o Digunakan untuk menghitung hasil pembagian dan sisa pembagian.
o Bentuk umum :
div_t div(int x, int y)

69
o Strukturnya :
typedef struct
{
int qout; // hasil pembagian
int rem // sisa pembagian
}
div_t;
#include <stdio.h>
#include <stdlib.h>
void main()
{
int x, y;
float z;
printf("Menghitung x pangkat y\n");
printf("x = "); scanf("%i", &x);
printf("y = "); scanf("%i", &y);
printf("\n %i dipangkatkan dengan %i adalah %7.2lf", x, y, pow(x, y));
getch();
printf("\n\nMenghitung akar suatu bilangan z\n");// menghitung akar
printf("z = "); scanf("%f", &z);
printf("\nAkar dari %f adalah %7.2lf", z, sqrt(z));
getch();
float sudut; // fungsi sin,cos , tan
printf("\n\nMenghitung nilai sinus, cosinus dan tangens\n");
printf("\nMasukkan sudut : "); scanf("%f", &sudut);
printf("\nNilai sinus %.2f derajat adalah %.3f", sudut, sin(sudut));
printf("\nNilai cosinus %.2f derajat adalah %.3f", sudut, cos(sudut));
printf("\nNilai tangens %.2f derajat adalah %.3f", sudut, tan(sudut));
getch();
// mengkonversi int ke string
char j[4] = "100", i[5] ="10.3";
int c;
float d;
c = atoi(j); d = atof(i);
printf("\n\nSemula A = %s B = %s\n", j,i);
printf("\nSetelah dikonversi A = %i B = %.2f", c,d);
}
Gambar 7.18 Program fungsi operasi matematik 1
#include <stdio.h>
#include <stdlib.h>
void main()
{
int x, y;
div_t hasil;
printf("Menghitung sisa dan hasil pembagian x dengan y\n");
printf("x = "); scanf("%i", &x);
printf("y = "); scanf("%i", &y);
hasil = div(x,y);
printf("\n\n %3i div %3i = %3i sisa %3i", x, y, hasil.quot, hasil.rem);
} Gambar 7.19 Program fungsi operasi matematik 2

70
BAB 8
MENGENAL PEMROGRAMAN C#
1. MENGENAL EDITOR MICROSOFT VISUAL C#
2. PROGRAM HELLO WORLD
Langkah-langkah yang harus dilaksanakan:
a. Buka program Microsoft Visual C# 2008.
b. Buat project baru dengan menekan tombol . Atau bisa dengan cara menekan menu utama
FileNew Project. Atau bisa dengan menekan tombol Ctrl+shift+N.
Gambar 8.1 Membuat project baru
TOOLBOX
WINDOW
RANCANGAN
MENU UTAMA
PROPERTIES
EXPLORER

71
c. Pada window new Project, pilihlah windows Form Application. Beri nama project dengan nama
“HelloWorld”. Kemudian tekan tombol OK.
Gambar 8.2 Window New project
d. Setelah itu, akan tampil window seperti gambar 8.3.
Gambar 8.3 Tampilan Window project
e. Klik button pada toolbox. Kemudian klik pada window rancangan (Form1). Atau bisa juga dengan
menge-drag button pada window rancangan (Form1).

72
Gambar 8.3 Tampilan Window project
f. Kemudian pada button 1 klik kananproperties. Pada text tulis dengan kata Hello World.
Hasilnya dapat dilihat pada gambar 8.4.
Gambar 8.4 Menulis text pada button 1 dengan hello world
g. Kemudian drag toolbox Label pada toolbox dan letakkan pada window rancangan diatas tombol
hello world.
Gambar 8.5 Meletakkan label 1
Toolbox
button

73
h. Kemudian pada label 1 klik kananproperties. Pada text, kosongkan. Hasilnya dapat dilihat
pada gambar 8.6.
Gambar 8.6 Mengkosongkan text pada label1
i. Masih pada properties pada label1, pada font di klik tombol . setting seperti pada gambar 8.7
Gambar 8.7 Mengedit font
j. Klik pada Form1. Kemudian pada Form1 klik kananproperties. Pada text tulis dengan kalimat
Program Hello World. Hasilnya dapat dilihat pada gambar 8.8.

74
Gambar 8.8 Menuliskan text pada Form1
k. Setting Properties secara lengkap seperti berikut:
Tabel 8.1 Setting program hello world
No Object Properties Pengaturan
1 button1 Text Tulis “Hello world”
2 label1 Text Tulis “”
Font Bold, size 18
3 Form1 Text Tulis “Program Hello world”
l. Double klik pada tombol hello world. Kemudian tuliskan kode program seperti pada gambar 8.9.
private void button1_Click(object sender, EventArgs e)
{
label1.Text = "Hello world!";
}
Gambar 8.9 kode program pada button1
m. Jalankan program dengan menekan .
n. Hasil program akan terlihat pada gambar 8.10. Jika kita menekan tombol hello world, maka akan
muncul tulisan hello world.

75
Gambar 8.10 Hasil program hello world

76
BAB 9
USER INTERFACE
1. PROGRAM RESISTOR
Rumus:
R serial = r1 + r2
R parallel = r1
Langkah-langkahnya:
a. Buatlah project baru menggunakan visual c# seperti pada bab 8.
b. Buat tampilan seperti pada gambar 9.1.
Gambar 9.1 Tampilan program resistance
c. Tabel 9.1 merupakan properties dari project.
Tabel 9.1 properties project
No Object Properties pengaturan
1 Form1 Text PROGRAM RESISTANCE
2 Label1 Text PROGRAM RESISTANCE
Font Bold, size 14
3 Label 2 Text R1
4 Label 3 Text R2
5 Label 4 Text R TOTAL

77
6 textBox1
7 textBox2
8 textBox3
9 groupBox1 Text Resistor
10 radioButton1 Text SERIAL
11 radioButton2 Text PARALLEL
12 Button1 Text Hitung
d. Double klik pada button hitung. Tuliskan program seperti pada gambar 9.2.
private void button1_Click(object sender, EventArgs e)
{
double r1 = 0;
double r2 = 0;
double rtot = 0;
r1 = double.Parse(textBox1.Text);
// mengubah text r1 ke dalam bentuk double
r2 = double.Parse(textBox2.Text);
// mengubah text r2 ke dalam bentuk double
if (radioButton1.Checked == true)
// jika radiobutton1 di centang maka akan menjalankan serial
{
rtot = r1 + r2;
}
else if (radioButton2.Checked == true)
// jika radiobutton2 di centang maka akan menjalankan paralel
{
rtot = (r1 * r2) / (r1 + r2);
}
textBox3.Text = rtot.ToString();
// mengubah text r2 ke dalam bentuk double
} Gambar 9.2 Listing program resistance
e. Simpan program. Jalankan program.
f. Hasil dapat dilihat pada gambar 9.3.

78
Gambar 9.3 Hasil program resistance
2. PROGRAM BINTANG
Langkah-langkahnya:
a. Buatlah project baru seperti pada bab 8.
b. Buatlah tampilan form seperti pada gambar 9.4.
Gambar 9.4 Tampilan program bintang
c. Setting Program seperti pada tabel 9.2.

79
Tabel 9.2 Properties program bintang
No Object Properties pengaturan
1 Form1 Text Form1
2 Label1 Text PROGRAM BINTANG
Font Bold, size 14
3 Label 2 Text LEBAR
4 Label 3 Text TINGGI
5 Label 4 Text BENTUK BINTANG
6 textBox1
7 textBox2
8 richTextBox1 Text
9 groupBox1 Text SETTING
10 comboBox1 Items SEGITIGA
KOTAK
Text SEGITIGA
11 Button1 Text JALANKAN
12 Button2 Text KELUAR
d. Double klik pada tombol “jalankan”. Tulislah listing seperti pada gambar 9.5.
private void button1_Click(object sender, EventArgs e)
{
int l;
int p;
// ambil panjang dan lebar
l = int.Parse(textBox1.Text);
p = int.Parse(textBox2.Text);
if (comboBox1.Text == "KOTAK")
// jika memilih kotak
{
for (int i = 0; i < p; i++)
{
for (int j = 0; j < l; j++)
{
richTextBox1.AppendText(" *");
}
richTextBox1.AppendText("\n");
}

80
}
else if (comboBox1.Text == "SEGITIGA")// jika memilih segitiga
{
for (int i = 0; i < p; i++)
{
for (int j = 0; j < l; j++)
{
richTextBox1.AppendText(" *");
}
richTextBox1.AppendText("\n");
l--;
}
}
}
Gambar 9.5 Listing program jalankan
e. Double klik pada tombol “KELUAR”. Tulislah listing seperti pada gambar 9.6.
private void button2_Click(object sender, EventArgs e)
{
Application.Exit();
}
Gambar 9.6 Listing program keluar aplikasi
f. Simpan project. Jalankan program.
Gambar 9.7 Hasil program bintang

81
3. PROGRAM SIMPLE NOTEPAD
Langkah-langkahnya:
a. Buatlah project baru.
b. Buat tampilan form seperti pada gambar 9.8.
Gambar 9.8 Tampilan program simple notepad
Gambar 9.9 Tampilan menu program simple notepad
c. Properties project dapat dilihat pada tabel 9.3.
Tabel 9.3 Properties program simple notepad
No Object Properties pengaturan
1 Form1 Text PROGRAM TEXT
2 richTextBox1 Font Size 10
3 saveFileDialog1
4 openFileDialog1
5 menuStrip1
d. Menu utama diisi sesuai dengan tabel 9.4. Untuk shortcut, bisa diatur pada properties menu,
pilih properties shortcutkeys.

82
Gambar 9.9 Pengaturan shortcut
Tabel 9.4 Menu utama program simple notepad
No Menu Sub menu setting setting
1 FILE Keluar shortcut Ctrl+Q
Save shortcut Ctrl+S
Open shortcut Ctrl+O
2 EDIT copy shortcut Ctrl+C
Paste shortcut Ctrl+V
Select all shortcut Ctrl+A
Cut shortcut Ctrl+X
3 About shortcut
e. Double klik pada menu About. Tuliskan listing seperti pada gambar 9.10.
private void aBOUTToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("PROGRAM DATA \n\nCopyright by Ariesta Martiningtyas H
\n2012","About",MessageBoxButtons.OK,MessageBoxIcon.Asterisk);
}
Gambar 9.10 Listing About
f. Double klik pada menu keluar. Tuliskan listing seperti pada gambar 9.11.
private void kELUARToolStripMenuItem_Click(object sender, EventArgs e)
{
DialogResult keluar = MessageBox.Show("Apakah anda yakin ingin
keluar?","KELUAR",MessageBoxButtons.YesNo,MessageBoxIcon.Question,MessageBoxD
efaultButton.Button2);
if(keluar==DialogResult.Yes)
{

83
Application.Exit();
}
}
Gambar 9.11 Listing keluar
g. Double klik pada menu save. Tuliskan listing seperti pada gambar 9.12.
private void sAVEToolStripMenuItem_Click(object sender, EventArgs e)
{
saveFileDialog1.Filter = "Text Document (.txt)|*.txt|Rich Text Document
(.rtf)|*.rtf|All Files (*.*)|*.*";
saveFileDialog1.Title = "Save File";
saveFileDialog1.OverwritePrompt = true;
if (saveFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
System.IO.File.WriteAllText(saveFileDialog1.FileName,
richTextBox1.Text);
}
}
Gambar 9.12 Listing save
h. Double klik pada menu open. Tuliskan listing seperti pada gambar 9.13.
private void oPENToolStripMenuItem_Click(object sender, EventArgs e)
{
openFileDialog1.Title = "Open File";
openFileDialog1.Filter = "Text Document (.txt)|*.txt|Rich Text Document
(.rtf)|*.rtf|All Files (*.*)|*.*";
if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
string[] lines = System.IO.File.ReadAllLines(openFileDialog1.FileName);
foreach (string line in lines)
{
richTextBox1.AppendText(line);
}
}
}
Gambar 9.12 Listing open
i. Double klik pada menu copy. Tuliskan listing seperti pada gambar 9.14.
private void cOPYToolStripMenuItem1_Click(object sender, EventArgs e)
{
richTextBox1.Copy();
}
Gambar 9.14 Listing copy

84
j. Double klik pada menu paste. Tuliskan listing seperti pada gambar 9.15.
private void pASTEToolStripMenuItem1_Click(object sender, EventArgs e)
{
richTextBox1.Paste();
}
Gambar 9.15 Listing paste
k. Double klik pada menu select all. Tuliskan listing seperti pada gambar 9.16.
private void sELECTALLToolStripMenuItem1_Click(object sender,
EventArgs e)
{
richTextBox1.SelectAll();
}
Gambar 9.16 Listing select all
l. Double klik pada menu cut. Tuliskan listing seperti pada gambar 9.17.
private void cUTToolStripMenuItem_Click(object sender, EventArgs e)
{
richTextBox1.Cut();
}
Gambar 9.16 Listing cut
m. Jalankan program. Hasil dapat dilihat pada gambar 9.17,9.18 dan 9.19.
Gambar 9.17 Hasil Program

85
Gambar 9.18 Hasil Program
Gambar 9.19 Hasil Program

86
BAB 10
FUNGSI PADA C#
1. PROGRAM HITUNG LUAS DAN VOLUME
Rumus:
Luas permukaan bola = 4 * phi * r * r.
Volume bola = 4/3 * phi * r * r * r.
Luas permukaan kotak = (2 * p * l) + (2 * p * t) + (2 * l * t).
Volume Kotak = p * l * t.
Luas permukaan tabung = 2 *(2 * phi * r * t ) + (phi * r * r).
Volume tabung = phi * r *r * t.
Langkah-langkahnya:
a. Buatlah tampilan form seperti pada gambar 10.1.

87
Gambar 10.1 tampilan program volume dan luas
b. Tambah tabPage dengan cara menekan properties pada tabControl1. Kemudian klik sebelah
kanan pada tabPages. Maka akan muncul window seperti pada gambar 10.2. Klik tombol add
sebanyak tab yang ingin di tambah. Dalam program ini hanya membutuhkan tambahan 1 tab.
Gambar 10.2 TabPages collection
c. Pada properties tabPage3, text diganti dengan tabung. Klik tombol Ok.

88
Gambar 10.2 TabPages collection
d. Buat tampilan tabPage Tabung seperti pada gambar 10.3.
Gambar 10.3 TabPages Tabung
e. Buat class Bola baru dengan cara klik kanan pada projectaddclass.

89
Gambar 10.4 Membuat class baru
f. Akan muncul window add new item. Pilih class. Beri nama dengan bola.cs. Kemudian tekan
tombol add.
Gambar 10.5 Menambah class bola
g. Akan muncul file bola.cs pada solution explorer. Tekan double klik pada bola.cs. Tuliskan fungsi
luas bola dan volume bola pada class bola seperti pada gambar 10.6.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ui5
{
class bola
{
const double phi = 3.14;
public double luasBola(double r)
{
double luas=0;
luas = 4 * phi * r * r;

90
return luas;
}
public double volumeBola(double r)
{
double keliling = 0;
keliling = 4 / 3 * phi * r * r * r;
return keliling;
}
}
}
Gambar 10.6 Listing class bola
h. Buatlah class kotak yang langkahnya seperti membuat class bola (langkah e hingga f). Tekan
double klik pada kotak.cs pada solution explorer. Tuliskan fungsi luas kotak dan volume kotak
pada class kotak seperti pada gambar 10.7.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ui5
{
class kotak
{
public double luasKotak(double p,double l, double t)
{
double luas;
luas = (2 * p * l) + (2 * p * t) + (2 * l * t);
return luas;
}
public double volumeKotak(double p, double l, double t)
{
double volume;
volume = p * l * t;
return volume;
}
}
}
Gambar 10.7 Listing class Kotak
i. Buatlah class tabung yang langkahnya seperti membuat class bola (langkah e hingga f). Tekan
double klik pada tabung.cs pada solution explorer. Tuliskan fungsi luas kotak dan volume kotak
pada class kotak seperti pada gambar 10.8.

91
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ui5
{
class tabung
{
const double phi = 3.14;
public double luasTabung(double r, double t)
{
double luas = 0;
luas = (2 * (2 * phi * r * t)) + (phi * r * r);
return luas;
}
public double volumeTabung(double r, double t)
{
double volume = 0;
volume = phi * r * r * t;
return volume;
}
}
}
Gambar 10.8 Listing class tabung
j. Buatlah form2 dengan cara Klik kanan project pada solution exploreraddwindows form.
Gambar 10.9 Membuat form baru
k. Muncul window add new item. Pilih windows form. Beri nama dengan about.cs. kemudian klik
tombol add.

92
Gambar 10.10 Membuat form baru
l. Maka akan muncul form about. Susunlah tampilan form about seperti gambar 10.11.
Gambar 10.11 Tampilan form about
m. Double klik pada tombol ok pada form about. Tuliskan listing seperti pada gambar 10.12.
private void button1_Click(object sender, EventArgs e)
{
this.Hide();
}
Gambar 10.12 Tampilan form about
n. Kembali ke tampilan form1. Double klik pada menu utama keluar. Tuliskan listing seperti pada
gambar 10.14.
Gambar 10.13 menu keluar
Private void keluarToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.Exit();
}
Gambar 10.14 Listing keluar

93
o. Kembali ke tampilan form1. Double klik pada menu utama about. Tuliskan listing seperti pada
gambar 10.15.
private void aboutToolStripMenuItem_Click(object sender, EventArgs e)
{
about.ShowDialog();
}
Gambar 10.15 Listing keluar
p. Untuk mengakses class bola, class tabung, class kotak, dan form about, tuliskan listing seperti
pada gambar 10.16.
public partial class Form1 : Form
{
// untuk mengakses class bola,kotak,tabung dan form about
bola bola = new bola();
kotak kotak = new kotak();
tabung tabung = new tabung();
about about = new about();
public Form1()
{
InitializeComponent();
}
//setelah inisialisasi komponen ini masih ada listing kelanjutannya…
//tapi tidak saya tampilkan
Gambar 10.16 Listing untuk mengakses class lainnya
q. Kembali ke tampilan form1. Pada tabPage Bola, double klik pada tombol hitung. Tuliskan listing
seperti pada gambar 10.17.
private void button2_Click(object sender, EventArgs e)
{
double r;
double luas;
double v;
r = double.Parse(textBox4.Text);
luas = bola.luasBola(r);
v = bola.volumeBola(r);
textBox7.Text = luas.ToString();
textBox8.Text = v.ToString();
}
Gambar 10.17 Listing tombol hitung pada tabPage bola
r. Kembali ke tampilan form1. Pada tabPage Kotak, double klik pada tombol hitung. Tuliskan
listing seperti pada gambar 10.18.
private void button1_Click(object sender, EventArgs e)
{
double p = double.Parse(textBox1.Text);
double l = double.Parse(textBox2.Text);

94
double t = double.Parse(textBox3.Text);
double L;
double v;
L = kotak.luasKotak(p, l, t);
v = kotak.volumeKotak(p, l, t);
textBox5.Text = L.ToString();
textBox6.Text = v.ToString();
}
Gambar 10.18 Listing tombol hitung pada tabPage kotak
s. Kembali ke tampilan form1. Pada tabPage tabung, double klik pada tombol hitung. Tuliskan
listing seperti pada gambar 10.19.
private void button3_Click(object sender, EventArgs e)
{
double r = double.Parse(textBox9.Text);
double t = double.Parse(textBox10.Text);
double L = tabung.luasTabung(r,t);
double v = tabung.volumeTabung(r, t);
textBox11.Text = L.ToString();
textBox12.Text = v.ToString();
}
Gambar 10.18 Listing tombol hitung pada tabPage tabung
t. Jalankan program.
2. TUGAS
Buatlah program menghitung luas dan keliling lingkaran, persegi panjang, dan persegi, yang masing-
masing bentuk memiliki form tersendiri!

95
Gambar 10.19 Tampilan program tugas

96
DAFTAR PUSTAKA
Anonim, Programming c, http://www.elook.org/programming/c/stdio.html, diakses tanggal 15 Februari
2012.
Anonim, 2011, Fputc, http://publib.boulder.ibm.com/infocenter/tpfhelp/current/index.jsp?
topic=%2Fcom.ibm.ztpf-ztpfdf.doc_put.cur%2Fgtpc2%2Fcpp_fputc.html diakses tanggal 15
Februari 2012
Anonim, 2011, lab worksheet 7a, http://www.tenouk.com/clabworksheet/labworksheet7a.html,diakses
tanggal 15 Februari 2012
Anonim, 2011, Fungsi, http://www.ilab.gunadarma.ac.id/Info/modul/NewPTA2011-
2012/AP3%20Cobol%26C/Bab%206%20-%20Fungsi.pdf, diakses tanggal 18 Februari 2012
Cherid A, M.T.I, 2008, Algoritma pemrograman 2 modul 10 ,
http://images.redvego.multiply.multiplycontent.com/attachment/0/
Scu1wAoKCEEAACPdOuY1/AlgoritmaPemrograman2_modul_010.doc?key=redvego:journal:3&nmid=22
3624363 diakses tanggal 20 Februari 2012
Solichin, A. 2003, Pemrograman Bahasa C dengan Turbo C, IlmuKomputer.com, Indonesia.