Anda di halaman 1dari 23

anMT

Ea
@
BP
pena aa

n
PS ULDUN
O ET
fo
Nasional

SE
PELATIHAN ONLINE
ALC:INDONESIA
ROAD,TO.KSN:2022
po.alcindonesia.co.id

PAKET 2
KOMPUTER SMA

Soal

@ www.alcindonesia.co.id alc indonesia (9 0822 2327


2430 1770 (Admin)
0852 3373 (Mas Aan)
PAKET 2 - MATERI DAN SOAL KOMPUTER

Catatan Tutor:
Materi dalam Pelatihan Online ini disusun bergantian antara Matematika dan Coding/
Pemrograman, karena memang materi uji KSNK meliputi keduanya, jadi materi pada minggu
ganjil (1,3,5,7…) adalah Matematika, sedangkan materi pada minggu genap (2,4,6,8,…) adalah
Coding/ Pemrograman

Modul 1: Introduction to Programming

Materi dalam bagian ini memperkenalkan apa itu Programming (Coding). Walaupun materi di
modul ini bersifat tertulis/ teoritis, tetapi sangat diharapkan untuk aplikasi yang disebutkan
dalam modul ini untuk dipasang pada sistem komputer yang dipakai (PC/ Android) atau dicoba
versi web-nya jika tidak memungkinkan untuk melakukan instalasi.

1) Algoritma
Algoritma adalah langkah-langkah sistematis dan terstruktur untuk mendapatkan solusi. Contoh:
diberikan angka 18 25 14 34 27, lalu ditanya manakah angka yang terbesar, tentu saja
jawabnya 34, kebanyakan orang bisa cepat menjawab 34 dengan langsung memandang
sekumpulan angka tersebut, tanpa menyadari proses sistematis/ terstruktur yang terjadi di
dalam otak.
Algoritma mencoba untuk menuangkan proses mencari angka terbesar ini secara sistematis
dan terstruktur, misalnya menjadi seperti ini: ambil angka pertama asumsikan sebagai yang
terbesar, lalu bandingkan asumsi terbesar dengan angka kedua, jika angka kedua lebih besar
maka gantilah asumsi, lalu ulangi proses ini dengan angka ketiga, dan seterusnya sampai data
habis, maka setelah pengecekan selesai dilakukan, asumsi terbesar akan otomatis berisikan
data terbesar.

0822 2430 1770 ( admin )

www.alcindonesia.co.id instagram : alc_indonesia 0852 2327 3373 ( mas aan )


Hal yang menarik adalah Algoritma untuk memecahkan suatu permasalahan, tidak hanya ada
satu saja. Contoh untuk problem yang sama tersebut: ambil asumsi bahwa angka terakhir
adalah angka terbesar, lalu untuk setiap data di depannya ulangi proses berikut, periksa apakah
data lebih besar daripada asumsi, jika ya, gantilah asumsi dengan data yang sedang diperiksa.

2) Apa Itu Coding/ Programming


Coding/ Programming adalah proses mengubah Algoritma menjadi Code/ Program memakai
bahasa yang dimengerti oleh mesin komputer. Untuk menghasilkan code ini, dibutuhkan
bantuan Editor (aplikasi untuk mengetikkan code/ program) dan Penterjemah-nya (yaitu suatu
Compiler/ Interpreter dari bahasa pemrograman komputer). Jadi sebelum menghasilkan code,
seorang Coder/ Programmer harus sudah terlebih dahulu memiliki konsep Algoritma-nya, lalu
diketik pada Editor, dan kemudian Aplikasi Penterjemah (Compiler/ Interpreter)
menterjemahkannya menjadi instruksi mesin komputer.

3) IDE Kontes/ Lomba Pemrograman (Olimpiade Komputer)


Untuk kebutuhan Coding/ Programming dalam Kontes/ Lomba Pemrograman, terutama pada
Olimpiade Komputer (OSN/ KSN) saat ini, yang umum dipakai adalah bahasa C++. Editor paling
sederhana bisa memakai Notepad (sangat tidak recommended), atau yang agak lebih baik
Notepad++. Untuk Compiler C++ tersedia dua pilihan gratis, yaitu CL buatan Microsoft dan GCC/
MinGW, yang aslinya merupakan Compiler C/C++ Linux tapi sudah dikonversi ke Windows.
Tapi yang lebih disarankan adalah memakai kombinasi Editor dan Compiler dalam satu paket
yang disebut IDE (Integrated Development Environment). Untuk sistem Windows, IDE gratis
yang disarankan adalah VSCode - Visual Studio Code (code.visualstudio.com), CodeBlocks
(www.codeblocks.org) atau DevC++ (tersedia lewat SourceForge, FileHippo atau Softonic).
VSCode agak ribet untuk diinstalasi, karena Editor dan Compiler harus di-download secara
terpisah dan diinstalasi sendiri-sendiri, dengan melibatkan beberapa instalasi Extension dan
setting, tapi keuntungannya, Editor VSCode sangat responsif (cepat) dan bahasa yang bisa
dipakai tidak hanya terbatas C++. Sedangkan CodeBlocks dan DevC++ mudah untuk diinstalasi
karena download sudah tersedia dalam 1 paket, sehingga tidak memerlukan banyak kesulitan
setting. Kelemahannya adalah CodeBlocks agak kurang responsif, sedangkan DevC++ walaupun
responsif tetapi agak kuno (last release 2015 dengan versi awal dari C++11)

0822 2430 1770 ( admin )

www.alcindonesia.co.id instagram : alc_indonesia 0852 2327 3373 ( mas aan )


Bagi yang tidak memiliki akses PC/ laptop bisa memakai IDE versi Android yaitu CppDroid atau
Cxxdroid (keduanya adalah Interpreter) dari Google Play Store, atau IDE versi Web misalnya di
OnlineGDB.com atau IDEone.com. Dan pengguna MacBook (MacOS) bisa memakai Visual Studio
Code atau emulator Android seperti BlueStack untuk menjalankan CppDroid.

4) Compiler dan Interpreter


