Memperbarui dan Menambah Element di Dictionary
Memperbarui Element-Element Dictionary
Seperti pada list, Anda dapat menambah atau memperbarui element pada dictionary.
Memperbarui nilai dari kunci yang sudah ada dapat dilakukan dengan menulis nama_dictionary[kunci] = nilai.
Menambah Element pada Dictionary
Menambah element dapat dilakukan dengan menggunakan sintaksis yang sama dengan memperbarui element.
Saat suatu kunci tidak ada dalam dictionary, element baru dengan kunci akan ditambahkan.
Loop for (2)
Mendapatkan Semua Element Pada Dictionary
Seperti list, Anda dapat menggunakan loop for untuk melakukan pengulangan pada dictionary dengan menulis for nama_variable in nama_dictionary:.
Kunci dari tiap element ditentukan ke variable sementara.
Dengan demikian, Anda bisa mendapatkan nilai yang sesuai dengan variable, seperti bisa dilihat pada gambar di bawah.
Loop while
Loop while
Anda juga dapat menggunakan loop while untuk mengulang code.
Dengan loop while, code akan diulangi sampai kondisi tertentu, seperti jika x <= 100 mengevaluasi False.
Mari belajar bagaimana cara menulis loop while pada slide berikutnya!
Cara Menulis Loop While
Sintaksis untuk loop while adalah sebagai berikut:
while <conditional expression>:
Code pada loop while akan terus berulang selama kondisi True.
Alur Loop While
Mari belajar alur loop while dengan gambar di bawah.
Pertama-tama, variable didefinisikan sebelum loop while.
Pada setiap iterasi loop while, kondisi diperiksa dan variable diperbarui.
Siklus terus berlanjut sampai kondisi mengevaluasi False.
Loop Infinite (1)
Jika Anda lupa untuk memperbarui nilai variable yang digunakan pada kondisi di akhir loop while, loop infinite (loop tak terbatas) dapat terjadi karena kondisi selalu mengevaluasi True.
Loop Infinite memberikan beban yang besar pada komputer, jadi pastikan kondisi akan mengevaluasi False pada titik tertentu.
Loop Infinite (2)
Kemungkinan lain yang dapat menyebabkan loop tak terbatas adalah lupa mengindentasi code untuk memperbarui variable.
Code tidak akan termasuk dalam loop while dan kondisi akan selalu mengevaluasi True. Loop tidak akan pernah berhenti.
Statement break
break
Anda dapat menggunakan statement break untuk keluar dari loop. Statement break biasanya digabung dengan statement if, seperti pada gambar di bawah. Ini dapat digunakan seperti pada loop while.
Statement continue
continue
Tidak seperti statement break yang akan mengakhiri loop, statement continue melewatkan loop untuk iterasi tertentu. Statement continue dapat digunakan dengan cara yang sama pada loop for dan loop while.
Menyiapkan Barang-Barang
Aplikasi Belanja
Dengan menggunakan apa yang sudah kita pelajari, mari kita memperbarui aplikasi belanja yang sudah kita buat di Python 1.
Seperti pada gambar di bawah, kita akan mencetak hasil menurut jumlah buah yang dimasukkan pada console.
Menyiapkan Buah
Mari kita mulai dengan menyiapkan dictionary bernama items dimana kunci-nya adalah nama-nama buah dan nilainya adalah harga-harga buah tersebut. Setelah itu, ayo kita cetak harga tiap buahnya dengan menggunakan loop.
# Buat dictionary dengan kunci dan nilai, dan tetapkan ke variable items
items = {'apel': 2, 'pisang': 4, 'jeruk': 6}
# Buat loop for yang mengambil kunci dari items
for item_name in items:
# Cetak '--------------------------------------------------'
print('--------------------------------------------------')
# Cetak 'Harga setiap ___ ___ dolar'
print('Harga setiap '+item_name+' '+str(items[item_name])+' dolar')
Membeli Sebuah Barang
Membeli Buah
Sekarang, mari kita buat agar pengguna dapat mengisi jumah buah yang mereka inginkan. Kita akan menggunakan input() yang kita pelajari di Python 1 untuk mendapatkan input.
Selanjutnya, kita akan mencetak detail pembelian.
Control Flow
Control Flow
Anda sekarang dapat membeli buah.
Selanjutnya, mari membuat control flow untuk membandingkan uang yang dimiliki pengguna dengan total harga!
Uang yang Tersisa
Menghitung Uang yang Tersisa
Untuk menyudahi, kita akan mencetak sisa uang di dalam dompet Anda setelah membeli beberapa buah!
Selain itu, mari memodifikasi program untuk keluar dari loop jika dompet Anda kosong selama berbelanja.
money = 20
items = {'apel': 2, 'pisang': 4, 'jeruk': 6}
for item_name in items:
print('--------------------------------------------------')
print('Anda memiliki ' + str(money) + ' dolar di dompet Anda')
print('Harga setiap ' + item_name + ' ' + str(items[item_name]) + ' dolar')
input_count = input('Mau berapa ' + item_name + '?:')
print('Anda akan membeli ' + input_count + ' ' + item_name)
count = int(input_count)
total_price = items[item_name] * count
print('Harga total adalah ' + str(total_price) + ' dolar')
if money >= total_price:
print('Anda telah membeli ' + input_count + ' ' + item_name)
money -= total_price
# Ketika money sama dengan 0, cetak 'Dompet Anda kosong' dan hentikan loop
if money==0:
print('Dompet Anda kosong')
break
else:
print('Uang Anda tidak mencukupi')
print('Anda tidak dapat membeli ' + item_name + ' sebanyak itu')
# Menggunakan variable money dan tipe conversion, cetak 'Uang Anda tinggal ___ dolar'
print('Uang Anda tinggal '+str(money)+' dolar')
Python III
Pada pelajaran ini, kita akan belajar bagaimana cara menggunakan function dan module.
Untuk membuat pelajaran ini menjadi lebih menyenangkan,
mari kita mempelajarinya sambil membuat permainan Batu Kertas Gunting.
Function
Function
Pertama-tama, mari kita lihat bagaimana function bekerja dalam Python. Function adalah bagian dari code yang menjalankan tugas tertentu. print adalah salah satu contoh function, yang memudahkan Anda untuk mencetak teks tanpa perlu untuk menulis banyak code.
Lebih Lanjut Tentang Function
Seperti print, ada banyak function yang sudah tersedia di Python yang dapat membuat coding lebih mudah. Jika tertarik, Anda juga dapat membuat function Anda sendiri.
Mendefinisikan Function
Mari belajar bagaimana cara mendefinisikan function yang sederhana.
Sintaksis untuk mendefinisikan function adalah sebagai berikut:
def function_name():
Jangan lupa untuk mengindentasi code didalam function.
Memanggil Function
Function tidak akan dijalankan hanya dengan mendefinisikannya, Anda perlu memanggil function untuk menjalankan code didalamnya. Untuk memanggil sebuah function, Anda cukup menulis function_name(). Perlu diingat bahwa function hanya dapat dipanggil setelah Anda mendefinisikannya.
Argument dan Parameter
Apa Itu Argument?
Anda dapat memberikan nilai ke sebuah function ketika Anda memanggilnya. Nilai ini disebut argument dan dapat digunakan berulang kali di dalam sebuah function. Dengan menggunakan argument, Anda dapat membuat sebuah function untuk me-return nilai yang berbeda berdasarkan argument yang Anda berikan.
Function dengan Argument
Untuk memberikan argument ke sebuah function, function harus mempunyai variable untuk menerimanya, variable ini di sebut parameter. Pada contoh di bawah, function greet memiliki parameter name untuk menerima sebuah argument.
Memberikan Argument ke Sebuah Function
Kita bisa memberikan argument dengan memanggil sebuah function dengan: function_name(argument). Saat function dipanggil, argument yang diberikan akan ditentukan ke parameter untuk digunakan di dalam function.
Scope
Variable mempunyai scope, sesuatu yang merujuk ke rentang tertentu dimana variable dapat diakses. Scope dari parameter dan variable yang di definisikan didalam sebuah function akan terbatas pada function tersebut. Maka dari itu, mereka tidak dapat digunakan diluar function itu.
Beberapa Parameter
Function dengan Banyak Parameter
Anda dapat menambahkan banyak parameter ke sebuah function dengan memisahkan parameter tersebut dengan tanda koma ,.
Pada contoh dibawah, name adalah parameter pertama, dan message adalah parameter kedua.
Memberikan Beberapa Argument ke Sebuah Function
Contoh dibawah menunjukkan bagaimana cara memberikan beberapa argument ke sebuah function. Saat memberikan argument, Anda harus menulisnya sesuai dengan urutan penulisan parameter.
Nilai Default Parameter
Nilai Default Parameter
Anda dapat mengatur nilai default parameter.
Nilai default akan digunakan ketika tidak ada argument yang disediakan untuk parameter.
Batu Kertas Gunting
Sejauh ini, kita sudah belajar dasar-dasar function.
Sekarang, mari menggunakannya untuk membuat permainan Batu Kertas Gunting menjadi lebih baik!
Menerima Nama Pengguna
Mari kita beri nama pengguna, lalu mencetaknya.
Memilih Tangan
Memilih Tangan
Mari biarkan pengguna memilih tangan dengan nomor 0, 1, atau 2.
Kita akan menyiapkan list yang berisi 'Batu', 'Kertas', dan 'Gunting', dan saat pengguna memilih nomor, kita akan mencetak element yang sesuai dengan nomor index.
def print_hand(hand, name='Tamu'):
# Tetapkan list hands ke variable hands
hands=['Batu', 'Kertas', 'Gunting']
# Memperbarui dengan menggunakan element dari variable hands
print(name + ' memilih: ' + hands[hand])
print('Memulai Permainan Batu Kertas Gunting!')
player_name = input('Masukkan nama Anda: ')
# Cetak 'Pilih tangan: (0: Batu, 1: Kertas, 2: Gunting)'
print('Pilih tangan: (0: Batu, 1: Kertas, 2: Gunting')
# Dapatkan input, ubah, dan tetapkan ke variable player_hand
player_hand=int(input('Masukkan nomor (0-2): '))
# Ubah argument pertama ke player_hand
print_hand(player_hand, player_name)
Nilai Return
Memvalidasi Nilai Input
Sejauh ini, program kita menghasilkan erorr jika pengguna memasukkan nomor selain 0, 1, atau 2 sehingga kita perlu memvalidasinya.
Untuk melakukannya, kita akan belajar topik selanjutnya, nilai return.
Apa itu Nilai Return?
Saat kita ingin menggunakan hasil dari sebuah function, kita dapat menggunakan return. Pada contoh di bawah, function add menjadikan 3 dan 7 sebagai argument, dan mengembalikan 10 ke pemanggilnya.
Function dengan Nilai Return
Untuk mengirim nilai ke asal sebuah function yang dipanggil, kita menggunakan statement return. Dengan menulis return nilai, nilai dapat dikembalikan untuk digunakan di luar function.
Menerima Nilai Return
Saat Anda memanggil sebuah function yang mempunyai nilai return, pemanggil akan digantikan dengan nilai.
Pada contoh di bawah, add(1,3) akan digantikan dengan 4, dan disimpan ke variable sum.
# Definisikan function validate
def validate(hand):
# Tambahkan control flow berdasarkan nilai hand
if hand<0 or hand>2:
return False
else:
return True
def print_hand(hand, name='Tamu'):
hands = ['Batu', 'Kertas', 'Gunting']
print(name + ' memilih: ' + hands[hand])
print('Memulai permainan Batu Kertas Gunting!')
player_name = input('Masukkan nama Anda: ')
print('Pilih tangan: (0: Batu, 1: Kertas, 2: Gunting)')
player_hand = int(input('masukkan nomor (0-2): '))
# Tambahkan control flow berdasarkan nilai return dari function validate
if validate(player_hand):
print_hand(player_hand, player_name)
else:
print('Mohon masukkan nomor yang benar')
Return
Bagaiman Return Bekerja
Return tidak hanya mengirim balik nilai return ke pemanggil, namun juga menghentikan function. Ini berarti, apapun yang tertulis setelah return pada function tidak akan di jalankan.
Beberapa Return
Dengan menambahkan control flow, Anda dapat menggunakan return berkali-kali. Pada contoh di bawah, jika nilai parameter name sama dengan 'Tamu', function akan berakhir setelah mengembalikan 'Siapa nama Anda?'. Code setelahnya tidak akan di jalankan.
Menambah Komputer
Permainan Batu Kertas Gunting
Dari sini, kita akan menyelesaikan permainan Batu Kertas Gunting.
Kita akan menambahkan function sehingga pengguna dapat bermain melawan komputer. Selain itu, kita juga akan belajar tentang module.
Memilih Tangan
Mari memulai dengan mencetak tangan yang dipilih oleh komputer.
Menilai Pemenang
Menilai Pemenang
Mari membuat function untuk menilai siapa yang memenangkan permainan.
def validate(hand):
if hand < 0 or hand > 2:
return False
return True
def print_hand(hand, name='Tamu'):
hands = ['Batu', 'Kertas', 'Gunting']
print(name + ' memilih: ' + hands[hand])
# Definisikan function judge
def judge(player, computer):
# Tambahkan control flow berdasarkan perbandingan antara player dan computer
if player==computer:
return 'Seri'
elif player==0 and computer==1:
return 'Kalah'
elif player==1 and computer==2:
return 'Kalah'
elif player==2 and computer==0:
return 'Kalah'
else:
return 'Menang'
print('Memulai permainan Batu Kertas Gunting!')
player_name = input('Masukkan nama Anda: ')
print('Pilih tangan: (0: Batu, 1: Kertas, 2: Gunting)')
player_hand = int(input('Masukkan nomor (0-2): '))
if validate(player_hand):
computer_hand = 1
print_hand(player_hand, player_name)
print_hand(computer_hand, 'Komputer')
# Tetapkan nilai return dari judge ke variable result
result = judge(player_hand, computer_hand)
# Cetak variable result
print('Hasil: '+result)
else:
print('Mohon masukkan nomor yang benar')
Menggunakan Module
Membagi File
Code pada file script.py kita sudah menjadi sangat panjang.
Semakin panjang code Anda, akan semakin sulit untuk dibaca dan dimengerti, ini akan berpotensi menimbulkan bug yang tidak diinginkan. Untuk mencegah ini, mari belajar untuk membagi code ke beberapa file terpisah.
Module
Kita dapat memindahkan sebagian code ke file terpisah, lalu, mengimportnya sebagai module. Module adalah file yang dapat diimport ke file lain. Dengan mengimport module, Anda dapat menggunakan function di dalam modul tersebut. Kita akan memindahkan beberapa function di dalam script.py ke utils.py.
Import
Anda dapat mengimport sebuah module menggunakan sintaksis berikut: import nama_module.
Ekstensi dari file, .py, dapat di abaikan ketika Anda mengimportnya.
Menggunakan Module
Anda dapat memanggil function dari sebuah module dengan meletakkan nama module sebelum nama function, seperti module_name.function_name().
Library Standar Python
Menyelesaikan Permainan Batu Kertas Gunting
Akhirnya, mari membuat permainan menjadi lebih menyenangkan dengan membuat acak tangan komputer.
Library Standar Python
Sebelumnya, kita belajar cara membuat module utils yang dibuat khusus. Python juga mempunyai daftar module bawaan yang dapat Anda gunakan, di dalam Library Standar Python.
Mari kita coba menggunakan salah satu dari module yang sangat berguna ini.
Module Acak
Kita akan mengacak tangan yang dipilih komputer menggunakan function randint dari module random.
Dengan menulis random.randint(x,y), Anda mendapat integer acak di antara x dan y inklusif.
Class
Pada pelajaran ini, kita akan belajar bersama Ninja Ken dan Guru Domba mengenai konsep penting di Python yaitu class!
Gambaran
Pemahaman Produk
Pertama, mari kita lihat bagaimana aplikasi pemesanan makanan ini akan bekerja. Saat berjalan, program akan menerima nomor item menu dan kuantitasnya sesuai dengan yang dimasukkan pengguna.
Definisi Class
Membuat Object
Untuk membuat object untuk item-item pada menu, terlebih dahulu kita harus menyiapkan blueprint.
Blueprint diketahui sebagai class, dan object-nya disebut instance. Pastikan Anda mengingat istilah ini ya!
Langkah-langkah untuk Membuat Instance
Proses untuk membuat instance dapat dilihat di bawah.
Kita akan memulai dari Step 1: Menyiapkan Class dan melanjutkan dari sana.
Mendefinisikan Class
Mari terlebih dahulu menyiapkan class (bluprint).
Class dapat didefinisikan menggunakan class ClassName:.
Nama class, biasanya selalu diawali dengan huruf kapital seperti pada class MenuItem.
Konten Class
Konten class (atau instruksi blueprint) ditulis pada baris selanjutnya di bawah class MenuItem: dan harus diindentasi.
Karena saat ini kita tidak perlu untuk menulis apapun, maka dari itu kita ketik pass (dimana kita gunakan saat tidak ada code untuk dijalankan) seperti pada gambar di kanan.
Instansiasi Class
Instansiasi
Seperti bisa dilihat di bawah, jika kita memanggil ClassName() kita dapat membuat instance dari class (blueprint). Selain itu, dengan menggunakan variable_name=ClassName(), kita dapat menentukan instance baru pada sebuah variable.
Variable Instance
Data Instance
Kita dapat menambah data yang diinginkan pada tiap instance (item menu). Pada contoh di bawah, instance memiliki nama "Roti Lapis" dan harga "$5".
Variable Instance
Seperti bisa dilihat di bawah, kita dapat menggunakan menu_item1.name = "Roti Lapis" untuk mengatur nama menu_item1 ke "Roti Lapis". Disini, name disebut sebagai variable instance.
Variable yang Menggunakan Instance
Anda dapat mengakses dan menggunakan nilai dari variable instance dengan memanggil instance.instance_variable_name.
class MenuItem:
pass
menu_item1 = MenuItem()
menu_item1.name = 'Roti Lapis'
print(menu_item1.name)
# Tentukan price menu_item1 ke 5
menu_item1.price=5
# Cetak price dari menu_item1
print(menu_item1.price)
Class dan Method
Menambahkan Method ke Class
Kita dapat mendefinisikan function di dalam class. Function yang didefinisikan di dalam class disebut method.
Mendefinisikan method sama seperti mendefinisikan function normal lainnya, namun secara eksplisit, parameter pertama harus dinamai self!
Memanggil Method
Anda dapat memanggil method yang Anda definisikan di dalam class menggunakan instance dari class itu sendiri. Sintaksis untuk ini adalah instance.method_name().
class MenuItem:
# Definiskan method info
def info(self):
print('Tampilkan nama dan harga dari menu item')
menu_item1 = MenuItem()
menu_item1.name = 'Roti Lapis'
menu_item1.price = 5
# Panggil method info dari menu_item1
menu_item1.info()
menu_item2 = MenuItem()
menu_item2.name = 'Kue Coklat'
menu_item2.price = 4
# Panggil method info dari menu_item2
menu_item2.info()
Method Instance: self
Bagaimana Cara Menggunakan "self"?
Parameter pertama, self, menunjuk ke instance yang dipanggil.
Karena ini, Anda dapat menggunakan self untuk mengakses instance dan kontennya. Pada contoh di bawah, self.name digunakan untuk mendapatkan nilai variable instance name dari menu_item1.
Meninjau Kembali Konversi Tipe
Sekarang mari gunakan nilai dari name dan price untuk mencetak "Roti Lapis: $5". Nilai price adalah integer, maka dari itu untuk menggabungkannya dengan string, kita harus mengubahnya terlebih dahulu menjadi string. Mari kita tinjau kembali bagaimana cara mengubah integer menjadi string pada gambar di bawah.
Method Instance: Parameter
Meninjau Kembali Instance & Class
Mari kita tinjau kembali apa yang sudah kita pelajari sejauh ini mengenai class dan instance. Class seperti blueprint dan instance adalah object yang kita buat menggunakan blueprint tersebut.
Property instance disebut variable instance dan function disebut method instance.
Method untuk Total Harga
Dengan menggunakan apa yang sudah kita pelajari sejauh ini, mari kita buat method untuk menghitung total harga. Jangan lupa bahwa, saat meneruskan parameter ke method instance, self akan diteruskan secara otomatis. Parameter apapun yang Anda masukkan akan menjadi parameter kedua dan seterusnya.
class MenuItem:
def info(self):
return self.name + ': $' + str(self.price)
# Definiskan method get_total_price
def get_total_price(self, count):
total_price=self.price*count
return total_price
menu_item1 = MenuItem()
menu_item1.name = 'Roti Lapis'
menu_item1.price = 5
print(menu_item1.info())
# Panggil method get_total_price
result=menu_item1.get_total_price(4)
# Cetak 'Total harga adalah $____'
print('Total harga adalah $'+str(result))
Method __init__ (1)
Method __init__
Mari belajar tentang method __init__ (juga dikenal sebagai class constructor di Python), yang dijalankan setelah instance dibuat. Saat ClassName() dipanggil, dan instance dibuat, method __init__ akan dipanggil segera sesudahnya.
Kita akan belajar bagaimana menggunakannya pada slide selanjutnya.
Menggunakan __init__
Method __init__ dapat didefinisikan seperti method instance lainnya.
Pada contoh di bawah, menjalankan menu_item1 = MenuItem() akan membuat instance MenuItem dan secara otomatis memanggil method __init__ dan menjalankan code di dalamnya.
Method __init__ (2)
Variable Instance pada __init__
Mari mengatur variable instance di dalam method __init__.
Di dalam method instance, karena kita dapat mengakses variable instance menggunakan self.variable_name, kita dapat mengatur variable instance dengan self.variable_name = nilai.
Method __init__ (3)
Argument Method __init__
Method __init__ juga dapat menerima argument seperti method instance pada umumnya. Untuk meneruskan argument ke __init__, kita dapat meletakkan argument tersebut didalam ClassName() saat kita memanggilnya.
class MenuItem:
# Tambahkan parameter name dan price
def __init__(self, name, price):
# Gantikan 'Roti Lapis' ke parameter name
self.name = name
# Gantikan 5 ke parameter price
self.price = price
def info(self):
return self.name + ': $' + str(self.price)
def get_total_price(self, count):
total_price = self.price * count
return total_price
# Tambahkan 'Roti Lapis' dan 5 sebagai argument
menu_item1 = MenuItem('Roti Lapis', 5)
print(menu_item1.info())
result = menu_item1.get_total_price(4)
print('Total harga adalah $' + str(result))
Pemisahan File
Meninjau Kembali Import
Di Python Study III kita belajar cara memisahkan code Python menjadi file-file berbeda dan mengimport file luar sebagai module. Ingat, untuk mengimport module dari module_name.py, kita dapat menggunakan import module_name.
Mengimport Class secara Langsung
Ada cara lebih mudah untuk menggunakan import. Seperti ditunjukkan pada gambar di sebelah kiri, Anda dapat langsung mengimport class dari module dengan menulis from module_name import ClassName. Dengan menggunakan ini, Anda dapat menggunakan class MenuItem seperti sebelumnya bahkan di dalam script.py.
Menampilkan Menu (1)
List Instance
Kita juga dapat menampilkan tiap instance yang kita sudah buat dari class MenuItem. Seperti ditunjukkan di bawah, kita dapat menambah setiap instance ke sebuah list yang disebut menu_items dan menggunakan loop for untuk mendapatkan informasi tiap instancenya.
Menampilkan Menu (2)
Menomori Item
Pada produk akhir, kita menomori tiap menu item dimulai dari 0.
Untuk menambah nomor, kita dapat membuat variable (contoh: 'index') dan menambahkannya dengan 1 menggunakan loop for.
from menu_item import MenuItem
menu_item1 = MenuItem('Roti Lapis', 5)
menu_item2 = MenuItem('Kue Coklat', 4)
menu_item3 = MenuItem('Kopi', 3)
menu_item4 = MenuItem('Jus Jeruk', 2)
menu_items = [menu_item1, menu_item2, menu_item3, menu_item4]
# Definisikan variable index dan tetapkan 0 kepadanya
index=0
for menu_item in menu_items:
# Cetak dengan format '0. Roti Lapis: $5' untuk setiap index
print(str(index)+'. '+menu_item.info())
# Tambahkan 1 ke variable index
index+=1
Mengelola Input
Mendapatkan Input sebagai Integer
Mari menggunakan input, seperti yang kita pelajari di Python Study I, untuk mengambil nomor item menu yang diketik oleh pengguna. Karena input yang diterima akan bertipe string, kita harus menggunakan int() untuk mengubahnya menjadi integer.
Menghitung Jumlah Total
Menambah 10% Diskon
Pada method get_total_price yang kita definisikan pada class MenuItem, mari berikan diskon 10% (90% dari total harga) jika count lebih besar dari atau sama dengan 3. Desimal juga dapat digunakan di aritmetika dengan tipe-tipe numerik. Seperti yang ditunjukkan di bawah, mari mengalikan nilai dari variable total_price dengan 0.9.
Membulatkan
Saat mengalikan integer dan desimal, hasilnya bisa dilihat pada gambar di sebelah kiri. Kita hanya menginginkan aplikasi kita untuk memunculkan angka bulat non-desimal. Kita dapat menggunakan round(desimal) agar tidak perlu khawatir akan kembalian!
from menu_item import MenuItem
menu_item1 = MenuItem('Roti Lapis', 5)
menu_item2 = MenuItem('Kue Coklat', 4)
menu_item3 = MenuItem('Kopi', 3)
menu_item4 = MenuItem('Jus Jeruk', 2)
menu_items = [menu_item1, menu_item2, menu_item3, menu_item4]
index = 0
for menu_item in menu_items:
print(str(index) + '. ' + menu_item.info())
index += 1
print('--------------------')
order = int(input('Masukkan nomor menu: '))
selected_menu = menu_items[order]
print('Item yang di pilih: ' + selected_menu.name)
# Terima input dari console, dan Berikan input ke variable count
count=int(input('Jumlah pesanan (diskon 10% untuk 3 atau lebih): '))
# Panggil method get_total_price
result=selected_menu.get_total_price(count)
# Cetak 'Total harga adalah $____'
print('Total harga adalah $'+str(result))
Warisan Class
Pada pelajaran ini, kita akan mempelajari lebih lanjut fungsi class yang kita pelajari pada Python Study IV.
Mari belajar bagaimana cara menggunakan class dengan lebih baik.
Gambaran Umum
Fitur-Fitur Objektif
Pertama-tama, mari kita lihat apa yang akan kita buat pada pelajaran ini. Di bawah adalah contoh hasil akhir dari program yang akan Anda buat pada pelajaran ini. Perhatikan, selain bisa memesan makanan dan minuman secara terpisah, Anda juga bisa melihat kalori dari makanan dan volume minuman.
Apa Itu warisan?
Menggunakan Class yang Sudah Ada
Selanjutnya, mari membuat class Food dan Drink.
Walaupun kita dapat membuat class baru dari awal, kita juga dapat menggunakan class Food dan Drink pada class MenuItem.
Dengan melakukan ini, code menjadi lebih efisien karena kita menghindari pengulangan penulisan code yang sama.
Apa Itu Warisan?
Membuat class baru berdasarkan class lain disebut warisan.
Disini, class baru disebut class anak dan class yang mendasarinya disebut class induk. Dengan menulis class NamaClassAnak(NamaClassInduk): kita dapat mewariskan blueprint ClassInduk ke ClassAnak yang baru didefinisikan.
# Import class MenuItem menggunakan 'from' 'import'
from menu_item import MenuItem
# Wariskan class MenuItem dan definisikan class Drink
class Drink(MenuItem):
pass
Bagaimana warisan Bekerja?
Instance Class Anak
Class Anak diwarisi method instance milik class induk.
Seperti ditunjukkan di bawah, instance class Food dapat menggunakan method __init__ dan info yang didefinisikan di dalam class MenuItem.
Menambah Method Instance
Method Instance Class Anak
Sekarang, mari tambahkan method calorie_info di dalam class Food. Perlu diingat bahwa class anak dapat menggunakan method yang didefinisikan di dalam class induk dan method yang didefinisikan di dalam dirinya sendiri. Akan tetapi, class induk tidak bisa menggunakan method yang didefinisikan di dalam class anak.
Merevisi Method Info (1)
Menimpa (Override)
Saat Anda mendefinisikan sebuah method di dalam class anak dengan nama yang sama dengan class induk, Anda dapat menimpa method sebelumnya. Saat Anda menimpa, instance dari class anak akan memanggil method yang didefinisikan di dalam class anak daripada method dari class induk.
Bagaimana "Menimpa" Bekerja
Mari kita perhatikan lebih lanjut tentang "menimpa".
Seperti gambar di bawah, instance class anak akan memanggil method yang didefinisikan di dalam class anak. Selanjutnya, pada kasus dimana ada method dengan nama yang sama di class anak dan class induk, method induk akan di-timpa.
Menimpa Method __init__
Menimpa Method __init__
Disini, kita akan menimpa method __init__ milik class MenuItem di dalam class Food. Seperti gambar di bawah, Anda dapat mengubah parameter saat menimpanya.
super()
super()
Dengan menggunakan super() di dalam method yang telah Anda timpa akan memperbolehkan Anda untuk memanggil method dari class induk-nya. Selain itu, seperti bisa dilihat di bawah, dengan menulis super().methodName(), Anda dapat menggunakan method instance yang didefinisikan di dalam class induk.
from menu_item import MenuItem
class Food(MenuItem):
def __init__(self, name, price, calorie_count):
# Menggunakan super() panggil __init__() dari class induk
super().__init__(name, price)
# Hapus 2 baris di bawah
self.calorie_count = calorie_count
def info(self):
return self.name + ': $' + str(self.price) + ' (' + str(self.calorie_count) + 'kkal)'
def calorie_info(self):
print('kkal: ' + str(self.calorie_count))
Aplikasi Praktis
Menampilkan Total Harga
Terakhir, mari gunakan nilai-nilai dari input console untuk menampilkan total harga. Anda dapat menggunakan method get_total_price yang kita definisikan di dalam class MenuItem (dari Python Study IV) di dalam instance class Food dan Drink, yang mana adalah class anak dari MenuItem.
from food import Food
from drink import Drink
food1 = Food('Roti Lapis', 5, 330)
food2 = Food('Kue Coklat', 4, 450)
food3 = Food('Kue Sus', 2, 180)
foods = [food1, food2, food3]
drink1 = Drink('Kopi', 3, 180)
drink2 = Drink('Jus Jeruk', 2, 350)
drink3 = Drink('Espresso', 3, 30)
drinks = [drink1, drink2, drink3]
print('Makanan')
index = 0
for food in foods:
print(str(index) + '. ' + food.info())
index += 1
print('Minuman')
index = 0
for drink in drinks:
print(str(index) + '. ' + drink.info())
index += 1
print('--------------------')
food_order = int(input('Masukkan nomor makanan: '))
selected_food = foods[food_order]
drink_order = int(input('Masukkan nomor minuman: '))
selected_drink = drinks[drink_order]
# Ambil input dari console dan tetapkan ke variable count
count = int(input('Mau berapa paket makanan? (Diskon 10% untuk 3 atau lebih): '))
# Panggil method get_total_price dari selected_food dan selected_drink
result = selected_food.get_total_price(count)+selected_drink.get_total_price(count)
# Cetak 'Total harga adalah $____'
print('Total harga adalah $'+str(result))
Komentar
Posting Komentar