h 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 kode. Ini 

mengambil nilai baru untuk c.body_color dari daftar pet_colors. Kemudian 

menggambar ulang tubuh Screen Pet menggunakan warna baru. Karena menggunakan 

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 menggunakan modul kura-kura Python, 

Anda akan mengetahui cara menganimasikan karakter game dan mengontrolnya di layar 

dengan keyboard. 

Apa yang terjadi 

Anda menggunakan 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 menggunakan 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 menggunakan 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 menggunakan daftar enam pasangan koordinat 

untuk menggambar bentuk daun. Setelah Anda memberi tahu kura-kura tentang 

bentuk ini, ia dapat menggunakan 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 menggunakan 

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 setiap kali ulat mencapai 

daun. 

 

139 

 

Proyek Coding dengan Python (Dr. Joseph Teguh Santoso) 

 

14. Daun baru 

Saat daun tercapai, fungsi place_leaf() dipanggil untuk memindahkan daun ke lokasi 

baru yang acak. Ia memilih dua angka acak antara –200 dan 200. Angka-angka ini 

menjadi koordinat x dan y untuk daun berikutnya. 

 

15. Menghidupkan ulat 

Selanjutnya, untuk menghubungkan tombol keyboard ke caterpillar, tambahkan 

empat fungsi arah baru setelah fungsi start_game(). Untuk membuat permainan ini 

sedikit lebih rumit, ulat hanya bisa berbelok 90 derajat. Akibatnya, setiap fungsi 

pertama-tama memeriksa untuk melihat ke arah mana ulat itu bergerak sebelum 

mengubah arahnya. Jika ulat berjalan ke arah yang salah, fungsi menggunakan 

setheading() untuk membuatnya menghadap ke arah yang benar. 

 

16. Mendengarkan pers 

Terakhir, gunakan onkey() untuk menautkan fungsi arah ke tombol keyboard. 

Tambahkan baris ini setelah panggilan onkey() yang Anda buat di Langkah 9. Dengan 

kode kemudi di tempat, permainan selesai. Bersenang-senang bermain dan mencari 

tahu skor tertinggi Anda! 

140 

 

Proyek Coding dengan Python (Dr. Joseph Teguh Santoso) 

 

Peretasan dan penyesuaian 

Sekarang setelah permainan ulat Anda berfungsi, tidak akan terlalu sulit untuk 

memodifikasinya atau bahkan memperkenalkan ulat pembantu atau saingan! 

Jadikan ini permainan dua pemain 

Dengan membuat kura-kura ulat kedua dengan kontrol keyboard terpisah, Anda dan 

seorang teman dapat bekerja sama untuk membuat ulat memakan lebih banyak daun! 

1. Buat ulat baru 

Pertama, Anda harus menambahkan ulat baru. Ketik baris ini di dekat bagian atas 

program Anda, di bawah kode yang membuat ulat pertama. 

 

2. Tambahkan parameter 

Untuk menggunakan kembali fungsi outside_window() untuk kedua ulat, tambahkan 

parameter ke dalamnya. Sekarang Anda dapat mengetahui ulat mana yang ingin Anda 

periksa. 

 

3. Sembunyikan ulat2 

Saat fungsi game_over() dipanggil, ia menyembunyikan ulat pertama. Mari tambahkan 

garis untuk menyembunyikan ulat kedua juga. 

 

4. Ubah fungsi utama 

Anda harus menambahkan kode untuk caterpillar2 ke fungsi start_game() utama. 

Pertama atur bentuk awalnya dan buat menghadap ke arah yang berlawanan dari ulat 

pertama. Kemudian tambahkan ke loop while untuk membuatnya bergerak, dan 

tambahkan tanda centang pada pernyataan if sehingga bisa memakan daunnya. Anda 

juga perlu menambahkan garis untuk membuatnya tumbuh. Terakhir, edit panggilan 

141 

 

Proyek Coding dengan Python (Dr. Joseph Teguh Santoso) 

ke fungsi outside_window() dalam pernyataan if kedua Anda untuk melihat apakah 

permainan sudah selesai. 

 

 

 

5. Kontrol ekstra 

Sekarang tetapkan kunci yang akan digunakan pemain kedua untuk mengontrol ulat 

baru. Kode di sini menggunakan "w" untuk atas, "a" untuk kiri, "s" untuk bawah, dan 

"d" untuk kanan, tetapi jangan ragu untuk mencoba pilihan yang berbeda. Anda 

memerlukan empat fungsi baru dan empat penggunaan onkey untuk mengikat tombol 

baru ke fungsi baru. 

 

142 

 

Proyek Coding dengan Python (Dr. Joseph Teguh Santoso) 

Buatlah kompetitif 

Lihat apakah Anda dapat mengetahui cara mengadaptasi permainan dua pemain untuk 

mencatat skor setiap pemain dan kemudian mengumumkan pemenangnya di akhir. 

Berikut tipnya: Anda memerlukan variabel baru untuk melacak skor pemain kedua. 

Saat ulat memakan daun, Anda hanya perlu menambahkan poin ke skor ulat itu. 

Terakhir, saat permainan selesai, Anda dapat membandingkan skor untuk melihat 

siapa yang menang. 

Buat lebih sulit atau lebih mudah 

Jika Anda mengubah nilai di dalam lingkaran yang menambah panjang (+1) dan 

kecepatan (+2) ulat, Anda dapat mengubah tingkat kesulitan permainan. Angka yang 

lebih tinggi akan membuat permainan lebih sulit, sedangkan angka yang lebih rendah 

akan membuatnya lebih mudah. 

 

5.3 SNAP  

Tantang teman Anda ke permainan jepret digital. Gim dua pemain yang serba cepat ini 

membutuhkan mata yang tajam dan reaksi secepat kilat. Ini bekerja seperti permainan kartu 

tetapi menggunakan bentuk berwarna yang muncul di layar daripada kartu yang dibagikan. 

Apa yang terjadi 

Berbagai bentuk muncul di layar secara acak dalam warna hitam, merah, hijau, atau biru. Jika 

warna muncul dua kali berturut-turut, tekan tombol jepret. Pemain 1 menekan tombol "q" 

untuk mengambil dan pemain 2 menekan tombol "p". Setiap jepretan yang benar mencetak 

poin. Snap pada waktu yang salah dan Anda kehilangan poin. Pemain dengan skor tertinggi 

adalah pemenangnya. 

Memulai permainan 

Game ini bekerja di jendela Tkinter. Saat Anda memulai program, jendela Tkinter 

mungkin tersembunyi di balik jendela IDLE di desktop Anda. Pindahkan mereka agar 

