Cara menggunakan turtle python

Terdapat banyak modul di Python yang menyediakan fitur keren dan sangat membantu yang bisa kita gunakan pada program kita. Beberapa diantaranya bisa mengirim email, atau membaca dan mengambil isi dari halaman web. Satu yang akan coba kita gunakan dalam bab ini akan memungkinkan kita untuk membuat turtle dan juga menggambar bentuk dan pola.

Turtle (penyu) itu lucu, tapi tujuan inti dari bab ini bukanlah untuk memelihara seekor penyu sungguhan, tujuannya tentunya untuk mengajarkan kita lebih banyak tentang Python, dan untuk membangun pandangan kita mengenai pemikiran komputasional, atau berpikir seperti seorang ilmuan komputer. Kebanyakan dari Python yang dicakup di bab ini akan kita eksplorasi jauh lebih dalam lagi nanti.

3.1. Program Turtle Pertama Kita

Mari buat beberapa baris kode program Python untuk membuat seekor objek turtle dan mulai menggambar sebuah persegi. (Kita akan memberi nama variabel pertama kita sebagai alex, yang mengacu ke turtle, tapi kita juga bisa memillih nama lain jika kita mengikuti aturan dari bab sebelumnya).

import turtle                # Agar kita bisa menggunakan turtle 
wn = turtle.Screen()         # Buat taman bermain untuk turtle
alex = turtle.Turtle()       # Buat seekor turtle, dan berikan ke alex

alex.forward(50)             # Suruh alex maju sebanyak 50 poin
alex.left(90)                # Suruh alex balik kiri 90 derajat
alex.forward(30)             # Selesaikan sisi yang satunya dari segiempatnya

wn.mainloop()                # Tunggu pengguna menutup jendelanya

Ketika kita menjalankan programnya, jendela baru seperti berikut akan muncul:

Python Turtle Draw Line Example.png

Cara menggunakan turtle python

Berikut adalah beberapa hal yang perlu kita pahami mengenai program ini.

Baris pertama meminta Python untuk memuat sebuah modul bernama

import turtle
wn = turtle.Screen()
wn.bgcolor("lightgreen")          # Atur warna latar window
wn.title("Halo, Tess !")          # Atur judul window

tess = turtle.Turtle()
tess.color("blue")                # Suruh tess untuk merubah warnanya
tess.pensize(3)                   # Suruh tess untuk mengatur lebar pensilnya

tess.forward(50)
tess.left(120)
tess.forward(50)

wn.mainloop()
5. Modul ini menyediakan kita dua tipe baru yang bisa kita gunakan: tipe
import turtle
wn = turtle.Screen()
wn.bgcolor("lightgreen")          # Atur warna latar window
wn.title("Halo, Tess !")          # Atur judul window

tess = turtle.Turtle()
tess.color("blue")                # Suruh tess untuk merubah warnanya
tess.pensize(3)                   # Suruh tess untuk mengatur lebar pensilnya

tess.forward(50)
tess.left(120)
tess.forward(50)

wn.mainloop()
6, dan tipe
import turtle
wn = turtle.Screen()
wn.bgcolor("lightgreen")          # Atur warna latar window
wn.title("Halo, Tess !")          # Atur judul window

tess = turtle.Turtle()
tess.color("blue")                # Suruh tess untuk merubah warnanya
tess.pensize(3)                   # Suruh tess untuk mengatur lebar pensilnya

tess.forward(50)
tess.left(120)
tess.forward(50)

wn.mainloop()
7. Notasi titik pada
import turtle
wn = turtle.Screen()
wn.bgcolor("lightgreen")          # Atur warna latar window
wn.title("Halo, Tess !")          # Atur judul window

tess = turtle.Turtle()
tess.color("blue")                # Suruh tess untuk merubah warnanya
tess.pensize(3)                   # Suruh tess untuk mengatur lebar pensilnya

tess.forward(50)
tess.left(120)
tess.forward(50)

wn.mainloop()
8 berarti "Tipe Turtle yang didefinisikan di dalam modul turtle". (Ingat bahwa Python sifatnya case sensitive, jadi nama modul, dengan t kecil, adalah berbeda dengan type
import turtle
wn = turtle.Screen()
wn.bgcolor("lightgreen")          # Atur warna latar window
wn.title("Halo, Tess !")          # Atur judul window

tess = turtle.Turtle()
tess.color("blue")                # Suruh tess untuk merubah warnanya
tess.pensize(3)                   # Suruh tess untuk mengatur lebar pensilnya

tess.forward(50)
tess.left(120)
tess.forward(50)

wn.mainloop()
6yang menggunakan T besar.)

Kita kemudian membuat apa yang dinamakan screen (tapi lebih nyaman kalau kita menamainya sebagai jendela/window), yang mana kita berikan (assign) ke variabel

import turtle
wn = turtle.Screen()               # Atur window dan atributnya
wn.bgcolor("lightgreen")
wn.title("Tess & Alex")

tess = turtle.Turtle()             # Buat objek tess dan atur beberapa atribut
tess.color("hotpink")
tess.pensize(5)

alex = turtle.Turtle()             # Buat objek alex

tess.forward(80)                   # Suruh tess menggambar segitiga sama sisi
tess.left(120)
tess.forward(80)
tess.left(120)
tess.forward(80)
tess.left(120)                     # Selesaikan segitiganya

tess.right(180)                    # Suruh tess berbalik
tess.forward(80)                   # Pindahkan dia menjauh dari posisi semula

alex.forward(50)                   # Suruh alex menggambar kotak
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)

wn.mainloop()
0. Setiap window berisi sebuah canvas, yang merupakan area di dalam window yang bisa kita gambar.

Pada baris ke 3 kita membuat sebuah

import turtle
wn = turtle.Screen()
wn.bgcolor("lightgreen")          # Atur warna latar window
wn.title("Halo, Tess !")          # Atur judul window

tess = turtle.Turtle()
tess.color("blue")                # Suruh tess untuk merubah warnanya
tess.pensize(3)                   # Suruh tess untuk mengatur lebar pensilnya

tess.forward(50)
tess.left(120)
tess.forward(50)

wn.mainloop()
5. Variabel dengan nama
import turtle
wn = turtle.Screen()               # Atur window dan atributnya
wn.bgcolor("lightgreen")
wn.title("Tess & Alex")

tess = turtle.Turtle()             # Buat objek tess dan atur beberapa atribut
tess.color("hotpink")
tess.pensize(5)

alex = turtle.Turtle()             # Buat objek alex

