Materi Pemrograman Python Turtle

Materi Python Turtle

Pengenalan Python Turtle

Python Turtle adalah sebuah library bawaan dalam bahasa pemrograman Python yang memungkinkan pengguna untuk membuat gambar, bentuk grafis, dan pola visual melalui perintah-perintah pemrograman dasar. Turtle bekerja dengan mengontrol sebuah kursor (yang secara bawaan berbentuk panah atau penyu) di atas kanvas 2 dimensi.

Perintah-perintah dasar yang didukung oleh Python Turtle meliputi:

  • Maju dan Mundur: Menggerakkan kursor searah atau berlawanan arah dengan posisinya saat ini.
  • Belok Kanan dan Belok Kiri: Mengubah arah rotasi kursor berdasarkan sudut tertentu.
  • Mengubah Warna: Menyesuaikan warna garis luar (stroke) maupun warna isian (fill).
  • Mengubah Ketebalan Garis: Mengatur ketebalan pena menggambar.
  • Membuat Bentuk: Membentuk poligon dasar hingga lingkaran.
  • Perulangan: Mengulang himpunan perintah menggunakan instruksi for dan while.

Python Turtle sangat efektif dan ideal digunakan untuk mempelajari logika pemrograman (programming logic), sistem koordinat kartesius, struktur perulangan (loops), pembuatan fungsi (functions), serta logika percabangan (conditional statements).

Untuk mengaktifkan modul ini dalam skrip Python, lakukan pengimporan modul dan inisialisasi objek sebagai berikut:

import turtle
t = turtle.Turtle()

Level 1 — Dasar

1. Membuat dan Menampilkan Jendela Turtle

Langkah paling dasar dalam membuat program Turtle adalah memanggil pustaka, menginstansiasi objek kursor, dan menjaga agar jendela grafis tidak langsung tertutup setelah kode selesai dieksekusi.

import turtle
t = turtle.Turtle()
turtle.done()

Penjelasan Komponen Kode:

  • import turtle: Mengaktifkan pustaka Turtle di dalam program.
  • t = turtle.Turtle(): Membuat objek turtle baru yang diberi nama variabel t.
  • turtle.done(): Menjaga jendela grafik Turtle tetap terbuka dan responsif sampai pengguna menutupnya secara manual.

2. Bergerak Maju (forward)

Untuk menggerakkan kursor ke depan searah jarum jam atau arah hadapnya, gunakan perintah forward(jarak).

import turtle
t = turtle.Turtle()
t.forward(100)
turtle.done()

Perintah t.forward(100) akan menggerakkan Turtle maju sejauh 100100 piksel ke depan.

Pergerakan maju juga dapat dilakukan secara beruntun dengan nilai jarak yang bervariasi:

t.forward(50)
t.forward(100)
t.forward(150)

3. Bergerak Mundur (backward)

Untuk menggerakkan kursor ke belakang tanpa mengubah arah hadapnya, gunakan perintah backward(jarak) atau bentuk singkatnya back(jarak).

import turtle
t = turtle.Turtle()
t.backward(100)
turtle.done()

Perintah t.backward(100) memindahkan posisi kursor mundur sejauh 100100 piksel.

4. Rotasi Arah: Belok Kanan dan Kiri

Pengubahan arah hadap kursor dilakukan dengan menentukan derajat sudut rotasi:

  • Belok Kanan: t.right(sudut)
  • Belok Kiri: t.left(sudut)

Contoh pembuatan garis siku-siku berbentuk huruf L:

import turtle
t = turtle.Turtle()
t.forward(100)
t.right(90)
t.forward(100)
turtle.done()

Pada kode di atas, kursor bergerak maju 100100 piksel, memutar arah ke kanan sebesar 90∘90^\circ, lalu melanjutkan pergerakan maju sejauh 100100 piksel.

5. Membuat Persegi Langkah demi Langkah

Bangun datar persegi memiliki empat sisi yang sama panjang dan empat sudut siku-siku (90∘90^\circ). Penggambaran secara manual dapat ditulis sebagai berikut:

import turtle
t = turtle.Turtle()
t.forward(100)
t.right(90)
t.forward(100)
t.right(90)
t.forward(100)
t.right(90)
t.forward(100)
t.right(90)
turtle.done()

Level 2 — Perulangan

6. Membuat Persegi dengan Loop for

Penulisan kode manual yang berulang dapat dioptimalkan dengan menggunakan perulangan for dan fungsi range().

import turtle
t = turtle.Turtle()
for i in range(4):
    t.forward(100)
    t.right(90)
turtle.done()

Cara Kerja: Sintaks for i in range(4): memerintahkan blok di bawahnya untuk dieksekusi sebanyak 44 kali berturut-turut. Pada setiap iterasi, Turtle bergerak maju 100100 piksel dan berbelok ke kanan sebesar 90∘90^\circ, sehingga membentuk persegi sempurna.

7. Membuat Segitiga Sama Sisi

Segitiga memiliki 33 sisi. Untuk membentuk segitiga tertutup, Turtle harus berbelok sebesar sudut luar (exterior angle) dari segitiga sama sisi.