Compiler dan Interpreter fungsi utamanya sama yaitu mengecek apakah code program sudah
sesuai dengan sintaks (tata bahasa) pemrograman, dan jika sudah sesuai, maka di sinilah
bedanya, Compiler akan mengubah bahasa pemrograman tingkat tinggi (seperti C++) menjadi
bahasa mesin komputer (binary language), dan barulah file application dalam bentuk bahasa
mesin komputer ini yang bisa dijalankan (Run). Tetapi Interpreter sesudah selesai mengecek,
maka akan langsung menjalankan perintah dalam code tersebut, jadi Interpreter tidak akan
menghasilkan file lain, tetapi Compiler akan menghasilkan suatu file lain, yaitu file Application
(Executable/ EXE).
Dari sisi kerahasiaan isi code, maka seorang Coder akan lebih memilih Compiler, karena yang
akan diserahkan kepada client-nya, cukup file EXE nya saja, sedangkan file asli C++ nya (file CPP)
bisa disimpan sendiri, tetapi dari sisi fleksibilitas, Interpreter lebih mudah untuk diperbaiki,
karena file asli code bahasanya bisa langsung di-edit, tanpa harus repot untuk Compile dan
mendistribusikan file EXE baru (yang rentan untuk diserang oleh Virus/ Malware juga).
Sedangkan dari sisi kecepatan, karena file EXE hasil Compiler langsung merupakan bahasa
mesin komputer, jelas lebih efisien dan cepat dibandingkan hasil eksekusi Interpreter yang
sambil mengecek, mengartikan dan mengerjakan perintah code line-by-line.
Untuk kebutuhan Kontes Pemrograman, selain C++ (yang biasanya merupakan Compiler),
peserta juga bisa memakai bahasa Java (biasanya Compiler juga) dengan IDE Eclipse atau
NetBeans (tetapi agak berat). Recommended IDE Java yang ringan dan mudah dipakai adalah
BlueJ (www.bluej.org). Dengan Compiler bisa dipilih antara JAVA SE JDK atau OpenJDK.
Sedangkan di Android bisa memakai Java Compiler (bagus untuk belajar buat pemula) atau
Jvdroid (yang jauh lebih advanced). Selain C++ dan Java, peserta juga diizinkan memakai bahasa
Python (yang merupakan Interpreter), bisa di-download dari www.python.org untuk PC,
sedangkan untuk Android bisa dipakai Pydroid 3 atau QPython 3L.
Perlu diperhatikan, bahwa Compiler atau Interpreter juga memiliki versi (dampaknya ada
perbedaan fitur). Untuk C++ versi yang paling umum tersedia saat ini adalah C++11, C++14 dan
C++17. Sedangkan untuk Java, saat ini umum tersedia Java 8 hingga Java 11. Dan Python
biasanya memakai versi 3.5 atau 3.6.
0822 2430 1770 ( admin )

www.alcindonesia.co.id instagram : alc_indonesia 0852 2327 3373 ( mas aan )


5) Header Library C++
Setiap program bahasa C++ selalu diawali dengan deklarasi nama header library yang akan
dipakai, untuk C++ yang standar, biasanya library yang pasti dipakai adalah yang terkait dengan
input-output yaitu #include<iostream> dan nantinya apabila dibutuhkan dukungan library
lain, misalnya fungsi Matematika seperti fungsi absolute atau fungsi akar kuadrat, maka bisa
ditambahkan #include<cmath>, sedangkan bila diperlukan pengaturan input-output yang
agak lebih kompleks (misalnya pengaturan digit angka koma atau pencetakan dengan lebar
data tertentu), dipakai tambahan library #include<iomanip>.
Tapi untuk kebutuhan umum dalam Olimpiade Komputer, sudah disediakan 1 library gabungan
(yang bukan bagian dari standar C++) yang berisikan seluruh dukungan fungsi dan nilai-nilai
konstan yang terkait dengan Kontes Pemrograman, dan itu yang disarankan dipakai oleh
peserta Lomba/ Kontes Programming, yaitu library #include<bits/stdc++.h>, jadi
disarankan gunakan saja library ini untuk kebutuhan Lomba/ Olimpiade. Sayangnya library
gabungan ini tidak didukung oleh CL (bawaan VS Code) atau Cxxdroid, jadi pengguna CL atau
Cxxdroid hanya bisa memakai library standar C++ saja.

6) Namespace
Namespace atau ruang lingkup penamaan adalah ruang lingkup yang diberikan untuk setiap
fungsi/deklarasi dalam C++. Secara standar, seluruh fungsi bawaan C++ ada pada namespace
std, jadi contoh cara pemanggilan fungsi yang benar seharusnya adalah std::cout. Tetapi
karena ini agak terlalu panjang dan ribet untuk mengetikkan std:: di depan setiap fungsi,
maka peserta Lomba/ Kontes Programming dapat menyatakan bahwa semua fungsi yang akan
dipakainya berasal dari namespace std memakai perintah using namespace std; (perhatikan
titik komanya mesti ada). Sehingga fungsi dapat dipanggil hanya dengan namanya saja, contoh
cout.

0822 2430 1770 ( admin )

www.alcindonesia.co.id instagram : alc_indonesia 0852 2327 3373 ( mas aan )


7) main() Function
Fungsi dengan nama main(), merupakan fungsi utama yang merupakan dasar dari code C++
dan pasti akan dipanggil/ dijalankan oleh Sistem Operasi. Fungsi main() ini dibuat dengan
memakai jenis data integer (int) dan sebelum akhir fungsi harus diakhiri dengan perintah
return 0; (artinya code program tidak menemui masalah, jadi error code-nya 0, nantinya jika
program menemui masalah, nomor error code seringkali bisa membantu melacak letak
kesalahannya). Untuk menandakan isi dari fungsi, maka dipergunakan operator begin block
(tanda { kurung kurawal buka) dan end block (tanda } kurung kurawal tutup). Sehingga secara
lengkap, bentuk fungsi main() adalah seperti di bawah ini:
int main() {
// isi Code di bagian ini
return 0;
}
Perhatikan tanda double slash // dipakai untuk memberikan komentar, yaitu keterangan atau
penjelasan untuk membantu Coder/ Programmer lain membaca Code tersebut.

8) Template Program Kosong


Jadi dengan menggabungkan semua informasi di atas, template (pola) dari suatu program
kosong C++ yang lengkap untuk kebutuhan Olimpiade Komputer, adalah sebagai berikut:
#include<bits/stdc++.h>
using namespace std;
int main() {
return 0;
}
Perhatikan huruf besar kecilnya (huruf kapital), karena C++ sangat sensitif masalah huruf besar
kecil (jadi Using dan using adalah hal berbeda), sehingga kesalahan gara-gara huruf ini pasti
akan menyebabkan kesalahan tata bahasa (error compile). Demikian juga penggunaan
operator ; sebagai penanda akhir perintah, tidak semua perintah C++ perlu memakai tanda ini,
sehingga tempatkan operator ; di lokasi yang tepat.

0822 2430 1770 ( admin )

www.alcindonesia.co.id instagram : alc_indonesia 0852 2327 3373 ( mas aan )


