0% found this document useful (0 votes)
163 views

Source Code Uas-Pbo

This C++ program manages student attendance data. It defines a student class with attributes like name, attendance records, number of attendances, student number and percentage. It stores student objects in an array. Functions are used to input initial student data, record attendance each week, and finally recap attendance percentages. The main function allows the user to choose between inputting data, recording attendance, and recapping attendance data.
Copyright
© © All Rights Reserved
Available Formats
Download as RTF, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
163 views

Source Code Uas-Pbo

This C++ program manages student attendance data. It defines a student class with attributes like name, attendance records, number of attendances, student number and percentage. It stores student objects in an array. Functions are used to input initial student data, record attendance each week, and finally recap attendance percentages. The main function allows the user to choose between inputting data, recording attendance, and recapping attendance data.
Copyright
© © All Rights Reserved
Available Formats
Download as RTF, PDF, TXT or read online on Scribd
You are on page 1/ 3

#include<iostream>

#include<conio.h>
#include<fstream>
#include<cstring>

using namespace std;

class mahasiswa //class yang memuat data mahasiswa


{
public:
char nama[255];
char kehadiran[20][2];
int hadir=0;
int nim;
float persen;
};
mahasiswa mhs[40]; //objek dari class mahasiswa dibuat ARRAY

void dataMasuk(int i) //Fungsi ketika mengisi data2 awal mahasiswa (hanya


dilakukan sekali)
{
ofstream datamhs("data.dat"); //membuat file(database) yang memuat
data2 pada class mahasiswa
cout << "Input Data Mahasiswa Ke-" << i + 1 << endl;
cout << "NIM\t: "; cin >> mhs[i].nim;
cout << "Nama\t: "; cin >> mhs[i].nama;

datamhs.write((char*)&mhs, sizeof(mhs)); //menyimpan data


datamhs.close(); //menutup data

void dataPresensi(int j, int minggu) //fungsi ketika mahasiswa melakukan


presensi
{
cout << "Ket :" << endl;
cout << "1.(H)adir \n2.(A)bsen \n3.(I)zin \n4.(S)akit" << endl;
cout << "============================================" << endl;
ifstream bukadata("data.dat"); //membuka data yang sudah dibuat
bukadata.read((char*)&mhs, sizeof(mhs));

cout << mhs[j].nim <<"\t"<< mhs[j].nama<<"\t";


cout << "\t Kehadiran[H/A/I/S]: ";
fflush(stdin); //menghapus buffer
cin >> mhs[j].kehadiran[minggu]; //mengisi data kehadiran per pertemuan

ofstream simpandata("data.dat"); //menyimpan data yang telah diupdate


simpandata.write((char*)&mhs, sizeof(mhs));
bukadata.close();
simpandata.close();
}

void rekapData(int banyakMhs) //fungsi ketika semua data kehadiran direkap


{
int i, j;
int banding;
ifstream fileRekap("data.dat");
fileRekap.read((char*)&mhs, sizeof(mhs));

cout << "NIM\tNama\t\t1\t2\t3\t4\t5\t6\t7\t8\t9\t10\t%" << endl <<


endl;
for (i = 0; i < banyakMhs; i++)
{
cout << mhs[i].nim <<"\t"<< mhs[i].nama<<"\t\t";
for (j = 0; j < 10; j++)
{
cout << mhs[i].kehadiran[j]<<"\t";

banding = _strcmpi(mhs[i].kehadiran[j], "H"); //proses


mengambil nilai jika absensi H
if (banding == 0)
{
mhs[i].hadir += 1;
}
}
mhs[i].persen = mhs[i].hadir*100/10;
cout << mhs[i].persen;
cout << endl;
}

fileRekap.close();
}

int main()
{
int i, n = 5;
int x; int Minggu=0
;
int pilihan;
char lagi;
cout<<"
====================================================";cout<<endl;
cout<<"Program Absensi Mahasiswa PTIK Unimed ";cout<<endl;
cout<<"
====================================================";cout<<endl; cout<<endl;
cout << "Pilih Opsi" << endl;
cout << "1. Masukkan data Mahasiswa\n2. Cek Absensi Mahasiswa\n3. Rekap
Data Kehadiran" << endl;
cout << "======================" << endl;
cout << "Pilihan: ";
cin >> pilihan;
system("cls");
switch (pilihan)
{
case 1:
{
for (i = 0; i < n; i++)
{
dataMasuk(i);
system("cls");
}

} break;

case 2:
{
do{
cout << "============================================" <<
endl;
cout << "Absensi Minggu ke-" << Minggu + 1 << endl;
cout << "============================================" <<
endl;
for (x = 0; x < n; x++) //n merupakan banyaknya mahasiswa
{
dataPresensi(x, Minggu);
}
cout << "Absensi Minggu Berikutnya[Y/N]= ";
cin >> lagi;
Minggu++;
} while (lagi == 'y' || lagi == 'Y');

}
break;

case 3:
{
rekapData(n);
}
break;

default: cout << "pilihan salah";


}

getch();

You might also like