Anda dapat melihat permainannya. Namun, cepatlah: bentuk jepret mulai muncul 3 

detik setelah Anda menjalankan program. 

 

Gambar 5.4 Snap yang sama akan memulai permainan 

143 

 

Proyek Coding dengan Python (Dr. Joseph Teguh Santoso) 

Bagaimana itu bekerja 

Proyek ini menggunakan Tkinter untuk membuat bentuk. Fungsi mainloop() Tkinter 

menjadwalkan fungsi yang akan Anda buat untuk menampilkan bentuk berikutnya. Fungsi 

acak modul shuffle() memastikan bentuk selalu muncul dalam urutan yang berbeda. Tombol 

“q” dan “p” terikat (ditautkan) ke fungsi snap(), sehingga setiap kali salah satu tombol ini 

ditekan, skor pemain yang bersangkutan akan diperbarui. 

Jepret diagram alur 

Program berjalan selama masih ada bentuk yang tersisa untuk diungkap. Ini bereaksi 

terhadap penekanan tombol pemain ketika mereka berpikir mereka melihat snap. 

Ketika tidak ada lagi bentuk yang tersisa, pemenang diumumkan dan permainan 

berakhir. 

 

 

Gambar 5.5 Flowchart memulai pertandingan 

 

Mulai 

Pertama, Anda perlu mengimpor modul yang relevan dan membuat antarmuka pengguna 

grafis (GUI). Kemudian Anda perlu membuat kanvas untuk menggambar bentuk. 

1. Buat file baru 

Buka IDLE. Buat file baru dan simpan sebagai "snap.py". 

144 

 

Proyek Coding dengan Python (Dr. Joseph Teguh Santoso) 

2. Tambahkan modul 

Pertama-tama impor modul acak dan waktu, dan bagian dari Tkinter. Waktu 

memungkinkan Anda membuat penundaan sehingga pemain dapat membaca "SNAP!" 

atau "SALAH!" pesan sebelum bentuk berikutnya ditampilkan. HIDDEN memungkinkan 

Anda menyembunyikan setiap bentuk hingga Anda ingin menampilkannya dengan 

NORMAL—jika tidak, semua bentuk akan muncul di layar pada awal permainan. 

 

3. Siapkan GUI 

Sekarang ketik kode yang ditampilkan di sini untuk membuat jendela Tkinter (juga 

disebut widget root) dengan judul "Snap". Jalankan kode untuk memeriksanya. Jendela 

mungkin tersembunyi di balik jendela lain di desktop. 

 

4. Buat kanvas 

Ketik baris ini untuk membuat kanvas—ruang kosong tempat bentuk akan muncul. 

 

Membuat bentuk 

Tahap selanjutnya adalah membuat bentuk berwarna menggunakan fungsi dari widget 

Canvas Tkinter. Anda akan menggambar lingkaran, kotak, dan persegi panjang, masing-

masing dalam empat warna berbeda. 

 

5. Buat toko untuk bentuknya 

Anda perlu membuat daftar sehingga Anda dapat menyimpan semua bentuk di suatu 

tempat. Tambahkan baris ini di bagian bawah file Anda. 

 

6. Buat lingkaran 

Untuk menggambar lingkaran, gunakan fungsi create_oval() widget Canvas. Ketik kode 

berikut di bawah daftar bentuk. Ini membuat empat lingkaran dengan ukuran yang 

sama—masing-masing berwarna hitam, merah, hijau, dan biru—dan 

menambahkannya ke daftar bentuk. 

145 

 

Proyek Coding dengan Python (Dr. Joseph Teguh Santoso) 

 

Buat oval 

Fungsi create.oval() menggambar oval seolah-olah berada di dalam kotak tak terlihat. 

Empat angka di dalam tanda kurung menentukan posisi lingkaran di layar. Mereka 

adalah koordinat dari dua sudut kotak yang berlawanan. Semakin besar perbedaan 

antara dua pasang angka, semakin besar lingkarannya. 

 

Gambar 5.6 Membentuk Oval 

 

7. Tunjukkan lingkarannya 

Coba jalankan programnya. Apakah Anda melihat bentuk apapun? Ingatlah bahwa 

Anda menyetel statusnya ke TERSEMBUNYI. Ubah status satu bentuk menjadi 

NORMAL dan jalankan kode lagi. Anda sekarang seharusnya dapat melihat bentuk itu 

di layar. Berhati-hatilah untuk tidak mengatur lebih dari satu bentuk ke NORMAL. Jika 

Anda melakukannya, semuanya akan ditampilkan sekaligus, digambar satu di atas yang 

lain. 

 

8. Tambahkan beberapa persegi panjang 

Sekarang buat empat persegi panjang berwarna berbeda menggunakan fungsi 

create_rectangle() Canvas. Sisipkan blok kode ini di antara kode gambar lingkaran dan 

c.pack(). Untuk menghindari mengetik semuanya, cukup ketik dua baris pertama, lalu 

salin dan tempel tiga kali dan ubah warnanya. 

 

9. Tambahkan beberapa kotak 

Selanjutnya menggambar kotak. Anda dapat menggunakan fungsi yang sama yang 

Anda gunakan untuk membuat persegi panjang, tetapi kali ini Anda akan mengubah 

146 

 

Proyek Coding dengan Python (Dr. Joseph Teguh Santoso) 

persegi panjang menjadi persegi dengan membuat semua sisinya sama panjang. 

Tambahkan blok kode ini di antara kode persegi panjang dan c.pack(). 

 

10. Acak bentuknya 

Untuk memastikan bahwa bentuk tidak muncul dalam urutan yang sama setiap kali, 

Anda perlu mengocoknya – seperti yang akan Anda lakukan dengan setumpuk kartu. 

Fungsi shuffle() secara acak dapat melakukan ini untuk Anda. Sisipkan baris ini setelah 

c.pack(). 

 

Bersiap-siap 

Di bagian build selanjutnya, Anda akan menyiapkan beberapa variabel dan menulis 

beberapa bit kode yang menyiapkan game untuk dimainkan. Namun, itu tidak akan 

berfungsi sampai kami menambahkan fungsi di tahap terakhir. 

Tidak ada yang benar-benar penting 

Pembuat kode sering kali perlu mengatur variabel dengan nilai awal nol, seperti skor 

dalam game ini. Tetapi bagaimana Anda melakukan ini jika variabel memegang string 

daripada angka? Jawabannya adalah dengan menggunakan sepasang tanda kutip 

tanpa apa-apa di antara mereka. Beberapa variabel, bagaimanapun, tidak memiliki 

