Tutorial Membuat Program C++ Rekap Data Mahasiswa

Pada postingan kali ini, Saya akan membagikan program yang dapat melakukan perekapan data mahasiswa beserta nilai mata kuliahnya. Kelebihan dari program ini ialah dapat menyimpan data mahasiswa tersebut selama program belum pernah terhapus, dengan kata lain program ini menggunakan database. Bila dibandingkan dengan program yang sebelumnya pernah Saya posting, program ini lumayan panjang dan rumit untuk dipahami. Oke, kalau begitu, mari langsung saja masuk ke dalam pembahasan mengenai tutorial pembuatan program c++ rekap data mahasiswa.

Program C++ Rekap Data Mahasiswa
Output Program C++ Rekap Data Mahasiswa

Pada program ini, terdapat satu class, yaitu class mahasiswa. Kemudian, terdapat 13 method, yaitu diantaranya:

  1. void calculate()
  2. void getdata()
  3. void showdata()
  4. void show_tabular()
  5. void write_mahasiswa()
  6. void display_all()
  7. void display_sp(int n)
  8. void modify_mahasiswa()
  9. void delete_mahasiswa()
  10. void class_result()
  11. void result()
  12. void entry_menu()
  13. int main()
1. Pertama-tama, buatlah project baru terlebih dahulu di dalam software CodeBlocks. Terserah dengan nama apapun. Kemudian, masukkan list mengenai heading-nya terlebih dahulu:
/*--
Program Design By
URL: Lusdyana.blogspot.com
Name: Lusiana Haryanti
--*/
#include <conio.h> //header conio.h
#include <iostream> //header iostream
#include <stdio.h> //header stdio.h
#include <cstdlib> //header csdlib
#include <string.h> //header string.h
#include <fstream> //header fstream
#include <iomanip> //header iomanip
#include <windows.h> //header windows.h
#include <stdlib.h> //header stdlib.h

    using namespace std;

    //***************************************************************
    //                   CLASS USED IN PROJECT
    //****************************************************************
2. Setelah headingnya berhasil dibuat, sekarang buatlah class dari program tersebut, yaitu class mahasiswa. Disertai dengan deklarasi variable-variable yang akan dipakai.
class mahasiswa //funsi kelas mahasiswa
    {
     int nim; //inisialisasi variabel nim
     char nama[50]; //inisialisasi vaiabel nama menggunakan char, jumlah maksimum kata adalah 50
     int nilai_inggris,nilai_matdis,nilai_alpro,nilai_elektronika,nilai_indo; //inisiasli variabel nilai_inggris,nilai_matdis,nilai_alpro,nilai_elektronika,nilai_indo
     float per; //inisialisasi per menggunakan float
     char peringkat; //inisialisasi peringkat menggunakan char
3. Method yang pertama dibuat adalah method calculate() yang berfungsi untuk menghitung nilai mata kuliah yang nantinya akan diinputkan nilainya oleh kita.
     void calculate() //fungsi prosedur calculate
    {
      per=(nilai_inggris+nilai_matdis+nilai_alpro+nilai_elektronika+nilai_indo)/5.0; //nilai per adalah (nilai_inggris+nilai_matdis+nilai_alpro+nilai_elektronika+nilai_indo)/5.0
     if(per>=60)
       peringkat='A'; //jika nilai per lebih besar sama dengan 60 maka peringkatnya A
     else if(per>=50 && per<60)
      peringkat='B'; //jika nilai per lebih besar sama dengan dari 50 dan lebih kecil dari 60 maka peringkatnya B
     else if(per>=33 && per<50)
     peringkat='C'; //jika nilai per lebih besar sama dengan dari 33 dan lebih kecil dari 50 maka peringkatnya C
    else
     peringkat='F'; //jika nilai per tidak memenuhi semua diatas maka peringkatnya F
    }
4. Kemudian, untuk mendapatkan data dari mahasiswa yang akan kita inputkan, maka buatlah method getdata() dengan menggunakan prosedur public: agar dapat diakses oleh class lain.
public: // suatu pengenal atau pengidentifikasi yang kita deklarasikan agar kompiler dapat mengenali pada anggota pribadi dari kelas dasar hanya dapat diakses oleh anggota yang kelas dasar
        void getdata() //fungsi prosedur getdata
        {
         cout<<"\nMasukkan NIM Mahasiswa: "; //keluaran
         cin>>nim; //masukkan
         cout<<"\n\nMasukkan Nama Mahasiswa :"; //keluaran
         cin>>gets(nama); //masukkan
         cout<<"\nMasukkan Nilai Bahasa Inggris : "; //keluaran
         cin>>nilai_inggris; //masukan
         cout<<"\nMasukkan Nilai Matematika Diskrit : "; //keluaran
         cin>>nilai_matdis; //masukan
         cout<<"\nMasukkan Nilai Struktur Data : "; //keluaran
         cin>>nilai_alpro; //masukan
         cout<<"\nMasukkan Nilai Elektronika : "; //keluaran
         cin>>nilai_elektronika; //masukan
         cout<<"\nMasukkan Nilai Bahasa Indonesia : "; //keluaran
         cin>>nilai_indo; //masukan
        calculate(); //memanggil fungsi calculate
         }
5. Untuk menampilkan data keseluruhan dari mahasiswa yang nantinya kita inputkan, maka dibuatlah method showdata().
void showdata() //kelas prosedur showdata
        {
         cout<<"\nNIM Mahasiswa : "<<nim;
         cout<<"\nNama Mahasiswa : "<<nama;
         cout<<"\nNilai Inggris : "<<nilai_inggris;
         cout<<"\nNilai Matematika Diskrit : "<<nilai_matdis;
         cout<<"\nNilai Struktur Data : "<<nilai_alpro;
         cout<<"\nNilai Elektronika : "<<nilai_elektronika;
         cout<<"\nNilai Bahasa Indoneisa :"<<nilai_indo;
         cout<<"\nRata-Rata Nilai :"<<setprecision(2)<<per;
         cout<<"\nPeringkat Mahasiswa Tersebut :"<<peringkat;
         }
6. Nah, setelah itu, buatlah database dengan menggunakan fstream fp; dan mahasiswa st;.
void show_tabular() //kelas prosedur show_tabular
         {
         cout<<nim<<setw(12)<<nama<<setw(10)<<nilai_inggris<<setw(3)<<nilai_matdis<<setw(3)<<nilai_alpro<<setw(3)<<nilai_elektronika<<setw(3)<<nilai_indo<<setw(6)<<setprecision(3)<<per<<"   "<<peringkat<<endl;
         }

      int  renim()
      {return nim;}

    };         //akhri dari semua fungsi class



    //***************************************************************
    //      deklarasi global untuk stream object, object
    //****************************************************************

     fstream fp; //untuk membuat file database
     mahasiswa st; //dengan nama mahasiswa
