Blog ini adalah sebuah rangkuman tulisan dari berbagai sahabat blogger lainnya,dan tidak lupa pula kami akan memberi link sumbernya.Terima kasih

Minggu, 26 Desember 2010

Tutorial Menghitung IP Mahasiswa



 #include<iostream.h>
#include<stdlib.h>
#include<string.h>


Bagian ini merupakan bagian preprocessor program. Berisi perintah include, yang digunakan untuk menyisipkan file library atau program C++. Dalam program ini, yang digunakan adalah library iostream.h, stdlib.h, string.h.

class mhs
{
       private:
       char nama[24];
       int jml_mk,nilai[24],sks[24];

       public:
       mhs();
       void input_data();
       void nama_mhs(char *);
       int jum_matkul();
       int jum_sks();
       float ip();
};


Pada bagian ini merupakan pendefinisian dari class mhs, yang berisi Private dan Public Variable.

Pada Private berisi :
  1. Array “nama” dengan panjang 24 dan bertipe char.
= untuk menyimpan nama dari mahasiswa.
  1. “jml_mk” dengan tipe data integer.
= untuk menyimpan jumlah mata kuliah yang diambil.
  1. Array “nilai” dengan panjang 24 dan bertipe integer.
= untuk menyimpan nilai.
  1. Array “sks” dengan panjang 24 dan bertipe integer.
= untuk menyimpan jumlah sks.

Sedangkan pada Public berisi method-method seperti mhs(),void input_data(),void nama_mhs(char *), int jum_matkul(), int jum_sks(), float ip().


mhs::mhs()
{
       int i;
       strcpy(nama,"NULL");
       jml_mk=0;
       for(i=0;i<24;i++)
       {
              nilai[i]=5;
              sks[i]=0;
       }
}

Bagian ini merupakan Constructor


void mhs::input_data()
{
       int i;
       char bf[30];
Array bf bertipe char dengan panjang 30 berfungsi sebagai buffer sementara, untuk selanjutnya diubah ke tipe data lain.




       cout << "Nama Mahasiswa = ";
       cin.getline(nama,24);
Bagian ini untuk meminta masukkan dari user berupa nama mahasiswa. Penggunaan getline, agar spasi tidak dianggap oleh C++ sebagai enter. Sehingga nama dengan 2 kata atau lebih bisa masuk.




       while((jml_mk<1)||(jml_mk>24))
       {
              cout << "Jumlah mata kuliah = ";
              cin.getline(bf,30);
Memasukkan jumlah mata kuliah, ke dalam buffer sementara(bf).




              jml_mk=atoi(bf);
Memasukkan isi dari bf ke dalam jml_mk dengan perintah atoi(alphanumeric to integer). Sehingga jika memasukkan karakter akan dianggap sebagai angka 0.





    if((jml_mk<1)||(jml_mk>24))
                     cout << "Masukkan angka 1-24\n\n";
       }
Jika masukan salah(lebih dari 24 atau kurang dari 1), dengan asumsi maksimal mahasiswa dapat mengambil maksimal 24 sks dan tiap mata kuliah 1 sks. Maka akan muncul peringatan.





       for(i=0;i<jml_mk;i++)
       {
              while((nilai[i]<0)||(nilai[i]>4)||(strlen(bf)>1))
              {
                     cout << "\nNilai mata kuliah " << (i+1) << " = ";
                     cin.getline(bf,30);
Memasukkan nilai  mata kuliah i+1, ke dalam buffer sementara(bf).



                     nilai[i]=(int)bf[0];
Memasukkan isi dari bf ke dalam nilai[i] dengan perintah int. Agar nilai yang diinputkan(berupa huruf) diubah ke dalam bentuk kode  angka.



                     if(nilai[i]<70) nilai[i]=69-nilai[i];
                           else nilai[i]=101-nilai[i];
                     if((nilai[i]<0)||(nilai[i]>4)||(strlen(bf)>1))
                     cout << "Masukkan huruf A-E atau a-e\n";
              }
Kode angka tersebut dikenali sebagai huruf dari A-E / a-e. Jika selain itu maka akan ada peringatan.


              while((sks[i]<1)||(sks[i]>4))
              {
                     cout << "Jumlah SKS mata kuliah " << (i+1) << " = ";
                     cin.getline(bf,30);
Memasukkan jumlah sks  mata kuliah i+1, ke dalam buffer sementara(bf).



                     sks[i]=atoi(bf);
Memasukkan isi dari bf ke dalam jml_mk dengan perintah atoi(alphanumeric to integer). Sehingga jika memasukkan karakter akan dianggap sebagai angka 0.



                     if((sks[i]<1)||(sks[i]>4))
                           cout << "Masukkan angka 1-4\n\n";
              }

       }
}
Jika masukan salah(lebih dari 4 atau kurang dari 1), dengan asumsi sks maksimal tiap mata kuliah adalah 4.. Maka akan muncul peringatan.

