Modul 5: Studi Kasus Turtle¶
Di modul ini kita akan bermain dengan turtle
yang merupakan sebuah library di Python. library adalah kumpulan kode yang siap digunakan untuk tujuan tertentu. Misalnya ada library yang khusus mendukung pembuatan game, ada library yang berisi fungsi-fungsi pendukung pembuatan web, dan sebagainya.
Turtle adalah library yang memungkinkan kita menggambar garis, lingkaran, dan bentuk-bentuk lainnya yang lebih kompleks di sebuah window. Kita juga akan memanfaatkan pengkondisian dan perulangan untuk menggambar sesuatu yang lebih dinamis.
Memanggil Library Turtle¶
Sebelum bisa menggunakan kode-kode yang ada di library turtle, terlebih dahulu kita perlu me-load library tersebut ke program yang sedang kita buat. Untuk me-load kita gunakan keyword import
.
>>> import turtle
Setting Window¶
Turtle adalah library untuk menggambar sesuatu, maka sebelumnya kita harus buatkan sebuah objek window tempat menggambarnya. Di turtle namanya adalah turtle.Screen()
. Selain itu, kita bisa juga memberikan warna background <window>.bgcolor("<warna>")
juga judul window tersebut dengan <window>.title("<judul>")
serta menentukan ukuran window <window>.setup(width=600, height=600)
.
Di bawah ini contohnya kita membuat sebuah window lalu kita assign ke sebuah variable dengan nama win
.
>>> win = turtle.Screen()
>>> win.bgcolor("light green")
>>> win.title("Belajar Turtle")
>>> win.setup(width=600, height=600)
Berikut ini adalah tampilan window setelah menjalankan kode-kode di atas.
Membuat Turtle¶
Setelah kita punya window tempat menggambar, maka sekarang kita akan membuat objek turtle. Objek turtle ini sebenarnya seperti sebuah kepala pena, yang jika digerakkan maka akan terlihat goresannya. Untuk membuat objek turtle, maka gunakan turtle.Turtle()
lalu assign ke sebuah variable.
>>> t = turtle.Turtle()
Hasilnya adalah sebagai berikut
Mengganti Bentuk Head¶
Kita bisa mengganti bentuk-bentuk head (kepala pena) tersebut dengan mengganti shape
dari objek turtle dengan salah satu dari:
Square
Arrow
Circle
Turtle
Triangle
Classic
Berikut contohnya:
>>> t.shape("square")
>>> t.shape("circle")
>>> t.shape("turtle")
Mengganti Warna Head¶
Kita juga bisa mengganti warna head dengan men-set color
dari objek turtle.
>>> t.color("red")
Menggerakkan Head¶
Menggerakkan head akan meninggalkan jejak garis pada jalan yang dilewati. Ada beberapa jenis pergerakan head:
Maju dan Mundur
Memutar arah head ke kiri dan ke kanan
Menuju ke koordinat tertentu
Menggambar bentuk-bentuk tertentu yang telah disiapkan Python
Maju dan Mundur¶
<turtle>.forward(<jarak>)
digunakan untuk menggerakkan head meju searah muka head sejauh jarak yang ditentukan. Sementara backward
adalah mundur atau bergerak berlawanan arah muka.
>>> t.forward(100)
>>> t.backward(200)
Memutar Muka Head¶
Muka head bisa digerakkan ke kiri dan ke kanan sebesar derajat tertentu. Kode yang digunakan adalah <turtle>.left(<derajat>)
, dan <turtle>.right(<derajat>)
.
>>> t.right(45)
Menggambar Bentuk yang telah disiapkan Python¶
Python menyiapkan 2 bentuk yang bisa digambar langsung, yaitu dot
dan circle
.
<turtle>.dot(<diameter>)
akan menggambar titik dengan diameter tertentu yang berpusat pada lokasi saat ini.<turtle>.circle(<radius>)
akan menggambar sebuah lingkaran dengan radius tertentu yang dimulai dari lokasi saat ini, bergerak berlawanan jarum jam, dan kembali ke titik semula.
>>> t.dot(30)
>>> t.circle(50)
Hasilnya akan seperti berikut ini:
Mengatur Kecepatan Gerak Head¶
Selain bentuk, kecepatan gerak juga bisa diatur dengan <turtle>.speed(<kecepatan>)
. Speed defaultnya adalah 3
, kita bisa ubah dengan nilai lainnya.
>>> t.speed(1)
>>> t.goto(100, -100)
Clear dan Reset¶
Berikutnya adalah kita bisa menghapus gambar yang telah tertulis selama menggerakkan Head dengan cara <turtle>.clear()
. Sementara itu, untuk mengembalikan setting ke posisi awal, termasuk lokasi, arah, speed, warna, maka dapat dilakukan <turtle>.reset()
.
>>> t.clear()
>>> t.reset()
Warna Turtle¶
Warna pada turtle terdiri dari dua bagian yaitu pencolor
dan fillcolor
.
pencolor(<warna>)
mengeset warna pada garis yang dilewati sedangkanfillcolor(<warna>)
mengeset warna pada bagian tertutup yang terbentuk dari pergerakan turtle
sementara <turtle>.color(<warna>)
akan mengeset pencolor
dan fillcolor
dengan warna yang sama.
untuk mewarnai bagian tertutup, maka harus diawali perintah <turtle>.begin_fill()
dan di akhiri dengan perintah <turtle>.end_fill()
.
>>> t.reset()
>>> t.pencolor("blue")
>>> t.forward(50)
>>> t.fillcolor("yellow")
>>> t.begin_fill()
>>> t.circle(50)
>>> t.end_fill()
Pengkondisian dan Perulangan pada Turtle¶
Perulangan dapat memudahkan kita menggambar suatu bentuk dengan pola tertentu, misalnya segi delapan tanpa harus menggambarkan secara manual setiap sisinya. Perhatikan contoh berikut:
import turtle
win = turtle.Screen()
win.bgcolor("light green")
win.title("Belajar Turtle")
win.setup(width=600, height=600)
t = turtle.Turtle()
for i in range(8):
t.forward(50)
t.right(45) #45 derajat didapat dari 360 / 8
Kita bisa gunakan pengkondisian di dalam looping untuk mengganti-ganti warna.
import turtle
win = turtle.Screen()
win.bgcolor("light green")
win.title("Belajar Turtle")
win.setup(width=600, height=600)
t = turtle.Turtle()
t.pensize(5)
for i in range(5):
if i % 2 == 0: # jika i adalah genap, maka warna turtle adalah biru, jika ganjil maka kuning
t.color("blue")
else:
t.color("yellow")
t.circle(20)
t.penup()
t.forward(30)
t.pendown()
Kita juga bisa memanfaatkan pengkondisian untuk melakukan sesuatu yang berbeda berdasarkan input dari user. Jika kode berikut dijalankan, maka perhatikan Python Prompt, isikan tulisan circle
lalu tekan Enter. Setelah menggambar, maka program akan meminta kembali inputan bentuk karena perintah while True
akan selalu True
. Coba juga untuk bentuk square
dan octagon
. Untuk menghentikan program, inputkan selain 3 nama bentuk tersebut, maka program akan masuk ke else
dan mengeksekusi perintah break
. Perintah break
adalah untuk keluar dari perulangan saat ini.
import turtle
win = turtle.Screen()
win.bgcolor("light green")
win.title("Belajar Turtle")
win.setup(width=600, height=600)
t = turtle.Turtle()
t.pensize(5)
while True:
bentuk = input("Pilih bentuk (circle, square, octagon): ")
t.clear()
if bentuk == "circle":
t.circle(50)
elif bentuk == "square":
for i in range(4):
t.forward(50)
t.left(90)
elif bentuk == "octagon":
for i in range(8):
t.forward(50)
t.left(45)
else:
break # perintah break adalah untuk menghentikan perulangan
Selamat anda telah menyelesaikan Modul 5!!
Mohon berkenan memberikan Rating dan Feedback agar kami dapat meningkatkan kualitas modul ini!