Program Menghitung Nilai Akhir Mahasiswa

Friday, 16 November 2018

Contoh Program Menghitung Nilai Akhir Mahasiswa
Disini saya akan berbagi contoh program untuk menghitung nilai akhir mahasiswa yang terdiri dari data mahasiswa, mata kuliah, dan dosen. Pada program ini saya menggunakan beberapa metode dalam c++ seperti array,percabangan(if),pemilihan(switch),perulangan(for),struct dan sortir(bubble sort). Sebelumnya saya akan menjelaskan dengan singkat apa pengertian dari metode yang saya pakai.

PERCABANGAN (IF)

Perintah IF berguna untuk memilih dua atau lebih alternative jawaban yang tersedia. Jika perintah IF tersebut terdiri dari dua atau lebih pernyataan, maka pernyataan tersebut harus berada di antara behind dan end. Pada perintah IF juga dapat pula diikuti oleh pernyataan majemuk.
Pada perintah IF terdapat 3 bentuk umum :
a.)    Perintah IF … ELSE
If (kondisi) {
Pernyataan 1
}
Else {
Pernyataan 2
}
b.)    Perintah IF dalam IF
If (kondisi1) {
If (kondisi2){
Pernyataan 1;
Else{
Pernyataan 2;
}
Else {
Pernyataan 3
}

c.)     Perintah IF Bertingkat
If (kondisi1){
Pernyataan 1;
}
Else if (kondisi2){
Pernyataan 2;
}
Else{
Pernyataan 3;
}

Berikut contoh potongan script percabangan dari program yang saya buat :


Gambar di atas menggunakan bentuk umum IF…Else dan IF dalam IF. Jika nilai melebihi angka 100, maka otomatis nilai pada variable yang ditentukan akan menjadi nilai tertingginya, namun jika tidak maka variable akan melakukan perhitungan melalui rumus yang sudah ditetapkan. Contohnya seperti variable “N_UAS”.

Untuk bentuk umum IF bertingkat seperti gambar ada di bawah ini : 


Nah, secara umum gambaran mengenai percabangan IF seperti 2 script di atas.Namun, terdapat percabangan lainnya sebagai alternative dari IF yang cukup simple terutama sebagai alternative dari IF bertingkat. Perintah itu disebut sebagai SWITCH.

PERCABANGAN (SWITCH)

Perintah SWITCH merupakan pernyataan yang dirancang untuk menangani pengambilan keputusan yang melibatkan sejumlah pilihan alternative yang diantaranya untuk menggantikan pernyataan IF bertingkat.
Bentuk umum dari switch sebagi berikut :
SWITCH (ekspresi) {
                Case konstanta1 :
                            Pernyataan 1;
                            Break;
                            Default :
                                 Pernyataan n; }


              Jadi, konsep dari perintah SWITCH ini hampir sama dengan perintah IF. Hanya saja pada SWITCH menggunakan konstanta untuk menjalankan pernyataan 1 dan command default yang berfungsi sama seperti Else pada percabangan IF. Pada script diatas saya menggunakan kode_kelas sebagai ekspresi pada SWITCH, lalu menggunakan angka “106” sebagai konstantanya. Jadi, ketika user memasukkan angka “106” maka output yang akan ditampilkan adalah variable “kelas” yang berisi “03TPLE006”.
                Namun, jika menginput nilai selain “106” makan perintah default akan dijalankan. Oh iya, untuk konstantanya tersebut tidak harus 106, itu tergantung kalian yang buat program ingin diisi angka berapa.

PERULANGAN (for)

                Perintah pengulangan digunakan untuk melakukan suatu proses berulang-ulang, jika suatu kondisi dipenuhi atau sebaliknya. Biasanya perulangan digunakan untuk mengulang proses pemasukan data dan mengulang proses penampilan hasil pengolahan pada data. Perulangan pada for ini merupakan salah satu perintah pengulangan yang umum dipakai, sebagai berikut :
FOR (ungkapan1;keadaan;ungkapan3) {
                            Pernyataan;
}
                Bentuk di atas memiliki arti :
1.       Ungkapan1 adalah inisialisasi terhadap variable pengendali looping.
2.       Keadaan adalah kondisi untuk keluar dari looping.
3.       Ungkapan3 adalah pengaturan kenaikan atau penurunan nilai variable pengendali looping.


                Pada script yang saya buat, saya menggunakan variable “z” sebagai ungkapan1-nya dengan menginisialisasi z bernilai 1. Untuk keadaan pada script di atas, saya menggunakan variable x sebagai keadaan untuk keluar dari looping yang dimana x itu adalah jumlah mahasiswa yang akan di input. Jika yang di input <=5 maka akan mengarah ke bagian “inputan:”, namun jika di atas 5 maka akan mengarah kembali ke bagian “awal:”

ARRAY
                Array merupakan koleksi data dimana setiap elemen memakai nama dan tipe yang sama serta setiap elemen diakses dengan membedakan indeks array-nya. Array memiliki 3 jenis, yaitu :
a.)    Array Dimensi Satu
b.)    Array Dimensi Dua
c.)     Array Dimensi Banyak
Di script yang saya buat ini menggunakan array dimensi satu yang berbentuk :
Tipe nama_variabel [ukuran array];



