Terdapat banyak modul di Python yang menyediakan fitur keren dan sangat membantu yang bisa kita gunakan pada program kita. Beberapa diantaranya bisa mengirim email, atau membaca dan mengambil isi dari halaman web. Satu yang akan coba kita gunakan dalam bab ini akan memungkinkan kita untuk membuat turtle dan juga menggambar bentuk dan pola. Show
Turtle (penyu) itu lucu, tapi tujuan inti dari bab ini bukanlah untuk memelihara seekor penyu sungguhan, tujuannya tentunya untuk mengajarkan kita lebih banyak tentang Python, dan untuk membangun pandangan kita mengenai pemikiran komputasional, atau berpikir seperti seorang ilmuan komputer. Kebanyakan dari Python yang dicakup di bab ini akan kita eksplorasi jauh lebih dalam lagi nanti. 3.1. Program Turtle Pertama KitaMari buat beberapa baris kode program Python untuk membuat seekor objek turtle dan mulai menggambar sebuah persegi. (Kita akan memberi nama variabel pertama kita sebagai alex, yang mengacu ke turtle, tapi kita juga bisa memillih nama lain jika kita mengikuti aturan dari bab sebelumnya). import turtle # Agar kita bisa menggunakan turtle wn = turtle.Screen() # Buat taman bermain untuk turtle alex = turtle.Turtle() # Buat seekor turtle, dan berikan ke alex alex.forward(50) # Suruh alex maju sebanyak 50 poin alex.left(90) # Suruh alex balik kiri 90 derajat alex.forward(30) # Selesaikan sisi yang satunya dari segiempatnya wn.mainloop() # Tunggu pengguna menutup jendelanya Ketika kita menjalankan programnya, jendela baru seperti berikut akan muncul: Python Turtle Draw Line Example.pngBerikut adalah beberapa hal yang perlu kita pahami mengenai program ini. Baris pertama meminta Python untuk memuat sebuah modul bernama import turtle wn = turtle.Screen() wn.bgcolor("lightgreen") # Atur warna latar window wn.title("Halo, Tess !") # Atur judul window tess = turtle.Turtle() tess.color("blue") # Suruh tess untuk merubah warnanya tess.pensize(3) # Suruh tess untuk mengatur lebar pensilnya tess.forward(50) tess.left(120) tess.forward(50) wn.mainloop()5. Modul ini menyediakan kita dua tipe baru yang bisa kita gunakan: tipe import turtle wn = turtle.Screen() wn.bgcolor("lightgreen") # Atur warna latar window wn.title("Halo, Tess !") # Atur judul window tess = turtle.Turtle() tess.color("blue") # Suruh tess untuk merubah warnanya tess.pensize(3) # Suruh tess untuk mengatur lebar pensilnya tess.forward(50) tess.left(120) tess.forward(50) wn.mainloop()6, dan tipe import turtle wn = turtle.Screen() wn.bgcolor("lightgreen") # Atur warna latar window wn.title("Halo, Tess !") # Atur judul window tess = turtle.Turtle() tess.color("blue") # Suruh tess untuk merubah warnanya tess.pensize(3) # Suruh tess untuk mengatur lebar pensilnya tess.forward(50) tess.left(120) tess.forward(50) wn.mainloop()7. Notasi titik pada import turtle wn = turtle.Screen() wn.bgcolor("lightgreen") # Atur warna latar window wn.title("Halo, Tess !") # Atur judul window tess = turtle.Turtle() tess.color("blue") # Suruh tess untuk merubah warnanya tess.pensize(3) # Suruh tess untuk mengatur lebar pensilnya tess.forward(50) tess.left(120) tess.forward(50) wn.mainloop()8 berarti "Tipe Turtle yang didefinisikan di dalam modul turtle". (Ingat bahwa Python sifatnya case sensitive, jadi nama modul, dengan t kecil, adalah berbeda dengan type import turtle wn = turtle.Screen() wn.bgcolor("lightgreen") # Atur warna latar window wn.title("Halo, Tess !") # Atur judul window tess = turtle.Turtle() tess.color("blue") # Suruh tess untuk merubah warnanya tess.pensize(3) # Suruh tess untuk mengatur lebar pensilnya tess.forward(50) tess.left(120) tess.forward(50) wn.mainloop()6yang menggunakan T besar.) Kita kemudian membuat apa yang dinamakan screen (tapi lebih nyaman kalau kita menamainya sebagai jendela/window), yang mana kita berikan (assign) ke variabel import turtle wn = turtle.Screen() # Atur window dan atributnya wn.bgcolor("lightgreen") wn.title("Tess & Alex") tess = turtle.Turtle() # Buat objek tess dan atur beberapa atribut tess.color("hotpink") tess.pensize(5) alex = turtle.Turtle() # Buat objek alex tess.forward(80) # Suruh tess menggambar segitiga sama sisi tess.left(120) tess.forward(80) tess.left(120) tess.forward(80) tess.left(120) # Selesaikan segitiganya tess.right(180) # Suruh tess berbalik tess.forward(80) # Pindahkan dia menjauh dari posisi semula alex.forward(50) # Suruh alex menggambar kotak alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) wn.mainloop()0. Setiap window berisi sebuah canvas, yang merupakan area di dalam window yang bisa kita gambar. Pada baris ke 3 kita membuat sebuah import turtle wn = turtle.Screen() wn.bgcolor("lightgreen") # Atur warna latar window wn.title("Halo, Tess !") # Atur judul window tess = turtle.Turtle() tess.color("blue") # Suruh tess untuk merubah warnanya tess.pensize(3) # Suruh tess untuk mengatur lebar pensilnya tess.forward(50) tess.left(120) tess.forward(50) wn.mainloop()5. Variabel dengan nama import turtle wn = turtle.Screen() # Atur window dan atributnya wn.bgcolor("lightgreen") wn.title("Tess & Alex") tess = turtle.Turtle() # Buat objek tess dan atur beberapa atribut tess.color("hotpink") tess.pensize(5) alex = turtle.Turtle() # Buat objek alex tess.forward(80) # Suruh tess menggambar segitiga sama sisi tess.left(120) tess.forward(80) tess.left(120) tess.forward(80) tess.left(120) # Selesaikan segitiganya tess.right(180) # Suruh tess berbalik tess.forward(80) # Pindahkan dia menjauh dari posisi semula alex.forward(50) # Suruh alex menggambar kotak alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) wn.mainloop()2dibuat agar mengacu ke turtle ini. Jadi ketiga baris pertama itu fungsinya untuk mengeset nilai awal, selanjutnya turtle kita siap untuk mulai menggambar pada canvas. Pada baris ke 5-7, kita memerintahkan objek import turtle wn = turtle.Screen() # Atur window dan atributnya wn.bgcolor("lightgreen") wn.title("Tess & Alex") tess = turtle.Turtle() # Buat objek tess dan atur beberapa atribut tess.color("hotpink") tess.pensize(5) alex = turtle.Turtle() # Buat objek alex tess.forward(80) # Suruh tess menggambar segitiga sama sisi tess.left(120) tess.forward(80) tess.left(120) tess.forward(80) tess.left(120) # Selesaikan segitiganya tess.right(180) # Suruh tess berbalik tess.forward(80) # Pindahkan dia menjauh dari posisi semula alex.forward(50) # Suruh alex menggambar kotak alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) wn.mainloop()2untuk bergerak, dan untuk berbelok. Kita melakukannya dengan cara memanggil (meng-invoke), atau mengaktifkan, metode yang dimiliki import turtle wn = turtle.Screen() # Atur window dan atributnya wn.bgcolor("lightgreen") wn.title("Tess & Alex") tess = turtle.Turtle() # Buat objek tess dan atur beberapa atribut tess.color("hotpink") tess.pensize(5) alex = turtle.Turtle() # Buat objek alex tess.forward(80) # Suruh tess menggambar segitiga sama sisi tess.left(120) tess.forward(80) tess.left(120) tess.forward(80) tess.left(120) # Selesaikan segitiganya tess.right(180) # Suruh tess berbalik tess.forward(80) # Pindahkan dia menjauh dari posisi semula alex.forward(50) # Suruh alex menggambar kotak alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) wn.mainloop()2-- metode merupakan instruksi-intruksi bagaimana cara merespon yang diketahui oleh semua turtle. Baris terakhir juga memainkan peran, variabel import turtle wn = turtle.Screen() # Atur window dan atributnya wn.bgcolor("lightgreen") wn.title("Tess & Alex") tess = turtle.Turtle() # Buat objek tess dan atur beberapa atribut tess.color("hotpink") tess.pensize(5) alex = turtle.Turtle() # Buat objek alex tess.forward(80) # Suruh tess menggambar segitiga sama sisi tess.left(120) tess.forward(80) tess.left(120) tess.forward(80) tess.left(120) # Selesaikan segitiganya tess.right(180) # Suruh tess berbalik tess.forward(80) # Pindahkan dia menjauh dari posisi semula alex.forward(50) # Suruh alex menggambar kotak alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) wn.mainloop()0merujuk pada jendela yang terlihat diatas. Ketika kita memanggil metode import turtle wn = turtle.Screen() # Atur window dan atributnya wn.bgcolor("lightgreen") wn.title("Tess & Alex") tess = turtle.Turtle() # Buat objek tess dan atur beberapa atribut tess.color("hotpink") tess.pensize(5) alex = turtle.Turtle() # Buat objek alex tess.forward(80) # Suruh tess menggambar segitiga sama sisi tess.left(120) tess.forward(80) tess.left(120) tess.forward(80) tess.left(120) # Selesaikan segitiganya tess.right(180) # Suruh tess berbalik tess.forward(80) # Pindahkan dia menjauh dari posisi semula alex.forward(50) # Suruh alex menggambar kotak alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) wn.mainloop()6nya, ia akan memasuki kondisi dimana ia akan menunggu even (seperti penekanan tombol, atau pergerakan mouse dan klik). Programnya akan berhenti ketika pengguna menutup windownya. Sebuah objek bisa punya berbagai metode -- atau simpelnya hal yang bisa mereka lakukan -- dan juga bisa punya atribut (attribute)-- (kadang dinamakan juga dengan properti atau sifat). Contohnya, setiap turtle punya atribut color. Pemanggilan metode seperti import turtle wn = turtle.Screen() # Atur window dan atributnya wn.bgcolor("lightgreen") wn.title("Tess & Alex") tess = turtle.Turtle() # Buat objek tess dan atur beberapa atribut tess.color("hotpink") tess.pensize(5) alex = turtle.Turtle() # Buat objek alex tess.forward(80) # Suruh tess menggambar segitiga sama sisi tess.left(120) tess.forward(80) tess.left(120) tess.forward(80) tess.left(120) # Selesaikan segitiganya tess.right(180) # Suruh tess berbalik tess.forward(80) # Pindahkan dia menjauh dari posisi semula alex.forward(50) # Suruh alex menggambar kotak alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) wn.mainloop()7 akan membuat import turtle wn = turtle.Screen() # Atur window dan atributnya wn.bgcolor("lightgreen") wn.title("Tess & Alex") tess = turtle.Turtle() # Buat objek tess dan atur beberapa atribut tess.color("hotpink") tess.pensize(5) alex = turtle.Turtle() # Buat objek alex tess.forward(80) # Suruh tess menggambar segitiga sama sisi tess.left(120) tess.forward(80) tess.left(120) tess.forward(80) tess.left(120) # Selesaikan segitiganya tess.right(180) # Suruh tess berbalik tess.forward(80) # Pindahkan dia menjauh dari posisi semula alex.forward(50) # Suruh alex menggambar kotak alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) wn.mainloop()2berwarna merah, dan gambarnya juga menjadi merah. (Ingat kata color ditulis dalam gaya bahasa Inggris Amerika!) Warna turtle, lebar pensilnya, posisinya terhadap jendela, kearah mana ia mengarah, dan yang lainnya merupakan bagian dari kondisinya sekarang (current state). Begitu pula dengan objek window/jendela yang memiliki warna latar, dan beberapa teks pada bar judul, ukuran dan posisinya pada layar. Itu semua adalah bagian dari kondisi objek window. Ada sangat banyak metode yang memungkinkan kita untuk memodifikasi objek turtle dan window. Kita hanya akan memperlihatkan beberapa saja. Pada program ini kita hanya mengomentari baris selain baris yang sudah kita jelaskan pada contoh sebelumnya (dan kali ini kita menggunakan nama variabel yang berbeda untuk turtlenya): import turtle wn = turtle.Screen() wn.bgcolor("lightgreen") # Atur warna latar window wn.title("Halo, Tess !") # Atur judul window tess = turtle.Turtle() tess.color("blue") # Suruh tess untuk merubah warnanya tess.pensize(3) # Suruh tess untuk mengatur lebar pensilnya tess.forward(50) tess.left(120) tess.forward(50) wn.mainloop() Ketika kita menjalankan programnya, window baru akan muncul, dan akan tetap demikian hingga kita mengeluarkannya. Python Turtle Example 2.pngKembangkan Program Ini
3.2. Instan - Kawanan Penyu (turtle)Sama halnya dengan kita bisa punya banyak integer dalam program, kita juga bisa punya banyak turtle. Masing-masing dari mereka dinamakan sebagai instan (instance). Setiap instan memiliki atribut dan metode mereka sendiri -- jadi import turtle wn = turtle.Screen() # Atur window dan atributnya wn.bgcolor("lightgreen") wn.title("Tess & Alex") tess = turtle.Turtle() # Buat objek tess dan atur beberapa atribut tess.color("hotpink") tess.pensize(5) alex = turtle.Turtle() # Buat objek alex tess.forward(80) # Suruh tess menggambar segitiga sama sisi tess.left(120) tess.forward(80) tess.left(120) tess.forward(80) tess.left(120) # Selesaikan segitiganya tess.right(180) # Suruh tess berbalik tess.forward(80) # Pindahkan dia menjauh dari posisi semula alex.forward(50) # Suruh alex menggambar kotak alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) wn.mainloop()2 mungkin menggambar dengan pensil hitam tipis pada posisi tertentu, sementara import turtle wn = turtle.Screen() # Atur window dan atributnya wn.bgcolor("lightgreen") wn.title("Tess & Alex") tess = turtle.Turtle() # Buat objek tess dan atur beberapa atribut tess.color("hotpink") tess.pensize(5) alex = turtle.Turtle() # Buat objek alex tess.forward(80) # Suruh tess menggambar segitiga sama sisi tess.left(120) tess.forward(80) tess.left(120) tess.forward(80) tess.left(120) # Selesaikan segitiganya tess.right(180) # Suruh tess berbalik tess.forward(80) # Pindahkan dia menjauh dari posisi semula alex.forward(50) # Suruh alex menggambar kotak alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) wn.mainloop()9menggambar dengan arahnya sendiri dengan pensil tebal berwarna pink. import turtle wn = turtle.Screen() # Atur window dan atributnya wn.bgcolor("lightgreen") wn.title("Tess & Alex") tess = turtle.Turtle() # Buat objek tess dan atur beberapa atribut tess.color("hotpink") tess.pensize(5) alex = turtle.Turtle() # Buat objek alex tess.forward(80) # Suruh tess menggambar segitiga sama sisi tess.left(120) tess.forward(80) tess.left(120) tess.forward(80) tess.left(120) # Selesaikan segitiganya tess.right(180) # Suruh tess berbalik tess.forward(80) # Pindahkan dia menjauh dari posisi semula alex.forward(50) # Suruh alex menggambar kotak alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) wn.mainloop() Inilah yang akan terjadi ketika import turtle wn = turtle.Screen() # Atur window dan atributnya wn.bgcolor("lightgreen") wn.title("Tess & Alex") tess = turtle.Turtle() # Buat objek tess dan atur beberapa atribut tess.color("hotpink") tess.pensize(5) alex = turtle.Turtle() # Buat objek alex tess.forward(80) # Suruh tess menggambar segitiga sama sisi tess.left(120) tess.forward(80) tess.left(120) tess.forward(80) tess.left(120) # Selesaikan segitiganya tess.right(180) # Suruh tess berbalik tess.forward(80) # Pindahkan dia menjauh dari posisi semula alex.forward(50) # Suruh alex menggambar kotak alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) wn.mainloop()2menyelesaikan kotaknya, dan import turtle wn = turtle.Screen() # Atur window dan atributnya wn.bgcolor("lightgreen") wn.title("Tess & Alex") tess = turtle.Turtle() # Buat objek tess dan atur beberapa atribut tess.color("hotpink") tess.pensize(5) alex = turtle.Turtle() # Buat objek alex tess.forward(80) # Suruh tess menggambar segitiga sama sisi tess.left(120) tess.forward(80) tess.left(120) tess.forward(80) tess.left(120) # Selesaikan segitiganya tess.right(180) # Suruh tess berbalik tess.forward(80) # Pindahkan dia menjauh dari posisi semula alex.forward(50) # Suruh alex menggambar kotak alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) wn.mainloop()9menyelesaikan segitiganya. Python Turtle Example 3.pngBerikut ini beberapa pengamatan dengan Bagaimana cara berpikir layaknya seorang ilmuan komputer:
3.3. Menggunakan Perulangan For (for loop)Ketika kita menggambar kotaknya, itu terasa cukup membosankan. Kita mesti dengan gamblang mengulang langkah-langkah yang sama untuk menggerakan dan membelokan sebanyak empat kali. Jika kita menggambar heksagonal (segi enam), atau sebuah oktogonal (segi delapan), atau bahkan sebuah poligonal dengan sisi sebaganyak 42, tentu akan jadi sangat buruk. Jadi sebuah blok bangunan dasar dari bahasa pemrograman apapun adalah untuk bisa melakukan perulangan beberapa kode, lagi dan lagi. Perulangan for pada Python menyelesaikan masalah ini untuk kita. Katakanlah kita punya beberapa teman, dan kita ingin mengirimi mereka sebuah email undangan untuk datang ke pesta kita. Untuk sekarang kita belum tahu bagaimana cara mengirim email , jadi saat ini kita hanya akan mencetak pesannya untuk setiap teman: for f in ["Rendi", "Fika", "Laras", "Chiko", "Radit", "Dinda", "Mayke"]: undangan = "Hai " + f + ". Aku ngadain pesta hari Sabtu nanti, tolong datang ya!" print(undangan) #kode lain bisa mengikuti dari sini ... Ketika kita menjalankannya, outputnya akan seperti ini: Hai Rendi. Aku ngadain pesta hari Sabtu nanti, tolong datang ya! Hai Fika. Aku ngadain pesta hari Sabtu nanti, tolong datang ya! Hai Laras. Aku ngadain pesta hari Sabtu nanti, tolong datang ya! Hai Chiko. Aku ngadain pesta hari Sabtu nanti, tolong datang ya! Hai Radit. Aku ngadain pesta hari Sabtu nanti, tolong datang ya! Hai Dinda. Aku ngadain pesta hari Sabtu nanti, tolong datang ya! Hai Mayke. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
3.4. Alur Eksekusi dari Perulangan ForKetika program dieksekusi, interpreter selalu menyimpan trek / jalur dari setiap pernyataan yang akan dieksekusi. Kita menamai ini sebagai control flow (kontrol aliran), dari flow of execution (aliran dari eksekusi) program. Ketika manusia berhitung atau menjalankan program, mereka sering menggunakan jari mereka untuk merujuk ke pernyataan selanjutnya. Jadi kita juga bisa mengimajinasikan control flow sebagai "gerakan dari jarinya Python". Control flow hingga kini masih ketat bergerak dari atas ke bawah, satu pernyataan untuk satu hentakan. Tapi perulangan Hai Rendi. Aku ngadain pesta hari Sabtu nanti, tolong datang ya! Hai Fika. Aku ngadain pesta hari Sabtu nanti, tolong datang ya! Hai Laras. Aku ngadain pesta hari Sabtu nanti, tolong datang ya! Hai Chiko. Aku ngadain pesta hari Sabtu nanti, tolong datang ya! Hai Radit. Aku ngadain pesta hari Sabtu nanti, tolong datang ya! Hai Dinda. Aku ngadain pesta hari Sabtu nanti, tolong datang ya! Hai Mayke. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!1 merubah ketentuan ini. Flowchart dari perulangan for Control flow umumnya mudah untuk divisualisasikan dan dimengerti jika kiga menggunakan flowchart. Gambar di bawah memperlihatkan langkah tepat dan logika dari bagaimana pernyataan alur dari perulangan for.png3.5. Perulangan (loop) Menyederhanakan Program Turtle KitaUntuk menggambar sebuah kotak kita harus melakukan hal yang sama sebanyak empat kali -- pindahkan turtlenya, dan belokan. Kita sebelumnya menggunakan 8 baris untuk membuat alex menggambar keempat sisi dari sebuah persegi, kode berikut juga melakukan hal yang sama persis dengan contoh sebelumnya itu, tapi bedanya kodenya menjadi lebih singkat hanya menggunakan tiga baris kode: for i in [0,1,2,3]: alex.forward(50) alex.left(90) Beberapa observasi:
for i in range(4): # Eksekusi body dengan i = 0, lalu 1, lalu 2, kemudian 3 for x in range(10): # Set nilai x ke ... [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Jadi untuk melakukan perulangan sebanyak empat kali, seorang programer Python yang baik akan melakukan ini: for i in range(4): alex.forward(50) alex.left(90) Sekarang tentunya kamu sudah tahu bagaimana cara merubah program kita yang sebelumnya, jadi si import turtle wn = turtle.Screen() # Atur window dan atributnya wn.bgcolor("lightgreen") wn.title("Tess & Alex") tess = turtle.Turtle() # Buat objek tess dan atur beberapa atribut tess.color("hotpink") tess.pensize(5) alex = turtle.Turtle() # Buat objek alex tess.forward(80) # Suruh tess menggambar segitiga sama sisi tess.left(120) tess.forward(80) tess.left(120) tess.forward(80) tess.left(120) # Selesaikan segitiganya tess.right(180) # Suruh tess berbalik tess.forward(80) # Pindahkan dia menjauh dari posisi semula alex.forward(50) # Suruh alex menggambar kotak alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) wn.mainloop()9juga bisa menggunakan perulangan for untuk menggambar segitiga sama sisinya. Tapi sekarang, apa yang akan terjadi jika kita membuat perubahan seperti ini? for c in ["yellow", "red", "purple", "blue"]: alex.color(c) alex.forward(50) alex.left(90) Sebuah variabel juga bisa diberikan nilai yang berbentuk list. Jadi list-list juga bisa digunakan dalam situasi yang lebih umum, tidak hanya pada perulangan Hai Rendi. Aku ngadain pesta hari Sabtu nanti, tolong datang ya! Hai Fika. Aku ngadain pesta hari Sabtu nanti, tolong datang ya! Hai Laras. Aku ngadain pesta hari Sabtu nanti, tolong datang ya! Hai Chiko. Aku ngadain pesta hari Sabtu nanti, tolong datang ya! Hai Radit. Aku ngadain pesta hari Sabtu nanti, tolong datang ya! Hai Dinda. Aku ngadain pesta hari Sabtu nanti, tolong datang ya! Hai Mayke. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!1. Kode diatas bisa ditulis ulang menjadi seperti ini: # Berikan variabel sebuah nilai berbentuk list clrs = ["yellow", "red", "purple", "blue"] for c in clrs: alex.color(c) alex.forward(50) alex.left(90) 3.6. Beberapa Metode dan Trik Lain Dari TurtleMetode yang dimiliki turtle bisa menggunakan sudut atau jarak negatif. Jadi for i in [0,1,2,3]: alex.forward(50) alex.left(90)3 akan menyebabkan import turtle wn = turtle.Screen() # Atur window dan atributnya wn.bgcolor("lightgreen") wn.title("Tess & Alex") tess = turtle.Turtle() # Buat objek tess dan atur beberapa atribut tess.color("hotpink") tess.pensize(5) alex = turtle.Turtle() # Buat objek alex tess.forward(80) # Suruh tess menggambar segitiga sama sisi tess.left(120) tess.forward(80) tess.left(120) tess.forward(80) tess.left(120) # Selesaikan segitiganya tess.right(180) # Suruh tess berbalik tess.forward(80) # Pindahkan dia menjauh dari posisi semula alex.forward(50) # Suruh alex menggambar kotak alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) wn.mainloop()9mundur, dan for i in [0,1,2,3]: alex.forward(50) alex.left(90)5 akan memutarnya ke kanan. Sebagai tambahan, karena sudut lingkaran besarnya 360 derajat, maka memutar 30 ke kiri akan menjadikan tess menghadap ke arah yang sama jika kita memutarnya 330 derajat ke kanan! (Pada layar animasi akan terlihat berbeda, tapi meskipun demikian - Kamu tetap akan dapat mengetahui apakah for i in [0,1,2,3]: alex.forward(50) alex.left(90)6berputar searah jarum jam atau berlawanan arah jarum jam! Hal ini menunjukan kalau kita tidak terlalu memerlukan metode putar kiri dan putar kanan -- kita bisa jadi minimalis, dan hanya menggunakan satu metode saja. Ada juga metode Inti sari berpikir layaknya seorang ilmuan komputer adalah untuk memahami lebih dalam mengenai struktur dan hubungan yang kaya dalam bidang yang kita geluti. Jadi merevisi beberapa fakta dasar tentang geometri dan nomor baris, dan memahami hubungan antara nilai jarak dan sudut dari kiri, kanan, mundur, maju, negatif, dan positif adalah awal yang baik jika kita ingin bermain dengan turtle. Pensil yang dimiliki turtle bisa digunakan dan diletakan. Ini memungkinkan kita untuk memindahkan turtle ke tempat lain tanpa harus menggambar sebuah garis. Metodenya adalah: import turtle wn = turtle.Screen() wn.bgcolor("lightgreen") # Atur warna latar window wn.title("Halo, Tess !") # Atur judul window tess = turtle.Turtle() tess.color("blue") # Suruh tess untuk merubah warnanya tess.pensize(3) # Suruh tess untuk mengatur lebar pensilnya tess.forward(50) tess.left(120) tess.forward(50) wn.mainloop()0 Setiap turtle bisa memiliki bentuknya sendiri. Beberapa yang memang sudah tersedia "dari sananya" adalah for i in [0,1,2,3]: alex.forward(50) alex.left(90)9, for i in range(4): # Eksekusi body dengan i = 0, lalu 1, lalu 2, kemudian 3 for x in range(10): # Set nilai x ke ... [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]0, for i in range(4): # Eksekusi body dengan i = 0, lalu 1, lalu 2, kemudian 3 for x in range(10): # Set nilai x ke ... [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]1, for i in range(4): # Eksekusi body dengan i = 0, lalu 1, lalu 2, kemudian 3 for x in range(10): # Set nilai x ke ... [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]2, for i in range(4): # Eksekusi body dengan i = 0, lalu 1, lalu 2, kemudian 3 for x in range(10): # Set nilai x ke ... [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]3, for i in range(4): # Eksekusi body dengan i = 0, lalu 1, lalu 2, kemudian 3 for x in range(10): # Set nilai x ke ... [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]4, import turtle wn = turtle.Screen() wn.bgcolor("lightgreen") # Atur warna latar window wn.title("Halo, Tess !") # Atur judul window tess = turtle.Turtle() tess.color("blue") # Suruh tess untuk merubah warnanya tess.pensize(3) # Suruh tess untuk mengatur lebar pensilnya tess.forward(50) tess.left(120) tess.forward(50) wn.mainloop()5. import turtle wn = turtle.Screen() wn.bgcolor("lightgreen") # Atur warna latar window wn.title("Halo, Tess !") # Atur judul window tess = turtle.Turtle() tess.color("blue") # Suruh tess untuk merubah warnanya tess.pensize(3) # Suruh tess untuk mengatur lebar pensilnya tess.forward(50) tess.left(120) tess.forward(50) wn.mainloop()1 Python Turtle Shape.pngKita bisa mempercepat atau memperlambar kecepatan animasi turtle. (Animasi mengendalikan seberapa cepat turtle untuk berbelok dan bergerak maju). Pengaturan kecepatan bisa diatur antara 1 (paling lambat) hingga 10 (tercepat). Tapi jika kita mengeset kecepatannya ke 9, itu memiliki arti yang spesial -- matikan animasi dan begerak secepat mungkin. import turtle wn = turtle.Screen() wn.bgcolor("lightgreen") # Atur warna latar window wn.title("Halo, Tess !") # Atur judul window tess = turtle.Turtle() tess.color("blue") # Suruh tess untuk merubah warnanya tess.pensize(3) # Suruh tess untuk mengatur lebar pensilnya tess.forward(50) tess.left(120) tess.forward(50) wn.mainloop()2 Seekor turtle bisa "mengecap" jejak kakinya ke kanvas, dan ini akan tetap terlihat setelah si turtle bergerak ke tempat lain. Pengecapan masih terjadi, bahkan ketika pensilnya diangkat/diletakan. Mari coba beberapa contoh yang memperlihatkan fitur-fitur baru tersebut: import turtle wn = turtle.Screen() wn.bgcolor("lightgreen") # Atur warna latar window wn.title("Halo, Tess !") # Atur judul window tess = turtle.Turtle() tess.color("blue") # Suruh tess untuk merubah warnanya tess.pensize(3) # Suruh tess untuk mengatur lebar pensilnya tess.forward(50) tess.left(120) tess.forward(50) wn.mainloop()3 Python Turtle Shape Animation.pngHehey mari pikir sejenak! Berapa kalikah body dari loop dieksekusi? Berapa banyak gambar turtle yang kita lihat di layar? Semua kecuali satu bentuk yang kita lihat di gambar adalah jejak kaki yang dibuat oleh for i in range(4): # Eksekusi body dengan i = 0, lalu 1, lalu 2, kemudian 3 for x in range(10): # Set nilai x ke ... [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]6. Tapi programnya masih hanya punya satu instan turtle -- bisakah kamu menemukan yang mana import turtle wn = turtle.Screen() # Atur window dan atributnya wn.bgcolor("lightgreen") wn.title("Tess & Alex") tess = turtle.Turtle() # Buat objek tess dan atur beberapa atribut tess.color("hotpink") tess.pensize(5) alex = turtle.Turtle() # Buat objek alex tess.forward(80) # Suruh tess menggambar segitiga sama sisi tess.left(120) tess.forward(80) tess.left(120) tess.forward(80) tess.left(120) # Selesaikan segitiganya tess.right(180) # Suruh tess berbalik tess.forward(80) # Pindahkan dia menjauh dari posisi semula alex.forward(50) # Suruh alex menggambar kotak alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) wn.mainloop()9yang asli? (Petunjuk: jika kamu tidak yakin, tulis sebaris kode baru setelah perulangan Hai Rendi. Aku ngadain pesta hari Sabtu nanti, tolong datang ya! Hai Fika. Aku ngadain pesta hari Sabtu nanti, tolong datang ya! Hai Laras. Aku ngadain pesta hari Sabtu nanti, tolong datang ya! Hai Chiko. Aku ngadain pesta hari Sabtu nanti, tolong datang ya! Hai Radit. Aku ngadain pesta hari Sabtu nanti, tolong datang ya! Hai Dinda. Aku ngadain pesta hari Sabtu nanti, tolong datang ya! Hai Mayke. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!1untuk mengganti warna import turtle wn = turtle.Screen() # Atur window dan atributnya wn.bgcolor("lightgreen") wn.title("Tess & Alex") tess = turtle.Turtle() # Buat objek tess dan atur beberapa atribut tess.color("hotpink") tess.pensize(5) alex = turtle.Turtle() # Buat objek alex tess.forward(80) # Suruh tess menggambar segitiga sama sisi tess.left(120) tess.forward(80) tess.left(120) tess.forward(80) tess.left(120) # Selesaikan segitiganya tess.right(180) # Suruh tess berbalik tess.forward(80) # Pindahkan dia menjauh dari posisi semula alex.forward(50) # Suruh alex menggambar kotak alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) wn.mainloop()9, atau gunakan pensilnya untuk menggambar garis, atau ganti bentuknya, dll.) 3.7. Glosariumattribute (atribut) Beberapa kondisi atau nilai yang dimiliki oleh objek tertentu. Contohnya, import turtle wn = turtle.Screen() # Atur window dan atributnya wn.bgcolor("lightgreen") wn.title("Tess & Alex") tess = turtle.Turtle() # Buat objek tess dan atur beberapa atribut tess.color("hotpink") tess.pensize(5) alex = turtle.Turtle() # Buat objek alex tess.forward(80) # Suruh tess menggambar segitiga sama sisi tess.left(120) tess.forward(80) tess.left(120) tess.forward(80) tess.left(120) # Selesaikan segitiganya tess.right(180) # Suruh tess berbalik tess.forward(80) # Pindahkan dia menjauh dari posisi semula alex.forward(50) # Suruh alex menggambar kotak alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) wn.mainloop()9memiliki warna. canvas Permukaan di dalam window/jendela dimana proses penggambaran terjadi. control flow Lihat flow of execution pada bab berikutnya. for loop (perulangan for) Sebuah pernyataan di Python untuk memudahkan dalam melakukan pengulangan pernyataan yang diletakan di dalam body dari perulangan. loop body Sejumlah pernyataan yang bersarang di dalam sebuah loop/perulangan. Dikatakan bersarang karena pernyataannya menjorok / bertakuk kedalam di bawah pernyataan loop. loop variable Sebuah variabel yang digunakan sebagai bagian dari for loop. Ia diberikan nilai yang berbeda pada setiap iterasi dari perulangan. instance (instan) Objek dengan tipe tertentu, atau kelas (class). import turtle wn = turtle.Screen() # Atur window dan atributnya wn.bgcolor("lightgreen") wn.title("Tess & Alex") tess = turtle.Turtle() # Buat objek tess dan atur beberapa atribut tess.color("hotpink") tess.pensize(5) alex = turtle.Turtle() # Buat objek alex tess.forward(80) # Suruh tess menggambar segitiga sama sisi tess.left(120) tess.forward(80) tess.left(120) tess.forward(80) tess.left(120) # Selesaikan segitiganya tess.right(180) # Suruh tess berbalik tess.forward(80) # Pindahkan dia menjauh dari posisi semula alex.forward(50) # Suruh alex menggambar kotak alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) wn.mainloop()9dan import turtle wn = turtle.Screen() # Atur window dan atributnya wn.bgcolor("lightgreen") wn.title("Tess & Alex") tess = turtle.Turtle() # Buat objek tess dan atur beberapa atribut tess.color("hotpink") tess.pensize(5) alex = turtle.Turtle() # Buat objek alex tess.forward(80) # Suruh tess menggambar segitiga sama sisi tess.left(120) tess.forward(80) tess.left(120) tess.forward(80) tess.left(120) # Selesaikan segitiganya tess.right(180) # Suruh tess berbalik tess.forward(80) # Pindahkan dia menjauh dari posisi semula alex.forward(50) # Suruh alex menggambar kotak alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) alex.forward(50) alex.left(90) wn.mainloop()2merupakan instan yang berbeda dari kelas import turtle wn = turtle.Screen() wn.bgcolor("lightgreen") # Atur warna latar window wn.title("Halo, Tess !") # Atur judul window tess = turtle.Turtle() tess.color("blue") # Suruh tess untuk merubah warnanya tess.pensize(3) # Suruh tess untuk mengatur lebar pensilnya tess.forward(50) tess.left(120) tess.forward(50) wn.mainloop()6. method (metode) Fungsi yang dilampirkan ke sebuah objek. Memanggil atau mengaktifkan metode menyebabkan objek merespon dengan cara tertentu, misal, for i in range(4): alex.forward(50) alex.left(90)4adalah metode ketika kita mengatakan for i in range(4): alex.forward(50) alex.left(90)5. invoke (panggil) Sebuah objek punya metode-metode. Kita menggunakan kata kerja invoke dengan maksud mengaktifkan metodenya. Memanggil metode dilakukan dengan menempatkan titik setelah nama metode, dengan beberapa argumen yang dimungkinkan. Jadi for i in range(4): alex.forward(50) alex.left(90)6 berarti meng-invoke / memanggil / mengaktifkan metode for i in range(4): alex.forward(50) alex.left(90)4. module File yang berisi definisi dan pernyataan Python yang ditujukan untuk digunakan dalam program Python. Isi dari module dibuat tersedia untuk program lain dengan menggunakan pernyataan for i in range(4): alex.forward(50) alex.left(90)8. object (objek) "Sesuatu" yang bisa diacu oleh variabel. Contohnya bisa saja sebuah screen window, atau salah satu turtle yang sudah kita buat. range Fungsi built-in di Python untuk membuat serangkaian integer. Umumnya sangat berguna ketika kita perlu membuat for loop yang dieksekusi dalam jumlah tertentu. terminating condition Kondisi yang ketika terjadi akan menyebabkan perulangan berhenti mengulang isi body. Pada Hai Rendi. Aku ngadain pesta hari Sabtu nanti, tolong datang ya! Hai Fika. Aku ngadain pesta hari Sabtu nanti, tolong datang ya! Hai Laras. Aku ngadain pesta hari Sabtu nanti, tolong datang ya! Hai Chiko. Aku ngadain pesta hari Sabtu nanti, tolong datang ya! Hai Radit. Aku ngadain pesta hari Sabtu nanti, tolong datang ya! Hai Dinda. Aku ngadain pesta hari Sabtu nanti, tolong datang ya! Hai Mayke. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!1loop yang kita lihat di bab ini, terminating condition terjadi ketika tidak ada lagi elemen untuk diberikan nilainya ke loop variabel. |