tess.forward(80)                   # Suruh tess menggambar segitiga sama sisi
tess.left(120)
tess.forward(80)
tess.left(120)
tess.forward(80)
tess.left(120)                     # Selesaikan segitiganya

tess.right(180)                    # Suruh tess berbalik
tess.forward(80)                   # Pindahkan dia menjauh dari posisi semula

alex.forward(50)                   # Suruh alex menggambar kotak
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)

wn.mainloop()
2dibuat agar mengacu ke turtle ini.

Jadi ketiga baris pertama itu fungsinya untuk mengeset nilai awal, selanjutnya turtle kita siap untuk mulai menggambar pada canvas.

Pada baris ke 5-7, kita memerintahkan objek

import turtle
wn = turtle.Screen()               # Atur window dan atributnya
wn.bgcolor("lightgreen")
wn.title("Tess & Alex")

tess = turtle.Turtle()             # Buat objek tess dan atur beberapa atribut
tess.color("hotpink")
tess.pensize(5)

alex = turtle.Turtle()             # Buat objek alex

tess.forward(80)                   # Suruh tess menggambar segitiga sama sisi
tess.left(120)
tess.forward(80)
tess.left(120)
tess.forward(80)
tess.left(120)                     # Selesaikan segitiganya

tess.right(180)                    # Suruh tess berbalik
tess.forward(80)                   # Pindahkan dia menjauh dari posisi semula

alex.forward(50)                   # Suruh alex menggambar kotak
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)

wn.mainloop()
2untuk bergerak, dan untuk berbelok. Kita melakukannya dengan cara memanggil (meng-invoke), atau mengaktifkan, metode yang dimiliki
import turtle
wn = turtle.Screen()               # Atur window dan atributnya
wn.bgcolor("lightgreen")
wn.title("Tess & Alex")

tess = turtle.Turtle()             # Buat objek tess dan atur beberapa atribut
tess.color("hotpink")
tess.pensize(5)

alex = turtle.Turtle()             # Buat objek alex

tess.forward(80)                   # Suruh tess menggambar segitiga sama sisi
tess.left(120)
tess.forward(80)
tess.left(120)
tess.forward(80)
tess.left(120)                     # Selesaikan segitiganya

tess.right(180)                    # Suruh tess berbalik
tess.forward(80)                   # Pindahkan dia menjauh dari posisi semula

alex.forward(50)                   # Suruh alex menggambar kotak
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)

wn.mainloop()
2-- metode merupakan instruksi-intruksi bagaimana cara merespon yang diketahui oleh semua turtle.

Baris terakhir juga memainkan peran, variabel

import turtle
wn = turtle.Screen()               # Atur window dan atributnya
wn.bgcolor("lightgreen")
wn.title("Tess & Alex")

tess = turtle.Turtle()             # Buat objek tess dan atur beberapa atribut
tess.color("hotpink")
tess.pensize(5)

alex = turtle.Turtle()             # Buat objek alex

tess.forward(80)                   # Suruh tess menggambar segitiga sama sisi
tess.left(120)
tess.forward(80)
tess.left(120)
tess.forward(80)
tess.left(120)                     # Selesaikan segitiganya

tess.right(180)                    # Suruh tess berbalik
tess.forward(80)                   # Pindahkan dia menjauh dari posisi semula

alex.forward(50)                   # Suruh alex menggambar kotak
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)

wn.mainloop()
0merujuk pada jendela yang terlihat diatas. Ketika kita memanggil metode
import turtle
wn = turtle.Screen()               # Atur window dan atributnya
wn.bgcolor("lightgreen")
wn.title("Tess & Alex")

tess = turtle.Turtle()             # Buat objek tess dan atur beberapa atribut
tess.color("hotpink")
tess.pensize(5)

alex = turtle.Turtle()             # Buat objek alex

tess.forward(80)                   # Suruh tess menggambar segitiga sama sisi
tess.left(120)
tess.forward(80)
tess.left(120)
tess.forward(80)
tess.left(120)                     # Selesaikan segitiganya

tess.right(180)                    # Suruh tess berbalik
tess.forward(80)                   # Pindahkan dia menjauh dari posisi semula

alex.forward(50)                   # Suruh alex menggambar kotak
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)

wn.mainloop()
6nya, ia akan memasuki kondisi dimana ia akan menunggu even (seperti penekanan tombol, atau pergerakan mouse dan klik). Programnya akan berhenti ketika pengguna menutup windownya.

Sebuah objek bisa punya berbagai metode -- atau simpelnya hal yang bisa mereka lakukan -- dan juga bisa punya atribut (attribute)-- (kadang dinamakan juga dengan properti atau sifat). Contohnya, setiap turtle punya atribut color. Pemanggilan metode seperti

import turtle
wn = turtle.Screen()               # Atur window dan atributnya
wn.bgcolor("lightgreen")
wn.title("Tess & Alex")

tess = turtle.Turtle()             # Buat objek tess dan atur beberapa atribut
tess.color("hotpink")
tess.pensize(5)

alex = turtle.Turtle()             # Buat objek alex

tess.forward(80)                   # Suruh tess menggambar segitiga sama sisi
tess.left(120)
tess.forward(80)
tess.left(120)
tess.forward(80)
tess.left(120)                     # Selesaikan segitiganya

tess.right(180)                    # Suruh tess berbalik
tess.forward(80)                   # Pindahkan dia menjauh dari posisi semula

alex.forward(50)                   # Suruh alex menggambar kotak
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)

wn.mainloop()
7 akan membuat
import turtle
wn = turtle.Screen()               # Atur window dan atributnya
wn.bgcolor("lightgreen")
wn.title("Tess & Alex")

tess = turtle.Turtle()             # Buat objek tess dan atur beberapa atribut
tess.color("hotpink")
tess.pensize(5)

alex = turtle.Turtle()             # Buat objek alex

tess.forward(80)                   # Suruh tess menggambar segitiga sama sisi
tess.left(120)
tess.forward(80)
tess.left(120)
tess.forward(80)
tess.left(120)                     # Selesaikan segitiganya

tess.right(180)                    # Suruh tess berbalik
tess.forward(80)                   # Pindahkan dia menjauh dari posisi semula

alex.forward(50)                   # Suruh alex menggambar kotak
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)

wn.mainloop()
2berwarna merah, dan gambarnya juga menjadi merah. (Ingat kata color ditulis dalam gaya bahasa Inggris Amerika!)

Warna turtle, lebar pensilnya, posisinya terhadap jendela, kearah mana ia mengarah, dan yang lainnya merupakan bagian dari kondisinya sekarang (current state). Begitu pula dengan objek window/jendela yang memiliki warna latar, dan beberapa teks pada bar judul, ukuran dan posisinya pada layar. Itu semua adalah bagian dari kondisi objek window.