nilai default yang jelas seperti 0 atau string kosong. Dalam hal ini, Anda dapat 

menggunakan kata "Tidak Ada", seperti yang kami lakukan di bawah ini. 

 

11. Mengatur variabel 

Anda memerlukan variabel untuk melacak berbagai hal saat program sedang berjalan, 

termasuk bentuk saat ini, warna sebelumnya dan saat ini, dan skor kedua pemain. 

 

12. Tambahkan penundaan 

Sekarang tambahkan garis untuk membuat penundaan 3 detik sebelum bentuk 

pertama muncul. Ini memberi pemain waktu untuk menemukan jendela Tkinter jika 

147 

 

Proyek Coding dengan Python (Dr. Joseph Teguh Santoso) 

tersembunyi di balik jendela lain di desktop. Anda akan membuat fungsi next_shape() 

nanti, di Langkah 16 dan 17. 

 

13. Bereaksi terhadap bidikan 

Selanjutnya tambahkan dua baris ini ke kode Anda. Fungsi bind() memberi tahu GUI 

untuk mendengarkan tombol "q" atau "p" yang ditekan, dan untuk memanggil fungsi 

snap() setiap kali itu terjadi. Anda akan membuat fungsi snap() nanti. 

 

14. Kirim penekanan tombol ke GUI 

Fungsi focus_set() memberitahu penekanan tombol untuk pergi ke kanvas. GUI tidak 

akan bereaksi terhadap "q" dan "p" yang ditekan tanpa fungsi ini dipanggil. Ketik baris 

ini di bawah panggilan fungsi bind(). 

 

15. Mulai putaran utama 

Tambahkan baris ini tepat di akhir file Anda. Setelah kita menambahkan fungsi 

next_shape() dan snap(), loop utama akan memperbarui GUI dengan bentuk 

berikutnya dan mendengarkan penekanan tombol. 

 

Variabel lokal dan global 

Variabel dapat berupa lokal atau global. Variabel lokal hanya ada di dalam fungsi 

tertentu, yang berarti program lainnya tidak dapat menggunakannya. Variabel yang 

dibuat di program utama, di luar fungsi, disebut global dan dapat digunakan di bagian 

kode mana pun. Namun, jika Anda ingin menggunakan fungsi untuk menetapkan nilai 

baru ke variabel global, Anda perlu menambahkan kata kunci global sebelum nama 

variabel saat Anda mengetiknya di fungsi. Inilah yang kami lakukan di Langkah 16. 

Mengkodekan fungsi 

Tahap terakhir adalah membuat dua fungsi: satu untuk menunjukkan bentuk 

berikutnya, dan satu lagi untuk menangani kancing. Ketik di bagian atas program Anda, 

tepat di bawah pernyataan impor. 

 

148 

 

Proyek Coding dengan Python (Dr. Joseph Teguh Santoso) 

16. Buat fungsinya 

Fungsi next_shape() menunjukkan bentuk berwarna satu demi satu, seperti kartu yang 

dibagikan. Mulailah mendefinisikan fungsi dengan mengetikkan kode di bawah ini. Ini 

melabeli beberapa variabel Anda sebagai global (lihat kotak, kiri) dan memperbarui 

warna_sebelumnya. 

 

17. Lengkapi fungsinya 

Sekarang ketik sisa fungsi. Untuk menampilkan bentuk baru, kita perlu mengubah 

statusnya dari HIDDEN ke NORMAL. Kode di bawah ini melakukan ini dengan 

menggunakan fungsi itemconfigure() Canvas. Ia menggunakan fungsi Canvas lain, 

itemcget(), untuk memperbarui variabel current_color, yang akan digunakan untuk 

memeriksa snap. 

 

Mengonfigurasi item Kanvas 

Anda dapat mengubah hal-hal yang muncul di kanvas dengan menggunakan fungsi 

itemconfigure() Canvas. Dalam game ini, misalnya, Anda menggunakan 

itemconfigure() untuk mengubah bentuk dari tersembunyi menjadi terlihat, tetapi 

Anda juga dapat menggunakannya untuk mengubah warna atau karakteristik lainnya. 

Untuk menggunakan itemconfigure(), masukkan nama item yang ingin Anda ubah 

dalam tanda kurung, diikuti dengan koma lalu karakteristik dan nilai barunya. 

 

18. Apakah itu sekejap? 

Untuk menyelesaikan permainan, buat fungsi terakhir Anda: snap(). Fungsi ini akan 

memeriksa pemain mana yang telah menekan tombol mereka dan apakah snap itu 

149 

 

Proyek Coding dengan Python (Dr. Joseph Teguh Santoso) 

valid (benar). Ini kemudian akan memperbarui skor dan menampilkan pesan. 

Tambahkan kode ini di bawah fungsi next_shape(). 

 

 

 

 

19. Uji kode Anda 

Sekarang jalankan program untuk memeriksanya berfungsi. Ingat Anda perlu mengklik 

jendela Tkinter sebelum merespons tombol "q" dan "p". 

 

Peretasan dan penyesuaian 

Tkinter dapat menampilkan banyak warna dan bentuk yang berbeda selain lingkaran, 

kotak, dan persegi panjang, jadi ada banyak ruang untuk menyesuaikan permainan Anda. 

Berikut adalah beberapa ide untuk dicoba—termasuk membuat game ini anti-cheat! 

Mempercepat permainan 

Anda dapat membuat permainan sedikit lebih sulit dengan mengurangi waktu tunda 

antara setiap bentuk saat permainan berlangsung. Petunjuk: coba simpan waktu 

dalam variabel, mulai dari 1000 dan kurangi 25 darinya setiap kali bentuk ditampilkan. 

Angka-angka ini hanyalah saran—bereksperimenlah dengan angka-angka tersebut 

untuk melihat apa yang menurut Anda paling berhasil. 

Garis besar berwarna 

Program melihat parameter isian, bukan garis besar, ketika menilai apakah snap yang 

valid telah dibuat. Anda dapat memberikan garis luar berwarna yang berbeda pada 

bentuk dan mereka akan tetap membuat gambar selama warna isiannya cocok. 

 

 

150 

 

Proyek Coding dengan Python (Dr. Joseph Teguh Santoso) 

Tambahkan lebih banyak warna 

Anda mungkin telah memperhatikan bahwa Snap adalah permainan yang cukup 

singkat. Untuk membuatnya lebih panjang, tambahkan kotak ekstra, persegi panjang, 

dan lingkaran menggunakan warna berbeda. 

 

5.4 BUAT BENTUK BARU 

Anda dapat mengubah parameter create_oval() untuk menghasilkan oval daripada 

