Anda di halaman 1dari 48

Kunci Jawaban

pemrograman dasar
SMK/MAK Kelas X
Bab 1 4. A. ( ; )
Alur Logika dan Perangkat Lunak Bahasa Pembahasan:
Pemrograman Komputer Penulisan semi-colon (;) pada akhir sebuah
A. Pilihan Ganda pernyataan program atau kesalahan ejaan
1. A. prosesor pada beberapa perintah dapat disebut juga
Pembahasan: sebagai compile–time error.
Program dapat dianalogikan sebagai 5. E. notasi matematis
instruksi yang akan dijalankan oleh prosesor. Pembahasan:
Dengan menguasai dasar-dasar algoritma Flowchart identik dengan representasi grafis
dan bahasa pemrograman menjadi suatu dari langkah-langkah yang harus diikuti
langkah untuk dapat mengembangkan dalam menyelesaikan suatu permasalahan
program atau aplikasi seperti aplikasi kasir, yang terdiri atas sekumpulan simbol, dimana
rental, perpustakaan, sistem informasi masing-masing simbol merepresentasikan
sekolah, dan lain-lain. kegiatan tertentu. Flowchart diawali dengan
2. E. bahasa pemrograman penerimaan input dan diakhiri dengan
Pembahasan: penampilan output. Sebuah flowchart pada
Dalam penerapan aplikasi, kita sering umumnya tidak menampilkan instruksi
dihadapkan pada berbagai permasalahan bahasa pemrograman, namun menetapkan
yang erat kaitannya dalam algoritma konsep solusi dalam bahasa manusia
pembuatan aplikasi dan bagaimana ataupun notasi matematis.
implementasinya menggunakan bahasa 6. C. Yes
pemrograman. Jadi dalam membuat aplikasi, Pembahasan:
harus diperhatikan urutan langkah dan Dalam simbol percabangan, kita menuliskan
strategi mulai melakukan analisis terhadap keadaan yang harus dipenuhi. Hasil dari
permasalahan, merumuskan kebutuham, pemeriksaan dalam simbol ini adalah Yes
membuat desain, mengimplementasikan atau No. Jika pemeriksaan menghasilkan
dengan bahasa pemrograman, dan keadaan benar, maka jalur yang harus
melakukan tes atau uji coba terhadap dipilih adalah jalur yang berlabel Yes,
program yang dihasilkan. sedangkan jika pemeriksaan menghasilkan
3. B. pengkodean keadaan salah, maka jalur yang harus dipilih
Pembahasan: adalah jalur yang berlabel No.
Setelah membentuk algoritma, maka proses 7. D. algoritma
pengkodean dapat dimulai. Menggunakan Pembahasan:
algoritma sebagai pedoman, maka kode Dalam penerapan aplikasi, kita sering
program dapat ditulis sesuai bahasa dihadapkan pada berbagai permasalahan
pemrograman yang dipilih. Setelah yang erat kaitannya dalam algoritma
menyelesaikan seluruh kode program, pembuatan aplikasi dan bagaimana
langkah selanjutnya yaitu menguji program implementasinya menggunakan bahasa
tersebut apakah telah berfungsi sesuai pemrograman. Jadi dalam membuat aplikasi,
tujuannya untuk memberikan suatu solusi harus diperhatikan urutan langkah dan
untuk menyelesaikan suatu masalah. strategi mulai melakukan analisis terhadap

Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X 1


permasalahan, merumuskan kebutuham, Flowchart. Simbol ini biasanya diberi label
membuat desain, mengimplementasikan START untuk menandai awal dari Flowchart,
dengan bahasa pemrograman, dan dan label STOP untuk menandai akhir dari
melakukan tes atau uji coba terhadap Flowchart. Jadi, dalam sebuah Flowchart
program yang dihasilkan. pasti terdapat sepasang terminator yaitu
8. A. start → read → proses → output → terminator START dan STOP.
stop 12. A. aplikasi
Pembahasan: Pembahasan:
Flowchart identik dengan representasi grafis Program aplikasi merupakan program yang
dari langkah-langkah yang harus diikuti khusus melakukan suatu pekerjaan tertentu,
dalam menyelesaikan suatu permasalahan seperti program gaji pada suatu perusahaan.
yang terdiri atas sekumpulan simbol, dimana Maka program ini hanya digunakan oleh
masing-masing simbol merepresentasikan bagian keuangan saja tidak dapat digunakan
kegiatan tertentu. Flowchart diawali dengan oleh departemen yang lain. Umumnya
start → read → proses → output → stop. program aplikasi ini dibuat oleh seorang
9. B. decision programmer sesuai dengan permintaan
Pembahasan: seseorang, lembaga, maupun perusahaan
Simbol percabangan ( ) digunakan guna keperluan interennya. Beberapa jenis
untuk melambangkan percabangan, yaitu program aplikasi diantaranya GL, MYOB,
pemeriksaan terhadap suatu kondisi. Dalam dan Payroll.
simbol ini, kita menuliskan keadaan yang 13. B. garis alir
harus dipenuhi. Hasil dari pemeriksaan Pembahasan:
dalam simbol ini adalah YES atau NO. Simbol garis alir digunakan untuk
Jika pemeriksaan menghasilkan keadaan menghubungkan setiap langkah dalam
benar, maka jalur yang harus dipilih adalah flowchart dan menunjukkan kemana arah
jalur yang berlabel Yes, sedangkan jika aliran diagram. Anak panah ini harus
pemeriksaan menghasilkan keadaan salah, mempunyai arah dari kiri ke kanan atau
maka jalur yang harus dipilih adalah jalur dari atas ke bawah. Anak panah ini juga
yang berlabel No. dapat diberi label, khususnya jika keluar
10. D. algoritma dari simbol percabangan.
Pembahasan: 14. C. error
Seorang programmer tidak akan Pembahasan:
sembarangan dalam melakukan pembuatan Terdapat dua tipe kesalahan (error) yang
dan p eng ko de an prog ram, namun akan dihadapi seorang programmer, yaitu
mengikuti perencanaan dan metodologi Compile-time error dan Runtime error.
terstruktur yang memisahkan proses suatu 15. D. diagram alir
aplikasi menjadi beberapa bagian. Untuk Pembahasan:
memahami langkah dasar dalam pemecahan Jika skala aplikasi kecil maka desainnya juga
masalah dalam sebuah komputer dengan skalnya kecil, namun jika skalanya besar
mendefinisikan sebuah permasalahan yang maka desainnya juga mempunyai skala
akan diselesaikan selangkah demi selangkah yang besar pula dan ini berdampak pula
secara sistematis dasar dalam menyelesaikan pada penggambaran flowchartnya menjadi
permasalahan pemrograman tersebut. lebih rumit. Dalam pengembangan sebuah
11. B. terminator program (sistem/aplikasi), seorang software
Pembahasan: engineering akan membuat rancang bangun
Simbol terminator ( ) berfungsi untuk sistem yang akan dikembangkannya dalam
menandai awal dan akhir dari suatu bentuk diagram alir. Hal ini sangat penting

2 Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X


untuk mengetahui nformasi yang diproses 20. E. logis
oleh algoritma. Pembahasan:
16. A. bagan alir Algoritma identik dengan urutan langkah–
Pembahasan: langkah logis penyelesaian masalah yang
Dalam pemrograman komputer penyelesaian disusun secara sistematis dan logis. Logis
masalah didefinisikan dalam langkah demi merupakan kunci dari sebuah algoritma.
langkah. Algoritma dapat diekspresikan Langkah–langkah dalam algoritma harus
dalam bahasa manusia menggunakan logis dan bernilai benar atau salah.
presentasi grafik melalui sebuah flowchart Berdasarkan permasalahan yang terjadi,
(diagram alir) ataupun melalui pseudocode kita dapat memberikan solusi penyelesaian
dalam menjembatani antara bahasa manusia secara umum dalam sebuah alur yang dapat
dengan bahasa pemrograman. dengan mudah dimengerti.
17. D. pseudocode
Pembahasan: B. Uraian
Pseudocode identik dengan penulisan 1. Perangkat lunak (software) merupakan
algoritma yang menggunakan sintaks program-program komputer yang berguna
(cara penulisan) yang menyerupai untuk menjalankan suatu pekerjaan sesuai
bahasa pemrograman. Algoritma dapat dengan yang dikehendaki.
diekspresikan dalam bahasa manusia 2. Program utility berfungsi untuk membantu
menggunakan presentasi grafik melalui atau mengisi kekurangan/kelemahan dari
sebuah flowchart (diagram alir) ataupun system operasi.
melalui pseudocode dalam menjembatani 3. Teknik ini digunakan untuk mememcahkan
antara bahasa manusia dengan bahasa masalah dalam skala yang besar kemudian
pemrograman. membagi-baginya menjadi masalah yang
18. A. nomor lebih sederhana.
Pembahasan: 4. Kode pseudo (pseudo-code) adalah sebuah
Setiap langkah dalam suatu algoritma kode yang digunakan untuk menulis sebuah
diberikan nomor agar pengguna dapat algoritma dengan cara yang bebas yang
mengikuti setiap instruksi yang diberikan tidak terikat dengan bahasa pemrograman
dengan baik, namun dengan langkah- tertentu. Pseudo-code berisikan langkah-
langkah yang terbatas. Untuk menyelesaikan langkah untuk menyelesaikan suatu
masalah, algoritma membutuhkan spesifikasi permasalahan (hampir sama dengan
input (masukan) sesuai yang diperlukan, algoritma), hanya saja bentuknya sedikit
memprosesnya melalui serangkaian angkah berbeda dari algoritma. Pseudo-code
dan menghasilkan output sebagai solusi dari menggunakan bahasa yang hampir
permasalahan. menyerupai bahasa pemrograman. Selain
19. E. komputer mengalami hang itu biasanya pseudo-code menggunakan
Pembahasan: bahasa yang mudah dipahami secara
universal dan juga lebih ringkas dari pada
Pada penulisan kode pada program
algoritma.
terlihat tanpa kesalahan, namun pada saat
menelusuri struktur logika kode tersebut, 5. Terdapat dua tipe kesalahan (errors) yang
bagian yang sama pada kode tereksekusi akan dihadapi seorang programmer, yaitu
berulang–ulang tanpa akhir. Sehingga saat compile-time error, dan runtime error.
program dijalankan, aplikasi atau bahkan Compile-Time Error atau yang disebut
keseluruhan komputer mengalami hang dengan Syntax Error. Ini biasanya terjadi
karena mengalami proses perulangan yang karena kesalahan penulisan, misalnya lupa
tidak berakhir. memberikan tanda titik koma pada akhir

Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X 3


pernyataan, Java akan menunjukkan baris/ 9. Program yang sudah berhasil diujicobakan
kode yang terdapat kesalahan tersebut kemudian diaplikasikan oleh pengguna.
namun kadang petunjuk inipun bisa salah. 10. Simbol ini digunakan untuk melambangkan
Dalam kapitalisasi, ejaan, atau penggunaan kegiatan pemrosesan input. Dalam simbol
karakter yang tidak benar. Sedangkan Run ini, kita dapat menuliskan operasi-operasi
Time Errors, Sebuah program yang berhasil yang dikenakan pada input, maupun operasi
dikompile belum tentu berhasil di jalankan. lainnya. Sama seperti aturan pada simbol
Inilah yang dinamakan Run Time Error, input, penulisan dapat dilakukan secara satu
kesalahan ini tidak akan ditampilkan sampai per satu maupun secara keseluruhan.
kita menjalankan program tersebut. Hal
ini bisa saja terjadi misalnya dikarenakan Proyek
struktur yang di buat programmer tidak
Kebijaksanaan guru
jelas atau mungkin tidak logis.
6. Teknik ini tidak membagi maslah utama
menjadi beberapa bagian, tapi mengurangi
ukuran dari permasalahan utama sehingga Bab 2
menjadi lebih sederhana. Struktur Bahasa dan Kode Program
7. Program dasar adalah rangkaian instruksi- Komputer
instruksi dalam bahasa komputer yang Soal Latihan
disusun secara logika dan sistematis. A. Pilihan Ganda
Pengertian pemrograman adalah suatu 1. D. tinggi sekali
kumpulan urutan perintah ke komputer Pembahasan:
untuk mengerjakan sesuatu, di mana Bahasa pemrograman adalah teknik komunikasi
instruksi tersebut menggunakan bahasa standar untuk mengekspresikan instruksi
yang dimengerti oleh komputer atau dikenal kepada komputer. Bahasa pemrograman
dengan bahasa pemrograman. dapat diklasifikasikan menjadi tingkat rendah,
8. Menurut wikipedia, bahasa mesin identik menengah, dan tingkat tinggi.
dengan seperangkat instruksi serta data 2. A. biner dan uner
yang dapat dieksekusi secara langsung
Pembahasan:
oleh prosesor komputer. Bahasa mesin
Ekspresi aritmatika memakai operator
merupakan tingkatan yang paling rendah
aritmatika yang terdapat 2 buah operator
dari bahasa pemrograman dan biasanya
yaitu operator biner dan operator uner.
digunakan sebagai tujuan kompilasi oleh
S e d ang k an ek spre s i p e r b and i ng an
kompiler pada bahasa-bahasa pemrograman
(relasional) adalah ekspresi dengan operator
lain dalam tingkatan yang lebih tinggi.
<, ≤, >, ≥, =, ≠, NOT, AND, OR dan XOR
Pe n e r j e m a h a n k o d e p a d a b a h a s a
dengan menghasilkan nilai bertipe boolean
pemrograman interpretatif atau bahasa
(true atau false). Biasanya ekspresi relasional
skrip umumnya tidak termasuk dalam
disebut ekspresi boolean.
kriteria tersebut karena umumnya bahasa
skrip menerjemahkan kode sumber menjadi 3. B. larik
P-Code, kode penjembatan antara kode Pembahasan:
sumber dan kode mesin. Meski demikian, Array dapat diartikan sebagai larik (barisan).
pada umumnya bahasa skrip populer yang Array digunakan untuk menyimpan banyak
ada saat ini telah menambahkan kompiler data dengan tipe data yang sama. Jika
JIT (Just In Time) integratif yang secara array hanya mampu menyimpan sejumlah
hibrida mengkompilasi instruksi-instruksi data yang bertipe sama, maka record bisa
P-Code yang paling sering dieksekusi menampung data – data dengan tipe yang
menjadi kode mesin. berbeda. Dalam pemrograman pascal

4 Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X


terdapat tipe data file, dimana data input a. Nama identifier harus dimulai dengan
dan output dari suatu program dapat karakter huruf alfabet a-z atau A-Z.
disimpan dalam bentuk file.TXT. Selain b. Setelah karakter pertama, dapat
menyimpan Pascal dapat juga membaca dilanjutkan dengan karakter afanumerik
dan mengedit file.TXT tersebut. (angka maupun huruf) dan underscore
4. C. statement (_).
Pembahasan: c. Dalam penulisan identifier tidak boleh
Operator relasional adalah operator yang menggunakan karakter-karakter ~ ! @
menghubungkan nilai dari variabel. Hasil #$%^&*()+`-={}[]:“;‘
ekspresi dengan operator ini adalah nilai <> ? , . / |
kebenaran True atau False. Sedangkan d. Tidak boleh menuliskan identifier
operator boolean adalah operator yang dengan nama yang sama pada kata
digunakan pada sebuah statement. kunci dari Pascal.
5. A. mnemonic 9. A. satu nilai saja
Pembahasan: Pembahasan:
Bahasa tingkat rendah merupakan rangkaian Data pointer merupakan tipe data yang
instruksi menggunakan kode-kode singkat dapat menyimpan satu nilai saja. Bedanya
(kode mnemonic) contohnya bahasa adalah, sesuai dengan namanya tipe data ini
Assembly. Sedangkan bahasa tingkat berfungsi menunjuk, yaitu alamat memori
menengah merupakan rangkaian instruksi yang digunakan suatu variabel dengan tipe
gabungan antara bahasa manusia dengan data tertentu.
kode-kode simbolik, contohnya {,} , ?, <, 10. A. aturan penulisan
>, &, $, dan sebagainya. Yang termasuk Pembahasan:
bahasa menengah yakni bahasa C. Struktur kode program mirip atau dapat
6. D. operator dikatakan sama dengan struktur algoritma
Pembahasan: yaitu memiliki judul, deklarasi, dan
Tipe data merupakan klasifikasi jenis data pernyataan (deskripsi). Yang membedakan
dari variabel atau object yang terdapat hanya pada aturan penulisan, di mana
dalam program komputer. Operator adalah dalam bahasa pemrograman, bahasa yang
sebuah simbol yang memberitahukan digunakan sudah baku dan detail, sehingga
compiler untuk melakukan sebuah operasi tidak menoleransi kesalahan-kesalahan
matematika maupun operasi logika. kecil yang tidak sesuai dengan sintaksnya,
meskipun hanya titik, koma, atau tanda
7. B. programmer
petik saja.
Pembahasan:
11. D. pseudo-code
Tipe data subrange merupakan tipe data
Pembahasan:
yang memungkinkan programmer untuk
mendefinisikan beberapa nilai dari tipe data Tidak ada satu pun standar yang berlaku
tertentu. Misalkan seorang programmer untuk pseudo-code, sebuah program yang
ingin membuat tipe data nilai dimana tipe masih berupa pseudo-code belum dapat
data tersebut berisi bilangan integer dari 1 dijalankan. Pseudo-code juga mirip dengan
sampai 10. kerangka program dan dummycode yang
bisa dikompilasi tanpa kesalahan. Diagram
8. E. penulisan jarak harus menggunakan
alur dapat juga dimasukkan sebagai
spasi sebagai pemisah
alternatif berbasis grafis sebuah pseudo-
Pembahasan: code.
Aturan pemberian nama identifer, dalam hal
ini termasuk judul program adalah sebagai
berikut.

Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X 5


12. E. >&& 16. B. Real
Pembahasan: Pembahasan:
Bahasa tingkat tinggi diterjemahkan sebagai Tipe data standar banyak dijumpai dalam
rangkaian instruksi yang menggunakan berbagai bahasa pemrograman. Tipe data
unsur kata-kata manusia sehingga lebih standar terdiri atas sebagai berikut.
mudah untuk dimengerti seperti BEGIN,
Tipe
END, IF, FOR, WHILE, AND, OR, dan No. Keterangan
data
sebagainya. Untuk bahasa ini diperlukan
compiler untuk mengompilasi ke dalam 1. Integer Termasuk kategori
bahasa mesin sehingga dimengerti komputer. tipe data berupa
Yang termasuk kategori ini adalah Pascal bilangan bulat dan
dan Basic. cocok digunakan
13. B. CLRSCR untuk variabel–
variabel seperti
Pembahasan:
jumlah anak, bulan,
Unit yaitu fungsi-fungsi tambahan dari tahun dan sebagainya.
Pascal, cara memanggilnya adalah dengan
menggunakan kata kunci “Uses”. Sebagai 2. Real Jenis tipe data yang
contoh pada program di atas adalah berisi bilangan yang
penggunaan Uses crt. Uses crt diperlukan bisa memuat angka di
karena kode program menggunakan belakang koma dan
perintah “clrscr” untuk membersihkan layar. nilai yang tersimpan
Perintah ini disediakan oleh unit crt. dapat berupa bilangan
desimal.
14. E. image
Pembahasan: 3. Character Jenis tipe data yang
menyimpan karakter
Bahasa tingkat rendah merupakan
berupa angka
rangkaian instruksi menggunakan kode-
maupun huruf dan
kode singkat (kode mnemonic) contohnya
hanya menyimpan 1
bahasa Assembly. Sedangkan bahasa
karakter saja. Tipe
tingkat menengah merupakan rangkaian
data jenis ini meliputi
instruksi gabungan antara bahasa manusia
char dan string.
dengan kode-kode simbolik, contohnya
{,},?,<,>&&,$,dsb. Yang termasuk bahasa 4. Boolean Jenis tipe data yang
menengah yakni bahasa C. memiliki nilai true
15. A. identifier atau false. Tipe
data ini umumnya
Pembahasan:
digunakan variabel
Ju d u l p r o g r a m d i g u n a k a n u nt u k
yang hanya memiliki
mengidentifikasikan nama program yang
nilai benar atau salah
dibuat. Untuk penulisan judul program
saja.
sifatnya optional jadi boleh dicantumkan
atau tidak, namun untuk keperluan 17. C. interpreter
identifikasi lebih baik judul ada dan diberi Pembahasan:
nama sesuai dengan tujuan program. Nama Komputer bekerja dengan operasi-operasi
program diawali dengan kata “Program”, biner, yaitu mengolah data-data berupa
sebagai kata baku dalam Pascal diikuti barisan biner 0 dan 1 sehingga tidak
dengan nama program (identifier). mungkin ketika seorang programmer
memerintahkan untuk menulis pesan
yang langsung dimengerti oleh komputer.

6 Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X