Ada sangat banyak metode yang memungkinkan kita untuk memodifikasi objek turtle dan window. Kita hanya akan memperlihatkan beberapa saja. Pada program ini kita hanya mengomentari baris selain baris yang sudah kita jelaskan pada contoh sebelumnya (dan kali ini kita menggunakan nama variabel yang berbeda untuk turtlenya):

import turtle
wn = turtle.Screen()
wn.bgcolor("lightgreen")          # Atur warna latar window
wn.title("Halo, Tess !")          # Atur judul window

tess = turtle.Turtle()
tess.color("blue")                # Suruh tess untuk merubah warnanya
tess.pensize(3)                   # Suruh tess untuk mengatur lebar pensilnya

tess.forward(50)
tess.left(120)
tess.forward(50)

wn.mainloop()

Ketika kita menjalankan programnya, window baru akan muncul, dan akan tetap demikian hingga kita mengeluarkannya.

Python Turtle Example 2.png

Cara menggunakan turtle python

Kembangkan Program Ini

  1. Modifikasi program ini jadi ketika ia membuat windownya, ia akan meminta pengguna untuk memasukan warna latar yang diinginkan. Data yang dimasukan pengguna harusnya disimpan menggunakan variabel, dan akan mengubah warna latarnya sesuai dengan yang diinginkan oleh pengguna. (Petunjuk: Kamu bisa mencari daftar nama warna yang diperbolehkan disini . Disana juga tersedia nama warna yang tidak umum seperti "peach puff" dan "HotPink".)
  2. Lakukan perubahan yang sama juga pada warnanya, ketika dijalankan akan mengatur warna
    import turtle
    wn = turtle.Screen()               # Atur window dan atributnya
    wn.bgcolor("lightgreen")
    wn.title("Tess & Alex")
    
    tess = turtle.Turtle()             # Buat objek tess dan atur beberapa atribut
    tess.color("hotpink")
    tess.pensize(5)
    
    alex = turtle.Turtle()             # Buat objek alex
    
    tess.forward(80)                   # Suruh tess menggambar segitiga sama sisi
    tess.left(120)
    tess.forward(80)
    tess.left(120)
    tess.forward(80)
    tess.left(120)                     # Selesaikan segitiganya
    
    tess.right(180)                    # Suruh tess berbalik
    tess.forward(80)                   # Pindahkan dia menjauh dari posisi semula
    
    alex.forward(50)                   # Suruh alex menggambar kotak
    alex.left(90)
    alex.forward(50)
    alex.left(90)
    alex.forward(50)
    alex.left(90)
    alex.forward(50)
    alex.left(90)
    
    wn.mainloop()
    
    9.
  3. Lakukan perubahan yang sama juga pada lebar pensilnya. Petunjuk: hasil dari dialog dengan pengguna akan mengembalikan data bertipe string, sementara metode
    for f in ["Rendi", "Fika", "Laras", "Chiko", "Radit", "Dinda", "Mayke"]:
         undangan = "Hai " + f + ". Aku ngadain pesta hari Sabtu nanti, tolong datang ya!"
         print(undangan)
    #kode lain bisa mengikuti dari sini ...
    
    0 memerlukan data bertipe int. Jadi kamu akan perlu melakukan konversi untuk bisa mengirim data tersebut ke
    for f in ["Rendi", "Fika", "Laras", "Chiko", "Radit", "Dinda", "Mayke"]:
         undangan = "Hai " + f + ". Aku ngadain pesta hari Sabtu nanti, tolong datang ya!"
         print(undangan)
    #kode lain bisa mengikuti dari sini ...
    
    1.

3.2. Instan - Kawanan Penyu (turtle)

Sama halnya dengan kita bisa punya banyak integer dalam program, kita juga bisa punya banyak turtle. Masing-masing dari mereka dinamakan sebagai instan (instance). Setiap instan memiliki atribut dan metode mereka sendiri -- jadi

import turtle
wn = turtle.Screen()               # Atur window dan atributnya
wn.bgcolor("lightgreen")
wn.title("Tess & Alex")

tess = turtle.Turtle()             # Buat objek tess dan atur beberapa atribut
tess.color("hotpink")
tess.pensize(5)

alex = turtle.Turtle()             # Buat objek alex

tess.forward(80)                   # Suruh tess menggambar segitiga sama sisi
tess.left(120)
tess.forward(80)
tess.left(120)
tess.forward(80)
tess.left(120)                     # Selesaikan segitiganya

tess.right(180)                    # Suruh tess berbalik
tess.forward(80)                   # Pindahkan dia menjauh dari posisi semula

alex.forward(50)                   # Suruh alex menggambar kotak
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)

wn.mainloop()
2 mungkin menggambar dengan pensil hitam tipis pada posisi tertentu, sementara
import turtle
wn = turtle.Screen()               # Atur window dan atributnya
wn.bgcolor("lightgreen")
wn.title("Tess & Alex")

tess = turtle.Turtle()             # Buat objek tess dan atur beberapa atribut
tess.color("hotpink")
tess.pensize(5)

alex = turtle.Turtle()             # Buat objek alex

tess.forward(80)                   # Suruh tess menggambar segitiga sama sisi
tess.left(120)
tess.forward(80)
tess.left(120)
tess.forward(80)
tess.left(120)                     # Selesaikan segitiganya

tess.right(180)                    # Suruh tess berbalik
tess.forward(80)                   # Pindahkan dia menjauh dari posisi semula

alex.forward(50)                   # Suruh alex menggambar kotak
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)

wn.mainloop()
9menggambar dengan arahnya sendiri dengan pensil tebal berwarna pink.

import turtle
wn = turtle.Screen()               # Atur window dan atributnya
wn.bgcolor("lightgreen")
wn.title("Tess & Alex")

tess = turtle.Turtle()             # Buat objek tess dan atur beberapa atribut
tess.color("hotpink")
tess.pensize(5)

alex = turtle.Turtle()             # Buat objek alex

tess.forward(80)                   # Suruh tess menggambar segitiga sama sisi
tess.left(120)
tess.forward(80)
tess.left(120)
tess.forward(80)
tess.left(120)                     # Selesaikan segitiganya

tess.right(180)                    # Suruh tess berbalik
tess.forward(80)                   # Pindahkan dia menjauh dari posisi semula

alex.forward(50)                   # Suruh alex menggambar kotak
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)

wn.mainloop()

Inilah yang akan terjadi ketika

