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.