Anda di halaman 1dari 56

PENGANTAR KONSEP

Algoritma (1)

A. Tujuan
1. Mampu memahami persoalan
2. Mendesain penyelesaian persoalan ke dalam algoritma
3. Menotasikan algoritma yang sudah dibuat menggunakan notasi flowchart

B. DASAR TEORI
Dalam pembuatan suatu aplikasi program tentunya memerlukan suatu
pemikiran dan konsep yang terarah, supaya dalam pengerjaannya sedikit
mengalami kesulitan. Untuk membantu hal tersebut maka diperlukan suatu
algoritma yang akan membimbing dalam pengerjaan berbagai hal tidak hanya
dalam pembuatan program aplikasi. Contoh dalam dunia nyata yaitu suatu ketika
kita ingin berangkat ke sekolah. Untuk dapat mencapai kesekolah maka
seseorang akan menggunakan caranya masing-masing. Apabila yang mempunyai
motor akan naik motor, apabila ada yang tidak punya maka akan mengambil cara
lain. Sehingga disimpulkan bahwa Algoritma adalah urutan langkah-langkah
logika yang menyatakan suatu tugas dalam menyelesaikan suatu masalah atau
problem.

1.1 Software
Software adalah suatu aplikasi atau program yang digunakan untuk membantu
tugas-tugas manusia yang terdapat di dalam operating system (OS). Sebagai
contoh software perkantoran, penjadwalan, perhitungan, design dll. Dibawah ini
beberapa langkah dalam proses pembuatan suatu program atau software adalah :
Mendefinisikan masalah dan menganalisanya
Langkah awal yang harus dilakukan adalah mengidentifikasikan masalah
antara lain tujuan dari pembuatan program, parameter-parameter yang digunakan,
fasilitas apa saja yang akan disediakan oleh program. Kemudian menentukan
metode atau algoritma apa yang akan diterapkan untuk menyelesaikan masalah

tersebut dan terakhir menentukan bahasa program yang digunakan untuk


pembuatan program.
Merealisasikan dengan langkah-langkah berikut :

1.2 Algoritma
Algoritma adalah urutan langkah-langkah logika yang menyatakan suatu tugas
dalam menyelesaikan suatu masalah atau problem. Contoh : Buat algoritma untuk
menentukan apakah suatu bilangan merupakan bilangan ganjil atau bilangan
genap. Algoritmanya :
1. Masukkan sebuah bilangan sembarang
2. Bagi bilangan tersebut dengan bilangan 2
3. Hitung sisa hasil bagi pada langkah 2.
4. Bila sisa hasil bagi sama dengan 0 maka bilangan itu adalah bilangan
genap tetapi bila sisa hasil bagi sama dengan 1 maka bilangan itu adalah
bilangan ganjil.
Dari contoh algoritma di atas tentang menentukan apakah suatu bilangan adalah
bilangan ganjil atau bilangan genap, flowchart dari program adalah sebagai
berikut :

Gambar 1.1 Flowchart bilangan ganjil atau genap


Untuk membuat flowchart terdapat aturan-aturan simbol gambar. Simbol simbol
gambar dapat lihat pada gambar 1.2 dibawah ini.

Gambar 1.2 simbol-simbol flowchart

1.3 Sekilas Tentang Bahasa C dan C++


Bahasa pemrograman yang dapat dikatagorikan menjadi tiga level bahasa,
yaitu ;
1. Bahasa tingkat tinggi
2. Bahasa tingkat menengah
3. Bahasa tingkat rendah
Semakin tinggi level bahasa pemrograman maka semakin mudah untuk dipelajari
karena dekat dengan bahasa manusia. Sebaliknya semakin rendah bahasa
pemrograman maka semakin sulit untuk dipelajari karena semakin dekat dengan
bahasa mesin. Bahasa tingkat rendah sebagai contoh adalah assembly. Bahasa C
dibuat oleh Brian W. Kernighan dan Dennis M. Ritchie. Bahasa C merupakan
bahasa intermediate yaitu bahasa tingkat menengah dan tidak dikatakan bahasa
tingkat tinggi dimana para programmer diberikan aturan main dalam penulisan
sintak yang dapat dimengerti oleh manusia. Akan tetapi bahasa C juga dapat
dikatagorikan sebagai bahasa tingkat rendah karena disediakan sintak untuk
Asembly yang termasuk dalam bahsa tingkat rendah yang digunakan sebagai
bahasa mesin. Bahasa C menyediakan beberapa komponen yang dapat digunakan
programmer untuk mengimplementasikan kode-kodenya dengan mudah. Adapaun
komponen dari bahasa C adalah sebagai berikut ;
1. Editor
2. Interpreter
3. Compiler
4. Debugging
Berlanjut ke C++ yaitu bahasa C telah dikembangkan dan tak lepas dari bahasa C
yang sebagai nenek moyangnya. C++ diciptakan satu decade dengan C.
Diciptakan oleh Bjarne Stroustrup pada tahun 1983. Bahasa ini sama dengan
bahasa C. hanya saja pada C++ mendukung pemrograman yang berorientasi objek
(OOP-Object Oriented Programing). Semua bahasa mempunyai kelemahan atau
kelebihan sendiri-sendiri. Begitu juga dengan bahasa C dan C++. Adapun
kelebihannya adalah sebagai berikut:
1. Banyak memiliki operator untuk mengolah/memanipulasi data.

2. Bahasa C termasuk sebagai bahasa terstruktur sehingga program dapat


lebih mudah dipahami atau dikembangkan.
3. Kecepatan eksekusi tinggi.
Dan beberapa kelemahannya adalah sebagai berikut:
1. Banyaknya operator atau cara penulisan program kadang menimbulkan
kebingungan para pemakainya.
2. Perlu adanya ketelitian dalam penulisan program karena C dan C++
3. bersifat Case Sensitive (Membedakan antara huruf kapital dan huruf
kecil).

1.3.1 Editor
Editor adalah sebuah fasilitas yang disediakan oleh bahasa C dan C++
untuk menuliskan kode yang telah didesain oleh programmer. Editor yang
disediakan pada umumnya sama dengan yang disediakan oleh perangkat lunak
lainnya yang menangani file TEXT. Akan tetapi untuk beberapa editor terbaru
model TEXT ini dapat dibedakan antara keyword, variabel, dan sebagainya.

1.3.2 Interpreter
Kebanyakan perangkat lunak bahasa pemrograman menyediakan fasilitas
Interpreter. Demikian juga dengan bahasa C. Interpreter digunakan untuk
membaca kode yang telah ditulis oleh programmer untuk diterjemahkan oleh
Interpreter C dan C++. Sehingga sekumpulan kode yang telah ditulis dapat
berjalan sesuai dengan sintaks yang telah ditentukan oleh bahasa C dan C++.

1.3.3 Compiler
Tidak semua perangkat lunak bahasa pemrograman menyediakan fasilitas
Compiler. Tetapi untuk bahasa C dan C++, fasilitas ini disediakan. Compiler
digunakan untuk mentranslator sekumpulan kode yang telah ditulis sesuai dengan
sintak yang ditentukan oleh bahasa C ke bentuk yang lain. Dalam hal ini diubah
ke dalam bentuk bahasa Assembly sehingga selanjutnya akan menghasilkan suatu
file execute (.exe). di mana file tersebut dapat berdiri sendiri tanpa memerlukan
perangkat lunak lainnya.

1.3.4 Debugging
Bahasa C dan C++ menyediakan fasilitas debugging yang dapat digunakan
untuk menelusuri setiap kode yang telah ditulis. Sehingga programmer dapat
mengetahui perubahan dan pengaruh serta kesalahan setiap kode per baris yang
telah ditulis. Fasilitas debug yang disediakan antara lain:
1. Debug per baris.
2. Debug per prosedur/fungsi.
3. Debug per breakpoint.
Ada beberapa software yang dapat digunakan untuk membuat program dengan
bahasa C dan C++, antara lain:
1. Turbo C++
2. Borland C++
3. Dev-C++
4. GCC.
Untuk software nomor 1 sampai 3 digunakan pada sistem operasi windows
sedangkan untuk software nomor 4 digunakan di sistem operasi Linux.

C. TUGAS PENDAHULUAN
Untuk semua persoalan di bawah ini, desainlah algoritma dan flowchartnya.

D. PERCOBAAN
1. Menjumlahkan 2 buah bilangan dan mencetak hasilnya.
2. Mengalikan 2 buah bilangan dan mencetak hasilnya.
3. Memberikan opsi menjumlahkan dan mengalikan 2 buah bilangan dan
menampilkan hasilnya.
4. Mengecek bilangan di antara 2 bilangan masukan, apakah sama ataukah
lebih besar salah satunya, dan tampilkan hasilnya.

E. LAPORAN RESMI
Kumpulkan hasil percobaan di atas

PENGENALAN BAHASA C
Dan Dev-C (2)

A. Tujuan
1. Mengenal sintaks dan fungsi-fungsi dasar dalam bahasa C
2. Mampu membuat flowchart untuk algoritma untuk memecahkan suatu
masalah sederhana, selanjutnya mengimplementasikannya dalam bahasa C
3. Mampu mengoperasikan Dev-C