7. Setelah kutipan program diatas sudah selesai diketikkan, ketiklah source code berikut ini.
//***************************************************************
    //      fungsi untuk membuat catatan di dalam file
    //****************************************************************

    void write_mahasiswa()
       {
        fp.open("mahasiswa.dat",ios::out|ios::app);
        st.getdata();
        fp.write((char*)&st,sizeof(mahasiswa));
        fp.close();
        cout<<"\n\nCatatan Mahasiswa Telah Dibuat ";
        system("pause");
       }


    //***************************************************************
    //      fungsi untuk membaca semua data yang ada di dalam file
    //****************************************************************


    void display_all()
    {
        cout<<"\n\n\n\t\tTunjukkan Semua Data !!!\n\n";
        fp.open("mahasiswa.dat",ios::in);
        while(fp.read((char*)&st,sizeof(mahasiswa)))
        {
         st.showdata();
         cout<<"\n\n=================================================\n";
         system("pause");
         }
        fp.close();
        system("pause");
    }


    //***************************************************************
    //      fungsi untuk membaca catatan tertentu dari file
    //****************************************************************


    void display_sp(int n)
    {
        int flag=0;
        fp.open("mahasiswa.dat",ios::in);
        while(fp.read((char*)&st,sizeof(mahasiswa)))
        {
         if(st.renim()==n)
            {
             st.showdata();
             flag=1;
            }
        }
        fp.close();
    if(flag==0)
     cout<<"\n\nCatatan Tidak Ada";
    system("pause");
    }


    //***************************************************************
    //      fungsi untuk memodifikasi catatan di dalam file
    //****************************************************************


    void modify_mahasiswa()
    {
        int no,found=0;
        cout<<"\n\n\tUntuk Mengubah ";
        cout<<"\n\n\tMasukkan NIM Mahasiswa yang Ingin Dirubah :";
        cin>>no;
        fp.open("mahasiswa.dat",ios::in|ios::out);
        while(fp.read((char*)&st,sizeof(mahasiswa)) && found==0)
           {
            if(st.renim()==no)
               {
                st.showdata();
                cout<<"\nMasukkan Data Baru Untuk Mahasiswa Ini :"<<endl;
                st.getdata();
                int pos=-1*sizeof(st);
                fp.seekp(pos,ios::cur);
                fp.write((char*)&st,sizeof(mahasiswa));
                cout<<"\n\n\t Catatan Sudah Dibuat\n\n";
                found=1;
               }
             }
        fp.close();
        if(found==0)
        cout<<"\n\n Catatan Tidak Ada ";
        system("pause");
    }


    //***************************************************************
    //      fungsi untuk menghapus catatan di dalam file
    //****************************************************************


    void delete_mahasiswa()
       {
        int no;
        cout<<"\n\n\n\tHapus Catatan";
        cout<<"\n\nTulis NIM Mahasiswa yang Ingin Dihapus :";
        cin>>no;
        fp.open("mahasiswa.dat",ios::in|ios::out);
        fstream fp2;
        fp2.open("Temp.dat",ios::out);
        fp.seekg(0,ios::beg);
        while(fp.read((char*)&st,sizeof(mahasiswa)))
        {
         if(st.renim()!=no)
            {
             fp2.write((char*)&st,sizeof(mahasiswa));
             }
         }
        fp2.close();
        fp.close();
        remove("mahasiswa.dat");
        rename("Temp.dat","mahasiswa.dat");
        cout<<"\n\n\tCatatan Dihapus ..";
        system("pause");
        }


    //***************************************************************
    //      fungsi untuk menampilkan semua laporan
    //****************************************************************

        void class_result()
        {
         fp.open("mahasiswa.dat",ios::in);
         if(!fp)
         {
           cout<<"ERROR!!! Catatan Tidak Ada\n\n\n Tolong Untuk Masuk ke Menu Entri Untuk Membuat Data";
           cout<<"\n\n\n Program Ditutup ....";
           exit(0);
         }

         cout<<"\n\n\t\tTunjukkan Semua Record Data Mahasiswa \n\n";
          cout<<"==========================================================\n";
          cout<<"NIM    Name          I  M  A  E  In  Rata-rata Peringkat\n";
          cout<<"==========================================================\n";

          while(fp.read((char*)&st,sizeof(mahasiswa)))
         {
           st.show_tabular();
        }
         fp.close();
         system("pause");
    }




    //***************************************************************
    //      Fungsi untuk membuka hasil
    //****************************************************************

       void result()
       {
        int ans,rno;
        char ch;
        cout<<"\n\n\nRESULT MENU";
        cout<<"\n\n\n1. Semua Hasil\n\n2. Hasil Salah Satu Mahasiswa\n\n3.Back to Main Menu";
        cout<<"\n\n\nEnter Choice (1/2)? ";
        cin>>ans;
        switch(ans)
        {
         case 1 : class_result();break;
         case 2 : {
            do{
            char ans;
            cout<<"\n\nMasukkan NIM Mahasiswa : ";
            cin>>rno;
            display_sp(rno);
            cout<<"\n\nIngin Melihat Catatan yang Lain? (y/n)?";
            cin>>ans;
            }while(ans=='y'||ans=='Y');

            break;
               }
         case 3: break;
         default:  cout<<"\a";
        }
     }

    //***************************************************************
    //      ENTRY / EDIT MENU FUNCTION
    //****************************************************************
    void entry_menu()
    {
      char ch2;
      cout<<"\n\n\n\tENTRY MENU";
      cout<<"\n\n\t1.Membuat Catatan Mahasiswa";
      cout<<"\n\n\t2.Tampilkan Semua Catatan Mahasiswa";
      cout<<"\n\n\t3.Cari Catatan Mahasiwa ";
      cout<<"\n\n\t4.Rubah Catatan Mahasiswa";
      cout<<"\n\n\t5.Hapus Catatan Mahasiswa";
      cout<<"\n\n\t6.Kembali ke Main Menu";
      cout<<"\n\n\tPilih salah satu (1-6) ";
      ch2=getche();
      switch(ch2)
      {
        case '1': system("CLS");
              write_mahasiswa();
              break;
        case '2': display_all();break;
        case '3':
               int num;
               system("CLS");
               cout<<"\n\n\tMasukkan Nomor Induk Mahasiswa ";
               cin>>num;
               display_sp(num);
               break;
          case '4': modify_mahasiswa();break;
          case '5': delete_mahasiswa();break;
          case '6': break;
          default:cout<<"\a";entry_menu();
       }
    }


    //***************************************************************
    //      Fungsi main di dalam program
    //****************************************************************


    int main()
    {
      char ch;
        void gotoxy (int x, int y);
      do
        {
          system("CLS");
          cout<<"\n\n\n\tMAIN MENU";
          cout<<"\n\n\t01. Hasil Menu";
          cout<<"\n\n\t02. Masukkan/Edit Data";
          cout<<"\n\n\t03. Exit";
          cout<<"\n\n\tPilihlah Salah Satu dari Ketiga Pilihan (1-3) ";
          ch=getche();
          switch(ch)
          {
             case '1': system("CLS");
                   result();
                   break;
              case '2': entry_menu();
                    break;
              case '3':exit(0);
              default :cout<<"\n";
        }
        }while(ch!='3');
        return 0;
    }
8. Setelah selesai, cobalah untuk me-running program tersebut.

Demikianlah yang bisa Saya sampaikan pada postingan kali ini. Apabila ada yang kurang jelas, silahkan ditanyakan di dalam kolom komentar. Ingat, Saya tidak menyarankan Anda untuk meng-copy paste program tersebut secara langsung. Saya lebih menyarankan Anda untuk mengetik ulang program tersebut ke dalam software compiler milik Anda agar Anda lebih memahami struktur yang terkandung di dalam program tersebut di atas.
Share on Google Plus

About Unknown

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.
    Blogger Comment
    Facebook Comment

0 comments:

Posting Komentar