import turtle
wn = turtle.Screen()               # Atur window dan atributnya
wn.bgcolor("lightgreen")
wn.title("Tess & Alex")

tess = turtle.Turtle()             # Buat objek tess dan atur beberapa atribut
tess.color("hotpink")
tess.pensize(5)

alex = turtle.Turtle()             # Buat objek alex

tess.forward(80)                   # Suruh tess menggambar segitiga sama sisi
tess.left(120)
tess.forward(80)
tess.left(120)
tess.forward(80)
tess.left(120)                     # Selesaikan segitiganya

tess.right(180)                    # Suruh tess berbalik
tess.forward(80)                   # Pindahkan dia menjauh dari posisi semula

alex.forward(50)                   # Suruh alex menggambar kotak
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)

wn.mainloop()
2menyelesaikan kotaknya, dan
import turtle
wn = turtle.Screen()               # Atur window dan atributnya
wn.bgcolor("lightgreen")
wn.title("Tess & Alex")

tess = turtle.Turtle()             # Buat objek tess dan atur beberapa atribut
tess.color("hotpink")
tess.pensize(5)

alex = turtle.Turtle()             # Buat objek alex

tess.forward(80)                   # Suruh tess menggambar segitiga sama sisi
tess.left(120)
tess.forward(80)
tess.left(120)
tess.forward(80)
tess.left(120)                     # Selesaikan segitiganya

tess.right(180)                    # Suruh tess berbalik
tess.forward(80)                   # Pindahkan dia menjauh dari posisi semula

alex.forward(50)                   # Suruh alex menggambar kotak
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)

wn.mainloop()
9menyelesaikan segitiganya.

Python Turtle Example 3.png

Cara menggunakan turtle python

Berikut ini beberapa pengamatan dengan Bagaimana cara berpikir layaknya seorang ilmuan komputer:

  • Dalam satu lingkaran penuh terdapat 360 derajat. Jika kita menambahkan semua putaran yang dibuat turtle, tak peduli langkah apa yang terjadi antara putaran satu dengan lainnya, kita bisa dengan mudah mengetahui jika mereka bertambah hingga sekian kali lipat dari 360 derajat. Ini membuktikan bahwa
    import turtle
    wn = turtle.Screen()               # Atur window dan atributnya
    wn.bgcolor("lightgreen")
    wn.title("Tess & Alex")
    
    tess = turtle.Turtle()             # Buat objek tess dan atur beberapa atribut
    tess.color("hotpink")
    tess.pensize(5)
    
    alex = turtle.Turtle()             # Buat objek alex
    
    tess.forward(80)                   # Suruh tess menggambar segitiga sama sisi
    tess.left(120)
    tess.forward(80)
    tess.left(120)
    tess.forward(80)
    tess.left(120)                     # Selesaikan segitiganya
    
    tess.right(180)                    # Suruh tess berbalik
    tess.forward(80)                   # Pindahkan dia menjauh dari posisi semula
    
    alex.forward(50)                   # Suruh alex menggambar kotak
    alex.left(90)
    alex.forward(50)
    alex.left(90)
    alex.forward(50)
    alex.left(90)
    alex.forward(50)
    alex.left(90)
    
    wn.mainloop()
    
    2menghadap ke posisi persis dimana ia pertama kali dibuat. (Konvensi geometri adalah 0 derajat menghadap ke Timur, dan itu juga terjadi pada kasus ini.)
  • Kita bisa saja melewatkan putaran terakhir untuk
    import turtle
    wn = turtle.Screen()               # Atur window dan atributnya
    wn.bgcolor("lightgreen")
    wn.title("Tess & Alex")
    
    tess = turtle.Turtle()             # Buat objek tess dan atur beberapa atribut
    tess.color("hotpink")
    tess.pensize(5)
    
    alex = turtle.Turtle()             # Buat objek alex
    
    tess.forward(80)                   # Suruh tess menggambar segitiga sama sisi
    tess.left(120)
    tess.forward(80)
    tess.left(120)
    tess.forward(80)
    tess.left(120)                     # Selesaikan segitiganya
    
    tess.right(180)                    # Suruh tess berbalik
    tess.forward(80)                   # Pindahkan dia menjauh dari posisi semula
    
    alex.forward(50)                   # Suruh alex menggambar kotak
    alex.left(90)
    alex.forward(50)
    alex.left(90)
    alex.forward(50)
    alex.left(90)
    alex.forward(50)
    alex.left(90)
    
    wn.mainloop()
    
    2, tapi itu tidak akan memuaskan. Jika kita diminta untuk menggambar suatu bentuk tertutup seperti kotak, atau sebuah lingkaran, maka alangkah baiknya agar kita menyelesaikan semua putaran dan mengembalikan si turtle ke posisinya semula, menghadap ke arah yang sama ketika ia pertama kali dimulai. Dengan begitu, penalaran mengenai programnya dan penyusunan potongan kodenya menjadi program yang lebih besar akan sangat jauh lebih mudah bagi kita manusia.
  • Kita melakukan hal yang sama terhadap
    import turtle
    wn = turtle.Screen()               # Atur window dan atributnya
    wn.bgcolor("lightgreen")
    wn.title("Tess & Alex")
    
    tess = turtle.Turtle()             # Buat objek tess dan atur beberapa atribut
    tess.color("hotpink")
    tess.pensize(5)
    
    alex = turtle.Turtle()             # Buat objek alex
    
    tess.forward(80)                   # Suruh tess menggambar segitiga sama sisi
    tess.left(120)
    tess.forward(80)
    tess.left(120)
    tess.forward(80)
    tess.left(120)                     # Selesaikan segitiganya
    
    tess.right(180)                    # Suruh tess berbalik
    tess.forward(80)                   # Pindahkan dia menjauh dari posisi semula
    
    alex.forward(50)                   # Suruh alex menggambar kotak
    alex.left(90)
    alex.forward(50)
    alex.left(90)
    alex.forward(50)
    alex.left(90)
    alex.forward(50)
    alex.left(90)
    
    wn.mainloop()
    
    9: ia menggambar segitiganya, dan berputar hingga 360 derajat penuh. Kemudian kita memutar balik dan memindahkannya ke samping. Bahkan baris 18 yang kosong merupakan petunjuk tentang bagaimana mental seorang programmer bekerja dalam penyusunan potongan-potongan kode: dalam gambaran besarnya, pergerakan
    import turtle
    wn = turtle.Screen()               # Atur window dan atributnya
    wn.bgcolor("lightgreen")
    wn.title("Tess & Alex")
    
    tess = turtle.Turtle()             # Buat objek tess dan atur beberapa atribut
    tess.color("hotpink")
    tess.pensize(5)
    
    alex = turtle.Turtle()             # Buat objek alex
    
    tess.forward(80)                   # Suruh tess menggambar segitiga sama sisi
    tess.left(120)
    tess.forward(80)
    tess.left(120)
    tess.forward(80)
    tess.left(120)                     # Selesaikan segitiganya
    
    tess.right(180)                    # Suruh tess berbalik
    tess.forward(80)                   # Pindahkan dia menjauh dari posisi semula
    
    alex.forward(50)                   # Suruh alex menggambar kotak
    alex.left(90)
    alex.forward(50)
    alex.left(90)
    alex.forward(50)
    alex.left(90)
    alex.forward(50)
    alex.left(90)
    
    wn.mainloop()
    
    9 dipotong sebagai "gambar segitiganya" (baris 12-17) dan kemudian "pergi menjauh dari titik awal" (baris 19 dan 20).
  • Inti dari penggunaan komentar adalah untuk mencatat mental pemotongan kita, dan gambaran besarnya. Mereka tidak selalu eksplisit (gamblang) dalam kode.
  • Dan, eh heh... dua ekor turtle tentu belum memadai untuk disebut sebagai sebuah kawanan. Tapi ide pentingnya adalah bahwa modul turtle memberikan kita sejenis pabrik yang memungkinkan kita untuk membuat turtle sebanyak apapun yang kita perlu.

