Materi Pemrograman 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
fordanwhile.
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 variabelt.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 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 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 piksel, memutar arah ke kanan sebesar , lalu melanjutkan pergerakan maju sejauh piksel.
5. Membuat Persegi Langkah demi Langkah
Bangun datar persegi memiliki empat sisi yang sama panjang dan empat sudut siku-siku (). 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 kali berturut-turut. Pada setiap iterasi, Turtle bergerak maju piksel dan berbelok ke kanan sebesar , sehingga membentuk persegi sempurna.
7. Membuat Segitiga Sama Sisi
Segitiga memiliki 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 . Oleh karena itu, sudut belok untuk segitiga sama sisi dihitung dengan:
8. Membuat Segi Lima (Pentagon)
Segi lima reguler memiliki 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:
Untuk segi lima reguler:
9. Membuat Segi Enam (Hexagon)
Segi enam reguler memiliki sisi sama panjang.
import turtle
t = turtle.Turtle()
for i in range(6):
t.forward(80)
t.right(60)
turtle.done()
Perhitungan Sudut:
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:
- Tentukan warna isi dengan
fillcolor("nama_warna"). - Panggil
begin_fill()sebelum mulai menggambar bentuk. - 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 .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 sebanyak kali ().
22. Membuat Spiral Berwarna
Penggabungan daftar warna (list) dengan perulangan yang mengubah panjang langkah dan sudut rotasi sebesar 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
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:
| Pertemuan | Materi Pembelajaran |
|---|---|
| 1 | Pengenalan Turtle |
| 2 | forward() dan backward() |
| 3 | left() dan right() |
| 4 | Membuat bentuk dasar |
| 5 | for dan range() |
| 6 | Poligon |
| 7 | Warna dan pensize() |
| 8 | begin_fill() dan end_fill() |
| 9 | penup(), pendown(), goto() |
| 10 | Circle dan pola |
| 11 | Nested loop |
| 12 | Function |
| 13 | Function + parameter |
| 14 | Input + Turtle |
| 15 | if/elif/else + Turtle |
| 16 | Project Rumah |
| 17 | Project Bunga/Mandala |
| 18 | Mini 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.