9) Hello World
Merupakan sebuah kebiasaan dalam dunia Programming/ Coding, bahwa program pertama
yang dibuat oleh seorang Programmer/ Coder adalah program Hello World. Maksudnya adalah
program ini hanya dipergunakan untuk mencetak kata Hello World, untuk menandakan bahwa
sistem IDE yang diinstalasi di dalam PC/ smartphone sudah bisa berfungsi semuanya dengan
baik. Berangkat dari template di atas, cukup ditambahkan 1 buah perintah untuk mencetak ke
layar (perintah Console Out disingkat cout), diikuti dengan datanya yaitu kalimat (string) Hello
World dan tanda Enter (dalam C++ untuk menyimbolkan Enter/ new line dipakai kode khusus
yaitu endl atau karakter '\n', lebih lanjut tentang karakter khusus akan dibahas di Modul 2).
#include<bits/stdc++.h>
using namespace std;
int main() {
cout << "Hello World" << endl;
return 0;
}

Modul 2: Variabel, Tipe Data dan I/O

Materi dalam bagian ini memperkenalkan konsep Variabel dalam memory Komputer, tipe data
umum/ dasar dari Komputer dan prinsip Input dan Output dalam program Komputer C++.

1) Variabel
Variabel adalah suatu lokasi di dalam memory Komputer yang dapat dipergunakan untuk
menyimpan suatu nilai (data). Variabel aslinya dialamati menggunakan alamat berbentuk angka
(yang biasanya dalam format Hexadesimal), yang sering/ pernah nge-cheat game (terutama
game PC), pasti pernah bermain-main dengan alamat-alamat memory ini.
Tetapi agar memudahkan Coder/ Programmer, maka Variabel biasanya diberikan nama. Tentu
saja agar Komputer tidak salah mengenali namanya, maka nama Variabel tidak boleh sama
dengan perintah atau kata kunci Program Komputer dan tidak boleh mengandung karakter/
simbol macam-macam (karena dalam Code Komputer, ada simbol-simbol yang memiliki makna
khusus), satu-satunya simbol yang diizinkan dalam penamaan Variabel adalah simbol garis
bawah/ underscore (_), misalnya Jumlah_Siswa.

0822 2430 1770 ( admin )

www.alcindonesia.co.id instagram : alc_indonesia 0852 2327 3373 ( mas aan )


2) Tipe Data
Di dalam memory Komputer, sebenarnya isinya semua adalah angka (dalam bentuk Biner/
Hexadesimal), tetapi untuk menginterpretasikan (mengartikan) angka-angka tersebut,
diperkenalkan Tipe-Tipe dari Data. Secara umum Tipe Data Komputer adalah Bilangan Bulat
(integer), Bilangan Desimal/ Real (floating point), Karakter, Boolean, Pointer dan String.

3) Tipe Data Integer


Tipe Integer dibagi 4 macam berdasarkan ukurannya (1, 2, 4 dan 8 byte) dan 2 kelompok
berdasarkan tanda-nya (signed dan unsigned), dengan signed sebagai default, jadi apabila tidak
dinyatakan maka akan dianggap sebagai signed. Berikut adalah nama masing-masing sub tipe
dari integer, bersama dengan batasan nilai jangkauannya:
Size signed unsigned
1 byte char (-128 s/d 127) unsigned char (0 s/d 255)
2 byte short int (-32.768 s/d 32.767) unsigned short int (0 s/d 65.535)
4 byte int (-2.147.483.648 s/d 2.147.483.647) unsigned int (0 s/d 4.294.967.295)
atau sekitar 2 milyard
8 byte long long atau long int unsigned long long atau unsigned
(penggunaan long int tidak dianjurkan long int
karena ada versi C++ yang mengartikan long int (jadi untuk pasti 8 byte, gunakan
sebagai 4 byte) long long)
(-9.223.372.036.854.775.808 s/d (0 s/d 18.446.744.073.709.551.615)
9.223.372.036.854.775.807)
atau mudahnya 9 x 1018 atau 9 juta trilyun

Mengisikan angka yang lebih besar dari batas maksimum kemampuan suatu sub tipe akan
menyebabkan positive overflow, yaitu nilai akan kembali naik dari batas bawahnya. Sedangkan
mengisikan angka yang lebih kecil dari batas minimum akan menyebabkan negative overflow,
yaitu nilai akan turun dari nilai batas atasnya. Contoh: mengisikan nilai 130 ke dalam tipe signed
char akan memberikan nilai -126, mengisikan nilai 65.540 ke dalam unsigned short int akan
memberikan nilai 4, dan mengisikan nilai -32.770 ke dalam short int akan memberikan nilai
32.766.

0822 2430 1770 ( admin )

www.alcindonesia.co.id instagram : alc_indonesia 0852 2327 3373 ( mas aan )


4) Tipe Data Desimal/ Real
Tipe Real atau Desimal bisa menyimpan nilai yang sangat besar atau sangat kecil, tetapi dengan
ketelitian jumlah digit yang terbatas, karena penyimpanan Real memakai konsep pecahan biner
(1/2)n, contoh bilangan 3/4 disimpan dengan cara (1/2)1 + (1/2)2, maka ketelitian tipe ini menjadi
variatif (karena tidak semua pecahan dapat disimpan dengan mudah memakai sistem (1/2)n),
contohnya 0,4 ≈ 0,25 + 0,125 + 0,015625 + 0,0078125 = 0,3984375, oleh karena itu Tipe Real/
Desimal ini di Komputer disebut dengan istilah floating point (maksudnya titik desimalnya bisa
berbeda akurasi digitnya). Berikut adalah masing-masing sub tipe Real dalam C++:
Size Nama Tipe Ketelitian Digit Nilai Pangkat
4 byte float 6-9 digit, biasanya 7 digit 10-38 s/d 1037
8 byte double 15-18 digit, biasanya 16 digit 10-307 s/d 10306
16 byte long double 33-36 digit, biasanya 34 digit 10-4932 s/d 104931
(12 byte) (tidak tersedia dalam CL) (18-21 digit, biasanya 19 digit)
(versi GCC/MinGW adalah 16 byte)
Mengisikan angka yang lebih besar dari nilai pangkat yang didukung akan menyebabkan
floating point overflow, contoh mengisikan angka 2e40 ke dalam suatu variabel bertipe float.
Sedangkan mengisikan angka yang lebih kecil dari nilai pangkat negatif yang terkecil akan
menyebabkan floating point underflow, contoh mengisikan angka 2e-310 ke dalam variabel
bertipe double.

5) Tipe Data Pointer/ Iterator


