Menggambar Bangun Geometri & Warna: Melatih Logika Loop dengan Python Turtle
Pada artikel bagian pertama, kita telah mempelajari dasar gerakan kura-kura dan bagaimana menggambar bujur sangkar dengan menuliskan perintah maju dan belok sebanyak empat kali berturut-turut.
Namun, menuliskan baris kode yang sama berulang-ulang bukanlah cara yang efisien dalam pemrograman. Di artikel kedua ini, kamu akan memanfaatkan kekuatan perulangan (for loop), rumus matematika sudut poligon, serta eksplorasi warna untuk menciptakan aneka bentuk geometri yang memukau.
1. Dari Manual ke Otomatis: Bujur Sangkar dengan Loop
Alih-alih menuliskan 8 baris instruksi untuk menggambar empat sisi bujur sangkar, kita cukup menggunakan perulangan for i in range(4):. Blok kode ini menginstruksikan Python untuk mengulang pasangan perintah maju dan belok sebanyak empat kali:
import turtle
t = turtle.Turtle()
t.shape("turtle")
t.color("#0284c7")
t.pensize(3)
# Menggambar bujur sangkar cukup dengan 3 baris loop:
for i in range(4):
t.forward(100)
t.right(90)
turtle.done()

Perhatikan struktur kodenya: baris t.forward(100) dan t.right(90) ditulis menjorok (indentasi 4 spasi). Artinya, kedua perintah tersebut berada di dalam kendali loop dan akan dijalankan berulang kali sampai putaran ke-4 selesai.
2. Rahasia Sudut Luar: Menggambar Poligon Apa Saja
Bagaimana jika kita ingin menggambar segitiga sama sisi, segi lima (pentagon), atau segi enam (heksagon)? Apakah kita harus menghafal setiap sudut belokannya?
Jawabannya ada pada prinsip matematika sudut putar luar: saat kura-kura selesai menggambar bangun datar tertutup dan kembali ke arah semula, kura-kura telah melakukan satu putaran penuh sebesar 360 derajat.
Maka, rumus besaran sudut putar untuk setiap poligon beraturan adalah:
Sudut Putar = 360 / Jumlah Sisi
- Segitiga sama sisi (3 sisi):
360 / 3 = 120derajat - Bujur sangkar (4 sisi):
360 / 4 = 90derajat - Segi lima (5 sisi):
360 / 5 = 72derajat - Segi enam (6 sisi):
360 / 6 = 60derajat
Dengan menerapkan rumus ini ke dalam variabel Python, kita bisa membuat program fleksibel yang dapat menggambar poligon apa pun hanya dengan mengganti nilai jumlah_sisi:
import turtle
t = turtle.Turtle()
t.shape("turtle")
t.color("#0284c7")
t.pensize(3)
# Menentukan jumlah sisi dan panjang langkah
jumlah_sisi = 6
panjang = 80
sudut_putar = 360 / jumlah_sisi # 60 derajat untuk segi enam
for i in range(jumlah_sisi):
t.forward(panjang)
t.right(sudut_putar)
turtle.done()

3. Mewarnai Garis dan Bidang Tertutup
Gambar akan terlihat jauh lebih menarik dengan sentuhan warna. Python Turtle membedakan dua macam warna:
pencolor("warna"): Menentukan warna garis tepi yang digambar oleh mata pena.fillcolor("warna"): Menentukan warna isian untuk bidang tertutup.
Untuk mengisi warna bidang, apit perintah penggambaran bentuk tersebut dengan t.begin_fill() sebelum mulai menggambar, dan t.end_fill() setelah bentuk selesai digambar:
import turtle
t = turtle.Turtle()
t.shape("turtle")
t.pensize(3)
# Tentukan warna garis dan warna isian
t.pencolor("#0284c7") # Garis tepi biru
t.fillcolor("#fef08a") # Isian kuning lembut
# Mulai proses pengisian warna
t.begin_fill()
for i in range(4):
t.forward(100)
t.right(90)
t.end_fill()
turtle.done()

4. Menggambar Bintang dan Lingkaran
Selain poligon bersudut tumpul atau siku, kita juga dapat menggambar bentuk lengkung dan sudut lancip seperti bintang:
- Lingkaran: Cukup gunakan fungsi bawaan
t.circle(radius), misalnyat.circle(50)untuk membuat lingkaran dengan jari-jari 50 piksel. - Bintang 5 Sudut: Pada bintang lima sudut, setiap garis menyilang dengan sudut belok sebesar 144 derajat. Kita ulangi langkah ini sebanyak 5 kali.
import turtle
t = turtle.Turtle()
t.shape("turtle")
t.pensize(3)
# 1. Gambar bintang 5 sudut berwarna oranye
t.pencolor("#f97316")
t.fillcolor("#fed7aa")
t.begin_fill()
for i in range(5):
t.forward(120)
t.right(144)
t.end_fill()
# 2. Pindah posisi dan gambar lingkaran biru
t.penup()
t.forward(180)
t.pendown()
t.pencolor("#0284c7")
t.fillcolor("#bae6fd")
t.begin_fill()
t.circle(50)
t.end_fill()
turtle.done()

Latihan Tantangan: Membuat Pola Bunga Geometri
Kini saatnya menggabungkan seluruh konsep yang telah kamu pelajari. Tantangannya adalah membuat Bunga Geometri (Rosette):
- Gambar sebuah bujur sangkar dengan sisi 90 piksel.
- Setelah bujur sangkar selesai, putar kura-kura sedikit ke kanan sebesar 30 derajat.
- Ulangi langkah di atas sebanyak 12 kali (karena 12 x 30 = 360 derajat) dengan warna garis yang berganti-ganti secara berurutan.
Lihat pembahasan
Pola ini memanfaatkan konsep perulangan bersarang (nested loop): loop luar memutar orientasi bujur sangkar 12 kali, dan loop dalam menggambar 4 sisi bujur sangkar:
import turtle
t = turtle.Turtle()
t.shape("turtle")
t.pensize(2)
t.speed(0) # Kecepatan maksimal
# Daftar warna untuk setiap kelopak
warna = ["#0284c7", "#f59e0b", "#10b981", "#ef4444"]
for i in range(12):
t.pencolor(warna[i % len(warna)])
for _ in range(4):
t.forward(90)
t.right(90)
t.right(30) # Putar sudut untuk bujur sangkar berikutnya
turtle.done()

Operator modulo i % len(warna) berguna untuk merotasi pilihan warna dari daftar tanpa pernah mengalami error kehabisan indeks.
Ringkasan
- Perulangan
for i in range(n)menghemat penulisan kode berulang dan memungkinkan otomasi pola geometri. - Rumus sudut luar poligon beraturan adalah
360 / jumlah_sisi. - Warna garis diatur dengan
pencolor(), sedangkan bidang diwarnai dengan kombinasifillcolor(),begin_fill(), danend_fill(). - Pola seni yang rumit dan indah dapat dihasilkan dari kombinasi bentuk dasar yang diputar secara sistematis dengan sudut kecil.
Lanjut membaca seri berikutnya:
👉 Bagian 3: Kreasi Pola Spiral, Fraktal, dan Kontrol Interaktif Keyboard →

Leave a Reply