Oleh karena itu harus ada suatu bahasa tempat penyimpanan data, sehingga dapat
yang penghubung agar komputer mengerti dimanipulasi oleh program.
instruksi atau perintah yang diberikan. 3. Konstanta, yaitu suatu nilai yang besarnya tetap
Bahasa penghubung inilah yang disebut (konstan) selama program dijalankan.
dengan bahasa pemrograman. Untuk 4. Struktur bahasa pemograman Pascal paling
mengubah kode-kode program yang sudah pertama.
dituliskan dalam bahasa pemrograman ke 5. Unit, yaitu fungsi-fungsi tambahan dari
dalam bahasa mesin yang dimengerti oleh Pascal, cara memanggilnya adalah dengan
komputer dengan menggunakan interpreter menggunakan kata kunci Uses.
atau compiler. Proses perubahan ini disebut
6. Bahasa tingkat tinggi merupakan rangkaian
dengan interprestasi atau kompilasi yang
instruksi yang menggunakan unsur kata-
menghasilkan program komputer.
kata manusia sehingga lebih mudah untuk
18. B. C dimengerti.
Pembahasan: 7. Ekspresi relasional adalah ekspresi dengan
Double klik pada freepascal.exe setelah itu operator <, ≤, >, ≥, =, ≠, NOT, AND, OR
tunggu hingga muncul tampilan seperti berikut, dan XOR dengan menghasilkan nilai bertipe
kemudian klik next. Kemudian akan muncul boolean (true atau false).
pengaturan untuk memilih lokasi penyimpanan 8. Beberapa compiler Pascal diantaranya
file instalasi, secara default akan tersimpan pada GNU Pascal, Free Pascal, Dev Pascal dan
folder C tapi jika ingin mengganti maka klik TurboPascal, dan Delphi.
browse, kemudian klik next.
9. Judul program digunakan untuk mengiden-
19. E. executable tifikasikan nama program yang dibuat.
Pembahasan: 10. Array digunakan untuk menyimpan banyak
Untuk membuat suatu program dilakukan data dengan tipe data yang sama.
dengan menerjemahkan algoritma baik
dalam bentuk pseudo-code, bahasa natural,
Proyek
ataupun flowchart ke bentuk kode (source
code) bahasa pemrograman tertentu. Setiap Kebijaksanaan guru
bahasa pemrogaman memiliki aturan atau
tata cara penulisan kata, ekspresi maupun
pernyataan disebut dengan sintaks. Secara Bab 3
umum, struktur kode dari sebuah program Sistem Operasi dan Program Struktur
komputer terdiri dari dua bagian utama Kontrol Percabangan
yaitu bagian judul dan blok program. Soal Latihan
20. A. bergambar A. Pilihan Ganda
Pembahasan: 1. A. memiliki suatu syarat di mana syarat
Ciri-ciri dari pseudo-code di antaranya tersebut bernilai TRUE
bervariabel, menjelaskan algoritma, dan Pembahasan:
memiliki fungsi seperti flowchart. IF-ELSE digunakan apabila kita memiliki
beberapa syarat di mana syarat tersebut
B. Uraian jika bernilai FALSE dan TRUE. Sedangkan
1. O p e r at o r A N D d i g u n a k a n u nt u k IF digunakan apabila kita memiliki suatu
menghubungkan dua buah ekspresi logika syarat di mana syarat tersebut bernilai
dan hasilnya TRUE jika kedua ekspresi TRUE, berikut adalah contoh dari IF.
tersebut bernilai TRUE.
2. Variabel adalah sebuah nama yang diberikan

oleh programmer yang berfungsi sebagai

Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X 7