lingkaran. Tkinter juga dapat menggambar busur, garis, dan poligon. Cobalah contoh yang 

ditampilkan di sini, dan mainkan parameternya. Ingatlah untuk menjaga status sebagai 

TERSEMBUNYI untuk menyembunyikan bentuk sampai saatnya untuk menunjukkannya. 

1. Menggambar busur 

Gunakan fungsi create_arc() untuk menggambar busur. Busur padat digambar kecuali 

Anda memberi gaya pada busur Anda. Untuk menggunakan gaya busur Tkinter yang 

berbeda, impor CHORD dan ARC dengan mengubah baris ketiga program Anda, seperti 

yang ditunjukkan di bawah ini. Kemudian tambahkan beberapa akord dan busur ke 

daftar bentuk Anda, seperti yang ditunjukkan di atas. 

 

 

2. Menggambar garis 

Sekarang coba tambahkan beberapa baris ke daftar bentuk Anda menggunakan fungsi 

create_line(). 

 

3. Menggambar poligon 

Selanjutnya coba buat beberapa poligon untuk koleksi bentuk Anda, menggunakan 

create_polygon(). Anda harus memberikan koordinat untuk setiap sudut poligon Anda. 

 

 

5.5 HENTIKAN KECURANGAN PEMAIN 

Saat ini, jika snap valid dan kedua pemain menekan tombol snap mereka secara 

bersamaan, mereka masing-masing mendapatkan poin. Bahkan, mereka masih dapat 

151 

 

Proyek Coding dengan Python (Dr. Joseph Teguh Santoso) 

mencetak poin hingga bentuk berikutnya ditampilkan, karena sebelumnya dan saat ini akan 

tetap sama. Coba peretasan ini untuk menghentikan para pemain agar tidak curang. 

1. Go global 

Pertama, Anda perlu mengatakan bahwa before_color adalah variabel global dalam 

fungsi snap(), karena Anda perlu mengubah nilainya. Tambahkan baris ini di bawah 

variabel global lainnya. 

 

2. Blokir beberapa jepretan 

Selanjutnya tambahkan baris berikut ke fungsi snap() untuk mengatur nilai prior_color 

ke string kosong ('') setelah snap yang benar. Sekarang jika seorang pemain menekan 

tombol mereka lagi sebelum bentuk berikutnya ditampilkan, mereka akan kehilangan 

satu poin. Ini karena '' tidak akan pernah sama dengan warna saat ini, kecuali sebelum 

bentuk pertama ditampilkan. 

 

3. Cegah jepretan dini 

Karena warna_sebelumnya dan warna_saat ini sama di awal permainan, pemain masih 

bisa curang dengan menekan tombol mereka sebelum bentuk pertama muncul. Untuk 

mengatasi ini, atur dua variabel ke string yang berbeda di awal. Ubah nilainya menjadi 

"a" dan "b". 

 

4. Ubah pesan 

Jika kedua pemain menekan tombol mereka pada waktu yang hampir bersamaan, 

mungkin akan membingungkan siapa yang mencetak atau kehilangan poin. Untuk 

memperbaikinya, Anda dapat mengubah pesan yang ditampilkan saat pemain 

mencoba melakukan snap. 

 

152 

 

Proyek Coding dengan Python (Dr. Joseph Teguh Santoso) 

5.6 PENCARI JODOH 

Seberapa baik ingatanmu? Uji dalam permainan menyenangkan ini di mana Anda 

harus menemukan pasangan simbol yang cocok. Lihat seberapa cepat Anda dapat 

menemukan semua 12 pasangan yang cocok! 

Apa yang terjadi 

Saat Anda menjalankan program, itu akan membuka jendela yang menunjukkan kisi-

kisi tombol. Klik pada mereka berpasangan untuk mengungkapkan simbol tersembunyi. Jika 

dua simbol sama, Anda telah menemukan kecocokan dan simbol tetap terlihat di layar. Jika 

tidak, kedua tombol akan diatur ulang. Cobalah untuk mengingat lokasi setiap simbol 

tersembunyi untuk menemukan semua pasangan dengan cepat. 

 

Gambar 5.7 antarmuka pengguna grafis (GUI) dibuat oleh modul Tkinter Python 

 

 Kotak menunjukkan 24 tombol yang disusun menjadi empat baris enam. 

 Klik pada tombol untuk mengungkapkan simbol. 

 Hanya ada dua dari setiap simbol. 

 Jika Anda membuat kecocokan yang salah, simbol disembunyikan lagi. 

 Simbol yang cocok dibiarkan ditampilkan di kisi. 

Bagaimana itu bekerja 

Proyek ini menggunakan modul Tkinter untuk menampilkan kisi tombol. Fungsi 

mainloop() Tkinter mendengarkan penekanan tombol dan menanganinya dengan jenis fungsi 

khusus, yang disebut fungsi lambda, yang mengungkapkan simbol. Jika simbol yang tidak 

cocok telah terungkap, program akan memeriksa untuk melihat apakah simbol kedua cocok. 

Proyek menyimpan tombol dalam kamus dan simbol dalam daftar. 

Bagan alur mak comblang 

Setelah mengacak simbol dan membuat kisi, program menghabiskan waktunya 

mendengarkan penekanan tombol. Itu berakhir ketika semua pasangan yang cocok 

telah ditemukan. 

 

153 

 

Proyek Coding dengan Python (Dr. Joseph Teguh Santoso) 

 

 

Gambar 5.8 Diagram alur Pencari jodoh 

Fungsi Lambda 

Seperti def, kata kunci lambda digunakan untuk mendefinisikan fungsi. Semua fungsi 

Lambda ditulis dalam satu baris dan dapat digunakan di mana pun Anda membutuhkan suatu 

fungsi. Misalnya, fungsi lambda x: x*2 menggandakan angka. Anda dapat menetapkannya ke 

variabel, seperti double = lambda x: x*2. Kemudian Anda menyebutnya menggunakan 

double(x), di mana x adalah angka. 

Jadi double(2) akan mengembalikan 4. Fungsi Lambda sangat berguna dalam 

pemrograman GUI, di mana beberapa tombol mungkin perlu memanggil fungsi yang sama 

menggunakan parameter yang berbeda. Tanpa fungsi lambda di Matchmaker, Anda harus 

membuat fungsi yang berbeda untuk setiap tombol— yaitu 24 fungsi! 

Mulai 

Di bagian pertama proyek, Anda akan menyiapkan antarmuka pengguna grafis (GUI) 

dan menambahkan pasangan simbol yang akan disembunyikan oleh tombol. 

1. Buat file baru 