B. DASAR TEORI
Program C pada hakekatnya tersusun atas sejumlah blok fungsi. Sebuah
program minimal mengandung sebuah fungsi. Fungsi pertama yang harus ada
dalam program C dan sudah ditentukan namanya adalah main(). Setiap fungsi
terdiri atas satu atau beberapa pernyataan, yang secara keseluruhan dimaksudkan
untuk melaksanakan tugas khusus. Bagian pernyataan fungsi (sering disebut tubuh
fungsi) diawali dengan tanda kurung kurawal buka ( { ) dan diakhiri dengan tanda
kurung kurawal tutup ( } ). Di antara kurung kurawal itu dapat dituliskan
statemen-statemen program C. Namun pada kenyataannya, suatu fungsi bisa saja
tidak mengandung pernyataan sama sekali. Walaupun fungsi tidak memiliki
pernyataan, kurung kurawal haruslah tetap ada. Sebab kurung kurawal
mengisyaratkan awal dan akhir definisi fungsi. Berikut ini adalah struktur dari
program C

Bahasa C dikatakan sebagai bahasa pemrograman terstruktur karena strukturnya


menggunakan fungsi-fungsi sebagai program-program bagiannya (subroutine).

Fungsi-fungsi yang ada selain fungsi utama (main()) merupakan program-program


bagian. Fungsi-fungsi ini dapat ditulis setelah fungsi utama atau diletakkan di file
pustaka (library). Jika fungsi-fungsi diletakkan di file pustaka dan akan dipakai di
suatu program, maka nama file judulnya (header file) harus dilibatkan dalam
program yang menggunakannya dengan preprocessor directive berupa #include.

2.1 Pengenalan Fungsi-Fungsi Dasar


2.1.1 Fungsi main()
Fungsi main() harus ada pada program, sebab fungsi inilah yang menjadi
titik awal dan titik akhir eksekusi program. Tanda { di awal fungsi menyatakan
awal tubuh fungsi dan sekaligus awal eksekusi program, sedangkan tanda } di
akhir fungsi merupakan akhir tubuh fungsi dan sekaligus adalah akhir eksekusi
program. Jika program terdiri atas lebih dari satu fungsi, fungsi main() biasa
ditempatkan pada posisi yang paling atas dalam pendefinisian fungsi. Hal ini
hanya merupakan kebiasaan. Tujuannya untuk memudahkan pencarian terhadap
program utama bagi pemrogram. Jadi bukanlah merupakan suatu keharusan.

