• Tidak ada hasil yang ditemukan

Program Penghitung Biaya Kuliah per SKS

N/A
N/A
Protected

Academic year: 2021

Membagikan "Program Penghitung Biaya Kuliah per SKS"

Copied!
18
0
0

Teks penuh

(1)
(2)

Program Penghitung Biaya Kuliah per SKS

Oleh: Sendy PK

Halo pecinta coding, kali ini saya akan membuat program untuk

menghitung berapa banyak SKS yang harus dibayarkan dalam satu

semester, bagi para mahasiswa, ini sangat membantu untuk mengetahui

berapa banyak uang yang harus dikeluarkan untuk mengambil SKS

Berikut deskripsi program yang akan kita bua...

Halo pecinta coding, kali ini saya akan membuat program untuk menghitung berapa banyak SKS yang harus dibayarkan dalam satu semester, bagi para mahasiswa, ini sangat membantu untuk mengetahui berapa banyak uang yang harus dikeluarkan untuk mengambil SKS

Berikut deskripsi program yang akan kita buat :

Program berguna untuk menghitung berapa banyak jumlah SKS yang harus kita bayar semester ini. ●

Nilai yang diinput oleh user adalah, jumlah mata kuliah, SKS dan nilai per mata kuliah. ●

Program akan menghitung berapa IP yang diperoleh, lalu memutuskan berapa banyak SKS yang ●

diperoleh.

Langkah-langkah membuat tampilan program tersebut adalah sebagai berikut: Buat project baru dengan nama menghitungSKS

1.

Masukkan ke dalam Form1 komponen-komponen yang dibutuhkan sebagai berikut. 11 buah 2.

Label, 6 buah TextBox, 4 buah Button, 1 buah ComboBox, dan 2 buah GroupBox. Atur tata letaknya kira-kira seperti pada gambar di bawah ini

(3)

Untuk langkah selanjutnya, kita akan mengubah semua nilai properties pada masing-masing 1.

objek yang ada pada Form1, termasuk nilai properties Form1 itu sendiri. Untuk mengetahui komponen dan properties yang mana yang akan diubah, dan apa nilainya, silahkan Anda lihat pada tabel di bawah ini.

(4)
(5)
(6)

Setelah itu, klik komponen ComboBox dengan nama comboNilaiPerMataKuliah, pada bagian 1.

Properties Items, klik tombo l , maka akan muncul kotak dialog String Collection Editor. Masih di kotak dialog yang tadi, pada bagian Enter the strings in the collection (one per 2.

line): ketik huruf A, lalu Enter. Ketik huruf B,lalu Enter, dan seterusnya sampai huruf E. Klik OK.

Untuk lebih jelasnya silahkan lihat gambar di bawah ini.

Untuk tahap selanjutnya kita akan melakukan coding. Langkah- langkahnya adalah sebagai berikut: Klik satu kali pada Form1, lalu tekan tombol F7, ketikkan kode di bawah ini.

1.

private int[] sksPerMataKuliah = new int[10]; 2.

private char[] nilaiPerMataKuliah = new char[10]; private int indexArray = 0, noMatKul = 0;

public Form1() {

(7)

InitializeComponent(); }

Keterangan Program:

Baris 1: mendeklarasikan array bertipe Integer, dengan panjang 10, dengan nama ■

sksPerMataKuliah

Baris 2: mendeklarasikan array bertipe char, dengan panjang 10, dengan nama ■

nilaiPerMataKuliah

Baris 3: mendeklarasikan variabel indexArray dan noMatkul. ■

Baris 4-7: baris ini tidak perlu diketik, karena baris ini sudah ada dengan sendirinya pada saat ■

kita membuat project baru. 0.

Sebelum kita melanjutkan kode untuk di Form1. Terlebih dahulu kita akan membuat class baru. 1.

Pada menu utama klik Project, pilih Add New Item Atau bisa dengan menekan kombinasi 2.