Buka IDLE. Buat file baru dan simpan sebagai "matchmaker.py". 

 

154 

 

Proyek Coding dengan Python (Dr. Joseph Teguh Santoso) 

2. Tambahkan modul 

Sekarang ketik kode ini di bagian atas file Anda untuk mengimpor modul yang Anda 

butuhkan untuk proyek ini. Anda akan menggunakan acak untuk mengacak simbol, 

waktu untuk menjeda program, dan Tkinter untuk membuat GUI. 

 

3. Siapkan GUI 

Di bawah perintah impor, tambahkan kode ini, yang akan mengatur GUI. Fungsi 

root.resizable() mencegah pemutar mengubah ukuran jendela. Ini penting, karena 

mengubah ukuran jendela akan mengacaukan tata letak tombol yang akan Anda buat 

nanti. 

 

4. Uji kode Anda 

Sekarang jalankan kodenya. Anda akan melihat jendela Tkinter kosong dengan judul 

"Matchmaker". Jika Anda tidak dapat melihatnya, mungkin tersembunyi di balik 

jendela lain. 

 

Gambar 5.9 Jendela Matchmaker 

 

5. Buat beberapa variabel 

Di bawah kode untuk Langkah 3, tambahkan variabel yang dibutuhkan program, dan 

buat kamus untuk menyimpan tombol. Untuk setiap percobaan pertandingan, Anda 

perlu mengingat apakah itu simbol pertama atau kedua dalam pertandingan. Anda 

juga perlu melacak penekanan tombol pertama sehingga Anda dapat 

membandingkannya dengan penekanan tombol kedua. 

 

155 

 

Proyek Coding dengan Python (Dr. Joseph Teguh Santoso) 

6. Tambahkan simbol 

Selanjutnya ketik kode di bawah ini untuk menambahkan simbol yang akan digunakan 

game. Seperti dalam proyek Nine Lives, program ini menggunakan karakter Unicode. 

Ada 12 pasang, jadi totalnya 24. Tambahkan kode ini di bawah variabel yang 

ditambahkan pada Langkah 5. 

 

 

Gambar 5.10 Simbol pada python 

7. Acak simbol-simbolnya 

Anda tidak ingin simbol muncul di tempat yang sama setiap saat. Setelah beberapa 

pertandingan, pemain akan mengingat posisi mereka dan akan dapat mencocokkan 

semuanya pada percobaan pertama mereka, setiap saat. Untuk mencegah hal ini, 

Anda perlu mengocok simbol sebelum setiap permainan dimulai. Tambahkan baris ini 

setelah daftar simbol. 

 

Bawa tombolnya! 

Pada tahap selanjutnya Anda akan membuat tombol dan menambahkannya ke GUI. 

Kemudian Anda akan membuat fungsi yang disebut show_symbol() untuk mengontrol 

apa yang terjadi saat pemain mengklik tombol. 

 

8. Membangun jaringan 

Grid akan terdiri dari 24 tombol yang disusun menjadi empat baris enam. Untuk 

menata grid, Anda akan menggunakan loop bersarang. Lingkaran x luar akan bekerja 

dari kiri ke kanan melintasi enam kolom, sedangkan lingkaran y dalam akan bekerja 

dari atas ke bawah ke bawah setiap kolom. Setelah loop berjalan, setiap tombol akan 

diberikan sepasang koordinat x dan y yang mengatur posisinya di grid. Letakkan blok 

kode ini setelah perintah shuffle. 

Tombol 

Tkinter memiliki widget built-in yang disebut Button, yang kami gunakan untuk 

membuat tombol GUI. Anda dapat melewati parameter yang berbeda untuk itu. Yang 

kita butuhkan adalah perintah, lebar, dan tinggi. Parameter perintah memberitahu 

program apa yang harus dilakukan ketika sebuah tombol ditekan. Ini adalah panggilan 

156 

 

Proyek Coding dengan Python (Dr. Joseph Teguh Santoso) 

fungsi. Dalam program kami, ini memanggil fungsi lambda. Parameter lebar dan tinggi 

digunakan untuk mengatur ukuran tombol. 

 

Cara kerjanya 

Setiap kali loop berjalan, fungsi lambda menyimpan nilai x dan y tombol saat ini (baris 

dan kolom tempatnya). Saat tombol ditekan, ia memanggil fungsi show_symbol() (yang 

akan Anda buat nanti) dengan nilai-nilai ini, jadi fungsi tombol mana yang telah ditekan 

dan simbol mana yang akan ditampilkan. 

Loop bersarang 

Anda mungkin ingat pernah membaca tentang loop bersarang di halaman 35. 

Anda dapat memasukkan loop sebanyak yang Anda inginkan. Dalam proyek ini, 

loop luar berjalan enam kali. Setiap kali putaran luar berjalan, putaran dalam 

berjalan empat kali. Jadi total loop dalam berjalan 6 x 4 = 24 kali. 

 

9. Mulai putaran utama 

Sekarang mulai mainloop Tkinter. Setelah loop ini dimulai, GUI akan ditampilkan dan 

akan mulai mendengarkan penekanan tombol. Ketik baris ini setelah kode yang Anda 

tambahkan di Langkah 8. 

 

10. Uji kode Anda 

Jalankan program lagi. Jendela Tkinter Anda sekarang harus diisi dengan 24 tombol 

yang diatur dalam kotak. Jika tidak terlihat mirip dengan gambar yang ditampilkan di 

sini, periksa kode Anda dengan cermat untuk menemukan kesalahan. 

 

157 

 

Proyek Coding dengan Python (Dr. Joseph Teguh Santoso) 

 

Gambar 5.11 Jendela Permainan Matchmaker 

 

11. Tunjukkan simbolnya 

Terakhir, Anda perlu membuat fungsi yang menangani penekanan tombol. Fungsi ini 

akan selalu menampilkan simbol, tetapi cara kerjanya bergantung pada apakah itu 

giliran pertama atau kedua dalam upaya pencocokan. Jika sudah belokan pertama, 

fungsinya hanya perlu mengingat tombol mana yang ditekan. Jika giliran kedua, perlu 

memeriksa apakah simbolnya cocok. Simbol yang tidak cocok disembunyikan. Simbol 

yang cocok dibiarkan ditampilkan dan tombolnya dinonaktifkan. 

 

Bagaimana itu bekerja 

Fungsi menunjukkan simbol tombol dengan mengubah label teksnya menjadi karakter 

Unicode yang kami tetapkan secara acak. Kami menggunakan update_idletasks() untuk 

memberi tahu Tkinter agar menunjukkan simbol ini sekarang. Jika giliran pertama, kita 