2.1.2 #include
#include merupakan salah satu jenis pengarah praprosesor (preprocessor
directive). Pengarah praprosesor ini dipakai untuk membaca file yang di antaranya
berisi deklarasi fungsi dan definisi konstanta. Beberapa file judul disediakan
dalam C. File-file ini mempunyai ciri yaitu namanya diakhiri dengan ekstensi .h.
Misalnya pada program #include <stdio.h> menyatakan pada kompiler agar
membaca file bernama stdio.h saat pelaksanaan kompilasi. Bentuk umum
#include:
#include namafile
Bentuk pertama (#include <namafile>) mengisyaratkan bahwa pencarian file
dilakukan pada direktori khusus, yaitu direktori file include. Sedangkan bentuk
kedua (#include namafile) menyatakan bahwa pencarian file dilakukan pertama
kali pada direktori aktif tempat program sumber dan seandainya tidak ditemukan
pencarian akan dilanjutkan pada direktori lainnya yang sesuai dengan perintah
pada sistem operasi. Kebanyakan program melibatkan file stdio.h (file-judul I/O

standard, yang disediakan dalam C). Program yang melibatkan file ini yaitu
program yang menggunakan pustaka I/O (input-output) standar seperti printf().

2.1.3 Fungsi printf().


Fungsi printf() merupakan fungsi yang umum dipakai untuk menampilkan
suatu keluaran pada layar peraga. Untuk menampilkan tulisan Selamat belajar
bahasa C misalnya, pernyataan yang diperlukan berupa: printf(Selamat belajar
bahasa C);
Pernyataan di atas berupa pemanggilan fungsi printf() dengan argumen atau
parameter berupa string(tulisan). Dalam C suatu konstanta string ditulis dengan
diawali dan diakhiri tanda petik- ganda (). Perlu juga diketahui pernyataan dalam
C selalu diakhiri dengan tanda titik koma (;). Tanda titik koma dipakai sebagai
tanda pemberhentian sebuah pernyataan dan bukanlah sebagai pemisah antara dua
pernyataan. Tanda \ pada string yang dilewatkan sebagai argumen printf()
mempunyai makna yang khusus. Tanda ini bisa digunakan untuk menyatakan
karakter khusus seperti karakter baris-baru ataupun karakter backslash (miring
kiri). Jadi karakter seperti \n sebenarnya menyatakan sebuah karakter. Contoh
karakter yang ditulis dengan diawali tanda \ adalah:
\ menyatakan karakter petik-ganda
\\ menyatakan karakter backslash
\t menyatakan karakter tab
Dalam bentuk yang lebih umum, format printf() yaitu :
printf(string kontrol, daftar argumen);
dengan string kontrol dapat berupa satu atau sejumlah karakter yang akan
ditampilkan ataupun berupa penentu format yang akan mengatur penampilan dari
argumen yang terletak pada daftar argumen. Mengenai penentu format di
antaranya berupa:
%d untuk menampilkan bilangan bulat (integer)
%f untuk menampilkan bilangan titik-mengambang (pecahan)
%c untuk menampilkan sebuah karakter
%s untuk menampilkan sebuah string

Contoh:
#include <stdio.h>
main( )
{
printf(No : %d\n, 13);
printf(Nama : %s\n, ARY SULISTYO);
printf(Alamat : %f\n,90.4);
printf(Huruf : %c\n,A);
}

2.1.4 Komentar dalam Program


Untuk keperluan dokumentasi dengan maksud agar program mudah
dipahami di suatu saat lain, biasanya pada program disertakan komentar atau
keterangan mengenai program. Dalam C, suatu komentar ditulis dengan diawali
dengan tanda /* dan diakhiri dengan tanda */.
Contoh :
/*
Tanda ini adalah komentar untuk multiple lines
*/
#include <stdio.h>
main()
{
printf(ATEM-SEMARANG\n); //Ini komentar satu baris
}

2.1.5 Langkah langkah pembuatan program C pada Dev-C


1. Penulisan sintaks program
Penulisan sintaks ini dilakukan pada editor yang sudah disediakan
(biasanya layar putih pada Dev-C++).
2. Simpan data (Ctrl+S)
Untuk menulis nama file ikuti aturan yang ada seperti contohnya
terdiri dari 8 huruf tanpa spasi.

10

3. Compile Program (Ctrl+F9)


Untuk memeriksa apakah sintaks yang diketikkan dimengerti oleh
Dev-C++ serta tidak mengandung kesalahan. Dalam langkah ini juga akan
terbentuk sebuah file executable (.EXE) yang sesuai dengan nama file c-
nya. Apabila masih terdapat kesalahan dalam sintaks yang dibuat maka
telusuri kesalahannya lalu perbaiki kemudian compile ulang sampai
sukses.
4. Run Program (Ctrl+F10)
Untuk melihat hasil dari program yang kita buat maka jalankan
program dengan cara run program. Sebenarnya ada cara alternatif untuk
menjalankan program yaitu dengan cara mengklik Execute Compile &
Run atau dengan menekan tombol F9.
ama
C. TUGAS PENDAHULUAN
Tuliskan desain algoritma dan flowchart untuk soal-soal di bawah ini :
1. Mencetak kalimat Hello ATEM-SEMARANG..! dalam satu baris
2. Mencetak kalimat dalam beberapa baris, dengan tampilan sbb :
Hello...
..AKADEMI TEKNIK ELEKTROMEDIK
...SEMARANG
1
..2
...3
3. Mencetak kalimat dalam beberapa baris, dengan tampilan sbb :
No Nama Alamat
1 Syahrini Bandung
2 Luna Maya Jakarta
3 Evan Dimas Surabaya
4 Boas Salosa Jayapura
5 VanPersie Belanda

11

D. PERCOBAAN
Implementasikan semua desain yang telah dibuat dalam tugas pendahuluan
menggunakan bahasa pemrograman C

E. LAPORAN RESMI
Buat analisa dan kesimpulan

12

TIPE DATA, VARIABLE, DAN


OPERASI I/O (3)

A. Tujuan
1. Menjelaskan tentang beberapa tipe data dasar (jenis dan jangkauannya)
2. Menjelaskan tentang Variabel
3. Menjelaskan tentang konstanta
4. Menjelaskan tentang berbagai jenis operator dan pemakaiannya
5. Menjelaskan tentang instruksi I/O

B. DASAR TEORI
Data berdasarkan jenisnya dapat dibagi menjadi lima kelompok, yang
dinamakan sebagai tipe data dasar. Kelima tipe data dasar adalah:
Bilangan bulat (integer)
Bilangan real presisi-tunggal
Bilangan real presisi-ganda
Karakter
Tak-bertipe (void)
Kata-kunci yang berkaitan dengan tipe data dasar secara berurutan di antaranya
adalah int (short int, long int, signed int dan unsigned int), float, double, dan char.
Tabel 3-1 memberikan informasi mengenai ukuran memori yang diperlukan dan
kawasan dari masing-masing tipe data dasar.
Tabel 3-1. Ukuran memori untuk tipe data

13

3.1 Variabel
Variabel adalah suatu pengenal di dalam program yang berguna untuk
menyipan nilai dari tipe data tertentu. Nilai dalam variable ini bersifat dinami,
artinya nilai dapat berubah selama program berjalan. Untuk menggunakan
variable kita harus mendefinisikan terlebih dahulu dengan tipe data tertentu.
Adapun aturan penulisan pengenal untuk sebuah variabel, konstanta atau fungsi
yang didefinisikan oleh pemrogram adalah sebagai berikut :
Pengenal harus diawali dengan huruf (A..Z, a..z) atau karakter garis bawah
( _ ).
Selanjutnya dapat berupa huruf, digit (0..9) atau karakter garis bawah atau
tanda dollar ($).
Panjang pengenal boleh lebih dari 31 karakter, tetapi hanya 31 karakter
pertama yang akan dianggap berarti.
Pengenal tidak boleh menggunakan nama yang tergolong sebagai katakata
cadangan (reserved words) seperti int, if, while dan sebagainya.

3.2 Konstanta
Konstanta adalah sebuah tetapan yang nilainya didapat bias dirubah selama
program dijalankan. Penulisan konstanta mempunyai aturan tersendiri, sesuai
dengan tipe masing-masing.
Konstanta karakter misalnya ditulis dengan diawali dan diakhiri dengan
tanda petik tunggal, contohnya : A dan @.
Konstanta integer ditulis dengan tanda mengandung pemisah ribuan dan
tak mengandung bagian pecahan, contohnya : 1 dan 32767.
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 ).
Konstanta string merupakan deretan karakter yang diawali dan diakhiri
dengan tanda petik- ganda (), contohnya :Pemrograman Dasar C.

14

3.3 Operator Aritmatika


Operator untuk operasi aritmatika yang tergolong sebagai operator binary
adalah :
* perkalian
/ pembagian
% sisa pembagian
+ penjumlahan
- pengurangan
3.4 Fungsi printf()
Bentuk umum pernyataan printf() :
printf(string kontrol,argumen1, argumen2,...);
String kontrol dapat berupa keterangan yang akan ditampilkan pada layar beserta
penentu format (seperti %d, %f,%c). Penentu format dipakai untuk memberi tahu
compiler mengenai jenis data yang akan ditampilkan. Argumen sesudah string
kontrol (argumen1, argumen2,...)adalah data yang akan ditampilkan ke layar.
Argumen ini dapat berupa variabel, konstanta dan bahkan ungkapan. Misal :
printf(%d,20); //argumen berupa konstanta
printf(%d,a); //argumen berupa variabel
printf(%d,a+20); //argumen berupa ungkapan
Tabel 3.2 Penentu format variabel
No Format Keterangan
1 %d Untuk menampilkan bilangan integer bertanda (signed)
(bilangan bulat).
2 %f untuk menampilkan bilangan real dalam notasi :
dddd.dddddd (bilangan pecahan)
3 %g untuk menampilkan bilangan real dalam bentuk notasi
seperti %f,%E atau %F (bilangan pecahan double)
4 %S Untuk menampilkan karakter atau String (kalimat)

C. TUGAS PENDAHULUAN
Tuliskan desain algoritma dan flowchart untuk soal-soal di bawah ini :

15

D. PERCOBAAN
1. Diketahui variabel-variabel sebagai berikut:
var_bulat = 32767;
var_pecahan = 339.234
var_karakter = 'S';
Buat program untuk menampilkan semua variabel di atas.
2. Diketahui variabel-variabel sebagai berikut:
int a = 12, b = 2, c = 3, d = 4;
Buat program untuk mencetak hasil :
a%b
a-c
a+b
a/d
a/d*d+a%d
a%d/d*a-c
3. Buatlah program untuk menghitung luas lingkaran.
4. Buatlah program untuk menghitung luas persegi.
5. Buatlah program untuk menghitung Diskriminan dari sebuah persamaan
kuadrat dengan nilai a, b dan c dengan tipe integer. D = b2 4*a*c.

E. LAPORAN RESMI
1. Tulis listing program dari semua percobaan yang dilakukan.
2. Kemudian tuliskan outputnya. Terangkan mengapa demikian.
3. Analisa dan buat kesimpulan

16

TIPE DATA, VARIABLE, DAN


OPERASI I/O (4)

A. Tujuan
1. Menjelaskan tentang instruksi I/O

B. DASAR TEORI
Untuk keperluan menampilkan data/informasi, C menyediakan sejumlah
fungsi. Beberapa di antaranya adalah berupa printf() dan putchar() puts().
4.1 Fungsi putchar()
Fungsi putchar() digunakan khusus untuk menampilkan sebuah karakter di
layar. Penampilan karakter tidak diakhiri dengan perpindahan baris. Contoh :
putchar(A);
menghasilkan keluaran yang sama dengan
printf(%c,A);
4.2 Fungsi getchar()
Fungsi getchar() digunakan khusus untuk menerima masukan berupa sebuah
karakter dari keyboard. Contoh :
c = getchar();
maka variabel c akan berisi karakter yang diketikkan oleh user atau EOF (end of
file) jika ditemui akhir dari file. Selain fungsi scanf() dan getchar() adalagi fungsi
lain untuk menginputkan untuk sebaris karakter yaitu fungsi puts().
4.3 Fungsi scanf()
Fungsi ini digunakan untuk memasukkan berbagai jenis data. Misalnya untuk
memasukkan data jari-jari lingkaran pada program menghitung luas lingkaran.
scanf(%f,&radius);
Bentuk scanf() sesungguhnya menyerupai fungsi printf(). Fungsi ini melibatkan
penentu format yang pada dasarnya sama digunakan pada printf(). Secara umum
bentuk scanf() adalah sebagai berikut :
scanf(string kontrol, daftar_argumen);

17

Dengan string kontrol dapat berupa :


Penentu format
Karakter spasi-putih (white-space)
Karakter bukan spasi-putih
scanf(%f, &radius);
berarti (bagi komputer) : bacalah sebuah bilangan real (%f) dan tempatkan ke
alamat dari radius (&radius).
Untuk menentukan panjang medan yang disediakan bagi tampilan data, maka
sesudah tanda % dalam penentu format dapat disisipi dengan bilangan bulat yang
menyatakan panjang medan.
Untuk data yang berupa bilangan bulat, misal pada :
printf(Nilai %4d, 10);
%4d menyatakan digit untuk menampilkan bilangan 10 adalah sepanjang 4
karakter. printf(Nilai %4d, 10);

Untuk data yang berupa bilangan real, spesifikasi medannya berupa


A = panjang digit
B = jumlah digit pecahan
Contoh pada pernyataan :
printf(Harga : Rp %8.2f\n, 500.0);
%8.2f menyatakan panjang digit dari bilangan real yang akan ditampilkan adalah
8 karakter dengan jumlah digit pecahan 2 buah.
printf(Harga : Rp %8.2f\n, 500.0);

Kalau hanya jumlah digit pecahan yang perlu ditentukan, panjang medan tak perlu
disertakan, misal :

18

printf(%.2f\n, 600.0);
printf(%.2f\n, 7500.25);
hasilnya :
600.00
7500.25
Untuk data yang berupa string, contoh :
printf(%12s, Bahasa C);
maka akan ditampilkan sebagai berikut

Tampak dalam berbagai jenis data di atas, penentu format yang mengandung
panjang medan, secara default akan menampilkan data dalam bentuk rata kanan
terhadap panjang medan yang diberikan. Untuk data string yang biasanya
dikehendaki untuk ditampilkan dalam bentuk rata kiri, maka sesudah tanda %
pada penentu format %s perlu disisipkan tanda (minus), contoh : printf(%-
12s, Bahasa C); menyatakan bahwa string akan ditampilkan dalam medan
dengan panjang 12 karakter dan diatur rata kiri. Sehingga tampilan di atas berubah
menjadi :

C. TUGAS PENDAHULUAN
Tuliskan desain algoritma dan flowchart untuk soal-soal di bawah ini :

D. PERCOBAAN
1. Buatlah program untuk mengkonversi suhu dari Celcius ke Fahrenheit
dengan rumus F = C * 1.8 + 32
Input : suhu dalam Celcius
Output : suhu dalam Fahrenheit
2. Buat program untuk menghitung luas lingkaran, dengan panjang jari-jari
yang diinputkan dari keyboard. Definiskan sebuah konstanta PI dengan
nilai 3.14.

19

3. Buat program untuk menghitung penjumlahan dua bilangan yang di


inputkan dari keyboard.
4. Buat program untuk menghitung sebuah harga produk. Misal permen
seharga 100 dengan jumlah pembelian 5 maka harus membayar 500.
5. Buat program untuk mengitung sebuah diskon. Dengan memasukan harga
dan diskon.
6. Buat program pembelian untuk 5 buah produk dengan membuat
perhitungan total pembelian dengan memasukan harga masing-masing
produk.
7. Buatlah program untuk perhitungan penarikan tabungan. Dengan
memasukan nilai tabungan awal dan 3 transaksi pengambilan tabungan.

E. LAPORAN RESMI
1. Tulis listing program dari semua percobaan yang dilakukan.
2. Kemudian tuliskan outputnya. Terangkan mengapa demikian.
3. Analisa dan buat kesimpulan

20

PENGAMBILAN KEPUTUSAN
(PERCABANGAN BERSYARAT) (5)
A. Tujuan
1. Menjelaskan tentang operator kondisi (operator relasi dan logika)
2. Menjelaskan penggunaan pernyataan if
3. Menjelaskan penggunaan pernyataan if-else
B. DASAR TEORI
Untuk keperluan pengambilan keputusan, C menyediakan beberapa jenis
pernyataan, berupa
Pernyataan if
Pernyataan if-else, dan
Pernyataan switch
Pernyataan-pernyataan tersebut memerlukan suatu kondisi, sebagai basis dalam
pengambilan keputusan. Kondisi umum yang dipakai berupa keadaan benar dan
salah. Keadaan benar (True) dianggap dalam keadaan 1 dan keadaan salah (False)
dianggap dalam keadaan 0.
5.1 Operator Relasi
Operator relasi adalah operator yang digunakan untuk menentukan relasi atau
hubungan dua buah nilai. Operator relasi biasa dipakai untuk membandingkan dua
buah nilai atau expresi aritmatika yang berbeda. Hasil pembandingan berupa
keadaan benar atau salah. Keseluruhan operator relasi pada C ditunjukkan pada
Tabel 5-1
Tabel 5.1 Operator Relasi

21

Kesalan yang sering terjadi pada saat pemakaian tanda relasi adalah tanda (==)
yang biasanya ditulis oleh para programmer adalah tanda (=).
5.2 Operator Logika
Operator logika biasa dipakai untuk menghubungkan ekspresi relasi yang berupa
perbandingan dua ekspresi relasi atau lebih dalam ekspresi logika. Operator ini
digunakan di operasi yang menghasilkan nilai benar (True) dan salah (False).
Keseluruhan operator logika ditunjukkan pada tabel 5-2.
Tabel 5-2. Operator logika

Bentuk pemakaian operator && dan || adalah Pernyataan1 Operator Pernyataan2


Nilai <=50 && Nilai >=10
5.3 Pernyataan if
Pernyataan if mempunyai bentuk umum :
if (kondisi )
pernyataan;
Bentuk ini menyatakan :
Jika kondisi yang diseleksi adalah benar (bernilai logika = 1), maka
pernyataan yang mengikutinya akan diproses.
Sebaliknya, jika kondisi yang diseleksi adalah tidak benar (bernilai logika
= 0), maka pernyataan yang mengikutinya tidak akan diproses.
Mengenai kodisi harus ditulis diantara tanda kurung { }, sedangkan pernyataan
dapat berupa sebuah pernyataan tunggal, pernyataan majemuk atau pernyataan
kosong. Diagram alir dapat dilihat seperti gambar 5.1

22

Gambar 5.1. Diagram alir if


Contoh Apabila nilai lebih dari 70 maka memdapatkan A
If (nilai >= 70)
{
printf(Nilai A);
}
Program akan mengeluaran tampilan Nilai A jika nilai lebih dari 70 tetapi jika
kurang dari 70 program tidak akan mengeluarkan tampilan sama sekali.
5.4 Pernyataan if-else
Pernyataan if-else memiliki bentuk :
if (kondisi)
{
pernyataan-1;
}
else
{
pernyataan-2;
}
Diagram alir dapat dilihat seperti gambar 5.2

23

Gambar 5.2. Diagram alir if-else


Arti dari pernyataan if-else :
Jika kondisi benar, maka pernyataan-1 dijalankan.
Sedangkan bila kondisi bernilai salah, maka pernyataaan-2 yang
dijalankan.
Masing-masing pernyataan-1 dan pernyataan-2 dapat berupa sebuah
pernyataan tunggal, pernyataan majemuk ataupun pernyataan kosong.
Contoh penggunaan pernyataan if-else adalah apabila nilai lebih dari 70 maka
dinyatakan LULUS tetapi jika kurang dari 70 maka dinyatakan TIDAK
LULUS. Adapun penulisannya adalah sebagai berikut
If (nilai>=70)
{
printf (LULUS);
}
else
{
printf(TIDAK LULUS);
}
C. TUGAS PENDAHULUAN
Tuliskan desain algoritma dan flowchart untuk soal-soal di bawah ini :
D. PERCOBAAN
1. Buat program untuk menginputkan sebuah bilangan, kemudian cetak ke
layar bilangan tersebut dan beri komentar apakah bilangan tersebut ganjil
atau genap.
Contoh input = 20

24

Output = Bilangan yang diinputkan adalah 20.


Bilangan tersebut adalah bilangan genap.
2. Buat program menggunaan pernyataan if adalah untuk menentukan
besarnya potongan harga yang diterima oleh seorang pembeli, berdasarkan
kriteria :
Tidak ada potongan harga jika total pembelian kurang dari Rp. 200.000
(dalam hal ini potongan harga diinisialisasi dengan nol).
Bila total pembelian lebih dari atau sama dengan Rp. 200.000, potongan
harga yang diterima dirubah menjadi sebesar 5% dari total pembelian.
Contoh input = 150.000
Output = Total pembelian adalah Rp. 150.000
3. Ulangi soal no.2. Output diganti dengan:
Jika kurang dari Rp. 200.000 maka output = Anda tidak mendapat diskon.
4. Buat Program untuk membaca suhu air. Suhu 0 air akan berwujud padat
(es). 0 < suhu 100 berwujud cair dan suhu > 100 berwujud gas.
5. Gunakan pernyataan ifelse untuk membuat program yang menerima 2
buah bilangan bulat masukan. Tampilkan hasil dari pembagian bilangan
pertama dengan bilangan kedua, dengan ketelitian 3 desimal.
Input : bilangan 1 dan bilangan 2
Output : hasil bagi bilangan 1 dengan bilangan 2
Program bisa mengecek pembagian dengan nol, yaitu jika bilangan kedua
adalah nol, maka tidak dilakukan proses pembagian, namun ditampilkan
pesan kesalahannya (division by zero).
E. LAPORAN RESMI
1. Tulis listing program dari semua percobaan yang dilakukan.
2. Kemudian tuliskan outputnya. Terangkan mengapa demikian.
3. Analisa dan buat kesimpulan

25

PENGAMBILAN KEPUTUSAN
(PERCABANGAN BERSYARAT) (6)

A. Tujuan
1. Menjelaskan penggunaan pernyataan if dalam if
2. Menjelaskan penggunaan pernyataan else-if

B. DASAR TEORI
Untuk keperluan pengambilan keputusan, C menyediakan beberapa jenis
Pernyataan if di dalam if Di dalam suatu pernyataan if (atau if-else) bisa saja
terdapat pernyataan if (atau ifelse) yang lain. Bentuk seperti ini dinamakan
sebagai nested if. Secara umum, bentuk dari pernyataan ini adalah sebagai berikut:
Kondisi yang akan diseleksi pertama kali adalah kondisi yang terluar
(kondisi-1). Jika kondisi-1 bernilai salah, maka statemen else yang terluar
(pasangan if yang bersangkutan) yang akan diproses. Jika else
(pasangannya tsb) tidak ditulis, maka penyeleksian kondisi akan
dihentikan.
Jika kondisi-1 bernilai benar, maka kondisi berikutnya yang lebih dalam
(kondisi-2) akan diseleksi. Jika kondisi-2 bernilai salah, maka statemen
else pasangan dari if yang bersangkutan yang akan diproses. Jika else
(untuk kondisi-2) tidak ditulis, maka penyeleksian kondisi akan
dihentikan.
if (kondisi-1)
if (kondisi-2)
....
if(kondisi-n)
pernyataan;
else
pernyataan;
....
else

26

pernyataan;
else
pernyataan;
Dengan cara yang sama, penyeleksian kondisi akan dilakukan sampai dengan
kondisi-n, jika kondisi-kondisi sebelumnya bernilai benar. Contoh implementasi
nested if ini misalnya pembuatan sebuah program kalkulator sederhana. User
memberikan masukan dengan format :
Pernyataan 1 operator Pernyataan 2
Jenis operasi yang dikenakan bergantung pada jenis operator ang dimasukkan oleh
user. Oleh karena itu program akan mengecek apakah operator berupa tanda *,
/, +, ataukah tanda - .
Jika operator berupa tanda * maka Pernyataan 1 akan dikalikan dengan
Pernyataan2.
Jika operator berupa tanda / maka Pernyataan 1 akan dibagi dengan
Pernyataan 2.
Jika operator berupa tanda + maka Pernyataan 1 akan dijumlahkan
dengan Pernyataan 2.
Jika operator berupa tanda - maka Pernyataan 1 akan dikurangi dengan
Pernyataan 2.
Kalau operator yang dimasukkan bukan merupakan salah satu dari jenis
operator di atas, maka ekspresi tersebut tidak akan diproses, dan user akan
mendapatkan pesan berupa : Invalid operator !

C. TUGAS PENDAHULUAN
Tuliskan desain algoritma dan flowchart untuk soal-soal di bawah ini :

D. PERCOBAAN
1. Buatlah program untuk menghitung diskriminan dan mencari akar-akar dari
persamaan kuadrat : ax2 + bx + c = 0 , dengan ketentuan sbb :
2
D = b - 4ac
Jika D = 0 , maka terdapat 2 akar real yang kembar, yaitu :
x1 = x2 = -b / 2a

27

Jika D > 0 , maka terdapat 2 akar real yang berlainan, yaitu :


x1 = (-b + sqrt(D)) / 2a
x2 = (-b - sqrt(D)) / 2a
Jika D < 0 , maka terdapat 2 akar imaginair yang berlainan, yaitu :
x1 = -b / 2a + (sqrt(-D) / 2a) i
x2 = -b / 2a - (sqrt(-D) / 2a) i
Input : a, b, c (float)
Output : Nilai Diskriminan serta nilai akar-akar persamaan tsb (x1& x2).
Petunjuk :
- untuk mencari akar dari x, gunakan : sqrt(x) yang didefinisikan pada
<math.h>.
- gunakan else if
2. Dengan menggunakan pernyataan else..if , buatlah program kalkulator
sederhana, untuk mendapatkan tanpilan hasil sebagai berikut :
Masukkan bilangan pertama : 5
Masukkan bilangan kedua : 3
Menu Matematika
1. Penjumlahan
2. Pengurangan
3. Pembagian
4. Perkalian
Masukkan pilihan anda : 4
Hasil operasi tersebut = 15
3. Buat program untuk mengkonversikan nilai angka ke nilai huruf.
Petunjuk :
nilai_angka <=40 = E
40 <nilai_angka <=55 = D
55 <nilai_angka <=60 = C
60 <nilai_angka <=80 = B
80 <nilai_angka <=100 = A
Input : nilai_angka = 69
Output : Nilai huruf adalah B
4. Gunakan pernyaaan ifelse untuk menentukan sebuah bilangan masukan
adalah bilangan prima atau bukan.

28

Input :x
Output : x adalah bilangan prima / bukan bilangan prima

E. LAPORAN RESMI
1. Tulis listing program dari semua percobaan yang dilakukan.
2. Kemudian tuliskan outputnya. Terangkan mengapa demikian.
3. Analisa dan buat kesimpulan

29

PENGAMBILAN KEPUTUSAN
(PERCABANGAN BERSYARAT) (7)

A. Tujuan
1. Menjelaskan penggunaan pernyataan switch
B. DASAR TEORI
Pernyataan switch merupakan pernyataan yang dirancang khusus untuk
menangani pengambilan keputusan yang melibatkan sejumlah alternatif, misalnya
untuk menggantikan pernyataan if bertingkat dan digunakan untuk kondisi yang
memiliki nilai-nilai konstan. Bentuk umum pernyataan switch adalah : dengan
ekspresi dapat berupa ekspresi bertipe integer atau bertipe karakter. Demikian
juga konstanta-1, konstanta-2, , konstanta-n dapat berupa konstanta integer atau
karakter. Setiap pernyataan-i (pernyataan-1, , pernyataan-n) dapat berupa
pernyataan tunggal ataupun pernyataan jamak. Dalam hal ini urutan penulisan
pernyataan case tidak berpengaruh. Proses penyeleksian berlangsung sebagai
berikut :
switch (ekspresi)
{
case konstanta-1:
pernyataan-1;
......
break;
case konstanta-2:
.....
case konstanta-n:
pernyataan-n;
.......
break;
default:
.......
.......
break;
}
Pengujian pada switch akan dimulai dari konstanta-1. Kalau nilai
konstanta-1 cocok dengan ekspresi maka pernyataan-1 dijalankan. Kata
kunci break harus disertakan di bagian akhir setiap pernyataan case, yang
akan mengarahkan eksekusi ke akhir switch.

30

Kalau ternyata pernyataan-1 tidak sama dengan nilai ekspresi, pengujian


dilanjutkan pada konstanta-2, dan berikutnya serupa dengan pengujian
pada konstanta-1.
Jika sampai pada pengujian case yang terakhir ternyata tidak ada
kecocokan, maka pernyataan yang mengikuti kata kunci default yang akan
dieksekusi. Kata kunci default ini bersifat opsional atau bisa juga
dikatakan alternatif kondisi.
Tanda kurung kurawal tutup (}) menandakan akhir dari proses
penyeleksian kondisi case.

