21
Bahasa Phyton 1. Sejarah Bahasa pemrograman ini dibuat oleh Guido van Rossum dari Amsterdam, Belanda. Pada awalnya, motivasi pembuatan bahasa pemrograman ini adalah untuk bahasa skrip tingkat tinggi pada sistem operasi terdistribusi Amoeba. Bahasa pemrograman ini menjadi umum digunakan untuk kalangan engineer seluruh dunia dalam pembuatan perangkat lunaknya, bahkan beberapa perusahaan menggunakan python sebagai pembuat perangkat lunak komersial. Python merupakan bahasa pemrograman yang freeware atau perangkat bebas dalam arti sebenarnya, tidak ada batasan dalam penyalinannya atau mendistribusikannya. Lengkap dengan source codenya, debugger dan profiler, antarmuka yang terkandung di dalamnya untuk pelayanan antarmuka, fungsi sistem, GUI (antarmuka pengguna grafis), dan basis datanya. Python dapat digunakan dalam beberapa sistem operasi, seperti kebanyakan sistem UNIX, PCs (DOS, Windows, OS/2), Macintosh, dan lainnya. Pada kebanyakan sistem operasi linux, bahasa pemrograman ini menjadi standarisasi untuk disertakan dalam paket distribusinya. 2. Aplikasi bahasa phyton Perangkat bantu shell. Tugas-tugas sistem administrator, program baris perintah. Kerja bahasa ekstensi. Antarmuka untuk pustaka C/C++, kustomisasi Pembuatan prototipe secara cepat/pembuatan sistem aplikasi . Prototipe yang dapat dibuang atau sesuai dengan permintaan. Modul berdasarkan bahasa pemrograman. Pengganti dari penulisan parser khusus.

Titip Tugas Python

Embed Size (px)

Citation preview

Page 1: Titip Tugas Python

Bahasa Phyton

1. Sejarah

Bahasa pemrograman ini dibuat oleh Guido van Rossum dari Amsterdam, Belanda. Pada awalnya, motivasi pembuatan bahasa pemrograman ini adalah untuk bahasa skrip tingkat tinggi pada sistem operasi terdistribusi Amoeba. Bahasa pemrograman ini menjadi umum digunakan untuk kalangan engineer seluruh dunia dalam pembuatan perangkat lunaknya, bahkan beberapa perusahaan menggunakan python sebagai pembuat perangkat lunak komersial.

Python merupakan bahasa pemrograman yang freeware atau perangkat bebas dalam arti sebenarnya, tidak ada batasan dalam penyalinannya atau mendistribusikannya. Lengkap dengan source codenya, debugger dan profiler, antarmuka yang terkandung di dalamnya untuk pelayanan antarmuka, fungsi sistem, GUI (antarmuka pengguna grafis), dan basis datanya. Python dapat digunakan dalam beberapa sistem operasi, seperti kebanyakan sistem UNIX, PCs (DOS, Windows, OS/2), Macintosh, dan lainnya. Pada kebanyakan sistem operasi linux, bahasa pemrograman ini menjadi standarisasi untuk disertakan dalam paket distribusinya.

2. Aplikasi bahasa phyton

Perangkat bantu shell. Tugas-tugas sistem administrator, program baris perintah.

Kerja bahasa ekstensi. Antarmuka untuk pustaka C/C++, kustomisasi

Pembuatan prototipe secara cepat/pembuatan sistem aplikasi. Prototipe yang dapat dibuang atau sesuai dengan permintaan.

Modul berdasarkan bahasa pemrograman. Pengganti dari penulisan parser khusus.

Antarmuka pengguna grafis. Penggunaan GUI API sederhana dan canggih.

Pengaksesan basisdata. Penyimpanan objek tetap, antarmuka sistem SQL.

Pemrograman terdistribusi. Penggunaan API mekanisme client/server terintegrasi.

Skrip internet. Skrip CGI, antarmuka HTTP, Aplet WWW, dan lainnya.

Page 2: Titip Tugas Python

Pengenalan IDE Python

1.1 Lingkungan Pengenalan Terpadu (IDE)