3.3. Menggunakan Perulangan For (for loop)

Ketika kita menggambar kotaknya, itu terasa cukup membosankan. Kita mesti dengan gamblang mengulang langkah-langkah yang sama untuk menggerakan dan membelokan sebanyak empat kali. Jika kita menggambar heksagonal (segi enam), atau sebuah oktogonal (segi delapan), atau bahkan sebuah poligonal dengan sisi sebaganyak 42, tentu akan jadi sangat buruk.

Jadi sebuah blok bangunan dasar dari bahasa pemrograman apapun adalah untuk bisa melakukan perulangan beberapa kode, lagi dan lagi.

Perulangan for pada Python menyelesaikan masalah ini untuk kita. Katakanlah kita punya beberapa teman, dan kita ingin mengirimi mereka sebuah email undangan untuk datang ke pesta kita. Untuk sekarang kita belum tahu bagaimana cara mengirim email , jadi saat ini kita hanya akan mencetak pesannya untuk setiap teman:

for f in ["Rendi", "Fika", "Laras", "Chiko", "Radit", "Dinda", "Mayke"]:
     undangan = "Hai " + f + ". Aku ngadain pesta hari Sabtu nanti, tolong datang ya!"
     print(undangan)
#kode lain bisa mengikuti dari sini ...

Ketika kita menjalankannya, outputnya akan seperti ini:

Hai Rendi. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
Hai Fika. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
Hai Laras. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
Hai Chiko. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
Hai Radit. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
Hai Dinda. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
Hai Mayke. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
  • Variabel
    Hai Rendi. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Fika. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Laras. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Chiko. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Radit. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Dinda. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Mayke. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    0 pada pernyataan
    Hai Rendi. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Fika. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Laras. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Chiko. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Radit. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Dinda. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Mayke. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    1 pada baris 1 dinamakan variabel loop. Kita juga bisa menamainya dengan nama lain selain
    Hai Rendi. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Fika. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Laras. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Chiko. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Radit. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Dinda. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Mayke. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    0.
  • Baris 2 dan 3 adalah loop body. Loop body selalu bertakuk (berindentasi / menjorok ke dalam). Indentasinya menentukan dengan tepat apa pernyataan yang ada "di dalam body dari loop".
  • Pada setiap iterasi atau pass dari loop, pertama sebuah pengecekan akan dilakukan untuk memastikan jika masih ada item lain yang mesti diproses. Jika tidak ada (ini dinamakan dengan terminating condition dari loop), loop pun akan diakhiri. Eksekusi program berlanjut ke pernyataan berikutnya setelah loop body, (misal, pada kasus ini pernyataan di bawah komentar pada baris ke 4).
  • Jika terdapat item yang masih harus diproses, variabel loop akan diperbaharui untuk merujuk ke item selanjutnya dalan list. Ini berarti, pada kasus ini, body dari loop dieksekusi sebanyak 7 kali, dan setiap kali variabel
    Hai Rendi. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Fika. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Laras. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Chiko. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Radit. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Dinda. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Mayke. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    0 akan merujuk pada teman yang berbeda.
  • Pada akhir dari setiap eksekusi body dari loop, Python kembali ke pernyataan for, untuk melihat jika ada item lain yang mesti ditangani, dan untuk memberikan nilai berikutnya pada variabel
    Hai Rendi. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Fika. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Laras. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Chiko. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Radit. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Dinda. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Mayke. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    0.

3.4. Alur Eksekusi dari Perulangan For

Ketika program dieksekusi, interpreter selalu menyimpan trek / jalur dari setiap pernyataan yang akan dieksekusi. Kita menamai ini sebagai control flow (kontrol aliran), dari flow of execution (aliran dari eksekusi) program. Ketika manusia berhitung atau menjalankan program, mereka sering menggunakan jari mereka untuk merujuk ke pernyataan selanjutnya. Jadi kita juga bisa mengimajinasikan control flow sebagai "gerakan dari jarinya Python".

Control flow hingga kini masih ketat bergerak dari atas ke bawah, satu pernyataan untuk satu hentakan. Tapi perulangan

Hai Rendi. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
Hai Fika. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
Hai Laras. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
Hai Chiko. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
Hai Radit. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
Hai Dinda. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
Hai Mayke. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
1 merubah ketentuan ini.

Flowchart dari perulangan for

Control flow umumnya mudah untuk divisualisasikan dan dimengerti jika kiga menggunakan flowchart. Gambar di bawah memperlihatkan langkah tepat dan logika dari bagaimana pernyataan

Hai Rendi. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
Hai Fika. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
Hai Laras. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
Hai Chiko. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
Hai Radit. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
Hai Dinda. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
Hai Mayke. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
1 dieksekusi.

alur dari perulangan for.png

Cara menggunakan turtle python

3.5. Perulangan (loop) Menyederhanakan Program Turtle Kita

Untuk menggambar sebuah kotak kita harus melakukan hal yang sama sebanyak empat kali -- pindahkan turtlenya, dan belokan. Kita sebelumnya menggunakan 8 baris untuk membuat alex menggambar keempat sisi dari sebuah persegi, kode berikut juga melakukan hal yang sama persis dengan contoh sebelumnya itu, tapi bedanya kodenya menjadi lebih singkat hanya menggunakan tiga baris kode:

for i in [0,1,2,3]:
      alex.forward(50)
      alex.left(90)

Beberapa observasi:

  • Sementara "mengurangi beberapa baris kode" bisa memudahkan, itu bukan hal yang kita utamakan disini. Apa yang lebih penting adalah bahwa kita telah menemukan "pola berulang" dari pernyataan-pernyataan, dan mengorganisir ulang program kita untuk mengulang pola tersebut. Menemukan bilahannya dan dengan suatu cara menjadikan program kita tersusun dari bilahan-bilahan tersebut merupakan skil yang sangat penting dalam pola pikir komputasional.
  • Nilai [0,1,2,3] digunakan agar loop body-nya dieksekusi sebanyak 4 kali. Kita bisa menggunakan nilai apapun yang jumlahnya empat, tapi nilai itu merupakan yang paling sering digunakan. Faktanya, nilai seperti itu sangat populer sehingga Python memberikan kita objek spesial built-in untuk tujuan itu yang dinamakan
    Hai Rendi. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Fika. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Laras. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Chiko. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Radit. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Dinda. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Mayke. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    7 :
for i in range(4):
     # Eksekusi body dengan i = 0, lalu 1, lalu 2, kemudian 3
for x in range(10):
     # Set nilai x ke ... [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  • Ilmuan komputer suka memulai dari 0!
  • Hai Rendi. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Fika. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Laras. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Chiko. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Radit. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Dinda. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Mayke. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    7bisa menyediakan untaian nilai yang berurutan ke variabel loop pada perulangan
    Hai Rendi. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Fika. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Laras. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Chiko. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Radit. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Dinda. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Mayke. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    1. Nilai yang disediakan
    Hai Rendi. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Fika. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Laras. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Chiko. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Radit. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Dinda. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    Hai Mayke. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
    7akan dimulai dari 0, sehingga dalam kasus ini tidak sampai ke 4 atau 10.
  • Trik kecil kita sebelumnya untuk memastikan kalau alex melakukan putaran final untuk menyelesaikan putaran 360 derajat telah terlunasi: jika kita tidak melakukannya, maka kita tentu tidak bisa menggunakan perulangan / loop untuk keempat sisi dari kotak itu. Ini tentu menjadi "kasus spesial", yang berbeda dari sisi-sisi lainnya. Ketika dimungkinkan, kita tentu lebih memilih untuk membuat kode kita masuk / klop dengan pola umum, ketimbang harus membuat kasus tertentu yang sifatnya khusus.

Jadi untuk melakukan perulangan sebanyak empat kali, seorang programer Python yang baik akan melakukan ini:

for i in range(4):
     alex.forward(50)
     alex.left(90)

Sekarang tentunya kamu sudah tahu bagaimana cara merubah program kita yang sebelumnya, jadi si

import turtle
wn = turtle.Screen()               # Atur window dan atributnya
wn.bgcolor("lightgreen")
wn.title("Tess & Alex")

tess = turtle.Turtle()             # Buat objek tess dan atur beberapa atribut
tess.color("hotpink")
tess.pensize(5)

alex = turtle.Turtle()             # Buat objek alex

tess.forward(80)                   # Suruh tess menggambar segitiga sama sisi
tess.left(120)
tess.forward(80)
tess.left(120)
tess.forward(80)
tess.left(120)                     # Selesaikan segitiganya

tess.right(180)                    # Suruh tess berbalik
tess.forward(80)                   # Pindahkan dia menjauh dari posisi semula

alex.forward(50)                   # Suruh alex menggambar kotak
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)

wn.mainloop()
9juga bisa menggunakan perulangan for untuk menggambar segitiga sama sisinya.

Tapi sekarang, apa yang akan terjadi jika kita membuat perubahan seperti ini?

for c in ["yellow", "red", "purple", "blue"]:
     alex.color(c)
     alex.forward(50)
     alex.left(90)

Sebuah variabel juga bisa diberikan nilai yang berbentuk list. Jadi list-list juga bisa digunakan dalam situasi yang lebih umum, tidak hanya pada perulangan

Hai Rendi. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
Hai Fika. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
Hai Laras. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
Hai Chiko. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
Hai Radit. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
Hai Dinda. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
Hai Mayke. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
1. Kode diatas bisa ditulis ulang menjadi seperti ini:

# Berikan variabel sebuah nilai berbentuk list
clrs = ["yellow", "red", "purple", "blue"]
for c in clrs:
     alex.color(c)
     alex.forward(50)
     alex.left(90)

3.6. Beberapa Metode dan Trik Lain Dari Turtle

Metode yang dimiliki turtle bisa menggunakan sudut atau jarak negatif. Jadi

for i in [0,1,2,3]:
      alex.forward(50)
      alex.left(90)
3 akan menyebabkan
import turtle
wn = turtle.Screen()               # Atur window dan atributnya
wn.bgcolor("lightgreen")
wn.title("Tess & Alex")

tess = turtle.Turtle()             # Buat objek tess dan atur beberapa atribut
tess.color("hotpink")
tess.pensize(5)

alex = turtle.Turtle()             # Buat objek alex

tess.forward(80)                   # Suruh tess menggambar segitiga sama sisi
tess.left(120)
tess.forward(80)
tess.left(120)
tess.forward(80)
tess.left(120)                     # Selesaikan segitiganya

tess.right(180)                    # Suruh tess berbalik
tess.forward(80)                   # Pindahkan dia menjauh dari posisi semula

alex.forward(50)                   # Suruh alex menggambar kotak
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)

wn.mainloop()
9mundur, dan
for i in [0,1,2,3]:
      alex.forward(50)
      alex.left(90)
