Nama :
NRP :
Kelas Praktikum :
Hari / Waktu :
Penyusun:
Tim Dosen
Tim Asisten Tetap
Dilarang memperbanyak, memindahkan sebagian maupun seluruh isi buku ini dalam bentuk
apapun, secara elektronik maupun mekanis, termasuk memfotokopi, merekam, atau dengan
teknik perekaman lainnya di luar keperluan praktikum Teknik Informatika Universitas Kristen
Petra Surabaya tanpa izin tertulis dari penerbit.
Tata Tertib Praktikum
Pakaian
Memakai pakaian rapi dan bersepatu, minimal sepatu sandal.
Selama praktikum
Keterlambatan yang ditolerir adalah 15 menit. Selebihnya praktikan
tidak diperkenankan mengikuti praktikum.
Apabila praktikan tidak hadir 3 kali tanpa pemberitahuan dan izin dari
asisten, maka praktikan dianggap gugur dan nilai praktikum yang
bersangkutan diberi nilai 0 (nol).
i
Dilarang membuka halaman web apapun (termasuk email, forum, dan
sejenisnya) selain untuk kepentingan praktikum yang bersangkutan.
Pengumpulan tugas
Tugas yang diberikan pada tiap pertemuan, HARUS dikumpulkan pada
pertemuan berikutnya.
Tugas dikumpulkan dalam bentuk print out dan source code dibawa
pada waktu praktikum kecuali praktikum tertentu dengan kesepakatan
terlebih dahulu.
Sanksi pelanggaran
Apabila praktikan diketahui berbuat curang, maka :
Akan diberikan nilai 0 untuk semua nilai praktikum pada hari tersebut.
Kriteria kecurangan
Mencontek tugas, tes pendahuluan, atau materi.
ii
DAFTAR ISI
iii
URAIAN .............................................................................................................................30
RINGKASAN.....................................................................................................................36
LATIHAN/TUGAS ...........................................................................................................36
MODUL 6 – STRUKTUR KONTROL KONDISI ..............................................................37
TUJUAN .............................................................................................................................37
PRASYARAT .....................................................................................................................37
DESKRIPSI .........................................................................................................................37
RELEVANSI .......................................................................................................................37
URAIAN .............................................................................................................................37
RINGKASAN.....................................................................................................................47
LATIHAN/TUGAS ...........................................................................................................47
MODUL 7 – STRUKTUR KONTROL PERULANGAN...................................................51
TUJUAN .............................................................................................................................51
PRASYARAT .....................................................................................................................51
DESKRIPSI .........................................................................................................................51
RELEVANSI .......................................................................................................................51
URAIAN .............................................................................................................................51
RINGKASAN.....................................................................................................................56
LATIHAN/TUGAS ...........................................................................................................56
MODUL 8 – ARRAY 1 DIMENSI .......................................................................................59
TUJUAN .............................................................................................................................59
PRASYARAT .....................................................................................................................59
DESKRIPSI .........................................................................................................................59
RELEVANSI .......................................................................................................................59
URAIAN .............................................................................................................................59
RINGKASAN.....................................................................................................................63
LATIHAN/TUGAS ...........................................................................................................63
MODUL 9 – ARRAY 2 DIMENSI .......................................................................................65
TUJUAN .............................................................................................................................65
PRASYARAT .....................................................................................................................65
DESKRIPSI .........................................................................................................................65
RELEVANSI .......................................................................................................................65
URAIAN .............................................................................................................................65
RINGKASAN.....................................................................................................................70
LATIHAN/TUGAS ...........................................................................................................70
MODUL 10 – STRING ..........................................................................................................72
TUJUAN .............................................................................................................................72
PRASYARAT .....................................................................................................................72
DESKRIPSI .........................................................................................................................72
RELEVANSI .......................................................................................................................72
URAIAN .............................................................................................................................72
RINGKASAN.....................................................................................................................78
LATIHAN/TUGAS ...........................................................................................................78
MODUL 11 – POINTER .......................................................................................................80
TUJUAN .............................................................................................................................80
PRASYARAT .....................................................................................................................80
iv
DESKRIPSI .........................................................................................................................80
RELEVANSI .......................................................................................................................80
URAIAN .............................................................................................................................80
RINGKASAN.....................................................................................................................85
LATIHAN/TUGAS ...........................................................................................................85
MODUL 12 – FUNGSI ..........................................................................................................87
TUJUAN .............................................................................................................................87
PRASYARAT .....................................................................................................................87
DESKRIPSI .........................................................................................................................87
RELEVANSI .......................................................................................................................87
URAIAN .............................................................................................................................87
RINGKASAN.....................................................................................................................96
LATIHAN/TUGAS ...........................................................................................................96
MODUL 13 – FILE.................................................................................................................97
TUJUAN .............................................................................................................................97
PRASYARAT .....................................................................................................................97
DESKRIPSI .........................................................................................................................97
RELEVANSI .......................................................................................................................97
URAIAN .............................................................................................................................97
RINGKASAN...................................................................................................................102
LATIHAN/TUGAS .........................................................................................................103
APPENDIX – MENGGUNAKAN VISUAL C++ 6..........................................................105
APPENDIX – FUNGSI ANIMASI.....................................................................................110
DAFTAR PUSTAKA ...........................................................................................................111
v
DAFTAR GAMBAR
vi
DAFTAR PROGRAM
vii
DAFTAR TABEL
viii
Modul Ajar Algoritma dan Pemrograman Modul 1- Pendahuluan
MODUL 1 - PENDAHULUAN
TUJUAN
Setelah selesai mempelajari modul ini Anda mampu melakukan hal-hal berikut:
1. Mengerti dan memahami cara kerja komputer
2. Mampu menyesuaikan pola pikir agar serupa dengan pola pikir yang
dimiliki oleh komputer.
3. Mampu menuliskan tahapan-tahapan penyelesaian persoalan secara
terstruktur
PRASYARAT
-
DESKRIPSI
Pada awal bagian dari modul ini akan diberikan contoh bagaimana sebuah robot
dapat menyelesaikan perintah-perintah yang diberikan kepadanya.
Setelah itu akan digambarkan bahwa ada kesamaan antara cara kerja robot
dengan cara pembuatan program komputer.
RELEVANSI
Setelah modul ini berakhir, akan dilanjutkan dengan melakukan analisis
persoalan pemrograman dengan membuat algoritma.
URAIAN
Untuk mendasari pengetahuan kita dalam membuat program, maka hal pertama
yang harus kita ketahui adalah bagaimana sebenarnya sebuah program
komputer bekerja. Dengan mengetahui bagaimana sebenarnya cara program
komputer bekerja, maka kita dapat menyesuaikan pola pikir kita agar serupa
dengan pola pikir yang dimiliki oleh komputer (Budi Hartanto, 2004).
1
Modul Ajar Algoritma dan Pemrograman Modul 1- Pendahuluan
2
Modul Ajar Algoritma dan Pemrograman Modul 1- Pendahuluan
tidak mampu menyelesaikan tugas yang kita inginkan, maka kita dapat
menyusun penyelesaian tugas tersebut dari perintah-perintah lain yang lebih
sederhana dan lebih dimengerti komputer.
RINGKASAN
Perlu adanya kesamaan pola pikir kita dengan cara kerja program komputer.
Sebuah program yang kompleks dapat dibagi menjadi perintah-perintah dasar
yang lebih sederhana. Dalam pembuatan juga ada aturan yang harus dipatuhi
termasuk di antara urutan-urutan perintah harus benar.
3
Modul Ajar Algoritma dan Pemrograman Modul 1- Pendahuluan
LATIHAN/TUGAS
1. Apa itu program komputer?
2. Sebutkan dan jelaskan tiga buah syarat yang harus diperhatikan saat
membuat program komputer?
3. Buatlah langkah-langkah atau perintah-perintah dasar yang harus dilakukan
oleh sebuah robot untuk menyelesaikan pekerjaan berikut :
Mencuci peralatan makan yang kotor.
Menyalakan sebuah komputer.
4
Modul Ajar Algoritma dan Pemrograman Modul 2 - Algoritma
MODUL 2 – ALGORITMA
TUJUAN
Setelah selesai mempelajari modul ini Anda mampu melakukan hal-hal berikut:
1. Mengerti dan memahami cara melakukan suatu analisis permasalahan.
2. Mampu menganalisis suatu permasalahan.
3. Mengerti dan memahami simbol-simbol flowchart.
4. Mampu menuliskan algoritma dalam bentuk flowchart.
PRASYARAT
1. Mahasiswa telah mengerti prinsip program komputer bekerja.
2. Telah menyelesaikan semua tugas/latihan pada modul 1
DESKRIPSI
Pada modul ini akan dibahas mengenai cara melakukan analisis dari suatu
permasalahan. Dari permasalahan yang diberikan, Anda diminta untuk
melakukan analisis. Dari analisis tersebut Anda perlu menentukan input, proses
dan output. Kemudian dibuat perancangan dalam bentuk flowchart.
RELEVANSI
Setelah mengetahui cara komputer berpikir, langkah selanjutnya adalah
bagaimana menyusun suatu perintah kompleks menjadi perintah-perintah dasar
dengan pola (bahasa) yang universal (algoritma), agar dapat dipahami oleh
semua orang. Dalam modul ini penulisan algoritma akan menggunakan model
flowchart.
Dengan pembuatan flowchart, akan memudahkan kita menerjemahkan algoritma
tersebut ke dalam bentuk program komputer yang akan dibahas pada modul 3.
URAIAN
Berikut ini adalah contoh sebuah persoalan matematis :
Hitung rata-rata dari sebuah deret nilai.
Maka perintah-perintah untuk menyelesaikan persoalan tersebut adalah:
1. Misalkan jumlah bilangan pada deret adalah n
2. Asumsikan n lebih dari atau sama dengan 1
3. Hitung total (sum) dari n bilangan
4. Sebut total ini s
5. Kemudian rata-rata adalah s/n
5
Modul Ajar Algoritma dan Pemrograman Modul 2 - Algoritma
6
Modul Ajar Algoritma dan Pemrograman Modul 2 - Algoritma
5. Testing
Mencoba berkali-kali dengan data yang berlainan untuk menyimpulkan
apakah perangkat lunak yang dibuat masih mengandung error atau tidak.
6. Maintenance
Melakukan modifikasi perangkat lunak untuk menghilangkan error yang
sebelumnya tidak terdeteksi dan untuk menjaga agar tetap up to date.
Simbol-simbol Flowchart
Inisialisasi
Proses
Konektor
Input / Output
7
Modul Ajar Algoritma dan Pemrograman Modul 2 - Algoritma
True
False
Pada struktur kontrol kondisi (pilihan), terjadi pemilihan alternatif. Jika kondisi
terpenuhi maka masuk ke alur TRUE (T) dan jika kondisi tidak terpenuhi maka
masuk ke alur proses FALSE (F).
8
Modul Ajar Algoritma dan Pemrograman Modul 2 - Algoritma
Raise hand
False
Pada gambar di atas tampak struktur kontrol Pilihan dengan satu pilihan (single
selection).
if you’re happy
smile
else
frown
Happy ? True
False
Frown Smile
Pada gambar di atas tampak struktur kontrol Pilihan dengan dua pilihan (double
selection).
9
Modul Ajar Algoritma dan Pemrograman Modul 2 - Algoritma
False
False
Pada gambar di atas tampak struktur kontrol Pilihan dengan banyak pilihan
(multiple selection-switch).
3. Perulangan
True
False
10
Modul Ajar Algoritma dan Pemrograman Modul 2 - Algoritma
False
True
Ask “Must I eat veggie ?”
False
11
Modul Ajar Algoritma dan Pemrograman Modul 2 - Algoritma
Counter = 1
Add 1 to Counter
Teaching a baby to count from 1
to 10:
counter = 1
if counter <= 10:
Counter <= 10 Print
print counter number ?
True
Counter
increment counter
False
1. Baca problem
Buat program untuk menghitung jarak yang ditempuh Arnie (dalam mil)
sewaktu ia lari pagi, jika rata-rata banyaknya langkah yang dibuat dalam tiap
menit dan waktu yang diperlukan untuk joging (dalam jam dan menit)
diinput. Asumsi 1 langkah = 2.5 feet dan 1 mil = 5280 feet.
2. Analisis
12
Modul Ajar Algoritma dan Pemrograman Modul 2 - Algoritma
Perancangan
Baca Rata, Jam, menit
Hitung Jarak
Jarak = (Rata (60 * jam + menit) 2.5)/5280
Cetak Jarak
Flowchart
Start
Baca Jam,
menit, Rata
Cetak Jarak
Stop
RINGKASAN
Dalam menyelesaikan suatu persoalan pemrograman ada beberapa tahapan
yang perlu dilakukan di antaranya adalah analisis permasalahan. Dari hasil
analisis tersebut dibuatlah rancangan algoritma, dimana algoritma ini bisa
dituliskan dalam bentuk flowchart. Ada tiga macam struktur kontrol dalam
pemrograman, 1) sekuensial, 2) kondisi dan 3)Perulangan/iterasi.
LATIHAN/TUGAS
1. Buatlah flowchart program untuk menghitung dan menampilkan hasil dari
selisih antara 2 waktu.
Contoh:
Waktu 1: 1 jam 23 menit 10 detik
Waktu 2: 0 jam 50 menit 30 detik
Hasil : 0 jam 32 menit 40 detik
Asumsikan waktu 1 selalu lebih besar dari waktu 2.
13
Modul Ajar Algoritma dan Pemrograman Modul 2 - Algoritma
2. Tampilkan suku – suku dari deret berikut ini selama jumlahnya masih kurang
dari n (diinputkan):
1 + 3 + 7 + 13 + 21 + …
3. Menampilkan deret fibonnaci selama bilangan ke n masih kurang dari x
(diinputkan):
1, 1, 2, 3, 5, 8, …, (suku ke-(n-1) + suku ke-(n-2))
4. Buatlah flowchart untuk mengkonversi suatu bilangan (dari 1 – 100) yang diinputkan
menjadi bilangan romawi!
5. Buatlah program untuk menkonversikan celcius ke Fahrenheit, Kelvin, dan Reamur.
6. Buatlah flowchart program untuk menghitung dan menampilkan volume bola dengan
rumus:
(4 x π x jari-jari3)/3
7. Buatlah flowchart untuk mengubah satuan waktu dengan format detik menjadi
format jam – menit – detik. Input yang dimasukkan berupa jumlah detik dengan
jarak mulai dari 1 sampai 86399, selain itu outputkan “Data error”.
Contoh:
Input => 3663
86468
-2
Output => 1 : 1 : 3
Data error
Data error
8. Buatlah flowchart untuk membalik angka dari depan ke belakang. Input yang
diterima berupa sebuah angka.
Contoh:
Input => 147
71
569
Output => 741
17
965
9. Buatlah flowchart untuk menentukan apakah habis dibagi 3, habis dibagi 5, atau
habis dibagi 11. Input yang dimasukkan berupa angka dengan jarak yang tidak
terbatas. Outputkan “habis dibagi 3”, “habis dibagi 5”, “habis dibagi 11”.
Contoh:
Input => 33
90
330
Output => Habis dibagi 11
Habis dibagi 3 dan 5
Habis dibagi 3, 5, dan 11
14
Modul Ajar Algoritma dan Pemrograman Modul 2 - Algoritma
10. Buatlah flowchart untuk menentukan nilai A – E yang didapatkan, dan juga apakah
lulus atau tidak lulus. Input yang dimasukkan berupa nilai 0 – 100, kemudian nilai
tersebut akan dikonversikan menjadi nilai A – E.
Daftar konversi nilai :
Prosentase nilai Nilai huruf
86 – 100 A
76 – 85 B+
69 – 75 B
61 – 68 C+
56 – 60 C
41 – 55 D
0 – 40 E
Contoh:
Input => 90
68
55
Output => A, Lulus
C+, Lulus
D, Tidak lulus
11. Menentukan apakah sebuah bilangan yang diinputkan merupakan bilangan bulat atau
tidak.
Contoh:
Input: 3,14 Output: Bilangan tidak bulat
Input: 4 Output: Bilangan bulat
Panjang jari-jari bola diinputkan pada saat program dieksekusi.
12. Filbert menabung di Bank Bunga. Saldo awal Filbert adalah Rp X. Setiap bulannya
Bank Bunga memberikan bunga sebesar 7% kepada nasabah yang saldonya di
bawah Rp 10.000.000,00 dan 5% kepada nasabah yang saldonya di atas Rp
10.000.000,00. Hitung total saldo Filbert di Bank Bunga setelah N bulan! (X dan N
diinputkan)
13. Ali, Budi, dan Cecep merupakan mahasiswa pemalas yang suka tidur. Sebelum
mereka tidur mereka selalu mengset alarm untuk membangunkan mereka. Namun
pada kenyataannya ketika alarm berbunyi, ketiganya selalu memencet tombol
“snooze” untuk mematikan alarm sementara. Pada pukul N.00 alarm Ali, Budi dan
Cecep bunyi secara bersamaan. Saat tombol “snooze” ditekan, alarm Ali akan
berhenti selama 8 menit, alarm Budi akan berhenti selama 6 menit, dan alarm Cecep
akan berhenti selama 3 menit. Buatlah flowchart untuk menentukan pukul berapa
pertama kali alarm mereka berbunyi secara bersamaan lagi! (N diinputkan)
14. Buatlah flowchart untuk sebuah game tebak angka di mana pada awal permainan
komputer merandom angka tersebut (dari 0 – 10). Pemain memiliki kesempatan 3x
untuk menginputkan angka. Bila pemain salah menebak maka komputer akan
memberikan notifikasi bahwa angka tebakan tersebut terlalu besar atau terlalu kecil.
Apabila selama 3x pemain tidak berhasil menebak angka tersebut maka pemain
kalah. Tetapi bila pemain berhasil menebak angka tersebut maka pemain menang.
15
Modul Ajar Algoritma dan Pemrograman Modul 3 – Dasar-Dasar Pemrograman
TUJUAN
Setelah selesai mempelajari modul ini Anda mampu melakukan hal-hal berikut:
1. Mengerti dan memahami struktur program C
2. Mengerti dan memahami perintah output C.
PRASYARAT
1. Mahasiswa sudah mampu menganalisis persoalan pemrograman dengan
membuat algoritma-flowchart.
2. Telah menyelesaikan semua tugas/latihan pada modul 2.
DESKRIPSI
Pada bagian ini akan dibahas mengenai struktur program dalam C serta akan
dibahas pula mengenai perintah output dalam C.
RELEVANSI
Setelah pada modul sebelumnya Anda telah memahami cara melakukan analisis
persoalan permrograman dan membuat algoritma, pada modul ini dan modul-
modul selanjutnya, hasil analisis tersebut akan diterjemahkan dalam bentuk
program dengan menggunakan bahasa C.
URAIAN
Jika Anda diminta untuk membuat program yang dapat menampilkan kalimat
tertentu ke layar monitor, apa saja yang harus Anda ketahui?
Misalnya, Anda diminta untuk menampilkan tulisan berikut ini di layar monitor:
Saya kuliah di Jurusan Teknik Informatika UK Petra.
Saat ini saya sedang kuliah Algoritma dan Pemrograman. Mata
kuliah ini asyik dan menyenangkan.
Untuk dapat membuat program yang mampu menampilkan kalimat tersebut,
maka kita harus mengetahui:
1. Perintah apa yang dapat dipakai untuk menampilkan kalimat tersebut ke
layar monitor.
2. Bagaimana struktur program dalam C.
3. Aturan tambahan (bila ada) yang harus diberikan agar perintah tersebut
dapat dimengerti dan dijalankan oleh komputer.
Untuk dapat menjawab pertanyaan nomor 1, perintah yang digunakan untuk
menampilkan suatu kalimat ke layar monitor adalah perintah printf (singkatan
dari print formated, yang berarti pencetakan dengan menggunakan format
tertentu). Secara sederhana perintah printf dapat ditulis dengan bentuk:
printf (“kata atau kalimat yang ingin dicetak”);
Jadi program yang harus dibuat untuk menampilkan kalimat di atas adalah:
16
Modul Ajar Algoritma dan Pemrograman Modul 3 – Dasar-Dasar Pemrograman
Struktur Program C :
1. Kepala program
Berisi unit-unit yang diperlukan dalam program yang dibuat yang diambil dari
pustaka bahasa C.
2. Tubuh Program
Terdiri dari deklarasi dan kumpulan perintah yang harus dijalankan.
Antara deklarasi dan perintah letaknya adalah bebas, asal sebuah identifier
sebelum digunakan sudah dideklarasikan terlebih dahulu di atas perintah
yang akan menggunakannya.
Diwakili oleh fungsi main().
#include <.....>
type main( )
{
/* deklarasi dan perintah yang harus dijalankan ; */
}
17
Modul Ajar Algoritma dan Pemrograman Modul 3 – Dasar-Dasar Pemrograman
Jadi, apa yang salah? Bagaimana caranya untuk mencetak kalimat pada baris yang
baru? Untuk itu C menyediakan perintah tertentu yang disusun dari kombinasi
beberapa karakter. Sebagai contoh perintah untuk ganti baris adalah perintah ‘\n’.
Sehingga program 3.1 di atas harus diubah menjadi:
Program 3. 2. Modifikasi Program 3.1 versi 1
#include<stdio.h>
void main()
{
printf (“Saya kuliah di Jurusan Teknik Informatika UK Petra.”);
printf (“\nSaat ini saya sedang kuliah Algoritma dan
Pemrograman”);
printf (“\nMata kuliah ini asyik dan menyenangkan.”);
}
atau
Program 3. 3. Modifikasi Program 3.1 versi 2
#include<stdio.h>
void main()
{
printf (“Saya kuliah di Jurusan Teknik Informatika UK Petra. \n”);
printf (“Saat ini saya sedang kuliah Algoritma dan
Pemrograman\n”);
printf (“Mata kuliah ini asyik dan menyenangkan.”);
}
Beberapa escape sequence lain dapat dilihat pada tabel 3.1.
Tabel 3. 1. Escape Sequence
Karakter Keterangan
‘\0’ Karakter ber-ASCII nol (NULL)
‘\a’ Karakter bel
‘\b’ Karakter backspace
‘\f’ Karakter formfeed (ganti halaman)
‘\n’ Karakter newline (pindah baris)
‘\r’ Karakter carriage return (ke awal baris) tanpa linefeed
‘\t’ Karakter tab horizontal. Default 8 karakter
‘\v’ Karakter tab vertikal
‘\\’ Karakter \
‘\’’ Karakter ’
‘\”’ Karakter ’’
‘\?’ Karakter ?
‘\000’ Karakter yang nilai oktalnya 000 (3 digit oktal)
‘\xhh’ Karakter yang nilai hexadesimalnya hh (2 digit hexadesimal)
RINGKASAN
Untuk dapat membuat program terlebih dahulu kita harus mengetahui hal-hal apa
yang diperlukan agar tujuan program tercapai serta aturan-aturan tambahan apa
yang diperlukan. Untuk dapat mencetak di layar digunakan perintah printf,
sedang penulisan program harus berada di dalam sebuah fungsi utama (main).
18
Modul Ajar Algoritma dan Pemrograman Modul 3 – Dasar-Dasar Pemrograman
LATIHAN/TUGAS
a.
b.
19
Modul Ajar Algoritma dan Pemrograman Modul 4 – Variabel, Konstanta, dan...
TUJUAN
Setelah selesai mempelajari modul ini Anda mampu melakukan hal-hal berikut:
1. Mengerti dan memahami perintah input/output, variabel dan konstanta serta
tipe-tipe data.
2. Mampu membuat program sederhana yang menggunakan perintah output
dan input, variabel dan konstanta.
PRASYARAT
1. Mahasiswa sudah mengerti struktur program C.
2. Telah menyelesaikan semua tugas/latihan pada modul 3.
DESKRIPSI
Pada bagian ini akan dibahas mengenai apa saja perintah-perintah output dan input
yang ada dalam C, kemudian bagaimana dan dimana data disimpan.
RELEVANSI
Pada bagian sebelumnya telah dijelaskan bagaimana suatu program komputer
bekerja beserta contoh-contoh program untuk menampilkan kalimat ke layar
monitor. Sebuah program yang lebih berdaya guna tentu saja harus dapat
melakukan proses-proses perhitungan dari input yang diberikan pemakai hingga
menampilkan hasil yang dapat dilihat pada layar monitor. Modul ini akan menjadi
dasar bagi modul-modul berikutnya dalam pembuatan sebuah program, karena data
merupakan sesuatu yang sangat penting dalam program.
URAIAN
Misalnya terdapat suatu persoalan dimana Anda diminta untuk dapat menampilkan
hasil perhitungan dari luas sebuah lingkaran dengan rumus: .R 2 .
Apa saja yang Anda butuhkan untuk menyelesaikan hal ini?
1. Input data untuk jari-jari
Kita tidak akan bisa menyelesaikan persoalan ini jika nilai jari-jari (R) tidak
diketahui.
2. Nilai phi ( )
Demikian pula kita harus tahu nilai phi untuk bisa menyelesaikan persoalan
ini.
3. Perintah dan aturan (format, tipe data) apa yang dapat dipakai untuk
memasukkan data R ke dalam program.
4. Bagaimana menampilkan isi suatu variabel di layar monitor
20
Modul Ajar Algoritma dan Pemrograman Modul 4 – Variabel, Konstanta, dan...
5. Aturan tambahan (bila ada) yang harus diberikan agar perintah tersebut
dapat dimengerti dan dijalankan oleh komputer.
Dari empat kebutuhan di atas dapat dilihat bahwa nilai R dapat bervariasi
tergantung masukan dari pemakai sedang nilai phi bersifat tetap (konstan).
Tipe Data
Terbagi Atas :
1. Integer
2. Float
3. Char
21
Modul Ajar Algoritma dan Pemrograman Modul 4 – Variabel, Konstanta, dan...
4. String
5. Void
22
Modul Ajar Algoritma dan Pemrograman Modul 4 – Variabel, Konstanta, dan...
128 -128
129 -127
...
255 -1
Unsigned char 1 0 .. 255
Spesifikasi :
Hanya dapat berisi 1 character,
Diapit oleh tanda petik tunggal,
Case sensitive,
Escape sequences
Contoh : ‘A’ ‘a’ ‘7’ ‘:’
Latihan
Tentukan tipe data dari nilai-nilai berikut ini :
‘F’ F” 420000112
-37000 True” 200
“13000” 12.56 12.56”
KONSTANTA
Data yang nilainya bersifat tetap (tidak berubah) selama program dijalankan.
Contoh : = 3.14159
1 kilogram = 1000 gram
Cara penulisan konstanta :
1. Langsung
Luas = 3.14159 * jari²
2. Melalui Identifier
Jika ditulis dengan menggunakan identifier, maka harus dideklarasikan
terlebih dahulu. Nilai dari konstanta identifier ini tidak dapat diubah dalam
program kecuali melalui proses input (scanf).
Deklarasi konstanta
Format :
23
Modul Ajar Algoritma dan Pemrograman Modul 4 – Variabel, Konstanta, dan...
Identifier
Nama simbolis yang digunakan dalam sebuah bahasa pemrograman. Biasanya
digunakan untuk nama variabel, konstanta, fungsi atau objek lain yang didefinisikan
oleh pemrogram.
Syarat :
o Terdiri dari huruf (a..z, A.. Z), angka (0..9), dan underscore ( _ )
o Diawali dengan huruf/Underscore
o Panjang maksimal 33 karakter
o Tidak mengandung spasi
o Case sensitive
o Bukan reserved word / standart identifier
Contoh:
1. Identifier
Letter1, Hello, Variable, _Bilangan
2. Bukan Identifier
1Letter, Const, two*four, joe’s
Reserved Word
Sebuah kata yang mempunyai arti khusus dalam sebuah bahasa
pemrograman.
Contoh : asm, auto, break, case, cdecl, char, const, class, continue, default, do,
double, else, enum, extern, far, float, for, goto, huge, if, int, interrupt, long,
near, pascal, register, return, short, signed, sixeof, static, struct, switch,
typedef, union, unsigned, void, volatile, while, _cs, _ds, _es, _ss.
Standart Identifier
Merupakan identifier yang sudah digunakan sebagai nama fungsi, konstanta,
variabel, ataupun objek lain dalam pustaka bahasa pemrograman tersebut.
Contoh : printf, scanf, dll
VARIABEL
Data yang nilainya bisa mengalami beberapa kali perubahan (mungkin berulang
kali) selama program dijalankan.
Nilai yang tersimpan dalam variabel secara simbolis selalu ditandai dengan
identifier. Sebelum variabel digunakan, harus dideklarasikan terlebih dahulu.
24
Modul Ajar Algoritma dan Pemrograman Modul 4 – Variabel, Konstanta, dan...
Deklarasi variabel
Format : Tipe_data variable_identifiers ;
Contoh : int jumlah ;
float nilai_mak ;
double gaji, bil ;
Variabel dengan nama sama tidak boleh dideklarasikan ulang.
Perintah Output
1. printf
= digunakan untuk menampilkan data ke layar monitor
Unit : stdio.h
25
Modul Ajar Algoritma dan Pemrograman Modul 4 – Variabel, Konstanta, dan...
Long integer ld
Long unsigned integer lu
Unsigned hexadesimal integer X untuk A, ..., F
x untuk a, ..., f
Unsigned okatal integer o
Float
Bentuk desimal f (format
Bentuk pangkat dddd.dddddd)
Bentuk yang lebih pendek antara desimal dan pangkat e
g
Double lf
Char c
String s
Untuk mencetak tanda %, maka tanda % dituliskan 2 kali.
Contoh : printf(“Komisi 10%%”);
Output : Komisi 10%
Untuk mencetak alamat dari suatu variabel digunakan penentu format %u
dan menggunakan tanda &.
Contoh : printf(“Alamat variabel a = %u”,&a);
Output : Alamat variabel a = 1245052
Data tipe int bila ditampilkan dengan format %f atau data tipe float bila
ditampilkan dengan format %d akan memberikan hasil nol.
Format tampilan :
1. Data Tipe Integer
Format : %Nd
N = Jumlah tempat yang disediakan
b = blank
Contoh :
Program 4. 2. Contoh menampilkan data integer
#include <stdio.h>
void main()
{
int Bil = 123;
printf(“Bil = %d\n”, bil) ;
printf(“Bil = %5d”, bil) ;
}
Output : 123
bb123
26
Modul Ajar Algoritma dan Pemrograman Modul 4 – Variabel, Konstanta, dan...
Contoh :
Program 4. 3. Contoh menampilkan data float
#include <stdio.h>
void main()
{
float Bil = 123.25;
printf(“Bil = %f\n”, bil) ;
printf(“Bil = %7.4f\n”, bil) ;
printf(“Bil = %9.4f”, bil) ;
}
Output : 123.250000
123.2500
b123.2500
Expression_list
= konstanta, variabel, ekspresi
Contoh : printf(“Jari-jari = %d”, jari);
printf(“%c merupakan abjad ke %d”,’b’, 2);
Output : Jari-jari = 20 -> dengan asumsi nilai jari adalah 20
B merupakan abjad ke 2
2. puts()
= Digunakan khusus untuk menampilkan data string ke layar monitor. String
yang ditampilkan secara otomatis akan diakhiri dengan /n (pindah baris).
Unit : stdio.h
Format : puts(string);
Contoh : puts(“Algoritma dan Pemrograman”);
Output : Algoritma dan Pemrograman
3. putchar()
= Digunakan khusus untuk menampilkan sebuah karakter ke layar monitor
tanpa diakhiri dengan perpindahan baris.
27
Modul Ajar Algoritma dan Pemrograman Modul 4 – Variabel, Konstanta, dan...
Unit : stdio.h
Format : putchar(‘karakter’);
Contoh : putchar(‘A’);
Output :A
Perintah Input
1. scanf
= digunakan untuk menerima input dari keyboard.
Unit : stdio.h
RINGKASAN
Agar suatu program lebih berdaya guna dan fleksibel, perlu adanya perintah input
dan output. Perintah output digunakan untuk menampilkan tulisan maupun isi data
ke layar sedang perintah input digunakan untuk memasukkan data ke dalam
memori. Data bisa disimpan dalam bentuk variabel (untuk data yang nilainya bisa
berubah) dan dalam bentuk konstanta (untuk data yang nilainya tetap).
LATIHAN/TUGAS
1. Buatlah program untuk menghitung sisi miring dari segitiga siku – siku jika
diinputkan 2 sisi segitiga yang lainnya. Inputan berupa 2 bilangan yang
merupakan 2 sisi segitiga yang lain, output dari program adalah sisi miring
dari segitiga siku – siku.
Contoh:
INPUT:
28
Modul Ajar Algoritma dan Pemrograman Modul 4 – Variabel, Konstanta, dan...
49
78
OUTPUT:
9.8488
10.6301
2. Buatlah sebuah program untuk menghitung bilangan X, di mana bilangan X =
Luas Lingkaran + Luas Persegi + Keliling Lingkaran + Keliling Persegi.
Program akan menerima inputan sebuah angka N. N akan digunakan sebagai
jari – jari untuk menghitung Luas dan Keliling lingkaran, N juga akan
digunakan sebagai sisi dari persegi. Output yang dihasilkan dari program
adalah bilangan X
Contoh:
INPUT:
5
8
OUTPUT:
154.9 [NOTE: 154.9 dihasilkan dari 78.5+31.4+25+20]
347.2 [NOTE: 347.2 dihasilkan dari 200.96+50.24+64+32]
OUTPUT:
Euro = 1212.058260
USDollar = 1336.221000
Chinese Yuan = 8300.87
Euro = 9.728788
USDollar = 10.73
Chinese Yuan = 66.63155
29
Modul Ajar Algoritma dan Pemrograman Modul 4 – Variabel, Konstanta, dan...
OUTPUT:
4
6
9. Buatlah sebuah program untuk menghitung rata – rata dari 4 angka yang
diinputkan, input program adalah 4 buah angka dan output dari program
adalah rata – rata dari 4 buah angka yang diinputkan
Contoh:
INPUT:
7456
454 464 474 484
OUTPUT:
5.5
469
30
Modul Ajar Algoritma dan Pemrograman Modul 5 – Operator Aritmatika & ......
TUJUAN
Setelah selesai mempelajari modul ini Anda mampu melakukan hal-hal berikut:
1. Mengerti dan memahami macam-macam operator aritmatika
2. Mampu menggunakan operator-operator aritmatika untuk
menyelesaikan persoalan pemrograman.
3. Mengenal dan dapat menggunakan fungsi-fungsi matematika yang telah
disediakan oleh C.
PRASYARAT
1. Mahasiswa telah mengerti struktur program C, perintah I/O, variabel dan
konstanta
2. Telah menyelesaikan semua tugas/latihan pada modul 4
DESKRIPSI
Pada modul ini akan dibahas mengenai macam-macam operator pada C,
hierarkinya, fungsi-fungsi matematika serta penggunaannya.
RELEVANSI
Setelah mengetahui bagaimana membuat suatu program dengan struktur
sekuensial pada modul sebelumnya, sekarang dibahas mengenai persoalan-
persoalan pemrograman yang menggunakan operator.
URAIAN
Misalnya ada persoalan matematis sebagai berikut :
b h
Hitung nilai X = a f * ( ) dimana a = 5, f = 4, b = 12 dan h =36.
3
Hal-hal apa yang perlu diperhatikan dalam menghitung nilai X?
1. Jenis-jenis operator aritmatika
2. Hierarki operator
3. Fungsi dalam C untuk menghasilkan akar kuadrat.
Pada persoalan di atas kita melihat ada tiga jenis operator yang digunakan ( +, * ,
- ). Urutan pengerjaan dimulai dari depan ke belakang tetapi harus
memperhatikan hierarki (derajat) operator. Pada persoalan di atas, meskipun
operator + ada di depan *, tetapi karena hierarki + lebih rendah daripada * maka *
dikerjakan terlebih dahulu. Juga tampak adanya tanda ( ) menunjukkan bahwa
apa yang ada di dalam tanda kurung harus dikerjakan terlebih dahulu. Fungsi
31
Modul Ajar Algoritma dan Pemrograman Modul 5 – Operator Aritmatika & ......
matematis yang digunakan untuk menghitung akar kuadat adalah sqrt. Jadi
proses perhitungannya adalah sebagai berikut:
b h 12 6
1. ( )( ) =2
3 3
b h
2. f * ( ) 4*2 8
3
3. 5 + 8 = 13
Berikut ini adalah program untuk menyelesaikan persoalan di atas.
Program 5. 1. Menghitung Operasi Matematika
#include<stdio.h>
#include<math.h>
void main()
{
int a = 5, f = 4, b = 12 , h =36;
float X;
X= a+f*((b-sqrt(h)/3);
printf (“Nilai X = %f”,X);
}
Simbol Keterangan
- Unary minus
* Perkalian
/ Pembagian
% Sisa pembagian bulat
+ Penjumlahan
- Pengurangan
Operator : + - * /
integer op integer = integer
integer op float = float
float op integer = float
float op float = float
Operator : %
Integer op Integer = integer
32
Modul Ajar Algoritma dan Pemrograman Modul 5 – Operator Aritmatika & ......
Contoh :
Program 5. 2. Operator-1
#include<stdio.h>
void main()
{ int a1 = 10, a2, a3, a4;
float b1 = 1.5, b2, b3, b4;
a2 = a1 / b1 + 2.75;
a3 = 45 / a1 + 3;
a4 = 45.0 / a1 + 3 ;
b2 = a1 / b1 + 2.75;
b3 = 45 / a1 + 3;
b4 = 45.0 / a1 + 3;
printf(“\n %d “, a2);
printf(“ %d “, a3);
printf(“ %d “, a4);
printf(“\n %f “, b2);
printf(“ %f “, b3);
printf(“ %f “, b4);
}
Output : 9 7 7
9.416667 7.000000 7.500000
33
Modul Ajar Algoritma dan Pemrograman Modul 5 – Operator Aritmatika & ......
34
Modul Ajar Algoritma dan Pemrograman Modul 5 – Operator Aritmatika & ......
Contoh :
Program 5. 4. Operator-3
#include<stdio.h>
void main()
{ int a1 = 10, a2, a3, a4, a5, a6, a7;
float b1, b2;
a2 = 45.5 / a1 + 2.75;
a3 = (int) 45.5 / a1 + 2.75;
a4 = (int) 45.5 / a1 + (int) (2.75) ;
a5 = (int) 45.75 / 0.5 ;
a6 = (int) (45.75 / 0.5);
a7 = (int) 45.75 / (int) 1.5 ;
b1 = 45 / a1 + 2.75;
b2 = (float) 45 / a1 + 2.75;
printf(“\n %d “, a2);
printf(“ %d “, a3);
printf(“ %d “, a4);
printf(“%d “, a5);
printf(“ %d “, a6);
printf(“ %d “, a7);
printf(“\n %f “, b1);
printf(“ %f “, b2);
}
Output : 7 6 6 90 91 45
6.750000 7.250000
Fungsi-Fungsi Matematika
1. abs()
Format : abs(Ekspresi_Integer)
Fungsi : Untuk menentukan harga mutlak bilangan bulat.
Unit : math.h
Hasil : Bertipe integer.
Contoh : abs(-5) = 5
abs(5) = 5
2. fabs()
Format : fabs(Ekspresi_Float)
Fungsi : Untuk menentukan harga mutlak bilangan desimal.
Unit : math.h
Hasil : Bertipe float.
Contoh : fabs(-5.3) = 5.3
fabs(5.3) = 5.3
3. sqrt()
Format : sqrt(Ekspresi_Double_Positif);
Fungsi : Untuk menghitung akar pangkat dua dari suatu bilangan positif.
Unit : math.h
Hasil : Bertipe double.
Contoh : sqrt(4.0) = 2.000000
4. exp()
Format : exp(Ekspresi_Double);
35
Modul Ajar Algoritma dan Pemrograman Modul 5 – Operator Aritmatika & ......
36
Modul Ajar Algoritma dan Pemrograman Modul 5 – Operator Aritmatika & ......
11. ceil()
Format : ceil(Ekspresi_Double);
Fungsi : Untuk membulatkan argumen ke bilangan terdekat di atasnya.
Unit : math.h
Hasil : Bertipe double.
Contoh : ceil(123.54) = 124.00
12. floor ()
Format : floor(Ekspresi_Double);
Fungsi : Untuk membulatkan argumen ke bilangan terdekat di bawahnya.
Unit : math.h
Hasil : Bertipe double.
Contoh : floor(123.54) = 123.00
RINGKASAN
Operator aritmatika digunakan untuk melakukan pengoperasian pada operand.
Ada operator yang hanya membutuhkan 1 operand (unary operator) dan ada
operator yang membutuhkan 2 operand (binary operator). Ada urutan
pengerjaan (hierarki) pada penggunaan operator-operator.
LATIHAN/TUGAS
1. Buatlah program untuk menghitung determinan dari ax2 + bx + c. Inputan
yang diterima adalah a, b, dan c (dapat positif maupun negatif).
Rumus : b2 – (4 * a * c)
Contoh:
Input a = 1, b = 3, c = 5
Output -11
2. Buatlah program untuk menghitung radiasi benda hitam dengan rumus I =
e σ T4 ! (dimana σ = 5.67 x 10-4 )
3. Buatlah program untuk konversi waktu dalam format detik menjadi format
jam, menit, dan detik. (Contoh : 3661 detik = 1 jam 1 menit 1 detik)
4. Buatlah program untuk menampilkan koordinat suatu titik yang berada
pada kurva :
y = x3 + 2log (x2) + +
dengan inputan x.
5. Buat program untuk menghitung hasil Z dibawah ini.
a. Z = (sin(x3))2 + cos( )
37
Modul Ajar Algoritma dan Pemrograman Modul 6 – Struktur Kontrol Kondisi
TUJUAN
Setelah selesai mempelajari modul ini Anda mampu melakukan hal-hal berikut:
1. Mengerti dan memahami jenis struktur kontrol kondisi/pilihan/percabangan
2. Mampu menyelesaikan persoalan program komputer yang memiliki struktur
kontrol kondisi
PRASYARAT
1. Mahasiswa telah mengerti prinsip struktur kontrol sekuensial.
2. Telah menyelesaikan semua tugas/latihan pada modul 5
DESKRIPSI
Pada modul ini akan dibahas mengenai struktur kontrol yang kedua yaitu
kondisi/pilihan. Pada struktur kontrol ini ada bagian-bagian yang dikerjakan dan
ada yang tidak, tergantung dari pengecekan kondisi.
RELEVANSI
Setelah mengetahui struktur kontrol sekuensial dimana program berjalan dari awal
sampai akhir, berikut ini akan dibahas mengenai struktur kontrol pilihan, dimana
ada pemilihan alternatif di antara beberapa alternatif. Jadi bagian program mana
yang dikerjakan akan ditentukan oleh pengecekan alternatif pilihan.
URAIAN
Berikut ini adalah contoh sebuah persoalan:
Tentukan apakah sebuah bilangan termasuk genap/ganjil.
Dari persoalan di atas hal-hal yang perlu diperhatikan adalah:
1. Apa yang dimaksud dengan bilangan genap dan bilangan ganjil? Bagaimana
cara menentukan suatu bilangan itu genap/ganjil?
2. Apa yang menjadi output/permintaan dari persoalan?
3. Untuk menghasilkan output tersebut memerlukan input apa?
4. Apa proses yang dilakukan? Memerlukan syntax apa?
Untuk menjawab pertanyaan no 1 : bilangan genap adalah bilangan yang habis
dibagi 2 dan bilangan ganjil adalah bilangan yang tidak habis dibagi 2.
Untuk menjawab pertanyaan no 2 : bilangan termasuk genap/ganjil
Untuk menjawab pertanyaan no 3 : inputnya adalah sebuah bilangan
Untuk menjawab pertanyaan no 4: terdapat suatu proses untuk menentukan
bilangan yang diinputkan termasuk genap/ganjil. Di sini dapat kita lihat bahwa ada
proses pemilihan alternatif, apakah termasuk genap/ganjil. Proses pemilihan
alternatif ini pada C menggunakan perintah if.
Berikut ini adalah jawaban dari persoalan di atas
38
Modul Ajar Algoritma dan Pemrograman Modul 6 – Struktur Kontrol Kondisi
Ekspresi Logika
Ekspresi yang mempunyai 2 kemungkinan nilai, yaitu benar atau salah.
Pada C, kondisi benar dapat diwakili oleh bilangan bukan nol sedangkan kondisi
salah selalu diwakili dengan nol.
1. Ekspresi logika dengan menggunakan operator relasi
Operator relasi adalah operator yang digunakan untuk membandingkan nilai dari
Untuk tipe data character maka yang dibandingkan adalah nilai ASCII-nya.
Tabel 6. 1. Operator Relasi / Pembanding
39
Modul Ajar Algoritma dan Pemrograman Modul 6 – Struktur Kontrol Kondisi
Operand ! Operand
True False
False True
40
Modul Ajar Algoritma dan Pemrograman Modul 6 – Struktur Kontrol Kondisi
Perintah if...else
1. Satu alternatif
Format : if ( <kondisi> )
{ <statements T>; }
Keterangan : Bila kondisi bernilai true maka <statements T> dijalankan. Bila
kondisi bernilai false maka <statements T>tidak dijalankan.
Contoh :
Baca problem :
Menentukan apakah sebuah bilangan yang diinput merupakan bilangan
genap.
Analisis :
Input : Bilangan
Output : Tampilkan pesan genap bila bilangan yang diinput bilangan genap
Informasi tambahan : Sebuah bilangan dikatakan bilangan genap apabila
bilangan tersebut bila dibagi dengan 2 mempunyai sisa nol.
Algoritma :
Start
Baca
bilangan
Cetak
bilangan mod 2 pesan
T
=0? “Bilangan
Genap”
Stop F
Implementasi :
Program 6. 2. Menentukan Bilangan Genap
#include<stdio.h>
void main()
{
int bilangan ;
scanf(“%d”,&bilangan);
if (bilangan % 2 == 0)
printf(“Bilangan Genap”);
}
41
Modul Ajar Algoritma dan Pemrograman Modul 6 – Struktur Kontrol Kondisi
2. Dua alternatif
Format : if (<kondisi>)
{ <statements T> ; }
else
{ <statements F> ; }
Keterangan : Bila kondisi bernilai true maka <statements T> dijalankan. Bila
kondisi bernilai false maka <statements F > yang dijalankan.
Contoh :
Baca problem :
Menentukan apakah sebuah bilangan yang diinput merupakan bilangan
genap atau bilangan ganjil.
Analisis :
Input : Bilangan
Output : Tampilkan pesan genap bila bilangan yang diinput bilangan
genap.
Tampilkan pesan ganjil bila bilangan yang diinput bilangan ganjil
Informasi tambahan : Sebuah bilangan dikatakan bilangan genap apabila
bilangan tersebut bila dibagi dengan 2 mempunyai sisa nol dan
merupakan bilangan ganjil bila dibagi dengan 2 mempunyai sisa 1.
Algoritma :
Start
Baca
bilangan
Cetak Cetak
pesan bilangan mod 2 pesan
F T
“Bilangan =0? “Bilangan
Ganjil” Genap”
Stop
Implementasi :
Program 6. 3. Menentukan Bilangan Genap/Ganjil
#include<stdio.h>
void main()
{
int bilangan;
scanf(“%d”, &bilangan);
if (bilangan%2==0)
printf(“Bilangan genap”);
else
printf(“Bilangan ganjil”);
}
42
Modul Ajar Algoritma dan Pemrograman Modul 6 – Struktur Kontrol Kondisi
3. Multi alternatif
Format : if (<kondisi_1>)
{ <statements_1T >;}
else if (<kondisi_2>)
{ <statements_2T >;}
else if (<kondisi_3>)
{ <statements_3T >;}
……
else if( <kondisi_n> )
{<statements_nT> ;}
else
{<statements_nF >;}
Keterangan : Bila <kondisi_1> bernilai true maka <statements_1T> dijalankan.
Bila <kondisi_1> bernilai false maka dilakukan pengecekan lagi
terhadap <kondisi_2>. Bila <kondisi_2> bernilai true maka
<statements_2T> dijalankan. Bila <kondisi_2> bernilai false maka
dilakukan pengecekan lagi terhadap <kondisi_3>. Demikian
seterusnya sampai yang terakhir bila <kondisi_n> benar maka
<statements_nT> dijalankan, tetapi bila <kondisi_n> bernilai false
<statements_nF> yang dijalankan.
Pada multiple if, perintah else akan dihubungkan dengan if
sebelumnya yang terdekat. (lihat contoh 2)
Contoh 1:
Baca problem :
Menentukan apakah sebuah bilangan yang diinput adalah bilangan positif
atau bilangan negatif atau nol.
Analisis :
Input : Bilangan
Output : Pesan ‘Bilangan positif / negatif / nol’ sesuai dengan yang diinput.
Informasi tambahan : Sebuah bilangan dikatakan positif bila bilangan
tersebut lebih besar dari nol dan dikatakan negatif bila bilangan
tersebut kurang dari nol.
Algoritma :
43
Modul Ajar Algoritma dan Pemrograman Modul 6 – Struktur Kontrol Kondisi
Start
Baca
bilangan
Cetak
pesan
bilangan > 0 ? T
“Bilangan
Positif”
Cetak
pesan
bilangan < 0 ? T
“Bilangan
Negatif”
Cetak
pesan
“Bilangan
Nol”
Stop
Implementasi :
Program 6. 4. Menentukan Bilangan Positif/Negatif/Nol
include <stdio.h>
void main()
{
int bilangan;
scanf(“%d”,&bilangan);
if (bilangan > 0)
printf(“Bilangan positif”);
else if (bilangan < 0)
printf(“Bilangan negatif”);
else
printf(“Bilangan nol”);
}
44
Modul Ajar Algoritma dan Pemrograman Modul 6 – Struktur Kontrol Kondisi
Perintah SWITCH
Perintah khusus di dalam C yang digunakan untuk mengimplementasikan struktur
multi alternatif.
Format :
switch (<ekspresi>)
{
case nilai_1 :
<statement_11>;
.....
<statement_1n>;
break ;
case nilai_2 :
<statement_21>;
.....
<statement_2n>;
break ;
……
case nilai_n :
<statement_n1>;
.....
<statement_nn>;
break ;
default :
<statements_n+1> ;
}
Keterangan :
Ekspresi di atas berupa ekspresi tunggal (bertipe integer atau karakter) yang
nilainya digunakan untuk memilih kondisi (ditunjukkan oleh nilai_1 sampai
nilai_n) yang sesuai.
Pertama kali ekspresi dicocokkan dengan nilai_1, jika memenuhi, maka
<statement_11> dikerjakan hingga ketemu break atau akhir dari switch. Jika
ekspresi tidak sesuai dengan nilai_1, maka ekspresi dicocokkan dengan
nilai_2, jika memenuhi, maka <statement_21> dikerjakan sampai ketemu
break atau akhir perintah switch. Demikian seterusnya sampai kemudian, jika
ekspresi tidak sesuai dengan nilai_n, maka <statements_n+1> yang
dikerjakan.
45
Modul Ajar Algoritma dan Pemrograman Modul 6 – Struktur Kontrol Kondisi
46
Modul Ajar Algoritma dan Pemrograman Modul 6 – Struktur Kontrol Kondisi
Algoritma :
Start
Baca
operator
Cetak pesan
operator = ‘+’ ? T
“Penjumlahan”
Cetak pesan
operator = ‘-’ ? T
“Pengurangan”
Cetak pesan
operator = ‘/’ ? T
“Pembagian”
Cetak pesan
operator = ‘*’ ? T
“Perkalian”
Stop
47
Modul Ajar Algoritma dan Pemrograman Modul 6 – Struktur Kontrol Kondisi
Implementasi :
Program 6. 5. Menentukan Jenis Operator - switch
#include <stdio.h>
void main()
{
char operator;
scanf(“%c”,&operator);
switch (operator)
{
case ‘+’ : printf(“Penjumlahan”);
break;
case ‘-’ : printf(“Pengurangan”);
break;
case ‘/’ : printf(“Pembagian”);
break;
case ‘*’ : printf(“Perkalian”);
break;
}
}
RINGKASAN
Terdapat 3 jenis pemilihan alternatif yaitu 1) satu (single) alternatif 2 )dua (double)
alternatif dan 3) multiple alternatif. Pada C pemilihan kondisi ini menggunakan
perintah if….else serta switch.
LATIHAN/TUGAS
1. Buatlah sebuah program untuk menentukan jenis suatu segitiga yang sisi-
sisinya di inputkan, apakah segitiga itu sama kaki, sama sisi, atau segitiga
sembarang.
2. Buatlah program untuk mengkonversi nilai rata-rata menjadi huruf. Input
berupa 3 nilai: nilai tes, nilai uts, nilai uas. Output berupa rata-rata ,huruf,
serta predikat.
Nilai Huruf Predikat
86 – 100 A Istimewa
76 – 85 B+ Baik sekali
69 – 75 B Baik
61 – 68 C+ Cukup Baik
56 – 60 C Cukup
41 – 55 D Kurang
0 – 40 E Buruk
3. Buatlah menu untuk melakukan perhitungan 2 bilangan yang diinputkan
oleh user
Menu:
1. Penjumlahan
2. Pengurangan
48
Modul Ajar Algoritma dan Pemrograman Modul 6 – Struktur Kontrol Kondisi
3. Perkalian
4. Pembagian
Program juga akan merandom sebuah bilangan (bilangan X) dimana
mengikuti operasi yang dipilih
Contoh:
Input angka pertama dan kedua (bil1 bil2)=
10 5
Menu:
1. Penjumlahan
2. Pengurangan
3. Perkalian
4. Pembagian
Input operasi= _ //angkanya
Output:
Bilangan random = 5
Bilangan 1 = 10
Bilangan 2 = 5
Hasil=
5+10+5=20
Output:
Bilangan ribuan
1234 = 1000+200+30+4
Contoh 2:
Input:
12345
Output:
Bilangan melebihi range
49
Modul Ajar Algoritma dan Pemrograman Modul 6 – Struktur Kontrol Kondisi
Input:
Masukkan status [m/n]: m
Masukkan nomor produk [1/2/3]: 1
Masukkan jumlah: 10
Output:
Status: Member
Nama Produk : Boneka Shoun The Sheep
Harga: 35000
Jumlah: 10 buah
Diskon: 5%
Sub Total: 350000
Total: 332500,00
50
Modul Ajar Algoritma dan Pemrograman Modul 6 – Struktur Kontrol Kondisi
10. Buatlah program untuk mengkonversi sebuah notasi angka desimal menjadi
kata (Contoh : 1 menjadi “satu”, 32122 menjadi “tiga puluh dua ribu seratus
dua puluh dua”, angka maksimal adalah 1000000).
51
Modul Ajar Algoritma dan Pemrograman Modul 8 – Array 1 Dimensi
TUJUAN
Setelah selesai mempelajari modul ini Anda mampu melakukan hal-hal berikut:
1. Mengerti dan memahami jenis struktur kontrol perulangan/iteratif
2. Mampu menyelesaikan persoalan program komputer yang memiliki struktur
kontrol perulangan
PRASYARAT
1. Mahasiswa telah mengerti prinsip struktur kontrol sekuensial dan kondisi
2. Telah menyelesaikan semua tugas/latihan pada modul 6
DESKRIPSI
Pada modul ini akan dibahas mengenai struktur kontrol yang ketiga yaitu
perulangan. Pada struktur kontrol ini ada bagian-bagian pada program yang
diulang (dikerjakan lebih dari satu kali).
RELEVANSI
Dengan mempelajari struktur kontrol perulangan, maka dapat dibuat bagian
program yang memerlukan eksekusi berulang kali tanpa harus menuliskan source
code program tersebut secara berulang.
URAIAN
Berikut ini adalah contoh sebuah persoalan:
Hitunglah total nilai dari deret berikut ini:
1+3+5+7+9+……sebanyak n …..
Dari persoalan di atas hal-hal yang perlu diperhatikan adalah:
1. Apa yang menjadi output/permintaan dari persoalan?
2. Untuk menghasilkan output tersebut butuh input apa?
3. Apa pola dari deret tersebut?
4. Apa proses yang dilakukan? Butuh syntax apa?
Untuk menjawab pertanyaan 1, yang menjadi permintaan adalah menghitung total
nilai dari deret.
Untuk menjawab pertanyaan no 2, input yang dibutuhkan adalah n (dimana n
adalah jumlah elemen pada deret)
Untuk menjawab pertanyaan no 3, pola dari deret tersebut adalah bilangan ganjil
atau (2*i -1). Dimana i menunjukkan urutan/ posisi elemen.
Untuk menjawab pertanyaan no 4, tampak pada deret di atas terjadi proses
penjumlahan bilangan ganjil dari 1 dan sebanyak n bilangan. Proses penjumlahan
bilangan ganjil tersebut dilakukan secara berulang-ulang, sehingga membutuhkan
proses perulangan (looping). Proses perulangan pada C dapat menggunakan 3 jenis
syntax yaitu : 1)while, 2)do…while dan 3)for
Berikut ini adalah jawaban dari persoalan di atas
52
Modul Ajar Algoritma dan Pemrograman Modul 8 – Array 1 Dimensi
Pada program di atas terdapat sebuah variabel i sebagai pengontrol jalannya proses
perulangan. Variabel i mula-mula diinisialisasi = 1, kemudian sebelum masuk loop,
variabel i diperiksa apakah masih lebih kecil atau sama dengan n. Jika hal ini
terpenuhi maka loop bisa dijalankan. Di dalam loop, variabel i selalu di-update
nilainya. Di sini variabel i dikenal sebagai loop control variable.
Jumlah total penjumlahan nilai deret disimpan di variabel total. Mula-mula total
diinisialisasi = 0. Setelah loop selesai dijalankan, barulah nilai total ditampilkan.
Test untuk kondisi terbagi menjadi 2 berdasarkan letak kondisi tersebut, yaitu:
1. Pre-test
53
Modul Ajar Algoritma dan Pemrograman Modul 8 – Array 1 Dimensi
Kondisi berada di awal loop (sebelum semua perintah yang ada dalam loop
dijalankan).
Loop minimal dijalankan Nol kali.
Perintah C :
For
While
2. Post test
Kondisi berada di akhir loop (setelah semua perintah yang ada dalam loop
dijalankan).
Loop minimal dijalankan satu kali.
Perintah C : Do …. while …
Perintah While
Format : While (<kondisi>) {<statements> ;}
Fungsi : Mengulang <statements> selama kondisi benar.
Perhatian : Loop harus mengandung perintah yang mempengaruhi kondisi.
Contoh :
Baca problem :
Menampilkan angka 1 sampai 10 ke layar monitor.
Analisis :
Input :-
Output : Angka 1 sampai 10.
Informasi tambahan : -
Implementasi :
Program 7. 2. Menampilkan Angka 1-10 di Layar Dengan Perintah while
#include <stdio.h>
void main()
{
int counter = 1;
while (counter <=10)
{
printf(“%d”,counter);
counter ++;
}
}
Perintah do…while
Format :
do
{<statements>;}
while (<kondisi>) ;
Fungsi : Mengulang <statements> selama kondisi benar.
Perhatian : Loop harus mengandung perintah yang mempengaruhi kondisi.
Contoh :
Baca problem :
Menampilkan angka 1 sampai 10 ke layar monitor.
Analisis :
Input :-
54
Modul Ajar Algoritma dan Pemrograman Modul 8 – Array 1 Dimensi
Perintah For
Format :
for (<variabel>:=<nilai_awal>; <syarat_pengulangan>;
perubah_nilai)
{ <statements> ; }
Fungsi : Menjalankan <statements> selama nilai dari variabel masih memenuhi
syarat_pengulangan.
Ketentuan :
Variabel, nilai_awal harus bertipe data sama (integer, char).
Argumen dari perintah for boleh tidak lengkap (misal : inisialisasi tidak ada /
inisialisasi dan perubah_nilai tidak ada / dll). Tetapi bila ketiganya tidak ada,
bisa menyebabkan loop abadi.
Argumen pertama dan ketiga dari perintah for boleh lebih dari 1.
Contoh : for (int i=0, jum = 0; jum < 10; jum += i, i++)
printf(“%d”,jum);
Output :0 2 4 6 8
Contoh 1:
Baca problem :
Menampilkan angka 1 sampai 10 ke layar monitor.
Analisis :
Input :-
Output : Angka 1 sampai 10.
Informasi tambahan : -
Implementasi :
Program 7. 4. Menampilkan Angka 1-10 di Layar Dengan Perintah for
#include <stdio.h>
void main()
{
int bilangan ;
for (bilangan = 1; bilangan <=10; bilangan++)
printf(“%d”,bilangan);
}
55
Modul Ajar Algoritma dan Pemrograman Modul 8 – Array 1 Dimensi
Contoh 3:
Baca problem :
Mencari total nilai dari sejumlah bilangan positif. Proses input dihentikan bila
yang diinput adalah nol.
Analisis :
Input : Bilangan-bilangan
Output : Total nilai sejumlah bilangan positif.
Informasi tambahan : Proses input dihentikan bila yang diinput adalah nol.
Implementasi :
Program 7. 6. Menghtung Total Nilai Sejumlah Bilangan Positif
#include <stdio.h>
void main()
{
int bilangan =1, total = 0;
for (; bilangan != 0 ;)
{
scanf(“%f”,&bilangan);
total += bilangan;
}
printf(“%d”,total);
}
Break
Fungsi : Untuk menghentikan loop dan melanjutkan ke perintah berikutnya.
56
Modul Ajar Algoritma dan Pemrograman Modul 8 – Array 1 Dimensi
Continue
Fungsi : Untuk menggambarkan proses yang sedang dilaksanakan ke awal loop,
tanpa menjalankan sisa perintah dalam loop tersebut. Tetapi perintah ini tidak
dianjurkan.
Contoh :
Program 7. 7. Contoh penggunaan perintah continue
#include <stdio.h>
void main()
{
int i;
for (i = 1; i <= 10 ;i++)
{
if (i == 6)
continue;
printf(“%d ”,i);
}
}
Output : 1 2 3 4 5 7 8 9 10
Exit
Fungsi : Untuk keluar dari program.
Keterangan : Menurut kebiasaan, nilai 0 diberikan pada argumen exit() untuk
menunjukkan penghentian program yang normal.
Contoh : Keluar program jika tombol ESC ditekan.
Program 7. 8. Contoh penggunaan perintah exit
#include <stdio.h>
void main()
{
for (; ;)
if (getch() == 27)
exit(0);
}
RINGKASAN
Struktur kontrol perulangan digunakan untuk mengulang sekumpulan perintah
sesuai dengan kondisi (diwakili oleh loop control variable) yang diberikan.
Ada tiga jenis perulangan pada C, yaitu while, do…while dan for.
Pada sebuah perulangan (loop) dikenal istilah loop control variable yaitu variabel
untuk mengontrol jalannya perulangan. Ada 3 syarat yang harus dipenuhi untuk
sebuah loop control variable, yaitu 1) diinisialisasi, 2) dicek nilainya dan 3) di-update
nilainya.
LATIHAN/TUGAS
1. Buatlah program untuk menghitung deret sebagai berikut: (diinputkan n)
a. 1 + 2 - 3 + 4 - 5 + 6 = ....
Contoh : Input n = 5
Output : 1 + 2 - 3 + 4 - 5 = -1
57
Modul Ajar Algoritma dan Pemrograman Modul 8 – Array 1 Dimensi
58
Modul Ajar Algoritma dan Pemrograman Modul 8 – Array 1 Dimensi
7. Buatlah program untuk membuat animasi karakter yang bergerak ke kiri dan ke
kanan. Karakter mula-mula adalah A dan bergerak ke kanan, jika karakter
tersebut mengenai salah satu dinding console maka ia akan berubah arah, setiap
kali berubah arah karakter maju 1. Contoh A berubah menjadi B kemudian B
berubah menjadi C. Jika karakter mencapai huruf Z maka akan kembali ke A.
8. Buatlah program untuk menentukan suatu bilangan yang diinputkan tersebut
merupakan bilangan palindrom atau bukan !
Contoh :
Input : 121
1355431
7845487
Output : Palindrom
Bukan palindrom
Palindrom
9. Buatlah program bintang pantul, dengan fitur sebagai berikut :
Bintang merupakan angka dengan nilai awal = 5 yang memantul di dalam
layar console. Batas nilai maksimum bintang = 9 dan minimal nilai bintang = 0.
Setiap kali bintang megenai batas atas atau bawah console, nilai angka pada
bintang akan bertambah sebanyak 1. (Misal nilai awal bintang = 0, mengenai
batas atas console maka nilai bintang = 1)
Setiap kali bintang megenai batas kiri atau kanan console, nilai angka pada
bintang akan berkurang sebanyak 1. (Misal nilai awal bintang = 0, mengenai
batas atas console maka nilai bintang = 1)
Program akan berhenti apabila ditekan tombol ESC (ASCII 27).
10. Buatlah program untuk menampilkan pola-pola berikut :
Pola 1
Input : 3 Input : 5
Output : Output :
* *
** **
*** ***
****
*****
Pola 2
Input : 3 Input : 5
Output : Output :
59
Modul Ajar Algoritma dan Pemrograman Modul 8 – Array 1 Dimensi
OOO OOOOO
OOO OOOOO
OOO OOOOO
OOOOO
OOOOO
Pola 3
Input : 3 Input : 5
Output : Output :
__1 ____1
_21 ___21
321 __321
_4321
54321
Buatlah Menu untuk menampilkan pola mana (1, 2, atau 3) yang akan
ditampilkan!
Input : 4 Input : 5
Output : Output :
1 1 1 1
12 21 12 21
123 321 123 321
12344321 1234 4321
123 321 123454321
12 21 123 321
1 1 12 21
1 1
12. Buatlah program untuk menampilkan pola berikut:
60
Modul Ajar Algoritma dan Pemrograman Modul 8 – Array 1 Dimensi
TUJUAN
Setelah selesai mempelajari modul ini Anda mampu melakukan hal-hal:
1. Mengerti dan memahami jenis tipe data array 1 dimensi
2. Mampu menyelesaikan persoalan program komputer yang membutuhkan
array 1 dimensi
PRASYARAT
1. Mahasiswa telah mengerti prinsip struktur kontrol sekuensial, kondisi dan
perulangan
2. Mahasiswa telah mengerti macam-macam tipe data ordinal
3. Telah menyelesaikan semua tugas/latihan pada modul 7
DESKRIPSI
Pada modul ini akan dibahas mengenai suatu varibel yang dapat menyimpan lebih
dari satu data dengan tipe data yang sama. Variabel ini mempunyai tipe data array.
Array mempunyai beberapa dimensi. Pada modul ini akan dibahas untuk jenis array
1 dimensi.
RELEVANSI
Setelah mengetahui beberapa tipe data seperti integer, char, float, berikut ini akan
dibahas sebuah tipe data yakni array dimana tipe data ini dapat menyimpan banyak
data dengan tipe yang sama. Tipe array yang akan dibahas pada modul ini adalah 1
dimensi, sedang pada modul berikutnya akan dibahas array 2 dimensi.
URAIAN
Berikut ini adalah contoh sebuah persoalan:
Anda diminta untuk menyimpan data nilai tes1 untuk keseluruhan anak di
kelas algoritma dan pemrograman (AP). Kemudian carilah nilai rata-rata dari
tes1 tersebut.
Dari persoalan di atas hal-hal yang perlu diperhatikan adalah:
1. Apa yang menjadi output/permintaan dari persoalan?
2. Untuk menghasilkan output tersebut butuh input apa?
3. Ada berapa anak peserta kelas AP tersebut?
4. Variabel apa yang diperlukan untuk menyimpan data-data tersebut?
5. Bagaimana cara menghitung nilai rata-rata?
Untuk menjawab pertanyaan 1, output dari program adalah nilai rata-rata.
Untuk menjawab pertanyaan 2, input yang diperlukan adalah jumlah anak peserta
kuliah AP.
61
Modul Ajar Algoritma dan Pemrograman Modul 8 – Array 1 Dimensi
62
Modul Ajar Algoritma dan Pemrograman Modul 8 – Array 1 Dimensi
Start
Baca n
Counter = 1
false
Counter = 1
Counter <=n
Jumlah = 0
true
false
Baca A[Counter]
Counter <=n
true
Counter = Counter =
Counter + 1 Counter + 1
jumlah = jumlah +
A[counter]
Cetak
Jumlah / n
Stop
63
Modul Ajar Algoritma dan Pemrograman Modul 8 – Array 1 Dimensi
Pada program di atas tampak bahwa array untuk menyimpan nilai dimulai dari
array ke-0, hal ini dikarenakan indeks array selalu dimulai dari nol (0).
Array berfungsi untuk menyimpan sejumlah data yang bertipe sama dalam satu
variabel sehingga dapat menghemat jumlah variabel yang digunakan.
Indeks 0 1 2 3 4 5
Satu elemen
VariabelArray
Keterangan :
Tiap-tiap elemen array dapat diakses dengan menggunakan indeks.
Format : VariabelArray [ < indeks > ]
Contoh : VariabelArray[1]
Pada ilustrasi adalah yang diblok warna abu-abu.
Tipe data yang diperbolehkan untuk indeks adalah tipe data integer dan character.
Manipulasi terhadap isi array dilakukan per elemen.
Contoh : float nilai[3];
0 1 2 Indeks
nilai
Inisialisasi
1. Automatic array
Format : tipe Variabel_Array[Panjang] = {Nilai_1, Nilai_2, ..., Nilai_Panjang};
Contoh : float nilai[3] = {0.0, 0.0, 0.0};
Keterangan : Tidak semua kompiler C dapat menginisialisasi automatic array.
hanya kompiler yang mengikuti standart baru ANSI C saja yang dapat
melakukannya, termasuk di dalamnya adalah turbo C.
Pada automatic array yang tidak diinisialisasi, elemen-elemen array tersebut akan
memiliki nilai yang tidak beraturan.
64
Modul Ajar Algoritma dan Pemrograman Modul 8 – Array 1 Dimensi
2. Static array
Static array adalah array yang dideklarasikan di dalam fungsi dan bersifat lokal.
Format : static tipe Variabel_Array[Panjang] = {Nilai_1, ..., Nilai_Panjang};
Contoh : static float nilai[3] = {0.0, 0.0, 0.0};
Keterangan : Nilai yang dimiliki static array masih tetap akan tersimpan di dalam
memori meskipun telah keluar dari function sehingga masih bisa digunakan lagi saat
masuk function itu kembali.
Pada static array yang tidak diinisialisasi, elemen-elemen array tersebut akan diberi
nilai 0 secara otomatis.
RINGKASAN
Array berfungsi untuk menyimpan sejumlah data yang bertipe sama dalam satu
variabel sehingga dapat menghemat jumlah variabel yang digunakan. Manipulasi
array harus melalui indeksnya. Indeks pada array dimulai dari nol(0).
LATIHAN/TUGAS
1. Buatlah program untuk menginputkan n bilangan dan dimasukkan ke dalam
sebuah array kemudian cari standar deviasi, modus, mean, median, dan varians
dari n data tersebut.
2. Buatlah konversi bilangan decimal ke biner dan sebaliknya (hint: gunakan
array!).
3. Buatlah program untuk mensorting huruf secara ascending dan descending
dengan inputan N buah huruf dan huruf yang akan disort.
4. Ada sebuah fashion show , kamu di minta untuk memilih pasangan terbaik
yang akan di tampilkan , semua cowok dan cewek infor yang akan fashion show
memiliki tingkat hotness yang bisa di lambangkan dengan sebuah int N dimana
1 <= N <= 10 , 10 tertinggi atau paling hot. Buatlah team pasangan terbaik dari
input hotness yang akan di masukan
Input:
T untuk menunjukan testcase
M banyaknya pasangan , kemudian di ikuti M angka untuk cowok hot ,
dengan M angka untuk cewek hot
Output:
Tampilkan hasil total perkalian dari pasangan , contoh pasangan 2 dan 1
dengan pasangan 5 dan 3 maka total hotnya = 2*1 + 5 *3 = 17(2 & 5 adalah
cowok , 1 dan 3 adalah cewek)
65
Modul Ajar Algoritma dan Pemrograman Modul 8 – Array 1 Dimensi
6. Buatlah game snake dimana terdapat makanan secara acak tersebar diseluruh
area dan setiap kali makan 1 makanan maka ekor akan bertambah panjang (jika
makanan berupa ‘+’) dan bertambah pendek (jika makanan berupa ‘-‘). Panjang
minimal ekor adalah 2 dan maksimal hingga area penuh.
66
Modul Ajar Algoritma dan Pemrograman Modul 8 – Array 1 Dimensi
67
Modul Ajar Algoritma dan Pemrograman Modul 9 – Array 2 Dimensi
TUJUAN
Setelah selesai mempelajari modul ini Anda mampu melakukan hal-hal:
1. Mengerti dan memahami jenis tipe data array 2 dimensi
2. Mampu menyelesaikan persoalan program komputer yang membutuhkan
array 2 dimensi
PRASYARAT
1. Mahasiswa telah mengerti prinsip dan penggunaan tipe data array 1 dimensi
2. Telah menyelesaikan semua tugas/latihan pada modul 8
DESKRIPSI
Pada modul ini akan dibahas mengenai struktur array yang lain yaitu array 2
dimensi. Pada array ini data secara logika tersusun atas baris dan kolom.
RELEVANSI
Setelah mengetahui tipe array 1 dimensi berikut ini dibahas array 2 dimensi guna
mengakomodasi kebutuhan data yang mempunyai format baris dan kolom,
misalnya matriks.
URAIAN
Berikut ini adalah contoh sebuah persoalan:
Mencari jumlah bilangan dari tiap-tiap kolom yang ada pada matriks. Jika
diketahui maksimum jumlah baris dan kolom adalah 10.
Dari persoalan di atas hal-hal yang perlu diperhatikan adalah:
1. Apa yang menjadi output/permintaan dari persoalan?
2. Butuh variabel seperti apa untuk menyimpan data tersebut?
3. Untuk menghasilkan output tersebut memerlukan input apa?
4. Bagaimana cara mencari jumlah bilangan per-kolom?
Untuk menjawab pertanyaan 1, output dari program adalah menampilkan jumlah
bilangan dari tiap-tiap kolom yang ada pada sebuah matriks.
Untuk menjawab pertanyaan 2, variabel untuk menyimpan data-data tersebut
adalah array 2 dimensi.
Untuk menjawab pertanyaan 3, input yang dibutuhkan adalah banyaknya baris dan
kolom serta data-data matriks.
Untuk menjawab pertanyaan 4, untuk setiap kolom yang sama dicari total-nya.
Berikut ini adalah jawaban dari persoalan di atas.
Analisis :
Input : jumlah baris, jumlah kolom, isi array 2 dimensi
Output : Jumlah bilangan pada tiap-tiap kolom.
68
Modul Ajar Algoritma dan Pemrograman Modul 9 – Array 2 Dimensi
Informasi tambahan : -
Algoritma :
Start
CounterB = 0
false CounterB
<Baris
true
CounterK = 0
true
Baca
A[CounterB, CounterK]
CounterK =
CounterK + 1
CounterK = 0
69
Modul Ajar Algoritma dan Pemrograman Modul 9 – Array 2 Dimensi
true
CounterB =
0 CounterK =
Jumlah = 0 CounterK + 1
true
Jumlah = jumlah +
A[CounterB, CounterK]
CounterB =
CounterB + 1
Stop
Implementasi :
Program 9. 1. Mencari Jumlah Bilangan Per Kolom
#include<stdio.h>
void main()
{
int a[10][10];
int counterB, counterK, Kolom, Baris, jumlah;
printf(“Jumlah baris = “);
scanf(“%d”, &Baris);
printf(“Jumlah kolom = “);
scanf(“%d”, &Kolom);
for(counterB=0; counterB<Baris; counterB++)
for(counterK=0; counterK<Kolom; counterK++)
70
Modul Ajar Algoritma dan Pemrograman Modul 9 – Array 2 Dimensi
scanf(“%d”,&a[counterB][counterK] ) ;
for(counterK=0; counterK<Kolom; counterK++)
{
jumlah = 0;
for(counterB=0; counterB<Baris; counterB++)
jumlah += a[counterB][counterK];
printf(“Jumlah kolom ke-%d adalah = %d“, counterK,
jumlah);
}
}
Deklarasi :
Format : tipe Variabel_Array[Jumlah_Baris][Jumlah_kolom] ;
Contoh : int nilai[3][2];
Ilustrasi :
Indeks_Kolom 0 1 2 3 4 5
Keterangan :
Untuk mengakses tiap-tiap elemen array digunakan indeks.
Format : Variabel_Array[<Indeks_Baris>][<Indeks_Kolom>] ;
Contoh : VariabelArray[0][2]
Pada ilustrasi adalah yang diblok warna abu-abu.
Metode pengaksesan array 2 dimensi :
1. Akses secara random
Urutan bebas tergantung dari data yang dimasukkan pada program.
2. Pengaksesan per baris
Semua elemen pada baris pertama di proses, kemudian semua elemen pada
baris kedua dan seterusnya.
3. Pengaksesan per kolom
Semua elemen pada kolom pertama di proses, kemudian semua elemen pada
kolom kedua dan seterusnya.
Seperti pada array 1 dimensi, nilai dari array 2 dimensi juga akan disimpan
dalam lokasi memori yang berurutan.
71
Modul Ajar Algoritma dan Pemrograman Modul 9 – Array 2 Dimensi
Indeks baris
0 1 indeks kolom
0 nilai[0, 0] nilai[0, 1]
nilai 1 nilai[1, 0] nilai[1, 1]
2 nilai[2, 0] nilai[2, 1]
penyimpanan di memori :
nilai[0, 0] Nilai[0, 1] nilai[1, 0] nilai[1, 1] nilai[2, 0] nilai[2, 1]
Inisialisasi
1. Automatic array
Format : tipe Variabel_Array[Jumlah_Baris][Jumlah_Kolom] = {{Nilai00,
Nilai01, ..., Nilai0Jumlah_Kolom}, { Nilai10, Nilai11, ...,
Nilai1Jumlah_Kolom }, ..., { NilaiJumlah_Baris0, NilaiJumlah_Baris1,
.., NilaiJumlah_BarisJumlah_Kolom}};
Contoh : int nilai[3][2] = {{0, 0}, {0, 0}, {0, 0}};
atau bisa ditulis
int nilai[3][2] = {0, 0, 0, 0, 0, 0};
2. Static array
Format : static tipe Variabel_Array[Jumlah_Baris][Jumlah_Kolom] = {{Nilai00,
Nilai01, ..., Nilai0Jumlah_Kolom}, { Nilai10, Nilai11, ...,
Nilai1Jumlah_Kolom }, ..., { NilaiJumlah_Baris0, NilaiJumlah_Baris1,
..., NilaiJumlah_BarisJumlah_Kolom}};
Contoh : static int nilai[3][2] = {{0, 0}, {0, 0}, {0, 0}};
atau bisa ditulis
static int nilai[3][2] = {0, 0, 0, 0, 0, 0};
INISIALISASI ARRAY TAK BERATURAN
Jika ukuran array 1 dimensi yang akan dideklarasikan tidak dapat diketahui
dengan pasti, maka pada saat deklarasi ukuran array 1 dimensi tidak perlu
disebutkan. Untuk array dimensi banyak, yang boleh tak beraturan hanyalah indeks
yang paling kiri.
Contoh : 1. int skala[] = {1, 2, 4, 6};
2. int nilai[][2] = {1, 2, 3, 4, 5, 6};
OPERATOR SIZEOF
Merupakan operator yang menghasilkan ukuran dari suatu variabel atau suatu tipe
pada saat kompilasi.
Format : sizeof(<Tipe_atau_Variabel>)
Contoh : sizeof(char) ---> 1 byte
sizeof(int) ---> 2 byte
sizeof(skala) ---> 8 byte
72
Modul Ajar Algoritma dan Pemrograman Modul 9 – Array 2 Dimensi
RINGKASAN
Array berfungsi untuk menyimpan sejumlah data yang bertipe sama dalam satu
variabel sehingga dapat menghemat jumlah variabel yang digunakan. Manipulasi
array harus melalui indeksnya. Indeks pada array dimulai dari nol(0).
LATIHAN/TUGAS
1. Buatlah sliding puzzle dengan luasan dan range angka bawah berupa inputan.
Contoh:
Luas area = 4
Range angka bawah = 51
51 52 53 54
65 61 63 56
60 64 55 62
59 57 58
73
Modul Ajar Algoritma dan Pemrograman Modul 9 – Array 2 Dimensi
Input N: 4
1
11
121
1331
4. Buatlah program untuk mencetak soal Sudoku dengan ukuran 9x9. Sudoku
adalah permainan dimana ada angka dari 1-9, kemudian tiap baris tidak boleh
ada angka yang kembar begitu juga dengan tiap kolom.
5. Buatlah game sederhana yaitu tic-tac-toe atau O X, dimana user diminta
menginputkan ukuran papan permainan. Misal:
Board size: 5
X X
O O X
X X O
X O O
X O
Kondisi diatas menunjukkan X menang.
Cara menginputkan petak mana yang akan diisi dengan meminta inputan
berupa baris dan kolom.
6. Buatlah program untuk mencari jawaban dari word puzzle secara diagonal dan
vertical. Pertama, input mxn word puzzle, kemudian input x kata yang ingin
dicari.
Contoh :
Input : 5 5
LAZCF
EWXSG
PMTCH
AJJIG
LDAUN
2
Apel
Daun
Output :
3,0 ke atas
4,1 ke kanan
74
Modul Ajar Algoritma dan Pemrograman Modul 10 – String
MODUL 10 – STRING
TUJUAN
Setelah selesai mempelajari modul ini Anda mampu melakukan hal-hal berikut:
1. Mengerti dan memahami jenis tipe data string
2. Mampu menyelesaikan persoalan program komputer yang menggunakan
string.
PRASYARAT
1. Mahasiswa telah mengerti konsep array 1 D dan mampu menggunakan array
1 D dalam menyelesaikan persoalan pemrograman.
2. Telah menyelesaikan semua tugas/latihan pada modul 9
DESKRIPSI
Pada modul ini akan dibahas mengenai suatu jenis tipe data yang dapat menyimpan
kumpulan data karakter.
RELEVANSI
Setelah mengetahui tipe data array 1 dimensi untuk menyimpan banyak data dalam
satu variabel, berikut ini akan dibahas mengenai array 1 dimensi dimana data yang
disimpan adalah bertipe karakter.
URAIAN
Berikut ini adalah contoh sebuah persoalan:
Menginputkan sebuah kalimat kemudian menampilkan ke layar monitor
secara terbalik.
Dari persoalan di atas hal-hal yang perlu diperhatikan adalah:
1. Apa yang menjadi output/permintaan dari persoalan?
2. Butuh variabel seperti apa untuk menyimpan kalimat tersebut?
3. Untuk menghasilkan output tersebut memerlukan input apa? Bagaimana
perintah/format inputan?
4. Bagaimana cara menampilkan kalimat dari karakter paling akhir ke paling
awal?
Untuk menjawab pertanyaan 1, output dari program adalah menampilkan kalimat
dari karakter paling akhir ke paling awal.
Untuk menjawab pertanyaan 2, variabel untuk menyimpan kalimat (kumpulan
karakter) adalah string. Untuk memasukkan string menggunakan perintah gets.
Untuk menjawab pertanyaan 3, input yang dibutuhkan adalah sebuah kalimat
(string).
75
Modul Ajar Algoritma dan Pemrograman Modul 10 – String
Baca
kalimat
Counter =
length(kalimat)
true
Cetak
kalimat[Counter]
Counter = Stop
Counter - 1
Implementasi :
Program 10. 1. Menampilkan Kalimat Secara Terbalik
#include<stdio.h>
#include<string.h>
void main()
{
int i;
char s [15];
printf(“String = “);
gets(s);
for(i = strlen(s); i >=0; i--)
printf(“%c”,s[i]);
}
76
Modul Ajar Algoritma dan Pemrograman Modul 10 – String
STRING adalah suatu tipe data yang digunakan untuk menangani data
teks/karakter.
Deklarasi string
char VariabelString [ <panjang> ] ;
Contoh : char Alamat [15] ;
Spesifikasi
Setiap data string harus diapit oleh tanda petik ganda.
Contoh : “Amanda”
Setiap data string selalu diakhiri dengan karakter NULL (‘\0’) yang mempunyai
kode ASCII 0.
Inisialisasi String
char nama[7] = {‘A’, ‘m’, ‘a’, ‘n’, ‘d’, ‘a’,’\0’};
char nama[7] = “Amanda” ;
Keterangan : Variabel string tidak bisa diberi nilai lewat assignment statement.
Penyajian String
Contoh : char Nama[7] = “Amanda”;
0 1 2 3 4 5 6
‘A’ ‘m’ ‘a’ ‘n’ ‘d’ ‘a’ ‘\0’
77
Modul Ajar Algoritma dan Pemrograman Modul 10 – String
Unit : stdio.h
Contoh : printf(“%s”,nama);
4. puts
Fungsi : Untuk mencetak string ke layar monitor.
Format : puts(<VariabelString_atau_KonstantaString>);
Unit : stdio.h
Keterangan : String yang dicetak secara otomatis selalu diakhiri dengan ‘\n’.
Contoh : puts(“Nama = “);
puts(“Amanda”);
Output : Nama =
Amanda
5. cputs
Fungsi : Untuk menampilkan string ke layar monitor tanpa mengakhirinya dg
‘\n’.
Format : cputs(<string>);
Unit : string.h
Contoh : cputs(“Nama = “);
cputs(“Amanda”):
Output : Nama = Amanda
6. strcpy
Fungsi : Untuk menyalin string ke variabel string yang lain.
Format : strcpy(<StringTujuan>, <StringAsal>);
Unit : string.h
Contoh : strcpy(Tujuan, “Amanda”);
7. strlen
Fungsi : Untuk menghitung banyaknya karakter yang menyusun string.
Format : strlen(<String>);
Unit : string.h
Keterangan : Karakter NULL tidak ikut dihitung.
Contoh : strlen(“Amanda”);
Hasil :6
8. strcat
Fungsi : Untuk menggabungkan 2 buah string menjadi satu.
Format : strcat(<StringTujuan>, <StringSumber>);
Unit : string.h
Keterangan : StringSumber digabungkan di bagian belakang StringTujuan
Contoh : char tujuan[9] = “Aman”;
strcat(Tujuan, “da”);
Output : Tujuan berisi “Amanda”
9. strcmp
Fungsi : Untuk membandingkan string yang satu dengan string yang lainnya.
Keterangan : Pembandingan dilakukan sesuai dengan urutan abjad (menurut
urutan ASCII).
Pembandingan dilakukan dari kiri ke kanan. Jika ketemu satu
karakter yang tidak sama, maka hasil langsung diberikan.
String yang jumlah karakternya lebih sedikit, dinyatakan sebagai
string yang lebih kecil.
78
Modul Ajar Algoritma dan Pemrograman Modul 10 – String
79
Modul Ajar Algoritma dan Pemrograman Modul 10 – String
80
Modul Ajar Algoritma dan Pemrograman Modul 10 – String
RINGKASAN
String adalah suatu tipe data array of char yang digunakan untuk menangani data
teks. String selalu diapit dengan tanda petik ganda. Tiap-tiap karakter yang
membentuk string dapat dimanipulasi melalui indeks-nya.
LATIHAN/TUGAS
1. Buatlah program untuk menghitung jumlah karakter pada sebuah string
Contoh :
Input = Makan Pensil
Hasil =
a=2
e=1
i=1
k=1
l=1
m=1
n=2
p=1
s=2
2. Buatlah program untuk memeriksa apakah sebuah kalimat yang diinputkan
merupakan kalimat Palindrom. Kalimat palindrom merupakan kalimat yang
dapat dibaca dengan sama baik dari depan maupun dari belakang. (Tidak
Case Sensitive).
3. Buatlah program untuk menampilkan index dimana terdapat huruf capital
pada sebuah string.
Input : MeLi mAKan piSAnG
Hasil : 0 2 6 7 13 14 16
4. Buatlah program untuk memotong string menjadi string baru. Contoh :
Input = Algoritma dan Pemrograman
Cut = gram
Hasil = Algoritma dan Pemroan
5. *) Case Sensitive Buatlah sebuah program yang mampu mengcopy sebuah
string ke dalam string yang lain! (dilarang menggunakan fungsi)
6. Buatlah program yang mampu mengubah case tiap kalimat sesusai dengan
title case
Input : AlgoRITmA PemRogRAMan
Output : Algoritma Pemrograman
81
Modul Ajar Algoritma dan Pemrograman Modul 10 – String
Ma
Output : 2
9. Buatlah sebuah program untuk mengurutkan kata dalam kalimat mulai dari
yang terbesar atau terkecil (user dapat memilih)
Contoh :
Input = saya makan nasi
Pilih : 1. Asc 2. Desc
Pilih = 1
Hasil : makan nasi saya
Pilih = 2
Hasil = saya nasi makan
10. Buatlah program untuk menambah kata ke kalimat yang terbentuk dari kata-
kata yang diinputkan sebelumnya. User dapat memilih posisi penambahan
(depan, tengah, belakang)
Misal :
Input 1 = sayap
Hasil = sayap
Input 2 = makan
Pilih posisi = 1. Awal 2. Tengah 3. Akhir
Pilih = 2
Hasil = say makan ap
Input 3 = butiran
Pilih posisi = 1. Awal 2. Tengah 3. Akhir
Pilih = 1
Hasil = butiran say makan ap
11. Buatlah program untuk menampilkan bentuk obat nyamuk dari sebuah
string
Input : budi cari ayam
Hasil :
82
Modul Ajar Algoritma dan Pemrograman Modul 11 - Pointer
MODUL 11 – POINTER
TUJUAN
Setelah selesai mempelajari modul ini Anda mampu melakukan hal-hal berikut:
1. Mahasiswa mengerti tipe data dinamis
2. Mahasiswa mampu mendeklarasikan dan menggunakan sebuah variabel
dinamis
PRASYARAT
1. Mahasiswa telah mengerti konsep array dan mampu menggunakan array
dalam menyelesaikan persoalan pemrograman.
2. Telah menyelesaikan semua tugas/latihan pada modul 10
DESKRIPSI
Pada modul ini akan dibahas mengenai penerapan pointer, penggunaan pointer
dalam pointer, hingga pengalokasian pointer terhadap array.
RELEVANSI
Setelah pernah mempelajari pembentukan array dimodul sebelumnya, dengan
penggunaan pointer yang dipelajari dimodul ini, dapat dibentuk suatu tipe data
baru yang lebih fleksibel dalam penggunaannya.
URAIAN
Apakah Anda pernah bertanya dimana seseorang tinggal? Jika rumah orang tersebut
dekat Anda dapat menunjuk rumah tersebut. Tetapi jika rumah tersebut tidak cukup
dekat untuk dilihat, maka Anda akan mengingat alamatnya. Pointer juga melakukan
hal yang sama. Pointer menyimpan alamat dari suatu variabel yang ditunjuk[2].
Seringkali pointer dianggap sebagai sesuatu yang sulit. Sesungguhnya pointer
bukanlah sesuatu yang sulit jika Anda meluangkan waktu untuk memahaminya.
Pada suatu saat, sulit atau tidak, merupakan sesuatu yang penting untuk
mempelajari pointer. Beberapa tugas dapat lebih mudah jika menggunakan pointer
seperti dynamic memory allocation, yang tidak dapat dilakukan tanpa
menggunakan pointer. Untuk itu, marilah kita belajar tentang pointer.
Deklarasi Pointer
Dalam membuat program, data akan disimpan dalam memori. Ukuran setiap data
berbeda-beda dan dapat berukuran lebih dari satu byte. Walaupun data yang
disimpan ukurannya lebih dari satu byte, data tersebut tetap hanya mempunyai satu
alamat, yaitu nomor yang lebih kecil. Sama seperti rumah dengan dua nomor, maka
nomor rumah tersebut akan dikatakan bernomor sesuai nomor yang lebih kecil.
83
Modul Ajar Algoritma dan Pemrograman Modul 11 - Pointer
Pointer adalah suatu type variable yang didesain untuk memanipulasi alamat-
alamat memori[3]. Manipulasi yang dilakukan antara lain mengganti data yang ada
di dalam alamat tersebut, mengambil data yang ada ataupun mengisikan data ke
suatu alamat tertentu.
Dalam bahasa pemrograman, ada dua cara untuk mengakses variable yaitu:
1. mengakses dengan memanggil namanya. Dalam hal ini nama variable yang
diakses harus sudah dideklarasikan sebelumnya.
Cth: int x ; variable x dideklarasikan terlebih dahulu
int x + = 100 ; variable x diakses untuk kemudian
menambahkan 100 pada variable x
2. mengakses suatu variable dengan menggunakan variable kedua (variable
lain). Variable kedua ini adalah variable yang menyimpan alamat dari
variable “pertama” yang akan diakses. Variable kedua ini yang disebut
pointer.
Cth: int x = 0 ;
int * ptr ; variable pointer
ptr = &x ; menyimpan alamat x pada ptr.
Pada contoh di atas, pointer bertipe int * dengan variable ptr.
Pointer pada contoh ini dapat digambarkan sebagai berikut:
X ptr
9640 100
0 9640
cara mengakses nilai yang ada pada alamat yang disimpan dalam suatu
variable pointer dengan *ptr . Proses ini disebut dereference.
Cth: ptr = & x ; ptr diisi dengan alamat dari x
* ptr = 3 ; cell pada alamat yang disimpan di ptr diisi
dengan 3. Ini sama artinya dengan x = 3 ;
perlu diperhatikan: operator * hanya dapat dipakai untuk var yang bertipe
pointer, sedangkan operator & hanya dapat digunakan untuk mengakses
alamat suatu variable, bukan suatu nilai.
Penulisan deklarasi variable dalam C:
model 1 : int *ptr ; sama dengan
model 2 : int* ptr ; sama dengan
model 3 : int * ptr;
Kesalahan terjadi jika pointer dideklarasikan dengan tipe int* tetapi
kemudian digunakan untuk menyimpan alamat dari suatu var yang bertipe
selain int (misalnya:float). Supaya kesalahan tersebut menjadi legal, ada dua
cara:
1. Cast operation
Cth: char * g;
int * ptr;
ptr = (int *) g;
84
Modul Ajar Algoritma dan Pemrograman Modul 11 - Pointer
Cast operation ini akan memaksa compiler untuk menyimpan alamat dari
data yang berbeda tipenya, yaitu dengan cara menuliskan tipe dari
variable yang akan disimpannya.
2. Pointer to void
Dapat disebut sebagai tipe data pointer yang generik. Pointer to void
dapat dikonversikan ke tipe apapun tanpa cast operation. Demikian juga
sebaliknya, pointer dengan tipe apapun dapat dikonversikan menjadi
pointer to void tanpa cast operation.
Cth: void * f ;
int * ptr ;
ptr = f ;
Dalam hal ini pointer tidak ditentukan terlebih dahulu akan menyimpan
data yang bertipe apa.
kasus 1:
1 char char1 = ‘A’;
2 char char2 = ‘Z’ ;
3 char temp ;
4 char* char_ptr ;
5 char_ptr = &char1 ;
6 temp = *char_ptr ;
7 *char_ptr = char2;
8 char2 = temp ;
- Dari kasus di atas, telitilah perubahan data yang terjadi untuk setiap
variable yang dideklarasikan.
- Jelaskan apa yang dilakukan di setiap baris perintah di atas.
kasus 2:
#include <stdio.h>
#include <stdlib.h>
main()
{ char c = ‘O’ , d = ‘H’ ;
char *p1 , *p2 , *temp ;
p1 = &c;
p2 = &d;
temp = p1;
p1 = p2 ;
p2 = temp ;
printf(“%c%c”, *p1, *p2) ;
}
- Jelaskan apa yang ditampilkan pada layer.
Level of Indirection
Ada kemungkinan pendeklarasian pointer to pointer. Banyaknya penunjuk yang
harus diikuti untuk dapat mengakses data yang direferensikan disebut level of
indirection. Atau dapat juga dikatakan banyaknya dereference yang harus dilakukan
untuk mengakses data.
Dalam bahasa yang sederhana, jika suatu pointer menyimpan alamat maka harus
mencari ke alamat tersebut baru dapat melihat data yang disimpan di alamat
tersebut. Tetapi jika pada suatu pointer menyimpan alamat 1, dan setelah dicari di
alamat 1 ternyata berisi alamat 2 (bukan data), maka perlu dilakukan pencarian lagi
ke alamat 2 baru dapat mendapatkan data yang tersimpan di alamat 2. Begitu
seterusnya.
85
Modul Ajar Algoritma dan Pemrograman Modul 11 - Pointer
Pertanyaan:
1. Apa yang terjadi jika suatu variable biasa berisi sebuah alamat dari variable
lainnya?
Cth: int bilangan= 0xFF00;
Apa yang terjadi saat bilangan di cetak ke layar?
2. Apa yang terjadi jika suatu variable pointer berisi data yang bukan alamat?
Cth: char *bilangan;
bilangan = ’a’;
float number[100];
float * ptr ;
ptr = number; atau ptr = & number[0];
Variable “nama” tidak boleh langsung diisi dengan data”nina” karena “nama”
hanya dapat menyimpan alamat. Untuk menyimpan nina ke dalam nama maka
harus menggunakan fungsi khusus yang sudah disediakan oleh C, yaitu strcpy().
Mengapa?
Perbedaan prinsip antara pointer to char dan array of char adalah:
S1 dapat diubah nilainya karena berupa pointer variable, sedangkan
S2 tidak dapat diubah begitu saja karena berupa pointer constant. Pointer variable
artinya pointer yang dapat menyimpan data dengan ukuran bebas tergantung data
yang diisikan. Sedangkan pointer constant adalah suatu pointer yang sejak
86
Modul Ajar Algoritma dan Pemrograman Modul 11 - Pointer
dideklarasikan sudah ditentukan besar maksimum data yang dapat diisikan. Misal
S2, maksimal dapat menyimpan 10 char.
operator dibaca dari kiri ke kanan, artinya dikerjakan mulai dari operator paling kiri.
Penggunaan pointer arithmetic akan otomatis menyesuaikan ukuran fisik (byte) dari
elemen yang diakses sesuai dengan tipe datanya.
Dynamic Allocation
Jika menggunakan array kita harus menentukan jumlah tempat di memory yang
diperlukan pada saat deklarasi.
Dengan menggunakan pointer kita dapat menentukan besar memory yang
diperlukan sesuai dengan yang diperlukan (lebih fleksibel)
Contoh:
87
Modul Ajar Algoritma dan Pemrograman Modul 11 - Pointer
1 Dimensi:
void main()
{
int *data;
int n;
cout<<”Jumlah data : “;
cin>>n;
data = new int[n];//alokasi tempat di memory sebanyak n
}
2 Dimensi:
#include<iostream.h>
void main()
{
int **data;
int b,k;
cout<<"Jumlah baris : ";
cin>>b;
cout<<"Jumlah kolom : ";
cin>>k;
data = new int*[b];//alokasi tempat di memory sebanyak baris
for (int i=0;i<b;i++)
data[i]=new int[k]; //alokasi tempat per-baris sebanyak
kolom
}
RINGKASAN
Pointer adalah varibel yang menyimpan alamat variabel lain. Penggunaan pointer
membantu dalam pembentukan variabel yang memorinya bersifat dinamis dan
lebih fleksibel.
LATIHAN/TUGAS
1. Buatlah program yang melakukan sorting pada array of string (array 2D)
dengan basis pointer.
2. Buatlah program untuk find dan replace suatu substring pada string yang
diinputkan. String dibuat dengan menggunakan pointer!
.: MENU :.
1. Input string
2. Tampilkan string.
3. Find and replace substring.
Contoh :
String = “saya makan bersama ayah dan ibu.”
Substring “ya” diganti dengan “nta”, maka :
String = “santa makan bersama antah dan ibu.”
3. Buatlah program untuk mengurutkan list bilangan (array 1 dimensi), dengan
panjang array yang selalu dapat ditambah! Buat dalam bentuk menu.
.: MENU :.
1. Tambahkan data kedalam Array.
2. Tampilkan data Array (tidak urut).
3. Tampilkan data Array (urut).
88
Modul Ajar Algoritma dan Pemrograman Modul 11 - Pointer
4. Buatlah program untuk melakukan transpose dan rotasi matriks 2D. Matriks
dibuat dengan menggunakan pointer, sehingga jumlah baris dan kolom
selalu mengikuti jumlah baris dan kolom sesungguhnya pada matriks!
M= 1 2 3
4 5 6
SETELAH
DIROTASI
M= 4 1
5 2
6 3
SETELAH
DITRANSPOSE
M= 4 5 6
1 2 3
89
Modul Ajar Algoritma dan Pemrograman Modul 12 – Fungsi
MODUL 12 – FUNGSI
TUJUAN
Setelah selesai mempelajari modul ini Anda mampu melakukan hal-hal berikut:
1. Mengerti dan memahami kegunaan dari fungsi
2. Mampu menggunakan fungsi untuk menyelesaikan persoalan program
komputer
PRASYARAT
1. Mahasiswa telah mengerti konsep dan penggunaan fungsi
2. Telah menyelesaikan semua tugas/latihan pada modul 11
DESKRIPSI
Pada modul ini akan dibahas mengenai fungsi (function), apa manfaatnya dan
bagaimana penggunaannya.
RELEVANSI
C merupakan program yang tersusun atas fungsi-fungsi. Minimum fungsi yang
harus ada adalah fungsi main. Pada modul ini akan dibahas mengenai membuat
fungsi-fungsi yang didefinisikan sendiri.
URAIAN
Berikut ini adalah contoh sebuah persoalan:
Buat program untuk menghitung total panjang semua sisi segitiga jika
diketahui koordinat 3 titik pada segitiga.
Dari persoalan di atas hal-hal yang perlu diperhatikan adalah:
1. Apa yang menjadi output/permintaan dari persoalan?
2. Variabel apa yang diperlukan untuk menyimpan data titik-titik pada segitiga
tersebut?
3. Untuk menghasilkan output tersebut memerlukan input apa?
4. Bagaimana cara menghitung panjang 1 sisi segitiga dan total ketiga sisinya?
Untuk menjawab pertanyaan 1, outputnya adalah total panjang semua sisi.
Untuk menjawab pertanyaan 2, variabel untuk menyimpan data titik (x,y) adalah
struct dengan 2 data member yaitu titik x dan titik y.
Untuk menjawab pertanyaan 3, yang menjadi input adalah 3 titik.
Untuk menjawab pertanyaan 4, dicari jarak antara 2 titik, ini akan menjadi panjang 1
sisi segitiga. Rumus jarak 2 titik adalah : ( x1 x2) 2 ( y1 y 2) 2
Proses perhitungan panjang sisi segitiga ini akan dilakukan 3 kali (karena jumlah
sisinya ada 3).
Berikut ini adalah jawaban dari permasalahan di atas:
90
Modul Ajar Algoritma dan Pemrograman Modul 12 – Fungsi
Di atas tampak bahwa proses menghitung panjang sisi diletakkan pada fungsi yang
berbeda (bukan di dalam main). Sehingga proses menghitung panjang sisi yang
dilakukan 3 kali tidak lagi ditulis 3 kali, tetapi tinggal memanggil fungsi
hitungPanjangSisi sebanyak 3 kali. Hal ini akan memperpendek penulisan program.
Nama fungsi yang didefinisikan sendiri oleh pemrogram tidak boleh sama dengan
nama build-in function pada compiler C++.
Fungsi digunakan agar pemrogram dapat menghindari penulisan bagian program
(kode) berulang-ulang, dapat menyusun kode program agar terlihat lebih rapi dan
kemudahan dalam debugging program. Parameter adalah nama-nama peubah yang
dideklarasikan pada bagian header fungsi. Pemrogram dapat membuat fungsi yang
didefinisikan sendiri olehnya.
Bentuk umumnya :
TypeNilaiYgDikembalikan NamaFunction (DeklarasiFormalParameter)
{
......
return (<ekspresi>) ;
}
91
Modul Ajar Algoritma dan Pemrograman Modul 12 – Fungsi
Prototipe Fungsi
Sebuah fungsi tidak dapat dipanggil kecuali sudah dideklarasikan, deklarasi fungsi
dikenal dengan sebutan prototipe fungsi. Prototipe fungsi berupa :
1. Nama Fungsi
2. Tipe nilai fungsi
3. Jumlah dan tipe argumen
Dan diakhiri dengan titik koma, sebagaimana pada pendeklarasian variabel. Sebagai
contoh:
1. long kuadrat (long l) ;
Pada contoh pertama, fungsi kuadrat ( ) mempunyai argumen bertipe long dan nilai
balik bertipe long.
2. void garis ( );
Pada contoh kedua, fungsi garis ( ) tidakmemiliki argumen dan nilai baliknya tidak
ada
(void).
3. double maks (double x, double y)
Pada contoh ketiga, fungsi maks( ) mempunyai dua buah argumen, dengan masing-
masing argumen bertipe double.
Program 13. 2 Fungsi Hitung Perkalian
#include<stdio.h>
int hasil(int A,int B);
void main()
{
int x,y,z;
printf(“Masukkan nilai x = “); scanf(“%d”,&x);
printf(“Masukkan nilai y = “); scanf(“%d”,&y);
z=hasil(x,y);
printf(”Hasil perkaliannya = %d”, hasil(x,y));
}
int hasil(int A, int B)
{
return(A*B);
}
92
Modul Ajar Algoritma dan Pemrograman Modul 12 – Fungsi
Penjelasan :
// Fungsi Perkalian
// tipe_return nama_fungsi (tipe_argument argumen)
int hasil(int A, int B)
{
return(A*B);
}
Fungsi yang didefinisikan oleh pemrogram terdiri atas dua bagian, yaitu judul
(header) dan isi (body). Judul dari sebuah fungsi terdiri dari tipe return (int), nama
fungsi (hasil) dan list parameter ( int A, int B).
Jadi, judul untuk fungsi hasil adalah
int hasil (int A, int B)
Isi dari sebuah fungsi adalah blok kode yang mengikuti judulnya. Berisi kode yang
menjalankan aksi dari fungsi, termasuk pernyataan return yang memuat nilai fungsi
yang akan dikembalikan ke yang memanggilnya, Isi dari fungsi hasil ( ) adalah
{
return A * B;
}
Biasanya isi dari fungsi cukup besar. Meskipun demikian, judulnya tetap hanya
berada dalam satu baris. Isi dari sebuah fungsi dapat memanggil fungsi itu sendiri
(disebut rekursif) atau memanggil fungsi lainnya. Pernyataan return dari sebuah
fungsi mempunyai dua manfaat, yaitu akan mengakhiri fungsi dan mengembalikan
nilainya ke program pemanggil.
Bentuk umum pernyataan return adalah :
return ekspresi;
Dengan ekspresi adalah sebuah ekspresi yang nilainya dinyatakan untuk sebuah
variable yang tipenya sama seperti tipe return. Terdapat juga fungsi yang tidak
memberikan nilai balik atau tipe return-nya void.
Program 13. 3 Fungsi Tanpa Return
#include<stdio.h>
void tampilkanIdentitas();
void main()
{
tampilkanIdentitas() ;
}
void tampilkanIdentitas();
{
printf(“Jurusan Teknik Informatika\n”);
printf(“Universitas Kristen Petra\n”);
printf(“Surabaya”);
}
93
Modul Ajar Algoritma dan Pemrograman Modul 12 – Fungsi
Variabel eksternal adalah variabel yang bersifat global yang dapat dikenali oleh
seluruh fungsi yang terdapat dalam program tersebut. Seluruh fungsi akan
mengenal variabel yang bersifat eksternal ini. Variabel eksternal dideklarasikan di
luar fungsi dan sejajar dengan prototipe fungsi serta pengarah kompiler.
Program 13. 4 Program Variabel Lokal dan Eksternal
#include<stdio.h>
int data=100; //variabel eksternal
void fungsiSatu(); //prototipe fungsi
void fungsiDua();
void main();
{
int data=200; //variabel lokal main
fungsiSatu();
fungsiDua();
printf(“Nilai data lokal main = %d\n“,data);
};
void fungsiSatu();
{
int data=300; //variabel lokal fungsiSatu
printf(“Nilai data lokal satu = %d\n“,data);
}
void fungsiDua();
{
printf(“Nilai data eksternal = %d\n“,data);
}
outputnya :
Nilai data lokal satu = 300
Nilai data eksternal = 100
Nilai data lokal main = 200
Penjelasan :
Dalam pemograman tersebut terdapat variabel lokal dan variabel eksternal yang
namanya sama yaitu data. Dalam fungsi main ( ) dan fungsi_satu ( ) terdapat
variabel lokal dengan nama sama tetapi sebetulnya lokasi penyimpanannya dalam
memori berbeda, sehingga dua variabel itu berbeda dan tidak saling mengenal.
Fungsi_satu ( ) sebetulnya mengenal variabel eksternal data yang nilainya 100, tetapi
karena dalam fungsi terdapat variabel lokal data yang bernilai 300, maka yang
diprioritaskan untuk diproses dalam fungsi tersebut adalah variabel lokalnya. Jadi
jika dalam fungsi terdapat variabel lokal dan variabel eksternal yang sama, maka
yang diprioritaskan untuk diproses adalah variabel lokal. Dalam fungsi_dua( ) tidak
terdapat variabel lokal sehingga yang diproses pada fungsi tersebut adalah variabel
eksternalnya.
PARAMETER
Parameter adalah sarana komunikasi antar fungsi. Pengertian antar fungsi adalah
antara fungsi yang satu dengan fungsi lain termasuk antara fungsi yang dipanggil
dengan fungsi utama. Dalam pemograman yang melibatkan fungsi, diusahakan agar
fungsi bersifat independen artinya tidak tergantung pada fungsi lain. Setiap fungsi
hanya mengerjakan satu tugas tertentu.
Antar fungsi saling berkomunikasi menggunakan parameter.
Terdapat dua macam bentuk parameter dalam hubungannya dengan penggunan
fungsi dalam program yaitu :
94
Modul Ajar Algoritma dan Pemrograman Modul 12 – Fungsi
95
Modul Ajar Algoritma dan Pemrograman Modul 12 – Fungsi
#include <stdio.h>
void main()
{
int var1 = 5; // misal alamat var1 adalah 12ff7c
int &var2 = var1; // var2 mereferensikan variabel var1
// sehingga isi maupun alamat var2
// sama dengan variabel var1
printf(“alamat var1 = %x”,&var1);
printf(“isi var1 = %d”,var1);
printf(“alamat var2 = %x”,&var2);
printf(“isi var2 = %d”,var2);
}
96
Modul Ajar Algoritma dan Pemrograman Modul 12 – Fungsi
Perubahan nilai parameter formal di dalam fungsi akan mengubah nilai asli
di bagian program yang memanggilnya karena parameter di fungsi
merupakan referensi dari variabel yang dikirimkan ke dalam fungsi.
Call by reference tidak dapat menerima data berupa ungkapan.
Program 13. 7 Contoh Ungkapan
#include <stdio.h>
int tambah(int a,int b)
{
return (a+b);
}
void main()
{
tambah(7,2);
//ungkapan
//saat pemanggilan fungsi isi dari
//parameter berupa suatu nilai pasti.
}
#include<stdio.h>
void swap(int &x, int &y); //Call by Reference
void main()
{
int bil1,bil2;
printf(“Masukkan bil1: “); scanf(“%d”,&bil1);
printf(“Masukkan bil2: “); scanf(“%d”,&bil2);
swap(bil1,bil2);
#include<stdio.h>
void clearData(int *Array); //Call by Address
void main()
{
int data[5];
for(int i=0;i<5;i++)
{
data[i]=i+1;
printf(“Data ke %d = %d\n”,i+1,data[i]);
}
clearData(data);
for(i=0;i<5;i++)
{
printf(“Data ke %d = %d\n”,i+1,data[i]);
}
Output program:
Data ke 1 = 1
Data ke 2 = 2
Data ke 3 = 3
Data ke 4 = 4
Data ke 5 = 5
Data ke 1 = 0
Data ke 2 = 0
Data ke 3 = 0
Data ke 4 = 0
Data ke 5 = 0
98
Modul Ajar Algoritma dan Pemrograman Modul 12 – Fungsi
RINGKASAN
Fungsi adalah sekumpulan perintah operasi program yang dapat menerima
argumen input dan dapat memberikan hasil output yang dapat berupa nilai ataupun
sebuah hasil operasi. Hasil akhir fungsi akan berupa sebuah nilai balik (return).
Manfaat dari fungsi antara lain modul yang sama cukup ditulis sekali, mudah untuk
dimanajemeni dan mudah untuk mendeteksi kesalahan
LATIHAN/TUGAS
1. Buatlah sebuah fungsi untuk mengetahui apakah dua buah string merupakan
anagram atau tidak (cth: siap merupakan anagram dari sapi). Parameternya
adalah dua buah string.
2. Buatlah sebuah fungsi untuk mengecek apakah string yang diinputkan oleh user
pada sebuah web valid tidak.
3. Buatlah 2 fungsi untuk mengurutkan array 1D secara ascending dan descending.
4. Buatlah sebuah fungsi untuk menampilkan semua index dari bilangan yang
dicari.
5. Buatlah fungsi untuk menghitung luas permukaan sebuah prisma segi empat
dan kubus. Parameter fungsi kubus adalah sisi, serta sisi dan tinggi sebagai
parameter fungsi prisma.
6. Dari soal nomor 5, Apabila prisma segi empat dan kubus diletakkan berimpitan.
Dan kubus ditempatkan di bawah prisma. Buatlah fungsi untuk menghitung luas
permukaan bangun gabungan tersebut.
7. Buat fungsi untuk menghitung KPK dan FPB dari 2 bilangan.
8. Buat fungsi untuk menghitung penjumlahan 2 pecahan (hasilnya harus tetap
pecahan dengan nilai yang paling sederhana)
a c pembilang
b d penyebut
9. Buatlah fungsi untuk mengetahui apakah sebuah string merupakan palindrom
atau tidak.
10. Buatlah fungsi untuk mencari nilai permutasi dan kombinasi dari dua buah
bilangan.
11. Buatlah fungsi unuk melakukan pengecekan apakah suatu bilangan merupakan
bilangan prima atau tidak. Parameternya adalah bilangan itu sendiri dan
hasilnya adalah boolean.
12. Buatlah fungsi untuk melakukan pembulatan sebuah string yang berisi angka
bertipe float, parameternya adalah angka itu sendiri dan jumlah digit di belakang
koma. Tanpa menggunakan fungsi ROUND( ) dan FLOOR( ).
13. Buatlah fungsi konversi dari bilangan desimal ke biner, oktal, dan hexa.
14. Buatlah fungsi yang mampu melakukan strcat, strcpy, strlen, strupr, strlwr,
strrev dan strcmp buatan anda sendiri, tidak boleh ada include lain selain
<stdio.h>
15. Buatlah fungsi untuk menghitung jumlah kata yang terdapat pada inputan.
Parameternya adalah string itu sendiri.
99
Modul Ajar Algoritma dan Pemrograman Modul 13 - File
MODUL 13 – FILE
TUJUAN
Setelah selesai mempelajari modul ini Anda mampu melakukan hal-hal berikut:
1. Mahasiswa mampu membedakan file biner dan file teks
2. Mahasiswa memahami macam-macam operasi file dalam file teks dan file
biner
3. Mahasiswa dapat membuat program untuk operasi file
PRASYARAT
1. Mahasiswa telah mengerti konsep dan penggunaan fungsi
2. Telah menyelesaikan semua tugas/latihan pada modul 12
DESKRIPSI
Pada modul ini akan dibahas mengenai file atau kumpulan data-data yang disimpan
dalam disk dalam bentuk suatu kesatuan. Ada dua jenis file yaitu file teks dan file
biner.
RELEVANSI
Pada modul 12 telah dibahas mengenai jenis-jenis fungsi serta penggunaannya.
URAIAN
File adalah kumpulan data-data yang disimpan dalam disk dalam bentuk suatu
kesatuan.
Suatu file merupakan organisasi dari sejumlah record.
Masing-masing record dapat terdiri dari satu atau beberapa field dan setiap field
terdiri dari satu atau beberapa byte.
Operasi file pada dasarnya meliputi 3 tahapan :
1. Membuka / mengaktifkan file
2. Melaksanakan operasi file
3. Menutup file
Membuka File
Untuk membuka / mengaktifkan file sebelum dapat diakses, digunakan fungsi fopen(
)
Syntax : FILE *fopen ( char *namafile, char *mode );
ket :
namafile berupa nama dari file yang akan diaktifkan
mode berupa jenis operasi yang dilakukan terhadap file
prototype ada pada file stdio.h
100
Modul Ajar Algoritma dan Pemrograman Modul 13 - File
Keluaran fungsi fopen ( ) berupa pointer yang menunjuk ke tipe FILE, yaitu tipe
struktur yang definisinya ada pada file stdio.h
Berhasil-tidaknya operasi pengaktifan file dapat dilihat pada keluaran fungsi fopen ().
Jika keluaran berupa NULL berarti operasi pengaktifan gagal.
Menutup File
• Untuk menutup file, fungsi yang digunakan adalah fclose ( ). Bentuk
deklarasinya adalah :
int fclose ( FILE *pf );
• Fungsi fclose( ) menghasilkan keluaran berupa nol jika operasi penutupan file
berhasil dilakukan.
• Disamping fclose ( ) terdapat fungsi fcloseall ( ) yang kegunaannya adalah
untuk menutup semua file yang sedang terbuka. Bentuk deklarasinya :
int fcloseall (void);
• Fungsi fcloseall ( ) menghasilkan nilai EOF (EOF didefinisikan pada file
stdio.h, yaitu bernilai -1) jika terjadi kegagalan. Sedangkan jika berhasil,
keluaran fungsi berupa jumlah file yang ditutup.
101
Modul Ajar Algoritma dan Pemrograman Modul 13 - File
Bentuk deklarasinya :
int fputc ( int kar, FILE *ptr_file );
keterangan:
ptr_file adalah pointer-ke-FILE yang berisi keluaran dari fopen ( )
kar berupa karakter yang akan disimpan dalam file.
Contoh Pembacaan File per Karakter
Contoh program yang digunakan untuk membaca suatu isi file (misal COBA.TXT,)
dengan langkah sebagai berikut :
• Buka file COBA. TXT dengan mode “r”. Jika tak berhasil dibuka beri
keterangan bahwa file tidak ada, selesai.
• Baca sebuah karakter dari file. Jika karakter sama dengan EOF (tanda akhir
file) maka langkah ke 4
• Tampilkan karakter ke layar dan kembali ke langkah kedua
• Tutup file
• Selesai
Program 14. 1.Program Baca File Per Karakter
#include <stdio.h>
#include <conio.h>
main( )
{
FILE*pf;
char kar;
clrscr( );
if ((pf = fopen (“COB. TXT”, “r”)) = = NULL )
{
cputs (“File tak dapat dibuka !\r\n”);
exit;
}
while ( (kar = getc (pf) ) !=EOF )
putch (kar);
fclose (pf);
}
102
Modul Ajar Algoritma dan Pemrograman Modul 13 - File
103
Modul Ajar Algoritma dan Pemrograman Modul 13 - File
Kedua fungsi di atas berlaku seperti fungsi printf( ) dan scanf( ), hanya saja
operasinya pada file.
104
Modul Ajar Algoritma dan Pemrograman Modul 13 - File
Menghapus File
• Fungsi unlink( ) digunakan untuk menghapus File.
• Bentuk deklarasinya :
int unlink (char *namafile);
ket:
– namafile adalah pointer yang menunjuk ke nama file yang akan
dihapus.
RINGKASAN
File adalah kumpulan data-data yang disimpan dalam disk dalam bentuk suatu
kesatuan. Suatu file merupakan organisasi dari sejumlah record. Ada dua jenis file
yaitu file teks dan file biner.
105
Modul Ajar Algoritma dan Pemrograman Modul 13 - File
LATIHAN/TUGAS
File Text
1. Buatlah kalkulator sederhana yang bisa menyimpan jumlah terakhir walaupun
program telah ditutup.
Misal:
Input : 3
Output : 3
Input : + 7
Output : 10
Input : + 8
Output : 18
Input : c (clear untuk mengembalikan ke 0)
Output : 0
Input : 4
Output : 4
Input : * 4
Output : 16
dan seterusnya
2. Buatlah sebuah pola segitiga sama sisi yang tersimpan pada sebuah file! Input
berupa ukuran, dan output terdapat dalam file.
Contoh :
Input : 4
Output : (dalam file)
*
***
*****
*******
3. Buatlah sebuah program untuk membaca teks dari sebuah file dan menghitung
jumlah kata yang terdapat dalam file tersebut.
4. Buatlah sebuah program untuk menulis input ke file dan mengeprint pola dari
file dengan menu sebagai berikut:
.:Menu:.
1. Input to file
2. Print pola
3. Exit
CONTOH isi file :
12
22
33
43
NOTE:
1 2 - diamond sebanyak 2 ke 2 2 - diamond sebanyak 2 ke
samping bawah
* * *
****** ***
* * *
106
Modul Ajar Algoritma dan Pemrograman Modul 13 - File
*** ***
* **
3 3 - frame sebanyak 3 ke samping ***
******* **
**** ***
******* **
4 3 - frame sebanyak 3 ke bawah ***
6. Tampilkan hasil perhitungan dari operasi yang ada dalam file teks pada layar
console, setiap contoh kasus dibatasi dengan ‘enter’. Bulatkan hasil 2 angka
dibelakang koma, abaikan hirarki operator.
Contoh:
input.txt
5*8/7+6
10/8*100+52*6-7
125/5*9+65-92
Output pada layar console:
11.71
430
198
7. Buatlah program untuk melakukan fungsi FIND and REPLACE didalam suatu
file teks (paragraph). Pada fungsi FIND, output berupa angka pada kata ke
berapa substring ditemukan. Sedangkan fungsi REPLACE dilakukan pada
semua substring yang ditemukan (REPLACE ALL).
Contoh:
Pada file teks:
Sejumlah buruh dan ibu rumah tangga di Kabupaten Kudus, Jawa Tengah,
terpaksa membeli tahu dan tempe dengan harga tinggi. Pasalnya, tahu dan
tempe merupakan menu termurah harian yang bisa mereka jangkau.
FIND : tempe
Output : kata “tempe” berada di kata ke 16, 23
REPLACE : tahu
WITH : kedelai
Output : (nama file selalu sama) isi pada file teks berubah menjadi:
Sejumlah buruh dan ibu rumah tangga di Kabupaten Kudus, Jawa
Tengah, terpaksa membeli kedelai dan tempe dengan harga tinggi.
Pasalnya, kedelai dan tempe merupakan menu termurah harian yang
bisa mereka jangkau.
107
Modul Ajar Algoritma dan Pemrograman Modul 13 - File
File Biner
1. Buatlah game Space Impact sederhana, lalu berikan Menu “Top 5 Score” yang
menyimpan 5 score tertinggi selama beberapa kali permainan. Data disimpan
dalam bentuk file biner dan data yang disimpan adalah score dan nama player.
Data tersebut di-load jika program dijalankan.
2. Buatlah sebuah program untuk memecah sebuah file menjadi beberapa file,
sejumlah inputan user.
Contoh tampilan program :
Masukkan nama file : “Test.bin”
Pecah menjadi (bagian) : 3
Ukuran file asal : 1,400,000 bytes
Hasil proses :
Test1.bin : 500,000 bytes
Test2.bin : 500,000 bytes
Test3.bin : 400,000 bytes
3. Sekumpulan data pegawai akan disimpan dalam file biner. Buatlah program
dengan spesifikasi berikut:
a. Program bisa menulis (input) data ke file tanpa menghapus data
sebelumnya.
b. Program bisa melakukan pencarian, edit, dan penghapusan data,
gunakan nama sebagai pengenal.
c. Format data pegawai berbentuk struktur dengan anggota sbb:
i. Nama pegawai
ii. No Induk
iii. Usia
iv. Divisi
108
Modul Ajar Algoritma dan Pemrograman Appendix – Menggunakan Visual C++
Pemrograman ini adalah Microsoft Visual C++ (bagian dari Microsoft Visual Studio
6.0). Mungkin pada saat pertama kali menggunakan Visual C++, terasa hal yang agak
berbeda dengan bahasa pemrograman yang setipe dengan ini. Yang menjadi
perbedaan utama adalah bahwa pada Visual C++ kita diharuskan untuk membuat
suatu workspace untuk dapat menjalankan program yang kita buat. Workspace ini
berfungsi untuk menampung semua file yang digunakan dalam mem-build program
yang telah dibuat. Untuk itu perlu diperhatikan workspace yang sedang digunakan.
kita perlu untuk membuat suatu workspace dalam Visual C++. Pilih File New pada
109
Modul Ajar Algoritma dan Pemrograman Appendix – Menggunakan Visual C++
Setelah memilih menu New, akan muncul window baru yang berisi beberapa
tab. Pilih tab Projects, lalu pilih Win32 Console Application. Jangan lupa untuk
mengisikan nama workspace yang akan dibuat pada edit box sebelah kanan atas.
Setelah itu, pilih An Empty Project untuk memulai program yang baru.
Setelah melakukan ini, kita akan mendapatkan sebuah workspace yang masih
kosong. Workspace ini masih belum dapat dijalankan karena masih belum ada data
110
Modul Ajar Algoritma dan Pemrograman Appendix – Menggunakan Visual C++
yang di-compile. Untuk itu, kita perlu menambahkan file source yang kita inginkan
Untuk menambahkan source baru, pada menu Project pilih Add to Projects
New. Pada window yang muncul akan terdapat beberapa pilihan. Untuk
menambahkan source baru, pilih C++ Source File. Sedangkan untuk membuat header
baru, pilih C++ Header File. Untuk kali ini pilih C++ Source File. Jangan lupa untuk
perintah source yang akan dibuat. Untuk meng-compile program digunakan tombol
Ctrl + F7. Setelah itu program akan ter-compile. Untuk menjalankan (run) program
digunakan tombol Ctrl + F5. Nantinya akan muncul window yang merupakan
program yang telah dijalankan. Program tidak dapat didebug jika menggunakan
111
Modul Ajar Algoritma dan Pemrograman Appendix – Menggunakan Visual C++
Yang perlu diperhatikan adalah jika kita akan mengganti workspace yang kita
buat, kita harus menutup workspace yang sebelumnya. Untuk menutup, pilih menu
File Close Workspace. Jika kita tidak menutup workspace yang ada dan langsung
menggunakan workspace lain, maka sebagian data pada workspace lama akan tetap
dengan cara memberi breakpoint pada baris di mana kita ingin program tersebut
berhenti, dengan cara menekan tombol F9 pada baris tersebut pada saat kita
mengetikkan kode (program tidak sedang berjalan). Fungsi breakpoint adalah untuk
breakpoint.
Setelah menekan tombol F9, akan muncul sebuah bulatan di samping kiri
baris yang kita beri breakpoint. Artinya, ketika program di-run dengan menekan
tombol F5, program akan berjalan mulai dari main dan akan berhenti ketika
mencapai baris yang diberi breakpoint, dan akan menunggu respon dari user untuk
Ketika ditekan F5, akan muncul sebuah layar console dan pada layar Visual
C++ akan muncul sebuah window baru pada bagian bawah. Window di atas adalah
window baru yang terbentuk ketika program yang dibuat di atas dijalankan.
112
Modul Ajar Algoritma dan Pemrograman Appendix – Menggunakan Visual C++
Window tersebut akan memuat informasi berupa nama variabel yang akan
dioperasikan pada baris tersebut. Di atas, pada baris yang diberi breakpoint,
tersebut akan ditampilkan nama variabel (a dan b) beserta nilai dari variabel
tersebut. Nilai c di atas adalah nilai c sebelum dilakukan perhitungan, dan setelah
program, bisa digunakan tombol F10 untuk ”Step Over” yang akan menjalankan
baris selanjutnya dan akan menunggu respon dari user untuk melanjutkan program
lagi. Jika kita ingin men-debug sebuah perintah yang berupa fungsi, dapat
digunakan tombol F11 (Step Into). Jika user ingin program dijalankan tanpa meminta
respon dari user lagi, gunakan tombol F5. Program akan berjalan sampai selesai atau
Jikalau kita ingin melihat isi sebuah variabel yang tidak dioperasikan pada
baris di mana kita memberi breakpoint, kita dapat melihat isi variabel tersebut
dengan cara menulis variabel tersebut di window ”Watch” yang juga muncul ketika
program di-debug.
Kita tinggal menuliskan nama variabel yang ingin kita lihat pada kolom
tombol Ctrl + F10. Program akan berhenti tepat pada baris di mana kita menekan
tombol tersebut. Pada saat kita menekan tombol ini, pastikan bahwa program tidak
sedang berjalan. Untuk cara kerjanya sama persis dengan breakpoint, namun jika
ditekan F5, program akan berjalan terus sampai selesai, berbeda dengan metode
pertama di mana program akan tetap berhenti jika masih ada breakpoint yang lain.
113
Modul Ajar Algoritma dan Pemrograman Appendix – Fungsi Animasi
gotoxy(int x, int y)
Fungsi gotoxy adalah sebuah fungsi yang digunakan untuk memindahkan
kursor pada koordinat tertentu, agar dapat menuliskan karakter pada koordinat
tersebut.
Fungsi gotoxy harus dituliskan terlebih dahulu pada awal program (tidak
tersedia pada header/library). Koordinat pada Console Application adalah antara
(0,0) sampai dengan (79,24).
Sleep(int ms)
Fungsi Sleep digunakan untuk memberikan delay pada program. Parameter
yang diberikan menentukan berapa lama delay dilakukan (dalam satuan
milliseconds). Header yang digunakan : windows.h
system(“cls”)
Fungsi system(“cls”) digunakan untuk membersihkan layar console.
Header yang digunakan : windows.h
114
Modul Ajar Algoritma dan Pemrograman Daftar Pustaka
DAFTAR PUSTAKA
http://is.its-sby.edu/subjects/comp_prog/
115