ntuk pupil). Anda tidak perlu menulis fungsi baru untuk
menggambar persegi, karena persegi adalah persegi panjang dengan semua sisinya
sama panjang. Masukkan perintah ini di bawah kode yang Anda tambahkan di Langkah
10.
64
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
12. Gambar mulut
Sekarang beri robot itu mulut. Ketik perintah ini di bawah kode yang Anda tambahkan
di Langkah 11.
13. Sembunyikan kura-kura
Terakhir, sembunyikan kura-kura agar tidak terlihat aneh duduk di wajah robot. Ketik
baris ini setelah kode yang Anda tambahkan pada Langkah 12. Jalankan program untuk
melihat keseluruhan robot yang sedang dibangun.
Peretasan dan penyesuaian
Sekarang proyek Anda sudah berjalan, berikut adalah beberapa ide untuk
memodifikasi kode sehingga Anda dapat menyesuaikan robot yang Anda buat.
Ubah warna
Robot yang Anda buat cukup berwarna, tetapi pasti ada ruang untuk perbaikan. Anda
dapat mengubah kode untuk membuat robot yang sesuai dengan warna ruangan atau
baju tim sepak bola favorit Anda, atau membuat robot yang benar-benar beraneka
warna! Di sebelah kanan ada beberapa warna yang dikenali kura -kura.
65
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Gambar 3.2 Macam-macam Nama Warna dalam Python
Ubah wajah
Anda dapat mengubah ekspresi wajah robot dengan mengatur ulang fitur-fiturnya.
Untuk memberikan mata dan mulut yang miring, gunakan kode di sebelah kanan.
Gambar 3.3 Gambar Sketas Wajah dan pelokasian bagiannya
Sebuah uluran tangan
Tambahkan kode ini untuk memberikan tangan mencengkeram robot berbentuk U
Anda. Anda dapat membentuk kembali tangan agar terlihat seperti pengait, penjepit,
atau apa pun yang Anda suka. Biarkan imajinasi Anda menjadi liar dan buat versi Anda
sendiri!
66
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Lengan all-in-one
Menggambar lengan di beberapa bagian membuatnya canggung untuk mengubah
posisinya atau menambahkan lengan ekstra. Dalam peretasan ini, Anda akan menulis fungsi
yang menarik lengan sekaligus.
1. Buat fungsi lengan
Pertama tambahkan fungsi baru ini, yang menggambar bentuk lengan dan
memberinya warna.
Gambar 3.4 pelokasian lengan karakter
2. Tambahkan lengan
Selanjutnya ganti kode yang semula Anda miliki di antara baris komentar # lengan dan
leher baris komentar # dengan kode yang ditampilkan di sini. I ni memakai fungsi
lengan untuk menggambar tiga lengan.
Menggerakkan lengan
Sekarang setelah Anda dapat menggambar seluruh lengan sekaligus, Anda dapat
mengubah posisinya sehingga robot terlihat seperti sedang menggaruk kepalanya atau
mungkin sedang menari Highland Fling! Untuk melakukannya, gunakan fungsi
67
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
setheading() untuk mengubah arah kura -kura menghadap saat mulai menggambar
lengan.
Percobaan dan kesalahan
Saat Anda mendesain robot atau menambahkan fitur baru ke robot yang sudah ada,
mungkin diperlukan sedikit percobaan dan kesalahan untuk mendapatkan hal-hal yang Anda
inginkan. Jika Anda menambahkan baris print(t.window_ width()) dan
print(t.window_height()) setelah baris t.speed('slowest'), Python akan menampilkan tinggi
dan lebar jendela Turtle Anda di shell. Kemudian tandai kotak dengan ukuran tersebut pada
kertas grafik untuk membantu Anda menentukan koordinat setiap bagian tubuh.
Gambar 3.5 Karakter Robot yang dihasilkan
3.2 KALEIDO-SPIRAL
Dengan cara yang sama bahwa baris kode sederhana dapat membentuk program yang
baik, bentuk sederhana dapat membentuk gambar yang kompleks. Dengan menggabungkan
bentuk dan warna melalui kode, Kaleido-spiral akan membantu Anda menciptakan mahakarya
seni digital yang layak untuk galeri seni!
Apa yang terjadi
Kura-kura Python menggambar lingkaran di layar, satu demi satu. Setiap kali sebuah
lingkaran digambar, kura-kura mengubah posisi, sudut, warna, dan ukuran lingkaran
berikutnya yang digambarnya. Sebuah pola secara bertahap muncul.
Pergeseran spiral
Saat lapisan lingkaran di atas satu sama lain, posisi pergeserannya membentuk spiral
yang meliuk keluar dari pusat.
68
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Gambar 3.6 Grafik Kura-kura Python
Program yang dapat disesuaikan
Semakin lama Anda membiarkan Kaleido-spiral berjalan, semakin rumit pola di layar.
Dengan mengubah parameter fungsi yang menggambar lingkaran, Anda dapat
membuat pola yang lebih membingungkan.
Gambar 3.7 Kaleido-Spiral python
69
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Bagaimana itu bekerja
Dalam proyek ini, Anda akan memakai modul kura-kura dan teknik perulangan
yang cerdas untuk melapisi lingkaran di atas satu sama lain dalam pola spiral. Setiap kali
lingkaran digambar, program sedikit meningkatkan parameter kode gambar lingkaran. Setiap
lingkaran baru berbeda dari yang terakhir digambar, membuat polanya lebih menarik.
Cycle
Untuk membuat pola berwarna, proyek ini memakai fungsi yang disebut cycle()
dari modul itertools. Fungsi cycle() memungkinkan Anda untuk menggilir daftar warna yang
berbeda berulang kali. Ini memudahkan penggunaan warna pena yang berbeda untuk setiap
lingkaran.
Dapatkan menggambar!
Hal pertama yang akan Anda gambar di layar adalah lingkaran sederhana. Selanjutnya
Anda akan mengulangi lingkaran ini, tetapi dengan sedikit perubahan. Terakhir, Anda akan
mengubah kode untuk membuat pola lebih berwarna dan menarik.
1. Buat file baru
Buka IDLE dan buat file baru. Simpan sebagai "kaleido -spiral.py".
2. Impor Kura-kura
Pertama, Anda perlu mengimpor modul kura-kura. Ini akan menjadi modul utama yang
Anda gunakan. Ketik baris ini di bagian atas program.
3. Siapkan kura-kura
Kode yang ditampilkan di sini memanggil fungsi dalam modul kura-kura untuk
mengatur warna latar belakang, serta kecepatan dan ukuran kura-kura.
4. Pilih warna pena, gambar lingkaran
Selanjutnya atur warna jejak kura-kura dan uji kodenya dengan menggambar
lingkaran. Tambahkan dua baris ini ke akhir kode Anda dan jalankan program.
70
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
5. Gambar lebih banyak lingkaran
Anda sekarang akan melihat satu lingkaran, tetapi kami membutuhkan lebih banyak
lagi. Di sinilah sedikit pintar. Letakkan perintah untuk menggambar lingkaran merah di
dalam suatu fungsi, tetapi tambahkan garis sehingga fungsi tersebut memanggil
dirinya sendiri. Trik ini, yang dikenal sebagai rekursi, membuat fungsi berulang. Ingat,
fungsi perlu didefinisikan sebelum digunakan, jadi Anda harus memindahkan fungsi di
atas garis yang memanggilnya.
Pengulangan
Ketika suatu fungsi memanggil dirinya sendiri, ini dikenal sebagai rekursi. Ini adalah
cara lain untuk membuat loop dalam program Anda. Dalam sebagian besar
penggunaan rekursi, parameter fungsi berubah setiap kali fungsi dipanggil. Dalam
Kaleido-spiral, misalnya, ukuran, sudut, dan posisi lingkaran berubah setiap kali fungsi
memanggil dirinya sendiri.
6. Uji kode Anda
Jalankan programnya. Anda akan melihat kura-kura menggambar lingkaran yang sama
berulang-ulang. Jangan khawatir—Anda akan memperbaikinya di langkah berikutnya.
7. Ubah warnanya, tambah ukurannya
Untuk membuat pola yang lebih menarik, buat perubahan ini pada kode untuk
memperbesar ukuran lingkaran dan mengubah warnanya. Kode ini memakai
fungsi cycle(), yang mengambil daftar nilai sebagai parameternya dan mengembalikan
jenis daftar khusus yang dapat Anda putar tanpa henti memakai fungsi next().
Jalankan kode lagi.
71
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
8. Perbaiki polanya
Sekarang setelah Anda mengubah warna dan ukuran lingkaran, Anda dapat mencoba
beberapa hal lagi untuk memperbaiki polanya. Mari kita beri sentuhan lucu dengan
mengubah sudut dan posisi di mana setiap lingkaran digambar. Buat perubahan yang
disorot dalam kode di bawah ini, lalu jalankan program dan lihat apa yang terjadi.
3.3 PERETASAN DAN PENYESUAIAN
Setelah semuanya bekerja dengan lancar, Anda dapat bermain-main dengan kode dan
membuat polanya menjadi lebih fantastis.
Gambar 3.8 Spiral Pena Tebal
72
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Pena tebal
Coba tambah ukuran pena dan lihat apa pengaruhnya pada pola Anda. Anda awalnya
mengaturnya ke 4 dengan kode di bawah ini. Seperti apa tampilan 40?
Penuh Warna
Bagaimana jika Anda mengubah warna latar belakang pada setiap loop, serta warna
pena? Ini mungkin memberi Anda beberapa hasil yang liar! Untuk mengubah warna
latar belakang setiap kali, pindahkan garis yang menyetelnya ke dalam fungsi
draw_circle(). Anda juga harus memakai siklus warna untuk memilih warna baru
pada setiap loop.
Temukan pola baru
Tampilan pola ditentukan oleh seberapa banyak Anda menambahkan parameter
fungsi setiap kali dipanggil. Coba tambahkan lebih banyak atau lebih sedikit pada
ukuran, pergeseran, dan sudut daripada yang Anda lakukan saat ini, untuk mengetahui
bagaimana perubahan ini memengaruhi pola.
Gambar 3.9 Perbandingan 2 Pola dengan letak tertentu
Perubahan bentuk
Bagaimana polanya jika program dapat menggambar bentuk lain dan juga lingkaran?
Menambahkan persegi setiap waktu dapat menciptakan pola yang menarik. Berikut
beberapa kode untuk membantu Anda. Hati-hati—nama fungsi telah berubah!
73
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Gambar 3.10 Pola perubahan Bentuk
3.4 MALAM BERBINTANG
Isi layar Anda dengan bintang-bintang yang indah! Proyek ini memakai modul
kura-kura Python untuk menggambar bentuk bintang. Angka acak menyebarkan bintang di
atas layar dan memvariasikan warna, ukuran, dan bentuknya.
Apa yang terjadi
Pertama, langit malam hari digambar, lalu satu bintang muncul di langit. Saat program
berlanjut, langit mulai dipenuhi dengan lebih banyak bintang dalam berbagai gaya yang
berbeda. Semakin lama Anda membiarkan program berjalan, semakin fantastis dan berwarna
langit menjadi.
74
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Gambar 3.11 Jenis dan Bentuk Bintang
Membuat warna
Gambar dan grafik pada layar komputer terdiri dari titik-titik kecil yang disebut piksel,
yang dapat mengeluarkan cahaya merah, hijau, dan biru. Dengan mencampur warna-warna
ini bersama-sama, Anda dapat membuat warna apa pun yang bisa dibayangkan. Dalam proyek
ini, warna setiap bintang disimpan sebagai tiga angka. Angka-angka mewakili jumlah cahaya
merah, hijau, dan biru yang digabungkan untuk memberikan warna akhir.
Gambar 3.12 Pencampuran Warna RGB
Layar penuh bintang
Proyek malam berbintang akan menggambar bintang satu per satu, tetapi karena
memakai loop while tak terbatas, itu akan menggambar bintang selamanya! Anda
dapat mengubah rentang ukuran bintang dengan menyesuaikan batas angka acak
dalam kode.
75
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Gambar 3.13 pembatasan rentang ukuran dan warna bintang yang dibuat
Bagaimana itu bekerja
Kode untuk proyek ini menggambar bentuk bintang di lokasi acak di jendela Turtle
Graphics. Anda akan menulis kode Python untuk membuat fungsi yang dapat menggambar
satu bintang. Kemudian Anda akan membuat lingkaran yang mengulanginya berulang-ulang,
menggambar banyak bintang berbeda di seluruh layar.
Bagan alir Malam Berbintang
Flowchartnya cukup sederhana, tanpa pertanyaan atau keputusan yang harus
dibuat. Setelah kura-kura menggambar bintang pertama, program akan mengulang
kembali dan mengulangi langkah menggambar bintang tanpa henti sampai Anda
berhenti.
Gambar 3.14 Diagram Alur membuat Bintang
76
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Menghitung bintang
Pada malam yang cerah ada sekitar 4.500 bintang yang terlihat di langit. Agar program
Anda menarik banyak bintang, Anda harus membiarkannya berjalan selama lebih dari
3 jam.
Menggambar bintang
Sebelum Anda membuat fungsi Anda, Anda perlu mengetahui cara menggambar
bintang di kura-kura. Setelah Anda menguasainya, Anda akan dapat membuat sisa kode untuk
proyek tersebut.
1. Buat file baru
Buka IDLE. Masuk ke menu File, lalu pilih File Baru. Simpan file sebagai
"starry_night.py".
2. Impor Kura-kura
Ketik baris ini ke dalam jendela editor yang muncul. Ini memuat modul kura-kura, siap
untuk Anda mulai menggambar bintang Anda.
3. Tulis beberapa instruksi
Sekarang tambahkan kode ini di bawah perintah untuk mengimpor penyu. Ini
menciptakan variabel yang mengatur ukuran dan bentuk bintang. Ini juga memberi
tahu kura-kura cara bergerak melewati jendela untuk menggambar bintang.
4. Gambarlah bintang percobaan
Dari menu IDLE, pilih Jalankan lalu Jalankan Modul untuk menguji proyek. Jendela
Turtle Graphics akan muncul (mungkin di belakang jendela lain) dan Anda akan melihat
panah kura-kura mulai menggambar bintang Anda.
Gambar 3.15 PopUp Python Turtle Graphics
77
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
5. Tambahkan kalkulator sudut
Akan lebih baik untuk dapat menggambar bintang dengan jumlah poin yang berbeda.
Buat perubahan ini pada kode. Ini akan menghitung sudut belokan yang harus dibuat
kura-kura untuk menggambar bintang dengan banyak titik yang Anda pilih.
6. Warnai itu!
Anda telah menggambar bintang yang bagus dan rapi, tetapi saat ini terlihat agak
kusam. Mari tambahkan beberapa warna agar lebih menarik. Ubah kode seperti yang
ditunjukkan di sebelah kanan untuk mengecat kuning bintang Anda.
7. Jalankan proyek
Kura-kura harus menggambar bintang kuning. Lihat apakah Anda dapat mengubah
warna bintang dengan mengedit kode.
8. Gambar bintang yang berbeda
Coba ubah angka setelah tanda sama dengan di titik variabel dan Anda akan melihat
bahwa Anda dapat menggambar bintang yang berbeda. Perhatikan bahwa kode hanya
berfungsi untuk bintang dengan jumlah poin ganjil. Angka genap akan mengacaukan
segalanya.
Gambar 3.16 bentuk dan warna bintang yang berbeda
78
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Bintang berlubang
Pada beberapa komputer, bintang Anda mungkin terlihat sedikit berbeda atau bahkan
memiliki lubang di tengahnya. Tampilan Grafik Turtle Python dapat bervariasi
tergantung pada jenis komputer yang Anda gunakan, tetapi ini tidak berarti bahwa
kode Anda salah.
Gambar 3.17 Bintang Macam yang berlubang
Langit berbintang
Langkah selanjutnya akan membungkus bintang Anda sebagai fungsi Python. Anda
kemudian dapat memakai fungsi itu untuk menggambar langit yang penuh
dengan bintang.
9. Buat fungsi bintang
Edit kode seperti yang ditunjukkan di sini. Ini menggantikan hampir semua kode yang
ada dengan versi baru. Blok besar membungkus semua instruksi menggambar bintang
dan menyimpannya dengan rapi sebagai sebuah fungsi. Anda sekarang dapat
memakai fungsi ini untuk menggambar bintang di kode utama Anda dengan satu
baris Python, draw_star().
10. Jalankan proyek
Kura-kura harus menggambar satu bintang kuning dengan latar belakang biru.
79
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Gambar 3.18 Jendela Bintang yang akan dibuat
Komentar
Pemrogram sering memberikan komentar dalam kode mereka untuk mengingatkan
mereka apa yang dilakukan oleh bagian yang berbeda dari suatu program atau untuk
menjelaskan bagian yang rumit dari suatu proyek. Komentar harus dimulai dengan #.
Python mengabaikan apa pun yang Anda ketik di baris yang sama setelahnya # dan
tidak memperlakukannya sebagai bagian dari kode. Menulis komentar di proyek Anda
sendiri (seperti baris # Kode utama yang ditunjukkan di atas) dapat sangat membantu
ketika Anda kembali untuk melihat program setelah meninggalkannya sebentar.
11. Tambahkan nomor acak
Sekarang campur semuanya dengan menambahkan beberapa angka acak ke kode
Anda. Ketik baris ini di bawah baris yang mengimpor kura-kura. Ini membawa fungsi
randint() dan random() dari modul acak Python.
12. Buat lingkaran
Lakukan perubahan ini pada bagian #Kode utama. Itu menambahkan loop sementara
yang terus-menerus mengacak parameter yang digunakan untuk mengatur ukuran,
bentuk, warna, dan posisi bintang.
13. Jalankan proyek lagi
Jendela harus perlahan terisi saat kura-kura menggambar bintang demi bintang dalam
berbagai warna, bentuk, dan ukuran.
80
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Gambar 3.19 menggambar bintang secara acak
3.5 KURA-KURA TAK TERLIHAT
Jika Anda lebih suka tidak melihat kura-kura, ingatlah ada perintah yang dapat Anda
gunakan untuk membuatnya tidak terlihat. Tambahkan baris ini ke program Anda dan bintang
Anda akan muncul secara ajaib, digambar oleh kura-kura yang tidak terlihat!
Peretasan dan penyesuaian
Anda sekarang dapat membuat bintang sesuai permintaan. Mengapa tidak mencoba
memakai kode draw_star() di proyek Anda sendiri. Berikut adalah beberapa ide.
Ubah bintang Anda
Untuk mengubah seberapa bervariasi tampilan bintang Anda, ubah angka dalam
kurung variabel ranPts dan ranSize dalam loop while.
Rancang rasi bintang
Rasi bintang adalah pola bintang di langit malam. Coba buat daftar posisi (x, y) untuk
bintang di konstelasi desain Anda sendiri. Kemudian gunakan for loop untuk
menggambar bintang di lokasi tersebut.
Gambar beberapa planet
Selidiki fungsi turtle.circle() dan lihat apakah Anda dapat memakai nya untuk
membuat beberapa kode gambar planet. Berikut beberapa kode untuk membantu
Anda memulai.
Klik untuk bintang
Daripada membiarkan kura-kura menggambar bintang secara acak, coba gunakan
fungsi turtle.onScreenClick() untuk menggambar bintang di mana pun Anda mengklik
dengan mouse.
81
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Percepat kura-kura
Anda dapat mengubah seberapa cepat kura-kura menggambar bintang dengan
membuat fungsi speed(). Cukup tambahkan t.speed(0) di awal kode utama untuk
memberikan lebih banyak zip pada turtle. Anda dapat melihat semua fungsi modul
kura-kura di bagian "Bantuan" Python.
3.6 PELANGI ACAK
Anda dapat memprogram kura-kura Python untuk menggambar segala macam pola
dan desain. Tapi hati-hati! Sepertinya kura -kura dalam proyek ini menjadi sedikit liar— Anda
tidak akan melihat pelangi seperti ini di langit!
Apa yang terjadi
Program akan meminta Anda untuk memilih panjang dan ketebalan garis yang dilukis
oleh kura-kura. Kura-kura kemudian berlarian di sekitar layar sampai Anda menghentikan
program, melukis garis-garis berwarna saat berjalan. Jenis pola yang dibuat akan berubah,
tergantung pada panjang dan ketebalan garis.
Warna apa selanjutnya?
Di Mutant Rainbow, Anda akan memakai fungsi choice() dari modul acak Python
untuk memilih warna saat Anda memberi tahu kura-kura untuk menggambar garis. Ini berarti
Anda tidak dapat benar-benar memprediksi warna mana yang akan digunakan kura-kura
setiap saat.
Gambar 3.20 Macam-macam pena berwarna
82
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Tampilan warna
Karena program ini memakai perulangan while tak terbatas, kura-kura terus
menggambar sampai Anda menutup jendelanya. Anda tidak hanya dapat mengubah
warna, lebar, dan panjang garis, tetapi juga bentuk, warna, dan kecepatan kura-kura
itu sendiri.
Bagaimana itu bekerja
Setiap pola dalam proyek ini berbeda karena program memberitahu kura-kura untuk
menghadap ke arah baru secara acak sebelum melukis setiap garis. Warna untuk setiap baris
juga dipilih secara acak dari daftar kemungkinan warna yang telah Anda kodekan. Jadi Anda
tidak akan pernah bisa memprediksi dengan tepat apa yang akan dilakukan kura-kura!
Gambar 3.21 Macam-macam ketebalan Pena
Diagram alir Pelangi Mutan
Program memakai loop tak terbatas yang terus melukis garis berwarna selama
program berjalan. Hanya ketika Anda menutup jendela, kura-kura akan menghentikan
pengembaraannya yang gila.
83
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Gambar 3.22 Diagram alur Pelangi Mutan
Kura-kura pelarian!
Diberi kebebasan penuh untuk berkeliaran, kura-kura cenderung berkeliaran di luar
jendela. Saat Anda menyusun program, Anda akan menulis beberapa kode untuk
memeriksa posisi kura-kura dan menghentikannya agar tidak menyimpang terlalu
jauh. Jika tidak, ini akan berubah menjadi proyek penyu yang menghilang!
Memulai
Mulailah dengan menyiapkan dan menyimpan file baru, mengimpor modul yang
dibutuhkan program, dan membuat beberapa fungsi yang berguna untuk mendapatkan
masukan pengguna.
1. Buat file baru
Buka IDLE dan buat file baru. Simpan sebagai "pelangi.py".
2. Tambahkan modul
Ketik dua baris ini di bagian atas file Anda untuk mengimpor modul Turtle dan modul
acak. Ingatlah untuk memakai import turtle sebagai t, sehingga Anda tidak perlu
mengetikkan kata “turtle” setiap kali ingin memakai fungsi dari modul Turtle.
Anda bisa menyebutnya t.
3. Tetapkan panjang garis
Selanjutnya buat fungsi yang akan membiarkan pengguna memutuskan apakah kura-
kura melukis garis panjang, sedang, atau pendek. Anda tidak akan memakai nya
sampai Langkah 4, tetapi ini akan membuat program siap saat Anda membutuhkannya.
Ketik sedikit kode ini di bawah kode pada Langkah 1.
84
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
4. Tentukan ketebalan
Pada langkah ini, Anda akan membuat fungsi yang memungkinkan pengguna memilih
apakah kura-kura melukis garis super tebal, tebal, atau tipis. Seperti fungsi
get_line_length(), Anda tidak akan memakai nya hingga Langkah 5. Ketik kode
yang ditampilkan di sini, di bawah kode yang Anda tambahkan di Langkah 3.
5. Gunakan fungsi
Sekarang setelah Anda membangun dua fungsi, Anda dapat memakai nya untuk
mendapatkan pilihan pengguna untuk panjang dan lebar garis. Ketik baris ini di akhir
kode Anda, lalu simpan pekerjaan Anda.
6. Uji programnya
Jalankan kode untuk melihat fungsi baru beraksi di shell. Mereka akan meminta Anda
untuk memilih panjang dan lebar garis.
Panggil kura-kura!
Saatnya menulis kode yang akan membuat jendela grafik dan membawa kura-kura
untuk menggambar.
85
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
7. Buka jendela
Ketik garis yang ditampilkan di sini di bawah kode yang Anda tambahkan pada Langkah
5. Kode ini mendefinisikan warna latar belakang jendela, bentuk, warna, dan
kecepatan kura-kura, dan lebar pena yang akan digunakan kura-kura untuk
menggambar garis.
8. Jalankan proyek
Jika Anda menjalankan kode sekali lagi, sebuah jendela akan muncul setelah Anda
memasukkan ukuran garis di jendela shell. Anda sekarang akan melihat kura-kura.
Perhatikan baik-baik, karena itu tidak akan duduk diam terlalu lama!
9. Tetap dalam batas!
Untuk menghentikan kura-kura agar tidak tersesat, mari kita tetapkan batas 100
langkah dari tepi jendela. Buat fungsi ini untuk memeriksa apakah kura-kura berada di
dalam batas atau tidak. Ketik kode yang ditunjukkan di sini di bawah kode di Langkah
4 dan di atas kode di Langkah 5.
Gambar 3.23 Hasil dari list program
86
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Cara kerjanya
Kode memeriksa apakah koordinat x kura -kura berada di antara batas kanan dan kiri,
dan apakah koordinat y berada di antara batas atas dan bawah.
Gambar 3.24 memeriksa letak bintang yang muncul
Pindahkan kura-kura itu!
Sekarang Anda siap untuk menulis fungsi yang membuat kura-kura Anda bergerak.
Bagian terakhir dari kode akan menjadi loop sementara yang membuat kura-kura
menggambar pelangi mutan!
10. Garis mutan
Tambahkan kode ini di bawah kode yang Anda ketik di Langkah 9, dan di atas kode
yang Anda ketik di Langkah 5. Fungsi ini membuat kura-kura berputar dan bergerak
maju ke arah yang baru, menggambar satu baris warna acak saat berjalan. Program
utama Anda akan memakai nya berulang kali untuk menggambar pelangi mutan.
Jika kura-kura tersesat di luar batas yang Anda tetapkan di Langkah 9, fungsi ini akan
mengembalikannya.
Cara kerjanya
Kode memanggil fungsi inside_window() untuk melihat apakah kura -kura berada
dalam batas jendela. Jika ya, kura-kura berbelok ke kanan dengan jumlah acak antara
0 derajat (tidak berbelok sama sekali) dan 180 derajat (menghadap ke arah yang
berlawanan), lalu bergerak lagi. Jika sudah terlalu jauh dari batas, ia bergerak mundur.
11. Pergi, Kura-Kura, Pergi!
Terakhir, tambahkan kode yang sebenarnya akan memulai menggambar kura-kura
Anda. Ketik dua baris ini tepat di bagian bawah kode Anda, di bawah perintah yang
Anda tambahkan di Langkah 7. Kemudian simpan dan jalankan kode untuk melihat
pelangi mutan pertama Anda!
87
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Peretasan dan penyesuaian
Apakah mutan pelangi Anda cukup? Tidak? Berikut adalah beberapa ide yang bisa Anda coba
untuk membuatnya lebih aneh!
Kejutan warna!
Dalam Python, warna juga dapat dideskripsikan dengan memakai nilai RGB— ini
singkatan dari merah, hijau, biru. Memilih nilai secara acak untuk jumlah merah, hijau,
dan biru dalam suatu warna berarti warna itu sendiri akan sepenuhnya acak. Coba
ganti kode di fungsi move_turtle() dengan beberapa kode baru yang memakai
nilai RGB alih-alih nama warna. Sekarang jalankan kode untuk melihat warna apa yang
muncul!
Campurkan garis
Jangan hanya berpegang pada satu lebar untuk garis—gambar pelangi yang lebih acak
dengan retasan ini! Garis akan berubah secara acak dari sangat tipis menjadi sangat
88
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
tebal dan semua lebar di antaranya. Tambahkan kode ini ke fungsi move_ turtle()
setelah Anda menyetel t.pencolor.
3.7 WARNA RGB
Dalam kura-kura, warna "biru" adalah (0, 0, 255) dalam nilai RGB, karena terdiri dari
jumlah maksimum biru, tanpa merah atau hijau. Jika Anda ingin memakai nilai RGB untuk
warna pena kura-kura, Anda perlu memberi tahu Python dengan memakai perintah
t.colormode(255), atau ia akan mengharapkan string dan memberi Anda kesalahan.
Cap kura-kura!
“Keling” garis pelangi Anda bersama-sama dengan memakai fungsi stamp() modul
turtle untuk menambahkan gambar turtle ke awal setiap baris. (Anda juga dapat
menulis sebuah fungsi untuk menggambar garis yang seluruhnya terdiri dari kura-kura
yang dicap dan memakai nya sebagai ganti t.forward dan t.backward.) Tambahkan
baris kode baru ini ke fungsi move_turtle(), setelah perintah pena, ke mulai memukau.
Gambar 3.25 Bintang berekor dengan variasi warna
89
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Belokan besar atau kecil?
Anda dapat menambahkan prompt yang memungkinkan pengguna untuk
memutuskan sudut belokan yang dibuat kura-kura. Mereka bisa lebar, persegi, atau sempit.
Ikuti langkah-langkah ini untuk melihat bagaimana ini mengubah pola.
1. Buatlah fungsi
Buat fungsi yang memungkinkan pengguna memilih ukuran belokan. Tambahkan ini di
atas fungsi get_line_length() yang Anda tambahkan di Langkah 3 proyek utama.
2. Gerakan yang berbeda
Ganti fungsi move_turtle() dengan versi baru yang ditampilkan di sini. Itu
menambahkan turn_size ke nilai yang Anda berikan ke fungsi saat Anda
memakai nya. Itu juga menggantikan sudut garis = acak. randint(0, 180) dengan
kode yang memilih derajat berbeda untuk berbelok tergantung pada nilai turn_size.
3. Masukan pengguna
Selanjutnya tambahkan baris ke bagian utama program untuk memakai fungsi
get_turn_size() untuk m endapatkan pilihan ukuran giliran pemain.
4. Program utama
Terakhir, ubah baris tempat Anda memakai fungsi move_turtle() untuk
menyertakan turn_size.
90
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Gambar 3.26 Warna dan Ketebalan Pena yang berbeda
91
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
BAB 4
APLIKASI BERMAIN
4.1 KALENDER HITUNG MUNDUR
Saat Anda menantikan acara yang menarik, ada baiknya Anda mengetahui berapa lama
lagi Anda harus menunggu. Dalam proyek ini, Anda akan memakai modul Tkinter Python
untuk membangun program praktis yang menghitung mundur hingga hari besar.
Apa yang terjadi
Saat Anda menjalankan program, program ini menampilkan daftar acara mendatang
dan memberi tahu Anda berapa hari yang tersisa hingga setiap acara. Jalankan lagi keesokan
harinya dan Anda akan melihat bahwa itu telah mengurangi satu hari dari masing-masing
angka "hari sampai". Isi dengan tanggal petualangan Anda yang akan datang dan Anda tidak
akan pernah melewatkan hari penting—atau tenggat waktu pekerjaan rumah—lagi!
Gambar 4.1 Kalender Perhitungan Mundur
Bagaimana itu bekerja
Program mempelajari tentang peristiwa penting dengan membaca informasi dari file
teks—ini disebut "input file". File teks berisi nama dan tanggal setiap acara. Kode menghitung
jumlah hari dari hari ini hingga setiap acara memakai modul datetime Python. Ini
menampilkan hasil di jendela yang dibuat oleh modul Tkinter Python.
memakai Tkinter
Modul Tkinter adalah seperangkat alat yang digunakan programmer Python untuk
menampilkan grafik dan mendapatkan input dari pengguna. Alih-alih menampilkan
output di shell, Tkinter dapat menampilkan hasil di jendela terpisah yang dapat Anda
rancang dan gaya sendiri.
92
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
4.2 ANTARMUKA PENGGUNA GRAFIS
Tkinter berguna untuk membuat apa yang oleh pembuat kode disebut GUI (diucapkan
"lengket"). GUI (antarmuka penggun a grafis) adalah bagian yang terlihat dari program yang
berinteraksi dengan seseorang, seperti sistem ikon dan menu yang Anda gunakan pada ponsel
cerdas. Tkinter membuat jendela sembulan yang dapat Anda tambahkan tombol, penggeser,
dan menu.
Gambar 4.2 Indikator Baterai dan kuat sinyal WiFi
Diagram Alir Kalender Hitung Mundur
Dalam proyek ini, daftar peristiwa penting dibuat secara terpisah dari kode sebagai file
teks. Program dimulai dengan membaca semua kejadian dari file ini. Setelah semua
hari dihitung dan ditampilkan, program berakhir.
Gambar 4.3 Diagram Alir Kalender hitung mundur
93
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Membuat dan membaca file teks
Semua informasi untuk Kalender Hitung Mundur Anda harus disimpan dalam file teks.
Anda dapat membuatnya memakai IDLE.
1. Buat file baru
Buka file IDLE baru, lalu ketik beberapa acara mendatang yang penting bagi Anda.
Letakkan setiap acara pada baris terpisah dan ketik koma di antara acara dan
tanggalnya. Pastikan tidak ada spasi antara koma dan tanggal acara.
2. Simpan sebagai file teks
Selanjutnya simpan file tersebut sebagai file teks. Klik menu File, pilih Save As, dan
panggil file “events.txt”. Sekarang Anda siap untuk mulai mengkode program Python.
3. Buka file Python baru
Anda sekarang perlu membuat file baru untuk kode tersebut. Simpan sebagai
"countdown_calendar.py" dan pastikan itu berada di folder yang sama dengan file
"events.txt" Anda.
Gambar 4.4 Ilustrasi Membuka file
4. Siapkan modul
Proyek ini membutuhkan dua modul: Tkinter dan datetime. Tkinter akan digunakan
untuk membangun GUI sederhana, sedangkan datetime akan memudahkan
perhitungan memakai tanggal. Impor mereka dengan mengetikkan dua baris ini
di bagian atas program baru Anda.
94
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
5. Buat kanvas
Sekarang atur jendela yang akan menampilkan acara penting Anda dan jumlah hari
hingga setiap acara. Letakkan kode ini di bawah garis yang Anda tambahkan pada
Langkah 4. Ini menciptakan jendela yang berisi "kanvas" —persegi panjang kosong yang
dapat Anda tambahkan teks dan gambar.
Kanvas
Di Tkinter, kanvas adalah area, biasanya persegi panjang, tempat Anda dapat
menempatkan berbagai bentuk, grafik, teks, atau gambar yang dapat dilihat atau
berinteraksi dengan pengguna. Anggap saja seperti kanvas seniman—kecuali Anda
memakai kode untuk membuat sesuatu, bukan kuas!
6. Jalankan kodenya
Sekarang coba jalankan kodenya. Anda akan melihat jendela muncul dengan judul
program. Jika tidak berhasil, ingatlah untuk membaca pesan kesalahan apa pun dan
periksa kode Anda dengan cermat untuk menemukan kemungkinan kesalahan.
Gambar 4.5 jendel hasil saat run program
95
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
7. Baca file teks
Selanjutnya buat fungsi yang akan membaca dan menyimpan semua kejadian dari file
teks. Di bagian atas kode Anda, setelah mengimpor modul, buat fungsi baru bernama
get_events. Di dalam fungsi tersebut terdapat daftar kosong yan g akan menyimpan
kejadian ketika file telah dibaca.
8. Buka file teks
Potongan kode berikutnya akan membuka file bernama events.txt sehingga program
dapat membacanya. Ketik baris ini di bawah kode Anda dari Langkah 7.
9. Mulai lingkaran
Sekarang tambahkan for loop untuk membawa informasi dari file teks ke dalam
program Anda. Loop akan dijalankan untuk setiap baris dalam file events.txt.
10. Hapus karakter yang tidak terlihat
Saat Anda mengetik informasi ke dalam file teks di Langkah 1, Anda menekan tombol
enter/return di akhir setiap baris. Ini menambahkan karakter "baris baru" yang tidak
terlihat di akhir setiap baris. Meskipun Anda tidak dapat melihat karakter ini, Python
bisa. Tambahkan baris kode ini, yang memberi tahu Python untuk mengabaikan
karakter tak terlihat ini saat membaca file teks.
11. Simpan detail acara
Pada titik ini, variabel yang disebut garis menyimpan informasi tentang setiap
peristiwa sebagai string, seperti Halloween,31/10/2017. Gunakan perintah split()
untuk memotong string ini menjadi dua bagian. Bagian sebelum dan sesudah koma
akan menjadi item terpisah yang dapat Anda simpan dalam daftar yang disebut
current_event. Tambahkan baris ini setelah kode Anda di Langkah 10.
96
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Modul waktu-tanggal
Modul datetime Python sangat berguna jika Anda ingin melakukan perhitungan yang
melibatkan tanggal dan waktu. Misalnya, apakah Anda tahu hari apa dalam seminggu
Anda lahir? Coba ketik ini ke dalam shell Python untuk mencari tahu.
Daftar posisi
Ketika Python memberi nomor item dalam daftar, itu dimulai dari 0. Jadi item pertama
dalam daftar current_event Anda, “Halloween”, ada di posisi 0, sedangkan item kedua,
“31/10/2017”, ada di posisi 1. Itu sebabnya kode mengubah current_event[1] menjadi
tanggal.
12. memakai waktu tanggal
Acara Halloween disimpan di current_event sebagai daftar yang berisi dua item:
"Halloween" dan "31/10/2017". Gunakan modul datetime untuk mengonversi item
kedua dalam daftar (di posisi 1) dari string menjadi bentuk yang dapat dipahami
Python sebagai tanggal. Tambahkan baris kode ini di bagian bawah fungsi.
13. Tambahkan acara ke daftar
Sekarang daftar current_event menampung dua hal: nama acara (sebagai string) dan
tanggal acara. Tambahkan current_event ke daftar acara. Berikut seluruh kode untuk
fungsi get_events().
97
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Mengatur hitungan mundur
Pada tahap pembuatan Kalender Hitung Mundur berikutnya, Anda akan membuat
fungsi untuk menghitung jumlah hari antara hari ini dan acara penting Anda. Anda juga
akan menulis kode untuk menampilkan acara di kanvas Tkinter.
14. Hitung hari
Buat fungsi untuk menghitung jumlah hari antara dua tanggal. Modul datetime
membuatnya mudah, karena dapat menambahkan tanggal bersama-sama atau
mengurangi satu dari yang lain. Ketik kode yang ditampilkan di sini di bawah fungsi
get_events() Anda. Ini akan menyimpan juml ah hari sebagai string dalam variabel
time_between.
15. Pisahkan talinya
Jika Halloween tinggal 27 hari lagi, string yang disimpan di time_between akan terlihat
seperti ini: '27 hari, 0:00:00' (nol mengacu pada jam, menit, dan detik). Hanya angka
di awal string yang penting, jadi Anda bisa memakai perintah split() lagi untuk
mendapatkan bagian yang Anda butuhkan. Ketik kode yang disorot di bawah ini
setelah kode pada Langkah 14. Ini mengubah string menjadi daftar tiga item: '27',
'hari', '0:00:00'. Daftar disimpan dalam number_of_days.
16. Kembalikan jumlah hari
Untuk menyelesaikan fungsi ini, Anda hanya perlu mengembalikan nilai yang disimpan
di posisi 0 dari daftar. Dalam kasus Halloween, itu adalah 27. Tambahkan baris kode
ini ke akhir fungsi.
98
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
17. Dapatkan acaranya
Sekarang setelah Anda menulis semua fungsi, Anda dapat memakai nya untuk
menulis bagian utama program. Letakkan dua baris ini di bagian bawah file Anda. Baris
pertama memanggil (menjalankan) fungsi get_events() dan menyimpan daftar acara
kalender dalam variabel yang disebut acara. Baris kedua memakai modul
datetime untuk mendapatkan tanggal hari ini dan menyimpannya dalam variabel yang
disebut hari ini.
18. Tampilkan hasilnya
Selanjutnya hitung jumlah hari hingga setiap peristiwa dan tampilkan hasilnya di layar.
Anda perlu melakukan ini untuk setiap acara dalam daftar, jadi gunakan for loop. Untuk
setiap peristiwa dalam daftar, panggil fungsi days_between_dates() dan simpan
hasilnya dalam variabel yang disebut days_until. Kemudian gunakan fungs i Tkinter
create_text() untuk menampilkan hasilnya di layar. Tambahkan kode ini tepat setelah
kode dari Langkah 17.
19. Uji programnya
Sekarang coba jalankan kodenya. Sepertinya semua baris teks ditulis di atas satu sama
lain. Bisakah Anda mencari tahu apa yang salah? Bagaimana Anda bisa
menyelesaikannya?
99
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
20. Sebarkan
Masalahnya adalah semua teks ditampilkan di lokasi yang sama (100, 100). Jika kita
membuat variabel bernama vertical_space dan meningkatkan nilainya setiap kali
program melewati perulangan for, itu akan meningkatkan nilai koordinat y dan spasi
teks lebih jauh ke bawah layar. Itu akan menyelesaikannya!
Gambar 4.7 PopUp Kalender yang muncul
21. Mulai hitungan mundur!
Itu saja—Anda telah menulis semua kode yang Anda butuhkan untuk Kalender Hitung
Mundur. Sekarang jalankan program Anda dan cobalah.
Peretasan dan penyesuaian
Cobalah peretasan dan penyesuaian ini untuk membuat Kalender Hitung Mundur lebih
berguna. Beberapa di antaranya lebih sulit daripada yang lain, jadi ada beberapa tips berguna
untuk membantu Anda.
Cat ulang kanvas
Anda dapat mengedit warna latar belakang kanvas Anda dan benar-benar meramaikan
tampilan tampilan program. Ubah baris kode c = Canvas.
Urutkan!
Anda dapat mengubah kode Anda sehingga acara diurutkan ke dalam urutan yang akan
terjadi. Tambahkan baris kode ini sebelum perulangan for. Ini memakai fungsi
sort() untuk mengatur acara dalam urutan menaik, dari jumlah hari terkecil hingga
yang terbesar.
100
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Ubah gaya teks
Berikan antarmuka pengguna Anda tampilan baru yang segar dengan mengubah
ukuran, warna, dan gaya teks judul.
Setel pengingat
Mungkin berguna untuk menyoroti peristiwa yang akan segera terjadi. Retas kode
Anda sehingga acara apa pun yang terjadi di minggu depan ditampilkan dengan warna
merah.
4.3 TANYAKAN PADA AHLINYA
Bisakah Anda menyebutkan semua ibu kota di dunia? Atau para pemain di tim olahraga
favorit Anda? Setiap orang ahli dalam sesuatu. Dalam proyek ini, Anda akan membuat kode
program yang tidak hanya dapat menjawab pertanyaan Anda, tetapi juga mempelajari hal-hal
baru dan menjadi seorang ahli.
Apa yang terjadi
Kotak input meminta Anda memasukkan nama negara. Saat Anda mengetikkan
jawaban Anda, program akan memberi tahu Anda apa ibu kotanya. Jika program tidak tahu,
ia meminta Anda untuk mengajarinya jawaban yang benar. Semakin banyak orang
memakai program ini, semakin pintar!
101
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Gambar 4.8 Pop-Up Pertanyaan ketika salah menjawab
Bagaimana itu bekerja
Program mendapatkan informasi tentang ibu kota dari file teks. Anda akan
memakai modul Tkinter untuk membuat kotak popup yang memungkinkan program dan
pengguna berkomunikasi. Ketika ibu kota baru dimasukkan oleh pengguna, informasi
ditambahkan ke dalam file teks.
Komunikasi
Program ini memakai dua widget Tkinter baru. Yang pertama, simpledialog( ),
membuat kotak popup yang meminta pengguna untuk memasukkan nama negara.
Yang kedua, messagebox(), menampilkan ibu kota.
Kamus
Anda akan menyimpan nama negara dan ibu kotanya dalam kamus. Kamus bekerja
sedikit seperti daftar, tetapi setiap item dalam kamus memiliki dua bagian, yang
disebut kunci dan nilai. Biasanya lebih cepat untuk mencari sesuatu di kamus daripada
menemukan sesuatu dalam daftar panjang.
Tanyakan diagram alur Pakar
Ketika program dimulai, ia membaca data dari file teks. Kemudian memakai loop
tak terbatas untuk terus mengajukan pertanyaan, dan hanya berhenti ketika pengguna
keluar dari program.
102
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Gambar 4.9 Diagram alur membuat pertanyaan
4.4 SISTEM PAKAR
Sistem pakar adalah program komputer yang ahli pada topik tertentu. Sama seperti
seorang ahli manusia, ia tahu jawaban atas banyak pertanyaan, dan juga dapat membuat
keputusan dan memberi nasihat. Hal ini dapat dilakukan karena seorang programmer telah
mengkodekannya dengan semua data yang dibutuhkannya dan aturan tentang cara
memakai data tersebut.
Langkah pertama
Ikuti langkah-langkah ini untuk membangun sistem pakar Anda sendiri memakai Python.
Anda harus menulis file teks ibukota negara, membuka jendela Tkinter, dan membuat kamus
untuk menyimpan semua pengetahuan.
1. Siapkan file teks
Pertama buat file teks untuk menampung daftar ibu kota dunia. Buat file baru di IDLE
dan ketik fakta berikut.
Gambar 4.10 membuat file
103
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
2. Simpan file teks
Simpan file sebagai "capital_data.txt". Program akan mendapatkan pengetahuan
khusus dari file ini.
3. Buat file Python
Untuk menulis program, buat file baru dan simpan sebagai "ask_expert.py". Pastikan
Anda menyimpannya di folder yang sama dengan file teks Anda.
Gambar 4.11 Menyimpan File
4. Impor alat Tkinter
Untuk membuat program ini, Anda memerlukan beberapa widget dari modul Tkinter.
Ketik baris ini di bagian atas program Anda.
5. Mulai Tkinter
Selanjutnya tambahkan kode berikut untuk menampilkan judul proyek di shell. Tkinter
secara otomatis membuat jendela kosong. Anda tidak memerlukannya untuk proyek
ini, jadi sembunyikan dengan baris kode yang cerdas.
6. Uji kodenya
Coba jalankan kode Anda. Anda akan melihat nama proyek yang ditampilkan di shell.
7. Siapkan kamus
Sekarang ketik baris kode ini setelah kode yang Anda tulis untuk Langkah 5. Kode baru
mengatur kamus yang akan menyimpan nama negara dan ibu kotanya.
memakai kamus
Kamus adalah cara lain Anda dapat menyimpan informasi dengan
Python. Ini mirip dengan daftar, tetapi setiap item memiliki dua bagian: kunci
dan nilai. Anda dapat mengujinya dengan mengetik ini di jendela shell.
104
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
1. Untuk menampilkan isi kamus, Anda harus mencetaknya. Coba cetak
favorite_foods.
2. Sekarang tambahkan item baru ke kamus: Julie dan makanan favoritnya. Dia
suka kue.
3. Jill berubah pikiran—makanan favoritnya sekarang adalah taco. Anda dapat
memperbarui informasi ini di kamus.
4. Terakhir, kamu bisa mencari makanan favorit Roger di kamus hanya dengan
memakai namanya sebagai kunci.
Saatnya fungsi!
Tahap proyek selanjutnya melibatkan pembuatan fungsi yang perlu Anda gunakan
dalam program Anda.
8. Masukan file
Anda memerlukan fungsi untuk membaca semua informasi yang tersimpan dalam file
teks Anda. Ini akan mirip dengan yang Anda gunakan di Kalender Hitung Mundur untuk
membaca data dari file acara Anda. Tambahkan kode ini setelah baris impor Tkinter.
105
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
9. Baris demi baris
Sekarang gunakan for loop untuk menelusuri file baris demi baris. Sama seperti di
Kalender Hitung Mundur, Anda harus menghapus karakter baris baru yang tidak
terlihat. Maka Anda perlu menyimpan nilai negara dan kota dalam dua variabel.
memakai perintah split, kode akan mengembalikan dua nilai. Anda dapat
menyimpan nilai-nilai ini dalam dua variabel memakai satu baris kode.
10. Tambahkan data ke kamus
Pada tahap ini, variabel negara dan kota menyimpan informasi yang perlu Anda
tambahkan ke dalam kamus. Untuk baris pertama dalam file teks Anda, negara akan
memegang "India" dan kota akan memegang "New Delhi". Baris kode berikutnya
menambahkannya ke dalam kamus.
11. Keluaran berkas
Saat pengguna mengetik di ibu kota yang tidak diketahui program, Anda ingin program
memasukkan informasi baru ini ke dalam file teks. Ini disebut keluaran file. Ini bekerja
dengan cara yang mirip dengan input file, tetapi alih-alih membaca file, Anda menulis
ke dalamnya. Ketik fungsi baru ini setelah kode yang Anda ketik di Langkah 10.
12. Tulis ke file
Sekarang tambahkan satu baris kode untuk menulis informasi baru ke dalam file.
Pertama kode akan menambahkan karakter baris baru, yang memberitahu program
untuk memulai baris baru dalam file teks. Kemudian ditulis nama negara diikuti dengan
garis miring (/) dan nama ibu kota, seperti Mesir/Kairo. Python secara otomatis
menutup file teks setelah informasi ditulis ke dalamnya.
106
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Kode program utama
Anda telah menulis semua fungsi yang Anda butuhkan, jadi inilah saatnya untuk mulai
mengkode program utama.
13. Baca file teks
Hal pertama yang Anda ingin program lakukan adalah membaca informasi dari file
teks. Tambahkan baris ini setelah kode yang Anda tulis di Langkah 7.
14. Mulai loop tak terbatas
Selanjutnya tambahkan kode di bawah ini untuk membuat infinite loop. Di dalam loop
adalah fungsi dari modul Tkinter: simpledialog.askstring(). Fungsi ini membuat kotak
di layar yang menampilkan informasi dan memberi ruang bagi pengguna untuk
mengetik jawaban. Uji kode lagi. Sebuah kotak akan muncul menanyakan Anda untuk
nama negara. Mungkin tersembunyi di balik jendela lain.
Gambar 4.12 Jendela pertanyaan
15. Tahu jawabannya?
Sekarang tambahkan pernyataan if untuk melihat apakah program mengetahui
jawabannya. Ini akan memeriksa apakah negara dan ibu kotanya disimpan dalam
kamus.
107
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
16. Tampilkan jawaban yang benar
Jika negara berada di the_world, Anda ingin program mencari jawaban yang benar dan
menampilkannya di layar. Untuk melakukan ini, gunakan kotak pesan. showinfo() dari
modul Tkinter. Ini menampilkan pesan dalam kotak dengan tombol OK. Ketik ini di
dalam pernyataan if.
17. Ujilah
Jika kode Anda memiliki bug, sekarang adalah saat yang tepat untuk menangkapnya.
Saat diminta untuk menyebutkan nama negara, ketik "Prancis". Apakah itu memberi
Anda jawaban yang benar? Jika tidak, lihat kembali kode Anda dengan hati-hati dan
lihat apakah Anda dapat menemukan di mana kesalahannya. Apa yang akan terjadi jika
Anda mengetik di negara yang tidak ada dalam file teks? Cobalah untuk melihat
bagaimana program merespons.
18. Ajarkan itu
Terakhir, tambahkan beberapa baris lagi setelah pernyataan if. Jika negara tidak ada
dalam kamus, program akan meminta pengguna untuk memasukkan nama ibu
kotanya. Ibu kota ini ditambahkan ke kamus, sehingga program mengingatnya untuk
waktu berikutnya. Kemudian fungsi write_to_file() menambahkan kota ke file teks.
19. Menjalankannya
Itu dia. Anda telah menciptakan pakar digital! Sekarang jalankan kodenya dan mulai
kuis!
108
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Peretasan dan penyesuaian
Bawa program Anda ke tingkat berikutnya dan buat lebih pintar dengan mencoba
saran-saran ini.
Di seluruh dunia
Ubah program Anda menjadi jenius geografis dengan membuat file teks yang berisi
setiap negara di dunia dan ibu kotanya. Ingatlah untuk meletakkan setiap entri pada
baris baru dalam format ini: nama negara/ibu kota.
Kapitalisasi
Jika pengguna lupa memakai huruf kapital untuk menyebut negara, program tidak
akan menemukan ibu kota. Bagaimana Anda bisa memecahkan masalah ini
memakai kode? Inilah salah satu cara untuk melakukannya.
Data yang berbeda
Saat ini, program hanya mengetahui tentang ibu kota dunia. Anda dapat mengubahnya
dengan mengedit file teks sehingga menyimpan fakta tentang subjek yang menjadi
keahlian Anda. Misalnya, Anda bisa mengajarinya nama tim olahraga terkenal dan
pelatihnya.
Gambar 4.13 Jendela Penulisan data
Cek fakta
Program Anda saat ini menambahkan jawaban baru langsung ke file teks, tetapi tidak
dapat memeriksa apakah jawabannya benar. Tweak kode sehingga jawaban baru
disimpan dalam file teks terpisah. Kemudian Anda dapat memeriksanya nanti sebelum
menambahkannya ke file teks utama. Inilah cara Anda dapat mengubah kode.
109
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
4.5 PESAN RAHASIA
Tukar pesan dengan teman Anda memakai seni kriptografi—mengubah teks
pesan sehingga orang yang tidak mengetahui metode rahasia Anda tidak dapat
memahaminya!
Apa yang terjadi
Program akan menanyakan apakah Anda ingin membuat pesan rahasia atau
mengungkapkan isi pesan rahasia. Ini kemudian akan meminta Anda untuk mengetikkan
pesan. Jika Anda memilih untuk membuat pesan rahasia, pesan Anda akan berubah menjadi
omong kosong belaka. Tetapi jika Anda memilih untuk mengungkapkan pesan, omong kosong
akan berubah menjadi teks yang dapat Anda baca!
Kriptografi
Kata kriptografi berasal dari kata Yunani kuno untuk “tersembunyi” dan “menulis.”
Orang -orang telah memakai teknik ini untuk mengirim pesan rahasia selama hampir
4.000 tahun. Berikut adalah beberapa istilah khusus yang digunakan dalam kriptografi—
• Cipher: satu set instruksi untuk mengubah pesan untuk menyembunyikan maknanya.
• Encrypt: untuk menyembunyikan pesan rahasia.
• Decrypt: untuk mengungkapkan pesan rahasia.
• Ciphertext: pesan setelah dienkripsi.
• Plaintext: pesan sebelum dienkripsi.
Bagikan kodenya
Jika Anda membagikan kode Python Anda dengan seorang teman, Anda akan dapat saling
mengirimkan pesan rahasia.
Bagaimana itu bekerja
Program mengatur ulang urutan huruf dalam pesan sehingga tidak dapat dipahami. Ini
dilakukan dengan mencari tahu huruf mana yang berada di posisi genap atau ganjil. Kemudian
ia menukar posisi setiap pasangan huruf dalam pesan, dimulai dengan dua yang pertama, lalu
dua berikutnya, dan seterusnya. Program ini juga membuat pesan terenkripsi dapat dibaca
kembali dengan mengalihkan huruf kembali ke tempat awal.
Gambar 4.14 Pesan Rahasia dalam sebuah Text
Enkripsi
Saat Anda menjalankan kode pada pesan Anda, program menukar setiap pasangan
huruf, mengacak artinya.
Dekripsi
Saat Anda atau teman mendekripsi pesan, program akan mengembalikan huruf ke
posisi semula.
110
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Bagan alir Pesan Rahasia
Program ini memakai infinite loop yang menanyakan pengguna apakah mereka
ingin mengenkripsi atau mendekripsi. Pilihan pengguna menentukan jalur mana yang
kemudian diambil program. Kotak dialog mendapatkan teks dari pengguna,
sedangkan kotak info menampilkan pesan terenkripsi dan dekripsi kepada mereka.
Program berakhir jika pengguna mengetik apa pun kecuali "enkripsi" atau "dekripsi".
Gambar 4.16 Diagram alir pesan rahasia
Misteri x
Program membutuhkan pesan untuk memiliki jumlah karakter yang genap. Ini
memeriksa pesan dan menghitung karakter. Jika ada jumlah karakter yang ganjil, ia
menambahkan x di akhir untuk membuatnya genap. Anda dan rekan agen rahasia
Anda akan tahu untuk mengabaikan x, jadi Anda tida k akan tertipu!
Gambar 4.17 Hasil Pesan rahasia yang muncul
4.6 MEMBUAT GUI
Anda akan menulis kode Anda dalam dua bagian. Pertama, Anda akan mengatur
beberapa fungsi untuk mendapatkan masukan dari pengguna; maka Anda akan menulis kode
yang melakukan enkripsi dan dekripsi. Sekarang mari kita mulai—Anda tidak pernah tahu
kapan Anda mungkin perlu mengirim pesan rahasia kepada seseorang!
111
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
1. Buat file baru
Buka IDLE dan buat file baru. Simpan sebagai "secret_messages.py".
2. Tambahkan modul
Anda perlu mengimpor beberapa widget dari modul Tkinter Python. Ini akan
memungkinkan Anda memakai beberapa fitur GUI-nya, seperti kotak pesan untuk
menampilkan informasi kepada pengguna, dan dialog sederhana untuk mengajukan
pertanyaan kepada mereka. Ketik baris ini di bagian atas file Anda.
3. Enkripsi atau dekripsi?
Sekarang buat fungsi, get_task(), untuk membuka kotak dialog yang menanyakan
pengguna apakah mereka ingin mengenkripsi atau mendekripsi pesan. Tambahkan
fungsi di bawah kode yang Anda tambahkan di Langkah 2.
4. Dapatkan pesannya
Buat fungsi baru, get_message(), untuk membuka kotak dialog yang meminta
pengguna mengetikkan pesan yang ingin mereka enkripsi atau dekripsi. Tambahkan
fungsi ini di bawah kode yang Anda tambahkan di Langkah 3.
5. Mulai Tkinter
Perintah ini memulai Tkinter dan membuat jendela Tkinter. Ketik di bawah fungsi yang
Anda buat di Langkah 4.
6. Mulai putaran
Sekarang setelah Anda membuat fungsi antarmuka, tambahkan loop while tak
terbatas ini untuk memanggil (menjalankan) fungsi tersebut dalam uru tan yang benar.
Masukkan kode ini di bawah perintah yang Anda ketik di Langkah 5.
112
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
7. Uji kodenya
Coba jalankan kodenya. Ini pertama-tama akan menampilkan kotak input yang
menanyakan apakah Anda ingin mengenkripsi atau mendekripsi. Kemudian akan
muncul kotak input lain sehingga Anda dapat mengetikkan pesan rahasia tersebut.
Terakhir, itu akan menampilkan pesan terenkripsi atau didekripsi di kotak info. Jika ada
masalah, periksa kode Anda dengan cermat.
Gambar 4.18 Hasil pengujian
Catat pesannya!
Sekarang setelah antarmuka Anda berfungsi, saatnya untuk menulis kode yang akan
mengenkripsi dan kemudian mendekripsi pesan rahasia Anda.
8. Apakah itu genap?
Anda perlu membuat fungsi untuk memberi tahu program apakah jumlah karakter
dalam pesan Anda genap atau tidak. Fungsi akan memakai operator modulo (%)
untuk memeriksa apakah dapat membagi bilangan dengan 2 tanpa meninggalkan sisa.
Jika bisa (Benar), maka angkanya genap. Tambahkan fungsi ini di bawah kode yang
Anda ketik di Langkah 2.
9. Dapatkan huruf genap
Pada langkah ini, Anda akan membuat fungsi yang mengambil pesan dan menghasilkan
daftar yang berisi semua huruf genap. Fungsi ini memakai perulangan for dengan
113
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
rentang dari 0 hingga len(pesan), sehingga ia memeriksa semua huruf dalam string.
Tambahkan fungsi ini di bawah kode di Langkah 8.
Gambar 4.19 Pengambilan posisi genap
10. Dapatkan huruf ganjil
Selanjutnya Anda perlu membuat fungsi serupa untuk menghasilkan daftar semua
huruf bernomor ganjil dalam pesan Anda. Letakkan fungsi ini di bawah kode pada
Langkah 9.
Gambar 4.20 Pengambilan Posisi Ganjil
11. Tukar huruf bulat
Sekarang Anda memiliki huruf genap dalam satu daftar dan ganjil di tempat lain, Anda
dapat memakai nya untuk mengenkripsi pesan Anda. Fungsi selanjutnya akan
mengambil huruf secara bergantian dari daftar ini dan memasukkannya ke dalam
daftar baru. Tetapi alih-alih menyusunnya dalam urutan aslinya, dimulai dengan huruf
genap, pesan akan dimulai dengan huruf ganjil. Ketik fungsi ini di bawah kode di
Langkah 10.
114
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Cara kerjanya
Fungsi swap_letters() menempatkan semua angka ganjil dan genap ke dalam daftar
baru, menambahkannya secara bergantian. Itu memulai daftar dengan huruf kedua
dalam kata, yang dihitung Python sebagai angka ganjil.
Gambar 4.21 Pengambilan posisi menyilang
Posisi bilangan bulat
Anda memakai nilai len(message)/2 dalam rentang loop Anda karena daftar huruf
genap dan ganjil keduanya setengah dari panjang pesan asli. Anda memastikan
panjang pesan Anda akan selalu genap dengan meminta program untuk
menambahkan x bi la perlu, sehingga dapat dibagi dengan 2. Namun, hasilnya akan
menjadi nilai float (dengan titik desimal, seperti 3.0 atau 4.0) daripada bilangan bulat
(bilangan bulat, seperti 3 atau 4). Python memberikan kesalahan jika Anda mencoba
memakai float untuk posisi item dalam daftar, jadi gunakan fungsi int() untuk
mengubahnya menjadi integer.
12. Perbarui loop
Fungsi swap_letters() memiliki fitur yang sangat berguna: jika Anda menjalankannya
pada pesan terenkripsi, itu akan mendekripsinya. Jadi Anda dapat memakai fungsi
ini untuk mengenkripsi atau mendekripsi pesan tergantung pada apa yang ingin
dilakukan pengguna. Buat perubahan berikut pada loop sementara yang Anda buat di
Langkah 6.
115
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
13. Jalankan enkripsi
Uji program Anda. Pilih "enkripsi" di jendela tuga s. Saat jendela pesan muncul,
masukkan jenis pesan yang mungkin ingin dirahasiakan oleh mata-mata. Coba: “Temui
aku di ayunan di taman pada siang hari”!
14. Jalankan dekripsi
Jika Anda memilih teks terenkripsi dan menyalinnya, Anda dapat memilih opsi
"dekripsi " pada putaran berikutnya. Di jendela pesan, rekatkan pesan terenkripsi dan
klik OK. Anda kemudian akan melihat pesan asli lagi.
Gambar 4.22 Dialog Keterangan yang muncul
15. Dekripsi ini!
Program cipher Anda sekarang seharusnya berfungsi. Untuk memastikan, coba
dekripsi teks yang ditampilkan di sini. Anda sekarang dapat membagikan kode Python
Anda dengan teman dan mulai mengirim pesan rahasia!
Peretasan dan penyesuaian
Berikut adalah beberapa ide untuk membuat pesan rahasia Anda semakin sulit dibaca
jika dicegat oleh agen musuh— seperti saudara atau saudari yang usil!
116
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Hapus spasi
Salah satu cara untuk membuat sandi Anda lebih aman adalah dengan menghilangkan
spasi dan karakter tanda baca, seperti titik dan koma. Untuk melakukannya, ketik
pesan Anda tanpa spasi dan tanda baca. Pastikan teman yang bertukar pesan dengan
Anda tahu bahwa ini adalah rencananya.
4.7 MEMBALIKKAN SETELAH BERTUKAR
Untuk mempersulit orang untuk memecahkan enkripsi Anda, balikkan pesan setelah
mengenkripsinya dengan swap_letters(). U ntuk melakukan ini, Anda harus membuat dua
fungsi berbeda—satu untuk mengenkripsi dan satu lagi untuk mendekripsi.
1. Fungsi enkripsi
Fungsi encrypt() menukar huruf dan kemudian membalikkan string. Ketik baris ini di
bawah fungsi swap_letters().
2. Fungsi dekripsi
Tambahkan fungsi decrypt() ini di bawah fungsi encrypt(). Ini dimulai dengan
membalikkan pesan terenkripsi, dan kemudian memakai swap_letters() untuk
mengembalikan huruf ke urutan yang benar.
3. Gunakan fungsi baru
Sekarang Anda perlu memperbarui bagian infinite loop dari program Anda untuk
memakai fungsi-fungsi ini alih-alih fungsi swap_letters().
117
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Tambahkan huruf "palsu"
Cara lain untuk mengenkripsi pesan adalah dengan menyisipkan huruf acak di antara
setiap pasangan huruf. Jadi kata "rahasia " bisa menjadi "stegciraelta" atau "shevcarieste".
Sama seperti dalam peretasan “Mundur setelah bertukar”, Anda memerlukan dua fungsi
berbeda—satu untuk mengenkripsi dan satu lagi untuk mendekripsi.
Gambar 4.23 Penambahan huruf palsu
1. Tambahkan modul lain
Impor fungsi choice() dari modul acak. Ini akan memungkinkan Anda memilih surat
palsu dari daftar surat. Ketik baris ini di dekat bagian atas file Anda, di bawah perintah
untuk mengimpor fungsi Tkinter.
2. Enkripsi
Untuk mengenkripsi pesan, Anda perlu mengatur daftar surat palsu untuk disisipkan
di antara yang asli. Kode yang ditunjukkan di bawah ini akan mengulang pesan,
menambahkan satu huruf asli dan satu huruf palsu ke daftar_enkripsi setiap kali
putaran.
3. Dekripsi
Mendekripsi pesan sangat mudah. Dalam versi pesan terenkripsi, semua huruf dalam
posisi genap adalah huruf dari pesan asli. Jadi Anda bisa memakai fungsi
get_even_letters() untuk mendapatkannya.
118
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
4. Gunakan fungsi baru
Sekarang Anda perlu memperbarui bagian infinite loop dari program Anda untuk
memakai fungsi encrypt() dan decrypt() yang baru, alih -alih swap_letters(). Untuk
melakukannya, buat perubahan ini pada kode Anda.
Multienkripsi
Untuk membuat segalanya lebih rumit, Anda dapat memodifikasi kode Anda sehingga
menggabungkan semua peretasan dan penyesuaian yang berbeda dari bagian ini.
Misalnya, itu bisa menambahkan huruf palsu, menukar huruf, dan kemudian
membalikkannya!
4.8 LAYAR HEWAN PELIHARAAN
Pernahkah Anda berharap memiliki hewan peliharaan untuk menemani Anda saat
mengerjakan pekerjaan rumah di komputer Anda? Dalam proyek ini, Anda akan membuat
hewan peliharaan yang "hidup" di sudut layar komputer Anda. Ini akan membuat Anda sibuk,
karena Anda harus merawat hewan peliharaan Anda agar tetap bahagia.
Apa yang terjadi
Saat Anda memulai program, Screen Pet akan duduk di sana, dengan sedikit senyum
di wajahnya, berkedip pada Anda. Teman Anda yang imut dan biru langit akan mengubah
ekspresinya dari normal (bawah) menjadi bahagia, nakal, atau sedih, tergantung bagaimana
Anda berinteraksi dengannya di layar. Tapi jangan khawatir, ini ramah—tidak akan menggigit
jika bosan!
Wajah bahagia
Jika Anda "mengelusnya" dengan penunjuk tetikus, Layar Pet bersinar dan
memerah.
Wajah nakal
Jika Anda mengklik dua kali untuk "menggelitik", h ewan peliharaan yang
nakal itu menjulurkan lidahnya.
Wajah sedih
Jika Anda mengabaikannya, Screen Pet akan menjadi sedih. Mengelusnya akan
menghiburnya lagi.
119
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Gambar 4.24 Ekpresi Tersenyum
Bagaimana itu bekerja
Menjalankan fungsi root.mainloop() Tkin ter akan menyiapkan loop sementara yang
terus memeriksa input dari pengguna. Loop terus berjalan sampai Anda menutup jendela
Tkinter utama. Ini juga bagaimana Anda dapat membuat GUI (antarmuka pengguna grafis)
yang bereaksi terhadap pengguna yang mengklik tombol atau memasukkan teks di Ask the
Expert.
Animasi putaran utama
Anda juga dapat menganimasikan gambar di jendela Tkinter memakai fungsi
root.mainloop(). Dengan menyuruhnya menjalankan fungsi yang mengubah gambar
pada waktu yang ditentukan, Anda dapat membuat Screen Pet tampak bergerak
dengan sendirinya.
Program berbasis acara
Screen Pet adalah program yang digerakkan oleh peristiwa, yang berarti bahwa hal-hal
yang dilakukannya dan urutannya bergantung pada masukan dari pengguna. Program mencari
input, seperti penekanan tombol dan klik mouse, kemudian memanggil fungsi yang berbeda
untuk menangani masing-masing. Program pengolah kata, video game, dan program
menggambar adalah contoh program yang digerakkan oleh peristiwa.
Diagram alur hewan peliharaan layar
Diagram alir menunjukkan urutan tindakan dan keputusan, dan bagaimana masukan
pengguna memengaruhinya. Program berjalan dalam lingkaran tanpa akhir. Ia
memakai variabel kebahagiaan yang selalu berubah untuk melacak suasana hati
hewan peliharaan.
120
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Gambar 4.25 Diagram Alur Membuat Hewan Piaraan
Gambar Hewan Peliharaan Layar Anda
Mari kita mulai. Pertama, Anda perlu membuat jendela tempat Screen Pet Anda akan
hidup. Kemudian Anda akan menulis beberapa kode untuk menggambar hewan peliharaan di
layar.
1. Buat file baru
Buka IDLE. Buka menu File dan pilih File Baru, lalu simpan file sebagai “screen_pet.py”.
2. Tambahkan modul Tkinter
Anda perlu mengimpor bagian dari modul Tkinter Python di awal program Anda. Ketik
kode ini untuk memasukkan Tkinter dan buka jendela tempat Screen Pet Anda akan
hidup.
3. Buat kanvas baru
Di jendela, buat kanvas biru tua yang disebut "c", di mana Anda akan menggambar
hewan peliharaan Anda. Tambahkan kode ini setelah baris yang membuka jendela
Tkinter. Empat baris kode baru ini adalah awal dari bagian utama program Anda.
121
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
4. Menjalankannya
Sekarang coba jalankan programnya. Apa yang Anda perhatikan? Kode seharusnya
hanya menampilkan jendela biru tua yang polos. Kelihatannya agak membosankan dan
kosong saat ini—yang Anda butuhkan adalah hewan peliharaan!
Gambar 4.26 Program dijalankan
5. Dapatkan menggambar
Untuk menggambar hewan peliharaan Anda, tambahkan instruksi ini di atas dua baris
kode terakhir. Ada perintah terpisah untuk setiap bagian tubuh. Angka-angka, yang
disebut koordinat, memberi tahu Tkinter apa yang harus digambar dan di mana
menggambarnya.
122
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Koordinat Tkinter
Petunjuk menggambar memakai koordinat x dan y. Di Tkinter, koordinat x dimulai
dari 0 di sebelah kiri dan meningkat saat Anda bergerak melintasi jendela, hingga
mencapai 400 di paling kanan. Koordinat y juga dimulai dari 0 di sebelah kiri. Mereka
menjadi lebih besar saat Anda bergerak ke bawah, hingga mencapai 400 di bagian
bawah.
Gambar 4.27 Koordinat tkinter
6. Jalankan lagi
Jalankan program lagi dan Anda akan melihat Screen Pet duduk di tengah jendela
Tkinter.
Gambar 4.28 gambar yang sudah ditentukan koordinat
Hewan peliharaan berkedip
Screen Pet Anda terlihat lucu, tetapi tidak melakukan apa-apa! Mari kita menulis
beberapa kode untuk membuatnya berkedip. Anda harus membuat dua fungsi: satu
untuk membuka dan menutup mata, yang lain untuk memberi tahu mereka berapa
lama untuk tetap terbuka dan tertutup.
7. Buka dan tutup mata
Buat fungsi ini, toggle_eyes(), di bagian atas file Anda, di bawah baris kode pertama .
Itu membuat mata terlihat tertutup dengan menyembunyikan pupil dan mengisi mata
dengan warna yang sama dengan tubuh. Itu juga mengubah mata antara terbuka dan
tertutup.
123
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Gambar 4.29 Karakter yang berkedip
Beralih
Beralih di antara dua status dikenal sebagai "beralih." Jadi Anda "menghidupkan"
lampu di rumah Anda saat Anda menyalakan dan mematikannya. Kode berkedip
beralih, atau matikan, antara mata Layar Pet yang terbuka dan tertutup. Jika mata
tertutup saat Anda menjalankannya, mereka akan berubah menjadi terbuka. Jika
mereka terbuka, mereka akan berubah menjadi tertutup.
8. Berkedip realistis
Mata hanya perlu menutup sebentar dan tetap terbuka beberapa saat di antara
kedipan. Tambahkan fungsi ini, blink(), di bawah kode yang Anda ketik di Langkah 7.
Ini mengedipkan mata selama seperempat detik (250 milidetik), lalu diakhiri dengan
perintah yang memberi tahu mainloop() untuk mema nggilnya lagi setelah 3 detik
( 3.000 milidetik).
124
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
9. Menghidupkan!
Letakkan baris ini di bagian utama program Anda, tepat di atas baris terakhir. Sekarang
jalankan programnya. Hewan peliharaan Anda akan hidup kembali setelah 1 detik
(1.000 milidetik) dan duduk di sana berkedip sampai Anda menutup jendela.
Mengubah suasana hati
Screen Pet terlihat cukup bahagia sekarang, dengan senyum kecilnya, tapi mari kita
lebih menghiburnya. Kami akan memberikan senyum yang lebih besar, berseri-seri dan
pipi yang cerah dan kemerahan.
10. Buat wajah bahagia
Tambahkan kode ini ke bagian program yang menggambar Screen Pet, setelah garis
yang membuat mulut "normal". Selain mulut bahagia dan pipi merah muda, itu juga
menarik mulut sedih. Mereka semua akan tetap tersembunyi untuk saat ini.
Gambar 4.30 Membuat wajah bahagia
125
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
11. Tunjukkan wajah bahagia
Selanjutnya, buat fungsi bernama show_happy() untuk menampilkan ekspresi bahagia
saat Anda menggerakkan penunjuk mouse di atas Layar Hewan Peliharaan seolah-olah
Anda sedang mengelusnya. Ketik kode ini di bawah fungsi blink() yang Anda
tambahkan di Langkah 8.
Pengendali acara
Fungsi show_happy() adalah even t handler. Ini berarti hanya dipanggil ketika peristiwa
tertentu terjadi, sehingga dapat menanganinya. Dalam kode Anda, membelai hewan
peliharaan Anda memanggil show_happy(). Dalam kehidupan nyata, Anda dapat
memanggil fungsi "pel lantai" untuk menangani a cara "minuman tumpah"!
Fokus
Tkinter tidak akan dapat melihat Anda menggerakkan penunjuk tetikus di atas jendela
untuk mengelus Screen Pet kecuali jika jendela "dalam fokus". Anda bisa membuatnya
fokus dengan mengklik sekali di mana saja di jendela.
12. Selamat bergerak
Saat program dimulai, Hewan Peliharaan Layar berkedip tanpa Anda melakukan apa
pun. Tetapi untuk membuatnya terlihat bahagia saat dibelai, Anda perlu memberi tahu
acara apa yang harus diwaspadai. Tkinter menyebut penunjuk mouse yang bergerak di
atas jendelanya sebagai peristiwa <Motion>. Anda perlu menautkan ini ke fungsi
handler dengan memakai perintah bind() Tkinter. Tambahkan baris ini ke bagian
utama program Anda. Kemudian jalankan kode dan usap hewan peliharaan untuk
mencobanya.
13. Sembunyikan wajah bahagia
Anda hanya ingin Screen Pet terlihat sangat bahagia saat Anda benar-benar
mengelusnya. Tambahkan fungsi baru, hide_happy(), di bawah kode untuk
show_happy(). Kode baru ini akan mengatur ekspresi Screen Pet kembali normal.
126
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
14. Panggil fungsinya
Ketik baris ini untuk memanggil hide_happy() saat penunjuk mouse meninggalkan
jendela. Ini menautkan acara <Leave> Tkinter ke hide_happy(). Sekarang uji kode
Anda.
Expresi Hewan Piaraan
Sejauh ini, hewan peliharaan Anda berperilaku sangat baik. Mari kita berikan
kepribadian yang nakal! Anda dapat menambahkan beberapa kode yang akan
membuat Screen Pet menjulurkan lidahnya dan menyilangkan matanya saat Anda
menggelitiknya dengan mengklik dua kali pada kode tersebut.
Gambar 4.31 Membuat Expresi Ka rakter
15. Menggambar lidah
Tambahkan baris ini ke kode yang menggambar Screen Pet, di bawah garis yang
membuat mulut sedih. Program akan menggambar lidah menjadi dua bagian, persegi
panjang dan oval.
16. Siapkan bendera
Tambahkan dua variabel bendera ke kode untuk melacak apakah mata Screen Pet
disilangkan atau lidahnya keluar. Ketik tepat di atas baris yang memberi tahu Screen
Pet untuk mulai berkedip, yang Anda tambahkan ke bagian utama kode di Langkah 9.
127
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
17. Alihkan lidah
Fungsi ini mengubah lidah Hewan Peliharaan Layar antara keluar dan masuk. Letakkan
kode yang ditunjukkan di bawah ini di atas fungsi show_happy() yang Anda buat pada
Langkah 11.
memakai variabel bendera
Variabel flag membantu Anda melacak sesuatu dalam program Anda yang dapat
berada di salah satu dari dua status. Saat Anda mengubah status, Anda memperbarui
bendera. Tanda "Terlibat / Kosong" di pintu toilet adalah bendera —Anda menyetelnya
ke "Terlibat" saat Anda mengunci pintu dan kembali ke "Kosong" saat Anda
membukanya.
18. Beralih murid
Untuk tampilan juling, murid harus menunjuk ke dalam. Fungsi toggle_pupils() ini akan
mengalihkan pupil Screen Pet antara menunjuk ke dalam dan terlihat normal. Ketik di
bawah fungsi blink() yang Anda tambahkan di Langkah 8.
128
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
19. Mengkoordinasikan kecerobohan
Sekarang buat fungsi untuk membuat Screen Pet menjulurkan lidah dan menyilangkan
matanya secara bersamaan. Ketik kode ini di bawah fungsi toggle_tongue() yang Anda
tambahkan di Langkah 17. Gunakan fungsi root.after() untuk membuat Screen Pet
kembali normal setelah 1 detik (1.000 milidetik), seperti yang Anda lakukan di blink().
20. Tautkan klik dua kali ke kecerobohan
Untuk memicu ekspresi nakal Screen Pet, tautkan acara klik dua kali ke fungsi nakal().
Letakkan baris baru ini tepat di bawah garis yang Anda tambahkan pada Langkah 14
untuk menyembunyikan wajah bahagia Screen Pet. Jalankan kodenya dan klik dua kali
untuk melihat keanehannya!
Hewan peliharaan yang sedih
Terakhir, beri tahu Screen Pet jika Anda tidak memperhatikannya. Setelah hampir satu
menit tanpa dibelai, hewan peliharaan Anda yang malang dan terabaikan akan
menunjukkan wajah sedihnya!
21. Siapkan tingkat kebahagiaan
Letakkan baris kode ini tepat di atas variabel flag yang Anda tambahkan ke bagian
utama program di Langkah 16. Ini menciptakan tingkat kebahagiaan untuk Screen Pet
dan menetapkan level 10 saat Anda menjalankan program dan menggambar hewan
peliharaan.
Gambar 4.32 Skala level kebahagiaan
129
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
22. Buat perintah baru
Ketik baris ini di bawah perintah yang Anda tambahkan pada Langkah 9 yang memulai
Screen Pet berkedip. Ini memberitahu mainloop() untuk memanggil fungsi sad(), yang
akan Anda tambahkan di Langkah 23, setelah 5 detik (5.000 milidetik).
23. Tulis fungsi sedih
Tambahkan fungsi ini, sad(), di bawah hide_happy(). Ia memeriksa untuk melihat
apakah c.happy_level masih 0. Jika ya, itu akan mengubah ekspresi Screen Pet menjadi
sedih. Jika tidak, itu mengurangi 1 dari c.happy_level. Seperti blink(), ini mengingatkan
mainloop() untuk memanggilnya lagi setelah 5 detik.
24. Bergembiralah, Layar Pet!
Apakah ada cara untuk menghentikan Screen Pet agar tidak sedih? Atau menghiburnya
ketika itu menyedihkan? Untungnya ada—Anda cukup mengeklik jendelanya dan
mengelusnya. Tambahkan baris kode ini ke fungsi show_happy() yang Anda tulis di
Langkah 11. Sekarang fungsi tersebut akan mereset nilai variabel c.happy_level
kembali ke 10 dan membuat Screen Pet menunjukkan wajah bahagianya lagi. Jalankan
kode untuk melihat hewan peliharaan Anda sedih, lalu menghiburnya dengan
membelainya.
Peretasan dan penyesuaian
Apakah Screen Pet hewan peliharaan ideal Anda sekarang? Jika tidak, Anda dapat
mengubah perilakunya atau menambahkan beberapa fitur tambahan! Berikut adalah
beberapa ide untuk mempersonalisasi Hewan Peliharaan Layar Anda.
Bersikap ramah, tidak nakal
Mungkin Anda lebih suka tidak memiliki hewan peliharaan yang nakal? Dapatkan
Screen Pet untuk memberi Anda kedipan ramah alih-alih membuat wajah kasar saat
Anda mengekliknya dua kali.
130
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Kebahagiaan ekstra
Mungkin akan mengganggu jika Anda harus terus membelai dan menggelitik Hewan
Peliharaan Layar saat mengerjakan pekerjaan rumah. Untuk membuatnya lebih jarang sedih,
setel nilai c.happy_level ke angka yang lebih tinggi di awal.
1. Tambahkan fungsi ini di bawah fungsi blink(). Ini mirip dengan kode blink(), tetapi
hanya akan mengaktifkan satu mata
2. Fungsi berikutnya menutup dan membuka mata kiri sekali untuk membuat Screen Pet
mengedipkan mata. Ketik di bawah toggle_left_eye().
3. Ingatlah untuk mengubah perintah yang mengikat acara klik dua kali (<Double -1>)
menjadi wink() alih -alih nakal() di bagian utama program.
4.9 HEWAN PELIHARAAN PELANGI
Sangat mudah untuk membuat Screen Pet warna yang berbeda dengan mengubah nilai
c.body_color. Jika Anda tidak dapat memutuskan warna apa yang akan dipilih, Anda dapat
menambahkan fungsi yang terus mengubah warna Screen Pet tanpa henti!
1. Pertama tambahkan baris untuk mengimpor modul acak Python. Letakkan di bawah
garis yang memuat fitur Tkinter proyek.
2. Sekarang ketikkan fungsi baru, change_color(), tepat di atas bagian utama k ode. Ini
mengambil nilai baru untuk c.body_color dari daftar pet_colors. Kemudian
menggambar ulang tubuh Screen Pet memakai warna baru. Karena memakai
random.choice, kamu tidak akan pernah bisa memastikan warna pet selanjutnya!
131
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
3. Terakhir, tambahkan ini tepat di atas baris terakhir di bagian utama program untuk
membuat mainloop() memanggil change_color() 5 detik (5.000 milidetik) setelah
program dimulai.
4. Anda mungkin ingin mengubah nilai dalam kode sehingga Screen Pet berubah warna
lebih cepat. Anda juga dapat mengubah warna dalam daftar menjadi warna yang lebih
Anda sukai, atau menambahkan warna tambahan.
Gambar 4.33 Macam Warna hewan piaraan
Beri aku makan!
Hewan peliharaan membutuhkan makanan, serta membelai dan menggelitik. Bisakah Anda
menemukan cara untuk memberi makan hewan peliharaan Anda dan menjaganya tetap
sehat?
1. Mungkin coba tambahkan "Beri saya makan!" tombol ke jendela Screen Pet dan fungsi
feed() yang dipanggil saat Anda mengklik tombol.
Gambar 4.34 Gambar Pet ketika di klik
2. Anda bahkan bisa membuat Screen Pet tumbuh jika Anda mengklik "Feed me!"
beberapa kali. Baris kode ini membuat tubuhnya lebih besar.
132
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
3. Kemudian coba tulis beberapa kode agar tubuh hewan peliharaan Anda menyusut
kembali ke ukuran aslinya lagi jika tidak mendapatkan cukup makanan.
Bersihkan itu!
Masalah dengan memberi makan Screen Pet adalah ia juga perlu buang air besar! Tulis
beberapa kode yang membuatnya kotoran beberapa saat setelah Anda memberinya
makan. Kemudian tambahkan tombol "Bersihkan". Mengklik " Bersihkan" akan
memanggil fungsi penangan yang menghapus kotoran.
Jendela yang lebih besar
Jika Anda menambahkan tombol atau fitur tambahan lainnya ke jendela Screen Pet,
mungkin akan sedikit sesak dan tidak nyaman bagi hewan peliharaan Anda. Jika
demikian, Anda dapat memperbesar jendela Tkinter. Untuk melakukannya, ubah nilai
lebar dan tinggi dalam perintah yang membuat kanvas di awal program utama.
133
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
BAB 5
GAME DENGAN PYTHON
5.1 ULAT
Jika semua pengkodean ini telah membangkitkan selera Anda, Anda tidak sendirian—
bintang dari proyek ini adalah ulat yang lapar. Dengan memakai modul kura-kura Python,
Anda akan mengetahui cara menganimasikan karakter game dan mengontrolnya di layar
dengan keyboard.
Apa yang terjadi
Anda memakai empat tombol panah untuk mengarahkan ulat di sekitar layar dan
membuatnya "memakan" daun. Setiap daun memberi Anda poin, tetapi juga membuat ulat
lebih besar dan lebih cepat, membuat permainan lebih sulit. Jauhkan ulat di dalam jendela
permainan, atau permainan berakhir!
Meningkatkan kesulitan
Semakin banyak daun yang dimakan ulat, semakin sulit permainannya. Saat ulat
semakin panjang dan cepat, reaksi Anda juga harus semakin cepat; jika tidak, ulat Anda
akan memperkecil layar.
Gambar 5.1 Permainan Ular
Skor Anda ditampilkan di sudut kanan atas jendela permainan.
Daun menghilang saat dimakan, dan daun baru kemudian muncul di tempat lain.
Untuk memulai permainan, pemain harus mengklik layar terlebih dahulu dan
kemudian menekan bilah spasi.
Bagaimana itu bekerja
Proyek ini memakai dua kura-kura utama: satu untuk menggambar ulat dan satu lagi
untuk menggambar daun. Kode menempatkan setiap daun baru di lokasi acak. Ketika program
mendeteksi bahwa daun telah dimakan, variabel yang menyimpan skor, kecepatan ulat, dan
panjangnya meningkat. Sebuah fungsi mengetahui apakah ulat telah pindah ke luar jendela,
yang akan menandakan akhir dari permainan.
134
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Bagan alir Ulat
Untuk membuat ulat bergerak melintasi layar, Anda akan memakai loop tak
terbatas. Setiap kali putaran berputar, ulat bergerak sedikit ke depan. Saat loop
berulang dengan cepat, gerakan kecil ini menciptakan ilusi bahwa ulat Anda sedang
merangkak.
Gambar 5.2 Diagram Alur Permainan Ulat
5.2 LANGKAH PERTAMA
Untuk permainan yang menyenangkan, kodenya sangat mudah. Anda akan mulai
dengan menyiapkan kura-kura, sebelum beralih ke loop permainan utama dan akhirnya
kontrol keyboard.
1. Mulai
Buka IDLE dan buat file baru. Simpan sebagai "caterpillar.py".
2. Impor modul
Tambahkan dua pernyataan impor ini untuk memberi tahu Python bahwa Anda
memerlukan modul kura-kura dan acak. Baris ketiga mengatur warna latar belakang
untuk jendela permainan.
135
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
3. Buat ulat kura-kura
Sekarang buat kura-kura yang akan menjadi ulat Anda. Tambahkan kode yang
ditampilkan di sini. Ini menciptakan kura-kura dan mengatur warna, bentuk, dan
kecepatannya. Fungsi caterpillar.penup() menonaktifkan pena kura -kura,
memungkinkan Anda untuk memindahkan kura-kura di sekitar layar tanpa
menggambar garis di sepanjang jalan.
4. Buat kura-kura daun
Di bawah kode untuk Langkah 3, ketik baris ini untuk mengatur kura-kura kedua, yang
akan menggambar daunnya. Kode memakai daftar enam pasangan koordinat
untuk menggambar bentuk daun. Setelah Anda memberi tahu kura-kura tentang
bentuk ini, ia dapat memakai kembali detailnya untuk menggambar lebih banyak
daun. Panggilan ke hideturtle di sini membuat kura-kura ini tidak terlihat di layar.
5. Tambahkan beberapa teks
Sekarang siapkan dua kura-kura lagi untuk menambahkan teks ke permainan.
Seseorang akan menampilkan pesan sebelum aksi dimulai, memberi tahu pemain
untuk menekan bilah spasi untuk memulai. Yang lain akan menulis skor di sudut
jendela. Tambahkan baris ini setelah kode penyu daun.
136
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Lingkaran utama
Kura-kura Anda sekarang sudah siap dan siap untuk pergi. Mari tulis kode yang
membuat game menjadi hidup.
6. Fungsi placeholder
Anda dapat menunda pendefinisian suatu fungsi sampai nanti dengan memakai
kata kunci pass. Di bawah kode untuk kura-kura, tambahkan placeholder berikut untuk
fungsi yang akan Anda isi dengan kode di langkah selanjutnya.
Lulus
Dengan Python, jika Anda belum yakin kode apa yang Anda inginkan di dalam suatu
fungsi, Anda cukup mengetikkan kata kunci pass dan kembali lagi nanti. Ini seperti
menyampaikan pertanyaan dalam kuis.
7. Pemula permainan
Setelah empat fungsi placeholder, muncul fungsi start_game(), yang menyiapkan
beberapa variabel dan menyiapkan layar sebelum loop animasi utama dimulai. Anda
akan menambahkan kode untuk loop utama, yang membentuk sisa fungsi ini, di
langkah berikutnya.
137
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
8. Bergerak
Putaran utama menggerakkan ulat sedikit ke depan, sebelum melakukan dua
pemeriksaan. Ini pertama memeriksa apakah ulat telah mencapai daun. Jika daun telah
dimakan, skornya meningkat, daun baru akan ditarik, dan ulat menjadi lebih panjang
dan lebih cepat. Loop kemudian memeriksa apakah ulat telah meninggalkan jendela—
jika demikian, permainan berakhir. Tambahkan loop utama di bawah kode yang Anda
ketik di Langkah 7.
9. Ikat dan dengarkan
Sekarang letakkan garis-garis ini di bawah fungsi yang baru saja Anda buat. Fungsi
onkey() mengikat bilah spasi ke start_game(), sehingga Anda dapat menunda mulai
hingga pemain menekan spasi. Fungsi listen() memungkinkan program menerima
sinyal dari keyboard.
10. Uji kode Anda
Jalankan programnya. Jika kode Anda benar, Anda akan melihat ulat bergerak setelah
Anda menekan spasi. Akhirnya, itu harus merangkak dari layar. Jika program tidak
bekerja, periksa kode Anda dengan hati-hati untuk bug.
Mengisi kekosongan
Saatnya mengganti pass di fungsi placeholder dengan kode yang sebenarnya. Setelah
menambahkan kode untuk setiap fungsi, jalankan game untuk melihat perbedaannya.
11. Tetap didalam
Isi fungsi outside_window() dengan kode ini. Pertama menghitung posisi masing -
masing dinding. Kemudian ia meminta ulat untuk posisinya saat ini. Dengan
membandingkan koordinat ulat dengan koordinat dinding, dapat diketahui apakah ulat
telah meninggalkan jendela. Jalankan program untuk memeriksa fungsinya—ulat
harus berhenti ketika mencapai tepi.
138
Proyek Coding dengan Python (Dr. Joseph Teguh Santoso)
Bagaimana itu bekerja
Bagian tengah jendela memiliki koordinat (0, 0). Karena lebar jendela 400, lebar
dinding kanan setengah dari tengah, yaitu 200. Kode mendapatkan posisi dinding kiri
dengan mengurangkan setengah lebar dari 0. Dengan kata lain, 0–200, yaitu –200. Ia
menemukan posisi dinding atas dan bawah dengan metode yang sama.
Gambar 5.3 Koordinat pada Game
12. TAMAT!
Ketika ulat telah meninggalkan layar, tampilkan pesan untuk memberi tahu pemain
bahwa permainan telah berakhir. Isi fungsi game_over() dengan kode ini. Saat
dipanggil, fungsi tersebut akan menyembunyikan ulat dan daun, dan menulis “GAME
OVER!” di layar.
13. Tunjukkan skornya
Fungsi display_score() menginstruksikan kura -kura skor untuk menulis ulang skor,
menempatkan total terbaru di layar. Fungsi ini dipanggil