Memahami Contoh Pemrograman Terstruktur C++

Pemrograman terstruktur adalah paradigma pemrograman yang menekankan pada pemecahan masalah besar menjadi modul-modul yang lebih kecil dan terkelola. Dalam konteks C++, pemrograman terstruktur dicapai melalui penggunaan kontrol alur yang jelas (urutan, seleksi, dan perulangan), serta penggunaan fungsi (subrutin) untuk mengorganisasi kode. Ini adalah fondasi penting sebelum beralih ke pemrograman berorientasi objek (OOP).

MAIN() KONDISI PROSES Program Selesai

Ilustrasi sederhana alur kontrol dalam pemrograman terstruktur.

Prinsip Dasar Pemrograman Terstruktur

Tiga pilar utama yang mendefinisikan gaya terstruktur adalah:

  1. Urutan (Sequence): Pernyataan dieksekusi satu per satu sesuai urutannya.
  2. Seleksi (Selection): Menggunakan struktur seperti if-else atau switch untuk membuat keputusan berdasarkan kondisi tertentu.
  3. Perulangan (Iteration/Looping): Menggunakan for, while, atau do-while untuk mengulang blok kode beberapa kali.

Selain itu, penggunaan fungsi sangat penting. Fungsi memecah program menjadi unit-unit logis yang lebih kecil, meningkatkan keterbacaan, dan memfasilitasi penggunaan kembali kode (reusability).

Contoh Pemrograman Terstruktur C++

Berikut adalah contoh kode C++ sederhana yang mengimplementasikan konsep terstruktur, termasuk fungsi, seleksi, dan perulangan.

Kode Program: Menghitung Faktorial

Program ini akan meminta input angka dari pengguna, memvalidasi input (seleksi), dan kemudian menghitung faktorial menggunakan perulangan.


#include <iostream>

// Deklarasi Fungsi (Modul)
int hitungFaktorial(int n) {
    if (n < 0) {
        return -1; // Indikasi error untuk bilangan negatif
    }
    
    int hasil = 1;
    
    // Struktur Perulangan (Looping)
    for (int i = 1; i <= n; ++i) {
        hasil = hasil * i;
    }
    
    return hasil;
}

int main() {
    int angka;
    
    // Struktur Urutan (Input)
    std::cout << "Masukkan bilangan bulat non-negatif: ";
    std::cin >> angka;

    // Struktur Seleksi (Decision Making)
    if (angka < 0) {
        std::cout << "Error: Faktorial tidak didefinisikan untuk bilangan negatif.\n";
    } else {
        // Memanggil fungsi
        int faktorial = hitungFaktorial(angka);
        
        // Output Hasil
        std::cout << "Faktorial dari " << angka << " adalah: " << faktorial << "\n";
    }

    return 0;
}
        

Analisis Struktur Kode

Dalam contoh di atas, kita dapat melihat penerapan jelas dari pemrograman terstruktur:

Pendekatan ini menghilangkan penggunaan goto (yang sangat tidak dianjurkan dalam pemrograman terstruktur) dan memastikan bahwa eksekusi program mengalir secara logis dari awal hingga akhir, membuatnya mudah untuk diuji dan di-debug.

Manfaat Pemrograman Terstruktur

Mengadopsi gaya terstruktur, terutama saat belajar C++, memberikan manfaat signifikan:

  1. Keterbacaan (Readability): Kode menjadi lebih mudah diikuti karena alurnya yang linier dan terbagi dalam blok-blok fungsi yang jelas.
  2. Kemudahan Debugging: Jika terjadi kesalahan, pengembang dapat dengan cepat mengisolasi fungsi atau blok kontrol mana yang menyebabkan masalah.
  3. Pemeliharaan (Maintainability): Karena modul terpisah, perubahan pada satu bagian kecil program cenderung tidak merusak fungsionalitas di bagian lain, selama antarmuka fungsi tetap sama.

Meskipun C++ modern sangat mendukung OOP, pemahaman mendalam tentang pemrograman terstruktur tetap krusial. Semua program OOP pada akhirnya terdiri dari blok-blok terstruktur di dalam metode dan fungsi masing-masing kelas.