simpan saja koordinat tombol dalam variabel. Jika giliran kedua, kita perlu memeriksa 

bahwa pemain tidak mencoba menipu dengan menekan tombol yang sama dua kali. 

Jika tidak, kami memeriksa apakah simbolnya cocok. Jika simbol tidak cocok, kami 

158 

 

Proyek Coding dengan Python (Dr. Joseph Teguh Santoso) 

menyembunyikannya dengan menyetel teks ke string kosong; jika cocok, kami 

membiarkannya ditampilkan tetapi menonaktifkan tombol. 

Peretasan dan penyesuaian 

Anda bisa mengadaptasi game ini dengan banyak cara. Anda dapat menunjukkan 

jumlah gerakan yang dilakukan untuk menyelesaikan permainan, sehingga pemain dapat 

mencoba dan mengalahkan skor mereka sendiri atau menantang teman mereka. Anda juga 

bisa menambahkan lebih banyak simbol untuk membuat permainan lebih sulit. 

 Tunjukkan jumlah gerakan 

Saat ini, pemain tidak memiliki cara untuk mengetahui seberapa baik yang telah 

mereka lakukan atau apakah mereka telah melakukan lebih baik daripada teman-teman 

mereka. Bagaimana kita bisa membuat permainan lebih kompetitif? Mari tambahkan variabel 

untuk menghitung berapa banyak giliran yang dibutuhkan pemain untuk menyelesaikan 

permainan. Kemudian pemain bisa bersaing untuk melihat siapa yang mendapat skor 

terendah. 

1. Tambahkan modul baru 

Anda perlu mengimpor widget kotak pesan Tkinter untuk menampilkan jumlah 

gerakan di akhir permainan. Di baris impor, tambahkan kotak pesan kata setelah 

DINONAKTIFKAN. 

 

2. Buat variabel baru 

Anda harus membuat dua variabel tambahan untuk peretasan ini. Satu variabel akan 

melacak jumlah gerakan yang dilakukan pemain, sementara yang lain akan mengingat 

berapa banyak pasangan yang mereka temukan. Beri keduanya nilai awal 0. Letakkan 

baris ini di bawah variabel sebelumnyaY. 

 

3. Nyatakan mereka secara global 

Variabel move dan pair adalah variabel global, dan mereka harus diubah oleh fungsi 

show_symbol(). Biarkan show_symbol() mengetahui hal ini dengan meletakkan dua 

baris ini di dekat bagian atas fungsi. 

 

4. Hitung gerakannya 

159 

 

Proyek Coding dengan Python (Dr. Joseph Teguh Santoso) 

Sebuah langkah adalah dua penekanan tombol (satu upaya yang cocok). Jadi Anda 

hanya perlu menambahkan 1 ke variabel move saat fungsi show_symbol() dipanggil 

untuk penekanan tombol pertama atau kedua—bukan untuk keduanya. Mari kita 

lakukan untuk penekanan tombol pertama. Ubah fungsi show_symbol() menjadi 

seperti ini. 

 

5. Menampilkan pesan 

Sekarang tambahkan kode berikut di dekat bagian bawah fungsi show_symbol(). Ini 

akan melacak pasangan yang cocok dan menunjukkan kotak pesan di akhir permainan 

yang memberi tahu pemain berapa banyak gerakan yang mereka ambil. Saat pemain 

mengklik tombol OK kotak, kode memanggil fungsi close_window(), yang akan kita 

tambahkan selanjutnya. 

 

 

Gambar 5.12 Massage box 

 

Bagaimana itu bekerja 

Ada 12 pasang simbol, jadi Anda cukup mengetikkan pasangan == 12 di peretasan. 

Namun, kode Anda lebih pintar dari ini. Ini menghitung jumlah pasangan dengan 

menggunakan pasangan == len(tombol)/2. Ini memungkinkan Anda untuk 

menambahkan lebih banyak tombol ke gim tanpa harus memperbarui sedikit kode ini. 

6. Menutup jendela 

Terakhir, Anda perlu membuat fungsi close_window(), untuk membuat program 

keluar dari game saat pemain mengklik tombol OK pada kotak pesan “Jumlah 

gerakan”. Tambahkan kode ini di bawah baris yang mengimpor modul. 

 

Tambahkan lebih banyak tombol 

Mari kita tantang memori pemain dengan menambahkan lebih banyak tombol dan 

simbol ke dalam game. 

160 

 

Proyek Coding dengan Python (Dr. Joseph Teguh Santoso) 

1. Simbol ekstra 

Pertama, Anda perlu menambahkan lebih banyak pasangan ke daftar simbol. Sertakan 

baris baru ini dalam kode. 

 

 

2. Tombol ekstra 

Sekarang tambahkan baris tombol tambahan. Untuk melakukan ini, Anda hanya perlu 

mengubah rentang y di loop bersarang dari 4 menjadi 5, seperti yang ditunjukkan di 

sebelah kanan. 

 

3. Bahkan lebih besar? 

Anda sekarang memiliki total 30 tombol. Jika Anda ingin menambahkan lebih banyak, 

pastikan jumlah tombol tambahan yang Anda tambahkan adalah kelipatan 6 sehingga 

Anda selalu menambahkan baris lengkap. Jika Anda merasa ingin bertualang, Anda 

dapat bereksperimen dengan tata letak tombol yang berbeda dengan mengubah loop 

bersarang. 

 

Gambar 5.13 macam-macam symbol 

 

5.7 PENANGKAP TELUR 

Game ini akan menguji konsentrasi dan kecepatan refleks Anda. Jangan retak di bawah 

tekanan—tangkap saja telur sebanyak mungkin untuk mendapatkan skor tinggi. Tantang 

teman Anda untuk melihat siapa pemenang penangkap telur! 

Apa yang terjadi 

Pindahkan penangkap di sepanjang bagian bawah layar untuk menangkap setiap telur 

sebelum menyentuh tanah. Ketika Anda mengambil telur Anda mencetak poin, tetapi jika 

161 

 

Proyek Coding dengan Python (Dr. Joseph Teguh Santoso) 

Anda menjatuhkan telur Anda kehilangan kehidupan. Hati-hati: semakin banyak telur yang 

Anda tangkap, semakin sering telur baru muncul di bagian atas layar dan semakin cepat 

jatuhnya. Kehilangan ketiga nyawa dan permainan berakhir. 

Waktu 

Waktu aksi di layar itu penting. Pada awalnya, telur baru hanya ditambahkan setiap 4 

detik; jika tidak, akan ada terlalu banyak telur. Awalnya, telur bergerak turun sedikit setiap 