Pada pemograman python, ada banyak IDE yang dapat digunakan tetapi pada praktikum kali ini akan digunakan IDE yang sudah disediakan oleh paket python yaitu IDLE. IDLE (Integrated Development Editor) merupakan suatu editor kode program, bantuan interaktif, dan debugging yang digunakan untuk melakukan development program dengan menggunakan bahasa python. Seperti yang dapat dilihat pada gambar 1.1, bahwa IDLE dapat dibagi menjadi dua bagian besar yaitu “Interactive Shell” dan “Teks Editor”. Untuk menjalankan editor IDLE masuk ke menu “All programs Python 2.6 IDLE (Pthon GUI)

1.1.1 Interactive Shell

Interactive shell merupakan fasilitas yang dipunyai oleh bahasa pemrograman yang berjenis intepreter, yaitu bahasa pemrograman yang menterjemahkan satu per satu baris dari kode program untuk dijalankan pada sistem. Pada IDLE, interactive shell digunakan untuk melakukan komputasi secara perbaris atau bisa juga digunakan untuk mencari kesalahan yang timbul pada saat program dijalankan.

Page 3: Titip Tugas Python

1.1.2 Teks Editor

Teks editor pada IDLE digunakan untuk menulis kode program dan melakukan eksekusi kode program tersebut pada interactive shell. Teks editor yang digunakan sudah mendukung auto completion dengan menekan tombol ctrl+spasi sehingga IDLE akan menyarankan semua keyword python yang mungkin akan digunakan pada kode program.

1.2 Struktur Program Python

Struktur program python secara umum terbagi menjadi tiga bagian yaitu header, definisi fungsi, dan program utama. Contoh program python adalah sebagai berikut.

# headerfrom numpy import *import math

# fungsi-fungsiDef PCA(x, y) :Print “fungsi 1”

# main programPrint “Main Program”

Page 4: Titip Tugas Python

Sekedar info, baris yang diawali dengan tanda kres merupakan komentar dan tidak akan diproses oleh python intepreter. Header berfungsi untuk menentukan module mana yang akan digunakan dalam program. Module merupakan pustaka tambahan yang disediakan oleh python atau oleh orang lain dan dapat digunakan dalam program untuk mempermudah pembuatan program. Sebagai contoh diatas, kode program tersebut menggunakan semua module yang ada pada namespace numpy dan menggunakan module math yang disediakan oleh python.

Definisi dari fungsi-fungsi digunakan untuk menyederhanakan program dan main program merupakan awal kode program yang akan dieksekusi oleh python intepreter. Pemisah yang digunakan oleh python untuk membedakan antara blok perintah satu dengan blok perintah lainya adalah dengan tabulasi. Pada program diatas contoh pemisah blok dapat dilihat pada fungsi PCA.

Input / Output (I / O)

2.1 Menampilkan Data Dengan Perintah print

Perintah print merupakan perintah dasar dari python yang dapat menampilkan seluruh data yang di support secara native oleh python. Ada beberapa cara memanggil perintah print yaitu :

Memanggil perintah print dengan menggunakan koma sebagai pemisah antara objek yang akan ditampilkan. Koma juga sebagai pemisah antara dua objek yang akan ditampilkan dengan menggunakan karakter spasi. Contoh pemanggilanya adalah sebagai berikut

print “2 + 2 is”, 2 + 2print “3 * 4 is”, 3 * 4print “100 – 1 is”, 100 – 1print “(33 + 2) / 5 + 11,5 is”, (33 + 2) / 5 + 11,5

Memanggil perintah print dengan menggunakan format fungsi printf yang terdapat pada bahasa C dan sebagai parameter, “%s” digunakan untuk menampilkan string, “%d” untuk bilangan bulat, “%f” untuk bilangan pecahan, dan “%c” untuk karakter. Contoh pemanggilanya adalah sebagai berikut

print “2 + 2 is %d” % (2 + 2)print “3 * 4 is %d” % (3 * 4)print “100 – 1 is %d” % (100 – 1)print “(33 + 2) / 5 + 11,5 is %f” % ( (33 + 2) / 5 + 11,5)

Setiap menggunakan perintah print maka python akan secara otomatis menambahkan perintah untuk pindah baris pada akhir instruksi. Jika perintah pindah baris tidak diinginkan maka perintah print harus ditambahkan koma pada akhir baris.

Page 5: Titip Tugas Python

Dapat ditambah dengan karakter khusus (escape sequence) yang didahului dengan tanda “\”, yaitu pindah baris “\n” dan tab “\t”.

