Contoh Soal Pemrograman Terstruktur Lengkap dengan Pembahasan untuk Pemula

Pemrograman terstruktur adalah fondasi utama bagi setiap pengembang perangkat lunak. Sebelum melompat ke paradigma yang lebih kompleks seperti Object-Oriented Programming (OOP), memahami alur logika yang runtut, penggunaan fungsi, dan kontrol alur program adalah kewajiban. Artikel ini akan menyajikan kumpulan contoh soal pemrograman terstruktur yang disusun dari tingkat dasar hingga menengah, lengkap dengan pembahasan logikanya.

baca juga:Contoh Soal Ujian CAT PPS Lengkap dengan Pembahasan:

Apa Itu Pemrograman Terstruktur?

Pemrograman terstruktur adalah sebuah metodologi pemrograman yang membagi program ke dalam fungsi-fungsi atau prosedur-prosedur yang lebih kecil. Prinsip utamanya adalah Divide and Conquerโ€”memecah masalah besar menjadi bagian-bagian kecil yang lebih mudah dikelola. Ciri khasnya meliputi:

  1. Urutan (Sequence): Instruksi dijalankan baris demi baris.
  2. Pemilihan (Selection): Penggunaan kondisi seperti if-else atau switch-case.
  3. Pengulangan (Iteration): Penggunaan for, while, atau do-while.

Kumpulan Contoh Soal dan Pembahasan

Bagian 1: Logika Dasar dan Sekuensial

Soal-soal pada bagian ini melatih kemampuan Anda dalam menyusun instruksi yang berurutan dan penggunaan variabel.

Soal 1: Menghitung Luas Lingkaran

🔖 Baca juga:
contoh soal CPNS kesehatan 2025 yang sering muncul pada latihan Seleksi Kompetensi Bidang (SKB)

Buatlah program yang menerima input jari-jari dari pengguna dan menampilkan luas lingkaran. Gunakan konstanta untuk nilai $\pi = 3.14$.

Jawaban & Pembahasan:

Dalam pemrograman terstruktur, kita harus mendefinisikan input, proses, dan output secara jelas.

C++

#include <iostream>
using namespace std;

int main() {
    float jari_jari, luas;
    const float PI = 3.14;

    cout << "Masukkan jari-jari lingkaran: ";
    cin >> jari_jari;

    luas = PI * jari_jari * jari_jari;

    cout << "Luas lingkaran adalah: " << luas << endl;
    return 0;
}

Analisis Logika:

  • Variabel: Kita menggunakan float karena luas dan jari-jari seringkali melibatkan angka desimal.
  • Konstanta: Menggunakan const memastikan nilai PI tidak berubah selama program berjalan.
  • Rumus: Program menerapkan rumus matematika $A = \pi r^2$.

Bagian 2: Percabangan (Selection)

Percabangan memungkinkan program mengambil keputusan berdasarkan kondisi tertentu.

Soal 2: Menentukan Bilangan Ganjil atau Genap

Buatlah algoritma dan program untuk mengecek apakah sebuah angka yang dimasukkan pengguna adalah bilangan genap atau ganjil.

Jawaban & Pembahasan:

Kunci dari soal ini adalah penggunaan operator Modulus (%), yang menghasilkan sisa pembagian.

Python

angka = int(input("Masukkan sebuah angka: "))

if angka % 2 == 0:
    print(f"{angka} adalah bilangan Genap")
else:
    print(f"{angka} adalah bilangan Ganjil")

Analisis Logika:

Bilangan genap adalah bilangan yang jika dibagi 2, sisa pembagiannya adalah 0. Struktur if-else sangat efisien di sini karena hanya ada dua kemungkinan kondisi.

Soal 3: Klasifikasi Nilai Akademik

Buatlah program untuk menentukan nilai huruf (A, B, C, D, E) berdasarkan skor angka dengan ketentuan:

  • 85 – 100: A
  • 70 – 84: B
  • 55 – 69: C
  • 40 – 54: D
  • Dibawah 40: E

Jawaban & Pembahasan:

Untuk kondisi yang bertingkat, kita menggunakan if-else if.

C++

if (skor >= 85) {
    cout << "Grade: A";
} else if (skor >= 70) {
    cout << "Grade: B";
} else if (skor >= 55) {
    cout << "Grade: C";
} else if (skor >= 40) {
    cout << "Grade: D";
} else {
    cout << "Grade: E";
}

Penting: Urutan kondisi sangat berpengaruh. Jika kita meletakkan skor >= 40 di urutan pertama, maka nilai 90 akan terdeteksi sebagai D karena 90 lebih besar dari 40. Selalu mulai dari rentang tertinggi atau gunakan operator logika &&.