Tipe Pointer/ Iterator merupakan penunjuk ke data yang lain, jadi Pointer/ Iterator bukanlah
datanya secara langsung, tetapi Pointer/ Iterator berisikan alamat memory dari data.
Penggunaan Pointer not recommended dalam C++. Sedangkan Iterator nantinya akan berperan
penting saat Coder/ Programmer belajar Container (Struktur Data Lanjut dari STL C++).

6) Tipe Data Boolean


Tipe Boolean melambangkan nilai logika TRUE atau FALSE saja, biasanya dipakai untuk
menyimpan suatu status/ kondisi atau untuk mengecek suatu status/ kondisi dalam
Percabangan atau Perulangan. Dalam C++ tipe Boolean diberi nama “bool”, sedangkan nilainya
yaitu “true” atau “false” (tanpa tanda petik, dan perhatikan semua memakai huruf non kapital).

0822 2430 1770 ( admin )

www.alcindonesia.co.id instagram : alc_indonesia 0852 2327 3373 ( mas aan )


7) Tipe Data Karakter
Tipe Karakter dipergunakan untuk menyimpan hanya sebuah huruf, simbol, tanda baca dan
simbol angka. Contoh simbol angka ‘1’ adalah berbeda-beda sesuai bahasa/ budayanya, contoh
dalam Mandarin ‘一’, dalam Arabic ‘١’, dan dalam Korean ‘일’ (tentu saja tanpa tanda petik). Tetapi
di dalam memory Komputer, masing-masing simbol dari angka 1 tersebut disimpan dengan
kode nilai angka yang berbeda, ‘1’ menurut standard ASCII disimpan sebagai angka bernilai 49
(Hexadesimal 31), ‘一’ menurut standard Unicode adalah angka Hexadesimal 4E00, ‘١’ menurut
standard Unicode adalah angka Hexadesimal 0661, dan ‘일’ menurut standard Unicode adalah
angka Hexadesimal C77C.
Standard untuk konversi karakter ke nilai angkanya, yang paling awal adalah ASCII (untuk tabel
lengkap seluruh nilai ASCII bisa dicari di Internet), isinya merupakan karakter yang paling umum
di Komputer, seperti huruf ‘A’ sampai ‘Z’, ‘a’ sampai ‘z’, ‘0’ sampai ‘9’, dan tanda-tanda baca umum.
Lalu dilanjutkan dengan standard Extended ASCII yang mulai mencakup huruf-huruf Eropa,
seperti ‘ã’ (huruf a dengan garis tilde), kemudian dilanjutkan dengan yang terbaru adalah
standard Unicode yang mencakup simbol-simbol dari huruf Asia (Arab, India, Mandarin, Korea),
Native Amerika dan Afrika (termasuk huruf Sunda, Jawa dan Bali dari Indonesia)
Dalam C++, ada beberapa karakter yang harus dituliskan dengan cara khusus (dikenal dengan
nama Escape Sequence characters), karena memang karakter-karakter ini memiliki kegunaan
khusus, sehingga perlu untuk dibedakan penggunaannya sebagai karakter khusus atau data
karakter biasa. Berikut adalah daftarnya:
 \\ melambangkan sebuah karakter \
 \' melambangkan karakter petik satu
 \" melambangkan karakter petik dua
 \? melambangkan karakter tanda tanya
 \b melambangkan karakter backspace
 \n melambangkan karakter newline (Enter) atau endl
 \t melambangkan karakter Tab
Dalam C++ terdapat 5 jenis spasi (white space characters) untuk pemisah antar data, yaitu:
 spasi yang biasa (space bar)
 spasi Enter (\n atau endl)
 spasi Tab (\t)
 spasi character 0 (#0), ASCII bernilai 0, dipergunakan juga sebagai karakter penutup char
array dari C (string cara lama)
 spasi character 255 (#255), ASCII bernilai 255

0822 2430 1770 ( admin )

www.alcindonesia.co.id instagram : alc_indonesia 0852 2327 3373 ( mas aan )


8) Tipe Data String
Tipe String merupakan kumpulan karakter/ huruf, terkadang diartikan sebagai sebuah kalimat.
String memiliki posisi yang unik, apabila dipandang sebagai sebuah kesatuan, maka String
dianggap menyimpan 1 buah data. Tetapi apabila dipandang sebagai kumpulan karakter, maka
String dianggap menyimpan banyak data, dan setiap datanya (setiap karakternya), dapat
diakses seperti Array. Untuk membedakan 1 String dengan 1 Karakter, maka data String diapit
oleh tanda petik dua ("), sedangkan data 1 buah Karakter diapit dengan tanda petik satu (').
Penggunaan String dalam C++ memakai struktur data class khusus dalam header library string,
sedangkan dalam C, string diimplementasikan memakai char array. Keuntungan String C++
adalah urusan management memory diurus oleh C++, sedangkan dalam C, buffer memory
untuk penyimpanan char array, sepenuhnya merupakan tanggung jawab Coder/ Programmer.
Sedangkan untuk operasi pada Tipe Data String dapat dilakukan secara manual (Coder/
Programmer membuat sendiri logic code-nya), atau bisa memakai bantuan fungsi yang ada
dalam header library string (cara string C++) atau header library cstring (cara char array C).

9) Typecast
Typecast adalah pemaksaan sementara suatu tipe data kepada variabel yang bertipe data lain.
Contoh variabel bertipe int, tetapi dipaksa untuk kondisi khusus (misalnya sebelum dicetak),
menjadi tipe data karakter (char):
int bil = 97;
cout << bil << endl; // hasilnya akan mencetak angka 97
cout << (char) bil << endl; // hasilnya akan mencetak huruf ‘a’
Kenapa di baris terakhir jadinya mencetak huruf ‘a’, karena sesuai dengan standard ASCII, huruf
‘a’ dikodekan dengan angka 97.
Dalam pemakaian typecast, tanda kurung mempengaruhi hasilnya (kurung lebih tinggi secara
hirarki dibanding typecast), tetapi kedudukan typecast selalu lebih dulu dibandingkan operasi,
perhatikan contoh berikut:
int A = 36;
cout << (double)A/13 << endl;
cout << (double)(A/13) << endl;
Yang atas akan menghasilkan 2.76923 sedangkan yang bawah akan menghasilkan 2.

0822 2430 1770 ( admin )

www.alcindonesia.co.id instagram : alc_indonesia 0852 2327 3373 ( mas aan )


10) Input (cin)
Untuk memproses input dipergunakan perintah cin (singkatan dari console input), lalu diikuti
dengan operator >> dan variabel untuk menampung input tersebut. Khusus untuk pembacaan
input tipe data String, perhatikan bahwa spasi (atau white space characters lain) merupakan
pemisah antar data, sehingga jika yang di-input adalah “Diego Armando Maradona”, maka
pembacaan cin biasa, hanya akan membaca “Diego” saja. Maka agar bisa membaca
keseluruhan string (dengan spasinya include), diperlukan bantuan function getline. Jadi perintah
untuk membaca string “Diego Armando Maradona” di atas adalah getline(cin, s); agar
diperoleh hasil yang lengkap dengan spasinya.