2.2 Input Data

Input data yang dilakukan oleh user merupakan hal yang penting dalam pemrograman python. Ada dua perintah yang dapat digunakan untuk melakukan input data yaitu perintah input dan perintah raw_input.2.2.1 Perintah input

Perintah input digunakan untuk melakukan input data jenis numerik. Dengan menggunakan perintah input. Harus dipastikan bahwa user akan menginputkan data yang berupa numerik karena jika data yang diinputkan tidak berupa data numerik maka perintah input akan mengeluarkan pesan kesalahan. Contoh penggunaan perintah input dan kesalahanya jika data yang diinput bukan data numerik adalah sebagai berikut:

>>> a = input (“ Masukkan suatu bilangan = ”)Masukkan suatu bilangan = 20>>> a = input (“ Masukkan suatu bilangan = ”)Masukkan suatu bilangan = Saya Juga

Traceback (most recent call last) : File “<pyshell#0>”, line 1, in <module> a = input (“Masukkan suatu bilangan = ”) File “<string>”, line 1 saya juga

SyntaxError: unexpected E0F while parsing

2.2.2 Perintah raw_input

Perintah raw_input dapat digunakan dengan cara yang sama dengan penggunaan perintah print, tetapi hasil data yang diinputkan akan selalu berupa string. Perintah raw_input dapat digunakan untuk input data string dan numerik dengan cara tertentu. Contoh penggunaan perintah raw_print adalah sebagai berikut.

>>> a = raw_input (“Masukkan suatu kata = ”)Masukkan suatu kata = Saya Juga>>> b = float (raw_input(“Masukkan suatu bilangan = ”) )Masukkan suatu bilangan = 10.56>>> c = int(raw_input(“Masukkan suatu bilangan = ”) )Masukkan suatu bilangan = 106>>> a, b, c( ‘ Saya Juga ’, 10.56, 106)

Page 6: Titip Tugas Python

Variabel, List, Operator, dan Lambda

3.1 Variabel dan Tipe Data

Tipe data menyatakan pola penyajian data dalam komputer: karakter, bilangan, string, record. Tipe data dibedakan menjadi dua yaitu tipe data dasar dan tipe data khusus. Tabel dibawah menampilkan beberapa tipe data dasar dan tipe data khusus. Tabel dibawah menampilkan beberapa tipe data dasar dan domainya, yang dikenal dalam Python.

Nama Tipe Data Ukuran (byte) JangkauanInteger 4 -2147483648 – 2147483649Long Integer Tak Terhingga Tak TerhinggaFloat 8 2.2e-308 – 1.7e+308String - -

Variabel merupakan penampung data yang isinya dapat diubah. Data yang dapat disimpan adalah data yang sesuai dengan tipenya.Nama variabel terdiri dari huruf, angka dan garis bawah dapat didahului oleh huruf dan garis bawah, dengan ketentuan:

1. Tidak dapat didahului oleh angka.2. Tidak dapat menggunakan operator hitung dan karakter-karakter khusus:

+ - / * % : ; . , # @ $ &3. Nama variabel tidak dapat disela dengan spasi>4. Tidak dapat menggunakan reserved words.5. Huruf besar dan huruf kecil berbeda.

Pemberian (assignment) nilai ke variable

Tipe data dari variable ditentukan oleh isi yang diberikan oleh programmer. Jika programmer memberikan nilai yang masuk dalam range integer maka variable tersebut akan bertipe integer, jika floating-point maka variabel tersebut akan bertipe float, dan seterusnya. Berikut merupakan contoh dari penggunaan variable

>>> a = 10 . 5>>> type (a)<type ‘float ’ >>>> a = 10>>> type (a)<type ‘int’>>>> a = 2**1024>>> type (a)<type ‘long ’ >>>> a = “Ini String”>>> type (a)<type ‘str ’ >

Page 7: Titip Tugas Python

3.2 List

List pada dasarnya adala sebuah array yang bisa terdiri dari satu jenis tipe data ataupun terdiri dari beberapa tipe data. Tuple sedikit banyak merupakan suatu list, hanya saja pada tuple isi dari tuple tersebut bersifat read-only.

3.2.1 List Satu Dimensi

List adalah deretan variable yang mempunyai tipe data tertentu dan mempunyai nilai yang sama. Pada bahasa python, list dapat dideklarasikan dengan menggunakan perintah sebagai berikut.