Biasanya array digunakan bersamaan dengan for. Pada script di atas, saya menggunakan array 1 dimensi bersamaan dengan perintah for dan menginisialisasi “z” sebagai angka 1, karena saya akan memulai indeks array tersebut dari angka 1. Array akan menyimpan data yang dimasukkan kedalam tiap variable di indeks 1 dan indeks seterusnya sampai perulangan selesai.
Jadi ketika pada hasil output, indeks array akan dipanggil dengan menggunakan fungsi for dan menampilkan data sesuai peyimpanan yang sudah dimasukkan pada tiap indeks.


STRUCT

Structure adalah sekumpulan variable yang masing-masing tipe datanya berbeda dan dikelompokan kedalam satu nama. Struktur membiarkan sekelompok variable diperlakukan sebagai satu unit.
Struktur memiliki bentuk umum sebagai berikut :
                Struct mahasiswa {
                                Int Tugas,N_Tugas,UTS,N_UTS,UAS,N_UAS,N_akhir,absen;
                                Float N_absen;
                                String grade;
                                Long int nim;
                                Char nama;
};


             Berdasarkan script di atas, untuk nilai dan data mahasiswa dijadikan satu dalam struct yang bernama “Data”  dan dideklarasikan dengan huruf “f”. untuk pemberian nama variable pada struct Data dapat dilakukan setelah akhir kurung kurawal pada struct dan diakhiri dengan titik koma atau dilakukan di dalam tubuh programnya, seperti script di bawah ini.

SORTING (BUBBLE SORT)

Bubble sort adalah suatu metode pengurutan yang membandingkan elemen yang sekarang dengan elemen berikutnya. Pembandingan alamatnya dapat dimulai dari data yang paling awal atau yang paling akhir. Apabila elemen yang sekarang(sebelumnya) lebih besar dari elemen berikutnya, maka posisi ditukar, kalau tidak posisinya tetap atau tidak bertukar.


Script di atas merupakan pengurutan bubble sort secara ascending dengan mengurutkan nama mahasiswa. Perulangan pada bubble sort ini menggunakan fungsi for dan if juga untuk memindahkan data yang sudah terisi ke data sementara. Biasanya data sementaranya itu bernama/bervariabel “temp”. pada perulangan ke-2, m diisi dengan nilai 1 karena pada array dimulai dari indeks 1.
Sebelumnya, strcmp yang ada pada kondisi di fungsi IF adalah Untuk pengurutan nama mahasiswa menggunakan fungsi IF, kondisi dimana nilai ASCII pada nama mahasiswa lebih besar dari 0 maka akan dilakukan pertukaran nama mahasiswa ( diurutkan dari huruf terkecil ke besar ). Dan untuk strcpy merupakan fungsi yang digunakan untuk menyalin string asal ke variable string tujuan.
Strcpy (variable tujuan, variable asal);


          Script di atas merupakan pengurutan bubble sort secara descending dengan mengurutkan berdasarkan nilai akhir mahasiswa. Konsepnya sama seperti bubble sort ascending yang sudah dibahas di atas, namun disini menggunakan kondisi IF yang dimana ketika nilai akhir indeks 1 lebih kecil dari nilai akhir indeks berikutnya, maka akan dilakukan penukaran data pada array. Untuk merubahnya menjadi ascending, cukup mengganti operasi kurang dari “<” menjadi lebih dari “>” yang ada di dalam kondisi IF.
                Dikarenakan ingin di urutkan berdasar nilai akhir, maka untuk output yang lainnya dilakukan penukaran data juga agar output/variable yang lain selaras dengan kondisi yang diurutkan. Jadi kayak ngelink gitu, kalo di sortir satu maka yang lainnya juga ngikut.
                Demikian beberapa penjelasan singkat dari saya mengenai fungsi-fungsi yang saya pakai pada program/script yang saya buat untuk menghitung nilai akhir mahasiswa. Mohon maaf jika terdapat salah penulisan atau penjelasan yang keliru. Berikut saya tampilkan script penuh dari program menghitung nilai akhir mahasiswa yang saya buat.

Terima kasih sudah membaca blog ini.