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
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
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.
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.
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.
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.
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.
Modul 3: Operator
Materi dalam bagian ini memperkenalkan macam-macam Operator dan Tanda Khusus dalam
C++.
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.
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.
Latihan Soal