Pertanyaan
Buatlah class yang Bernama Para7 dengan atribut a (nilai float/integer)dan 1i (nilai list). Dari class tersebut buatlah method berikut: a. Method untuk menambah serta mengurangi list berdasarkan aturan queue b. Apabila nilai a adalah kelipatan positif 7 dan merupakan semua bilangan negatif maka lakukan perulangan deret dikali 5 menggunakan WHILE dengan batas nilai a: Misal a=-7-gt -5,-10,-15,ldots ldots ,-35 Misal a=-14 -gt -5,-10,-15,ldots ldots ,-70 c. Apabila nilai selain kondisi pada b maka lakukan operasi dengan menggunakan rekursif dengan ketentuan a=5=5^4+4^5+3^4+2^3+1^2=16739 Dari class Para7 buatlah child class yang Bernama Cha7 dengan tambahan atribut b dan c(nilai float). Dari class Para7 buatlah tambahan method sebagai berikut: a. Method untuk mengurutkan nilai atribut li dari class Para7 menggunakan metode sorting bubble sort b. Method untuk mencari nilai volume dan luas permukaan balok dengan catatan nilai panjan diambil dari nilai a, lebar dari nilai b, dan tinggi dari nilai c
Solusi
Jawaban
Berikut adalah implementasi dari class `Para7` dan child class `Cha7` dalam bahasa Python:```pythonclass Para7: def __init__(self, a, li): self.a = a self.li = li def add_remove_queue(self): # Menambah elemen ke list berdasarkan aturan queue self.li.append(self.a) # Menghapus elemen dari list berdasarkan aturan queue if self.li: self.a = self.li.pop(0) def deret_kali_5(self): if self.a % 7 == 0 and self.a self.li[j + 1]: self.li[j], self.li[j + 1] = self.li[j + 1], self.li[j] def volume_and_surface_area(self): if isinstance(self.b, float) and isinstance(self.c, float): panjang, lebar, tinggi = self.a, self.b, self.c volume = panjang * lebar * tinggi luas_permukaan = 2 * (panjang * lebar + panjang * tinggi + lebar * tinggi) print(f"Volume: {volume}, Luas Permukaan: {luas_permukaan}") else: print("Kondisi tidak memenuhi")class Cha7(Para7): def __init__(self, a, li, b, c): super().__init__(a, li) self.b = b self.c = c def volume_and_surface_area(self): if isinstance(self.b, float) and isinstance(self.c, float): panjang, lebar, tinggi = self.a, self.b, self.c volume = panjang * lebar * tinggi luas_permukaan = 2 * (panjang * lebar + panjang * tinggi + lebar * tinggi) print(f"Volume: {volume}, Luas Permukaan: {luas_permukaan}") else: print("Kondisi tidak memenuhi")# Contoh penggunaanif __name__ == "__main__": p7 = Para7(7, [1, 2, 3, 4, 5]) p7.add_remove_queue() p7.deret_kali_5() p7.rekursif_operation() p7.bubble_sort() p7.volume_and_surface_area() ch7 = Cha7(7, [1, 2, 3, 4, 5], 3.5, 2.5) ch7.add_remove_queue() ch7.deret_kali_5() ch7.rekursif_operation() ch7.bubble_sort() ch7.volume_and_surface_area()```Penjelasan:- Class `Para7` memiliki atribut `a` dan `li`.- Method `add_remove_queue` menambah dan menghapus elemen dari list berdasarkan aturan queue.- Method `deret_kali_5` mencetak deret kali 5 jika nilai `a` adalah kelipatan positif 7 dan negatif.- Method `rekursif_operation` melakukan operasi rekursif jika `a` sama dengan 5.- Method `bubble_sort` mengurutkan list menggunakan bubble sort.- Method `volume_and_surface_area` menghitung volume danukaan balok jika `a`, `b`, dan `c` adalah nilai float.- Class `Cha7` adalah subclass dari `Para7` dengan tambahan atribut `b` dan `c`.