Pemrograman dasar adalah fondasi utama dalam dunia teknologi dan pengembangan perangkat lunak. Bagi pemula, memahami konsep dasar seperti variabel, tipe data, perulangan (loop), percabangan (conditional statements), hingga fungsi adalah langkah awal yang krusial. Namun, belajar teori saja tidak cukup! Latihan soal dan pembahasan sangat diperlukan agar pemahaman lebih mendalam dan bisa diaplikasikan ke dalam proyek nyata.
![]() |
40+ Soal dan Pembahasan Pemrograman Dasar |
Dalam artikel ini, kita akan membahas beberapa soal pemrograman dasar beserta solusi dan penjelasannya agar lebih mudah dipahami.
1. Fungsi dari operator % sebagai...
A. Mencari sisa pembagian 2 bilangan
B. Prosentase bilangan
C. Pembagian 2 bilangan
D. Membagi perseratus persen
E. Prosentase 2 bilangan
Jawaban : A
2. Pernyataan a=7%4 akan menghasilkan a = ...
A. 3
B. 4
C. 5
D. 6
E. 7
Jawaban : A
3. Program apakah yang ada digambar?
A. program untuk mencari data array dan nomor elemennya
B. program untuk menampilkan data terbesar (maks) dalam suatu array
C. program untuk menampilkan data arraydari hasil inisialisasi
D. program penggunaan aray
E. a,b,c dan d salah
Jawaban : B
4. Perhatikan program berikut!
A. 11 dan 10
B. 1 dan 0
C. !1=0 dan !0=1
D. 0 dan 1
E. Semua salah
Jawaban : C
5. Keuntungan memakai fungsi pada C++ adalah...
A. Menguraikan tugas pemrograman rumit menjadi langkah-langkah yang lebih sederhana atau kecil.
B. Mengurangi duplikasi kode (kode yang sama ditulis berulang-ulang) dalam program.
C. Dapat menggunakan kode yang ditulis dalam berbagai program yang berbeda.
D. Menyembunyikan informasi dari user sehingga mencegah adanya perbuatan iseng seperti memodifikasi atau mengubah program yang kita buat.
E. Tipe data nama fungsi (daftar parameter)
Jawaban : E
6. Dalam pemrograman C++ bukanlah bahasa prosedural, karena prosedur tidak mempunyai nilai balik. Untuk melakukan hal ini di dalam C++, maka harus membuat suatu fungsi dengan tipe void, yang berarti tidak memiliki nilai balik (return value) adalah...
A. #include <iostream>
using namespace std;
int BertambahSatu (int X)
{ int hasil;
hasil =X+1;
return hasil;
}
B. tipe_data nama_fungsi (parameter){
Pernyataan_yang_akan_dilakukan;
return nilai_kembali;
}
C. int main () {
int Bilangan, HASIL;
cout<<"Masukkan Bilangan Bulat: "<<endl;
cin>>Bilangan;
HASIL = BertambahSatu (Bilangan);
cout<<"Nilai keluaran : "<<HASIL;
return 0;
}
D. void nama_fungsi (parameter) {
Pernyataan_yang_akan_dilakukan; }
E. void nama_fungsi (parameter) {
Pernyataan_yang_akan_dilakukan;
Jawaban : D
7. perintah yang menggunakan untuk menampilkan suatu informasi ke piranti output (layar) adalah...
A. cin
B. cout
C. getch ()
D. conio.h
E. stdio.h
Jawaban : B
8. Perhatikan program berikut!
#include <iostream>
Using namespace std;
Int main{
Int x, y, z = 20;
Cout << x << endl;
Cout << y << endl;
Cout << z << endl;
Return 0
}
A. Memberi nilai 20 pada z saja
B. Memberi nilai x, y, z dengan nilai 20
C. Membuat variabel global
D. Semua jawaban salah
E. Semua jawaban benar
Jawaban : A
9. Metode apakah proses pengurutan secara ascending:
- Mencari data terkecil dengan cara membandingkan data pertama dengan data kedua sampai data terakhir, jika ditemukan data yang lebih kecil antara data kedua hingga data terakhir daripada data pertama, maka terjadi pertukaran data. Jika tidak, maka tidak terjadi pertukaran data.
- Mencari data terkecil dengan cara membandingkan data kedua dengan data ketiga sampai data terakhir, jika ditemukan data yang lebih kecil antara data ketiga hingga data terakhir daripada data kedua, maka terjadi pertukaran data. Jika tidak, maka tidak terjadi pertukaran data.
Dan Seterusnya. Jika ada n buah data yang akan diurutkan, maka langkah pengurutan yang perlu dilakukan sebanyak (n-1) langkah karena data ke-n tinggal satu – satunya.
A. Selection serch
B. Selection
C. Selection Sort
D. Selection float
E. Selection fungsi
Jawaban : C
10. Operator logika yang menyatakan "atau" dalam lambang berikut ini adalah...
A. &&
B.!
C. II
D. =
E. <>
Jawaban : C
11. Operator yang digunakan dalam operasi yang melibatkan tiga buah operand adalah...
A. Operator Unary
B. Operator Bitwise
C. Operator Logika
D. Operator Fungsi
E. Operator Ternary
Jawaban : E
12. Operator logika && adalah...
A. And
B. Nand
C. Or
D. Not And
E. For
Jawaban : A
13. Perhatikan program berikut!
#include <iostream>
using namespace std;
int main()
{
int x = 10, y = 3;
A
int z;
B
z = x X y;
C
cout << x << “ X ” << y << “ = ” << z;
D
cout << endl;
E
return 0;
}
Dari program diatas, manakah penulisannya yang tidak benar?
A. A
B. B
C. C
D. D
E. E
Jawaban : C
14. ++ dan -- merupakan operator...
A. Operator Aritmetika
B. Operator Increment dan Decrement
C. Operator Majemuk
D. Operator Relasional
E. Operator Logika
Jawaban : B
15. Perintah menginput suatu nilai dari suatu piranti masukan (keyboard) untuk diproses oleh program adalah...
A. cin
B. getch ()
C. getche ()
D. cout
E. conio.h
Jawaban : A
16. Compiler C++ yang telah beredar di pasaran antara lain, kecuali...
A. Microsoft C/C++
B. Visual C++
C. Turbo C++
D. Dev C++
E. Pascal C++
Jawaban : E
17. Pernyataan yang sesuai untuk mendefinisikan tipe data bilangan bulat adalah...
A. Tipe data yang berfungsi menampung data yang memiliki angka dibelakang koma
B. Tipe data yang digunakan untuk angka yang tidak memiliki angka dibelakang koma
C. Tipe data yang yang menyimpan lebih dari satu variabel
D. Tipe data yang mempresentasikan data yang hanya mengandung dua nilai
E. Tipe data yang mempresentasikan data berupa karakter
Jawaban : C
18. Perintah Cin pada Program C++ digunakan untuk...
A. Menampilkan data pada layar
B. Menginput suatu nilai dari suatu piranti masukan (keyboard)
C. Pendeklarasian variabel
D. Mengulang proses looping pada program
E. Statement while .... do
Jawaban : B
19. Pengertian dari konstanta adalah...
A. Suatu nilai yang dapat diubah selama program berlangsung
B. Suatu nilai yang berubah-ubah selama program berlangsung
C. Suatu nilai yang tidak dapat diubah selama program berlangsung
D. Suatu nilai yang tidak pernah berubah meskipun program tidak berjalan
E. Suatu nilai yang tidak dapat diubah meskipun program tidak berjalan
Jawaban : C
20. Misalkan suatu variabel string katakanlah kalimat [30] akan diberi nilai "SAYA BELAJAR C++", maka perintah yang benar adalah...
A. char kalimat [30] = "SAYA BELAJAR C++"
B. char kalimat [30] = "SAYA BELAJAR C++";
C. charter kalimat [30] = "SAYA BELAJAR C++"
D. charter kalimat [30] = "SAYA BELAJAR C++";
E. karakter kalimat [30] = "SAYA BELAJAR C++"
Jawaban : B
21. Perhatikan program dan hasil program berikut,
#include <iostream>
using namespace std;
int contoh(){
static int A = 10;
A = A + 10;
return A;
}
int main(){
int x;
x = contoh();
cout << “Nilai pemanggilan pertama adalah : ” << x << endl;
return 0;
}
HASIL PROGRAM
1. Nilai pemanggilan pertama adalah: 20
2. Nilai pemanggilan pertama adalah: A = 20
3. Nilai pemanggilan pertama adalah: 20
4. Nilai pemanggilan pertama adalah: 30
5. terjadi error (kesalahan)
Terdapat pada hasil program nomor berapakah yang sesuai dengan program
diatas ?
A. 5
B. 4
C. 3
D. 2
E. 1
Jawaban : C
22. Penggunaan operator aritmatika yang benar dalam C++ yaitu...
A. While(i<=30);
B. T=x+angka;
C. I++;
D. T=x+ angka
E. Float x, X, z=0;
Jawaban : B
23. Bilangan yang mengandung pecahan, paling sedikit harus ada satu digit angka sebelum dan sesudah titik desimal termasuk dalam tipe data...
A. Riil
B. Boolean
C. Integer
D. Longint
E. Byte
Jawaban : A
24. Yang termasuk operator logika ingkaran adalah...
A. &&
B. <>
C.!
D. II
E. >=
Jawaban : C
25. Apabila program pada gambar tersebut akan menghasilkan...
A. Nilai a = 10, Nilai a = 747
B. Nilai a = 100, Nilai a = 747
C. Nilai a = 10, Nilai a = 766
D. Nilai a = 10, Nilai a = 777
E. Nilai a = 10, Nilai a = 746
Jawaban : A
26. Mana fungsi void yang benar untuk output dibawah?
Panjang = ?
Lebar = 8
Tinggi = 5
Volume = 280
A. #include <iostream.h>#include <conio.h>void volume(int &vol, int p, int l,
int t){
vol = p*l*t; }
main(){int pj,lb,tg, hsl;
cout<<"Panjang = ";cin>>pj;
cout<<"Lebar = ";cin>>lb;
cout<<"Tinggi = ";cin>>tg;
volume(hsl,pj,lb,tg);
cout<<"nVolume = "<<hsl;
getch();
B. #include <iostream.h>#include <conio.h>void volume(int &vol, int p, int l,
int t){
vol = p*l*t; }
main(){int pj,lb,tg, hsl;
cout<<"Panjang = ";cin>>pj;
cout<<"Lebar = ";cin>>lb;
cout<<"Tinggi = ";cin>>tg;
volume(hsl,pj,lb,tg)
cout<<"nVolume = "<<hsl;
getch();}
C. #include <iostream.h>#include <conio.h>void volume(int &vol, int p,
int l, int t){
vol = p*l*t; }
main(){int pj,lb,tg, hsl;
cout<<"Panjang = ";cin>>pj;
cout<<"Lebar = ";cin>>lb;
cout<<"Tinggi = ";cin>>tg;
volume(hsl,pj,lb,tg);
cout<<"nVolume = "<<hsl;
getch();}
D. #include <iostream.h>#include <conio.h>void volume(int &vol, int p, int l,
int t){
vol = p*l*t; };
main(){int pj,lb,tg, hsl;
cout<<"Panjang = ";cin>>pj;
cout<<"Lebar = ";cin>>lb;
cout<<"Tinggi = ";cin>>tg;
volume(hsl,pj,lb,tg);
cout<<"nVolume = "<<hsl;
getch();}
E. #include <iostream.h>#include <conio.h>void volume(int &vol, int p, int l,
int t){;
vol = p*l*t; }
main(){int pj,lb,tg, hsl;
cout<<"Panjang = ";cin>>pj;
cout<<"Lebar = ";cin>>lb;
cout<<"Tinggi = ";cin>>tg;
volume(hsl,pj,lb,tg);
cout<<"nVolume = "<<hsl;
getch();}
Jawaban : C
27. double angka; . kode program disamping merupakan tipe data...
A. Bilangan Bulat
B. Logika
C. Bilangan Riil
D. Struktur
E. Karakter
Jawaban : C
28. -Ada keyword return
-Ada tipe data yang mengawali fungsi
-Tidak ada keyword void
-Memiliki nilai kembalian.
-Dapat dianalogikan sebagai suatu variabel yang memiliki tipe data tertentu sehingga dapat langsung ditampilkan hasilnya
Pernyataan diatas adalah ciri-ciri dari jenis fungsi...
A. void
B. non void
C. array
D. statement
E. aritmetika
Jawaban : B
29. Penulisan variabel dalam C++ bersifat Case Sensitive artinya...
A. Tanda spasi diperhitungkan
B. Huruf besar dan kecil diperhitungkan
C. Tanda spasi diubah dengan underscore
D. Tanda spasi diubah dengan tanda titik
E. Tanda spasi diubah dengan tanda strip (minus)
Jawaban : B
30. Berikut ini adalah syarat pembuatan identifier yang harus kita perhatikan,
kecuali...
A. C++ bersifat case sensitive
B. Tidak boleh diawali dengan angka
C. Harus menggunakan spasi
D. Tidak boleh menggunakan symbol (!@#$%^&*, dll)
E. Tidak boleh mengandung spasi
Jawaban : C
31. Perhatikan program berikut
#include <iostream>
Using namespace std;
Int main() {
Int x;
X = 3;
Cout << “Nilai x = ” << x << endl;
Return 0;
}
Hasil yang diperoleh dari program diatas adalah...
A. Nilai x = x
B. Nilai x = 3
C. Nilai 3 = x
D. Nilai 3 = 3
E. Semua salah
Jawaban : B
32. Operator merupakan symbol yang biasa dilibatkan dalam program untuk melakukan suatu operasi atau manipulasi, berikut yang bukan merupakan penggunaan operator adalah...
A. Menjumlahkan dua nilai
B. Memberikan nilai ke suatu variabel
C. Membandingkan kesamaan dua nilai
D. Menginputkan suatu nilai
E. Semua jawaban benar
Jawaban : E
33. Selain tipe data unsigned yaitu tipe data bilangan bulat adalah...
A. unsigned char, unsigned int, unsigned short dan unsigned long
B. unsigned float, unsigned double, dan unsigned long double
C. unsigned long dan unsigned float
D. unsigned char dan unsigned int
E. unsigned long double dan double
Jawaban : A
34. Satu blok kode yang melakukan tugas tertentu atau satu blok instruksi yang di eksekusi ketika dipanggil dari bagian lain dalam suatu program disebut...
A. Fungsi
B. non void
C. statement
D. array
E. Aritmetika
Jawaban : A
35. Perhatikan program berikut,
#include <iostream>
using namespace std;
int main()
{
int x;
float y;
x = +5;
y = -2.5;
cout << x << "," << y << ",";
x = -5;
y = +2.5;
cout << x << "," << y << endl;
return 0;
}
Hasil dari program diatas adalah...
A. +5, -2.5, -5, +2.5
B. 5, -2.5, -5, 2.5
C. 5, 2.5, 5, 2.5
D. -5, 2.5, 5, -2.5
E. Semua salah
Jawaban : B
36. Perhatikan program dan keluaran program berikut,
#include <iostream>
using namespace std;
int main(){
cout << (1 && 1) << endl;
cout << (1 && 0) << endl;
cout << (0 && 0) << endl;
cout << (0 && 1) << endl;
cout << endl;
return 0
}
Hasil program secara berturut-turut akan menampilkan angka
1. 1, 1, 1, 1
2. 1, 0, 0, 0
3. 0, 1, 1, 1
4. 1, 1, 0, 1
Hasil program yang benar ditunjukkan oleh nomor...
A. 1
B. 2
C. 3
D. 4
E. 5
Jawaban : B
37. #include <iostream>
using namespace std;
int main (){
int x = 3.05;
cout << “Nilai x adalah ” << x << endl;
return 0
}
Perhatikan program diatas, tipe data yang digunakan adalah...
A. char
B. long int
C. float
D. short int
E. signed long int
Jawaban : C
38. Ciri-ciri dari jenis fungsi Void adalah sebagai berikut, kecuali...
A. Tidak adanya keyword return
B. Tidak adanya tipe data di dalam deklarasi fungsi
C. Menggunakan keyword void
D. Tidak dapat langsung ditampilkan hasilnya & tidak memiliki nilai kembalian fungsi
E. menggunakan keyboard
Jawaban : A
39. Perintah statement apakah dibawah ini...
do
{
.
.
}
while (kondisi);
A. While
B. Do ... While
C. For
D. Switch
E. If
Jawaban : B
40. Hal yang menjadi catatan penting dalam pemograman C++ bahwa program C++ bersifat Case Sensitive. Maksud dari sifat tersebut adalah...
A. Semua character di anggap sama
B. Huruf kecil dan besar disamakan
C. Tidak boleh memakai 2 file header
D. Huruf besar dan kecil di anggap beda
E. Tidak boleh memakai 2 file header dan end
Jawaban : D
Menguasai pemrograman dasar membutuhkan latihan yang konsisten dan pemahaman konsep yang kuat. Dengan sering mengerjakan soal serta menganalisis pembahasannya, kalian akan semakin mahir dalam menyusun logika pemrograman dan menulis kode yang efisien. Jangan ragu untuk terus mencoba berbagai tantangan pemrograman agar kemampuan kalian semakin berkembang! Jika ada pertanyaan atau butuh pembahasan lebih lanjut, jangan sungkan untuk berdiskusi. Selamat belajar dan semoga sukses dalam perjalanan kalian menjadi seorang programmer! 🚀