setengah detik. Jika intervalnya lebih kecil, permainan akan terlalu sulit. Program memeriksa 

tangkapan sekali setiap sepersepuluh detik — lebih lambat, dan mungkin melewatkannya. 

Saat pemain mencetak lebih banyak poin, kecepatan dan jumlah telur meningkat untuk 

membuat permainan lebih menantang. 

 

Gambar 5.14 Permainan Penangkap telur 

 

 Anda mencetak 10 poin untuk menangkap setiap telur. 

 Gerakkan penangkap ke depan dan ke belakang dengan menekan tombol panah kiri 

dan kanan. 

 Program ini menggunakan Tkinter untuk menggambar dan memindahkan bentuk, dan 

modul acak untuk menempatkannya di layar. 

 Telur baru muncul di bagian atas layar, dalam posisi acak. 

 Penghitung ini menunjukkan berapa banyak nyawa yang tersisa. 

 Anda dapat menambahkan bentuk statis, seperti rumput, ke layar untuk membuat 

pemandangan latar belakang. 

 Jika telur menyentuh bagian bawah layar, Anda kehilangan nyawa. 

 

 

162 

 

Proyek Coding dengan Python (Dr. Joseph Teguh Santoso) 

Game bergaya arcade 

Proyek terakhir ini menyatukan semua keterampilan pengkodean Anda untuk 

membuat game bergaya arcade yang mengesankan. Kodenya cukup rumit, jadi periksa 

kode Anda dengan cermat untuk menemukan bug di setiap tahap dan jangan berkecil 

hati jika Anda membuat beberapa kesalahan di sepanjang prosesnya. Setelah Anda 

memecahkan Egg Catcher, Anda akan siap untuk mulai membuat game Anda sendiri. 

Bagaimana itu bekerja 

Setelah latar belakang dibuat, telur secara bertahap bergerak ke bawah layar, yang 

menciptakan ilusi bahwa mereka jatuh. Menggunakan loop, kode terus-menerus memeriksa 

koordinat telur untuk melihat apakah ada yang menyentuh dasar atau tertangkap di 

penangkap. Ketika telur ditangkap atau dijatuhkan, telur itu akan dihapus dan program 

menyesuaikan skor atau jumlah nyawa yang tersisa. 

 

Gambar 5.15 Diagram alur Permainan Penangkap Telur 

 

Bagan alur Penangkap Telur  

Ada tiga putaran berbeda dalam permainan ini: satu untuk membuat telur baru, yang 

lain untuk memeriksa apakah penangkap telah menangkap telur, dan yang ketiga 

untuk memindahkan telur dan memeriksa apakah telur menyentuh dasar. Masing-

masing dari tiga loop berulang dengan kecepatan yang berbeda. 

Pengaturan 

Pertama, Anda akan mengimpor bagian Python yang Anda butuhkan untuk proyek ini. 

Kemudian Anda akan mengatur semuanya sehingga Anda siap untuk menulis fungsi utama 

untuk game tersebut. 

 

163 

 

Proyek Coding dengan Python (Dr. Joseph Teguh Santoso) 

1. Buat file 

Buka IDLE dan buat file baru. Simpan sebagai "telur_catcher.py". 

2. Impor modul 

Egg Catcher menggunakan tiga modul: itertools untuk menggilir beberapa warna; acak 

untuk membuat telur muncul di tempat acak; dan Tkinter untuk menganimasikan 

game dengan membuat bentuk di layar. Ketik baris ini di bagian atas file Anda. 

 

3. Siapkan kanvas 

Tambahkan kode ini di bawah pernyataan impor. Itu membuat variabel untuk tinggi 

dan lebar kanvas, lalu menggunakannya untuk membuat kanvas itu sendiri. Untuk 

menambahkan sedikit pemandangan ke permainan Anda, itu menggambar persegi 

panjang untuk mewakili beberapa rumput dan oval untuk mewakili matahari. 

 

4. Lihat kanvas Anda 

Jalankan kode untuk melihat tampilan kanvas. Anda akan melihat pemandangan 

dengan rumput hijau, langit biru, dan matahari yang cerah. Jika Anda merasa percaya 

diri, cobalah untuk membuat pemandangan sendiri dengan bentuk warna atau ukuran 

yang berbeda. Anda selalu dapat kembali ke kode di atas jika mengalami masalah. 

 

Gambar 5.16 Tampilan Pada layar  

5. Siapkan telur 

Sekarang buat beberapa variabel untuk menyimpan warna, lebar, dan tinggi telur. 

Anda juga memerlukan variabel untuk skor, kecepatan telur yang jatuh, dan interval 

antara telur baru yang muncul di layar. Jumlah perubahannya ditentukan oleh faktor-

164 

 

Proyek Coding dengan Python (Dr. Joseph Teguh Santoso) 

kesulitan—nilai yang lebih rendah untuk variabel ini sebenarnya membuat permainan 

lebih sulit. 

 

6. Siapkan penangkap 

Selanjutnya tambahkan variabel untuk penangkap. Selain variabel untuk warna dan 

ukurannya, ada empat variabel yang menyimpan posisi awal penangkap. Nilai untuk 

ini dihitung menggunakan ukuran kanvas dan penangkap. Setelah ini dihitung, mereka 

digunakan untuk membuat busur yang digunakan game untuk penangkap. 

 

Bagaimana itu bekerja 

Anda menggunakan busur untuk mewakili penangkap. Busur adalah salah satu bagian 

dari seluruh lingkaran. Tkinter menggambar lingkaran di dalam kotak tak terlihat. Dua 

koordinat catcher_start pertama (x dan y) plot di mana salah satu sudut kotak 

seharusnya. Dua koordinat kedua (x2 dan y2) menggambarkan posisi sudut kotak yang 

berlawanan. Fungsi create_arc() memiliki dua parameter, keduanya diberikan dalam 

derajat (°), yang mengatakan di mana dalam lingkaran untuk menggambar busur: start 

mengatakan di mana harus mulai menggambar, sedangkan sejauh adalah berapa 

derajat untuk menggambar sebelum berhenti. 

 

Gambar 5.17 Membuat penangkap telur 

165 

 

Proyek Coding dengan Python (Dr. Joseph Teguh Santoso) 

 

Gambar 5.18 Game penangkap Telur 

 

7. Skor dan penghitung hidup 

Tambahkan kode ini di bawah baris yang mengatur penangkap. Ini menetapkan skor 

awal ke 0 dan membuat teks yang menunjukkan skor di layar. Itu juga mengatur sisa 

hidup menjadi tiga dan menampilkan nomor ini. Untuk memeriksa apakah kode 