void mhs::nama_mhs(char *s)
{
       strcpy(s,nama);
}

Method untuk menampilkan nama mahasiswa



int mhs::jum_matkul()
{
       return (jml_mk);
}
Method untuk menampilkan jumlah mata kuliah



int mhs::jum_sks()
{
       int i,j;
       j=0;
       for(i=0;i<jml_mk;i++) j+=sks[i];
       return(j);
}
Method untuk menghitung jumlah sks. J adalah variable untuk menyimpan jumlah sks. Program akan mengulang dari 0 sampai banyaknya jml_mk. Untuk menjumlah j dengan sks[i].


float mhs::ip()
{
       int i,j_sks,total;
       j_sks=0;
       total=0;
       for(i=0;i<jml_mk;i++)
       {
              j_sks+=sks[i];
              total+=(nilai[i]*sks[i]);
       }
       return ((float)total/j_sks);
}
Method untuk menghitung IP berdasarkan input yang telah diterima program.
  • j_sks digunakan untuk menyimpan jumlah SKS.
  • total digunakan untuk menyimpan jumlah bobot nilai yang sudah dikalikan sks.
Program akan mengulang dari 0 sampai banyaknya jml_mk.
Dan nilai yang ditampilkan  (IP))adalah jumlah total di bagi jumlah j_sks.
int main()
{

       int i,jum_mhs;
       char bf[30],nama[24],user[24];

Pendeklarasian variable yang terdiri dari:
  1. “i” dengan tipe data integer
  2. “jum_mhs” dengan tipe data integer
= untuk menampung jumlah mahasiswa
  1. Array “bf” dengan panjang 30 dan bertipe char.
= untuk menyimpan data sementara dan selanjutnya diubah ke tipe data lain.
  1. Array “nama” dengan panjang 24 dan bertipe char.
= untuk menyimpan nama dari mahasiswa.
  1. Array “user” dengan panjang 24 dan  tipe data char.
= untuk menyimpan nama dari user program.

       mhs node[10];
Membuat objek node berdasarkan class yang sudah ada.


       cout << "Masukkan nama user : ";
       cin.getline(user,24);
       cout << "\nSelamat datang, " << user;
       cout << " di Program Menghitung IP mahasiswa\n\n";
Meminta masukkan nama dari user,dan menampilkannya di ucapan selamat datang.


       jum_mhs=0;
       while((jum_mhs<1)||(jum_mhs>10))
       {
              cout << "Masukkan Jumlah Mahasiswa yang akan dihitung = ";
              cin.getline(bf,30);
Memasukkan jumlah mahasiswa, ke dalam buffer sementara(bf).



              jum_mhs=atoi(bf);
Memasukkan isi dari bf ke dalam jml_mhs  dengan perintah atoi(alphanumeric to integer). Sehingga jika memasukkan karakter akan dianggap sebagai angka 0.

              if((jum_mhs<1)||(jum_mhs>10))
                     cout << "Masukkan angka 1-10\n\n";
       }
Jika masukan salah(lebih dari 10 atau kurang dari 1),maka akan muncul peringatan.


       for(i=0;i<jum_mhs;i++)
       {
              cout << "\nDATA MAHASISWA " << (i+1) << endl;
              node[i].input_data();
       }
Program akan mengulang dari 0 sampai banyaknya jum_mhs, yaitu memanggil method input_data.



       cout << endl << endl;
       cout << "|--------------------------|-------------|---------|----------|" << endl;
       cout << "|     Nama Mahasiswa       |   Jumlah    | Jumlah  |    IP    |" << endl;
       cout << "|                          | Mata Kuliah |   SKS   |          |" << endl;
       cout << "|--------------------------|-------------|---------|----------|" << endl;

       for(i=0;i<jum_mhs;i++)
       {
              cout.setf(ios::left|ios::showpoint);
              node[i].nama_mhs(nama);
              cout << "| ";
              cout.width(25);
              cout << nama;
              cout << "|      ";
              cout.width(7);
              cout << node[i].jum_matkul();
              cout << "|    ";
              cout.width(5);
              cout << node[i].jum_sks();
              cout << "|   ";
              cout.width(6);
              cout.precision(3);
              cout << node[i].ip();
              cout << " |\n";
        }

        cout << "|--------------------------|-------------|---------|----------|" << endl;

        cout << endl;
        return (0);
}

Menampilkan hasil-hasil perhitungan dan data-data dalam bentuk tabel

0 komentar:

Cari Artikel Disini

zwani.com myspace graphic comments

  • Web
  • melek-it

  • ShoutMix chat widget
    Related Posts Plugin for WordPress, Blogger...

    No Rek : 5310403115
    A/N : Joko Sugianto



    From Jakarta,Indonesia
    college STMIK Jakarta' Radio Dalam.