List_a = [ 10, 10, 20, 30, 40 ]List_b = [ “ Ini String ”, 1, 2, 3 ] List_c = [ “string 1”, 1.0, 2.0, 1E-20, 10.3456 ]

Akses ke dalam list dapat menggunakan beberapa cara, yaitu dengan menggunakan index langsung, index backward, dan slice. Berikut contoh masing-masing cara tersebut.

a = list_a [0] # a = 10a = list_a [0 : 3] # a = [ 10, 10, 20 ]a = list_a [ : : -1] # a = [ 40, 30, 20, 10, 10 ]a = list_a [-1] # a = 40a = list_a [-3 : :] # a = [ 20, 30, 40]

3.2.2 List Multidimensi

List multidimensi mempunyai dimensi yang lebih dari 1, seperti pendeklarasian suatu matriks. Semua aturan pada list multidimensi sama dengan aturan yang ada pada list satu dimensi. Dimensi yang digunakan antar data pertama dan data berikutnya tidak harus sama dan dapat berubah sesuai dengan data yang digunakan. Berikut merupakan contoh perintah untuk mendeklarasikan suatu list multidimensi.

list_a = [ [0, 1, 0] , [1, 1, 1], [3, 3, 3] ]list_b = [ “String 1”, “String 2”, [3, 4, 5] ]list_c = [ [0.0, 1.0, 0.0], [1, 1, 1], [3.56, 1.234, 23.45] ]

Akses ke dalam list mempunyai aturan yang sama dengan akses data pada list satu dimensi. Berikut meruoakan contoh akses data untuk list multidimensi.

a = list_a [0] [1] # a = 1a = list_a [: : -1] [0] # a = [ 3, 3, 3 ]a = list_a [-1] # a = [ 3, 3,3 ]a = list_a [-2 : : ]] # a = [ [1, 1, 1] , [3, 3, 3] ]

Page 8: Titip Tugas Python

3.3 Fungsi Lambda

Fungsi lambda adalah suatu fungsi yang mempresentasikan suatu fungsi anonymouse untuk perumusan tertentu. Berikut contoh perbedaan dan penggunaan antara fungsi biasa dengan fungsi lambda.

>>> def f (x) : return x**2. . .>>> print f (8)64>>> >>> g = lambda x : x**2>>>>>> print g(8)64

Setiap yang dapat dilihat pada kode diatas, f( ) dan g( ) melakukan perintah yang sama dan dapat digunakan dengan cara yang sama. Fungsi lambda diadaptasi oleh python dari functional programming dan keuntungan dari fungsi lambda adalah tidak perlu mendeklarasikan variable apapun.

3.4 Operator

Operator merupakan simbol atau kata yang digunakan untuk operasi dan manipulasi dalam program yang melibatkan satu ( unary operator ) atau dua nilai ( binary operator ).

Operator AritmatikaMerupakan operator untuk operasi aritmatika seperti:

Tabel 3.1: Operator AritmatikaOperator Operasi Operator Operasi* Perkalian - Perhitungan/ Pembagian + Penambahan% Sisa Pembagian ** Pangkat

Operator RelasiMerupakan operator yang membandingkan dua buah nilai. Keluaran atau hasil pembandingan adalah kondisi benar atau kondisi salah.Tabel 3.2: Operator RelasiOperator Operasi Opera

torOperasi

< Lebih Kecil >== Lebih besar / sama dengan< == Lebih kecil / sama

dengan= = Sama dengan

> Lebih besar ! = Tidak sama dengan

Page 9: Titip Tugas Python

Operator LogikaMerupakan operator untuk menghubungkan satu atau lebih kondisi. Kondisi bisa merupakan hasil pembandingan yang menggunakan operator relasi.

Tabel 3.3: Operator LogikaOperator Operasiand Logika ANDOr Logika ORNot Logika NOT

Tabel 3.4: Kebenaran operasi AND dan OR

Operator AND Operator OR

Kondisi 1

Kondisi 2 Kondisi 3

Salah Salah SalahSalah Benar SalahBenar Salah SalahBenar Benar Benar

4.2 Pernyataan if .... else

Pada model pernyataan ini, aksi 1 akan dikerjakan jika syarat bernilai benar sedangkan jika salah maka aksi 2 yang akan dikerjakan.