import turtle
t = turtle.Turtle()
for i in range(3):
    t.forward(100)
    t.left(120)
turtle.done()

Perhitungan Sudut: Jumlah total rotasi untuk membentuk bangun tertutup adalah 360∘360^\circ. Oleh karena itu, sudut belok untuk segitiga sama sisi dihitung dengan:

360∘÷3=120∘360^\circ \div 3 = 120^\circ

8. Membuat Segi Lima (Pentagon)

Segi lima reguler memiliki 55 sisi sama panjang.

import turtle
t = turtle.Turtle()
for i in range(5):
    t.forward(100)
    t.right(72)
turtle.done()

Rumus Sudut Putar Poligon Reguler:

Sudut=360∘÷jumlah sisi\text{Sudut} = 360^\circ \div \text{jumlah sisi}

Untuk segi lima reguler:

360∘÷5=72∘360^\circ \div 5 = 72^\circ

9. Membuat Segi Enam (Hexagon)

Segi enam reguler memiliki 66 sisi sama panjang.

import turtle
t = turtle.Turtle()
for i in range(6):
    t.forward(80)
    t.right(60)
turtle.done()

Perhitungan Sudut:

360∘÷6=60∘360^\circ \div 6 = 60^\circ

10. Membuat Poligon Dinamis Berdasarkan Input Pengguna

Program dapat dibuat interaktif dengan meminta pengguna menentukan jumlah sisi dan panjang sisi poligon yang ingin digambar melalui fungsi input().

import turtle
t = turtle.Turtle()
sisi = int(input("Masukkan jumlah sisi: "))
panjang = int(input("Masukkan panjang sisi: "))
for i in range(sisi):
    t.forward(panjang)
    t.right(360 / sisi)
turtle.done()

Level 3 — Warna dan Tampilan

11. Mengubah Warna Turtle

Warna utama objek Turtle dapat diubah menggunakan metode color().

import turtle
t = turtle.Turtle()
t.color("red")
t.forward(100)
turtle.done()

Daftar warna baku yang sering digunakan antara lain: "red", "blue", "green", "yellow", "purple", "orange", "black", dan "pink".

12. Mengubah Warna Garis (pencolor)

Jika hanya ingin mengubah warna garis penelusuran tanpa mengubah warna bentuk lainnya, gunakan metode pencolor().

import turtle
t = turtle.Turtle()
t.pencolor("blue")
for i in range(4):
    t.forward(100)
    t.right(90)
turtle.done()

13. Mengisi Warna pada Bangun Datar (fillcolor)

Untuk memberi warna latar/isian pada bagian dalam bangun tertutup:

  1. Tentukan warna isi dengan fillcolor("nama_warna").
  2. Panggil begin_fill() sebelum mulai menggambar bentuk.
  3. Panggil end_fill() setelah selesai menggambar bentuk.
import turtle
t = turtle.Turtle()
t.fillcolor("yellow")
t.begin_fill()
for i in range(4):
    t.forward(100)
    t.right(90)
t.end_fill()
turtle.done()

14. Mengatur Warna Garis dan Warna Isi Sekaligus

Metode color() dapat menerima dua argumen sekaligus dengan format t.color("warna_garis", "warna_isi").

import turtle
t = turtle.Turtle()
t.color("blue", "yellow")
t.begin_fill()
for i in range(4):
    t.forward(100)
    t.right(90)
t.end_fill()
turtle.done()

15. Mengubah Ketebalan Garis dan Bentuk Kursor

  • Ketebalan Garis: Diatur menggunakan pensize(ukuran_piksel).
  • Bentuk Kursor: Diatur menggunakan shape("nama_bentuk").

Pilihan bentuk kursor yang tersedia secara bawaan adalah: "turtle", "arrow", "circle", "square", dan "triangle".

import turtle
t = turtle.Turtle()
t.pensize(5)
t.color("red")
t.shape("turtle")
for i in range(4):
    t.forward(100)
    t.right(90)
turtle.done()

Level 4 — Penup dan Pendown

17. Berpindah Posisi Tanpa Menggambar dan Menggunakan goto()

Untuk memindahkan Turtle ke lokasi lain di kanvas tanpa meninggalkan jejak garis:

  • penup(): Mengangkat pena dari kanvas.
  • goto(x, y): Memindahkan posisi kursor langsung ke koordinat kartesius (x,y)(x, y).
  • pendown(): Menurunkan kembali pena ke kanvas untuk siap menggambar.
import turtle
t = turtle.Turtle()
t.forward(100)
t.penup()
t.goto(200, 100)
t.pendown()
t.forward(100)
turtle.done()

Level 5 — Circle

19. Membuat Lingkaran dan Mewarnainya

Fungsi circle(radius) digunakan untuk membuat lingkaran penuh berdasar nilai jari-jari (radius) yang ditentukan dalam piksel.

import turtle
t = turtle.Turtle()
t.color("orange")
t.begin_fill()
t.circle(50)  # 50 adalah radius lingkaran
t.end_fill()
turtle.done()

Level 6 — Membuat Pola