C. TUGAS PENDAHULUAN
Tuliskan desain algoritma dan flowchart untuk soal-soal di bawah ini :

D. PERCOBAAN
1. Tulislah kembali pernyataan-pernyataan di bawah ini dengan
menggunakan pernyataan switch
if( Nilai == 'X' ) sum = 0;
else if ( Nilai == 'Z' ) valid_flag = 1;
else if( Nilai == 'A' ) sum = 1;
else
printf("Unknown Nilai -->%c\n", Nilai );
2. Ubahlah program di bawah ini, implementasikan kembali dengan
menggunakan pernyataan switch
main()
{
int valid_operator = 1; //valid_operator diinisialisasi dengan logika 1
char operator;
float number1, number2, result;
printf("Masukkan 2 buah bilangan & sebuah operator\n");
printf("dengan format : number1 operator number2\n\n");
scanf("%f %c %f", &number1, &operator, &number2);
if(operator == '*')

31

result = number1 * number2;


else if(operator == '/')
result = number1 / number2;
else if(operator == '+')
result = number1 + number2;
else if(operator == '-')
result = number1 - number2;
else
valid_operator = 0;
if(valid_operator)
printf("\n%g %c %g is %g\n", number1, operator, number2, result );
else
printf("Invalid operator!\n");
}
3. Buatlah program untuk menampilkan menu dan melakukan proses sbb :
Menu : 1. Menghitung volume kubus
2. Menghitung luas lingkaran
3. Menghitung volume silinder.
Input : pilihan user (1, 2 atau 3)
Jika pilihan = 1, maka :
Input : panjang sisi kubus
Output : Volume kubus (vol = sisi3)
Jika pilihan = 2, maka :
Input : panjang jari-jari lingkaran
Output : Luas lingkaran (luas = 3.14 * r2)
Jika pilihan = 3, maka :
Input : panjang jari-jari lingkaran & tinggi silinder
Output : Volume silinder (vol = 3.14 * r2 * t)
Jika pilihan selain 1, 2 & 3 (default) : Tampilkan pesan kesalahan.
Petunjuk : gunakan switch-case
4. Buat program untuk membuat urutan dari hari. 1 sampai 7, senin sampai
minggu. Contoh tampilan seperti dibawah ini.