Benar

Salah

Gambar 4.1: Pernyataan if ... else dalam bentuk flowchart

Bentuk umum:

Syarat

Aksi 1

Aksi 2

Kondisi 1 Kondisi 2 Kondisi 3Salah Salah SalahSalah Benar SalahBenar Salah SalahBenar Benar Benar

Page 10: Titip Tugas Python

If syarat :aksi1

else :aksi2

Page 11: Titip Tugas Python

4.3 Pernyataan for

Pada pengulangan dengan for diperlukan ungkapan untuk deklarasi variable dan angka maksimum yang bisa dicapai oleh variable.

Bentuk umum:

For variable in range (max) :pernyataan

4.4 Pernyataan while

Pada pengulangan jenis ini, pengecekan dilakukan diawal dan akan terus dilakukan sampai syarat yang diminta memiliki nilai false. Pengulangan dengan while ini hampir sama dengan pengulangan dengan for jika inisialisasi diletakkan sebelum blok pengulangan.

Bentuk umum :

while syarat :pernyataan

# transformasi dari jenis pengulangan forinisialisasi

while syarat :pernyataanpenambahan

4.5 Pernyataan switch case

Pada bahasa pemrograman python, tidak terdapat keyword khusus yang digunakan untuk pernyataan switch case tetapi dapat digunakan pernyataan if..elif untuk menggantikan pernyataan switch case.

Gambar 4.1: Pernyataan if ... else dalam bentuk flowchat

benar benar

benar

Var = Const 1

Var = Const 2

default

inisialisasi

Page 12: Titip Tugas Python

Bentuk umum :

if syarat 1 :aksi1

elif syarat2 :aksi2

elif syarat3 :aksi 3

Fungsi dan Parameter

5.1 Pengertian fungsi

Fungsi adalah suatu bagian dari program yang dimaksudkan untuk mengerjakan suatu tugas tertemtu dan letaknya dipisahkan dari bagian program yang menggunakannya.Berdasarkan keluaran dan masukannya fungsi dapat dibagi menjadi 4. Yang dimaksud keluaran adalah fungsi yang mengembalikan suatu nilai tertentu dan yang dimaksud dengan masukan adalah parameter yang merupakan inputan pada fungsi.

1. Fungsi tanpa masukan dan keluaranContoh : print ( )

2. Fungsi tanpa keluaran dan dengan masukanContoh : print (“Ini text”)

3. Fungsi dengan keluaran dan tanpa masukanContoh : time ( )

4. Fungsi dengan keluaran dan masukanContoh : input(“N=”)

5.2 Fungsi tanpa parameter

Fungsi ini merupakan fungsi yang tidak memiliki parameter inputan namun fungsi ini tetap melaksanakan tugas tertentu.

Bentuk umum :def nama_fungsi ( ) :

pernyataan

5.3 Fungsi dengan parameter

Fungsi ini merupakan fungsi yang memiliki sejumlah parameter dengan tugas tertentu. Perlu digaris bawahi bahwa semua parameter memiliki jenis pengiriman by reference sehingga jika dilakukan manipulasi parameter pada fungsi maka nilai dari parameter tersebut juga akan berubah sesuai dengan data yang diisikan.

Page 13: Titip Tugas Python

Bentuk umum :

def nama_fungsi (argumen1, argumen2, . . . ) :pernyataan

5.4 Fungsi dengan keluaran

Fungsi dengan keluaran merupakan suatu fungsi yang mengembalikan suatu nilai tertentu kepada pemanggil fungsi.

Bentuk umum :

def nama_fungsi (argumen1, argumen2, . . . ) :pernyataanreturn [value1, value2, . . .]

5.5 Fungsi rekursif

Fungsi rekursif adalh fungsi yang memanggil dirinya sendiri secara berulang-ulang. Karena prosesnya dilakukan secara berulang-ulang maka harus ada kondisi yang mengakhiri prosesnya.

Ekstensi Python

Penggunaan python pada lingkungan yang berbagai macam ragam, sulit untuk menjawab secara resmi terhadap pertanyaan di atas. Pada bagian bawah ini merupakan rangkuman dari beberapa bidang yang menggunakan python pada saat ini:

Perangkat bantu shell. Tugas-tugas sistem administrator, program baris perintah.