tombol Ctrl + Shift + A. Maka akan tampil kotak dialog Add New Item. Lihat gambar di bawah ini.

Pada kotak dialog tersebut, pilih Class dan isi dengan nama PembayaranSKS.cs, klik Add. 1.

(8)

Kemudian ketikkan kode berikut ini. 1.

public class PembayaranSKS {

protected float hargaPerSKS;

private int jumlahSKSYangDiperoleh; public PembayaranSKS()

{

this.hargaPerSKS = 40000;

this.jumlahSKSYangDiperoleh = 0; }

public float GetHargaPerSKS() {

return this.hargaPerSKS; }

public float HitungSKSYangHarusDibayar(int jumlahSKSYangDiperoleh) {

this.jumlahSKSYangDiperoleh = jumlahSKSYangDiperoleh; float hasil = this.jumlahSKSYangDiperoleh * hargaPerSKS; return hasil;

} }

(9)

Baris 1: tambahkan public, sebelum perintah class. Karena kita akan membuat lebih dari satu ■

class.

Baris 2: mendeklarasikan variabel hargaPerSKS, dengan tipe data float dan hak akses protected. ■

Baris 3: mendeklarasikan variabel jumlahSKSYangDiperoleh, dengan tipe data int dan hak akses ■

private.

Baris 5-9: membuat konstruktor untuk class PembayaranSKS(). ■

Baris 10-13: membuat method dengan nama GetHargaPerSKS(), yang berguna untuk ■

mengambil nilai dari variabel hargaPerSKS. Karena variabel ini tidak menggunakan hak akses public, sehingga tidak bias diakses secara langsung dari luar class.

Baris 14-19: membuat method dengan nama HitungSKSYangHarusDibayar(), yang berguna ■

untuk menghitung berapa banyak SKS yang harus dibayar untuk bulan ini. Yang didapat dari rumus jumlahSKSYangDiperoleh dikali hargaPerSKS

Selanjutnya kita akan membuat class turunan dari class PembayaranSKS, yaitu class 1.

IPSemesterIni. Ketikkan kode berikut tepat di bawah class PembayaranSKS.

// inherit dari class PembayaranSKS

public class IPSemesterIni : PembayaranSKS {

float totalSKSDiperoleh, totalKNDiperoleh; int JumlahSKSSemesterIni; // constructor public IPSemesterIni() { this.totalSKSDiperoleh = 0; this.totalKNDiperoleh = 0; }

public IPSemesterIni(float totalSKSDiperoleh, float totalKNDiperoleh)

{

this.totalSKSDiperoleh = totalSKSDiperoleh; this.totalKNDiperoleh = totalKNDiperoleh; }

public float HitungIPYangDiperoleh(float totalSKSDiperoleh, float totalKNDiperoleh)

{

return totalKNDiperoleh / totalSKSDiperoleh; }

public int SKSYangDiperolehSemesterBaru(float IPSemesterIni) {

if (IPSemesterIni <= 2.5) { JumlahSKSSemesterIni = 18; } else if ((IPSemesterIni > 2.5) && (IPSemesterIni < 3)) { JumlahSKSSemesterIni = 21; }

(10)

return JumlahSKSSemesterIni; }

}

Keterangan Program:

Baris 2: membuat class dengan nama IPSemesterIni, yang diturunkan dari class ■

PembayaranSKS.

Baris 7-16: pada baris ini terdapat dua bua konstruktor, dimana pada konstructor pertama tidak ■

terdapat parameter. Sedangkan pada konstructor yang kedua terdapat parameter, yaitu totalSKSDiperoleh dan totalKNDiperoleh.

Baris 17-20: membuat method dengan nama HitungIPYangDiperoleh(), yang berguna untuk ■

menghitung berapa besar IP yang diperoleh dengan cara membagi totalKNDiperoleh dengan totalSKSDiperoleh.

