4.2.2. Flowchart
Flowchart adalah suatu struktur yang menggambarkan proses algoritma. Berikut
merupakan beberapa contoh bangun yang digunakan dalam flowchart.
Bentuk Bangun Keterangan
Terminal awal dan akhir proses
Percabangan
Terminal untuk berpindah dalam satu halaman
Arah proses
Berikut adalah contoh flowchart dari algoritma perhitungan luas segitiga di atas.
2. Centang “Add the following commands when calling the compiler:” dan
tambahkan –std=c99 pada kolom teks di bawahnya.
4.2.4. Tinjauan Umum Bahasa C dan Program Komputer
Bahasa C merupakan bahasa pemrograman komputer yang di-compile menggunakan
program komputer lain yang disebut compiler. Sebuah kode sumber (source code; kode yang
ditulis langsung oleh seorang pemrogram dalam suatu bahasa pemrograman) akan diubah
menjadi bahasa mesin oleh compiler agar komputer dapat mengerti dan menjalankan program
yang pemrogram tulis.
Bahasa mesin
Source Code Compiler
(executable)
#include <stdio.h>
#include <conio.h>
...
... (include library)
int main(){
statement;
statement;
... (Fungsi main())
}
Susunan bisa diacak, karena bahasa C tidak mengatur kolom penulisan untuk
statement tertentu. Jadi, meng-include library tidak harus dilakukan di bagian paling awal dari
file kode. Setiap statement atau perintah harus di akhiri titik koma ( ; ). Untuk mempermudah
membaca kode program ketika melakukan debugging, sebaiknya penulisan bahasa C diatur
sedemikian rupa dan berikan dokumentasi dengan menggunakan komentar. Komentar
merupakan bagian kode yang diabaikan oleh compiler (tidak akan dijadikan program
komputer), dibuat untuk keperluan pemrogram dalam memberi keterangan mengenai kode
yang ditulisnya. Komentar bisa dibuat dengan dua cara, yaitu dengan garis miring ganda ( // )
untuk komentar satu baris, dan pasangan garis miring bintang ( /* */ ) untuk komentar lebih
dari satu baris atau untuk mengomentari sebagian kode. Contohnya adalah sebagai berikut.
1 //Program Hello World! dalam Bahasa Indonesia
2
3 #include <stdio.h> /* standard input output library bahasa C */
4 #include <conio.h> //getch() ada di dalam conio.h
5
6 //Hapus tanda komentar untuk menggunakan library stdlib
7 //#include <stdlib.h>
8
9 int main(){
10
11 //Mencetak “Halo Dunia!” pada layar cmd
12 printf(“Halo Dunia!\n”);
13
14 /*
15 Menunggu input satu karakter bebas sebelum keluar.
16 Berfungsi sebagai pause program.
17 Bisa juga menggunakan system(“pause") dengan library stdlib.h.
18 */
19 getch();
20
21 }
TIPE DATA. Dalam bahasa C terdapat beberapa tipe data. Secara umum ada tipe data huruf
dan bilangan. Bilangan terbagi atas bilangan bulat dan real. Efisiensi program dapat
ditunjukkan dalam pemilihan tipe data yang tepat.
Ukuran
Tipe Data Rentang / Jangkauan Simbol Format Keterangan
(Byte)
char -128 sampai 127 Karakter/huruf
unsigned Char 1 0 sampai 255 %c
VARIABEL, KONSTANTA, DAN KARAKTER KHUSUS. Variabel adalah suatu simbol yang
mewakili suatu nilai tertentu pada sebuah program. Dalam bahasa C, variabel perlu
dideklarasikan terlebih dahulu sebelum digunakan. Cara mendeklarasikannya adalah :
tipe_data nama_variabel;
Misalnya,
int x;
Seperti yang sudah disebutkan sebelumnya, variabel merupakan simbol yang mewakili suatu
nilai tertentu. Maka, nilai apakah yang diwakili oleh simbol ‘x’ ketika kita mendeklarasikan x
sebagai integer dengan statement di atas? Dalam kasus ini kita belum memberi x sebuah nilai
untuk diwakilkan. Nilai x akan bervariasi nantinya, tergantung di mana x di deklarasikan.
Pembahasan ini di luar cakupan percobaan C bagian 1. Agar program berjalan sesuai harapan,
ada baiknya kita memberikan x nilai awal (insisialisasi) sebelum digunakan. Memberikan nilai
untuk diwakilkan suatu simbol variabel (variable assignment) dapat dilakukan dengan cara
berikut,
x = 256;
dengan pernyataan di atas, kita memberi x sebuah nilai berupa bilangan bulat yaitu 256. Jika
ingin mengubah nilai x, berikan pernyataan yang sama seperti di atas, dengan nilai yang
diinginkan.
Deklarasi dan inisialisasi bisa dilakukan dalam satu pernyataan. Contohnya,
int x = 256;
#define PI 3.14159
const int GRAVITASI = 10;
Dalam bahasa C ada karakter khusus yang dapat dugunakan untuk menulis karakter seperti tab,
baris baru, backspace (kembali satu karakter ke belakang), dan sebagainya.
\a Bunyi bel/alarm
\b Backspace
\t Horizontal Tab
\n Newline (Line Feed), baris baru
\v Vertical Tab
\f Formfeed
\r Carriage Return
\" Tanda petik ganda
\' Tanda petik tunggal
\? Tanda tanya
\\ Garis miring terbalik, Backslash
OPERATOR. Bahasa C memiliki operator untuk perhitungan, pemrosesan data, perbandingan,
dan sebagainya.
1. Operator Aritmatika
Operator Arti
+ Penambahan
- Pengurangan
* Perkalian
/ Pembagian
% Sisa bagi (modulo)
2. Operator Penugasan (assignment)
Operator Arti
& Bitwise AND
| Bitwise OR
^ Bitwise exclusive OR
~ Bitwise complement
<< Shift left
>> Shift right
KEYWORD. Bahasa C memiliki keyword atau kata kunci yang tidak boleh dipakai sebagai nama
fungsi atau pun nama variabel karena digunakan untuk tipe data atau perintah-perintah pada
C. Ada 32 kata kunci, yaitu :
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. Contoh:
// cetak nilai dari pointer_x (alamat dari x) dan isi nilai dari alamat yang
// ditunjuk pointer_x (isi dari x)
printf(“pointer x = %x\n”, pointer_x); // mencetak alamat x dalam format hex
printf(“*pointer_x = %d\n”, *pointer_x); // mencetak isi dari x (5)
4.2.6. Input Output Bahasa C
Pada bahasa C, fungsi untuk memasukkan data (input) atau mengeluarkan data
(output) di antaranya adalah printf(), scanf(), puts(), gets(), putc(), dan getch().
Bentuk umumnya:
a. printf(“kata yang akan dicetak dan simbol-simbol format”,
nama_variabel_untuk_simbol_format_1,
nama_variabel_untuk_simbol_format_2, ...);
b. scanf(“simbol format”, &nama_variabel);
c. puts(‘karakter tunggal’); dalam bahasa C, karakter tunggal diapit tanda petik tunggal,
string diapit tanda petik ganda.
d. puts(“string/kumpulan karakter”);
e. char c = getch();
f. char s[] = gets();
Contoh program:
1 //Program menghitung luas segitiga
2
3 #include <stdio.h>
4 #include <conio.h>
5
6 int main(){
7 int alas, tinggi, luas;
8
9 //Cetak pesan
10 printf(“Program menghitung luas segitiga\n”);
11 printf(“Masukkan alas (cm) : ”);
12 //Meminta input pengguna program berupa angka bilangan bulat (%d)
13 //yang akan dimasukkan ke variabel alas
14 scanf(“%d”, &alas);
15 printf(“Masukkan tinggi (cm) : ”);
16 scanf(“%d”, &tinggi);
17
18 //Hitung luas
19 luas = alas*tinggi/2;
20
21 printf(“Luas segitiga : %d cm persegi”, luas);
22
23 //Pause program sebelum keluar. Menunggu input karakter bebas.
24 getch();
25 }
4.2.7. Alur Program
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,
if (kondisi) {
//perintah-perintah yang akan dilakukan jika kondisi benar atau TRUE
...
}
Contohnya,
1 //Program ipo-chan
2
3 #include <stdio.h>
4 #include <conio.h>
5
6 int main(){
7 int umur;
8 printf(“Masukkan umur : ”);
9 scanf(“%d”, &umur);
10
11 if (umur < 18){
12 printf(“Anda masih di bawah umur. Dilarang masuk.\n”);
13 }
14 if (umur >= 18){
15 printf(“Anda sudah cukup umur. Tapi tetap dilarang masuk.\n”);
16 }
17
18 //Pause program sebelum keluar. Menunggu input karakter bebas.
19 getch();
20 }
Jika program dijalankan akan ditampilkan:
Masukkan umur : 17
Anda masih di bawah umur. Dilarang masuk.
if (kondisi1) {
//perintah-perintah yang akan dilakukan jika kondisi1 benar atau TRUE
...
}
else if (kondisi2) {
//perintah-perintah yang akan dilakukan jika kondisi1 salah atau FALSE
//tetapi kondisi2 benar atau TRUE
...
}
else {
//perintah-perintah yang akan dilakukan
//jika kondisi1 DAN kondisi2 salah atau FALSE
...
}
Contohnya,
1 //Program ipo-chan versi 1.1
2
3 #include <stdio.h>
4 #include <conio.h>
5
6 int main(){
7 int umur;
8 printf(“Masukkan umur : ”);
9 scanf(“%d”, &umur);
10
11 if (umur < 18){
12 printf(“Anda masih di bawah umur. Dilarang masuk.\n”);
13 }
14 else {
15 printf(“Anda sudah cukup umur. Tapi tetap dilarang masuk.\n”);
16 }
17
18 //Pause program sebelum keluar. Menunggu input karakter bebas.
19 getch();
20 }
Masukkan umur : 18
Anda sudah cukup umur. Tapi tetap dilarang masuk.
3. if else bersarang. Di dalam if bisa mengandung if lagi, sehingga terlihat seperti
bersarang. Contohnya,
1 //Program cek umur nikah
2
3 #include <stdio.h>
4 #include <conio.h>
5
6 int main(){
7 int umur;
8 char jenis_kelamin;
9 printf(“Masukkan umur : ”);
10 scanf(“%d”, &umur);
11 printf(“Masukkan jenis kelamin (L/P) : ”);
12 scanf(“ %c”, &jenis_kelamin);
13
14 if (jenis_kelamin == ‘L’ || jenis_kelamin == ‘l’){
15 if (umur >= 19){
16 printf(“Menurut UU anda sudah boleh menikah.\n”);
17 }
18 else {
19 printf(“Menurut UU anda masih belum boleh menikah.\n”);
20 }
21 }
22 else if (jenis_kelamin == ‘P’ || jenis_kelamin == ‘p’) {
23 if (umur >= 16){
24 printf(“Menurut UU anda sudah boleh menikah.\n”);
25 }
26 else {
27 printf(“Menurut UU anda masih belum boleh menikah.\n”);
28 }
29 }
30 else {
31 printf(“Kami tidak mengenali jenis kelamin yang anda masukkan\n”);
32 }
33
34 //Pause program sebelum keluar. Menunggu input karakter bebas.
35 getch();
36 }
Masukkan umur : 18
Masukkan jenis kelamin : L
Menurut UU anda masih belum boleh menikah.
4. switch case. Memiliki cara penulisan sebagai berikut.
switch (variabel) {
case 1 :
//Perintah yang dijalankan jika variabel == 1
break;
case 2 :
//Perintah yang dijalankan jika variabel == 2
break;
...
...
case n :
//Perintah yang dijalankan jika variabel == n
break;
default :
//Perintah yang dijalankan jika nilai tidak ada yang sesuai variabel
break;
}
Contohnya,
1 //Program kantin terkomputerisasi
2
3 #include <stdio.h>
4 #include <conio.h>
5
6 int main(){
7 int pilihan;
8 printf(“\”Monggo mas.e mau pesan apa?\”\n”);
9 printf(”1. Rames\n2. Soto\n3. Pecel\n4. Gorengan\n”);
10 printf(“Pilihan anda : ”);
11 scanf(“%d”, &pilihan);
12
13 switch (pilihan){
14 case 1:
15 printf(”Anda memesan Rames.\n”);
16 break;
17
18 case 2:
19 printf(”Anda memesan Soto.\n”);
20 break;
21
22 case 3:
23 printf(”Anda memesan Pecel.\n”);
24 break;
25
26 case 4:
27 printf(”Anda memesan Gorengan.\n”);
28 break;
29
30 default:
31 printf(“Pesanan anda tidak ada di dalam menu.\n”);
32 break;
33 }
34
35 //Pause program sebelum keluar. Menunggu input karakter bebas.
36 getch();
37 }
Jika program dijalankan akan ditampilkan:
PERULANGAN. Ada kalanya kita membutuhkan suatu bagian program diulang-ulang 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.
while (kondisi) {
//Perintah yang dijalankan selama kondisi BENAR
...
...
}
Jika program panggil aku n kali sebelumnya menggunakan for, maka kali ini adalah versi
menggunakan while.
1 //Program panggil aku n kali (while version)
2
3 #include <stdio.h>
4 #include <conio.h>
5
6 int main(){
7 int n;
8 char nama[20];
9 printf(“Siapa namamu? ”);
10 scanf(“%s”, &nama);
11 printf(“Mau dipanggil berapa kali? ”);
12 scanf(“%d”, &n);
13
14 //INISIALISASI variabel untuk mengontrol loop
15 int i = 0;
16 while (i<n){
17 //Perintah yang dilakukan jika kondisi i<n BENAR
18 printf(“%s\n”, nama);
19
20 //FINALISASI. Update variabel i sehingga loop tidak berulang-ulang
//selamanya.
i++;
}
Dalam menggunakan while, yang kita butuhkan sebenarnya hanyalah kondisi. Semua perintah atau
pernyataan di dalam blok while akan dijalankan selama kondisi BENAR.
3. do while. Flowchartnya adalah sebagai berikut.
do {
//Perintah yang dijalankan dulu sekali
//dan dijalankan kembali jika kondisi BENAR
...
...
} while (kondisi);
Jika program panggil aku n kali sebelumnya menggunakan for dan while maka kali ini adalah versi
menggunakan do while.
1 //Program panggil aku n kali (do while version)
2
3 #include <stdio.h>
4 #include <conio.h>
5
6 int main(){
7 int n;
8 char nama[20];
9 printf(“Siapa namamu? ”);
10 scanf(“%s”, &nama);
11 printf(“Mau dipanggil berapa kali? ”);
12 scanf(“%d”, &n);
13
14 //INISIALISASI variabel untuk mengontrol loop (perulangan)
15 int i = 0;
16 do {
17 //Perintah yang dilakukan jika kondisi i<n BENAR
18 printf(“%s\n”, nama);
19
20 //FINALISASI. Update variabel i sehingga loop tidak berulang-ulang
//selamanya.
i++;
} while (i<n);
Dalam menggunakan do while, perintah dalam bloknya akan dikerjakan terlebih dahulu baru
memeriksa apakah kondisi BENAR atau SALAH. Jika kondisi BENAR, maka perintah dalam blok do
akan dikerjakan kembali. Jika SALAH, maka program akan melanjutkan eksekusinya. Jadi, perintah
dalam blok do while akan dikerjakan paling sedikit satu kali.
4. Penyarangan. Di dalam for bisa ada for lagi, atau while, atau yang lainnya. Semua bisa
menyarangkan dan disarangkan termasuk dengan percabangan.
4.2.8. Aplikasi Bahasa C
1 //Program penulisan deret bilangan prima
2
3 #include <stdio.h>
4 #include <conio.h>
5 #include <stdbool.h>
6
7 int main(){
8 int i, j, max,jum=1;
9 bool prima;
10 printf(“Mau berapa deret angka? ”);
11 scanf(“%d”, &max);
12
13 for (i=1; jum <= max; i++) {
14 prima = false;
15 if (i==2) prima = true;
16 else {
17 for(j=2; j<i; j++){
18 if( (i%j)==0 ){
19 prima = false;
20 break; //Keluar dari loop
21 }
22 else {
23 prima = true;
24 }
25 }
26 }
27 if (prima==true){
28 printf(“%i\t”, i);
29 jum++;
30 }
31 }
32
33 //Pause program sebelum keluar. Menunggu input karakter bebas.
34 getch();
35 }
Tugas pribadi : terangkan tiap-tiap baris program di atas yang berbeda, dan
buatlah contoh program aplikasi C menggunakan kondisional dan perulangan disertai
algoritma dan flowchart.
REFERENSI:
http://oki-prasetyo69.blogspot.com/2013/02/tipe-data-dasar-pada-c-c.html
http://www.bbc.com/indonesia/berita_indonesia/2015/06/150618_indonesia_mk_nikah
http://www.programiz.com/c-programming/c-operators
https://en.wikipedia.org/wiki/Escape_sequences_in_C
Modul IV Praktikum Dasar Komputer dan Pemrograman tahun 2013.