11) Output (cout)


Untuk mencetak output dipergunakan perintah cout (singkatan dari console output), lalu diikuti
dengan operator << dan variabel atau teks atau data yang akan dicetak.
Untuk pencetakan bilangan bulat bisa dikerjakan oleh C++ dalam 3 macam format yaitu berbasis
10, berbasis 8 (oktal) dan berbasis 16 (hexadesimal) dengan memakai setting mode dex, oct
dan hex. Coba jalankan potongan program berikut dalam C++:
cout << dec << 60 << '\t' << oct << 60 << '\t' << hex << 60;
Perlu diperhatikan untuk pencetakan bilangan koma (real/desimal), ada perbedaan hasil
pencetakan antara mode default (apabila tidak pernah diutak-atik, atau sesudah direset oleh
perintah unsetf atau mode resetiosflags), mode fixed dan mode scientific (untuk
contoh perbedaan hasilnya, jalankan potongan code berikut)
double a = 3.1415926534;
double b = 2006.0000;
double c = 1.0e-10;
cout.precision(4);
cout << "default:\n";
cout << a << '\n' << b << '\n' << c << '\n' << '\n';
cout << "fixed:\n" << fixed;
cout << a << '\n' << b << '\n' << c << '\n' << '\n';
cout << "scientific:\n" << scientific;
cout << a << '\n' << b << '\n' << c << '\n' << '\n';
Dalam kondisi Kontes/ Lomba, seringkali diminta pencetakan bilangan real (floating point)
dengan nilai ketelitian sebanyak digit tertentu. Hal ini dapat dicapai dengan kombinasi mode
fixed dan perintah precision atau mode fixed dan mode setprecision.

0822 2430 1770 ( admin )

www.alcindonesia.co.id instagram : alc_indonesia 0852 2327 3373 ( mas aan )


12) Efisiensi Input dan Output
Oleh karena C++ backward compatible dengan bahasa C yang lama (pendahulunya), maka C++
dapat melakukan pemrosesan input dan output dengan cara C (scanf printf dan
teman-temannya dari header library cstdio) atau cara C++ (cin cout). Akibatnya, kemampuan
pemrosesan input output C++ agak lambat, karena harus selalu menjaga agar cara C dan cara
C++ tetap synchronized.
Jadi untuk mempercepat pemrosesan input output C++, sinkronisasi ini dapat dimatikan, dengan
memakai perintah di bawah ini, sebelum ada perintah input output apa pun yang lain:
ios::sync_with_stdio(false);
cin.tie(NULL);
Tetapi perlu diingat, dampak dari 2 perintah di atas adalah, cara input output C yang lama
(scanf, printf, gets, puts, getchar, putchar) sudah tidak dapat dipakai lagi dalam
program C++ tersebut.

Modul 3: Operator

Materi dalam bagian ini memperkenalkan macam-macam Operator dan Tanda Khusus dalam
C++.

1) Assignment Operator (=)


Assignment Operator dipergunakan untuk mengisikan nilai ke dalam suatu Variabel
(assignment operation). Nilai tersebut bisa berupa nilai langsung (Direct Value), contoh:
A = 5;
B = "Nama Saya";
Atau merupakan nilai dari Variabel lain (Indirect Value), contoh:
A = C;
Artinya variabel A diisi nilai yang terdapat/ tersimpan di dalam variabel C. Bisa juga merupakan
hasil operasi dari Indirect Value, contoh:
A = C + 2;
Artinya nilai variabel C diambil, lalu ditambah 2, dan dimasukkan ke dalam variabel A, dalam hal
ini nilai variabel C yang asli tidak berubah.
Ada operasi assignment yang agak unik yaitu Self Assignment Operation, contohnya:
A = A + 3;

0822 2430 1770 ( admin )

www.alcindonesia.co.id instagram : alc_indonesia 0852 2327 3373 ( mas aan )


Ini artinya adalah nilai variabel A diambil dari memory, kemudian ditambahkan 3, lalu hasilnya
dimasukkan kembali ke dalam variabel A, sehingga menyebabkan nilai variabel A yang
sebelumnya (yang lama) hilang, karena sudah digantikan oleh nilai baru. Bentuk Self
Assignment ini bisa diefisienkan menjadi:
A += 3; // penjelasan lebih lanjut ada di poin 12 di bawah
C++ juga mendukung penggunaan Multiple Assignment untuk nilai yang sama, contoh:
A = B = C = 5 + D;
Artinya dalam contoh di atas, variabel A, B dan C semua diisi nilai 5 + variabel D.

2) End of Statement (;)


Untuk mengakhiri setiap statement program C++, dipergunakan tanda titik koma (;), artinya
apabila Coder/ Programmer lupa memberikan tanda ; di akhir setiap statement, maka komputer
akan memberikan hasil Compile Error: expected ';', karena komputer menilai suatu statement
belum berakhir (karena belum menemukan tanda ;), tetapi kemudian komputer menemukan
statement baru/ statement selanjutnya. Harap diperhatikan tidak semua baris program C++
merupakan statement, contohnya yang bukan merupakan statement adalah #include.

3) Block Pair (Begin and End Block)


Untuk menandakan blok isi dari suatu branching (if), switching (switch), loop (for atau while),
subprogram (function), inisialisasi data, atau isi dari suatu structure (struct), maka dipergunakan
pasangan penanda blok yaitu tanda kurung kurawal buka { dan tanda kurung kurawal tutup }.
Dalam bagian ini hanya akan diberikan contoh penggunaan pasangan tanda blok ini untuk
fungsi utama program (main function), yaitu:
int main() {
return 0;
}
Dan untuk inisialisasi harga awal array: int arr[4] = { 5, 2, 9, 7 };

0822 2430 1770 ( admin )

www.alcindonesia.co.id instagram : alc_indonesia 0852 2327 3373 ( mas aan )


4) < and > Pair
Pasangan tanda < dan > memiliki 2 kegunaan yaitu untuk: mendefinisikan nama header library
yang dipakai (included) di dalam program C++ yang sedang dibuat dan untuk mendefinisikan
tipe dari template container yang dipakai. Untuk contoh penggunaan #include bisa dilihat di
modul sebelumnya, sedangkan untuk contoh penggunaan pada template, akan dibahas pada
modul mengenai Container.