berfungsi, tambahkan root.mainloop() tepat di akhir dan kemudian jalankan kode. 

Setelah Anda memeriksanya, hapus baris ini—Anda akan menambahkannya lagi nanti 

saat dibutuhkan. 

 

Jatuh, mencetak gol, jatuh 

Anda telah menyelesaikan semua tugas penyiapan, jadi saatnya menulis kode yang 

menjalankan game. Anda akan memerlukan fungsi untuk membuat telur dan 

membuatnya jatuh, dan beberapa fungsi lagi untuk menangani tangkapan telur dan 

tetesan telur. 

  

8. Buat telurnya 

Tambahkan kode ini. Daftar melacak semua telur di layar. Fungsi create_egg() 

menentukan koordinat setiap telur baru (koordinat x selalu dipilih secara acak). 

Kemudian ia membuat telur sebagai oval dan menambahkannya ke daftar telur. 

Akhirnya, ini mengatur timer untuk memanggil fungsi lagi setelah jeda. 

166 

 

Proyek Coding dengan Python (Dr. Joseph Teguh Santoso) 

 

9. Pindahkan telur 

Setelah membuat telur, tambahkan fungsi berikutnya, move_eggs(), untuk 

menggerakkannya. Ini loop melalui daftar semua telur di layar. Untuk setiap telur, 

koordinat y meningkat, yang menggerakkan telur ke bawah layar. Setelah telur 

dipindahkan, program akan memeriksa apakah telur telah mencapai bagian bawah 

layar. Jika sudah, telur telah dijatuhkan dan fungsi egg_dropped() dipanggil. Terakhir, 

pengatur waktu diatur untuk memanggil fungsi move_eggs() lagi setelah jeda singkat. 

 

10. Ups—telur jatuh! 

Selanjutnya tambahkan fungsi egg_dropped() setelah move_eggs(). Ketika telur 

dijatuhkan, itu akan dihapus dari daftar telur dan kemudian dihapus dari kanvas. 

Nyawa dikurangi menggunakan fungsi lose_a_life(), yang akan Anda buat di Langkah 

11. Jika kehilangan nyawa berarti tidak ada nyawa yang tersisa, "Game Over!" pesan 

ditampilkan. 

 

11. Kehilangan nyawa 

Kehilangan nyawa hanya melibatkan pengurangan nyawa dari variabel life_remaining 

dan kemudian menampilkan nilai baru di layar. Tambahkan baris ini setelah fungsi 

egg_dropped(). 

 

167 

 

Proyek Coding dengan Python (Dr. Joseph Teguh Santoso) 

 

12. Periksa tangkapan 

Sekarang tambahkan fungsi check_catch(). Telur ditangkap jika berada di dalam busur 

penangkap. Untuk mengetahui apakah Anda telah menangkap, loop for mendapatkan 

koordinat setiap telur dan membandingkannya dengan koordinat penangkap. Jika ada 

kecocokan, telur ditangkap. Kemudian dihapus dari daftar, dihapus dari layar, dan skor 

ditingkatkan. 

 

 

13. Tingkatkan skornya 

Pertama skor ditingkatkan dengan nilai parameter poin. Selanjutnya kecepatan dan 

interval baru telur dihitung dengan mengalikan nilainya dengan faktor kesulitan. 

Akhirnya, teks di layar diperbarui dengan skor baru. Tambahkan fungsi baru ini di 

bawah check_catch(). 

 

Tangkap telur itu! 

Sekarang setelah Anda mendapatkan semua bentuk dan fungsi yang diperlukan untuk 

permainan, yang tersisa untuk ditambahkan hanyalah kontrol untuk penangkap telur 

dan perintah yang memulai permainan. 

14. Siapkan kontrol 

Fungsi move_left() dan move_right() menggunakan koordinat penangkap untuk 

memastikan penangkap tidak akan meninggalkan layar. Jika masih ada ruang untuk 

dipindahkan, penangkap bergeser secara horizontal sebesar 20 piksel. Kedua fungsi ini 

ditautkan ke tombol panah kiri dan kanan pada keyboard menggunakan fungsi bind(). 

168 

 

Proyek Coding dengan Python (Dr. Joseph Teguh Santoso) 

Fungsi focus_set() memungkinkan program mendeteksi penekanan tombol. 

Tambahkan fungsi baru di bawah fungsi peningkatan_score(). 

 

15. Memulai permainan 

Tiga fungsi perulangan dimulai menggunakan timer. Ini memastikan mereka tidak 

dijalankan sebelum loop utama dimulai. Terakhir, fungsi mainloop() memulai loop 

Tkinter yang mengelola semua loop dan timer Anda. Semua selesai – nikmati 

permainannya, dan jangan biarkan telur-telur itu pecah! 

 

Peretasan dan penyesuaian 

Untuk membuat permainan terlihat lebih baik, Anda dapat mencoba menambahkan 

beberapa pemandangan keren Anda sendiri. Suara dan musik yang menyenangkan adalah 

cara hebat lainnya untuk membuat game lebih seru. 

Memasang modul 

Beberapa modul Python yang paling berguna— seperti Pygame—tidak disertakan 

sebagai bagian dari pustaka Python standar. Jika Anda ingin menggunakan salah satu modul 

lain ini, Anda harus menginstalnya terlebih dahulu. Tempat terbaik untuk mencari petunjuk 

tentang cara memasang modul adalah situs web modul. Ada petunjuk dan tip di 

https://docs.python.org/3/installing/. 

Atur adegan 

Tkinter memungkinkan gambar khusus untuk digunakan sebagai latar belakang untuk 

kanvas. Jika file Anda adalah GIF, Anda dapat menggunakan tkinter.PhotoImage untuk 

memuat file. Jika gambar Anda memiliki format yang berbeda, Anda mungkin ingin 

melihat ke Pillow—modul penanganan gambar yang berguna. 

 

169 

 

Proyek Coding dengan Python (Dr. Joseph Teguh Santoso) 

 

Gambar 5.19 Hasil Permainan penangkap Telur dengan background yang berbeda 

 

Buat beberapa kebisingan 

Untuk benar-benar menghidupkan permainan, tambahkan musik latar atau efek suara 

untuk menangkap telur atau kehilangan nyawa. Modul yang digunakan untuk 

menambahkan suara adalah pygame.mixer. Ingat, pygame bukan modul Python 

standar, jadi Anda harus menginstalnya terlebih dahulu. Anda juga harus memiliki 

salinan file suara yang ingin Anda putar, yang harus Anda tempatkan di folder yang 

sama dengan file kode Anda. Setelah itu, memutar suara hanya membutuhkan 

beberapa baris kode.