Contoh Soal Pemrograman Dasar dan Algoritma + Pembahasan Lengkap untuk Mahasiswa

Memasuki dunia perkuliahan ilmu komputer atau teknik informatika, dua fondasi utama yang wajib dikuasai adalah Pemrograman Dasar dan Algoritma. Memahami sintaks sebuah bahasa pemrograman saja tidak cukup; mahasiswa dituntut untuk memiliki kemampuan problem solving yang sistematis.

baca juga: Contoh Soal Integral Parsial Trigonometri: Pembahasan

Artikel ini akan membahas deretan contoh soal yang sering muncul dalam ujian maupun praktikum, mulai dari logika dasar hingga struktur data sederhana, lengkap dengan pembahasan logikanya.

Mengapa Algoritma Sangat Krusial Bagi Mahasiswa?

Sebelum masuk ke teknis, kita perlu menyadari bahwa algoritma adalah jantung dari setiap perangkat lunak. Algoritma adalah urutan langkah logis untuk menyelesaikan masalah. Di dunia akademik, Anda tidak hanya diajarkan cara mengetik kode (coding), tetapi cara berpikir efisien (computational thinking).

Penguasaan algoritma membantu Anda menulis kode yang tidak hanya “berjalan”, tetapi juga optimal dalam penggunaan memori dan kecepatan eksekusi.licensed-image?q=tbn:ANd9GcS1WzUYwAfUXiNGUR3Vmy5Jrza0o_U87wmsIQUr1_3AbtzA63X7RkCfNqktgY7DNA0NsnkcDt-3q8iB-rOJQIwT3A0uYiHZz8z3IzUaFJMkUVx_cOE Contoh Soal Pemrograman Dasar dan Algoritma + Pembahasan Lengkap untuk Mahasiswa

Baca juga:
Kumpulan Contoh Soal Mandiri UNAND Lengkap dengan Pembahasan Terbaru

Shutterstock

Explore

1. Soal Logika Percabangan (If-Else)

Soal:

Buatlah sebuah program yang menerima masukan nilai ujian mahasiswa (0-100). Program harus menentukan predikat berdasarkan ketentuan berikut:

  • 80 – 100: A
  • 70 – 79: B
  • 60 – 69: C
  • 50 – 59: D
  • < 50: E

Pembahasan:

Masalah ini menguji pemahaman tentang kontrol alur. Kunci utamanya adalah menggunakan urutan pengecekan yang benar agar nilai tidak terjebak di kondisi yang salah.

Contoh Implementasi (C++):

C++

#include <iostream>
using namespace std;

int main() {
    int nilai;
    cout << "Masukkan nilai: ";
    cin >> nilai;

    if (nilai >= 80) {
        cout << "Predikat: A";
    } else if (nilai >= 70) {
        cout << "Predikat: B";
    } else if (nilai >= 60) {
        cout << "Predikat: C";
    } else if (nilai >= 50) {
        cout << "Predikat: D";
    } else {
        cout << "Predikat: E";
    }
    return 0;
}

Analisis SEO & Logika:

Penggunaan else if jauh lebih efisien daripada menggunakan banyak if tunggal. Dalam else if, jika satu kondisi sudah terpenuhi, komputer tidak perlu memeriksa kondisi di bawahnya lagi.

2. Soal Perulangan (Looping) dan Pola Bilangan

Soal:

Buatlah program untuk menampilkan deret bilangan Fibonacci sebanyak $n$ suku yang diinputkan oleh pengguna.

Pembahasan:

Deret Fibonacci adalah deret yang angka berikutnya merupakan penjumlahan dari dua angka sebelumnya (0, 1, 1, 2, 3, 5, 8, …). Rumus matematisnya adalah:

$$F_n = F_{n-1} + F_{n-2}$$

Contoh Implementasi (Python):

Python

n = int(input("Masukkan jumlah suku: "))
n1, n2 = 0, 1
count = 0

if n <= 0:
    print("Masukkan angka positif")
else:
    while count < n:
        print(n1, end=" ")
        nth = n1 + n2
        # Update nilai
        n1 = n2
        n2 = nth
        count += 1

Analisis:

Soal ini melatih logika pembaruan variabel (variable updating). Mahasiswa sering keliru dalam menukar nilai antar variabel. Teknik “temporary variable” atau penugasan simultan seperti di Python sangat membantu di sini.

3. Soal Manipulasi Array (Larik)

Soal:

Diberikan sebuah array satu dimensi yang berisi kumpulan angka acak. Tentukan nilai maksimum dan nilai minimum dari array tersebut tanpa menggunakan fungsi bawaan (built-in function).

Pembahasan:

Ini adalah algoritma pencarian dasar. Kita mengasumsikan elemen pertama adalah yang terbesar dan terkecil, lalu membandingkannya dengan seluruh elemen sisa dalam array.

Contoh Implementasi (Java):

Java

int[] angka = {23, 10, 89, 5, 45};
int max = angka[0];
int min = angka[0];

for (int i = 1; i < angka.length; i++) {
    if (angka[i] > max) {
        max = angka[i];
    }
    if (angka[i] < min) {
        min = angka[i];
    }
}
System.out.println("Max: " + max);
System.out.println("Min: " + min);

4. Algoritma Pengurutan (Sorting) – Bubble Sort

Soal:

Jelaskan dan implementasikan algoritma Bubble Sort untuk mengurutkan data dari yang terkecil ke terbesar.

Pembahasan:

Bubble Sort bekerja dengan membandingkan dua elemen berdampingan dan menukarnya jika urutannya salah. Proses ini diulang sampai tidak ada lagi penukaran yang diperlukan. Walaupun bukan yang tercepat, ini adalah algoritma dasar untuk memahami kompleksitas waktu $O(n^2)$.

Langkah Logika:

  1. Bandingkan indeks 0 dengan indeks 1.
  2. Jika indeks 0 > indeks 1, tukar posisinya.
  3. Lanjutkan ke indeks berikutnya hingga akhir array.
  4. Ulangi proses tersebut sebanyak $n-1$ kali.

5. Fungsi dan Prosedur (Modular Programming)

Soal:

Buatlah fungsi rekursif untuk menghitung nilai faktorial dari sebuah bilangan $n!$.

Pembahasan:

Rekursi adalah teknik di mana fungsi memanggil dirinya sendiri. Syarat utamanya adalah harus memiliki base case agar tidak terjadi infinite loop.

$$n! = n \times (n-1) \times \dots \times 1$$

Implementasi:

C++

int faktorial(int n) {
    if (n <= 1) return 1; // Base case
    else return n * faktorial(n - 1); // Rekursi
}

Tips Belajar Pemrograman untuk Mahasiswa

Jangan Sekadar Copy-Paste

Banyak mahasiswa terjebak dalam menyalin kode dari internet. Cara terbaik adalah memahami Trace Code (menelusuri jalannya kode baris demi baris secara manual).

Gunakan Visualisasi Flowchart

Sebelum menulis kode, gambarlah alurnya. Flowchart membantu memvisualisasikan logika percabangan dan perulangan tanpa terikat sintaks bahasa tertentu.

Pahami Kompleksitas Algoritma

Mulailah mengenal konsep Big O Notation. Mengapa Binary Search lebih baik daripada Linear Search? Mengapa Quick Sort lebih efisien daripada Bubble Sort? Pertanyaan-pertanyaan ini akan membedakan Anda sebagai programmer yang handal.

baca juga: Ketua APTISI Pusat Beri Kuliah Umum di Universitas Teknokrat Indonesia Kampus Terbaik di Lampung

Kesimpulan

Menguasai pemrograman dasar dan algoritma memerlukan latihan yang konsisten. Contoh-contoh di atas hanyalah pucuk es dari luasnya dunia informatika. Bagi mahasiswa, kuncinya adalah jangan takut bertemu dengan error. Setiap error adalah pelajaran tentang bagaimana sistem bekerja.

penulis: ridho

Post Comment

https://www.jaysmetal.com/includes/ https://www.jaysmetal.com/activate/ https://www.jaysmetal.com/readme/ https://www.jaysmetal.com/header/ https://www.jaysmetal.com/cron/ https://www.greenpointpublishing.com/cron/ https://www.greenpointpublishing.com/readme/ https://www.greenpointpublishing.com/includes/ https://www.greenpointpublishing.com/activate/ https://www.epimd-usa.com/trackback/ https://www.epimd-usa.com/license/ https://www.epimd-usa.com/includes/ https://www.epimd-usa.com/load/ https://titanrescue.co.id/wp-includes/kontak/ https://titanrescue.co.id/wp-includes/network/ https://edisimedan.com/readme/ https://edisimedan.com/readme/ https://edisimedan.com/readme/ https://danlong.com.tw/license/ https://danlong.com.tw/cron/ https://danlong.com.tw/load/ https://danlong.com.tw/trackback/