32

Masukan nilai hari = 1


Hari ke 1 = Senin

E. LAPORAN RESMI
1. Tulis listing program dari semua percobaan yang dilakukan.
2. Kemudian tuliskan outputnya. Terangkan mengapa demikian.
3. Bila pada pilihan menu diinputkan angka selain 1, 2, 3 dan 4 pada soal no.
2, apa yang terjadi ? Jelaskan
4. Analisa dan buat kesimpulan

33

Perulangan for (8)


A. Tujuan
1. Menjelaskan proses pengulangan menggunakan pernyataan for

B. DASAR TEORI
Mengulang suatu proses merupakan tindakan yang banyak dijumpai dalam
pemrograman. Pada semua bahasa pemrograman, pengulangan proses ditangani
dengan suatu mekanisme yang disebut loop. Dengan menggunakan loop, suatu
proses yang berulang misalnya menampilkan tulisan yang sama seratus kali pada
layar dapat diimpelementasikan dengan kode program yang pendek. Pada
pemrograman proses perulangan dapat dibagi menjadi 2 bagian utama yaitu:
1 Perulangan yang sudah di ketahui jumlah perulangannya sebelum
perulangan tersebut di lakukan.
2 Perulangan yang belum di ketahui jumlah perulangannya sebelum
perulangan tersebut di lakukan. Dalam hal ini dapat dibagi menjadi dua
bagian yaitu:
a) kondisi perulangan diperiksa diawal perulangan.
b) kondisi perulangan diperiksa diakhir perulangan.
Untuk kasus 1 seharusnya menggunakan perulangan dengan penyataan for dan
akan dipelajari pada praktek ini. Sedangkan pada kasus 2a dan 2b akan dibahas
pada selanjutnya.
Bentuk pernyataan for :
for (ungkapan1; ungkapan2; ungkapan3)
pernyataan;
Keterangan:
Ungkapan1 : digunakan untuk memberikan inisialisasi terhadap
variabel pengendali loop.
Ungkapan2 : dipakai sebagai kondisi untuk keluar dari loop.
Ungkapan3 : dipakai sebagai pengatur kenaikan nilai variabel
pengendali loop.
Ketiga ungkapan dalam for tersebut harus dipisahkan dengan tanda titik koma (;).
Dalam hal ini pernyatan bisa berupa pernyataan tunggal maupun jamak. Jika

34

pernyataannya berbentuk jamak, maka pernyataan-pernyataan tersebut harus


diletakkan di antara kurung kurawal buka ({) dan kurung kurawal tutup (}),
sehingga formatnya menjadi :
for (ungkapan1; ungkapan2; ungkapan3)
{
pernyataan;
pernyataan ke n;
}

Gambar 6.1. Diagram alir for