5) [ and ] Pair
Pasangan tanda [ dan ] (kurung siku) dipakai sebagai pernyataan banyak elemen array atau
index dari array. Tanda kurung siku berlaku sebagai pernyataan banyaknya elemen array saat
deklarasi variabel bertipe array atau saat pengalokasian tempat dalam memory, contoh:
double arr1[20];
double *arr2;
arr2 = new double [12];
delete arr2;
Artinya array bernama arr1 memiliki 20 elemen bertipe floating point double. Sedangkan pada
pointer arr2, artinya komputer diminta untuk mengalokasikan tempat di memory sebanyak 12
elemen bertipe double untuk ditunjuk oleh pointer arr2 (secara efektif, pointer berubah menjadi
array). Jangan lupa apabila mengalokasikan memory memakai perintah new, maka harus ada
perintah delete, saat arr2 sudah tidak diperlukan lagi, untuk melakukan dealokasi. Lupa
melakukan dealokasi, dapat menyebabkan kebocoran memory (memory leak), yaitu
berkurangnya space memory yang bisa dipakai karena lupa tidak dikembalikan ulang kepada
sistem.
Sedangkan saat dipakai dalam statement isi blok dari code, maka [] memiliki makna berbeda:
arr[5] = A;
cin >> arr[5];
cout << arr[5];
Artinya code ingin mengakses array bernama arr di kotak bernomor/ber-index 5. Lebih
mendalam tentang array akan dibahas dalam modul yang akan datang.

0822 2430 1770 ( admin )

www.alcindonesia.co.id instagram : alc_indonesia 0852 2327 3373 ( mas aan )


6) Tanda #
Tanda # dipakai sebagai directive/command pre-processor dalam C++, gunanya untuk
mengatur cara kerja compiler C++, contoh #include artinya memberitahu compiler C++ bahwa
code C++ tersebut membutuhkan isi dari header library tertentu untuk digabungkan ke dalam
code C++-nya. Pre-processor lain yang sering dipakai dalam C++ untuk Lomba/ Kontes
Programming adalah #define yang dipergunakan untuk mendefinisikan suatu konstanta nilai
atau mendefisinikan suatu fungsi macro (lebih jauh tentang ini akan dibahas dalam materi
mendatang).

7) Operator Aritmatika
Dalam C++ dikenal 4 macam operasi Aritmatika yang berlaku untuk angka (baik integer atau pun
floating point), yaitu: tambah (+), kurang (-), kali (*), dan bagi (/). Sedangkan ada 1 operasi
Aritmatika yang hanya bisa berlaku untuk integer (bilangan bulat) yaitu: sisa hasil bagi/ modulus
(%). Perlu diperhatikan bahwa tipe data dari hasil operasi Aritmatika di C++ tergantung dari tipe
data operand-nya, jadi jika operand-nya semua bertipe integer (bilangan bulat) otomatis
hasilnya juga pasti akan berupa bilangan bulat. Tetapi jika salah satu operand ada yang bertipe
floating point, maka hasilnya juga akan berupa floating point.

8) Operator Aritmatika Bilangan Biner (Bit Operation)


Bilangan Biner memiliki beberapa operasi aritmatika tambahan (selain 5 macam operasi
Aritmatka di atas), yaitu AND (&), OR (| tanda garis lurus ini terletak di atasnya tombol Enter),
NOT (~ tanda tilde ini terletak di sebelah kirinya angka 1), XOR (^), SHL/ Shift Left (<<) dan SHR/
Shift Right (>>). Sedangkan operasi NAND, NOR, XNOR bisa didapat dengan menggabungkan
NOT dengan AND, OR atau XOR, contoh: 20 XNOR 15 ditulis sebagai ~(20 ^ 15).
Operasi AND, OR, XOR melakukan/ menjalankan logika AND, OR, XOR pada setiap digit bilangan
Biner dari operand-nya. Sedangkan operasi NOT melakukan pembalikan logika pada setiap digit
bilangan Biner datanya. Dan kegunaan operasi Shift adalah untuk menggeser digit Biner ke kiri
atau ke kanan. Penggeseran ke kiri 1 bit sama artinya dengan perkalian 2, sedangkan
penggeseran ke kanan 1 bit sama artinya dengan pembagian bulat dengan 2, contohnya:
A = B*5 sama artinya dengan A = (B<<2)+B.

0822 2430 1770 ( admin )

www.alcindonesia.co.id instagram : alc_indonesia 0852 2327 3373 ( mas aan )


9) Operator Perbandingan Data
Untuk membandingkan 2 data (biasanya dipakai dalam statement if, for atau while) disediakan 6
macam operator perbandingan, yaitu: == (equivalence/ sama dengan), != (not equivalent/ tidak
sama dengan), > (lebih besar), >= (lebih besar atau sama dengan), < (lebih kecil) dan <= (lebih
kecil atau sama dengan). Kesalahan yang sering terjadi dalam C++ adalah antara operator
assignment (=) dengan equivalence (==), jadi seorang Coder/ Programmer bermaksud
membandingkan suatu variabel A dengan angka 5 (seharusnya ditulis A==5), tapi ditulis sebagai
A=5 (artinya A diisi nilai 5). Untuk mencegah kesalahan ini terjadi, maka dalam proses
pengecekan ekuivalensi, posisi variabel dipindahkan ke sebelah kanan (jadi ditulis sebagai 5==A),
dan ini merupakan proses pengecekan yang valid, tetapi apabila terjadi salah ketik 5=A, maka ini
pasti akan menyebabkan error (karena memang gak masuk akal, apa maksudnya nilai variabel A
dimasukkan ke dalam angka 5).

10) Operator Gabungan Logika Perbandingan


Dalam kondisi tertentu, terkadang proses perbandingan melibatkan beberapa syarat sekaligus,
contohnya batasan nilai A adalah di antara 80 s/d 100, maka ini artinya melibatkan 2 syarat
perbandingan yakni A>=80 dan A<=100, dalam hal ini kedua syarat perlu digabungkan dengan
logika AND (walaupun prinsip logikanya antara AND untuk gabungan logika dan AND untuk
aritmatika bilangan Biner sama, tetapi penerapannya berbeda). AND dalam gabungan logika
hanya beroperasi dalam nilai Boolean (bool) yaitu antara true atau false saja (sedangkan AND
untuk aritmatika bilangan Biner beroperasi untuk keseluruhan digit bilangan Binernya).
Tanda operator untuk logika AND adalah && (dobel tanda ampersand), logika OR adalah ||
(dobel garis lurus), dan logika NOT adalah ! (ini berbeda dengan operasi bilangan Biner NOT
yang memakai ~ tilde). Terlihat bahwa tanda logika AND dan OR agak mirip dengan aritmatika
biner AND dan OR. Jadi contoh kasus di atas dapat dituliskan sebagai (A>=80 && A<=100).

