Fungsi, ADT BPJS
Lorem ipsum dolor sit amet consectetur adipisicing.
Masalah
Dalam pengelolaan data BPJS, terdapat beberapa tantangan yang sering dihadapi, seperti:
- Banyaknya data peserta yang perlu dikelola dengan rapi dan sistematis.
- Kesulitan dalam mencatat informasi penting seperti nama lengkap, tanggal lahir, dan fasilitas kesehatan (faskes).
- Potensi kesalahan input data secara manual yang dapat mengakibatkan ketidaksesuaian informasi.
- Kebutuhan akan sistem yang dapat menyimpan, mengolah, dan menampilkan data dengan format yang terstruktur.
Solusi
Untuk mengatasi masalah tersebut, dibuatlah program berbasis C++ dengan pendekatan struktur data. Berikut langkah-langkah solusinya:
-
Menggunakan Struktur Data: Data peserta disimpan dalam
struct
yang terdiri dari informasi seperti nama, tanggal lahir, NIK, dan faskes. - Input Data: Program memungkinkan pengguna untuk memasukkan data dengan format yang sudah ditentukan.
- Output Data: Data yang sudah dimasukkan dapat ditampilkan kembali dengan rapi.
- Pengolahan Dinamis: Data peserta dikelola secara dinamis menggunakan alokasi memori.
Video Penjelasan
Kode Program
Berikut adalah contoh kode program dalam C++ untuk menghitung properti tabung:
// Judul : BPJS Kesehatan Faskes Tingkat 1
// 20/11/24 oleh Kukuh Ramadhan
/*
123456789012
Kukuh Ramadhan Prastiyo
Tanggal Lahir : 11-11-2005
NIK : 1234567890223456
Faskes Tingkat I : X
*/
#include
using namespace std;
// Kamus :
struct Nama
{
string namaDepan;
string namaTengah;
string namaBelakang;
};
struct Tanggal
{
string tanggalLahir;
string bulanLahir;
string tahunLahir;
};
struct bpjsKes
{
string noPeserta;
Nama nama;
Tanggal tanggal;
string nik;
string faskes;
};
// Fungsi Prosedural
void inputPeserta(bpjsKes* peserta, int jumlahPeserta)
{
for (int i = 0; i < jumlahPeserta; i++) {
cout << "\nInput Data Peserta " << i + 1 << endl;
cout << "--------------------------------" << endl;
cout << "Masukkan No Peserta : ";
getline(cin, peserta[i].noPeserta);
cout << "Masukkan NIK : ";
getline(cin, peserta[i].nik);
cout << "Masukkan Nama Depan : ";
getline(cin, peserta[i].nama.namaDepan);
cout << "Masukkan Nama Tengah (Kosongkan Jika Tidak ada) : ";
getline(cin, peserta[i].nama.namaTengah);
cout << "Masukkan Nama Belakang (Kosongkan Jika Tidak ada) : ";
getline(cin, peserta[i].nama.namaBelakang);
cout << "Masukkan Tanggal Lahir : ";
cin >> peserta[i].tanggal.tanggalLahir;
cin.ignore();
cout << "Masukkan Bulan Lahir : ";
getline(cin, peserta[i].tanggal.bulanLahir);
cout << "Masukkan Tahun Lahir : ";
cin >> peserta[i].tanggal.tahunLahir;
cin.ignore();
cout << "Masukkan Nama Fasilitas Kesehatan I : ";
getline(cin, peserta[i].faskes);
}
}
void outputPeserta(const bpjsKes* peserta, int jumlahPeserta)
{
cout << "\nData Peserta yang telah diinput:" << endl;
cout << "=================================" << endl;
for (int i = 0; i < jumlahPeserta; i++) {
cout << "\nData Peserta " << i + 1 << endl;
cout << "--------------------------------" << endl;
cout << " " << peserta[i].noPeserta << endl;
cout << " " << peserta[i].nama.namaDepan << " " << peserta[i].nama.namaTengah << " " << peserta[i].nama.namaBelakang << endl;
cout << "Tanggal Lahir : " << peserta[i].tanggal.tanggalLahir << "-" << peserta[i].tanggal.bulanLahir << "-" << peserta[i].tanggal.tahunLahir << endl;
cout << "NIK : " << peserta[i].nik << endl;
cout << "Faskes Tingkat I : " << peserta[i].faskes << endl;
cout << "--------------------------------" << endl;
}
}
// Deskripsi :
int main()
{
int jumlahPeserta;
char lanjut;
do
{
cout << "Masukkan Jumlah Peserta FASKES Tingkat 1: ";
cin >> jumlahPeserta;
cin.ignore();
// Alokasi Dinamis untuk Peserta
bpjsKes* peserta = new bpjsKes[jumlahPeserta];
// Input Data Peserta
inputPeserta(peserta, jumlahPeserta);
// Output Data Peserta
outputPeserta(peserta, jumlahPeserta);
// Hapus Alokasi Dinamis
delete[] peserta;
cout << "\nApakah ingin input data lagi? (y/n): ";
cin >> lanjut;
cin.ignore();
} while (lanjut == 'Y' || lanjut == 'y');
cout << "Program Selesai";
return 0;
}