Baris 21-27: membuat method dengan nama SKSYangDiperolehSemesterBaru(), yang berguna ■

untuk menghitung berapa SKS yang diperoleh untuk semester berikutnya. Dengan kondisi, jika IP kurang dari atau sama dengan 2,5, SKS semester ini 18. Jika IP antara 2,5 - 3, SKS semester ini 21. Dan jika IP lebih besar dari atau sama dengan 3, SKS semester ini 24.

Kemudian kita akan membuat class turunan dari class IPSemesterIni, yaitu class SKSSemesterIni. 1.

Ketikkan kode berikut tepat di bawah class IPSemesterIni.

// inherit dari class IPSemesterIni

public class SKSSemesterIni : IPSemesterIni {

private int jumlahMataKuliah;

private int[] sksPerMataKuliah = new int[10]; private char[] nilaiPerMataKuliah = new char[10]; private float totalSKSDiperoleh, totalKNDiperoleh; private int i, nilaiDalamAngka, temp = 0;

// constructor

public SKSSemesterIni(int jumlahMataKuliah, int[] sksPerMataKuliah, char[] nilaiPerMataKuliah) { this.jumlahMataKuliah = jumlahMataKuliah; this.sksPerMataKuliah = sksPerMataKuliah; this.nilaiPerMataKuliah = nilaiPerMataKuliah; }

// namanya bukan SKS => K.N, else? public float HitungTotalKNDiperoleh() {

for (i = 0; i < jumlahMataKuliah; i++) { switch (nilaiPerMataKuliah[i]) { case 'A': nilaiDalamAngka = 4; break;

(11)

case 'B': nilaiDalamAngka = 3; break; case 'C': nilaiDalamAngka = 2; break; case 'D': nilaiDalamAngka = 1; break; case 'E': nilaiDalamAngka = 0; break; default: nilaiDalamAngka = 0; break; }

temp = sksPerMataKuliah[i] * nilaiDalamAngka; totalKNDiperoleh = totalKNDiperoleh + temp; }

return totalKNDiperoleh; }

public float HitungTotalSKSDiperoleh() {

for (i = 0; i < jumlahMataKuliah; i++) { totalSKSDiperoleh += sksPerMataKuliah[i]; } return totalSKSDiperoleh; } } Keterangan Program:

Baris 2: membuat class dengan nama SKSSemesterIni, yang diturunkan dari class ■

IPSemesterIni.

Baris 10-15: membuat konstruktor. ■

Baris 16-45: membuat method dengan nama HitungTotalKNDiperoleh(), yang berguna untuk ■

menghitung berapa total KN (Komulatif Nilai) yang diperoleh dengan rumus sksPerMataKuliah dikali dengan nilaiDalamAngka. nilaiDalamAngka, diperoleh dari statement switch, yang bertugas untuk merubah nilai dari bentuk Huruf ke bentuk Angka

Baris 46-53: membuat method dengan nama HitungTotalSKSDiperoleh(), yang berguna untuk ■

menjumlahkan SKS masing-masing mata kuliah (sksPerMataKuliah), lalu hasilnya ditampung di variabel totalSKSDiperoleh

(12)

Sampai disini kita telah selesai membuat class sendiri yang menerapkan konsep OOP. 1.

Selanjutnya kita tinggal menggunakan class-class tersebut. Sekarang kembali ke Form1. Klik ganda pada TextBox txtJumlahMatKul, lalu ketikan kode berikut ini.

2.

private void txtJumlahMatKul_TextChanged(object sender, EventArgs e) { if (int.Parse(txtJumlahMatKul.Text) > 10) txtJumlahMatKul.Text = "10"; else if (int.Parse(txtJumlahMatKul.Text) <= 0) txtJumlahMatKul.Text = "1"; } Keterangan Program:

Baris kode ini berguna untuk membatasi input hanya boleh antara 1-10. ■

Baris 3: periksa apakah text yang diinput pada TextBox txtJumlahMatKul, lebih besar dari 10 ■

