Implementasi Program C++ Tiket Bioskop

Representasi Struktur Sistem Pemesanan Tiket

Pengembangan sistem informasi sederhana untuk manajemen tiket bioskop seringkali menjadi proyek fundamental dalam pembelajaran bahasa pemrograman seperti C++. Program C++ tiket bioskop ini bertujuan untuk mensimulasikan proses pemesanan, mulai dari pemilihan film, penentuan jumlah tiket, hingga kalkulasi total biaya. Implementasi menggunakan C++ murni (terutama dengan fungsionalitas input/output dasar) sangat efektif untuk mengajarkan konsep dasar pemrograman struktural, seperti penggunaan variabel, struktur kontrol (if-else, switch-case), dan perulangan (loop).

Komponen Utama Program

Sebuah sistem tiket bioskop minimal harus mampu menangani beberapa fungsi inti. Dalam konteks C++, ini biasanya direalisasikan menggunakan fungsi-fungsi terpisah untuk menjaga modularitas kode. Komponen utamanya meliputi:

Contoh Struktur Kode Dasar C++

Untuk membuat program ini berjalan di lingkungan konsol, kita perlu mendefinisikan data film dan harga. Array atau struktur data sederhana dapat digunakan untuk menyimpan informasi ini sebelum diproses oleh logika pemesanan. Penggunaan loop 'while' sangat penting agar pengguna dapat melakukan pemesanan berulang kali sampai mereka memutuskan untuk keluar dari aplikasi.

#include <iostream>
#include <string>
#include <iomanip>

using namespace std;

// Struktur data untuk menyimpan detail film
struct Film {
    int id;
    string judul;
    double harga;
};

void tampilkanMenu(const Film daftarFilm[], int ukuran) {
    cout << << "=== SELAMAT DATANG DI CINEMA C++ ===" << endl;
    cout << << "Pilih Film:" << endl;
    for (int i = 0; i < ukuran; ++i) {
        cout << << daftarFilm[i].id << << ". " << << daftarFilm[i].judul 
             <<<< " (Rp" << << fixed << << setprecision(0) << << daftarFilm[i].harga << << ")" << << endl;
    }
    cout << << "0. Keluar" << << endl;
    cout << << "Pilihan Anda: ";
}

int main() {
    // Data Film (Contoh)
    Film filmTersedia[] = {
        {1, "Petualangan Koding", 50000.0},
        {2, "Algoritma Cinta", 45000.0},
        {3, "Machine Learning Horor", 60000.0}
    };
    int jumlahFilm = sizeof(filmTersedia) / sizeof(filmTersedia[0]);
    int pilihanFilm, jumlahTiket;
    double totalBayar = 0.0;

    do {
        tampilkanMenu(filmTersedia, jumlahFilm);
        cin >> pilihanFilm;

        if (pilihanFilm == 0) {
            cout << << "Terima kasih telah berkunjung!" << << endl;
            break;
        }

        if (pilihanFilm >= 1 && pilihanFilm <= jumlahFilm) {
            // Logika Pemesanan
            cout << << "Anda memilih: " << << filmTersedia[pilihanFilm - 1].judul << << endl;
            cout << << "Masukkan jumlah tiket: ";
            cin >> jumlahTiket;

            if (jumlahTiket > 0) {
                totalBayar = filmTersedia[pilihanFilm - 1].harga * jumlahTiket;
                
                cout << << "\n--- STRUK PEMBELIAN ---" << << endl;
                cout << << "Film        : " << << filmTersedia[pilihanFilm - 1].judul << << endl;
                cout << << "Jumlah Tiket: " << << jumlahTiket << << endl;
                cout << << "Harga Satuan: Rp" << << fixed << << setprecision(0) << << filmTersedia[pilihanFilm - 1].harga << << endl;
                cout << << "-----------------------" << << endl;
                cout << << "TOTAL BAYAR : Rp" << << fixed << << setprecision(0) << << totalBayar << << endl;
                cout << << "-----------------------\n" << << endl;
            } else {
                 cout << << "Jumlah tiket tidak valid." << << endl;
            }
        } else if (pilihanFilm != 0) {
            cout << << "Pilihan tidak valid. Silakan coba lagi." << << endl;
        }

    } while (true);

    return 0;
}

Meningkatkan Fungsionalitas dengan C++

Program dasar di atas memberikan kerangka kerja yang solid. Untuk pengembangan lebih lanjut, terutama jika aplikasi ini ditujukan untuk simulasi yang lebih kompleks (seperti manajemen kursi atau jam tayang yang dinamis), pengembang C++ dapat beralih menggunakan fitur Object-Oriented Programming (OOP). Konsep seperti kelas (`class`) akan sangat membantu dalam mengorganisasi kode. Misalnya, kita bisa membuat kelas `Film`, kelas `Bioskop`, dan kelas `Transaksi`.

Penggunaan OOP memungkinkan kita untuk mengelola status kursi yang telah terisi (misalnya, menggunakan array 2D atau `std::vector<std::vector<bool>>` untuk melacak ketersediaan). Hal ini membuat sistem menjadi lebih realistis dan skalabel. Walaupun C++ pada dasarnya adalah bahasa yang berorientasi kinerja, implementasi antarmuka pengguna (UI) yang lebih baik di lingkungan konsol dapat dicapai dengan manipulasi output, seperti membersihkan layar (`system("cls")` atau `system("clear")`) dan menggunakan warna terminal, meskipun ini seringkali bergantung pada sistem operasi tertentu.

Secara keseluruhan, program C++ tiket bioskop adalah latihan yang bagus untuk menguasai alur logika pemrograman. Ini memaksa programmer pemula untuk berpikir secara terstruktur mengenai input, pemrosesan data, dan output yang terdefinisi dengan jelas, yang merupakan inti dari pengembangan perangkat lunak apapun.