Kursus Pengembangan Python Lanjutan
Bab
>
Tingkat
Kelas Lanjutan
Fungsi Super
Tujuan
Kumpulkan berbagai jenis daging lalu masak dan sajikan dengan cara yang berbeda dengan membuat objek menggunakan Super Functions.
Di dalam lemari es terdapat berbagai jenis daging yang dapat kamu masak dan sajikan bersama bawang yang telah kamu siapkan dengan minyak di level sebelumnya. Daging-daging tersebut dapat dimasak dengan cara yang berbeda dan pada suhu/tingkat kematangan yang berbeda, kamu bisa mencapainya dengan membuat objek dari kelas, sama seperti di level sebelumnya tetapi dapat ditingkatkan dengan menggunakan Super Functions.
Fungsi super() digunakan dengan cara yang mirip dengan method overriding, perbedaannya adalah dengan menggunakan fungsi ini kamu dapat menjalankan fungsi kelas parent selain kode kamu sendiri di kelas child alih-alih sepenuhnya menggantikan fungsi tersebut.
# Parent Class
class cooked_meat:
type = ""
def cook_meat(self):
player.speak("Cooking the %s meat with oil
and onions." % self.type)
player.place("meat")
player.collect("cooked %s" % self.type)
# Child Class
class ready_meat(cooked_meat):
rarity = ""
def cook_meat(self):
super().cook_meat()
player.speak("The meat is cooked %s" % self.rarity)
Di dalam fungsi class anak cook_meat(), fungsi super() digunakan. Karena cook_meat() juga merupakan fungsi yang digunakan di kelas parent, fungsi kustom ini biasanya akan menggantikan kode yang diwariskan karena method overriding, tetapi dengan menggunakan fungsi super() kamu dapat menjalankan kode di kelas parent serta kode baru yang kamu tulis di kelas child.
Pertama, berjalanlah ke lemari es dan kumpulkan empat (4) potong daging yang akan kamu gunakan untuk memasak. Masing-masing dari empat (4) daging tersebut adalah dari jenis yang berbeda, yaitu: "pork", "beef", "lamb" dan "buffalo".
Setelah dikumpulkan, berjalanlah ke tanda X yang terang dan buat objek dari masing-masing daging untuk dimasak, dan untuk setiap objek daging, tetapkan jenis daging dan tingkat kematangan yang kamu inginkan untuk memasaknya, misalnya:
pork_meat = ready_meat() pork_meat.type = "pork" pork_meat.rarity = "medium" pork_meat.cook_meat()
Tingkat kematangan adalah suhu memasak yang kamu inginkan untuk daging tersebut, masaklah daging dengan tingkat kematangan sebagai berikut: "pork" dimasak "medium", "beef" dimasak "well done", "buffalo" dimasak "medium rare", dan "lamb" dimasak "rare". Di tanda X, gunakan fungsi anak cook_meat() setelah menetapkan jenis dan tingkat kematangan daging seperti yang ditunjukkan dalam contoh di atas.
Setelah daging-daging tersebut dimasak, berjalanlah ke tanda X yang gelap di karpet kuning dan gunakan fungsi collect() untuk mengambil kedua bahan, yaitu "salt" dan "pepper" dari pantry. Buatlah sebuah list bernama ingredients dan masukkan kedua bahan tersebut, seperti ini: ingredients = ["salt","pepper"] .
Dengan bahan tambahan tersebut, sekarang kamu dapat menyajikan daging bersama piring-piring di atas meja. Buatlah sebuah list untuk masing-masing daging yang telah dimasak dengan nama-nama berikut: served_pork, served_beef, served_lamb dan served_buffalo. Tambahkan ke list-list tersebut daging yang telah kamu masak beserta list bahan dengan membuat nested list, misalnya:
served_pork = [] served_pork.append("cooked pork") served_pork.append(ingredients)
Setelah list sudah disiapkan, berjalanlah ke tanda X keemasan dan gunakan fungsi place() untuk menyajikan daging di atas piring yang ada di atas counter. Di tanda X keemasan bagian atas, hadaplah ke meja, place(): served_pork dan served_buffalo. Di tanda X keemasan bagian bawah, hadaplah ke meja, place(): served_lamb dan served_beef. Misalnya: player.place(served_pork), dan setelah semua daging disajikan, kamu telah menyelesaikan level.