SKA#5 OOP Instance Method | Python
- SKA#0 Pengantar
- SKA#1 Dasar | Java
- SKA#1 Dasar | Python
- SKA#2 Method | Java
- SKA#2 Function | Python
- SKA#3 Array | Java
- SKA#3 List | Python
- SKA#4 OOP Class sederhana | Java
- SKA#4 OOP Class sederhana | Python
- SKA#5 OOP Constructor | Java
- SKA#5 OOP Instance Method | Python
- SKA#6 OOP Instance Method | Java
Contoh kasus A artikel ke-5 untuk bahasa pemrograman Python
Perhatian, anda sebaiknya membaca terlebih dahulu materi pengantar untuk instance method yang diulas pada artikel ini.
Jika pada contoh sebelumnya fungsi untuk menghitung nilai akhir dan konversi nilai akhir ke grade masih terpisah dari class NilaiMataKuliah, maka pada artikel kali ini keduanya menjadi bagian dari class tersebut. Fungsi yang berada pada satu class pada bahasa pemrograman dikenal dengan nama instance method.
Dengan penggabungan tersebut, kode menjadi lebih rapi karena logika perhitungan nilai dan grade menjadi tidak terpisahkan dengan atribut komponen penyusun elemen pembentuk nilai dan grade tersebut.
Kode Sebelumnya
def hitung_nilai_akhir(nilai_hadir,nilai_tugas,nilai_uts,nilai_uas): bobot_hadir = 0.15 bobot_tugas = 0.25 bobot_uts = 0.3 bobot_uas = 0.3 nilai_akhir = bobot_hadir * nilai_hadir + bobot_tugas * nilai_tugas + bobot_uts * nilai_uts + bobot_uas * nilai_uas return nilai_akhir def nilai_ke_grade(nilai_akhir): grade = 'E' if nilai_akhir >= 85: grade = 'A' elif nilai_akhir >= 70: grade = 'B' elif nilai_akhir >= 50: grade = 'C' elif nilai_akhir >= 40: grade = 'D' return grade class NilaiMataKuliah: def __init__(self, nama, mata_kuliah, nilai_hadir, nilai_tugas, nilai_uts, nilai_uas): self.nama = nama self.mata_kuliah = mata_kuliah self.nilai_hadir = nilai_hadir self.nilai_tugas = nilai_tugas self.nilai_uts = nilai_uts self.nilai_uas = nilai_uas obj = NilaiMataKuliah("Agus","Pemrograman Lanjut",80,75,85,70) nilai_akhir = hitung_nilai_akhir(obj.nilai_hadir,obj.nilai_tugas,obj.nilai_uts,obj.nilai_uas) grade = nilai_ke_grade(nilai_akhir) print('{} pada mata kuliah {} mendapatkan nilai akhir = {}, grade= {}'.format(obj.nama,obj.mata_kuliah,nilai_akhir,grade))
Kode Setelah Penggabungan
class NilaiMataKuliah: def __init__(self, nama, mata_kuliah, nilai_hadir, nilai_tugas, nilai_uts, nilai_uas): self.nama = nama self.mata_kuliah = mata_kuliah self.nilai_hadir = nilai_hadir self.nilai_tugas = nilai_tugas self.nilai_uts = nilai_uts self.nilai_uas = nilai_uas def hitung_nilai_akhir(self): bobot_hadir = 0.15 bobot_tugas = 0.25 bobot_uts = 0.3 bobot_uas = 0.3 nilai_akhir = bobot_hadir * self.nilai_hadir + bobot_tugas * self.nilai_tugas + bobot_uts * self.nilai_uts + bobot_uas * self.nilai_uas return nilai_akhir def grade_nilai(self): nilai_akhir = self.hitung_nilai_akhir() grade = 'E' if nilai_akhir >= 85: grade = 'A' elif nilai_akhir >= 70: grade = 'B' elif nilai_akhir >= 50: grade = 'C' elif nilai_akhir >= 40: grade = 'D' return grade obj = NilaiMataKuliah("Agus","Pemrograman Lanjut",80,75,85,70) nilai_akhir = obj.hitung_nilai_akhir() grade = obj.grade_nilai() print('{} pada mata kuliah {} mendapatkan nilai akhir = {}, grade= {}'.format(obj.nama,obj.mata_kuliah,nilai_akhir,grade))
Perhatikan bahwa pada kode yang baru, struktur class menjadi lebih panjang karena dilengkapi dengan dua buah instance method baru. Sebaliknya dua fungsi yang tadinya berada di luar class sudah tidak diperlukan lagi.
Perhatikan pula bahwa perhitungan nilai dan grade dapat dilakukan langsung pada object seperti diperlihatkan pada baris 32 dan 33.