for(bilangan = 20; bilangan <= 100; bilangan += 10)
printf("%d\n", bilangan);
Pada program di atas, kenaikan terhadap variabel pengendali loop sebesar 10
(positif), yang dinyatakan dengan ungkapan ilangan += 10.
Pada contoh yang melibatkan pernyataan for di atas, kenaikan variabel
pengendali loop berupa nilai positif. Sebenarnya kenaikan terhadap variabel
pengendali loop bisa diatur bernilai negatif.
for (bilangan = 60; bilangan >= 10; bilangan -= 10)

35

printf("%d\n", bilangan);
Kadang-kadang dijumpai adanya pernyataan for yang tidak mengandung
bagian ungkapan yang lengkap (beberapa ungkapan dikosongkan). Dengan cara
ini, pernyataan
for (bilangan = 20; bilangan <= 100; bilangan += 10)
printf(%d\n, bilangan);
dapat ditulis menjadi :
bilangan = 20; /* inisialisasi di luar for */

Pengosongan ini juga dilakukan pada ungkapan yang biasa dipakai untuk
menaikkan nilai variabel pengendali loop. Sebagai gantinya, di dalam tubuh loop
diberikan pernyataan untuk menaikkan nilai variabel pengendali loop, yaitu
berupa bilangan += 10;
Ungkapan yang tidak dihilangkan berupa bilangan <=100. Ungkapan ini tetap
disertakan karena dipakai sebagai kondisi untuk keluar dari loop. Sesungguhnya
ungkapan yang dipakai sebagai kondisi keluar dari loop juga bisa dihilangkan,
sehingga bentuknya menjadi
for (;;)
pernyataan
Suatu pertanyaan mungkin timbul Lalu bagaimana caranya kalau ingin
keluar dari loop pada bentuk di atas?. Caranya adalah dengan menggunakan
pernyataan yang dirancang khusus untuk keluar dari loop. Mengenai hal ini akan
dibahas pada praktikum selanjutnya.

C. TUGAS PENDAHULUAN
Tuliskan desain algoritma dan flowchart untuk soal-soal di bawah ini :

36

D. PERCOBAAN
1. Gunakan perulangan for untuk menampilkan nilai 1 sampai dengan 10
dalam baris-baris yang terpisah.
2. Buat program untuk menampilkan tulisan ATEM SEMARANG dengan 20
baris yang terpisah
3. Buat program yang bisa menampilakan seperti di bawah ini.
70
69
68
67
66
65
4. Buat program yang bisa menampilakan seperti di bawah ini.
Baris ke-1 : a = 0, b = 0
Baris ke-2 : a = 1, b = 5
Baris ke-3 : a = 2, b = 10
Baris ke-4 : a = 3, b = 15
Baris ke-5 : a = 4, b = 20
5. Buat program dengan scanf() untuk control pengulangan penulisan. Misal
dengan memasukan 5 maka akan mengulang suatu program dengan 5 kali
perulangan. Contoh tulisan Teknik Elektro Medik 5X

E. LAPORAN RESMI
1. Tulis listing program dari semua percobaan yang dilakukan.
2. Kemudian tuliskan outputnya. Terangkan mengapa demikian.

37

Perulangan while (9)

A. Tujuan
1. Menjelaskan perbedaan for dan while serta do-while
2. Menjelaskan proses pengulangan menggunakan pernyataan while
3. Menjelaskan proses pengulangan menggunakan pernyataan do-while
B. DASAR TEORI
Seperti yang sudah dijelaskan pada bab sebelumnya, bahwa perulangan yang
sudah diketahui berapa kali akan dijalankan, maka sebaiknya menggunakan
perulangan for. Sedangkan yang belum diketahui berapakali akan diulangi maka
dapat menggunakan while atau do-while. Menggunakan pernyataan while ketika
kondisi perluangan diperiksa sebelum menjalankan pernyataan dan menggunakan
do_while ketika perulangan kodisi perulangan tersebut diperiksa setelah
mejalankan pernyataan.
Pada pernyataan while, pemeriksaan terhadap loop dilakukan di bagian awal
(sebelum tubuh loop). Pernyataan while akan diulangi terus selama kondisi
bernilai benar, atau diulangi selama kondisinya benar, jika kondisinya salah maka
perulangan (loop) dianggap selesai. Lebih jelasnya, bentuk pernyataan while
adalah sebagai berikut :
while (kondisi)
pernyataan;
pernyataan dapat berupa pernyataan tunggal, pernyataan majemuk ataupun
pernyataan kosong. Dengan melihat gambar 5.2, tampak bahwa ada kemungkinan
pernyataan yang merupakan tubuh loop tidak dijalankan sama sekali, yaitu kalau
hasil pengujian kondisi while yang pertama kali ternyata bernilai salah. Proses
pengulangan terhadap pernyataan dijelaskan pada gambar berikut :

38

Gambar Diagram alir while


Contoh
Program untuk mengulang proses 10 kali.
Int j =0 ;
While (j<10)
{
Pernyataan..
Pernyataan..
J++;
}
9.1 Perulangan Bersarang (Nested for)
Dalam pembuatan program sering kali dituntut untuk melakukan proses
perulangan yang sedang dilakukan atau dengan kata lain perulangan di dalam
perulangan. Adapun susunan programnya sesuai dibawah ini.
While (Kondisi)
{
Pernyataan
While (Kondisi)
{
Pernyataan
}
}

39

9.2 Struktur do-while


Berbeda dengan struktur perulangan while dimana kondisi terletak di awal
blok perulangan , pada struktur do-while kondisi terletak di akhir blok. Tetapi
dalam penggunaan struktur do-while pernyataan jika kondisi tidak terpenuhi
dijalankan satu kali walaupun kondisi bernilai salah sekalipun.
Struktur penulisan
Do {
Pernyataan.
}while (Kondisi);

C. TUGAS PENDAHULUAN
Tuliskan desain algoritma dan flowchart untuk soal-soal di bawah ini :

D. PERCOBAAN
1. Gunakan perulangan while untuk membuat program yang dapat
menampilkan semua karakter yang diketikkan di keyboard sampai yang
diketikkan pada keybord huruf A (A besar).
2. Gunakan perulangan while untuk membuat tulisan ATEM-SEMARANG
yang banyaknya di inputkan dari keyboard.
3. Gunakan perulangan while untuk membuat program yang dapat mencari
total angka yang dimasukkan dengan tampilan sebagai berikut :
Masukkan bilangan ke-1 : 6
Mau memasukkan data lagi [y/t] ? y
Masukkan bilangan ke-2 : 3
Mau memasukkan data lagi [y/t] ? t
Total bilangan = 9
4. Gunakan perulangan bersarang untuk menghasilkan output seperti
dibawah ini.
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
....................................................................
10 20 30 40 50 60 70 80 90 100

40

5. Gunakan perulangan do-while untuk membuat program yang dapat


menampilkan semua karakter yang diketikkan di keyboard sampai yang
diketikkan pada keybord huruf A (A besar).
6. Gunakan kombinasi perulangan for dan while untuk menghasilkan output
seperti dibawah ini
1
24
369
4 8 12 16
5 10 15 20 25
4 8 12 16
369
24
1
E. LAPORAN RESMI
1. Tulis listing program dari semua percobaan yang dilakukan.
2. Kemudian tuliskan outputnya. Terangkan mengapa demikian.

41

Perulangan for, while, break, continue (10)

A. Tujuan
1. Menjelaskan penggunaan pernyataan break
2. Menjelaskan penggunaan pernyataan continue
3. Menjelaskan penggunaan pernyataan goto
4. Menjelaskan penggunaan exit() untuk menghentikan eksekusi program

B. DASAR TEORI
Untuk keluar dari perulangan/loop dapat dilakukan setelah sarat perulangan
dipenuhi. Akan tetapi ada cara lain untuk keluar dari perulangan walaupun sarat
belum terpenuhi, yaitu dengan menggunakan pernyataan break. Pernyataan break
sesungguhnya telah diperkenalkan pada pernyataan switch. Pernyataan ini
berfungsi untuk keluar dari loop for, do-while dan while. Sedangkan pada switch
yaitu untuk menuju ke akhir (keluar dari) struktur switch.
Pernyataan break digunakan untuk keluar dari satu blok Selain pernyataan
break ada juga pernyataan yang berhubungan dengan perulangan yaitu pernyataan
continue. Pernyataan continue digunakan untuk mengarahkan eksekusi ke literasi
(proses) berikutnya pada loop yang sama. Pada do-while dan while, pernyataan
continue menyebabkan eksekusi menuju ke kondisi pengujian pengulangan. Pada
loop for, pernyataan continue menyebabkan bagian penaik variable pengendali
loop dikerjakan dan kondisi untuk keluar dari loop for diuji kembali.
Selain dua pernyataan diatas masih ada pernyataan yang berhubungan dengan
loop yaitu goto. Pernyataan goto merupakan intruksi untuk mengarahkan eksekusi
ke pernyataan yang diawali dengan suatu label. Label sendiri berupa suatu
pengenal (identifier) yang diikuti dengan tanda titik dua (:)
Contoh pemakaian goto:
goto cetak;
Mengisyaratkan agar eksekusi dilanjutkan ke pernyataan yang diawali dengan
label cetak : . Pernyataan ini sebaiknya tidak digunakan.

42

Untuk menghentikan program tanpa harus menyelesaikan sampai akhir