Kerja bahasa ekstensi. Antarmuka untuk pustaka C/C++, kustomisasi Pembuatan prototipe secara cepat/pembuatan sistem aplikasi. Prototipe

yang dapat dibuang atau sesuai dengan permintaan. Modul berdasarkan bahasa pemrograman. Pengganti dari penulisan parser

khusus. Antarmuka pengguna grafis. Penggunaan GUI API sederhana dan

canggih. Pengaksesan basisdata. Penyimpanan objek tetap, antarmuka sistem SQL. Pemrograman terdistribusi. Penggunaan API mekanisme client/server

terintegrasi. Skrip internet. Skrip CGI, antarmuka HTTP, Aplet WWW, dan lainnya.

Pada pengertian umum, python memberikan pelayanan terhadap jangkauan bidang:

Page 14: Titip Tugas Python

Bahasa pemrograman dinamis, untuk situasi dimana salah satu tahap link atau kompilasi tidak memungkinkan (modifikasi di tempat klien), atau tidak nyaman (pembuatan prototipe, pembuatan aplikasi secara cepat, perangkat bantu shell).

Bahasa pemrograman yang powerful tetapi sederhana, untuk situasi dimana kompleksitas dari bahasa pemrograman yang besar is sometimes a liability (prototipe, pengkodean pada pemakai akhir).

Generalized language tool, untuk situasi dimana dibutuhkan untuk menanamkan dan implementasi bahasa pemrograman kecil lainnya (antarmuka sistem yag dapat di program, perangkat bantu konfigurasi).

Berdasarkan properti umum yang diberikan, python dapat di terapkan pada area mana saja ynag kita ingin kan, dengan meningkatkannya dengan pustaka pada bidangnya, melekatkannya dengan sistem aplikasi, atau menggunakannya secara sendiri.

Pada tabel di bawah ini terdapat beberapa ektensi python yang populer.

Bidang Ekstensi

Pemrograman sistem Soket, thread, signal, pipe, pemanggil RPC, POSIX binding.

Antarmuka pengguna grafis X11, Tk, Tix, MFC, STDWIN

Antarmuka basisdata Oracle, Sybase, PostGres, mSQL, persistence ("pickling"), dbm

Perangkat bantu microsoft windows

MFC, OLE

Perangkat bantu internet Grail web browser(aplet), parser HTML, antarmuka CGI.

Objek terdistribusi ILU (CORBA)

Perangkat bantu populer lainnya Expect, ekspresi regula, ekstensi numerik, kriptograpi.

Apa yang telah kita lihat, arsitektur python yang terbuka mendukung bentuk pembuatan sistem aplikasi dan produknya secara dinamis. Pada python pula, kita dapat mencampurkan prototipe, pembuatan sistem aplikasi secara cepat, dan engineering perangkat lunak secara tradisional, berdasarkan pada permintaan dalam suatu projek. Penggunaan python sebagai perangkat bantu pembuat skrip, kita dapat membuka sebagian dari sistem untuk modifikasi oleh pemakai akhir.

Page 15: Titip Tugas Python

Kelebihan dan Kekurangan

Kelebihan:

Sintaks sederhana

Memiliki Exception Handling yang baik

OOP

Single inheritance

Didukung oleh OS Linux, Windows, MacOS X, OS/2, BeOs, dan Unix.

Merupakan bahasa pemrograman scripting yang berorientasi objek

Memiliki garbage collector yang secara otomatis akan menghapus informasi tak terpakai dari memori

Kelemahan :

Multithreading. Implementasi thread di ruby masih berupa green thread, bukan native thread. Hal ini membuat aplikasi GUI (desktop) dengan background thread tidak mungkin diimplementasikan di ruby.

Virtual Memory, ruby masih fully interpreted sehingga program ruby cenderung lebih lambat.

Spek. saat ini spesifikasi ruby (syntax, behaviour, dll) adalah implementasi ruby yang asli dari matz.

IDE. Saat ini kualitas IDE untuk ruby masih jauh daripada .net dan java. Tapi dengan bermunculnya IDE ruby yang dibuat dengan java.net, kondisinya agak berubah. Tapi karena ruby bahasa yang sangat dinamis, sulit untuk bisa mendapatkan informasi secara lengkap mengenai struktur sebuah program ruby secara statis.

Page 16: Titip Tugas Python