Baris 4: jika benar, isi TextBox txtJumlahMatKul dengan angka 10. ■

Baris 5: jika salah, periksa lagi apakah text yang diinput pada TextBox txtJumlahMatKul, lebih ■

kecil dari atau sama dengan 0

Baris 6: jika benar, isi TextBox txtJumlahMatKul dengan angka private void ■

cmdOke_Click(object sender, EventArgs e) { gbDataMatKul.Visible = true; if (int.Parse(txtJumlahMatKul.Text) == 1) { cmdNext.Enabled = false; cmdHitung.Enabled = true; } lblNoMatKul.Text = "1"; noMatKul = 2; txtJumlahMatKul.Enabled = false; cmdOke.Enabled = false; }

Lalu, klik ganda pada Button cmdOke, lalu ketikan kode berikut ini.. 1.

Keterangan Program:

Baris 3: menampilkan GroupBox gbDataMatKul. ■

Baris 4-8: periksa apakah text yang diinput pada TextBox txtJumlahMatKul, sama dengan angka ■

1. Jika benar, maka ubah status Button cmdNext menjadi tidak bisa ditekan (disable). Dan ubah status Button cmdHitung menjadi bisa ditekan (enable).

Baris 9: isi TextBox lblNoMatKul, dengan string angka 1. - Baris 10: isi variabel noMatKul, ■

(13)

Baris 11 dan 12: disable TextBox txtJumlahMatKul dan Button cmdOke. ■

0.

Klik ganda TextBox txtSKSPerMataKuliah, lalu ketikan kode ini. 1.

private void txtSKSPerMataKuliah_TextChanged(object sender, EventArgs e) { if (txtSKSPerMataKuliah.Text == "") cmdNext.Enabled = false; else cmdNext.Enabled = true; } Keterangan Program:

Baris 3: periksa apakah text yang diinput pada TextBox txtJumlahMatKul, sama dengan kosong, ■

A.K.A belum ada yang diinput.

Baris 4: jika benar, disable Button cmdNext. ■

Baris 5-6: jika salah, enable Button cmdNext. ■

Langkah berikutnya, klik ganda Button cmdNext, lalu ketikan kode ini. 1.

private void cmdNext_Click(object sender, EventArgs e) { if (indexArray < int.Parse(txtJumlahMatKul.Text)) { if (indexArray < int.Parse(txtJumlahMatKul.Text) - 1) { lblNoMatKul.Text = Convert.ToString(noMatKul); noMatKul++; } else { txtSKSPerMataKuliah.Enabled = false; comboNilaiPerMataKuliah.Enabled = false; cmdNext.Enabled = false; cmdHitung.Enabled = true; } sksPerMataKuliah[indexArray] = int.Parse(txtSKSPerMataKuliah.Text); nilaiPerMataKuliah[indexArray] = char.Parse(comboNilaiPerMataKuliah.Text);

(14)

indexArray++; } txtSKSPerMataKuliah.Text = ""; txtSKSPerMataKuliah.Focus(); comboNilaiPerMataKuliah.Text = "A"; } Keterangan Program:

Baris 3: periksa apakah isi variabel indexArray lebih kecil dari isi TextBox txtJumlahMatKul. ■

Baris 5: jika benar, periksa lagi apakah isi variabel indexArray lebih kecil dari isi TextBox ■

txtJumlahMatKul kurang 1.

Baris 7-8: jika benar, isi Label lblNoMatKul dengan isi dari variabel noMatKul. Lalu tambah isi ■

variabel noMatKul, sebanyak 1 poin.

Baris 12-15: jika salah, disable TextBox txtSKSPerMataKuliah, ComboBox ■

comboNilaiPerMataKuliah.Enabled, dan Button cmdNext. Lalu enable cmdHitung.

Baris 17: isi array sksPerMataKuliah, dengan isi teks dari TextBox txtSKSPerMataKuliah. Untuk ■