pernyataan, yaitu melalui pemanggilan fungsi exit(). Hal ini biasa dilakukan, jika
di dalam suatu eksekusi terdapat suatu kondisi yang tak dikehendaki. Prototipe
dari fungsi exit() didefinisikan pada file stdlib.h, yang memiliki deklarasi sebagai
berikut :
void exit(int status);

43

status biasanya diberi nilai 0 untuk pernghentian program secara normal.

C. TUGAS PENDAHULUAN
Tuliskan desain algoritma dan flowchart untuk soal-soal di bawah ini :

D. PERCOBAAN
1. Dengan menggunakan pernyataan break, buatlah program yang dapat
menampilkan semua tampilan karakter yang diketikkan dan program
berakhir ketika ditekan tombol Enter.
2. Dengan menggunakan pernyataan continue, buatlah program yang dapat
menampilkan bilangan ganjil dari 1 sampai < n (n diinputkan), kecuali
bilangan ganjil tersebut kelipatan 3.
3. Dengan menggunakan pernyataan break dan continue, buatlah program
untuk membuat program dengan input n, dan output bilangan ganjil
kecuali kelipatan 7 dan 11 mulai dari 1 sampai < n atau bilangan tersebut
<100.
4. Buatlah program untuk menerima daftar nilai mahasiswa sbb :
Input : - Jumlah data (n)
Nilai ke-1 s/d Nilai ke-n
Output : - Nilai minimal
Nilai maksimal
Nilai rata-rata (rata-rata = nilai total / jumlah data)
(Petunjuk : Gunakan loop for dan seleksi kondisi dengan if)

E. LAPORAN RESMI
1. Tulis listing program dari semua percobaan yang dilakukan.
2. Kemudian tuliskan outputnya. Terangkan mengapa demikian.

44

FUNGSI (11)

A. Tujuan
1. Memecah program dalam fungsi fungsi yang sederhana.
2. Menjelaskan tentang pemrograman terstruktur.

B. DASAR TEORI
Fungsi adalah suatu bagian dari program yang dirancang untuk melaksanakan
Tugas-tugas tertentu dan letaknya dipisahkan dari program yang
menggunakannya. Elemen utama dari program bahasa C berupa fungsi-fungsi,
dalam hal ini program dari bahasa C dibentuk dari kumpulan fungsi pustaka
(standar) dan fungsi yang dibuat sendiri oleh pemrogram. Fungsi banyak
digunakan pada program C dengan tujuan :
Program menjadi terstruktur, sehingga mudah dipahami dan mudah
dikembangkan. Dengan memisahkan langkah-langkah detail ke satu atau
lebih fungsi-fungsi, maka fungsi utama (main()) menjadi lebih pendek,
jelas dan mudah dimengerti.
Dapat mengurangi pengulangan (duplikasi) kode. Langkah-langkah
program yang sama dan dipakai berulang-ulang di program dapat
dituliskan sekali saja secara terpisah dalam bentuk fungsi-fungsi.
Selanjutnya bagian program yang membutuhkan langkah-langkah ini tidak
perlu selalu menuliskannya, tetapi cukup memanggil fungsi-fungsi
tersebut.
Dasar Fungsi
Sebagai Contoh Fungsi standart dalam C adalah;
_ printf() , yaitu untuk menampilkan informasi atau data ke layar.
_ scanf() , yaitu untuk membaca kode tombol yang diinputkan
Pada umumnya fungsi memerlukan nilai masukan atau parameter yang
disebut sebagai argumen. Nilai masukan ini akan diolah oleh fungsi. Hasil akhir
fungsi berupa sebuah nilai (disebut sebagai return value atau nilai keluaran

45

fungsi). Oleh karena itu fungsi sering digambarkan sebagai "kotak gelap" seperti
ditunjukkan pada gambar di bawah ini.

Gambar 11.1 Fungsi sebagai sebuah kotak gelap


Penggambaran sebagai kotak gelap di antaranya menjelaskan bahwa bagian dalam
fungsi bersifat pribadi bagi fungsi. Bentuk umum dari definisi sebuah fungsi
adalah sebagai berikut ;
tipe-keluaran-fungsi nama-fungsi (deklarasi argumen)
{
tubuh fungsi
}
Keterangan :
tipe-keluaran-fungsi, dapat berupa salah satu tipe data C, misalnya char
atau int . Kalau penentu tipe tidak disebutkan maka dianggap bertipe int
(secara default). tubuh fungsi berisi deklarasi variabel (kalau ada) dan
statemen-statemen yang akan melakukan tugas yang akan diberikan
kepada fungsi yang bersangkutan.
Tubuh fungsi ini ditulis di dalam tanda kurung kurawal buka dan kurung
kurawal tutup. Sebuah fungsi yang sederhana bisa saja tidak mengandung
parameter sama sekali dan tentu saja untuk keadaan ini deklarasi
parameter juga tidak ada. Contoh :
int inisialisasi()
{
return(0);
}
inisialisasi()
{
return(0);
}

46

Pada fungsi di atas :


_ tipe keluaran fungsi tidak disebutkan, berarti keluaran fungsi ber tipe int.
_ inisialisasi adalah nama fungsi
_ Tanda () sesudah nama fungsi menyatakan bahwa fungsi tak memiliki
parameter.
_ Tanda { dan } adalah awal dan akhir fungsi
_ return(0) merupakan sebuah pernyataan dalam tubuh fungsi.

Gambar 11.2 Penjelasan definisi sebuah fungsi


Memberikan Nilai Keluaran Fungsi
Suatu fungsi dibuat untuk maksud menyelesaikan tugas tertentu. Suatu fungsi dapat
hanya melakukan suatu tugas saja tanpa memberikan suatu hasil keluaran atau
melakukan suatu tugas dan kemudian memberikan hasil keluaran. Fungsi yang hanya
melakukan suatu tugas saja tanpa memberikan hasil keluaran misalnya adalah fungsi
untuk menampilkan hasil di layar. Dalam tubuh fungsi, pernyataan yang digunakan
untuk memberikan nilai keluaran fungsi berupa return. Sebagai contoh, pada fungsi
inisialisasi() di atas terdapat Pernyataan
return(0);
merupakan pernyataan untuk memberikan nilai keluaran fungsi berupa nol.

Gambar 11.3 Proses pemanggilan fungsi


Program di atas sekaligus menjelaskan bahwa suatu fungsi cukup didefinisikan satu
kali tetapi bisa digunakan beberapa kali. Pada keadaan semacam ini seandainya tubuh

47

fungsi mengandung banyak pernyataan, maka pemakaian fungsi dapat menghindari


duplikasi kode dan tentu saja menghemat penulisan program maupun kode dalam
memori. Misalnya pada saat pernyataan
x = inisialisasi();
dijalankan, mula-mula eksekusi akan diarahkan ke fungsi inisialisasi(), selanjutnya
suatu nilai keluaran (hasil fungsi) akhir fungsi diberikan ke x. Proses yang serupa,
dilakukan untuk pernyataan
y = inisialisasi();
Bagi suatu fungsi, jika suatu pernyataan return dieksekusi, maka eksekusi terhadap
fungsi akan berakhir dan nilai pada parameter return akan menjadi keluaran fungsi.
Untuk fungsi yang tidak memiliki pernyataan return, tanda } pada bagian akhir fungsi
akan menyatakan akhir eksekusi fungsi. Di bawah ini diberikan contoh sebuah fungsi
yang mengandung dua buah pernyataan return. Fungsi digunakan untuk memperoleh
nilai minimum di antara 2 buah nilai yang menjadi parameternya.
int minimum(int x, int y)
{
if (x < y)
return(x);
else
return(y);
}
Pada fungsi di atas terdapat dua buah parameter berupa x dan y. Oleh karena itu
fungsi juga mengandung bagian untuk mendeklarasikan parameter, yang menyatakan
x dan y bertipe int. Adapun penentuan nilai keluaran fungsi dilakukan pada tubuh
fungsi, berupa pernyataan
if (x < y)
return(x);
else
return(y);
yang menyatakan :
_ jika x < y maka nilai keluaran fungsi adalah sebesar nilai x.
_ untuk keadaan lainnya (x >= y) maka keluaran fungsi adalah sebesar y.

48

Fungsi Dengan Keluaran Bukan Integer


Untuk fungsi yang mempunyai keluaran bertipe bukan integer, maka fungs haruslah
didefiniskan dengan diawali tipe keluaran fungsinya (ditulis di depan nama fungsi).
Sebagai contoh untuk menghasilkan nilai terkecil di antara dua buah nilai real, maka
definisinya berupa :
float minimum(float x, float y)
{
if (x < y)
return(x);
else
return(y);
}
Perhatikan, di depan nama minimum diberikan tipe keluaran fungsi berupa float.
Seluruh parameter sendiri juga didefinisikan dengan tipe float. Khusus untuk fungsi
yang dirancang tanpa memberikan nilai keluaran (melainkan hanya menjalankan
suatu tugas khusus) biasa didefinisikan dengan diawali kata kunci
void (di depan nama fungsi).
Prototipe Fungsi
Prototipe fungsi digunakan untuk menjelaskan kepada kompiler mengenai :
tipe keluaran fungsi
_ jumlah parameter
_ tipe dari masing-masing parameter.
Bagi kompiler, informasi dalam prototipe akan dipakai untuk memeriksa keabsahan
(validitas) parameter dalam pemanggilan fungsi. Salah satu keuntungannya adalah,
kompiler akan melakukan konversi seandainya antara tipe parameter dalam fungsi
dan parameter saat pemanggilan fungsi tidak sama, atau akan menunjukan kesalahan
bila jumlah parameter dalam definisi dan saat pemanggilan berbeda. Contoh prototipe
fungsi;
float jumlah (float x, float y);
atau
float jumlah (float, float);
Penjelasannya adalah sbb :