11) Prefix dan Postfix Operator


Ada jenis operator khusus dalam C++ (yang jarang ada dalam kelompok bahasa non C/C++) yang
dikenal dengan istilah Prefix dan Postfix Operator. Prefix Operator artinya operasi ini dikerjakan
terlebih dahulu, sebelum semua operasi lainnya. Sedangkan Postfix Operator artinya operasi
tersebut dikerjakan paling terakhir, sesudah semua operasi lainnya. Ada 2 macam operasi yang
bisa dijadikan Prefix dan Postfix yaitu penjumlahan (++) dan pengurangan (--).

0822 2430 1770 ( admin )

www.alcindonesia.co.id instagram : alc_indonesia 0852 2327 3373 ( mas aan )


Untuk lebih memahami cara kerja Prefix dan Postfix Operator, perhatikan potongan program
berikut:
A = 10;
B = 6;
C = ++A + B--;
D = A+++++B; // ini tidak error, tapi memang sulit dibaca/dimengerti
Sebelum operasi pengisian C, nilai A adalah 10 dan B adalah 6. Lalu A mengalami Prefix ++,
sehingga nilai A berubah menjadi 11, nilai 11 dan 6 inilah yang kemudian dijumlahkan, untuk
diisikan ke dalam C, sehingga C diisi 17, lalu B mengalami Postfix --, sehingga B turun menjadi 5.
Maka hasil akhir dari potongan program adalah A = 11, B = 5, dan C = 17. Sedangkan pada
contoh kedua diartikan A++ + ++B, dengan nilai A dan B melanjutkan dari nilai sebelumnya yaitu
A = 11 dan B = 5, maka B mengalami Prefix ++ menjadi 6, kemudian A + B maka D diisi 17,
terakhir A mengalami Postfix ++, menghasilkan nilai akhir A = 12, B = 6 dan D = 17.
Catatan: variabel yang sama, tidak boleh sekaligus mengalami Prefix dan Postfix, jadi tidak
diizinkan bentuk seperti ini: ++A-- atau --B--.

12) Compound Assignment Operator


Dalam C++ hampir semua operator aritmatika (baca poin 7 dan 8) yang berkaitan dengan Self
Assignment (baca ulang poin 1 di atas) bisa diefisienkan menjadi bentuk Compound
Assignment , kecuali Operator Aritmatika Bilangan Biner NOT saja. Daftar operator aritmatika
Compound Assignment yang didukung adalah: tambah (+=), kurang (-=), kali (*=), bagi (/=),
modulus (%=), AND bil.Biner (&=), OR bil.Biner (|=), XOR bil.Biner (^=), geser kiri (<<=) dan geser
kanan (>>=). Jadi contoh: A = A * 3; bisa ditulis sebagai A *= 3; atau B = B & 20; bisa ditulis
sebagai B &= 20;.

13) Overloading Operator


Dalam C++, terkadang operator pada poin-poin di atas, bisa diterapkan dalam situasi berbeda,
tetapi masih memiliki makna/konsep yang hampir mirip. Contoh dalam operasi Input-Output
(fungsi cin dan cout), operator pergeseran kiri (<<) dimaknai data digeser/dikirim dari
variabel/value ke console output, sedangkan operator pergeseran kanan (>>) dimaknai data
diambil dari console input ke variabel. Contoh lain misalnya dalam String, operator + dimaknai
sebagai penggabungan (concatenation) dari 2 string menjadi 1 string. Konsep penggunaan
operator yang sudah ada dalam konteks situasi berbeda ini, disebut sebagai Overloading
Operator.
0822 2430 1770 ( admin )

www.alcindonesia.co.id instagram : alc_indonesia 0852 2327 3373 ( mas aan )


14) Komentar (Comment)
Komentar adalah baris code yang tidak diproses oleh C++, gunanya hanya untuk
keterangan/catatan atau alternatif cara lain yang dituliskan di dalam code, agar bisa
dibaca/dipelajari kemudian. Ada 2 macam komentar: yang pertama adalah single line comment
dengan memakai tanda // (double slash) di bagian awal code/keterangan yang tidak akan
diproses. Yang kedua adalah multi line comment dengan memakai pasangan tanda /* di awal
dan */ di akhir.

15) Operator Khusus Lain


Operator sizeof dipergunakan untuk mendapatkan ukuran penggunaan memory dari suatu
variabel (dalam satuan byte). Special ternary operator ? merupakan operator khusus untuk
operasi percabangan perhitungan (operator ? ini akan dibahas secara lebih mendalam pada
modul yang akan datang). Pasangan operator new dan delete dipergunakan untuk
mengalokasikan dan mendealokasikan (menghapus) penggunaan tempat dalam memory
komputer, yang contohnya sudah dibahas pada poin 5 di atas.

16) Fungsi Matematika


Terdapat beberapa fungsi Matematika standar di C++, yaitu:
 sqrt(x), untuk menghitung akar kuadrat dari x
 cbrt(x), untuk menghitung akar kubik dari x
 abs(x), untuk mendapatkan nilai absolut/ harga mutlak dari x
 round(x), untuk pembulatan bilangan floating point x
 trunc(x), untuk mendapatkan bagian bulat dari suatu floating point x
 ceil(x), untuk mendapatkan nilai ceiling dari x (nilai bilangan bulat yang >= x)
 floor(x), untuk mendapatkan nilai floor dari x (nilai bilangan bulat yang <= x)
 sin(rad), untuk menghitung sinus trigonometri, memakai parameter radian bukan derajat
 cos(rad), untuk cosinus memakai radian
 tan(rad), untuk tangent memakai radian
 exp(x), untuk menghitung nilai ex
 exp2(x), untuk menghitung nilai 2x
 log(x), untuk menghitung logaritma natural, yaitu logaritma berbasiskan bilangan natural e,
dari x

0822 2430 1770 ( admin )

www.alcindonesia.co.id instagram : alc_indonesia 0852 2327 3373 ( mas aan )


 log10(x), untuk menghitung nilai logaritma berbasis 10 dari x
 log2(x), untuk menghitung nilai logaritma berbasis 2 dari x
Sedangkan konstanta yang sering dipakai adalah double PI = 3.141592653589793; yaitu nilai
PI sampai ketelitian 16 digit (sesuai dengan kapasitas variabel bertipe double)

Latihan Soal

1. Manakah deklarasi fungsi utama C++ yang benar?