posisi indexnya ditentukan oleh nilai variabel indexArray.

Baris 18: isi array nilaiPerMataKuliah, dengan isi teks dari ComboBox ■

comboNilaiPerMataKuliah. Untuk posisi indexnya juga ditentukan oleh nilai variabel indexArray. Baris 19: tambah isi variabel indexArray, sebanyak 1 poin. - Baris 21 dan 22: kosongkan TextBox ■

txtSKSPerMataKuliah dan fokus atau pindahkan posisi kursor ke TextBox txtSKSPerMataKuliah tersebut. - Baris 23: ubah posisi teks ComboBox comboNilaiPerMataKuliah, ke teks huruf A Selanjutnya, klik ganda pada Button cmdHitung, lalu ketikan kode berikut ini.

1.

private void cmdHitung_Click(object sender, EventArgs e) {

gbHasilHitung.Visible = true; cmdHitung.Enabled = false;

int jumlahMatKul = int.Parse(txtJumlahMatKul.Text);

SKSSemesterIni objHitungSKS = new SKSSemesterIni(jumlahMatKul, sksPerMataKuliah, nilaiPerMataKuliah); float totalKNDiperoleh = objHitungSKS.HitungTotalKNDiperoleh(); float totalSKSDiperoleh = objHitungSKS.HitungTotalSKSDiperoleh(); float IPSemesterIni = objHitungSKS.HitungIPYangDiperoleh(totalSKSDiperoleh, totalKNDiperoleh); txtIP.Text = IPSemesterIni.ToString(); int SKSSemesterIni = objHitungSKS.SKSYangDiperolehSemesterBaru(IPSemesterIni); txtSKSSemesterIni.Text = SKSSemesterIni.ToString(); /* float SKSYangHarusDibayar =

(15)

objHitungSKS.HitungSKSYangHarusDibayar(SKSSemesterIni); txtTotalSKSYangHarusDiBayar.Text =

SKSYangHarusDibayar.ToString() + ",-";

float hargaPerSKS = objHitungSKS.GetHargaPerSKS(); txtHargaPerSKS.Text = hargaPerSKS.ToString() + ",-"; */

UbahHargaSKS objUbahHargaSKS = new UbahHargaSKS(); float SKSYangHarusDibayar =

objUbahHargaSKS.HitungSKSYangHarusDibayar(SKSSemesterIni, 45000); txtTotalSKSYangHarusDiBayar.Text =

SKSYangHarusDibayar.ToString() + ",-";

float hargaPerSKS = objUbahHargaSKS.GetHargaPerSKS(); txtHargaPerSKS.Text = hargaPerSKS.ToString() + ",-"; }

Keterangan Program:

Baris 3: tampilkan GroupBox gbHasilHitung. ■

Baris 4: disable Button cmdHitung ■

Baris 5: ambil isi teks TextBox txtJumlahMatKul, lalu simpan ke dalam variabel jumlahMatKul. ■

Baris 6: membuat objek baru dari class SKSSemesterIni dengan nama objHitungSKS. ■

Baris 7: menghitung total KN dengan menggunakan method HitungTotalKNDiperoleh(), lalu ■

simpan hasilnya ke variabel totalKNDiperoleh. –

Baris 8: menghitung total SKS yang diperoleh dengan menggunakan method ■

HitungTotalSKSDiperoleh(), lalu simpan hasilnya ke variabel totalSKSDiperoleh.

Baris 9: menghitung IP semester ini dengan menggunakan method HitungIPYangDiperoleh(), ■

lalu simpan hasilnya ke variabel IPSemesterIni

Baris 10: menampilkan isi variabel IPSemesterIni melalui TextBox txtIP. ■

Baris 11: menghitung SKS yang diperoleh untuk semester baru berdasarkan besar IP dengan ■

menggunakan method SKSYangDiperolehSemesterBaru(), lalu simpan hasilnya ke variabel SKSSemesterIni

