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()

Menaikkan dan Menurunkan Head

Seperti pulpel, ia bisa diturunkan untuk menuliskan tinta, dan dinaikkan jika tidak ingin ada tinta walau pulpen dipindahkan. Hal yang sama bisa dilakukan dengan head turtle dengan <turtle>.pendown() dan <turtle>.penup().

>>> t.penup()
>>> t.forward(200)

Terlihat di bawah ini bahwa meskipun head berpindah, namun tidak ada jejak garis seperti sebelumnya.

Untuk menurunkan kembali head:

>>> t.pendown()
>>> t.goto(200, 200)

Warna Turtle

Warna pada turtle terdiri dari dua bagian yaitu pencolor dan fillcolor.

  • pencolor(<warna>) mengeset warna pada garis yang dilewati sedangkan

  • fillcolor(<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!