Bagian 3: Perulangan (Iteration)

Perulangan digunakan untuk mengeksekusi blok kode yang sama berkali-kali secara efisien.

Soal 4: Menampilkan Deret Angka Kelipatan 5

Tampilkan bilangan kelipatan 5 mulai dari 5 sampai 50 menggunakan perulangan for.

Jawaban & Pembahasan:

JavaScript

for (let i = 5; i <= 50; i += 5) {
    console.log(i);
}

Analisis Logika:

Struktur for terdiri dari tiga bagian: inisialisasi (i = 5), syarat berhenti (i <= 50), dan langkah iterasi (i += 5). Ini jauh lebih efisien daripada menulis console.log sepuluh kali.

Soal 5: Menghitung Faktorial

Buatlah program untuk menghitung nilai faktorial dari input pengguna (Contoh: $5! = 5 \times 4 \times 3 \times 2 \times 1 = 120$).

Jawaban & Pembahasan:

Python

n = int(input("Masukkan angka: "))
faktorial = 1

for i in range(1, n + 1):
    faktorial *= i

print(f"Faktorial dari {n} adalah {faktorial}")

Analisis Logika:

Kita menggunakan variabel penampung faktorial yang diinisialisasi dengan angka 1. Di setiap putaran, variabel tersebut dikalikan dengan angka iterasi saat ini.


Bagian 4: Modularitas dengan Fungsi (Function)

Fungsi adalah inti dari pemrograman terstruktur. Fungsi memecah kode menjadi blok-blok modular yang bisa dipanggil berulang kali.

Soal 6: Kalkulator Sederhana dengan Fungsi

Buatlah program yang memiliki fungsi terpisah untuk penjumlahan, pengurangan, perkalian, dan pembagian.

Jawaban & Pembahasan:

C++

#include <iostream>
using namespace std;

float tambah(float a, float b) { return a + b; }
float kurang(float a, float b) { return a - b; }
float kali(float a, float b) { return a * b; }
float bagi(float a, float b) { 
    if(b != 0) return a / b; 
    else return 0; 
}

int main() {
    cout << "Hasil Tambah: " << tambah(10, 5) << endl;
    cout << "Hasil Bagi: " << bagi(10, 2) << endl;
    return 0;
}

Analisis Logika:

Dengan menggunakan fungsi, kode di dalam main() menjadi sangat bersih. Jika ada kesalahan pada logika pembagian, kita hanya perlu memperbaiki fungsi bagi() tanpa mengganggu bagian program lainnya.


Bagian 5: Array (Larik)

Array memungkinkan kita menyimpan banyak data dalam satu variabel.

Soal 7: Mencari Nilai Tertinggi dalam Array

Diberikan sebuah list angka [23, 45, 12, 89, 34], buatlah program untuk menemukan angka terbesar.

Jawaban & Pembahasan:

Python

angka = [23, 45, 12, 89, 34]
maksimum = angka[0]

for nilai in angka:
    if nilai > maksimum:
        maksimum = nilai

print(f"Nilai tertinggi adalah: {maksimum}")

Analisis Logika:

  1. Asumsikan elemen pertama adalah yang terbesar.
  2. Bandingkan dengan elemen-elemen berikutnya.
  3. Jika ditemukan angka yang lebih besar, perbarui variabel maksimum.

Tips Belajar Pemrograman Terstruktur untuk Pemula

  1. Jangan Hanya Copy-Paste: Ketik ulang setiap baris kode. Mengetik membantu otak Anda mengenali sintaksis dan kesalahan kecil (seperti kurang titik koma).
  2. Gunakan Tracing Manual: Ambil kertas dan pulpen, jalankan alur program di pikiran Anda baris demi baris. Ini sangat efektif untuk memahami perulangan.
  3. Selesaikan Error Sendiri: Jangan langsung mencari jawaban saat melihat pesan error. Baca pesan tersebut; biasanya compiler memberi tahu baris mana yang bermasalah.
  4. Pelajari Algoritma Terlebih Dahulu: Sebelum mengetik kode, buatlah Flowchart atau Pseudocode.

baca juga:Teknokrat Academic Expo: Rektor Nasrullah Yusuf Tegaskan Tiga Pilar UTI Kampus Inovatif, Berdampak, dan Berkelanjutan

Kesimpulan

Pemrograman terstruktur bukan tentang seberapa canggih bahasa yang Anda gunakan, melainkan seberapa logis Anda memecahkan masalah. Dengan menguasai urutan, percabangan, perulangan, dan fungsi, Anda telah memiliki modal kuat untuk belajar bahasa pemrograman apapun, mulai dari C, Python, hingga Java.

penulis: ridho

Post Comment