Baris 12: menampilkan isi variabel SKSSemesterIni melalui TextBox txtSKSSemesterIni ■

Baris 13: menghitung SKS yang harus dibayar dengan menggunakan method ■

HitungSKSYangHarusDibayar(), lalu simpan hasilnya ke variabel SKSYangHarusDibayar. Baris 14: menampilkan isi variabel SKSYangHarusDibayar melalui TextBox

txtTotalSKSYangHarusDiBayar.

Baris 15: mengambil isi variabel hargaPerSKS milik class PembayaranSKS dengan ■

menggunakan method GetHargaPerSKS(), lalu simpan hasilnya ke variabel lokal hargaPerSKS Baris 16: menampilkan isi variabel hargaPerSKS melalui TextBox txtHargaPerSKS.

Selanjutnya, klik ganda pada Button cmdKeluar, lalu ketikan kode berikut ini, untuk keluar 1.

dari aplikasi.

private void cmdKeluar_Click(object sender, EventArgs e) {

this.Close(); }

(16)

Coding sudah selesai, tekan F5 untuk menjalankan program dan akan muncul tampilan sebagai 1.

berikut :

Berikutnya kita akan melakukan testing atau ujicoba program.

Langkah-langkah melakukan ujicoba program adalah sebagai berikut:

Setelah program dijalankan, isi Jumlah Mata Kuliah dengan angka 2. lalu tekan Oke. 1.

Akan muncul GroupBox Data Mata Kuliah. Isi SKS dengan angka 4, lalu pilih Nilai A. Lalu 2.

(17)

Isi SKS dengan angka 2, lalu pilih Nilai B. Lalu tekan Next. 1.

Tekan tombol Hitung, maka akan muncul GroupBox Hasil Penghitungan yang berisikan 1.

(18)

Sekian tutorial saya kali ini, semoga membantu teman-teman mahasiswa yang sedang ingin mengisi KRS, sampai ketemu di tutorial selanjutnya.

Tentang Penulis

Sendy PK

Saya adalah Programmer yang memiliki impian untuk menguasai dunia kunjungi situs pribadi saya di www.spk.my.id dan Online Shop saya di www.spkshop.web.id

Referensi

Dokumen terkait

Berdasarkan analisa chi square test , diperoleh nilai p-value = 0,003 atau dengan kata lain p ≤ α , maka dapat disimpulkan bahwa hipotesa null (H0) ditolak, yang

Berdasarkan Gambar 12 untuk melihat perbedaan waktu pengujian pemrosesan enkripsi dan dekripsi 12 bit masukan pada algoritme grain v1 dan grain 128, maka

Berdasarkan hasil penelitian ini bahwa emotional arousal dan attitude toward website dapat mempengaruhi purchase intention, maka fashion website atmospherics menjadi

Adapun upaya untuk meminimalisir kesalahan qira’ah dalam pembelajaran bahasa Arab kelas XI IIS 2 MA Keterampilan Al-Irsyad Gajah Demak adalah guru bahasa Arab akan

Manfaat dari penelitian analisa getaran pada mesin sepeda motor berbasis LabVIEW ini adalah dengan hasil dari penelitian ini dapat dijadikan referensi untuk penelitian

Garis-Garis Besar Haluan Organisasi Ikatan Senat Mahasiswa Farmasi Seluruh Indonesia (ISMAFARSI) adalah pedoman dalam melaksanakan kegiatan-kegiatannya yang dirumuskan

Dalam prespektif Undang-Undang Jabatan Notaris (UUJN), sebenarnya perbuatan- perbuatan yang telah dilakukan baik oleh Notaris San Smith, SH., diatur dengan jelas dalam

“Egemenliğin Tanrısal kaynağı hakkında Türk devlet anlayışı, İslami dönemin egemenlik kavramı ile (zıllullah- Tanrının dünya yüzündeki gölgesi) özdeşleştirilmiş