I) void main() {}
II) void Main() {}
III) void main(int argc, char **argv) {}
IV) void Main(char *argv[]) {}
V) void main(int argc, string argv[]) {}
VI) void Main(String[] argv) {}
VII) int main(int argc, String argv[]) {}
VIII) int Main(int argc, char **argv) {}
IX) int main(int argc, char *argv[]) {}
X) int Main(int argc, string[] argv) {}
a. I, II, III, IV, V b. I, III, V, VII, IX
c. I, III, IX d. II, VI, VIII
e. semua salah
2. Header library C++ untuk mendukung fungsi input-output cara C yang lama adalah:
a. stdio.h b. conio.h c. cstdio d. iostream e. cincout
3. Manakah karakter valid yang dipakai untuk menyatakan enter/ganti baris pada C++?
a. '\n' b. 'n' c. '\\' d. enter e. newline
4. Manakah yang merupakan nama variabel yang valid dalam C++?
a. JUM-SISWA b. jumSiswa! c. *jumSISWA d. jum_Siswa e. jumSiswa()
5. Mengapa jangkauan maksimal dari unsigned char hanya 255?
a. Karena pencipta C++ ada 255 orang
b. Karena komite ISO untuk Standarisasi C++ beranggotakan 255 orang
c. Karena 255 adalah hasil perkalian 51 x 5
d. Karena 255 adalah bilangan yang paling mendekati 2n terdekat
e. Karena 8 digit Biner (1111 1111) nilainya adalah 255

0822 2430 1770 ( admin )

www.alcindonesia.co.id instagram : alc_indonesia 0852 2327 3373 ( mas aan )


6. Mengapa jangkauan maksimal dari short int hanya 32.767?
a. Karena code size aplikasi C++ mula-mula berukuran 32.767 byte
b. Karena 15 digit Biner (111 1111 1111 1111) nilainya adalah 32.767
c. Karena nilai dari 216 = 32.767
d. Karena nilai dari 215 = 32.767
e. Karena 32.767 = 151 x 31 x 7
7. Berapakah isi variabel B dalam potongan kode berikut?
unsigned short int A=4000,B;
B = A*A;
a. 4.000 b. 8.000 c. 9.216 d. 271.360 e. 16.000.000
8. Berapakah isi variabel B dalam potongan kode berikut?
int A=-60000,B;
B = A*60000;
a. 694.967.296 b. -694.967.297
c. 2.147.483.647 d. -2.147.483.648
e. -3.600.000.000
9. Apakah hasil dari potongan kode berikut?
char C = 'r';
bool D = (C>='A' && C<='Z' || C>='a' && C>='z');
cout << D << endl;
a. 'r' b. vowel c. consonant d. 1 e. 0
10. Terdapat 4 data yaitu X1, Y1, X2 dan Y2, manakah proses pembacaan input yang valid?
12 35 -4 8
a. x1 >> y1 >> x2 >> y2 >> cin;
b. cin >> x1 >> y1 >> x2 >> y2;
c. cin >> x1,y1 >> x2,y2;
d. cin >> x1 >> cin >> y1 >> cin >> x2 >> cin >> y2;
e. cin << x1 << y1 << x2 << y2;
11. Terdapat data seperti ini:
3 4
Active Learning Club
Manakah potongan kode pembacaan input yang sesuai?
a. cin >> A >> B >> T >> S;
b. cin >> A >> B; getline(cin, S);
c. cin >> A >> B; getline(cin, T); getline(cin, S);
d. cin >> A >> B >> S;

0822 2430 1770 ( admin )

www.alcindonesia.co.id instagram : alc_indonesia 0852 2327 3373 ( mas aan )


e. cin >> A >> B >> T; getline(cin, S);
12. Rumus Resistor Paralel untuk 3 Resistor dinyatakan sebagai berikut:

Manakah potongan kode yang benar untuk rumus tersebut?


a. RP = R1 + R2 + R3;
b. RP = (1/R1) + (1/R2) + (1/R3);
c. RP = R1*R2*R3 / (R1+R2+R3);
d. RP = R1*R2*R3 / (R1*R2+R1*R3+R2*R3);
e. RP = (R1+R2+R3) / (R1*R2*R3+R1+R2+R3);
13. Apakah hasil potongan program berikut?
int A,B,C,D,E;
A = (2020 == 2*2*5*101);
B = !(10 > -10);
C = (10 <= 121/11);
D = (A || B) && (B && C);
E = (A && C) || !B;
cout << (D!=E) << endl;
a. 0 b. 1 c. false d. true e. semua salah
14. Apakah makna dari operasi ini: ((A << 3) | 5)
a. dikali 3 dibagi 5 b. dikali 6 dikurangi 5
c. dikali 6 dikurangi 5 d. dikali 8 ditambah 5
e. dikali 9 dibagi 5
15. Apakah kekeliruan dari potongan kode berikut?
String s = "Active Learning Club";
a. tidak ada kesalahan b. String keliru ketik, seharusnya string
c. titik koma harus dihapus d. seharusnya memakai petik tunggal (')
e. tidak ada spasi di antara s dan tanda =, serta tidak ada spasi di antara = dan "
16. Apakah hasil dari potongan kode ini:
char A = 'd';
cout << (char)A+4 << endl;
a. d4 b. D4 c. 104 d. h e. H
17. Apakah hasil dari potongan kode ini:
char A = 'd';
cout << (char)(A+4) << endl;
a. d4 b. D4 c. 104 d. h e. H

0822 2430 1770 ( admin )

www.alcindonesia.co.id instagram : alc_indonesia 0852 2327 3373 ( mas aan )


18. Apakah hasil dari potongan kode ini:
double PI = 3.14159;
int sudut;
cin >> sudut;
cout << fixed << setprecision(1) << sin(sudut*PI/180) << endl;
Apabila diberikan input 30?
a. 0.0 b. 0.5 c. 0.7 d. 0.9 e. 1.0
19. Apakah hasil dari potongan kode ini:
double PI = 3.14159;
int sudut;
cin >> sudut;
cout << sin(sudut/180*PI) << endl;
Apabila diberikan input 60?
a. 0 b. 0.5 c. 0.707106 d. 0.866025 e. 1
20. Apakah hasil dari potongan kode berikut:
int A=4,B=7,C,D;
C=D=6;
A += C++ + ++D + A++ + ++B;
cout << A << B << C << D << endl;
a. 23766 b. 23867 c. 23767 d. 25766 e. 30877

0822 2430 1770 ( admin )

www.alcindonesia.co.id instagram : alc_indonesia 0852 2327 3373 ( mas aan )

Anda mungkin juga menyukai