49

Gambar 6.4 Prototipe fungsi


Untuk fungsi yang tidak memiliki argumen (contoh program void.c), maka
deklarasinya adalah
void info_program(void);
menyatakan bahwa info_program()
tidak memiliki parameter
Catatan :
_ Untuk fungsi-fungsi pustaka, prototipe dari fungsi-fungsi berada di file-file
judulnya (header file). Misalnya fungsi pustaka printf() dan scanf() prototipenya
berada pada file dengan nama stdio.h
_ Untuk fungsi pustaka pencantuman pada prototipe fungsi dapat dilakukan
dengan menggunakan preprocessor directive #include.

C. TUGAS PENDAHULUAN
Tuliskan desain algoritma dan flowchart untuk soal-soal di bawah ini :

D. PERCOBAAN
1. Buatlah sebuah fungsi yang berfungsi untuk menampilkan sebuah string
(di layar) = ATEM SEMARANG ( Fungsi tersebut tidak memiliki nilai
kembalian (return value) dan juga tidak menerima parameter masukan
apapun.
2. Buatlah sebuah fungsi untuk menghitung nilai bilangan kuadrat (misal
nama fungsinya = kuadrat). Fungsi tersebut memiliki sebuah parameter
bertipe float, yaitu bilangan yang akan dikuadratkan serta memiliki sebuah
return value bertipe float, yaitu hasil kuadratnya.
3. Buatlah sebuah fungsi untuk menghitung sebuah luas segitiga, bujur
sangkar, lingkaran yang nantinya akan di panggil pada program utama.

50

4. Ubahlah program kalkulator yang telah di buat pada praktek sebelumnya


dan pisahkan dengan berbagai fungsi.
5. Membuat fungsi untuk menghitung bilangan terkecil dari dua buah
bilangan.

E. LAPORAN RESMI
1. Tulis listing program dari semua percobaan yang dilakukan.
2. Kemudian tuliskan outputnya. Terangkan mengapa demikian.

51

Array (12)

A. Tujuan
1. Menjelaskan tentang variabel array
2. menggunakan variabel array dalam pembuatan program

B. DASAR TEORI
Array adalah suatu variabel yang merepresentasikan kumpulan data yang
memiliki data dengan tipe yang sama. Setiap data yang terdapat dalam array
menempati alamat memori yang berbeda-beda dan dapat disebut elemen array.
Untuk mengakses nilai dari suatu elemen array dapat menggunakan index. Untuk
permulaan dari index dimulai dengan 0 bukan 1. Tabel dibawah ini
mengilustrasikan pemakaian array.

Untuk mendeklarasikan suatu array satu dimensi yaitu dengan menggunakan


tanda [ ]. Adapun bentuk umum dari pendeklarasian adalah sebagai berikut,
Tipe_data nama_array[banyak_elemen];
Sebagai contoh apabila ingin mendeklarasikan array dengan nama A
sebanyak 10 elemen data yang bertipe int. Maka ditulis int A[10];

A[0] menunjukan nilai kandungan oleh elemen pertama. A[1] menunjukkan


elemen ke dua dan begitu seterusnya. Adapun cara memasukan elemen array
adalah sebagai berikut,
A[0]=1;
A[1]=2;
A[2]=3;
A[3]=4;

52

A[9]=10;
Inisialisai Array
Pada saat array dideklarasikan, apabila tidak melakukan inisialisasi secara
explisit terhadap elemen-elemen didalamnya,maka kompilator C akan secara
otomatis mengeset nilainya menjadi nol (0). Dibawah ini cara melakukan
inisialisasi nilai terhadap elemen array. Sebagai contoh memasukan 3 buah array
dengan nama A,B dan C yang semuanya bertipe integer.
int A[5] = {1,2,3,4,5};
int B[5]={10};
intC[5]={10,0,30};
Pada baris pertama (Array A) telah menginisialisasi terhadap 5 elemen array
yaitu dengan nilai 1,2,3,4,5 sehingga dapat di gambar kan sebagai berikut.

Sedangkan untuk elemen B yang hanya memasukan nilai 10 maka hasil elemen
sebagai berikut,

Untuk elemen C yang hanya memasukan inisialisasi pada elemen ke 1 dan ke 3


maka hasilnya sebagai berikut,
10 0 30 0 0
C[0] C[1] C[2] C[3] C[4]

Array Konstan
Seperti variabel biasa elemen array dapat dibuat menjadi konstan, artinya nilai
tidak dapat dirubah selama program dijalankan. Caranya yaitu dengan menambah
fungsi const pada saat pendeklarasian array serta mengisikan nilai nilai yang
didefinisikan. Berikut ini adalah bentuk umumnya.
Const tipe_data nama_array[N] = { nilai1,nilai2,nilai N}
Sebagai contoh apabilai nilai array A dibuat konstan.
Const int A[3] = {10,20,30};

53

Array Sebagai Tipe Data Bentukan


Array dapat juga digunakan sebagai tipe data bentukan artinya array dapat
digunakan untuk mendeklarasikan variabel lain. Dalam hal ini bahasa C
menyediakan fungsi typedef. Sebagai contoh penulisanya yaitu Typedef int
LARIK[100];
Sampai disini LARIK dapat digunakan untuk mendeklarasikan variabel lain.
Contoh :
LARIK X;
Maka nilai dari LARIK menjadi nilai pada variabel X.

Larik multi dimensi


Array Dua Dimensi
Array dua dimensi adalah array yang memiliki dua buah subskrip, yaitu baris dan
kolom. Untuk mendeklarasikan array dua dimensi menggunakan bentuk umum
berikut ini,
Tipe_data nama_array [banyak baris] [banyak kolom];
Sebagai contoh apabila akan membuat deklarasi matrik ber ordo 3x2, maka
menuliskan sintak untuk mendeklarasikannya sebagai berikut,
Int M [3] [2];
Untuk mempermudah memahami, bentuk matrik diatas dapat dituliskan dalam
bentuk tabel berikut,

Untuk inisialisasi nilai terhadap array dua dimensi adalah sebagai berikut,
int A [3] [2] = { 10, 20, /* Inisialisasi nilai pada baris pertama */
30, 40, /* Inisialisasi nilai pada baris kedua */
50, 60 }; /* Inisialisasi nilai pada baris ketiga */

54

Array tiga Dimensi


Berbeda dengan array dua dimensi yang hanya memiliki dua buah sebskrip, pada
array tiga dimensi subskrip yang memiliki ada tiga. Untuk mempermudah
bayangkanlah sebua kubus atau balok dimana bangunan tersebut memiliki
panjang, lebar dan tinggi. Jika secara matematis hal tersebut dapat
direpresentasikan ke dalam tiga buah sumbu, yaitu sumbu x,y dan z.
Gambar Contoh Bentuk Array 3 dimensi
Bentuk umum pendeklarasian array tiga dimensi adalah sebagai berikut,
Tipe_data nama_array [banyaknya_elemen_pada_sumbu_X]
[banyaknya_elemen_pada_sumbu_Y]
[banyaknya_elemen_pada_sumbu_Z];
Contoh
Int Arr3D [3] [4] [6];
Artinya Array Arr3D memiliki 3 buah elemen bertipe int yang masing-masing
terdiri dari 4 buah elemen lain dimana keempat buat elemen tersebut juga masing-
masing terdiri dari 6 buah elemen.

C. TUGAS PENDAHULUAN
Tuliskan desain algoritma dan flowchart untuk soal-soal di bawah ini :

D. PERCOBAAN
1. Menyimpan huruf pada array dan menampilkannya.
2. Mencari bilangan terbesar pada array. Dengan data 8 7 6 5 4 6 2 7 8 10
3. Menampilkan masukkan data pada array melalui keybord dengan jumlah
masukkan data 5 buah dan menjumlahkan semua data.
4. Menjumlahkan dua buah array dengan data sebagai berikut,
[1,2,3,4,5]
[6,7,8,9,10]
5. Menampilkan data dari array dari belakang.
[1,2,3,4,5,6] > 6 5 4 3 2 1
6. Menampilkan negara dan ibu kota dengan array 2 dimensi
- Negara[0,0] = Indonesia
- Negara[0,1] = Jakarta
- Negara[1,0] = Malaysia

55

- Negara[1,1] = Kuala Lumpur


- Negara[2,0] = Spanyol
- Negara[2,1] = Madrid
- Negara[3,0] = Italia
- Negara[3,1] = Roma

E. LAPORAN RESMI
1. Tulis listing program dari semua percobaan yang dilakukan.
2. Kemudian tuliskan outputnya. Terangkan mengapa demikian.

56

Anda mungkin juga menyukai