5 akan memutarnya ke kanan. Sebagai tambahan, karena sudut lingkaran besarnya 360 derajat, maka memutar 30 ke kiri akan menjadikan tess menghadap ke arah yang sama jika kita memutarnya 330 derajat ke kanan! (Pada layar animasi akan terlihat berbeda, tapi meskipun demikian - Kamu tetap akan dapat mengetahui apakah
for i in [0,1,2,3]:
      alex.forward(50)
      alex.left(90)
6berputar searah jarum jam atau berlawanan arah jarum jam!

Hal ini menunjukan kalau kita tidak terlalu memerlukan metode putar kiri dan putar kanan -- kita bisa jadi minimalis, dan hanya menggunakan satu metode saja. Ada juga metode

for i in [0,1,2,3]:
      alex.forward(50)
      alex.left(90)
7untuk mundur. (Jika kamu punya style kutu buku, kamu mungkin lebih menikmati menggunakan
for i in [0,1,2,3]:
      alex.forward(50)
      alex.left(90)
8 untuk membuat alex bergerak maju!)

Inti sari berpikir layaknya seorang ilmuan komputer adalah untuk memahami lebih dalam mengenai struktur dan hubungan yang kaya dalam bidang yang kita geluti. Jadi merevisi beberapa fakta dasar tentang geometri dan nomor baris, dan memahami hubungan antara nilai jarak dan sudut dari kiri, kanan, mundur, maju, negatif, dan positif adalah awal yang baik jika kita ingin bermain dengan turtle.

Pensil yang dimiliki turtle bisa digunakan dan diletakan. Ini memungkinkan kita untuk memindahkan turtle ke tempat lain tanpa harus menggambar sebuah garis. Metodenya adalah:

import turtle
wn = turtle.Screen()
wn.bgcolor("lightgreen")          # Atur warna latar window
wn.title("Halo, Tess !")          # Atur judul window

tess = turtle.Turtle()
tess.color("blue")                # Suruh tess untuk merubah warnanya
tess.pensize(3)                   # Suruh tess untuk mengatur lebar pensilnya

tess.forward(50)
tess.left(120)
tess.forward(50)

wn.mainloop()
0

Setiap turtle bisa memiliki bentuknya sendiri. Beberapa yang memang sudah tersedia "dari sananya" adalah

for i in [0,1,2,3]:
      alex.forward(50)
      alex.left(90)
9,
for i in range(4):
     # Eksekusi body dengan i = 0, lalu 1, lalu 2, kemudian 3
for x in range(10):
     # Set nilai x ke ... [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
0,
for i in range(4):
     # Eksekusi body dengan i = 0, lalu 1, lalu 2, kemudian 3
for x in range(10):
     # Set nilai x ke ... [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
1,
for i in range(4):
     # Eksekusi body dengan i = 0, lalu 1, lalu 2, kemudian 3
for x in range(10):
     # Set nilai x ke ... [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
2,
for i in range(4):
     # Eksekusi body dengan i = 0, lalu 1, lalu 2, kemudian 3
for x in range(10):
     # Set nilai x ke ... [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
3,
for i in range(4):
     # Eksekusi body dengan i = 0, lalu 1, lalu 2, kemudian 3
for x in range(10):
     # Set nilai x ke ... [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
4,
import turtle
wn = turtle.Screen()
wn.bgcolor("lightgreen")          # Atur warna latar window
wn.title("Halo, Tess !")          # Atur judul window

tess = turtle.Turtle()
tess.color("blue")                # Suruh tess untuk merubah warnanya
tess.pensize(3)                   # Suruh tess untuk mengatur lebar pensilnya

tess.forward(50)
tess.left(120)
tess.forward(50)

wn.mainloop()
5.

import turtle
wn = turtle.Screen()
wn.bgcolor("lightgreen")          # Atur warna latar window
wn.title("Halo, Tess !")          # Atur judul window

tess = turtle.Turtle()
tess.color("blue")                # Suruh tess untuk merubah warnanya
tess.pensize(3)                   # Suruh tess untuk mengatur lebar pensilnya

tess.forward(50)
tess.left(120)
tess.forward(50)

wn.mainloop()
1

Python Turtle Shape.png

Cara menggunakan turtle python

Kita bisa mempercepat atau memperlambar kecepatan animasi turtle. (Animasi mengendalikan seberapa cepat turtle untuk berbelok dan bergerak maju). Pengaturan kecepatan bisa diatur antara 1 (paling lambat) hingga 10 (tercepat). Tapi jika kita mengeset kecepatannya ke 9, itu memiliki arti yang spesial -- matikan animasi dan begerak secepat mungkin.

import turtle
wn = turtle.Screen()
wn.bgcolor("lightgreen")          # Atur warna latar window
wn.title("Halo, Tess !")          # Atur judul window

tess = turtle.Turtle()
tess.color("blue")                # Suruh tess untuk merubah warnanya
tess.pensize(3)                   # Suruh tess untuk mengatur lebar pensilnya

tess.forward(50)
tess.left(120)
tess.forward(50)

wn.mainloop()
2

Seekor turtle bisa "mengecap" jejak kakinya ke kanvas, dan ini akan tetap terlihat setelah si turtle bergerak ke tempat lain. Pengecapan masih terjadi, bahkan ketika pensilnya diangkat/diletakan.

Mari coba beberapa contoh yang memperlihatkan fitur-fitur baru tersebut:

import turtle
wn = turtle.Screen()
wn.bgcolor("lightgreen")          # Atur warna latar window
wn.title("Halo, Tess !")          # Atur judul window

tess = turtle.Turtle()
tess.color("blue")                # Suruh tess untuk merubah warnanya
tess.pensize(3)                   # Suruh tess untuk mengatur lebar pensilnya

tess.forward(50)
tess.left(120)
tess.forward(50)

wn.mainloop()
3

Python Turtle Shape Animation.png

Cara menggunakan turtle python

Hehey mari pikir sejenak! Berapa kalikah body dari loop dieksekusi? Berapa banyak gambar turtle yang kita lihat di layar? Semua kecuali satu bentuk yang kita lihat di gambar adalah jejak kaki yang dibuat oleh

for i in range(4):
     # Eksekusi body dengan i = 0, lalu 1, lalu 2, kemudian 3
for x in range(10):
     # Set nilai x ke ... [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
6. Tapi programnya masih hanya punya satu instan turtle -- bisakah kamu menemukan yang mana
import turtle
wn = turtle.Screen()               # Atur window dan atributnya
wn.bgcolor("lightgreen")
wn.title("Tess & Alex")

tess = turtle.Turtle()             # Buat objek tess dan atur beberapa atribut
tess.color("hotpink")
tess.pensize(5)

alex = turtle.Turtle()             # Buat objek alex

tess.forward(80)                   # Suruh tess menggambar segitiga sama sisi
tess.left(120)
tess.forward(80)
tess.left(120)
tess.forward(80)
tess.left(120)                     # Selesaikan segitiganya

tess.right(180)                    # Suruh tess berbalik
tess.forward(80)                   # Pindahkan dia menjauh dari posisi semula

alex.forward(50)                   # Suruh alex menggambar kotak
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)