21. Pola Persegi Berulang (Nested Loop)

Perulangan bersarang (nested loop) dapat memutar bentuk geometris secara berulang hingga membentuk pola melingkar (mandala).

import turtle
t = turtle.Turtle()
for i in range(10):
    for j in range(4):
        t.forward(50)
        t.right(90)
    t.right(36)
turtle.done()

Pada kode di atas, loop dalam menggambar satu persegi, dan loop luar memutar posisi Turtle sebesar 36∘36^\circ sebanyak 1010 kali (10×36∘=360∘10 \times 36^\circ = 360^\circ).

22. Membuat Spiral Berwarna

Penggabungan daftar warna (list) dengan perulangan yang mengubah panjang langkah dan sudut rotasi sebesar 91∘91^\circ menghasilkan pola spiral bergradasi warna.

import turtle
t = turtle.Turtle()
colors = ["red", "blue", "green", "purple", "orange"]
for i in range(50):
    t.color(colors[i % 5])
    t.forward(i * 5)
    t.right(91)
turtle.done()

Level 7 — Function

24. Membuat Fungsi Persegi dengan Parameter

Fungsi (def) memungkinkan penulisan blok kode modular yang dapat dipanggil berulang kali dengan parameter ukuran yang fleksibel.

import turtle
t = turtle.Turtle()

def persegi(panjang):
    for i in range(4):
        t.forward(panjang)
        t.right(90)

persegi(50)
persegi(100)
persegi(150)
turtle.done()

Level 8 — IF / ELSE

28. Memilih Bentuk Berdasarkan Input Pengguna

Logika percabangan if, elif, dan else digunakan untuk mengeksekusi penggambaran bentuk secara kondisional berdasarkan input pengguna.

import turtle
t = turtle.Turtle()
pilihan = int(input("Pilih bentuk (1=persegi, 2=segitiga): "))

if pilihan == 1:
    for i in range(4):
        t.forward(100)
        t.right(90)
elif pilihan == 2:
    for i in range(3):
        t.forward(100)
        t.right(120)
else:
    print("Pilihan tidak tersedia")

turtle.done()

Level 9 — Project Menengah

Project 1 & 2: Penggambaran Rumah Sederhana dan Lengkap

Proyek ini menggabungkan struktur persegi sebagai badan rumah dan segitiga sebagai atap rumah, lengkap dengan kombinasi warna serta pengaturan kecepatan animasi menggambar speed().

import turtle
t = turtle.Turtle()
t.speed(3)

# Badan rumah
t.color("black", "lightblue")
t.begin_fill()
for i in range(4):
    t.forward(150)
    t.right(90)
t.end_fill()

# Atap rumah
t.color("black", "red")
t.begin_fill()
t.left(30)
t.forward(150)
t.right(60)
t.forward(150)
t.right(150)
t.forward(150)
t.end_fill()

turtle.done()

Project 3 & 4: Bunga dan Bintang

Program untuk menggambar Bintang 5 Sudut terisi warna emas ("gold"). Setiap sudut putar interior bintang adalah 144∘144^\circ

import turtle
t = turtle.Turtle()
t.color("gold")
t.begin_fill()
for i in range(5):
    t.forward(150)
    t.right(144)
t.end_fill()
turtle.done()

Bonus Project: Bentuk Salju (Snowflake)

Program kompleks membuat kepingan salju fraktal menggunakan fungsi bercabang dan kecepatan tanpa jeda (speed(0)).

import turtle
t = turtle.Turtle()
t.speed(0)

def branch(size):
    t.forward(size)
    t.right(45)
    t.forward(size / 3)
    t.backward(size / 3)
    t.left(90)
    t.forward(size / 3)
    t.backward(size / 3)
    t.right(45)
    t.backward(size)

def snowflake(size):
    for i in range(6):
        branch(size)
        t.right(60)

snowflake(150)
turtle.done()

Urutan Pembelajaran yang Disarankan

Berikut adalah silabus rencana pembelajaran terstruktur sebanyak 18 kali pertemuan untuk menguasai pemrograman Python Turtle secara bertahap:

PertemuanMateri Pembelajaran
1Pengenalan Turtle
2forward() dan backward()
3left() dan right()
4Membuat bentuk dasar
5for dan range()
6Poligon
7Warna dan pensize()
8begin_fill() dan end_fill()
9penup(), pendown(), goto()
10Circle dan pola
11Nested loop
12Function
13Function + parameter
14Input + Turtle
15if/elif/else + Turtle
16Project Rumah
17Project Bunga/Mandala
18Mini Project Turtle Drawing Generator

Kesimpulan

Dengan mengikuti urutan pembelajaran secara sistematis, siswa tidak hanya belajar cara menggambar objek visual di layar, melainkan juga memahami konsep-konsep fundamental ilmu komputer seperti variabel, perulangan, fungsi, parameter, penerimaan input, logika percabangan, hingga nested loop. Pustaka Python Turtle bertindak sebagai media pembelajaran visual dan interaktif yang sangat tepat untuk menguasai logika dasar pemrograman secara mendalam.