2. C. byte dan word 8. D. unair
Pembahasan: Pembahasan:
Operator bitwise mirip dengan operator Operator aritmatika unair adalah operator
aljabar yang mengolah data bertipe byte dan aritmatika yang hanya melibatkan 1 operand
word sehingga menghasilkan nilai output saja. Sedangkan operator aritmatika biner
berupa bilangan juga. adalah operator aritmatika yang melibatkan
3. D. LN 2 buah operand.
Pembahasan: 9. E. statement
LN bagi operator berfungsi menghasilkan nilai Pembahasan:
logaritma dari sebuah bilangan. Sedangkan Operator memiliki peran vital dalam
sintaks sin berfungsi untuk menghitung nilai struktur program. Mereka bertugas untuk
sinus dari sebuah bilangan yang biasanya melakukan manipulasi-manipulasi terhadap
digunakan untuk menghitung sudut tertentu suatu nilai variabel yang ada seperti yang
dari 0 derajat sampai 360 derajat pada operasi diinginkan programmer. Ada beberapa
matematika. Sintaksnya adalah Sin(x) macam operator yang dikenal antara lain
4. C. 3 operator aritmatika (arithmetic operator),
Pembahasan: operator relasi (relational operator), operator
DIV (pembagian bulat) membagi 2 bilangan logika (logical operator), operator bitwise
bulat (integer) kemudian mengambil hasil (bitwise operator) dan operator penugasan
bagi dan sisanya dibuang. Misalnya 7 div (assignment operator).
2=3 10. C. belah ketupat
5. A. - Pembahasan:
Pembahasan: Flowchart menunjukkan aliran data dari
Fungsi pengurangan dalam operator adalah suatu algoritma. Struktur percabangan
mengurangkan suatu operand dengan ditandai dengan tanda belah ketupat.
operand yang lain. Penggunaan tanda panah dari atas ke bawah
menunjukkan aliran data/informasi yang
6. B. FRAC
akan diproses. Jika kondisi dipenuhi (benar)
Pembahasan: maka proses berlanjut ke bagian pernyataan
ABS merupakan fungsi matematika dalam struktur. Jika kondisi tidak dipenuhi (maka
Pascal yang berguna untuk menghasilkan nilai langsung keluar dari struktur percabangan
mutlak dari sebuah bilangan negatif. Sintax : menuju langkah berikutnya.
ABS(x). Sedangkan FRAC merupakan fungsi 11. E. tanda panah
matematika dalam Pascal yang berguna
Pembahasan:
untuk menghasilkan nilai desimal dari
bilangan real. Sintax : FRAC(x) Penggunaan tanda panah dari atas ke bawah
menunjukkan aliran data/informasi yang
7. C. byte dan word
akan diproses. Jika kondisi dipenuhi (benar)
Pembahasan: maka proses berlanjut ke bagian pernyataan
Operasi bit digunakan untuk melakukan struktur. Jika kondisi tidak dipenuhi (maka
manipulasi bit pada bilangan bertipe data langsung keluar dari struktur percabangan
byte dan word. Operator bitwise mirip menuju langkah berikutnya.
dengan operator aljabar yang mengolah 12. D. u ntu k mel a ku k an man ipu l as i -
data bertipe byte dan word sehingga manipulasi terhadap suatu nilai variabel
menghasilkan nilai output berupa bilangan yang ada
juga. Terdapat lima jenis operator bitwise
Pembahasan:
yang dikenal yaitu AND, OR, XOR, SHR,
dan SHL. Sebuah kondisi bersyarat dinyatakan
sebagai sebuah struktur percabangan

8 Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X


jika program atau algoritma tersebut OR | Bit Disjungsi
memberikan alternatif langkah untuk
beberapa persyaratan yang diberikan. XOR ! Bit Eksklusif
Struktur kontrol percabangan merupakan Disjungsi
pengatur aliran program berbentuk SHL << Bit shift left
rangkaian perintah yang harus ditulis SHR >> Bit shift right
guna memenuhi beberapa keadaan, yaitu 17. B. 1
mengulang sebagian rutin karena tidak
Pembahasan:
terpenuhinya satu kondisi, melanjutkan
sebuah pernyataan bila kondisi terpenuhi, Bilangan biner terdiri atas dua jenis, yaitu
serta memilih sebuah pilihan dari beberapa true (1) dan false (0). Nilai true mewakili
alternatif bila sebuah kondisi terpenuhi. bilangan 1 atau kondisi saklar listrik dalam
kondisi ON, sedangkan false mewakili
13. D. menjorok pada tepi yang sama
bilangan 0 atau kondisi saklar listrik dalam
Pembahasan: kondisi OFF. Mengubah bilangan desimal
Selain pembuat struktur percabangan, maka menjadi bilangan biner.
semua pernyataan yang terletak dalam 18. B. ALT+F9
struktur dibuat menjorok pada tepi yang
Pembahasan:
sama. Pembuat strukturnya adalah kata
kunci percabangan IF – THEN sehingga Untuk melakukan kompilasi (Compile)
dalam pseudocode, percabangan dengan 1 menggunakan tombol kombinasi ALT+F9.
syarat dapat disajikan dalam bentuk sebagai Jika kompilasi menghasilkan pesan
berikut. kesalahan maka perhatikan kesalahan yang
terjadi. Jika kompilasi berhasil lanjutkan
IF (kondisi) THEN
dengan menjalankan program (CTRL+F9)
Pernyataan1 dan amati hasilnya.
Pernyataan2 19. C. CTRL+F9
Pernyataan3 Pembahasan:
dan seterusnya Untuk melakukan kompilasi (Compile)
14. A. 1 menggunakan tombol kombinasi ALT+F9.
Pembahasan: Jika kompilasi menghasilkan pesan
Mod (Modulus) digunakan untuk membagi kesalahan maka perhatikan kesalahan yang
2 bilangan bulat (integer) kemudian terjadi. Jika kompilasi berhasil lanjutkan
mengambil sisanya dan hasil baginya dengan menjalankan program (CTRL+F9)
dibuang. Misalnya 13 mod 2 = 1 dan amati hasilnya.
15. C. SQR (x) 20. E. 360°
Pembahasan: Pembahasan:
Dalam bahasa pemrograman Pascal juga Fungsi aritmatika SIN digunakan untuk
dimuat tentang fungsi SQR (x) dan SQRT menghitung nilai sinus dari sebuah bilangan
(x) yang mana kedua fungsi tersebut yang biasanya digunakan untuk menghitung
mengacu pada operasi kuadrat dan operasi sudut tertentu dari 0° sampai 360° pada
akar dari suatu bilangan. operasi matematika.
16. B. SHL
Pembahasan: B. Uraian
Operator Simbol 1. Operator bertugas untuk melakukan
manipulasi-manipulasi terhadap suatu nilai
NOT ~ Bit not variabel yang ada menjadi nilai variabel
AND & Bit Konjungsi yang diinginkan programmer.

Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X 9


2. Ada beberapa macam operator yang Proyek
dikenal antara lain operator aritmatika Kebijaksanaan guru
(arithmetic operator), operator relasi
(relational operator), operator logika Bab 4
(logical operator), operator bitwise
Struktur Kontrol Perulangan
(bitwise operator) dan operator penugasan
(assignment operator). Soal Latihan
3. Operator aritmatika biner adalah operator A. Pilihan Ganda
aritmatika yang melibatkan 2 buah 1. A. For, Do-While, dan While
operand. Pembahasan:
4. Terdapat lima jenis operator bitwise yang Struktur kontrol pengulangan digunakan
dikenal dalam Pascal yaitu AND, OR, XOR, untuk mengulang blok-blok atau bagian dari
SHR, SHL. kode program sesuai dengan keinginan kita.
5. IF-ELSE digunakan apabila kita memiliki Untuk struktur kontrol perulangan dibagi
beberapa syarat di mana syarat tersebut menjadi For, Do-While, dan While.
adalah yang bernilai FALSE dan TRUE. 2. D. looping
6. Operator aritmatika adalah operator yang Pembahasan:
digunakan untuk melakukan operasi- Struktur perulangan atau biasa disebut
operasi perhitungan aritmatika seperti looping digunakan untuk mengatur
penjumlahan, pengurangan, pembagian, proses yang dijalankan secara berulang-
perkalian, dan lain-lain. ulang. Sehingga programmer tidak perlu
7. ABS merupakan fungsi matematika dalam menuliskan script-nya secara berulang kali.
Pascal yang berguna untuk menghasilkan Struktur kontrol perulangan mengijinkan
nilai mutlak dari sebuah bilangan negatif. kita untuk mengeksekusi sebuah statement
Sedangkan FRAC bisa diterjemahkan atau sekelompok statement dalam jumlah
sebagai fungsi matematika dalam Pascal yang banyak.
yang berguna untuk menghasilkan nilai 3. A. inisialisasi dan terminasi
desimal dari bilangan real. Pembahasan:
8. Struktur kontrol percabangan merupakan Pada struktur perulangan, selalu disertai
pengatur aliran program, berbentuk bagian inisialisasi dan terminasi. Inisialisasi
rangkaian perintah yang harus ditulis untuk adalah instruksi yang dilakukan sebelum
memenuhi beberapa keadaan, yaitu : perulangan dilakukan pertama kali. Bagian
a. Mengulang sebagian rutin karena tidak insialisasi umumnya digunakan untuk
terpenuhinya satu kondisi. memberi nilai awal sebuah variabel.
b. Melanjutkan sebuah pernyataan bila Sedangkan terminasi adalah instruksi
kondisi terpenuhi. yang dilakukan setelah perulangan selesai
c. Memilih sebuah pilihan dari beberapa dilaksanakan.
alternatif bila sebuah kondisi terpenuhi. 4. A. inisialisasi
9. Sintaks sin berfungsi untuk menghitung Pembahasan:
nilai sinus dari sebuah bilangan yang Inisialisasi adalah instruksi yang dilakukan
biasanya digunakan untuk menghitung sebelum perulangan dilakukan pertama
sudut tertentu dari 0 derajat sampai 360 kali. Bagian insialisasi umumnya digunakan
derajat pada operasi matematika. untuk memberi nilai awal sebuah variabel.
10. Dalam bahasa pemrograman Pascal Sedangkan terminasi adalah instruksi
operator aritmatika dapat dibagi menjadi 2, yang dilakukan setelah perulangan selesai
yaitu operator aritmatika unair dan operator dilaksanakan.
aritmatika biner.

10 Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X


5. C. terminasi diulang. Yang penting sepanjang kondisi
Pembahasan: pada While dipenuhi maka pernyataan pada
Terminasi adalah instruksi yang dilakukan badan loop akan diulang.
setelah perulangan selesai dilaksanakan. 9. A. mencetak menurun angka 10 sampai
Ada beberapa bentuk perulangan yang dengan 1
dapat digunakan, masing-masing dengan Pembahasan:
syarat dan karakteristik tersendiri. Beberapa Perulangan negatif adalah perulangan
bentuk dapat dipakai untuk kasus yang dengan penghitung dari besar ke kecil atau
sama, namun ada bentuk yang hanya cocok pertambahan negatif. Perulangan negatif
untuk kasus tertentu saja. dapat dibentuk dengan menggunakan
6. D. For pernyataan For-DownTo-Do, dengan
Pembahasan: bentuk umum:
Perulangan dengan menggunakan For, For variabel-kontrol := nilai
merupakan salah teknik pengulangan yang awal DownTo nilai akhir Do
paling tua dalam bahasa pemrograman. penyataan
Hampir semua bahasa pemrograman
menyediakan metode ini, meskipun Kode program mencetak menurun angka 10
sintaksnya mungkin berbeda. Pada struktur sampai dengan 1 adalah sebagai berikut.
For kita harus tahu terlebih dahulu seberapa Program cetak_menurun;
banyak badan loop akan diulang. Struktur
Uses wincrt;
ini menggunakan sebuah variabel yang
biasa disebut sebagai loop s counter, yang Var
nilainya akan naik atau turun selama proses I:integer;
pengulangan. Begin
7. E. sintaks For I:=10 downto 1 do
Pembahasan: Begin
Hampir semua bahasa pemrograman Writeln(I);
menyediakan metode ini, meskipun End;
sintaksnya mungkin berbeda. Pada struktur End.
For kita harus tahu terlebih dahulu seberapa 10. A. While-Do
banyak badan loop akan diulang. Struktur Pembahasan:
ini menggunakan sebuah variabel yang
Repeat-Until berfungsi hampir sama dengan
biasa disebut sebagai loop s counter, yang
While-Do. Pada Repeat-Until, looping akan
nilainya akan naik atau turun selama proses
berhenti justru ketika kondisi bernilai
pengulangan.
True. Selain itu kondisi akan diuji pada
8. A. benar akhir perulangan sehingga blok di dalam
Pembahasan: perulangan akan dijalankan minimal satu
Perulangan dengan While diterjemahkan kali walaupun kondisi yang ada masih False.
sebagai suatu jawaban dari permasalahan Repeat–Until digunakan untuk mengulang
ini. Seperti halnya For, struktur perulangan statement-statement atau blok statement
dengan While juga merupakan struktur sampai (Until) kondisi yang diseleksi di
yang didukung oleh hampir semua bahasa Until tidak terpenuhi.
pemrograman namun dengan sintaks yang 11. C. pengecekan kondisi
berbeda. Struktur While akan mengulang Pembahasan:
pernyataan pada badan loop sepanjang
Perbedaan pengulangan Repeat-Until
kondisi pada While bernilai benar. Dalam
dengan While-Do terletak pada letak
artian kita tidak perlu tahu pasti berapa kali
pengecekan kondisi. Jika pada pernyataan

Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X 11


While-Do kondisi dicek pada awal blok 15. E. Repeat–Until
pernyataan yang harus diulang, sedangkan Pembahasan:
pada pernyataan Repeat-Until, kondisi Perulangan dengan kondisi persyaratan
dicek pada akhir blok pernyataan yang dapat di awal maupun di akhir. Keduanya
harus diulang. Perbedaan yang lain, bila memiliki fungsi dan tujuan yang sama dan
pernyataan While mengulang pernyataan dapat dikonversi satu sama lain. Dari bentuk
selama kondisi masih terpenuhi, pernyataan persyaratan di awal menjadi persyaratan
Repeat-Until mengulang pernyataan selama di akhir dan sebaliknya. Namun pada
kondisi belum terpenuhi. beberapa kasus, ada permasalahan yang
12. D. titik pemberhentian lebih cocok jika menggunakan perulangan
Pembahasan: dengan syarat di awal, namun sebaliknya
Untuk memenuhi syarat bahwa algoritma juga ada permasalahan yang lebih cocok
harus finite (terbatas) maka dalam perulangan menggunakan perulangan dengan syarat di
memerlukan titik pemberhentian. Jika akhir. Struktur yang sering digunakan adalah
ternyata dalam sebuah kasus perulangan struktur Repeat-Until. Struktur ini digunakan
tidak mencapai titik berhenti maka dapat untuk mengulang (Repeat) statement atau
dikatakan algoritma tersebut salah. Titik blok statement sampai (Until) kondisi yang
pemberhentian dapat diberikan dengan diseleksi Until tidak terpenuhi.
cara pemberhentian dengan syarat dan 16. B. 10, 12, 14, 16, 18
pemberhentian dengan pencacah. Pembahasan:
13. A. For To Do Jika kondisi diganti dengan a = 23, maka
Pembahasan: kondisi tersebut tidak akan diproses karena
Pemberhentian dengan pencacah naik pada dasarnya kondisi pada nilai dari a selalu
artinya untuk suatu pencacah, misalkan genap, sedangkan 23 termasuk nilai ganjil.
i dari 1 sampai 100 lakukan rangkaian Hal ini akan terjadi perulangan secara terus
langkah x. Artinya langkah tersebut akan menerus. Berdasarkan kode program tersebut,
diulangi sebanyak seratus kali. Dalam Pascal maka hasilnya adalah sebagai berikut.
untuk kasus pencacah naik digunakan Nilai dari a adalah 10
struktur For To Do. Nilai dari a adalah 12
14. E. logika pemrogramannya salah Nilai dari a adalah 14
Pembahasan: Nilai dari a adalah 16
Pada struktur While, aksi (atau runtunan Nilai dari a adalah 18
aksi) akan dilaksanakan berulang kali selama Nilai dari a adalah 20
kondisi bernilai True. Jika kondisi bernilai Nilai dari a adalah 22
False, badan pengulangan tidak akan 17. D. Begin dan End
dilaksanakan, yang berarti pengulangan Pembahasan:
selesai. Yang harus diperhatikan adalah Pada Repeat-Until dapat tidak dipergunakan
pengulangan harus berhenti. Pengulangan blok statement (tidak diperlukan Begin
yang tidak pernah berhenti menandakan dan End guna menunjukkan batas
bahwa logika pemrograman tersebut salah. perulangannya), karena batas perulangannya
Pengulangan berhenti apabila kondisi sudah ditunjukkan oleh Repeat sampai
bernilai False. Agar kondisi suatu saat dengan Until (Repeat dan Until sebagai
bernilai False, maka di dalam badan pengganti Begin dan End).
pengulangan harus ada instruksi yang
18. C. Case Of
mengubah nilai variabel kondisi.
Pembahasan:
Pernyataan Break di dalam Pascal memiliki
2 buah kegunaan, yaitu sebagai berikut.

12 Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X


a. Pernyataan Break yang ditemukan 2. Dalam berbagai bahasa Pascal dikenal
d i d a l am s e bu a h p e r u l ang an , struktur While Do, yang berarti selama
otomatis akan menghentikan kontrol memenuhi kriteria/kondisi tertentu, maka
perulangan tersebut dan kontrol dilakukan serangkaian proses.
program selanjutnya akan dilanjutkan 3. Membuat suatu kondisi di mana variabel
pada pernyataan setelah perulangan diulang sesuai dengan keinginan
b. Pernyataan Break dapat digunakan 4. Pemberhentian dengan syarat dapat
untuk menghentikan pernyataan Case dilakukan dengan cara sebagai berikut.
Of. a. Syarat diberikan di awal, di mana
19. B. time execution selama persyaratan dipenuhi maka
Pembahasan: dilakukan serangkaian perintah.
Terdapat perbedaan pada penggunaan b. Syarat diberikan di akhir, di mana
pernyataan Break dan Continue. Walaupun proses akan diulang-ulang sampai
hasil outputnya sama, namun dalam syarat dipenuhi.
penggunaan time execution (waktu 5. Struktur perulangan atau biasa disebut dengan
yang dibutuhkan untuk eksekusi) lebih looping digunakan untuk mengatur proses
cepat dibandingkan dengan yang tidak yang dijalankan secara berulang-ulang.
menggunakan kedua pernyataan tersebut. 6. Struktur kontrol perulangan For digunakan
20. A. video game akan menampilkan untuk mengulang suatu program secara
hitungan mundur berulang-ulang.
Pembahasan: 7. Pemberhentian dengan pencacah turun,
Aplikasi algoritma dalam kehidupan nyata, artinya sebaliknya untuk suatu pencacah i dari
khususnya yang terkait dengan struktur 100 sampai 1 lakukan rangkaian langkah x.
perulangan, memerlukan syarat yang 8 Do-While adalah str uktur kontrol
diinputkan oleh user. Misalnya dalam perulangan yang sama dengan While, di
sebuah video game dengan koin, ketika mana blok-blok kode kita akan diulang
seorang anak memasukkan koin, kemudian sampai kondisinya True.
bermain dan akhirnya terjadi game over. 9. Pemberhentian dengan pencacah naik
Berikutnya biasanya, video game akan artinya untuk suatu pencacah, misalkan
menampilkan hitungan mundur menunggu i dari 1 sampai 100 lakukan rangkaian
anak untuk memasukkan koin berikutnya langkah x.
agar permainan dapat dilanjutkan. Bentuk 10. Pemberhentian dengan pencacah dilakukan
hitungan mundur ini juga menggunakan dengan cara pencacah naik dan pencacah
perulangan, dan akan berhenti perulangan turun.
ini untuk dua kemungkinan, si anak
memasukkan koin atau perhitungan
Proyek
mundur selesai dan akhirnya masuk ke
menu awal game kembali. Kebijaksanaan guru

B. Uraian
1. Pernyataan Continue di dalam bekerja Ulangan Akhir Semester 1
seperti halnya pernyataan Break. Break A. Pilihan ganda
digunakan untuk menghentikan secara 1. D. waktu eksekusi
paksa sebuah proses, tetapi Continue Pembahasan:
secara paksa akan melanjutkan perulangan Algoritma yang baik tidak hanya sekadar
selanjutnya, dan mengabaikan kode-kode di benar dalam menentukan solusi, namun
antara keduanya. juga harus efektif dan efisien. Kriteria

Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X 13


efektif berdasarkan seberapa bagus (optimal) hanya digunakan oleh bagian keuangan saja
penyelesaian yang dihasilkan, sedangkan dan tidak dapat digunakan oleh departemen
efisien biasanya terkait dengan waktu eksekusi yang lain. Umumnya program aplikasi dibuat
untuk menyelesaikan suatu masalah. oleh seorang programmer sesuai dengan
2. C. diaplikasikan permintaan seseorang, lembaga, mau pun
Pembahasan: perusahaan guna keperluan interennya.
Program yang sudah berhasil diujicobakan Beberapa jenis program aplikasi di antaranya
kemudian diaplikasikan oleh pengguna. GL, MYOB, dan Payroll.
Selama program digunakan kekurangan- 6. B. GUI
kekurangan dicatat dan digunakan untuk Pembahasan:
memperbaiki program yang sedang Bahasa pemrograman dipilih sesuai dengan
dijalankan. Pada proses ini modifikasi hasil analisis kebutuhan program. Jika
program dapat dilakukan untuk program memerlukan database untuk
memperbaiki kesalahan dan peningkatan menyimpan, mengakses informasi, atau
performance. program harus mempunyai tampilan
3. B. debugging menarik dengan berbagai tombol dan menu,
Pembahasan: maka bahasa Pascal tidak cocok untuk itu
Setelah proses pengkodean dilakukan karena masih sangat sederhana. Untuk itu
langkah selanjutnya adalah melakukan diperlukan pemrograman visual seperti
uji coba (testing) dan yaitu. Langkah Delphi, VB net, dan lain-lain.
uji coba ini penting untuk mengetahui 7. E. fokus pada jenis sistem operasi
apakah program yang telah dihasilkan Pembahasan:
memberikan solusi benar sesuai dengan Dalam penerapan aplikasi, kita sering
yang diharapkan. Jika belum maka perlu dihadapkan pada berbagai permasalahan
proses debugging untuk mengetahui di yang erat kaitannya dalam algoritma
mana letak kesalahannya dan bagaimana pembuatan aplikasi dan bagaimana
cara memperbaikinya. implementasinya menggunakan bahasa
4. B. pseudocode pemrograman. Jadi dalam membuat aplikasi,
Pembahasan: harus diperhatikan urutan langkah dan
Algoritma dapat diekspresikan dalam strategi mulai melakukan analisis terhadap
bahasa manusia menggunakan presentasi permasalahan, merumuskan kebutuhan,
grafik melalui sebuah flowchart (diagram membuat desain, mengimplementasikan
alir) ataupun melalui pseudocode dalam dengan bahasa pemrograman, dan
menjembatani antara bahasa manusia melakukan tes atau uji coba terhadap
dengan bahasa pemrograman. Algoritma program yang dihasilkan.
identik dengan urutan langkah–langkah 8. C.
logis penyelesaian masalah yang disusun
secara sistematis dan logis. Logis merupakan
kunci dari sebuah algoritma. Langkah– Pembahasan:
langkah dalam algoritma harus logis dan
Simbol percabangan digunakan
bernilai benar atau salah.
5. C. programmer
untuk melambangkan percabangan, yaitu
Pembahasan:
pemeriksaan terhadap suatu kondisi. Dalam
Program aplikasi diterjemahkan sebagai simbol ini, kita menuliskan keadaan yang
program yang khusus melakukan suatu harus dipenuhi. Hasil dari pemeriksaan
pekerjaan tertentu, seperti program gaji pada dalam simbol ini adalah YES atau NO.
suatu perusahaan. Sehingga program ini Jika pemeriksaan menghasilkan keadaan

14 Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X


benar, maka jalur yang harus dipilih adalah 12. A. serangkaian instruksi
jalur yang berlabel Yes, sedangkan jika Pembahasan:
pemeriksaan menghasilkan keadaan salah, Untuk menyelesaikan masalah, algoritma
maka jalur yang harus dipilih adalah jalur membutuhkan spesifikasi input (masukan)
yang berlabel No. sesuai yang diperlukan, memprosesnya
9. D. algoritma melalui serangkaian angka dan menghasilkan
Pembahasan: output sebagai solusi dari permasalahan.
Sekumpulan instruksi-instruksi juga bisa Pemrograman komputer bukanlah hal
disebut dengan algoritma. Algoritma yang sederhana. Kegiatan ini memerlukan
merupakan kumpulan instruksi yang ketelitian dan kemauan untuk bekerja dalam
terdefinisi langkah demi langkah secara baik jangka waktu yang lama. Pemrograman
dengan tujuan untuk menyelesaikan masalah. komputer merupakan serangkaian instruksi
Catatan langkah-langkah ini diurutkan secara yang ditulis untuk melakukan suatu fungsi
sekensial. Dalam algoritma langkah pertama secara spesifik. Langkah-langkah yang
harus dilakukan lebih dahulu sebelum langkah dilakukan untuk memberikan instruksi
kedua dan seterusnya. Langkah-langkah guna memecahkan masalah inilah yang
komputer tidak bisa terbalik. dinamakan pemrograman komputer.
10. C. 0 dan 1 13. A. definisi masalah
Pembahasan: Pembahasan:
Pada tahap definisi masalah programmer
Komputer hanya memahami satu bahasa,
harus mengetahui masalah yang akan
yaitu bahasa mesin. Bahasa mesin terdiri
diselesaikan, apa tujuan dan kegunaan
dari nilai 0 dan 1. Sangatlah tidak praktis
program yang akan dibuat. Untuk itu
dan efisien bagi manusia untuk membuat
diperlukan pengumpulan data baik lewat
program yang terdiri dari nilai 0 dan 1, maka
wawancara terutama pengguna program,
dicarilah suatu cara untuk menterjemahkan
dan ketersediaan sumber daya yang akan
sebuah bahasa yang dipahami oleh manusia
digunakan dalam pengembangan dan
menjadi bahasa mesin. Dengan tujuan
penerapan progam yang akan dibuat.
inilah, diciptakan compiler.
14. B. logis
11. E. menguji program
Pembahasan:
Pembahasan:
Dalam pemrograman komputer penyelesaian
Setelah membentuk algoritma, maka proses
masalah didefinisikan dalam langkah demi
pengkodean dapat dimulai. Menggunakan
langkah. Algoritma dapat diekspresikan
algoritma sebagai pedoman, maka kode
dalam bahasa manusia menggunakan
program dapat ditulis sesuai bahasa
presentasi grafik melalui sebuah flowchart
pemrograman yang dipilih. Setelah
(diagram alir) ataupun melalui pseudocode
menyelesaikan seluruh kode program,
dalam menjembatani antara bahasa manusia
langkah selanjutnya yaitu menguji program
dengan bahasa pemrograman. Algoritma
tersebut apakah telah berfungsi sesuai
identik dengan urutan langkah–langkah
tujuannya untuk memberikan suatu solusi
logis penyelesaian masalah yang disusun
untuk menyelesaikan suatu masalah.
secara sistematis dan logis. Logis merupakan
Bilamana terjadi kesalahan-kesalahan logika
kunci dari sebuah algoritma. Langkah–
atas program, disebut juga sebagai bugs,
langkah dalam algoritma harus logis dan
maka kita perlu mengkaji ulang rumusan/
bernilai benar atau salah. Berdasarkan
algoritma yang telah dibuat, kemudian
permasalahan yang terjadi, kita dapat
memperbaiki implementasi kode program
memberikan solusi penyelesaian secara
yang mungkin keliru. Proses ini disebut
umum dalam sebuah alur yang dapat
dengan debugging.
dengan mudah dimengerti.

Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X 15


15. D. user defined 20. B. 1
Pembahasan: Pembahasan:
Tipe data jenis user defined merupakan tipe Bilangan ganjil adalah bilangan yang jika
data yang dibuat oleh sang programmer. dibagi dua, sisanya 1, sedangkan bilangan
Jadi setiap programmer dapat membuat tipe genap adalah bilangan yang jika dibagi dua,
data baru yang dibutuhkannya. User defined sisanya 0.
meliputi enumerated dan subrange. 21. A. variabel
16. A. konstanta Pembahasan:
Pembahasan: Variabel identik dengan suatu nama atau
Sintaks deklarasi penggunaan konstanta simbol untuk menyimpan sebuah nilai.
sebagai berikut. Atau lebih tepatnya variabel adalah sebuah
nama yang diberikan oleh programmer yang
ConstNama_konstanta = nilai_konstanta; berfungsi sebagai tempat penyimpanan data,
Contoh deklarasi konstanta pada beberapa sehingga dapat dimanipulasi oleh program.
tipe sebagai berikut. 22. C. variabel
Const A = 100; Pembahasan:
Const Phi = 3.14; Pemberian nilai variabel dapat dilakukan
Const Operator = ‘+’; melalui perintah baca (input) maupun dari
Const Pesan = ‘Selamat Datang’; pernyataan pemberian nilai (assignment),
17. D. relasional dengan demikian nilai variabel dapat
Pembahasan: berubah-ubah selama proses dijalankan.
Ekspresi relasional adalah ekspresi dengan Jika diperlukan suatu nilai yang tetap, maka
operator <, ≤, >, ≥, =, dan ≠, not, and, or dibutuhkan konstanta.
dan xor dengan menghasilkan nilai bertipe 23. B. tipe data
boolean (true atau false). Biasanya ekspresi Pembahasan:
relasional disebut ekspresi boolean. Ketepatan pemilihan data pada variabel
18. D. string/char atau konstanta akan sangat menentukan
Pembahasan: pemakaian sumber daya komputer
Tipe data character merupakan tipe data (terutama memori komputer). Sehingga
yang menyimpan karakter yang berupa dalam pemilihan tipe data yang akan
angka maupun huruf. Tipe data character digunakan dalam variabel dan konstanta
dalam Pascal meliputi char dan string. Tipe akan memengaruhi efesiensi dan kinerja dari
data char hanya menyimpan 1 karakter program tersebut. Tipe data diterjemahkan
saja. sebagai suatu klasifikasi jenis data dari
19. B. integer variabel atau objek yang terdapat dalam
program komputer.
Pembahasan:
24. A. angka dan huruf
Tipe data integer merupakan tipe data
berupa bilangan bulat. Tipe data ini cocok Pembahasan:
untuk variabel–variabel seperti jumlah anak, Tipe data character merupakan tipe data
bulan, tahun, dan sebagainya. Sedangkan yang menyimpan karakter yang berupa
tipe data real merupakan tipe data yang angka maupun huruf. Tipe data character
berisi bilangan yang bisa memuat angka dalam Pascal meliputi char dan string. Tipe
di belakang koma. Dalam tipe data real data char hanya menyimpan 1 karakter
nilai yang tersimpan dapat berupa bilangan saja.
desimal.

16 Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X


25. C. end 30. E. Clrscr
Pembahasan: Pembahasan:
Bahasa tingkat tinggi diterjemahkan sebagai Clrscr sebagai prosedur yang digunakan
rangkaian instruksi yang menggunakan untuk membersihkan layar saat program
unsur kata-kata manusia sehingga lebih dijalankan, sedangkan Write sebagai
mudah untuk dimengerti seperti Begin, End perintah untuk menampilkan atau cetak
(untuk mengakhiri program), If, For, While, dilayar monitor tanpa pindah baris.
And, Or, dan sebagainya. Untuk bahasa ini 31. E. semua benar
diperlukan compiler untuk mengompilasi ke Pembahasan:
dalam bahasa mesin sehingga dimengerti Operator aritmetika identik dengan operator
komputer. Yang termasuk kategori ini yang digunakan untuk melakukan operasi-
adalah Pascal dan Basic. operasi perhitungan aritmetika seperti
26. B. namaguru penjumlahan, pengurangan, pembagian,
Pembahasan: perkalian dan lain–lain.
Variabel adalah sebuah nama yang diberikan 32. A. IF bersarang
oleh programmer yang berfungsi sebagai Pembahasan:
tempat penyimpanan data, sehingga dapat Secara sederhana, IF bersarang atau nested IF
dimanipulasi oleh program. Variabel adalah penggunaan struktur IF di dalam IF.
ditentukan sesuai dengan kebutuhan Kondisi seperti ini sering digunakan untuk
dari solusi permasalahan. Beberapa jenis kode program yang sudah cukup kompleks.
pemberian nama variabel yang benar di Penulisan indenting (menjorokkan kode
antaranya Jari_jari, jari2, Volume_Balok, program beberapa spasi di awal) juga akan
LuasPersegi, Luas_segi3, dan record3. membantu kita membedakan kode program
27. A. true/false ini masuk IF yang ini, dan kode program itu
Pembahasan: masuk ke IF yang itu.
Sebuah perintah yang akan mengeksekusi 33. D. pengulangan
suatu perintah apabila kondisi tertentu Pembahasan:
terpenuhi. Operator Boolean digunakan Struktur kontrol pengulangan digunakan
untuk menghubungkan dua buah ekspresi untuk mengulang blok-blok atau bagian
logika. Operator And digunakan untuk dari kode program sesuai dengan keinginan
menghubungkan dua buah ekspresi logika kita.
dan hasilnya TRUE jika kedua ekspresi
34. B. Write
tersebut bernilai True.
Pembahasan:
28. B. bersyarat dan pencacah
Write sebagai perintah untuk menampilkan
Pembahasan:
atau cetak di layar monitor tanpa pindah
Titik pemberhentian dapat diberikan baris, sedangkan Begin sebagai awalan dari
dengan syarat dan pencacah, artinya dari perintah pada layar
awal sudah ditentukan bahwa perulangan
35. D. variabel
akan dilakukan berapa kali.
Pembahasan:
29. B. keputusan
Jenis-jenis operator di antaranya increment,
Pembahasan:
aritmatika, logika, dan bitwise
Dalam bahasa pemrograman, struktur
36. A. kontrol
kontrol keputusan digunakan untuk
“memusatkan” bagian program mana yang Pembahasan:
akan dikerjakan dan bagian program mana Struktur kontrol dalam bahasa pemrograman
yang akan diabaikan. adalah suatu perintah / statement yang kita
gunakan untuk mengatur jalannya suatu

Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X 17


program. Dalam bahasa pemrograman,
struktur kontrol keputusan digunakan
untuk “memusatkan” bagian program mana Kondisi Benar
yang akan dikerjakan dan bagian program
mana yang akan diabaikan.
Kondisi
Pernyataan
37. A. Char
Pembahasan: Salah
Char berisi data-data alfanumerik dari a-z,
A-Z, dan 0-9
38. E. AND, OR, XOR, SHR, dan SHL Dari gambar tersebut, perhatikan bentuk
Pembahasan: belah ketupat. Tanda panah dari atas
Operasi bit digunakan untuk melakukan menunjukkan aliran data/informasi yang
manipulasi bit pada bilangan bertipe data akan diproses. Jika kondisi dipenuhi (benar)
byte dan word. Operator bitwise mirip maka proses berlanjut ke bagian pernyataan
dengan operator aljabar yang mengolah struktur. Jika kondisi tidak dipenuhi, maka
data bertipe byte dan word sehingga langsung keluar dari struktur percabangan
menghasilkan nilai output berupa bilangan menuju langkah berikutnya.
juga. Terdapat lima jenis operator bitwise
yang dikenal dalam Pascal yaitu AND, OR,
XOR, SHR, dan SHL. Bab 5
39. B. INT Penggunaan Array dan Fungsi
Pembahasan: Soal Latihan
Berikut contoh-contoh fungsi aritmetika A. Pilihan ganda
pada Free Pascal yang sering digunakan
1. C. elemen array
sebagai berikut.
a. INT Pembahasan:
Berguna untuk membulatkan angka Semua definisi fungsi memiliki bagian-
pecahan menjadi sebuah bilangan bulat bagian sebagai berikut.
positif. Sintax : INT(x) No. Bagian Keterangan
b. LN 1. Name Setiap fungsi harus
Berfungsi untuk menghasilkan nilai memiliki nama. Secara
logaritma dari sebuah bilangan. Sintax umum, peraturan yang
: Ln(x) sama berlaku untuk nama
c. SIN variabel juga berlaku untuk
Sintaks sin berfungsi untuk menghitung nama fungsi.
nilai sinus dari sebuah bilangan yang 2. Parameter Program modul fungsi
biasanya digunakan untuk menghitung list panggilan yang dapat
sudut tertetu dari 0 derajat sampai mengirim data. Daftar
360 derajat pada operasi metematika. parameter adalah daftar
Sintax: Sin(x) variabel yang memegang
nilai-nilai yang disampaikan
40. C. diproses ke fungsi.
Pembahasan: 3. Body Badan fungsi adalah
Flowchart menunjukkan aliran data dari serangkaian pernyataan
suatu algoritma. Struktur percabangan yang melaksanakan
ditandai dengan tanda belah ketupat. tugas melakukan fungsi.
Gambar berikut menggambarkan flowchart Pernyataan ini akan ditutupi
untuk satu kondisi syarat saja. dalam satu set braces.

18 Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X


4. Return Return type merupakan tipe 5. B. PUTS( )
type: data dari nilai yang dikirim Pembahasan:
kembali, dimana fungsi PUTCHAR( ) digunakan khusus untuk
dapat mengirim kembali ke menampilkan sebuah karakter ke layar.
nilai program modul yang Penampilan karakter tidak diakhiri dengan
memanggilnya.
perpindahan baris, misalnya putchar(‘A’);
2. A. pointer sama dengan printf(“%c”, A);. Sedangkan
Pembahasan: PUTS( ) digunakan khusus untuk
E l e m e n p oi nte r d i g u n a k an u ntu k menampilkan data string ke layar. Sifat fungsi
mendeklarasikan variabel array dengan ini, string yang ditampilkan secara otomatis
memasukkan nilanya sekaligus ke dalam akan diakhiri dengan \n (pindah baris).
variabel tersebut. Misalnya int nomor [6] Dibandingkan dengan printf(), perintah ini
= { 28, 10, 23, 20, 9, 14 }; yang berarti memiliki kode mesin yang lebih pendek.
instruksi tersebut menyatakan bahwa suatu 6. D. atas
variabel array bernama ‘nomor’ bertipe Pembahasan:
integer dideklarasikan dan memesan elemen Pada dasarnya, prototipe memiliki kemiripan
array berjumlah 6 buah. Kemudian nilai dengan fungsi header, hanya keberadaan titik
pada setiap elemen array disimpan sesuai koma pada bagian akhir sebagai pembeda.
urutan pada instruksi tersebut. Prototipe fungsi umumnya ditempatkan
3. E. baris dan kolom pada bagian atas pada program sehingga
Pembahasan: compiler akan melakukan eksekusi terlebih
Pengiriman parameter berupa array dimensi dahulu sebelum fungsi tersebut dipanggil.
dua hampir sama dengan pengiriman 7. E. Bubble Sort
parameter array dimensi satu, perbedaannya Pembahasan:
terletak pada array dimensi dua yang Bubble sort diterjemahkan sebagai suatu
harus menyebutkan baris dan kolom metode pengurutan yang diinspirasi oleh
array tersebut. Hal ini dilakukan dengan gelembung sabun yang ada di dalam
mendeklarasikan max_rows dan max_cols permukaan air, karena berat jenis gelembung
yang digunakan pada pengiriman parameter sabun lebih ringan dibandingkan berat jenis
array dimensi dua dan pada saat pengiriman air maka gelembung sabun akan selalu
parameter formal array dimensi dua harus mengapung. Prinsip pengapungan ini
menyebutkan banyaknya dimensi array juga dipakai pada pengurutan gelembung.
untuk kolom sehingga ukuran kolom Elemen paling kecil “diapungkan” yang
dapat diketahui. Hal ini berkaitan dengan artinya diangkat ke atas (atau ke ujung
pemesanan variabel array di memori. paling kiri) melalui pertukaran. Proses
4. C. get character pengapungan ini dilakukan sebanyak n kali
Pembahasan: langkah. Langkah-langkah mengurutkan
Fungsi getch() merupakan singkatan dari get array menggunakan metode Bubble Sort
character yang artinya membaca karakter dilakukan dengan membandingkan data
tetapi isian data yang dimasukkan tidak ke-1 dengan data ke-2. Jika data ke-1 lebih
akan ditampilkan di layar. Sedangkan besar, maka kedua data ditukar. Selanjunya
nama fungsi getche() sebenarnya singkatan membandingkan data ke-2 dengan data
dari get character and echo yang artinya ke-3, jika data ke-2 lebih besar, kedua data
membaca karakter lalu tampilkan di layar. ditukar lagi. Demikian seterusnya sampai
Jadi setelah mengetikkan sebuah huruf, data terakhir, sehingga data kedudukannya
huruf tersebut akan ditampilkan di layar akan bergeser-geser dengan sendirinya. Hal
tanpa menekan enter. yang perlu dipahami adalah pembandingan

Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X 19


(pergeseran data) hanya sampai pada data didalam tubuh fungsi tersebut. Dalam hal
terakhir dikurangi satu. ini, fungsi header yang identik dengan
8. C. [ ] bagian dari definisi fungsi yang menyatakan
Pembahasan: kembali sebuah fungsi dari jenis, nama,
Guna mendeklarasikan sebuah array, Anda dan daftar parameter yang bukan diakhiri
harus menyebutkan tipe dari array yang dengan titik koma karena definisi dari
dibuat, seperti int, float, ataupun double tubuh fungsi yang mengikutinya. Sedangkan
beserta ukuran array-nya. Guna menentukan fungsi panggilan identik dengan pernyataan
ukuran array, perlu ditempatkan jumlah nilai yang melaksanakan fungsi tersebut,
yang dapat disimpan dalam tanda kurung sehingga diakhiri dengan titik koma seperti
siku (kurawal) yang terletak sebuah nama pernyataan C++ lainnya. Pada dasarnya,
array. Pada saat dideklarasikan sebuah array, fungsi panggilan tidak terdapat dalam
compiler C++ mengalokasikan memori yang daftar, dan jika program tersebut tidak
cukup untuk menampung semua elemen berada di dalam fungsi, maka tanda kurung
sesuai dengan yang dideklarasikan. yang harus dikosongkan.
9. A. subscript 11. A. kurung
Pembahasan: Pembahasan:
Dalam beberapa literatur, array sering Parameter khusus merupakan variabel tujuan
disebut sebagai larik. Array identik dengan yang ditentukan di dalam tanda kurung
kumpulan data-data bertipe sama dan dari definisi fungsi. Tujuan parameter
menggunakan nama yang sama. Nilai- tersebut adalah untuk menyampaikan
nilai data di suatu array disebut dengan informasi yang dilakukan oleh argumen
elemen-elemen array yang letak urutannya dan tercantum dalam tanda kurung pada
ditunjukkan oleh suatu subscript (indeks). panggilan fungsi (function call). Secara
Dengan menggunakan array, sejumlah umum, ketika informasi disampaikan ke
variabel dapat memakai nama yang sama, dalam fungsi disebut passed by value. Hal
namun demikian, antara satu variabel ini berarti parameter menerima copy dari
dengan variabel yang lain di dalam array nilai yang disampaikan kepadanya.
dibedakan berdasarkan subscript. Sebuah 12. B. PUTCHAR( )
subscript berupa bilangan didalam tanda Pembahasan:
kurung siku (kurawal). Melalui subscript PUTCHAR( ) digunakan khusus untuk
inilah setiap elemen array dapat diakses. menampilkan sebuah karakter ke layar.
Nilai subscribe pertama secara default Penampilan karakter tidak diakhiri
adalah 0. Bila kita menyatakan int x[10], dengan perpindahan baris, misalnya
hal ini berarti 10 elemen yang dimulai dari putchar(‘A’); sama dengan printf(“%c”, A);.
0. Karena itu elemen terakhir array adalah Sedangkan, PUTS( ) digunakan khusus
x[9]. Hal ini terjadi karena pada dasarnya untuk menampilkan data string ke layar.
C++ tidak pernah mengecek array. Sifat fungsi ini, string yang ditampilkan
10. A. function call secara otomatis akan diakhiri dengan \n
Pembahasan: (pindah baris). Dibandingkan dengan
Fungsi utama akan dipanggil secara printf(), perintah ini memiliki kode mesin
otomatis saat program dimulai, namun yang lebih pendek.
fungsi yang lain harus dijalankan melalui 13. C. fungsi
pernyataan function call. Ketika sebuah Pembahasan:
fungsi dipanggil, maka program untuk Alasan lain untuk menggunakan fungsi
melakukan percabangan menuju dan adalah untuk menyederhanakan program.
melaksanakan semua pernyataan yang ada Jika tugas tertentu dilakukan di beberapa

20 Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X


tempat di sebuah program, sebuah fungsi dengan pencarian beruntun. Selama
dapat ditulis sekali saja untuk melakukan pencarian posisi yang tepat dilakukan
tugas itu, dan kemudian akan dijalankan pergeseran elemen larik. Metode jenis
kapan saja dibutuhkan. ini memiliki kemiripan dengan cara
14. C. elemen kosong dan elemen pointer orang mengurutkan kartu selembar demi
Pembahasan: selembar, kartu diambil dan disisipkan
Guna menentukan ukuran array, perlu (insert) ke tempat yang seharusnya.
ditempatkan jumlah nilai yang dapat 18. E. array
disimpan dalam tanda kurung siku (kurawal) Pembahasan:
yang terletak sebuah nama array. Pada saat Dengan menggunakan array, sejumlah
dideklarasikan sebuah array, compiler C++ variabel dapat memakai nama yang sama.
mengalokasikan memori yang cukup untuk Namun demikian, antara satu variabel
menampung semua elemen sesuai dengan dengan variabel yang lain di dalam array
yang dideklarasikan. Selain itu, terdapat dibedakan berdasarkan subscript. Sebuah
dua cara umum dalam mendeklarasikan subscript berupa bilangan di dalam tanda
variabel array yaitu elemen kosong dan kurung siku (kurawal). Sebuah subscript
elemen pointer. berupa bilangan didalam tanda kurung siku
15. A. satu (kurawal). Melalui subscript inilah setiap
Pembahasan: elemen array dapat diakses. Nilai subscribe
Array dimensi satu identik dengan data-data pertama secara default adalah 0. Bila kita
akan disimpan dalam satu baris array yang menyatakan int x[10], hal ini berarti 10
hanya dibutuhkan satu penomoran indeks. elemen yang dimulai dari 0. Karena itu
Pada dasarnya, data array akan disimpan elemen terakhir array adalah x[9]. Hal ini
dalam memori yang berurutan dengan terjadi karena pada dasarnya C++ tidak
elemen pertama memiliki indeks bernilai pernah mengecek array.
0. Misalnya sebuah variabel nilai_uji yang 19. A. name
dideklarasikan sebagai array dengan 9 Pembahasan:
elemen, maka elemen pertama memiliki Setiap fungsi harus memiliki nama (Name).
indeks sama dengan 0, dan elemen terakhir Secara umum, peraturan yang sama berlaku
memiliki indeks 8. untuk nama variabel juga berlaku untuk
16. E. parameter nama fungsi. Sedangkan Parameter list
Pembahasan: sebagai program modul fungsi panggilan
Seorang programmer pada umumnya yang dapat mengirim data ke N. Daftar
sudah akrab dengan cara menggunakan parameter adalah daftar variabel yang
argumen dalam pemanggilan fungsi. memegang nilai-nilai yang disampaikan ke
Dengan menggunakan parameter, seorang fungsi.
programmer bisa merancang sendiri fungsi 20. D. MAX_ROWS dan MAX_COLS
yang mampu menerima data. Ketika Pembahasan:
sebuah fungsi dengan beberapa parameter Pengiriman parameter berupa array dimensi
dipanggil, maka argumen akan dimasukan dua hampir sama dengan pengiriman
ke dalam parameter yang dipesan. parameter array dimensi satu, perbedaannya
17. C. Insertion Sort terletak pada array dimensi dua yang
Pembahasan: harus menyebutkan baris dan kolom
Insertion Sort identik dengan metode array tersebut. Hal ini dilakukan dengan
pengurutan dengan cara menyisipkan mendeklarasikan MAX_ROWS dan MAX_
elemen larik pada posisi yang tepat. COLS yang digunakan pada pengiriman
Pencarian posisi yang tepat dilakukan parameter array dimensi dua dan pada saat

Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X 21


pengiriman parameter harus menyebutkan sebaik-baiknya. Dalam dunia nyata array
jumlah dimensi array untuk kolom sehingga digambarkan seperti loker lemari. Lemari
ukuran kolom dapat diketahui. Hal ini tersebut meiliki sebuah nomor yang dalam
berkaitan dengan pemesanan variabel array array disebut sebagai indeks, sedangkan isi
di memori. lemari dalam array disebut elemen.
3. Langkah-langkah mengurutkan array
B. Uraian menggunakan metode Selection Sort adalah
1. Contoh penerapan pengembalian nilai sebagai berikut.
boolean pada bahasa C++ adalah sebagai a. Proses 1
berikut. Variabel indeks diberi nilai 1 (data ke-1)
kemudian data indeks dibandingkan
#include <iostream>
dengan data ke-2. Jika data indeks lebih
using namespace std; besar maka nilai indeksnya diganti
dengan 2 (data ke-2), jika tidak nilai
bool isEven(int); indeksnya tetap. Kemudian data indeks
int main()
{ dibandingkan lagi dengan data ke-3.
int val; Jika datanya lebih besar, maka nilai
indeks harus ditukar. Setelah selesai,
cout << “masukan bilangan integer nilai indeks diperiksa apakah sudah
:”;
cout << “jika ganjil atau genap berubah atau belum. Jika nilai indeks
: “; mengalami perubahan, maka data ke-1
cin >> val; ditukar dengan data indeks.
b. Proses 2
if (isEven(val)) Variabel indeks diberi nilai 2 (data ke-2)
cout << val << “adalah genap.\n”;
else
kemudian data indeks dibandingkan
cout << val << “ adalah dengan data ke-3. Jika data indeks lebih
ganjil.\n”; besar maka nilai indeksnya diganti
return 0; dengan 3 (data ke-3). Kemudian data
}
indeks dibandingkan lagi dengan data
bool isEven(int number) ke-4. Jika datanya lebih besar, maka
{ Nilai indeks harus ditukar. Setelah selesai,
if (number % 2) nilai indeks diperiksa sudah berubah
return false; // bilangan tersebut
adalah ganjil
atau belum. Jika nilai indeks mengalami
else perubahan maka data ke-2 ditukar
return true; // bilangan tersebut dengan data indeks. Demikian seterusnya
adalah genap hingga proses berlanjut di mana jumlah
}
elemen array dikurangi satu.
2. Jika pada saat tertentu program yang 4. Salah satu cara agar compiler mengetahui
dibuat dibutuhkan untuk menyelesaikan informasi tentang fungsi, misalnya jenis
suatu permasalahan yang dikehendaki return, jumlah parameter, dan setiap jenis
suatu variabel yang dapat menampung parameter sebelumnya yang dipanggil dengan
banyak nilai. Sebagai contoh variabel skor cara menempatkan fungsi definisi sebelum
barangkali mencatat skor ujian dari 100 semua panggilan terjadi. Dalam menyatakan
siswa. Demikian juga variabel gaji mungkin pemanggilan fungsi dapat menggunakan
menampung gaji yang berlainan dari struktur kendali seperti loop, pernyataan if,
setiap pegawai suatu perusahaan. Dalam maupun pernyataan switch. Setiap panggilan
kondisi tersebut, array dan fungsi dalam pernyataan menyebabkan program melakukan
bahasa pemrograman dapat digunakan percabangan ke salah satu fungsi dan selanjutnya

22 Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X


kembali ke menu utama bila fungsi selesai. 9. Cara mendeklarasikan variabel array tanpa
Sebuah fungsi sering juga dipanggil dalam memasukkan nilai ke dalam variabel
sebuah hierarki (berlapis). tersebut, misalnya int nomor [6] ; yang
5. Program array dimensi satu dengan 20 elemen berarti instruksi tersebut menyatakan suatu
bertipe integer adalah sebagai berikut. variabel array bernama ‘nomor’ bertipe
integer dideklarasikan dan memesan elemen
#include
#include array berjumlah 6 buah. Perhatikan bahwa
void main() nilai 6 yang berada di dalam tanda kurung
{ menunjukkan jumlah elemen array, bukan
int data[20]; // array dengan 20 elemen bertipe
integer menunjukkan elemen array yang ke-6.
int elemen; Jadi elemen array ujian dimulai dari angka
clrscr(); 0 sampai 5. Elemen terakhir dari array
// entri 20 data
for (elemen=0;elemen <= 19;elemen++) umunya diisi dengan karakter ‘\0’. Karakter
{ ini memberitahu compiler bahwa akhir
cout << “Data ke – “ << elemen << “: “; dari elemen array telah dicapai. Walaupun
cin >> data[elemen];
} programmer tidak dapat melihat karakter
// tampilkan data setelah entri ini secara eksplisit, namun compiler
for (elemen=0;elemen <= 19;elemen++) mengetahui dan membutuhkannya.
{
cout << “Data ke – “ << elemen << “: “ << 10. Gambar fungsi yang menggunakan
data[elemen]; parameter lebih dari satu adalah sebagai
}
} berikut.
6. Sebuah parameter diterjemahkan sebagai
suatu variabel khusus yang menangani
nilai yang dilewatkan sebagai argumen
menuju sebuah fungsi. Seorang programmer
pada umumnya sudah akrab dengan cara
menggunakan argumen dalam pemanggilan

fungsi. Dengan menggunakan parameter,
seorang programmer dapat merancang
sendiri fungsi yang dapat menerima data. Proyek
7. Metode jenis ini memiliki kemiripan Kebijaksanaan guru
dengan cara orang mengurutkan kartu
selembar demi selembar, kartu diambil
dan disisipkan (insert) ke tempat yang Bab 6
seharusnya. Langkah-langkah mengurutkan Pembuatan User Interface dan Struktur
array menggunakan metode Insertion Sort Kontrol dalam Aplikasi
dilakukan dengan pengurutan yang dimulai
Soal Latihan
dari data ke-2 sampai dengan data terakhir.
A. Pilihan ganda
Jika ditemukan data yang lebih kecil
atau lebih besar, maka akan ditempatkan 1. A. if-else if-else
(diinsert) diposisi yang seharusnya. Pembahasan:
8. Array dimensi dua terdiri dari baris Percabangan if-else if-else identik dengan
dan kolom yang artinya memberikan struktur kontrol percabangan yang memiliki
kesempatan untuk menyimpan data baik banyak kondisi. Bentuk umum penulisannya
dalam bentuk baris maupun dalam bentuk sebagai berikut.
kolom. Oleh karena menyimpan data ke
dalam baris dan kolom, maka dibutuhkan
dua buah nilai indeks.

Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X 23


if(kondisi1){ 4. A. pertama
statement; Pembahasan:
}
Pengiriman parameter berupa array dimensi
else if(kondisi2){
statement; satu identik dengan pengiriman secara
} acuan (referensi), karena yang dikirimkan
else{ adalah alamat dari elemen pertama array,
statement;
bukan seluruh nilai-nilai elemennya.
}
Alamat elemen pertama dari array dapat
2. C. 1980-an ditunjukkan oleh nama larik yang tidak
Pembahasan: ditulis dengan indeks.
User Interface (UI) Desain berfokus pada 5. A. passed by value
merencanakan apa yang mungkin sering Pembahasan:
user perlukan dan memastikan bahwa
Parameter khusus merupakan variabel tujuan
antarmuka memiliki unsur-unsur yang
yang ditentukan didalam tanda kurung
mudah untuk diakses, dipahami, dan
dari definisi fungsi. Tujuan parameter
digunakan. UI menyatukan konsep dari
tersebut adalah untuk menyampaikan
interaction design, visual design, dan
informasi yang dilakukan oleh argumen
information architecture. Standar desain
dan tercantum dalam tanda kurung pada
user interface telah dikembangkan sejauh
panggilan fungsi (function call). Secara
tahun 1980-an untuk menentukan kegunaan
umum, ketika informasi disampaikan ke
dari produk piranti lunak. Salah satu basis
dalam fungsi disebut passed by value. Hal ini
struktural telah menjadi model referensi
berarti parameter menerima copy dari nilai
antarmuka pengguna IFIP. Model ini
yang disampaikan kepadanya. Jika sebuah
mengusulkan empat dimensi untuk struktur
parameter nilai berubah didalam fungsi
antarmuka pengguna input / output
maka hal tersebut tidak akan berpengaruh
dimensi, dialog dimensi, dimensi teknis
pada argumen asli. Sebuah ekspresi adalah
atau fungsional, serta dimensi organisasi.
sesuatu yang memiliki nilai. Jika suatu
3. C. insertion Sort fungsi mengembalikan nilai, panggilan ke
Pembahasan: fungsi merupakan sebuah ekspresi.
Insertion sort identik dengan metode 6. E. pointer
pengurutan dengan cara menyisipkan Pembahasan:
elemen larik pada posisi yang tepat.
E l e m e n p oi nte r d i g u n a k an u ntu k
Pencarian posisi yang tepat dilakukan
mendeklarasikan variabel array dengan
dengan pencarian beruntun. Selama
memasukkan nilanya sekaligus ke dalam
pencarian posisi yang tepat dilakukan
variabel tersebut. Misalnya int nomor [6]
pergeseran elemen larik. Metode jenis ini
= { 28, 10, 23, 20, 9, 14 } ; yang berarti
memiliki kemiripan dengan cara orang
instruksi tersebut menyatakan bahwa suatu
mengurutkan kartu selembar demi selembar,
variabel array bernama ‘nomor’ bertipe
kartu diambil dan disisipkan (insert)
integer dideklarasikan dan memesan elemen
ke tempat yang seharusnya. Langkah-
array berjumlah 6 buah. Kemudian nilai
langkah mengurutkan array menggunakan
pada setiap elemen array disimpan sesuai
metode Insertion Sort dilakukan dengan
urutan pada instruksi tersebut.
pengurutan yang dimulai dari data ke-2
sampai dengan data terakhir. Jika ditemukan 7. C. exchange sort
data yang lebih kecil atau lebih besar, maka Pembahasan:
akan ditempatkan (diinsert) di posisi yang Salah satu cara agar compiler mengetahui
seharusnya. informasi tentang fungsi misalnya jenis
return, jumlah parameter, dan setiap jenis

24 Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X


parameter sebelumnya yang dipanggil untuk kegunaan terentu. Keinginan untuk
dengan cara menempatkan fungsi definisi memahami isu-isu UI khusus aplikasi
sebelum semua panggilan terjadi. Dalam awal dalam pengembangan piranti
menyatakan pemanggilan fungsi dapat lunak, bahkan pada aplikasi yang masih
menggunakan struktur kendali seperti loop, sedang dikembangkan, menyebabkan
pernyataan IF, pernyataan IF-ELSE mau penelitian tentang GUI alat prototyping
pun pernyataan switch. Setiap panggilan menjadi semakin intens yang mungkin
p ernyataan menyebabkan program menawarkan simulasi dan solusi yang
melakukan percabangan ke salah satu fungsi sangat meyakinkan dan tepat tentang
dan selanjutnya kembali ke menu utama bagaimana pembuatan aplikasi yang
bila fungsi selesai. Sebuah fungsi sering juga benar-benar mengerti pengguna dan
dipanggil dalam sebuah hierarki (berlapis). dapat meningkatkan produksi. Beberapa
8. B. default penelitian telah menunjukkan bahwa
Pembahasan: berbagai tugas pemrograman untuk piranti
Salah satu keistimewaan C++ adalah lunak berbasis GUI ditentukan melalui cara
adanya kemampuan untuk menggunakan lain selain menulis kode program.
nilai bawaan (default) parameter fungsi. 11. E. Standard Runtime Library
parameter yang mempunyai nilai bawaan Pembahasan:
nantinya dapat tidak disertakan di dalam Apabila kode program yang kita tulis
pemanggilan fungsi. lebih dari satu file, maka kode objek yang
9. A. user friendly dihasilkan juga akan sesuai dengan jumlah
Pembahasan: file kode program. Pada tahap ini, program
Desain interface pada dasarnya jendela Linker akan menghubungkan semua file
antarmuka yang menghubungkan program kode objek tersebut dengan Standard
dengan pengguna. Desain interface Runtime Library yang sudah disediakan
merupakan hal penting dalam sebuah oleh C++. Kemudian mengubahnya ke
program, sebaik apapun skrip yang dibuat dalam satu file .exe (atau .o). File inilah
tetapi jika desain interface-nya kurang yang dinamakan program. Sampai pada
begitu nyaman maka kemungkinan besar tahap ini, pembentukan program sudah
program tidak akan laku. Sebuah desain berakhir.
interface yang baik harus membuat sebuah 12. A. text editor
program nyaman digunakan (user friendly). Pembahasan:
Pembuatan desain interface harus dilihat Guna membuat program yang ditulis dalam
dari berbagai macam aspek, di antaranya bahasa C++ memerlukan software Text
aspek pengguna dan kemudahan dalam Editor yang digunakan untuk menuliskan
memahami sebuah program. Dalam C++ kode-kode program dan C++ Compiler
karena program yang dihasilkan masih yang digunakan untuk menerjemahkan
berbasis under DOS, maka bisa membuat kode C++ menjadi program (file biner
desain interface dengan memanipulasi yang dapat dieksekusi). Bagi pemula, lebih
tata letak, animasi, penggunaan warna, disarankan menggunakan Dev-C++ karena
penggunaan kode ASCII dan lain-lain. lebih mudah dalam mempelajarinya.
10. B. ISO 9241 13. E. abstraksi
Pembahasan: Pembahasan:
Model referensi antarmuka pengguna IFIP Proses menyelesaikan masalah dalam
telah sangat memengaruhi perkembangan pemrograman C++ adalah menjelaskan
standar internasional ISO 9241 yang class-class sebagai anak class yang dibuat
menjelaskan persyaratan desain antarmuka sebelumnya sebagai abstraksi dari objek

Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X 25


fisik. Class tersebut berisi keadaan objek, Linux OS ditandai dengan ekstensi O. Masing-
anggota-anggotanya dan kemampuan dari masing tahapan dilakukan oleh program yang
objeknya. Setelah beberapa class dibuat berbeda-beda yaitu C++ Prepocessor, C++
kemudian masalah dipecahkan dengan class Compiler, Assembler, dan Linker.
tersebut. 17. A. sistem
14. B. pagination Pembahasan:
Pembahasan: Bentuk dan pembangunan user interface perlu
Beberapa contoh elemen interface adalah dilihat sebagai salah satu proses utama dalam
sebagai berikut. keseluruhan pembangunan suatu sistem.
No. Bentuk Contoh Rekayasa bentuk user interface diterjemahkan
sebagai suatu proses yang komplek dan
1. Input To m b o l , t e k s f i e l d ,
memerlukan daya kreativitas tinggi, pengalaman,
control checkbox, radio button,
daftar dropdown, daftar
analisis terperinci dan pemahaman terhadap
kotak, toggles, date field. kebutuhan user. User interface dapat diatur
menggunakan pilihan dari pembuat komputer,
2. Komponen Breadcrumb, slider, kolom
navigasi pencarian, pagination,
analisis sistem, pemrograman ataupun oleh user
slider, tag, icons. yang bersangkutan.
3. Komponen Tooltips, ikon, progress
18. C. desain antarmuka
informasi bar, notifikasi, kotak Pembahasan:
pesan, modal windows. Desain antarmuka sebagai sarana yang akan
4. Containers Accordion. membawa pengguna pada fungsi sistem
15. D. gotoxy(jml_baris, jml_kolom) yang ingin dilakukan olehnya. Tujuan utama
dari desain antar muka adalah menghasilkan
Pembahasan:
sistem komputer yang mampu digunakan
Beberapa kode/perintah yang dapat
dengan baik oleh pengguna (good usability)
digunakan untuk memanipulasi tata letak
dengan memperhatikan beberapa hal
text atau sebuah karakter sebagai berikut.
penting seperti memahami faktor-faktor
a. setw(lebar_layar)
yang membuat manusia menggunakan
Digunakan untuk mengatur lebar layar
teknologi, mengembangkan teknik-teknik
sebuah text, untuk perintah setw( )
yang memungkinkan untuk membangun
perlu pemanggilan file header #include
sistem sesuai dengan tujuan serta mencapai
<iomanip.h>
interaksi yang aman, efektif dan efisien.
b. gotoxy(jml_baris, jml_kolom)
19. B. ‘c’
Perintah yang digunakan untuk
memposisikan text/karakter dalam Pembahasan:
koordinat x dan y, dimana x merupakan Dalam buku “The C++ Programming
jumlah kolom dan y merupakan Language” karya Bjarne Stroustrup (pencipta
jumlah baris. C++) menyatakan bahwa setiap file header
16. A. O dalam C++ yang diawali huruf ‘c’ adalah
sama dengan file header milik bahasa C.
Pembahasan:
Untuk setiap file header dengan nama
Setelah instalasi selesai, langkah selanjutnya
<X.h> yang terdapat dalam bahasa C diubah
adalah proses pembentukan program.
namanya menjadi <cX>. Misalnya file
Beberapa tahapan yang terjadi pada saat
header <stdio.h>, <string.h>, dan <stdlib.
proses pembentukan program diawali dari
h> milik bahasa C; maka dalam C++ akan
penulisan kode program hingga menjadi file
diubah menjadi <cstdio>, <cstring>, dan
biner yang dapat dieksekusi. Dalam Windows
<cstdlib>.
OS, file program akan berekstensi EXE,
sedangkan hasil pembentukan program dalam

26 Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X


20. D. light red // Fungsi utama
Pembahasan: int main (void) {
Statemen_yang_akan_dilakukan;
Kode-kode warna yang bisa digunakan …
dalam C++ adalah sebagai berikut. return 0;
Kode Jenis Kode Jenis }
No. No.
warna warna warna warna
// Implementasi fungsi
1. 0 Black 9. 8 Gray
tipe_data nama_fungsi1 (parameter1,
2. 1 Blue 10. 9 Light parameter2, …) {
Blue Statemen_yang_akan_dilakukan;

3. 2 Green 11. A Light }
Green
4. 3 Aqua 12. B Light tipe_data nama_fungsi1 (parameter1,
Aqua parameter2, …) {
Statemen_yang_akan_dilakukan;
5. 4 Red 13. C Light Red …
6. 5 Purple 14. D Light }
Purple Faktor yang perlu diperhatikan bahwa file
7. 6 Yellow 15. E Light header yang digunakan di dalam bahasa
Yellow C++ untuk standar proses input/output (I/O)
8. 7 White 16. F Light adalah <iostream>, sedangkan di dalam
White bahasa C file header yang digunakan untuk
keperluan yang sama adalah <stdio.h>. Selain
B. Uraian itu, perhatikan juga statement berikut.
1. Setiap program yang ditulis dalam bahasa using namespace std;
C++ pasti akan memiliki sebuah fungsi Statement tersebut menunjukan bahwa
utama dengan nama main(). Selanjutnya, jika penggunaan bahasa C++ standar di dalam
ingin mendefinisikan fungsi-fungsi lain dapat kode program yang ditulis. Bagi keperluan
dilakukan di luar fungsi utama tersebut. Kode yang sama, kita dapat menuliskan kode
yang dibaca dalam C++ adalah kode-kode program diatas ke dalam bahasa C++ yang
yang terdapat pada fungsi utama. Jika ternyata direkomendasikan seperti berikut.
terdapat pemanggilan fungsi lain, maka kode #include
program akan mencari nama fungsi tersebut
untuk dieksekusi. Setelah mengeksekusi fungsi using namespace std;
tersebut, maka program akan kembali ke int main () {
dalam fungsi utama dan seterusnya. Kerangka Int X;
lengkap dari program yang ditulis dalam C++
// Menampilkan teks untuk
secara standar sebagai berikut. informasi
#include <iostream> cout<<“Masukan bilangan bulat:
“;
using namespace std;
// Membaca nilai dari keyboard
// Prototipe fungsi // dan menyimpannya ke dalam
tipe_data nama_fungsi1 (parameter1, variabel X
parameter2, …); cin>>X;
tipe_data nama_fungsi2 (parameter1,
parameter2, …); /* Menampilkan nilai yang telah
… dimasukan */
cout<<“Bilangan yang dimasukan
// Deklarasi kelas (jika ada) adalah ”<

return 0;
}

Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X 27


2. File header yang dimiliki bahasa C a. Me n c i p t a k a n k o n s i s t e n s i d a n
diantaranya <stdio.h>, <string.h>, dan menggunakan elemen UI umum
<stdlib.h>. Dengan menggunakan elemen umum
3. Bentuk umum penulisannya sebagai di UI, user merasa lebih nyaman dan
berikut. mampu menyelesaikan sesuatu lebih
cepat. Hal ini juga penting untuk
switch(kondisi){
case konstanta_1: membuat suatu pola dalam bahasa,
statement; tata letak dan desain untuk membantu
break; memfasilitasi efisiensi. Setelah
case konstanta_2:
statement; user belajar bagaimana melakukan
break; sesuatu, mereka harus mampu mudah
default: beradaptasi dan terbiasa dengan
statement;
} interface tersebut.
4. Perintah Sleep ini berarti menunda text/ b. Menjaga antarmuka yang sederhana
karakter yang akan ditampilkan sesuai Interface terbaik hampir tidak terlihat
dengan waktu yang ditentukan programmer. oleh user. Mereka menghindari elemen
Hal yang perlu diingat adalah penulisan yang tidak perlu dan harus terstruktur
Sleep harus menggunakan huruf S besar. dengan bahasa yang jelas pada label
dan di pesan interface.
5. Beberapa komponen informasi di antaranya
c. Menggunakan strategi warna dan
Tooltips, ikon, progress bar, notifikasi, kotak
tekstur.
pesan, dan modal windows.
Hal ini dapat dilakukan dengan
6. File header (file dengan ekstensi .h)
mengarahkan perhatian user dari dan
adalah file yang berisi deklarasi, baik
ke item tertentu, menggunakan warna,
berupa konstanta, fungsi kelas, namespace,
cahaya, kontras, dan tekstur untuk
dan sebagainya. File header hanya berisi
tujuan tertentu.
deklarasi, sebab jika berupa fungsi maka
d. Mempertimbangkan Page layout
yang tertulis dalam file header hanya
berdasarkan suatu tujuan tertentu
prototipenya saja. File ini tidak berisi
Mempertimbangkan spasi antara item
implementasi atau kode-kode program
pada halaman dan struktur berdasarkan
dari fungsi atau kelas yang didefinisikan
kepentingan dan tujuan. Penempatan
di dalamnya.
item yang terencana dapat membantu
7. Beberapa kode / perintah yang dapat menarik perhatian langsung ke bagian
digunakan untuk memanipulasi tata letak yang paling penting dari informasi dan
text atau sebuah karakter sebagai berikut. dapat membantu scanning dan mudah
a. setw(lebar_layar) dibaca oleh user.
Digunakan untuk mengatur lebar layar e. Menggunakan tipografi untuk membuat
sebuah text, untuk perintah setw( ) penjernihan dan kejelasan
perlu pemanggilan file header #include Hati-hati dalam memilih metode
<iomanip.h> membentuk sebuah bentuk gambaran
b. gotoxy(jml_baris, jml_kolom) tertentu. Berbagai ukuran, font, dan
Perintah yang digunakan untuk pengaturan teks yang tepat dapat
memposisikan text/karakter dalam membantu meningkatkan scanability
koordinat x dan y, dimana x merupakan dan mudah dibaca user.
jumlah kolom dan y merupakan f. Memikirkan tentang default
jumlah baris. S e c ar a tel it i me m i k i rk an d an
8. Beberapa hal yang perlu dipertimbangkan mengantisipasi adanya user yang
ketika merancang interface adalah sebagai kebingungan saat tidak sengaja
berikut.

28 Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X


mengutak atik konfigurasi, namun dapat Proyek
diatasi dengan membuat default yang Kebijaksanaan guru
mengurangi kepanikan pada user.
g. Memastikan bahwa sistem berjalan sesuai
dengan apa yang terjadi saat itu juga
Bab 7
Selalu menginformasikan user tentang
lokasi, suatu tindakan sistem, perubahan, Aplikasi Berbasis Antarmuka dan Debuging
atau kesalahan. Penggunaa berbagai Aplikasi
elemen UI untuk menginfokan status Soal Latihan
terkini dapat bermanfaat menambah A. Pilihan ganda
informasi bagi user. 1. E. Commandshell
9. Bentuk penerapannya dalam kode program Pembahasan:
adalah sebagai berikut Setiap sistem operasi (OS) memiliki istilah
#include <iostream.h> yang berbeda untuk CLI-nya, diantaranya
#include <conio.h> sebagai berikut.
main(){
No. Sistem operasi Istilah CLI
int x1;
int angka = 6; 1. UNIX Bash (Born Again-Shell),
cout<<”Angka 1 - 20”<<endl; ash, ksh, csh (C-Shell),
cout<<”Masukan nilai tebakan : “;cin>>x1; dan lain sebagainya.
if(x1==angka){ 2. Microsoft Disk C ommand.com atau
cout<<”Tebakanmu tepat”<<endl; Operating System Command Prompt.
cout<<”Selamat!”; (MS-DOS)
}
else if(x1>angka){ 3. M i c r o s o f t PowerShell
cout<<”Tebakanmu terlalu besar”; Windows Vista
} 4. Linux Terminal
else{
cout<<”Tebakanmu terlalu kecil”; 5. Apple commandshell
} 2. E. instalasi
getch();
}
Pembahasan:
Beberapa sumber bug di antaranya salah
10. Kode-kode warna yang bisa digunakan
design, salah implementasi (coding), salah
dalam C++ sebagai berikut.
konfigurasi, dan sebagainya. Namun dari
Kode Jenis Kode Jenis sekian banyak bug, kesalahan lebih banyak
No. No.
Warna Warna Warna Warna dijumpai dari sisi implementasi (coding)
1. 0 Black 9. 8 Gray pada aplikasi yang bersangkutan misalnya
2. 1 Blue 10. 9 Light kesalahan logika, kesalahan aritmatika, keliru
blue dalam pemakaian bahasa pemrograman, mau
3. 2 Green 11. A Light pun menggunakan framework tertentu.
green 3. C. Input device
4. 3 Aqua 12. B Light Pembahasan:
aqua GUI identik dengan tipe antarmuka
5. 4 Red 13. C Light yang digunakan oleh pengguna untuk
red berinteraksi dengan sistem operasi melalui
6. 5 Purple 14. D Light gambar-gambar grafik, ikon, menu,
purple
dan menggunakan perangkat penunjuk
7. 6 Yellow 15. E Light (pointing device) seperti mouse atau track
yellow
ball. Elemen-elemen utama dari GUI bisa
8. 7 White 16. F Light diringkas dalam konsep WIMP (Window,
white
Icon, Menu, and Pointing device).

Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X 29


4. A. debugging a. Lalai dalam menginisialisasi atau
Pembahasan: mereset variabel. Pada umumnya
Jika test case mengungkap kesalahan, maka program berjalan dengan benar pada
proses yang menghasilkan penghilangan saat pertama kali digunakan, tetapi
kesalahan bisa dianggap sebagai debugging. ketika diulangi kembali ternyata
Desain test case dapat dilakukan, strategi terdapat kesalahan hasilnya dan
dapat ditentukan, dan hasil dapat dievaluasi benar kembali ketika aplikasi tersebut
berdasarkan harapan-harapan yang direstart.
ditentukan sebelumnya. b. Menggunakan try catch secara sepihak
5. B. DWT, DFL, dan GLFW misalnya dengan membungkus
seluruh fungsi dalam satu try except.
Pembahasan:
Dengan cara tersebut, tidak akan
Beberapa pustaka dari bahasa pemrograman yang diketahui secara jelas apa sumber error
populer digunakan, yaitu sebagai berikut. sesungguhnya.
No. Pustaka Keterangan c. Bentuk bug yang spesifik terhadap
1. DWT Pustaka grafis jendela OOP bahasa adalah bug manajemen memori
untuk Windows. di C++, di mana kesalahan mengakses
2. D F L ( D Pustaka grafis jendela memori di C++ mudah terjadi dan
Framework OOP untuk Windows yang umumnya menyebabkan crash.
Library) memadukan pemrograman
jendela dengan operasi socket, 8. E. proses
registry dan fungsi lainnya Pembahasan:
pada Windows.
GUI identik dengan tipe antarmuka
3. GLFW Pustaka gratis untuk yang digunakan oleh pengguna untuk
pemrograman Open GL.
berinteraksi dengan sistem operasi melalui
6. D. teks gambar-gambar grafik, ikon, menu,
Pembahasan: dan menggunakan perangkat penunjuk
CLI (Command Line Interface) identik (pointing device) seperti mouse atau track
dengan suatu bentuk penggunaan komputer ball. Elemen-elemen utama dari GUI bisa
berbasis teks, dimana pengguna komputer diringkas dalam konsep WIMP (Window,
memberikan perintah (command/input) Icon, Menu, and Pointing device).
kepada komputer melalui pengetikan 9. A. gdb
sejumlah baris perintah untuk kemudian Pembahasan:
diolah (process) agar menjadi sebuah Pada saat melakukan build (compile)
keluaran (output). CLI sebagai tipe pada program yang dibuat dalam mode
antarmuka dimana pengguna berinteraksi debug, maka program tersebut telah
dengan sistem operasi melalui text-terminal disisipkan informasi debug yang nantinya
dengan cara mengetikkan baris-baris akan digunakan oleh aplikasi debugger
tertentu. Pada umumnya proses penggunaan misalnya gdb. Secara otomatis file aplikasi
antarmuka baris perintah (CLI) ini biasa yang kita build menjadi lebih besar
juga disebut dengan akses konsole atau karena disisipi library dan informasi
console – walaupun istilah console juga debug. Mode debug umumnya digunakan
mengacu pada antarmuka berbasis jendela pada lingkungan development dan lebih
yang sangat rumit. merujuk pada kepentingan programmer
7. E. set instruksi khusus yang dieksekusi yang bersangkutan. Namun aplikasi yang
Pembahasan: dihasilkan akan lebih ramping apabila
Beberapa bentuk-bentuk bug yang umum melakukan build menggunakan release
dijumpai di antaranya sebagai berikut. mode, maka aplikasi tersebut sudah siap
digunakan untuk sehari-hari (production).

30 Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X


Hal ini dikarenakan source code yang fungsi tertentu program menjadi hang (not
digunakan hanya kode program yang ditulis responding). Hal ini dapat terjadi dikarenakan
saja tanpa disertai informasi debug. oleh berbagai faktor, misalnya aplikasi
10. C. production tersebut dibuild menggunakan windows
Pembahasan: OS namun codingnya menggunakan Linux
Secara otomatis file aplikasi yang di build OS sehingga setelah aplikasi dijalankan dan
menjadi lebih besar karena disisipi library terdapat error. Setelah ditelusuri ternyata
dan informasi debug. Mode debug umumnya aplikasi tersebut memerlukan file DLL
digunakan pada lingkungan development (Dynamic Link Library) yang dicopy
dan lebih merujuk pada kepentingan ke dalam satu folder dengan aplikasi
programmer yang bersangkutan. Namun tersebut dan ternyata bisa berjalan dengan
aplikasi yang dihasilkan akan lebih ramping normal. Namun saat mengcopykan program
apabila melakukan build menggunakan tersebut ke komputer lain, ukuran file
release mode, maka aplikasi tersebut beserta librarynya secara otomatis akan
sudah siap digunakan untuk sehari-hari membengkak beberapa kali lipat.
(production). Hal ini dikarenakan source 14. B. low level format
code yang digunakan hanya ditulis saja Pembahasan:
tanpa disertai informasi debug. Bug identik dengan segala macam cacat
11. E. tujuan awal yang telah ditentukan dalam program, misalnya cacatnya tampilan
sebelumnya yang sedikit salah, crash, bug security
Pembahasan: karena semua user bisa melakukan akses,
Desain test case dapat dilakukan, strategi maupun out of memory jika jumlah user
dapat ditentukan, dan hasil dapat dievaluasi terlalu banyak. Beberapa sumber bug di
berdasarkan tujuan awal yang telah antaranya salah design, salah implementasi
ditentukan sebelumnya. Perekayasa aplikasi (coding), salah konfigurasi, dan sebagainya.
software yang mengevaluasi hasil suatu Namun dari sekian banyak bug, kesalahan
pengujian sering dihadapkan pada indikasi lebih banyak dijumpai dari sisi implementasi
“simtomatis” dari masalah aplikasi software (coding) pada aplikasi yang bersangkutan
bahwa manisfestasi eksternal dari kesalahan misalnya kesalahan logika, kesalahan
dan penyebab internal kesalahan adakalanya aritmatika, keliru dalam pemakaian bahasa
tidak memiliki hubungan yang jelas satu pemrograman, maupun menggunakan
dengan lainnya. framework tertentu.
12. B. build 15. C. system()
Pembahasan: Pembahasan:
Jika ingin menjalankan aplikasi ke komputer Pada statemen tersebut terdapat variabel
lain atau menyebarnya aplikasi tersebut sin2FdlVal untuk menampung nilai sinus
melalui internet, sebaiknya menggunakan dan variabel toneFdlVal menampung nilai
release mode pada saat melakukan build. frekuensi yang akan dilampirkan pada saat
Selain lebih kecil dalam segi ukuran, release program berjalan dan untuk mengolah data
mode lebih aman dari potensi injeksi kode- stringnya agar bisa dilampirkan dalam bentuk
kode seperti virus, malware dan lain lain teks pada fungsi system(), misalnya “beep -l
dari orang yang tidak bertanggung jawab. 250 -f 1500”, maka diperlukan kode khusus
untuk memanipulasi string seperti berikut.
13. E. perbedaan OS
char buffer1[20], buffer2[20];
Pembahasan:
sprintf(buffer1,”%d”,toneFdlVal);
Pada saat melakukan compile tidak terdapat
warning maupun pesan error yang nampak, strcpy(buffer2, “beep -l 250 -f ”);
tetapi saat aplikasi dijalankan dan melakukan strcat(buffer2, buffer1);

Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X 31


16. C. development meletakan fungsi sub rutin ke dalam DLL
Pembahasan: berarti fungsi tersebut dapat diakses oleh
Secara otomatis file aplikasi yang di build semua program pada saat yang bersamaan.
menjadi lebih besar karena disisipi library dan DLL biasanya ditulis dengan bahasa C/
informasi debug. Mode debug umumnya di C++, Delphi atau bahasa lainnya yang
gunakan pada lingkungan development dan mendukung windows OS. Eksistensi dari
lebih merujuk pada kepentingan programmer file DLL yang paling utama ditujukan untuk
yang bersangkutan. Namun aplikasi yang menyederhanakan suatu (program). Karena
dihasilkan akan lebih ramping apabila progam tersebut tidak perlu mempunyai
melakukan build menggunakan release mode, kode program untuk fungsi umumnya,
maka aplikasi tersebut sudah siap digunakan sehingga tinggal menyesuaikan dengan
untuk sehari-hari (production). Hal ini windows OS yang sudah punya DLL sama
dikarenakan source code yang digunakan dengan fungsi progam tersebut. misalnya
hanya kode program yang ditulis saja tanpa mayoritas program perlu menciptakan
disertai informasi debug. antarmuka-grafis (graphical interface)
17. E. CTRL + C yang muncul di layar. Oleh karena itu,
daripada membuat kode program khusus
Pembahasan:
interface itu, program yang bersangkutan
Hasil akhir dari kompilasi program alarm akan memanggil sebuah DLL yang memuat
adalah berupa nada rendah ke nada tinggi fungsi tersebut.
secara bertahap kemudian turun lagi nadanya
20. E. implementasi
yang berlangsung beberapa kali (perubahan
nada naik-turun secara berulang) selama Pembahasan:
beberapa detik kemudian off sendiri. Namun Namun dari sekian banyak jenis bug,
jika ingin menghentikan programnya pada kesalahan lebih banyak dijumpai dari
saat program sedang berjalan dengan cara sisi implementasi (coding) pada aplikasi
menekan tombol CTRL+C pada terminalnya, yang bersangkutan misalnya kesalahan
maka nada akan berhenti. logika, kesalahan aritmatika, keliru dalam
18. A. debug pemakaian bahasa pemrograman, mau pun
menggunakan framework tertentu.
Pembahasan:
Secara umum release mode digunakan pada
saat build dengan library tanpa disertai B. Uraian
informasi debug, sehingga ukuran file 1. Inti dari kode tersebut adalah melakukan
aplikasi yang dihasilkan menjadi lebih kecil. tiga hal berikut.
Oleh karena itu, jika ingin menjalankan a. Mengubah tipe data integer ke string
aplikasi ke komputer lain atau menyebarnya dari variabel toneVal ke dalam variabel
melalui internet, sebaiknya menggunakan buffer1
release mode pada saat melakukan build. b. Menyalin data string “beep -l 250 -f “
Selain lebih kecil dalam segi ukuran, release ke variabel buffer2
mode lebih aman dari potensi injeksi kode- c. Menggabungkan data string variabel
kode seperti virus, malware dan lain lain buffer1 ke variabel buffer2
dari orang yang tidak bertanggung jawab. 2. Pengujian aplikasi software adalah proses
19. C. DLL yang dapat direncanakan dan ditentukan
Pembahasan: secara sistematis. Desain test case dapat
dilakukan, strategi dapat ditentukan, dan
File DLL identik dengan file yang
hasil dapat dievaluasi berdasarkan harapan-
mengandung kode-fungsi yang dapat
harapan yang ditentukan sebelumnya.
dipanggil dari kode-executable lain, misalnya
Perekayasa aplikasi s oftware yang
pada aplikasi atau DLL yang berbeda. Jika

32 Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X


mengevaluasi hasil suatu pengujian sering int x;
dihadapkan pada indikasi “simtomatis” for (x = 0; x < 180; x++) {
dari masalah aplikasi software bahwa sin2FdlVal = (sin(x*(3.1412/180)));
manifestasi eksternal dari kesalahan dan toneFdlVal = freq + ((int)(sin2FdlVal * 1000));
penyebab internal kesalahan adakalanya char buffer1[20], buffer2[20];
tidak memiliki hubungan yang jelas satu sprintf(buffer1,”%d”,toneFdlVal);
dengan lainnya. strcpy(buffer2, “beep -l 250 -f ”);
strcat(buffer2, buffer1);
3. Antarmuka pemakai (user interface)
system(buffer2);
dapat menerima informasi dari pengguna printf(“Freq: %d Hz\n”, toneFdlVal);
(user) dan memberikan informasi kepada }
pengguna (user) untuk membantu
mengarahkan alur penelusuran masalah
sampai ditemukan suatu solusi. Karena 7. Pada waktu ukuran komputer masih sebesar
pada dasarnya antarmuka (user interface) kamar, pihak militer Amerika Serikat pada
identik dengan mekanisme komunikasi tahun 1945 menggunakan komputer yang
antara pengguna (user) dengan sistem. bernama Mark 1. Pada suatu saat komputer
Namun yang terpenting dalam membangun tersebut tidak berfungsi dengan semestinya,
user interface adalah kemudahan dalam setelah komputer itu diperiksa ternyata ada
memakai/ menjalankan sistem, interaktif, salah satu bagian perangkat keras terdapat
dan komunikatif. Sedangkan faktor kesulitan serangga yang tersangkut. Setelah serangga
terletak dalam proses mengembangkan/ itu diangkat, komputer tersebut dapat
membangun suatu program tidak terlalu berfungsi dengan baik. Maka sejak saat itu
diperlihatkan. kata bug melekat dengan masalah-masalah
pada komputer.
4. User interface berfungsi menginputkan
p engetahuan bar u ke dalam basis 8. Pada umumnya dalam pemrograman
pengetahuan sistem pakar, menampilkan akan menjumpai istilah debug. Debug
penjelasan sistem dan memberikan panduan identik dengan usaha menemukan dan
pemakaian sistem secara menyeluruh step memperbaiki kesalahan (bug) dari program
by step sehingga user mengerti apa yang yang dibuat. Proses debug pada umumnya
akan dilakukan terhadap suatu sistem. dilakukan oleh pengembang software itu
sendiri. Secara garis besar proses debug
5. Bug identik dengan segala macam cacat
dalam pemrograman adalah mencari
dalam program, misalnya cacatnya tampilan
atau melacak letak baris kode yang
yang sedikit salah, crash, bug security
mengandung kesalahan, baik kesalahan
karena semua user bisa melakukan akses,
fatal maupun ringan. Pada saat melakukan
mau pun out of memory jika jumlah user
build (compile) pada program yang dibuat
terlalu banyak. Beberapa sumber bug di
dalam mode debug, maka program tersebut
antaranya salah design, salah implementasi
telah disisipkan informasi debug yang
(coding), salah konfigurasi, dan sebagainya.
nantinya akan digunakan oleh aplikasi
Namun dari sekian banyak bug, kesalahan
debugger misalnya gdb. Secara otomatis
lebih banyak dijumpai dari sisi implementasi
file aplikasi yang kita build menjadi lebih
(coding) pada aplikasi yang bersangkutan
besar karena disisipi library dan informasi
misalnya kesalahan logika, kesalahan
debug. Mode debug umumnya digunakan
aritmatika, keliru dalam pemakaian bahasa
pada lingkungan development dan lebih
pemrograman, mau pun menggunakan
merujuk pada kepentingan programmer
framework tertentu.
yang bersangkutan. Namun aplikasi yang
6. Supaya nada beep berkesan dinamis, maka dihasilkan akan lebih ramping apabila
beberapa kode perulangan yang disertakan melakukan build menggunakan release
dalam program adalah sebagai berikut.

Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X 33


mode, maka aplikasi tersebut sudah siap salah satu compiler yang sangat terkenal dan
digunakan untuk sehari-hari (production). banyak dipakai programmer C++ baik di
Hal ini dikarenakan source code yang sistem operasi Linux (GCC) atau Windows
digunakan hanya kode program yang ditulis (MinGW). Program C++ memerlukan
saja tanpa disertai informasi debug. compiler tersendiri di dalam GNU GCC
9. Pada dasarnya hasil nada beep cenderung Compiler yaitui g++.
statis sehingga tidak bisa diatur besaran 2. D. stdio.h
frekuensi serta waktunya saat runtime. Pembahasan:
Supaya nadanya berubah secara bertahap Pada bahasa C, fungsi standar input-
dan terdengar halus, dilakukan dengan output menggunakan header stdio.h
menggunakan persamaan fungsi sinus yang sedangkan pada C++ menggunakan header
diperoleh dengan mengubah besaran derajat iostream. Dengan demikian, terdapat sedikit
nilainya ke dalam bentuk radian. Hasil dari perbedaan kode program antara C dan C++
nilai radian tersebut dilampirkan dalam terhadap cara kompilasinya.
fungsi sin(). Selain pengolahan numerik, 3. C. g++ -o nama_file_keluaran kode_
di dalam program ini juga terdapat proses sumber.cpp
penyalinan string, pemanggilan program
Pembahasan:
beep, dan menampilkan hasil frekuensinya
ke layar terminal. Oleh sebab itu, fungsi Te rd ap at s e d i k it p e r b e d a an ko d e
sin() dapat didefinisikan dalam header program antara C dan C++ terhadap
math.h cara kompilasinya. Untuk kompilasi pada
bahasa C digunakan program gcc, sehingga
10. Nada beep dapat dibunyikan melalui
perintah di Command Prompt menjadi
terminal Linux. Apabila program beep
gcc -o nama_file_keluaran kode_sumber.c,
telah terinstal dan telah diaktifkan, bisa
sedangkan untuk bahasa C++ menggunakan
memanggil programnya lewat fungsi
program g++ dengan perintah kompilasi
system(). Kode yang digunakan adalah
g++ -o nama_file_keluaran kode_sumber.
sebagai berikut.
cpp.
#include <stdlib.h> 4. B. cstdlib
int main() { Pembahasan:
system(“beep -f 2000 -l 5000”); Perbedaan lainnya ada pada fungsi keluaran
return 0; yaitu printf() pada bahasa C dan cout pada
}
bahasa C++. Agar program tidak langsung
keluar saat dijalankan, digunakan fungsi
Proyek
getch() atau cin.get(), selain itu fungsi
Kebijaksanaan guru srand() dan rand() pada C++ berasal dari
header cstdlib sehingga header cstdlib perlu
Bab 8 dituliskan.
Paket Installer Aplikasi 5. E. command prompt
Soal Latihan Pembahasan:
A. Pilihan ganda Jika terdapat IDE (Integrated Development
1. A. GCC Environment) seperti Microsoft Visual C++
Pembahasan: atau Code::Blocks tetap harus membuat
Compiler, tools, dan IDE untuk membuat program secara manual lewat command
program C++ di sistem operasi Linux prompt. Hal tersebut bertujuan agar
beberapa diantaranya yang cukup terkenal mengetahui cara-cara dasar kompilasi dan
dan memiliki fitur yang bagus dan berkualitas. mengetahui bagaimana program tersebut
GCC (GNU Compiler Collection) adalah dibuat tanpa dibantu oleh fitur-fitur yang

34 Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X


dimiliki software IDE. Sehingga kemampuan pada tab Advanced lalu klik pada tombol
programming bisa terasah meskipun hanya Environment Variables. Selanjutnya klik
dengan bantuan notepad dan command pada Path pada grup box System variables.
prompt bisa membuat program kecil Setelah menu Path dipilih tekan tombol
sampai besar. Namun jika berkaitan dengan Edit. Selanjutnya salin (copy) alamat folder
efisiensi waktu, pemakaian software IDE “bin” pada program MinGW yang baru saja
sangat membantu seorang programmer. diinstal. Misalnya salin alamat folder C:\
6. A. waktu MinGW\bin ke kotak teks Variable value
Pembahasan: yang ada di jendela Edit System Variable
Kemampuan programming bisa terasah yang telah dibuka sebelumnya. Paste alamat
meskipun hanya dengan bantuan notepad tersebut pada string terakhir.
dan command prompt bisa membuat 10. A. keluaran informasi versi GCC
program kecil sampai besar. Namun Pembahasan:
jika berkaitan dengan efisiensi waktu, Jika terdapat keluaran informasi versi GCC
pemakaian software IDE sangat membantu menandakan bahwa pengaturan setingan
seorang programmer. path instalasi MinGW telah berhasil yang
7. D. system artinya program GCC Compiler bisa
Pembahasan: dipanggil dari path mana saja.
Setelah MinGW di unduh dengan baik,
dilanjutnya dengan melakukan set
path instalasi agar bisa dijalankan dari
Command Prompt dari lokasi path mana
saja. Langkahnya diawali dengan masuk
Control Panel -> System. Kemudian pada
jendela System Properties muncul, pilih
pada tab Advanced lalu klik pada tombol
Environment Variables.
8. B. crash
11. D. notepad++
Pembahasan:
Pembahasan:
Hal yang perlu diperhatikan dalam mengatur
Paket MinGW dapat diunduh pada alamat
set path instalasi adalah jangan menimpa
http://www.mingw.org atau di http://
(rewrite) pada string data yang sudah ada
sourceforge.net/mingw. Sedangkan untuk
karena bisa membuat sistem crash. Selain itu
menggunakan text editor notepad++ yang
dalam setiap akhir string data diberi tanda
dapat diunduh di http://notepad-plus-plus.
titik-koma (;). Misalnya %SystemRoot%\s
org.
ystem32;%SystemRoot%;%SystemRoot%\
System32\Wbem;C:\Program Files\Java\ 12. B. CTRL+F7
jdk1.7.0_02\bin;C:\MinGW\bin; Pembahasan:
9. E. Bin Untuk melakukan kompilasi (compile)
Pembahasan: dilakukan dengan : ketik g++ -o latih25okt
latih25okt.cpp atau menjalankan program
Setelah MinGW diunduh dengan baik,
diawali dengan klik Compile (CTRL+F7),
dilanjutnya dengan melakukan set
dilanjutkan dengan Build (F7), dan diakhiri
path instalasi agar bisa dijalankan dari
dengan eksekusi program (CTRL+F5).
Command Prompt dari lokasi path mana
Selanjutnya dijalankan (Run) dengan cara
saja. Langkahnya diawali dengan masuk
mengetik : latih25okt.exe.
Control Panel -> System. Kemudian pada
jendela System Properties muncul, pilih

Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X 35


13. D. F7 dituliskan.
Pembahasan: 18. C. g++
Untuk melakukan kompilasi (compile) Pembahasan:
dilakukan dengan : ketik g++ -o latih25okt Compiler, Tools, IDE untuk membuat
latih25okt.cpp atau menjalankan program program C++ di sistem operasi Linux
diawali dengan klik Compile (CTRL+F7), b eb erap a diant aranya yang c u kup
dilanjutkan dengan Build (F7), dan diakhiri terkenal dan memiliki fitur yang bagus
dengan eksekusi program (CTRL+F5). dan berkualitas. GCC (GNU Compiler
Selanjutnya dijalankan (Run) dengan cara Collection) adalah salah satu compiler
mengetik : latih25okt.exe. yang sangat terkenal dan banyak dipakai
14. A. C:\MinGW\bin programmer C++ baik di sistem operasi
Pembahasan: Linux(GCC) atau Windows (MinGW).
Dalam setiap akhir string data diberi tanda Program C++ memerlukan compiler
titik-koma (;). Misalnya %SystemRoot%\s tersendiri di dalam GNU GCC Compiler
ystem32;%SystemRoot%;%SystemRoot%\ yaitu g++.
System32\Wbem;C:\Program Files\Java\ 19. A. stdio.h
jdk1.7.0_02\bin;C:\MinGW\bin; Sedangkan Pembahasan:
seting path instalasi MinGW secara standar Pada bahasa C, fungsi standar input-output
berada di path C:\MinGW\bin. Setelah menggunakan header stdio.h sedangkan
semuanya selesai, tekan tombol OK. pada C++ menggunakan header iostream.
15. A. MinGW Dengan demikian, terdapat sedikit perbedaan
Pembahasan: kode program antara C dan C++ terhadap
Pembuatan program C++ pada Windows cara kompilasinya. Untuk kompilasi pada
OS menggunakan fungsi standar C++ bahasa C digunakan program gcc, sehingga
dengan GCC Compiler melalui paket perintah di Command Prompt menjadi
MinGW (Minimalist GNU for Windows). gcc -o nama_file_keluaran kode_sumber.c,
Sebelum menjalankan pengaturan path sedangkan untuk bahasa C++ menggunakan
GCC compiler, aplikasi software MinGW program g++ dengan perintah kompilasi
harus diunduh secara gratis (free) di g++ -o nama_file_keluaran kode_sumber.
link MinGW yang beralamat di https:// cpp.
sourceforge.net/downloads/mingw 20. E. bin
16. C. set path instalasi Pembahasan:
Pembahasan: Selanjutnya salin (copy) alamat folder “bin”
Setelah mingw di unduh dengan baik, maka pada program MinGW yang baru saja
langkah selanjutnya adalah melakukan set diinstal. Misalnya salin alamat folder C:\
path instalasi agar bisa dijalankan dari MinGW\bin ke kotak teks Variable value
Command Prompt dari lokasi path mana yang ada di jendela Edit System Variable
saja. yang telah dibuka sebelumnya.
17. B. cout
Pembahasan: B. Uraian
Perbedaan lainnya ada pada fungsi keluaran 1. Hal yang perlu diperhatikan dalam mengatur
yaitu printf() pada bahasa C dan cout pada set path instalasi adalah jangan menimpa
bahasa C++. Agar program tidak langsung (rewrite) pada string data yang sudah ada
keluar saat dijalankan, digunakan fungsi karena bisa membuat sistem crash. Selain itu
getch() atau cin.get(), selain itu fungsi dalam setiap akhir string data diberi tanda
srand() dan rand() pada C++ berasal dari titik-koma (;). Misalnya %SystemRoot%\s
header cstdlib sehingga header cstdlib perlu ystem32;%SystemRoot%;%SystemRoot%\

36 Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X


System32\Wbem;C:\Program Files\Java\ penulisan kode yang sulit dimengerti oleh
jdk1.7.0_02\bin;C:\MinGW\bin; programmer pemula. Apalagi bahasa C++
2. Bahasa C++ memiliki tingkat kompleksitas memiliki tingkat kompleksitas yang tinggi
yang tinggi dan tergantung dari mesin dan tergantung dari mesin yang digunakan,
yang digunakan, misalnya Application misalnya Application Programming Interface
Programming Interface (API) pada mesin (API) pada mesin (platform) Linux OS dan
(platform) Linux OS dan Windows OS Windows OS yang jelas berbeda termasuk
yang jelas berbeda termasuk menggunakan menggunakan fungsi-fungsi standar C++.
fungsi-fungsi standar C++. Hal ini berarti Hal ini berarti bila membuat program
bila membuat program C++ untuk dipakai C++ untuk dipakai di platform Windows,
di platform Windows, maka program maka program tersebut tidak akan bisa
tersebut tidak akan bisa dikompilasi atau dikompilasi atau dijalankan di platform
dijalankan di platform Linux. Hal ini juga Linux. Hal ini juga berlaku sebaliknya.
berlaku sebaliknya. 5. Te rd ap at s e d i k it p e r b e d a an ko d e
3. Program yang dibuat menggunakan program antara C dan C++ terhadap
bahasa pemrograman C++ terkenal dengan cara kompilasinya. Untuk kompilasi pada
kecepatan dan performa saat program bahasa C digunakan program gcc, sehingga
tersebut dijalankan, meski program C++ perintah di Command Prompt menjadi
memiliki sintaks (tata penulisan kode) yang gcc -o nama_file_keluaran kode_sumber.c,
sulit dimengerti oleh programmer pemula. sedangkan untuk bahasa C++ menggunakan
Apalagi bahasa C++ memiliki tingkat program g++ dengan perintah kompilasi
kompleksitas yang tinggi dan tergantung g++ -o nama_file_keluaran kode_sumber.
dari mesin yang digunakan, misalnya cpp.
Application Programming Interface (API) 6. Program installer dirancang untuk menyalin
pada mesin (platform) Linux OS dan file program aplikasi beserta file-file
Windows OS yang jelas berbeda termasuk pendukungnya ke dalam sistem operasi
menggunakan fungsi-fungsi standar C++. serta menambahkan setting tertentu ke
Hal ini berarti bila membuat program dalam registry windows untuk keperluan
C++ untuk dipakai di platform Windows, jalannya program. Dengan adanya installer,
maka program tersebut tidak akan bisa sebuah paket aplikasi tidak bisa di copy paste
dikompilasi atau dijalankan di platform begitu saja dari satu sistem komputer ke
Linux. Hal ini juga berlaku sebaliknya. komputer lainnya karena pada umumnya
4. Program installer dirancang untuk menyalin file-file pendukung aplikasi diletakkan pada
file program aplikasi beserta file-file lokasi yang berbeda dengan file program
pendukungnya ke dalam sistem operasi. utama.
Installer juga kadang menambahkan setting 7. Jika terdapat IDE (Integrated Development
tertentu ke dalam registry windows untuk Environment) seperti Microsoft Visual C++
keperluan jalannya program. Dengan atau Code::Blocks tetap harus membuat
adanya installer, sebuah paket aplikasi tidak program secara manual lewat command
bisa di copy paste begitu saja dari satu sistem prompt. Hal tersebut bertujuan agar
komputer ke komputer lainnya karena pada mengetahui cara-cara dasar kompilasi dan
umumnya file-file pendukung aplikasi mengetahui bagaimana program tersebut
diletakan pada lokasi yang berbeda dengan dibuat tanpa dibantu oleh fitur-fitur yang
file program utama. Program yang dibuat dimiliki software IDE. Sehingga kemampuan
menggunakan bahasa pemrograman C++ programming bisa terasah meskipun hanya
terkenal dengan kecepatan dan performa dengan bantuan Notepad dan command
saat program tersebut dijalankan, meski prompt bisa membuat program kecil
program C++ memiliki sintaks atau tata sampai besar. Namun jika berkaitan dengan

Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X 37


efisiensi waktu, pemakaian software IDE Untuk menjalankannya, dilakukan dengan
sangat membantu seorang programmer. mengaktifkan Command Prompt, ketik
8. Pembuatan program C++ pada sistem operasi gcc --v. Jika terdapat keluaran informasi
Windows menggunakan fungsi standar versi GCC menandakan bahwa pengaturan
C++ dengan GCC Compiler melalui paket setingan path instalasi MinGW telah
MinGW (Minimalist GNU for Windows). berhasil, yang artinya program GCC
Sebelum menjalankan pengaturan path GCC Compiler bisa dipanggil dari path mana
compiler, aplikasi software MinGW harus saja.
diunduh secara gratis (free) di link MinGW
yang beralamat di https://sourceforge.net/ Proyek
downloads/mingw Kebijaksanaan guru
9. Untuk menjalankan MinGW setelah selesai
melakukan set path dengan mengaktifkan
Command Prompt lalu mengetik perintah
Ulangan Akhir Semester 2
: gcc --v
A. Pilihan ganda
10. Set path instalasi agar bisa dijalankan dari
Command Prompt dari lokasi path mana saja. 1. B. &
Langkah-langkah adalah sebagai berikut. Pembahasan:
a. Masuk Control Panel -> System. Hal-hal yang perlu diperhatikan dalam
b. Pada jendela System Properties pemakaian scanf adalah sebagai berikut.
muncul, pilih tab Advanced, klik a. Scanf memberi pergantian baris
tombol Environment Variables. secara otomatis, artinya tidak perlu
c. Klik pada Path pada grup box System memberi \n untuk berpindah ke baris
variables. berikutnya.
d. Setelah menu Path dipilih tekan tombol b. Scanf memakai penentu format, tetapi
Edit. tidak memerlukan penentu lebar
e. Selanjutnya salin (copy) alamat folder field. Bentuk yang salah misalnya
“bin” pada program MinGW yang baru scanf(“10.2f ”,&gaji);
saja diinstal. Contoh salin alamat folder c. Variabel yang dipakai di dalam scanf
C:\MinGW\bin ke text box Variable harus didahului dengan operator
value pada jendela Edit System Variable alamat (&).
yang dibuka sebelumnya. 2. D. get character and echo
f. Paste alamat tersebut pada string Pembahasan:
terakhir. Hal yang perlu diperhatikan Fungsi getch() merupakan singkatan dari get
adalah jangan menimpa (rewrite) character yang artinya membaca karakter
pada string data yang sudah ada tetapi isian data yang dimasukkan tidak
karena bisa membuat sistem crash. akan ditampilkan di layar. Sedangkan
Selain itu dalam setiap akhir string nama fungsi getche() sebenarnya singkatan
data diberi tanda titik-koma (;). dari get character and echo yang artinya
Misalnya %SystemRoot%\system3 membaca karakter lalu tampilkan di layar.
2;%SystemRoot%;%SystemRoot%\ Jadi setelah mengetikkan sebuah huruf,
System32\Wbem;C:\Program Files\ huruf tersebut akan ditampilkan di layar
Java\jdk1.7.0_02\bin;C:\MinGW\bin; tanpa menekan enter.
g. Ta m b a h k a n p at h C : \ M i n G W \ 3. D. dua titik (..)
bin; diakhir kumpulan string path
Pembahasan:
tersebut.
Guna memasukkan beberapa data secara
h. Setelah semuanya selesai, tekan tombol
bersama-sama dalam satu baris, dimana
OK.

38 Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X


setiap data dipisahkan oleh sebuah karakter. a. Proses 1
Karakter-karakter yang dapat bertindak Variabel indeks diberi nilai 1 (data ke-1)
sebagai pemisah data adalah koma (‘), garis kemudian data indeks dibandingkan
hubung (-), titik dua (:), dan spasi. dengan data ke-2. Jika data indeks lebih
4. D. printf ( ) besar maka nilai indeksnya diganti
Pembahasan: dengan 2 (data ke-2), jika tidak nilai
SCANF ( ) merupakan fungsi yang indeksnya tetap. Kemudian data indeks
dapat digunakan untuk memasukkan dibandingkan lagi dengan data ke-3.
berbagai jenis data. Bentuk scanf ( ) pada Jika datanya lebih besar, maka nilai
dasarnya menyerupai fungsi printf ( ) indeks harus ditukar. Setelah selesai,
yang melibatkan penentu format. Bentuk nilai indeks diperiksa apakah sudah
penulisan : scanf(“string kontrol”, daftar berubah atau belum. Jika nilai indeks
argumen); mengalami perubahan maka data ke-1
ditukar dengan data indeks.
5. E. satu
b. Proses 2
Pembahasan: Variabel indeks diberi nilai 2 (data ke-2)
Langkah-langkah mengurutkan array kemudian data indeks dibandingkan
menggunakan metode Bubble S ort dengan data ke-3. Jika data indeks lebih
dilakukan dengan membandingkan data besar maka nilai indeksnya diganti
ke-1 dengan data ke-2. Jika data ke-1 lebih dengan 3 (data ke-3). Kemudian data
besar, maka kedua data ditukar. Selanjunya indeks dibandingkan lagi dengan data
membandingkan data ke-2 dengan data ke-4. Jika datanya lebih besar, maka
ke-3, jika data ke-2 lebih besar, kedua data Nilai indeks harus ditukar. Setelah
ditukar lagi. Demikian seterusnya sampai selesai, nilai indeks diperiksa sudah
data terakhir, sehingga data kedudukannya berubah atau belum. Jika nilai indeks
akan bergeser-geser dengan sendirinya. Hal mengalami perubahan maka data ke-2
yang perlu dipahami adalah pembandingan ditukar dengan data indeks. Demikian
(pergeseran data) hanya sampai pada data seterusnya hingga proses berlanjut
terakhir dikurangi satu. dimana jumlah elemen array dikurangi
6. A. titik koma satu.
Pembahasan: 8. E. output
Pada dasarnya, prototipe memiliki kemiripan Pembahasan:
dengan fungsi header, hanya keberadaan titik Ketika membuat sebuah fungsi, maka yang
koma pada bagian akhir sebagai pembeda. harus ditulis adalah definisi, dimana semua
Prototipe fungsi umumnya ditempatkan definisi fungsi mempunyai bagian-bagian
pada bagian atas pada program sehingga sebagai berikut.
compiler akan melakukan eksekusi terlebih
No. Bagian Keterangan
dahulu sebelum fungsi tersebut dipanggil.
1. Name Setiap fungsi harus memiliki
7. B. Selection Sort
nama. Secara umum, peraturan
Pembahasan: yang sama berlaku untuk nama
Selection Sort identik dengan metode sorting variabel juga berlaku untuk
nama fungsi.
dimana elemen-elemen diperbandingkan
satu-persatu sampai pada elemen terakhir 2. Parameter Program modul fungsi
list panggilan yang dapat mengirim
dan disusun berdasarkan ketentuan data. Daftar parameter adalah
ketentuan berlaku (terbesar atau terkecil). daftar variabel yang memegang
Langkah-langkah mengurutkan array nilai-nilai yang disampaikan
menggunakan metode Selection Sort adalah ke fungsi.
sebagai berikut.

Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X 39


3. Body Badan fungsi adalah serangkaian sabun lebih ringan dibandingkan berat jenis
pernyataan yang melaksanakan air maka gelembung sabun akan selalu
tu g as mel a ku k an f u ng s i. mengapung. Prinsip pengapungan ini
Pernyataan ini akan ditutupi
juga dipakai pada pengurutan gelembung.
dalam satu set braces.
Elemen yang paling kecil “diapungkan”
4. Return Return type merupakan tipe
type data dari nilai yang dikirim
yang artinya diangkat ke atas (atau ke ujung
kembali, di mana fungsi paling kiri) melalui pertukaran. Proses
dapat mengirim kembali ke pengapungan ini dilakukan sebanyak n kali
nilai program modul yang langkah.
memanggilnya.
12. E. menggunakan keyword void
9. B. dua
Pembahasan:
Pembahasan:
Beberapa keuntungan memakai fungsi
Array dua dimensi identik dengan perluasan diantaranya sebagai berikut.
dari array satu dimensi. Jika array satu a. Menguraikan tugas pemrograman
dimensi hanya terdiri dari sebuah baris rumit menjadi langkah-langkah yang
dan beberapa kolom elemen, maka array lebih sederhana atau kecil.
dua dimensi terdiri dari beberapa baris dan b. Mengurangi duplikasi kode (kode yang
beberapa kolom elemen yang bertipe sama. sama ditulis berulang-ulang) dalam
Hal ini berarti memberikan kesempatan program.
untuk menyimpan data baik dalam bentuk c. Dapat menggunakan kode yang
baris maupun dalam bentuk kolom. Karena ditulis dalam berbagai program yang
menyimpan data ke dalam baris dan kolom, berbeda.
maka dibutuhkan dua buah nilai indeks. d. Memecah program besar menjadi
10. B. larik kecil sehingga dapat dikerjakan oleh
Pembahasan: programmer-programmer atau dipecah
Setiap data disimpan dalam alamat memori menjadi beberapa tahap sehingga
yang berbeda-beda dan disebut dengan mempermudah pengerjaan dalam
elemen array. Setiap elemen mempunyai sebuah proyek
nilai indek sesuai dengan urutannya. e. Menyembunyikan informasi dari
Melalui indek inilah kita dapat mengakses user sehingga mencegah adanya
data-data tersebut. Indeks elemen array perbuatan iseng seperti memodifikasi
dalam bahasa C++ maupun Java dimulai atau mengubah program yang kita
dari 0 dan bukan 1 seperti dalam bahasa buat
Pascal. Dalam beberapa literatur, array f. Meningkatkan kemampuan pelacakan
sering disebut sebagai larik. Array adalah kesalahan, jika terjadi suatu kesalahan
kumpulan dari nilai-nilai data bertipe sama kita tinggal mencari fungsi yang
dalam urutan tertentu yang menggunakan bersangkutan saja dan tak perlu
sebuah nama yang sama. Nilai-nilai data di mencari kesalahan tersebut di seluruh
suatu array disebut dengan elemen-elemen program.
array. Letak urutan dari elemen- elemen 13. B. coid()
array ditunjukkan oleh suatu subscript atau Pembahasan:
indeks. GETCH ( ) dan GETCHE ( ) dipakai
11. D. diangkat ke atas* untuk membaca sebuah karakter dengan
Pembahasan: sifat karakter yang dimasukkan tanpa perlu
Bubble sort diterjemahkan sebagai suatu diakhiri dengan menekan enter. Fungsi
metode pengurutan yang diinspirasi oleh getch() merupakan singkatan dari get
gelembung sabun yang ada di dalam character yang artinya membaca karakter
permukaan air, karena berat jenis gelembung tetapi isian data yang dimasukkan tidak

40 Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X


akan ditampilkan di layar. Sedangkan melihat karakter tersebut secara eksplisit,
nama fungsi getche() sebenarnya singkatan namun compiler mampu mengetahui dan
dari get character and echo yang artinya membutuhkannya.
membaca karakter lalu tampilkan di layar. 17. A. enter
Jadi setelah mengetikkan sebuah huruf, Pembahasan:
huruf tersebut akan ditampilkan di layar GETCH ( ) dan GETCHE ( ) dipakai
tanpa menekan enter. Pada dasarnya, untuk membaca sebuah karakter dengan
program yang menggunakan printf(), sifat karakter yang dimasukkan tanpa perlu
putchar(), scanf() dan puts() mengandung diakhiri dengan menekan enter. Fungsi
baris yang berisi #include. Selain itu, getch() merupakan singkatan dari get
program yang melibatkan getche() atau character yang artinya membaca karakter
getch() mengandung baris yang berisi tetapi isian data yang dimasukkan tidak
#include. akan ditampilkan di layar. Sedangkan
14. A. PRINTF ( ) nama fungsi getche() sebenarnya singkatan
Pembahasan: dari get character and echo yang artinya
PRINTF ( ) merupakan fungsi yang paling membaca karakter lalu tampilkan di layar.
umum digunakan dalam menampilkan data. Jadi setelah mengetikkan sebuah huruf,
Berbagai jenis data dapat ditampilkan ke huruf tersebut akan ditampilkan di layar
layar dengan fungsi ini. Bentuk penulisan tanpa menekan enter. Pada dasarnya,
dari PRINTF ( ) adalah sebagai berikut. program yang menggunakan printf(),
printf(“string kontrol”, argumen1, argumen2, putchar(), scanf() dan puts() mengandung
…); baris yang berisi #include. Selain itu,
Penggunaan string kontrol dapat berupa program yang melibatkan getche() atau
keterangan yang akan ditampilkan pada getch() mengandung baris yang berisi
layar beserta penentu format seperti %d, #include.
%f. Penentu format dipakai untuk memberi 18. C. argumen
tahu kompiler mengenai jenis data yang Pembahasan:
akan ditampilkan. Sedangkan argumen Nilai-nilai yang akan dikirim pada sebuah
ini dapat berupa variabel, konstanta, atau fungsi disebut sebagai argumen. Sebuah
ungkapan. parameter diterjemahkan sebagai suatu
15. B. dikosongkan variabel khusus yang menangani nilai
Pembahasan: yang dilewatkan sebagai argumen menuju
Fungsi panggilan identik dengan pernyataan sebuah fungsi. Seorang programmer
yang melaksanakan fungsi tersebut, pada umumnya sudah akrab dengan cara
sehingga diakhiri dengan titik koma seperti menggunakan argumen dalam pemanggilan
pernyataan C++ lainnya. Pada dasarnya, fungsi. Dengan menggunakan parameter,
fungsi panggilan tidak terdapat dalam seorang programmer dapat merancang
daftar, dan jika program tersebut tidak sendiri fungsi yang dapat menerima data.
berada di dalam fungsi, maka tanda kurung 19. E. [ ]
yang harus dikosongkan. Pembahasan:
16. A. 0 Tanda kurung kurawal [ ] digunakan
Pembahasan: untuk menunjukkan elemen array, dimana
Elemen terakhir dari array umumnya perhitungan elemen array dimulai dari 0
diisi dengan karakter ‘0’. Karakter ini dan bukan dari 1. Untuk mendeklarasikan
akan memberitahu compiler bahwa suatu variabel array, komponen yang
akhir dari elemen array telah dicapai. dibutuhkan adalah tipe data elemen array
Walaupun programmer tidak dapat yang akan disimpan dalam variabel array,

Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X 41


nama array sebagai nama dari variabel array, 23. B. C++ Compiler
serta jumlah elemen array yang dibutuhkan Pembahasan:
dalam array tersebut. Untuk membuat program yang ditulis dalam
20. B. & bahasa C++ memerlukan software Text
Pembahasan: Editor yang digunakan untuk menuliskan
Pass by reference digunakan untuk kode-kode program dan C++ Compiler
melewatkan parameter dengaan referensi yang digunakan untuk menerjemahkan
(pass by reference). Berbeda dengan pass by kode C++ menjadi program (file biner
value yang tidak akan mempengaruhi nilai yang dapat deksekusi). Bagi pemula, lebih
parameter setelah fungsi dijalankan, pass by disarankan menggunakan Dev-C++ karena
reference akan mempengaruhi nilai setelah lebih mudah dalam mempelajarinya.
fungsi dijalankan. Untuk melewatkan Dev-C++ adalah sebuah C/C++ IDE
parameter dengan referensi, tambahkan (Integrated Development Environment)
karakter ampersand (‘&’) di depan nama yang sudah dilengkapi dengan MinGW C/
parameter. C++ Compiler. Sedangkan versi Dev-C++
21. A. 1 November 2012 yang sering digunakan adalah Dev-C++
Pembahasan: 5.3.0.3 yang dirilis pada tanggal 1 November
2012. C++ Compiler yang digunakan dalam
Dev-C++ adalah sebuah C/C++ IDE
Dev-C++ 5.3.0.3 adalah MinGW 4.7.0
(Integrated Development Environment)
karena memiliki dukungan terhadap C++11
yang sudah dilengkapi dengan MinGW C/
(C++0x).
C++ Compiler. Sedangkan versi Dev-C++
yang sering digunakan adalah Dev-C++ 24. B. kode aktual
5.3.0.3 yang dirilis pada tanggal 1 November Pembahasan:
2012. C++ Compiler yang digunakan dalam Pada tahap program C++ Prepocessor,
Dev-C++ 5.3.0.3 adalah MinGW 4.7.0 keberadaan statement #include, #define, dan
karena memiliki dukungan terhadap C++11 lain-lain akan diubah ke dalam bentuk kode
(C++0x). aktual. Sebagai contoh apabila di dalam
22. C. objek kode program terdapat statement #include
Pembahasan: maka seluruh isi dari file “iostream”
akan dimasukan ke dalam kode program.
Pemrograman C merupakan bahasa
Selanjutnya, bentuk kode yang telah
pemrograman prosedural dengan proses
diperluas ini kemudian siap dikirim ke
penyelesaian masalah dilakukan dengan
program C++ Compiler.
membagi-bagi masalah tersebut ke
dalam sub-submasalah yang lebih kecil. 25. A. #include <windows.h>
Sedangkan pemrograman C++ merupakan Pembahasan:
bahasa pemrograman yang memiliki Untuk membuat animasi dalam C++ bisa
sifat pemrograman berorientasi objek. dilakukan dengan perintah Sleep(waktu_
Proses menyelesaikan masalah dalam tunda), dimana penggunaan Sleep
pemrograman C++ adalah menjelaskan perlu sebuah pemanggilan file header
class-class sebagai anak class yang dibuat “#include <windows.h>”. Perintah Sleep
sebelumnya sebagai abstraksi dari objek- ini berarti menunda text/karakter yang
objek fisik. Class tersebut berisi keadaan akan ditampilkan sesuai dengan waktu
objek, anggota-anggotanya dan kemampuan yang ditentukan programmer. Hal yang
dari objeknya. Setelah beberapa Class dibuat perlu diingat adalah penulisan Sleep harus
kemudian masalah dipecahkan dengan menggunakan huruf S besar.
Class tersebut.

42 Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X


26. C. 6 disertakan, misalnya <iostream.h>, <string.
Pembahasan: h> dan sebagainya. Disini file header yang
Kode-kode warna yang bisa digunakan digunakan adalah file header standar. File
dalam C++ adalah sebagai berikut. header harus dipanggil menggunakan
directive #include.
No. Kode warna Jenis warna 29. D. #
1. 0 Black Pembahasan:
2. 1 Blue Prepocessor directive adalah statement
3. 2 Green program yang diawali dengan tanda #. Pada
4. 3 Aqua tahap ini, statement #include, #define, dan
lain-lain akan diubah ke dalam bentuk kode
5. 4 Red
aktual. Sebagai contoh, apabila di dalam
6. 5 Purple
kode program terdapat statement #include
7. 6 Yellow maka seluruh isi dari file “iostream”
8. 7 White akan dimasukan ke dalam kode program.
9. 8 Gray Selanjutnya, bentuk kode yang telah
10. 9 Light Blue diperluas ini kemudian siap dikirim ke
11. A Light Green
program C++ Compiler.
30. E. tujuan awal sistem
12. B Light Aqua
Pembahasan:
13. C Light Red
Rekayasa bentuk user interface
14. D Light Purple
diterjemahkan sebagai suatu proses yang
15. E Light Yellow
komplek dan memerlukan daya kreativitas
16. F Light White yang tinggi, pengalaman, analisis terperinci
27. D. main() dan pemahaman terhadap kebutuhan user.
Pembahasan: User interface dapat diatur menggunakan
Kode yang dibaca dalam C++ adalah kode- pilihan dari pembuat komputer, analisis
kode yang terdapat pada fungsi utama sistem, pemrograman ataupun oleh user
main(). Jika ternyata terdapat pemanggilan yang bersangkutan.
fungsi lain, maka kode program akan 31. E. penulisan kode program
mencari nama fungsi tersebut untuk Pembahasan:
dieksekusi. Setelah mengeksekusi fungsi Beberapa tahapan yang terjadi pada saat
tersebut, maka program akan kembali ke proses pembentukan program diawali dari
dalam fungsi utama dan seterusnya. penulisan kode program hingga menjadi
28. A. lib file biner yang dapat dieksekusi. Dalam
Pembahasan: Windows OS, file program akan berekstensi
Dalam Windows OS umumnya library EXE, sedangkan hasil pembentukan program
dapat disimpan dalam file .lib atau .dll; dalam Linux OS ditandai dengan ekstensi
sedangkan di Linux, biasanya library akan O. Masing-masing tahapan dilakukan oleh
disimpan dalam file .a atau .so. Bahasa program yang berbeda-beda yaitu C++
C++ menyediakan banyak file header untuk Prepocessor, C++ Compiler, Assembler,
berbagai macam keperluan. Perlu diingat dan Linker. Setelah program (file EXE
bahwa sebagian file header dalam C++ atau O) terbentuk, maka file tersebut dapat
standar sudah tidak memiliki ekstensi .h, dieksekusi atau dijalankan (Run) melalui
misalnya <iostream>, <string>, <cstring>, program eksekusi file yang disebut program
cstdlib> dan sebagainya. Dalam C++ Loader.
klasik atau tradisional, ekstensi .h wajib

Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X 43


32. C. .h 35. B. Prepocessor
Pembahasan: Pembahasan:
File header (file dengan ekstensi .h) adalah Pad a p emb entu kan prog ram yang
file yang berisi deklarasi, baik berupa ditulis dalam C++, pada awalnya kode
konstanta, fungsi kelas, namespace, dan program akan diproses oleh program
sebagainya. File header hanya berisi C++ Prepocessor. Program ini akan
deklarasi, sebab jika berupa fungsi maka menggabungkan kode program dengan
yang tertulis dalam file header hanya prepocessor directive yang digunakan di
prototipenya saja. File ini tidak berisi dalam kode. Prepocessor directive adalah
implementasi atau kode-kode program statement program yang diawali dengan
dari fungsi atau kelas yang didefinisikan tanda #. Pada tahap ini, statement #include,
di dalamnya. Bagian implementasi biasanya #define, dan lain-lain akan diubah ke
dalam bentuk kode objek, yaitu file yang dalam bentuk kode aktual. Sebagai contoh,
sudah dikompilasi sebelumnya. apabila di dalam kode program terdapat
33. B. setw( ) statement #include maka seluruh isi dari
Pembahasan: file “iostream” akan dimasukan ke dalam
Ada beberapa kode / perintah yang dapat kode program. Selanjutnya, bentuk kode
digunakan untuk memanipulasi tata letak yang telah diperluas ini kemudian siap
text atau sebuah karakter sebagai berikut. dikirim ke program C++ Compiler.
a. setw(lebar_layar) 36. D. (4), (2), (1), (3)
Digunakan untuk mengatur lebar layar Pembahasan:
sebuah text, untuk perintah setw( ) Program Loader adalah program yang
perlu pemanggilan file header #include digunakan untuk mengeksekusi program
<iomanip.h> yang sudah kita buat. Misalnya dalam
b. gotoxy (jumlah_baris, jumlah_ aplikasi Dev-C++ (program IDE dan C/
kolom) C++ Compiler), ketika menggunakan menu
Perintah yang digunakan untuk Compile maka Dev-C++ akan melakukan
memposisikan text/karakter dalam proses pembentukan program. Di sini
koordinat x dan y, dimana x merupakan yang akan dipanggil adalah program C++
jumlah kolom dan y merupakan Prepocessor, C++ Compiler, Assembler, dan
jumlah baris. Linker. Namun pada saat menggunakan menu
34. A. deklarasi Run, maka program Loader akan dipanggil
Pembahasan: untuk mengeksekusi program yang telah kita
File header (file dengan ekstensi .h) adalah buat sehingga hasil (output) program akan
file yang berisi deklarasi, baik berupa ditampilkan di layar monitor (console).
konstanta, fungsi kelas, namespace, dan 37. E. slider
sebagainya. File header hanya berisi Pembahasan:
deklarasi, sebab jika berupa fungsi maka Beberapa elemen interface dalam kategori
yang tertulis dalam file header hanya Input control diantaranya Tombol, teks field,
prototipenya saja. File ini tidak berisi checkbox, radio button, daftar dropdown,
implementasi atau kode-kode program daftar kotak, toggles, dan date field.
dari fungsi atau kelas yang didefinisikan 38. E. pembuat aplikasi
di dalamnya. Bagian implementasi biasanya Pembahasan:
dalam bentuk kode objek, yaitu file yang Desain interface merupakan hal penting
sudah dikompilasi sebelumnya. dalam sebuah program, sebaik apapun skrip
yang dibuat tapi jika desain interfacenya
kurang begitu nyaman maka kemungkinan

44 Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X


besar program tidak akan laku. Sebuah nilai radian tersebut dilampirkan dalam
desain interface yang baik harus membuat fungsi sin(). Selain pengolahan numerik,
sebuah program nyaman digunakan (user di dalam program ini juga terdapat proses
friendly). Pembuatan desain interface harus penyalinan string, pemanggilan program
dilihat dari berbagai macam aspek, di beep, dan menampilkan hasil frekuensinya
antaranya aspek pengguna dan kemudahan ke layar terminal. Oleh sebab itu, fungsi sin()
dalam memahami sebuah program. Dalam dapat didefinisikan dalam header math.h
C++ karena program yang dihasilkan masih 42. A. printf()
berbasis under DOS, maka bisa membuat Pembahasan:
desain interface dengan memanipulasi Perbedaan lainnya ada pada fungsi keluaran
tata letak, animasi, penggunaan warna, yaitu printf() pada bahasa C dan cout pada
penggunaan kode ASCII dan lain-lain. bahasa C++. Agar program tidak langsung
39. B. statement; keluar saat dijalankan, digunakan fungsi
Pembahasan: getch() atau cin.get(), selain itu fungsi
Percabangan IF-ELSE diterjemahkan sebagai srand() dan rand() pada C++ berasal dari
struktur kontrol percabangan yang memiliki header cstdlib sehingga header cstdlib perlu
sebuah kondisi yang apabila kondisi tersebut dituliskan.
benar maka perintah yang didalamnya 43. D. MinGW
akan dijalankan dan apabila kondisinya Pembahasan:
salah maka ada perintah lainnya yang akan Compiler, Tools, IDE untuk membuat
dijalankan oleh program. Bentuk umum program C++ di sistem operasi Linux
penulisannya adalah sebagai berikut. b eb erap a diant aranya yang c u kup
if(kondisi){ terkenal dan memiliki fitur yang bagus
statement; dan berkualitas. GCC (GNU Compiler
} Collection) adalah salah satu compiler
else{ yang sangat terkenal dan banyak dipakai
statement; programmer C++ baik di sistem operasi
} Linux (GCC) atau Windows (MinGW).
40. C. numerik 44. E. pengembang software
Pembahasan: Pembahasan:
Percabangan switch diterjemahkan sebagai Pada umumnya dalam pemrograman
struktur kontrol percabangan yang memiliki akan menjumpai istilah Debug. Debug
banyak kondisi, tetapi kondisi dalam identik dengan usaha menemukan dan
percabangan switch ini bertipe numerik. memperbaiki kesalahan (bug) dari program
Default berfungsi untuk menjalankan yang dibuat. Proses debug pada umumnya
perintah default/ dasar apabila kondisi tidak dilakukan oleh pengembang software itu
sesuai dengan nilai case yang ada. sendiri. Secara garis besar proses debug
dalam pemrograman adalah mencari atau
41. B. sinus
melacak letak baris kode yang mengandung
Pembahasan: kesalahan, baik kesalahan fatal maupun
Pada dasarnya hasil nada beep cenderung ringan.
statis sehingga tidak bisa diatur besaran 45. B. Dynamic Link Library
frekuensi serta waktunya saat runtime.
Pembahasan:
Supaya nadanya berubah secara bertahap
dan terdengar halus, dilakukan dengan Setelah ditelusuri ternyata aplikasi tersebut
menggunakan persamaan fungsi sinus yang memerlukan file DLL (Dynamic Link
diperoleh dengan mengubah besaran derajat Library) yang dicopy ke dalam satu folder
nilainya ke dalam bentuk radian. Hasil dari dengan aplikasi tersebut dan ternyata bisa

Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X 45


berjalan dengan normal. Namun saat khusus untuk sistem UNIX adalah sebagai
mengcopykan program tersebut ke komputer berikut.
lain, ukuran file beserta librarynya secara
otomatis akan membengkak beberapa kali #include <unistd.h>
lipat. #include <sys/ioctl.h>
46. E. semua user bisa melakukan akses #include <fcntl.h>
Pembahasan: #include <linux/kd.h>
Bug identik dengan segala macam cacat
dalam program, misalnya cacatnya tampilan
Selanjutnya nilai inisialisasi diubah dari
yang sedikit salah, crash, bug security
variabel freq serta menambahkan variabel
karena semua user bisa melakukan akses,
len untuk keperluan delay dalam setiap
mau pun out of memory jika jumlah user
perulangan. Kodenya adalah sebagai
terlalu banyak. Beberapa sumber bug di
berikut.
antaranya salah design, salah implementasi
(coding), salah konfigurasi, dan sebagainya.
Namun dari sekian banyak bug, kesalahan int freq = 2000;
lebih banyak dijumpai dari sisi implementasi int len = 10000;
(coding) pada aplikasi yang bersangkutan 49. C. teks
misalnya kesalahan logika, kesalahan Pembahasan:
aritmatika, keliru dalam pemakaian bahasa CLI (antarmuka baris perintah) identik
pemrograman, mau pun menggunakan dengan suatu bentuk penggunaan komputer
framework tertentu. berbasis teks, dimana pengguna komputer
47. A. debugging memberikan perintah (command/input)
Pembahasan: kepada komputer melalui pengetikan
Pada dasarnya, debugging bisa dianggap sejumlah baris perintah untuk kemudian
sebagai suatu proses menghilangkan bug diolah (process) agar menjadi sebuah
dari suatu program. Debugging terjadi keluaran (output). CLI sebagai tipe
sebagai akibat dari pengujian yang berhasil. antarmuka dimana pengguna berinteraksi
Jika test case mengungkap kesalahan, maka dengan sistem operasi melalui text-terminal
proses yang menghasilkan penghilangan dengan cara mengetikkan baris-baris
kesalahan bisa dianggap sebagai debugging. tertentu.
Pengujian aplikasi software adalah proses 50. E. library
yang dapat direncanakan dan ditentukan Pembahasan:
secara sistematis. GUI identik dengan tipe antarmuka
48. D. native yang digunakan oleh pengguna untuk
Pembahasan: berinteraksi dengan sistem operasi melalui
Karena menggunakan fungsi-fungsi khusus gambar-gambar grafik, ikon, menu,
sistem UNIX sehingga tidak portabel dan dan menggunakan perangkat penunjuk
terkesan low-level yang berdampak pada (pointing device) seperti mouse atau track
kesulitan dimengerti user, karena adanya ball. Elemen-elemen utama dari GUI bisa
fungsi-fungsi native yang ada pada sistem diringkas dalam konsep WIMP (Window,
operasi Linux. Maka perlu dilakukan Icon, Menu, and Pointing device).
modifikasi agar tidak terjadi ketergantungan 51. A. gcc -Wall -o file_program file_
pada program lain dan memiliki delay yang program.c -lm
cukup dengan tujuan hasil lebih maksimal Pembahasan:
dan nada yang dihasilkan lebih bagus Guna melakukan kompilasi program
dan halus. Penambahan deklarasi header alarm menggunakan program GCC

46 Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X


(GNU Compiler Collection) dengan kode menyesuaikan dengan Windows OS yang
perintahnya sebagai berikut. sudah punya DLL sama dengan fungsi
progam tersebut. misalnya mayoritas
gcc -Wall -o alarm alarm.c -lm program perlu menciptakan antarmuka-
grafis (graphical interface) yang muncul di
layar.
Sebelum menjalankan program alarm,
user harus login sebagai root. Hal ini 54. A. simtomatis
dikarenakan pada saat melakukan akses Pembahasan:
file masih berada di lokasi /dev/console. Pengujian aplikasi software adalah proses
Caranya sebagai berikut. yang dapat direncanakan dan ditentukan
secara sistematis. Desain test case dapat
su root dilakukan, strategi dapat ditentukan, dan
hasil dapat dievaluasi berdasarkan tujuan
./alarm
awal yang telah ditentukan sebelumnya.
Perekayasa aplikasi s oftware yang
Hasil akhir dari program alarm tersebut mengevaluasi hasil suatu pengujian sering
adalah berupa nada rendah ke nada dihadapkan pada indikasi “simtomatis”
tinggi secara bertahap kemudian turun dari masalah aplikasi software bahwa
lagi nadanya yang berlangsung beberapa manifestasi eksternal dari kesalahan dan
kali (perubahan nada naik-turun secara penyebab internal kesalahan adakalanya
berulang) selama beberapa detik kemudian tidak memiliki hubungan yang jelas satu
off sendiri. Namun jika ingin menghentikan dengan lainnya.
programnya pada saat program sedang 55. B. sinVal = (sin(x*(3.1412/180)));
berjalan dengan cara menekan tombol
toneVal = freq + ((int)(sinVal * 1000));
CTRL+C pada terminalnya, maka nada
akan berhenti. Pembahasan:
52. B. iostream Supaya nada berubah secara dinamis,
maka kode berikut perlu disertakan dalam
Pembahasan:
perulangan. Kode programnya sebagai
Pada bahasa C, fungsi standar input-output berikut.
menggunakan header stdio.h sedangkan
int x;
pada C++ menggunakan header iostream.
Dengan demikian, terdapat sedikit perbedaan for (x = 0; x < 180; x++) {
kode program antara C dan C++ terhadap sinVal = (sin(x*(3.1412/180)));
cara kompilasinya. Untuk kompilasi pada toneVal = freq + ((int)(sinVal * 1000));
bahasa C digunakan program gcc, sehingga char buffer1[20], buffer2[20];
perintah di Command Prompt menjadi sprintf(buffer1,”%d”,toneVal);
gcc -o nama_file_keluaran kode_sumber.c, strcpy(buffer2, “beep -l 250 -f ”);
sedangkan untuk bahasa C++ menggunakan strcat(buffer2, buffer1);
program g++ dengan perintah kompilasi
system(buffer2);
g++ -o nama_file_keluaran kode_sumber.
cpp. printf(“Freq: %d Hz\n”, toneVal);
53. D. program }
Pembahasan: Inti dari pengolahan nada di atas adalah
dari statemen berikut.
Eksistensi dari file DLL yang paling
utama ditujukan untuk menyederhanakan
suatu (program). Karena progam tersebut sinVal = (sin(x*(3.1412/180)));
tidak perlu mempunyai kode progam toneVal = freq + ((int)(sinVal * 1000));
untuk fungsi umumnya, sehingga tinggal

Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X 47


56. D. command prompt 58. A. math.h
Pembahasan: Pembahasan:
Jika terdapat IDE (Integrated Development Pada dasarnya hasil nada beep cenderung
Environment) seperti Microsoft Visual C++ statis sehingga tidak bisa diatur besaran
atau Code::Blocks tetap harus membuat frekuensi serta waktunya saat runtime.
program secara manual lewat command Supaya nadanya berubah secara bertahap
prompt. Hal tersebut bertujuan agar dan terdengar halus, dilakukan dengan
mengetahui cara-cara dasar kompilasi dan menggunakan persamaan fungsi sinus yang
mengetahui bagaimana program tersebut diperoleh dengan mengubah besaran derajat
dibuat tanpa dibantu oleh fitur-fitur yang nilainya ke dalam bentuk radian. Hasil dari
dimiliki software IDE. Sehingga kemampuan nilai radian tersebut dilampirkan dalam
programming bisa terasah meskipun hanya fungsi sin(). Selain pengolahan numerik,
dengan bantuan Notepad dan command di dalam program ini juga terdapat proses
prompt bisa membuat program kecil penyalinan string, pemanggilan program
sampai besar. Namun jika berkaitan dengan beep, dan menampilkan hasil frekuensinya
efisiensi waktu, pemakaian software IDE ke layar terminal. Oleh sebab itu, fungsi
sangat membantu seorang programmer. sin() dapat didefinisikan dalam header
57. C. sumber error yang tidak jelas math.h
Pembahasan: 59. A. kesalahan
Beberapa bentuk-bentuk bug yang umum Pembahasan:
dijumpai di antaranya sebagai berikut. Pada umumnya dalam pemrograman
a. Lalai dalam menginisialisasi atau akan menjumpai istilah Debug. Debug
mereset variabel. Pada umumnya identik dengan usaha menemukan dan
program berjalan dengan benar pada memperbaiki kesalahan (bug) dari program
saat pertama kali digunakan, tetapi yang dibuat. Proses debug pada umumnya
ketika diulangi kembali ternyata dilakukan oleh pengembang software itu
terdapat kesalahan hasilnya dan sendiri. Secara garis besar proses debug
benar kembali ketika aplikasi tersebut dalam pemrograman adalah mencari atau
direstart. melacak letak baris kode yang mengandung
b. Menggunakan try catch secara sepihak kesalahan, baik kesalahan fatal maupun
dengan membungkus seluruh fungsi ringan.
dalam satu try except yang berdampak 60. E. root
pada tidak diketahui secara jelas Pembahasan:
sumber error yang sesungguhnya. Sebelum menjalankan program alarm,
c. Bentuk bug yang spesifik terhadap user harus login sebagai root. Hal ini
bahasa adalah bug manajemen memori dikarenakan pada saat melakukan akses
di C++, dimana kesalahan mengakses file masih berada di lokasi /dev/console.
memori di C++ mudah terjadi dan
umumnya menyebabkan crash.

48 Kunci Jawaban Pemrograman Dasar SMK/MAK Kelas X

Anda mungkin juga menyukai