wn.mainloop()
9yang asli? (Petunjuk: jika kamu tidak yakin, tulis sebaris kode baru setelah perulangan
Hai Rendi. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
Hai Fika. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
Hai Laras. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
Hai Chiko. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
Hai Radit. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
Hai Dinda. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
Hai Mayke. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
1untuk mengganti warna
import turtle
wn = turtle.Screen()               # Atur window dan atributnya
wn.bgcolor("lightgreen")
wn.title("Tess & Alex")

tess = turtle.Turtle()             # Buat objek tess dan atur beberapa atribut
tess.color("hotpink")
tess.pensize(5)

alex = turtle.Turtle()             # Buat objek alex

tess.forward(80)                   # Suruh tess menggambar segitiga sama sisi
tess.left(120)
tess.forward(80)
tess.left(120)
tess.forward(80)
tess.left(120)                     # Selesaikan segitiganya

tess.right(180)                    # Suruh tess berbalik
tess.forward(80)                   # Pindahkan dia menjauh dari posisi semula

alex.forward(50)                   # Suruh alex menggambar kotak
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)

wn.mainloop()
9, atau gunakan pensilnya untuk menggambar garis, atau ganti bentuknya, dll.)

3.7. Glosarium

attribute (atribut)

Beberapa kondisi atau nilai yang dimiliki oleh objek tertentu. Contohnya,

import turtle
wn = turtle.Screen()               # Atur window dan atributnya
wn.bgcolor("lightgreen")
wn.title("Tess & Alex")

tess = turtle.Turtle()             # Buat objek tess dan atur beberapa atribut
tess.color("hotpink")
tess.pensize(5)

alex = turtle.Turtle()             # Buat objek alex

tess.forward(80)                   # Suruh tess menggambar segitiga sama sisi
tess.left(120)
tess.forward(80)
tess.left(120)
tess.forward(80)
tess.left(120)                     # Selesaikan segitiganya

tess.right(180)                    # Suruh tess berbalik
tess.forward(80)                   # Pindahkan dia menjauh dari posisi semula

alex.forward(50)                   # Suruh alex menggambar kotak
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)

wn.mainloop()
9memiliki warna.

canvas

Permukaan di dalam window/jendela dimana proses penggambaran terjadi.

control flow

Lihat flow of execution pada bab berikutnya.

for loop (perulangan for)

Sebuah pernyataan di Python untuk memudahkan dalam melakukan pengulangan pernyataan yang diletakan di dalam body dari perulangan.

loop body

Sejumlah pernyataan yang bersarang di dalam sebuah loop/perulangan. Dikatakan bersarang karena pernyataannya menjorok / bertakuk kedalam di bawah pernyataan loop.

loop variable

Sebuah variabel yang digunakan sebagai bagian dari for loop. Ia diberikan nilai yang berbeda pada setiap iterasi dari perulangan.

instance (instan)

Objek dengan tipe tertentu, atau kelas (class).

import turtle
wn = turtle.Screen()               # Atur window dan atributnya
wn.bgcolor("lightgreen")
wn.title("Tess & Alex")

tess = turtle.Turtle()             # Buat objek tess dan atur beberapa atribut
tess.color("hotpink")
tess.pensize(5)

alex = turtle.Turtle()             # Buat objek alex

tess.forward(80)                   # Suruh tess menggambar segitiga sama sisi
tess.left(120)
tess.forward(80)
tess.left(120)
tess.forward(80)
tess.left(120)                     # Selesaikan segitiganya

tess.right(180)                    # Suruh tess berbalik
tess.forward(80)                   # Pindahkan dia menjauh dari posisi semula

alex.forward(50)                   # Suruh alex menggambar kotak
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)

wn.mainloop()
9dan
import turtle
wn = turtle.Screen()               # Atur window dan atributnya
wn.bgcolor("lightgreen")
wn.title("Tess & Alex")

tess = turtle.Turtle()             # Buat objek tess dan atur beberapa atribut
tess.color("hotpink")
tess.pensize(5)

alex = turtle.Turtle()             # Buat objek alex

tess.forward(80)                   # Suruh tess menggambar segitiga sama sisi
tess.left(120)
tess.forward(80)
tess.left(120)
tess.forward(80)
tess.left(120)                     # Selesaikan segitiganya

tess.right(180)                    # Suruh tess berbalik
tess.forward(80)                   # Pindahkan dia menjauh dari posisi semula

alex.forward(50)                   # Suruh alex menggambar kotak
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)
alex.forward(50)
alex.left(90)

wn.mainloop()
2merupakan instan yang berbeda dari kelas
import turtle
wn = turtle.Screen()
wn.bgcolor("lightgreen")          # Atur warna latar window
wn.title("Halo, Tess !")          # Atur judul window

tess = turtle.Turtle()
tess.color("blue")                # Suruh tess untuk merubah warnanya
tess.pensize(3)                   # Suruh tess untuk mengatur lebar pensilnya

tess.forward(50)
tess.left(120)
tess.forward(50)

wn.mainloop()
6.

method (metode)

Fungsi yang dilampirkan ke sebuah objek. Memanggil atau mengaktifkan metode menyebabkan objek merespon dengan cara tertentu, misal,

for i in range(4):
     alex.forward(50)
     alex.left(90)
4adalah metode ketika kita mengatakan
for i in range(4):
     alex.forward(50)
     alex.left(90)
5.

invoke (panggil)

Sebuah objek punya metode-metode. Kita menggunakan kata kerja invoke dengan maksud mengaktifkan metodenya. Memanggil metode dilakukan dengan menempatkan titik setelah nama metode, dengan beberapa argumen yang dimungkinkan. Jadi

for i in range(4):
     alex.forward(50)
     alex.left(90)
6 berarti meng-invoke / memanggil / mengaktifkan metode
for i in range(4):
     alex.forward(50)
     alex.left(90)
4.

module

File yang berisi definisi dan pernyataan Python yang ditujukan untuk digunakan dalam program Python. Isi dari module dibuat tersedia untuk program lain dengan menggunakan pernyataan

for i in range(4):
     alex.forward(50)
     alex.left(90)
8.

object (objek)

"Sesuatu" yang bisa diacu oleh variabel. Contohnya bisa saja sebuah screen window, atau salah satu turtle yang sudah kita buat.

range

Fungsi built-in di Python untuk membuat serangkaian integer. Umumnya sangat berguna ketika kita perlu membuat for loop yang dieksekusi dalam jumlah tertentu.

terminating condition

Kondisi yang ketika terjadi akan menyebabkan perulangan berhenti mengulang isi body. Pada

Hai Rendi. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
Hai Fika. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
Hai Laras. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
Hai Chiko. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
Hai Radit. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
Hai Dinda. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
Hai Mayke. Aku ngadain pesta hari Sabtu nanti, tolong datang ya!
1loop yang kita lihat di bab ini, terminating condition terjadi ketika tidak ada lagi elemen untuk diberikan nilainya ke loop variabel.