Belajar programming
Kata Pengantar
Pada pertengahan tahun 2016, penyusun menyampaikan kepada saya bahwa ia berencana untuk
membukukan tutorial tentang Python. Nantinya tutorial ini hendak digunakan sebagai penunjang
kuliah dasar pemrograman di Program Studi Meteorologi dan Teknik Geologi. Seketika setelah
mendengar rencananya saya takjub serta kagum untuk rencana yang diutarakannya. Terlebih jika
melihat pada historis penulisannya dalam beberapa buku filsafat, sejarah, dan paleoklimatologi
yang telah ditulisnya, kesemuanya itu disebar bebas melalui akun academia.edu dan
researchgate.net yang dimilikinya. Walau disebar bebas, bukan berarti buku-bukunya tidak
bermutu dan murahan, beberapa tulisannya pernah dipakai sebagai bahan ajar tak resmi dalam
sebuah institusi pendidikan, selain itu penyusun juga menjadi top 0.5% pengguna academia.edu.
Selain itu menulis buku atau modul pemrograman yang bagus sama sulitnya dengan menelurkan
sebuah ide dan pemikiran.
Tak berapa lama kemudian, di awal bulan September 2017 saya menerima draft buku tutorial
tersebut, lalu kemudian jadilah buku ini, buku yang ada dihadapan anda dan anda pegang sekarang.
Buku yang lebih menitik-beratkan kepada teori tentang pemrograman Python jauh dari bayangan
saya sebelumnya. Jika diawal dulu, saya membayangkan buku ini akan seperti buku panduan
pemrograman yang menjelaskan how to programming secara terperinci beserta contoh kode yang
tinggal dikopi dan paste atau seperti modul praktikum dengan penjelasan singkat dan lebih banyak
latihannya, tidak buku ini tidak seperti itu, buku ini lebih dari itu. Buku ini akan membawa anda
menuju level pemahaman yang berbeda setelah anda membacanya. Maka dari itu lanjutkan dan
teruskan hingga selesai untuk membacanya.
Mengapa Python?
Menurut data yang dirilis IEEE Spectrum pada pertengahan tahun ini, Python menempati posisi
pertama dalam The 2017 Top Programming Languages, sebuah pemeringkatan yang
dilaksanakan oleh IEEE Spectrum dipertengahan tahun yang sedang berjalan. Pemeringkatan
yang dilakukan oleh IEEE Spectrum ini dilakukan dengan mengumpulkan 12 buah data dari 10
sources di internet termasuk dari pencarian Google, Twitter, Github hingga dari IEEE Xplore
Digital Library yang berisi lebih dari 3,6 juta paper dan conference. Tidak hanya populer di
internet, Python juga begitu populer dikalangan limuwan dan engineer.
Berbicara dalam dunia kampus, Python juga dalam tahun-tahun terakhir ini telah banyak
digunakan untuk menjadi bahasa pemrograman yang digunakan pada kuliah pengantar
pemrograman atau pada pengantar ilmu komputer seperti pada kuliah CS50: Introduction to
Computer Science dari Harvard yang begitu terkenal di Internet serta 6.0001 Introduction to
Computer Science and Programming in Python dari MIT. Pada kuliah yang lebih tinggi atau
pada level research, banyak persoalan numerik dan komputasi hingga persoalan-persoalan
matematikan dan fisika yang telah menggunakan Python dalam penyelesaiannya. Didukung
dengan library yang beragam dan adanya komunitas yang sangat besar dan saling membantu
ketika menghadapi persoalan dengan Python membuat bahasa pemrograman ini terus berkembang.
Sehingga tak salah ketika Weather and Climate Prediction Laboratory ITB mulai berpindah
dalam penggunaan bahasa pemrograman yang akan mereka gunakan untuk pembelajaran di kelas
dan laboratorium serta untuk penelitian. Sebuah perkembangan yang telah sesuai dengan
perkembangan zaman dan tren yang sedang muncul saat ini.
Python ibarat paket lengkap dari sebuah bahasa pemrograman dengan dukungan komunitas dan
library. Pengguna tidak hanya dapat menggunakan Python sebagai bahasa pemrograman untuk
menyelesaikan persoalan numerik dan analisis data, namun juga dapat mengembangkan program
yang terintegrasi. Setelah analisis data dan persoalan numerik diselesaikan dengan Python,
pengguna juga dapat membuat visualisasi data dengan berbagai tampilan dari library-library yang
beragam seperti matplotlib, vpython dan lain sebagainya. Lalu mengkoneksikannya ke web dan
menjadikan Python sebagai back-end servernya. Sebelum itu bahkan dengan berbagai library yang
ada seperti scrapy, socket kita dapat berbagi data atau menambang data dari berbagai source di
internet.
Langkah selanjutnya...
Setelah menyelesaikan membaca buku ini atau setelah anda pembaca selesai mempelajari Python
melalui buku ini anda telah sampai pada level penguasaan pemrograman dengan menggunakan
Python (dasar-dasar pemrograman Python). Ke depannya anda diharapkan dapat terus mempelajari
secara mandiri dan memperdalam lagi kemampuan programming anda menggunakan Python dan
mengeksplor penggunaan Python di segala bidang sebanyak-banyaknya. Belajar lebih dalam
mengenai algoritma dan struktur data pada Python, belajar berbagai metode numerik, belajar
bermacam-macam metoda statistik, machine learning dan artificial intelligence dan lain
sebagainya. Di dalam komunitas Python yang sangat besar di internet semua telah tersedia baik
media dan materi pembelajaran, contoh kasus, potongan kode dan panduan-panduan singkat
lainnya. Akhir kata saya mengucapkan selamat belajar dan semoga sukses!
Bandung, 12 September 2017
Rio Harapan Ps
Computational Physicist, Program Studi Fisika ITB
http://rhps.github.io
Selayang Pandang
Python merupakan bahasa pemrograman tingkat tinggi yang dewasa ini telah menjadi standar
dalam dunia komputasi ilmiah. Python merupakan bahasa pemrograman open source multi-
platform yang dapat digunakan pada berbagai macam sistem operasi (Windows, Linux, dan
MacOS). Selain itu, Python juga merupakan bahasa pemrograman yang fleksibel dan mudah untuk
dipelajari. Program yang ditulis dalam Python umumnya lebih mudah dibaca dan jauh lebih
ringkas dibandingkan penulisan program dalam bahasa C atau Fortran. Python juga memiliki
modul standar yang menyediakan sejumlah besar fungsi dan algoritma, untuk menyelesaikan
pekerjaan seperti mengurai data teks, memanipulasi dan menemukan file dalam disk, membaca /
menuliskan file terkompresi, dan mengunduh data dari server web. Dengan menggunakan Python,
para programmer juga dapat dengan mudah menerapkan teknik komputasi tingkat lanjut, seperti
pemrograman berorientasi objek.
Bahasa pemrograman Python dalam banyak hal berbeda dengan bahasa pemrograman prosedural,
seperti C; C++; dan Fortran. Dalam Fortran, C, dan C++, file source code harus dikompilasi ke
dalam bentuk executable file sebelum dijalankan. Pada Python, tidak terdapat langkah kompilasi,
sebagai gantinya source code ditafsirkan secara langsung baris demi baris. Keunggulan utama
dari suatu bahasa pemrograman terinterpretasi seperti Python adalah tidak membutuhkan
pendeklarasian variabel, sehingga lebih fleksibel dalam penggunaannya. Namun, terdapat
kelemahan yang mencolok, yaitu program – program numerik yang dijalankan pada Python lebih
lambat ketimbang dijalankan menggunakan bahasa pemrograman terkompilasi. Kelemahan ini
tentu membuat kita berpikir apakah Python cocok untuk digunakan dalam komputasi ilmiah?
Meskipun bekerja dengan agak lambat, Python memiliki banyak fungsi – fungsi sederhana yang
dapat menjalankan hal – hal yang umumnya dikerjakan dengan subroutine rumit dalam C dan/atau
Fortran. Sehingga Python merupakan pilihan tepat dalam komputasi ilmiah dewasa ini.
Untungnya, banyak routine numerik dan matematis umum yang telah disusun sebelumnya, yang
dikelompokan ke dalam dua buah paket (NumPy dan SciPy) yang dapat diimpor secara mudah ke
dalam Python. Paket NumPy (Numerical Python) menyediakan banyak routine dasar guna
memanipulasi array dan matriks numerik dalam skala besar. Paket SciPy (Scientific Python)
memperluas kegunaan NumPy dengan kumpulan algoritma ilmiah yang sangat berguna, seperti
minimalisasi; transformasi Fourier; regresi; dan banyak teknik – teknik aplikasi matematis lainnya.
Karena bersifat open source, kedua paket ini sangat populer di kalangan ilmuwan. Dengan adanya
paket NumPy dan SciPy, Python dapat berdiri sejajar (bahkan di atas) bersama program komputasi
ilmiah Matlab dalam penggunaannya sebagai alat bantu sains dewasa ini.
Tutorial ini menggunakan bahasa Python 2.7. Kendati penggunaan Python 3 sudah mulai meluas,
hingga kini dunia komputasi ilmiah masih menggunakan bahasa Python 2 sebagai bahasa standar
mereka. Python 2.7 merupakan bahasa Python 2 versi terakhir dan rencananya akan tetap
dipelihara hingga tahun 2020.
Instalasi
Untuk mempelajari tutorial ini, hal yang pertama harus kalian lakukan adalah melakukan instalasi
interpreter dasar. Selain itu, kini juga terdapat berbagai macam aplikasi editor yang bersifat GUI-
driven untuk menuliskan program Python secara lebih mudah. Pada platform Windows misalnya,
saya cenderung menggunakan Anaconda yang tersedia secara gratis dan menyertakan editor
Spyder didalamnya. Paket tunggal ini menyertakan tools yang dibutuhkan dalam komputasi
ilmiah. Anaconda dapat kalian unduh di https://www.continuum.io. Kemudian ikuti langkah
instalasi hingga selesai. Namun, jika kalian ingin menghemat memori, kalian tidak perlu
menginstal seluruh paket add-on pada saat melakukan instalasi. Paket – paket utama yang wajib
diinstal untuk komputasi ilmiah antara lain adalah Python, NumPy, SciPy, Spyder, IPython, dan
matplotlib.
Jika kalian tidak ingin menggunakan Anaconda, kalian harus menginstal perangkat lunak sebagai
berikut:
Python di http://www.python.org/. Pastikan bahwa kalian meninstal Python 2.7.
NumPy untuk Python 2.7 di http://www.scipy.org/.
SciPy untuk Python 2.7 di http://www.scipy.org/.
matplotlib untuk Python 2.7 di http://www.matplotlib.org/.
Sumber – Sumber Pembelajaran
Terdapat banyak sekali dokumentasi Python yang dapat digunakan sebagai bahan pembelajaran.
Pada editor Spyder, kalian dapat menggunakan perintah Help (?) > Python Documentation untuk
mengakses dokumentasi. Di samping itu, terdapat juga manual lengkap beserta dokumentasi –
dokumentasi yang sangat bermanfaat untuk membantu pembelajaran kalian yang dapat di akses di
http://docs.python.org .
Komunitas developer Python juga memelihara wiki mereka sendiri. Khususnya bagi kalian para
programmer pemula, terdapat beberapa halaman di wiki tersebut yang sekiranya dapat kalian
manfaatkan di http://wiki.python.org/moin/BeginnersGuide .
Bagi kalian yang sudah terbiasa dengan Python, dan ingin mendalaminya, kalian dapat mengakses
situs Dive into Python yang menyediakan tutorial penggunaan Python tingkat lanjut. Dive into
Python dapat kalian akses di http://www.diveintopython.org/ .
Interpreter Interaktif
Untuk memulai penggunaan Python, kalian dapat menuliskan perintah “python” pada command
prompt atau terminal kalian. Kemudian kalian akan menjumpai tampilan sebagai berikut (khusus
bagi pengguna Anaconda):
Tanda >>> mengindikasikan bahwa Python menunggu input perintah yang hendak kalian
masukkan. Tidak dibutuhkan proses kompilasi saat kalian menuliskan program pada interpreter
interaktif. Python dapat membaca perintah dan langsung memberikan respon, contohnya:
>>> 1
1
Seperti yang akan kita bahas pada bagian – bagian berikutnya, Python juga dapat membaca script
(file yang berisi daftar perintah yang telah dituliskan sebelumnya dan dieksekusi dalam suatu
sikuen). Dengan pengecualian pada penyembunyian output pada saat membaca file, pada dasarnya
tidak terdapat perbedaan cara Python memperlakukan suatu perintah dalam penulisan interaktif
maupun dalam script. Kelebihan penulisan secara interaktif adalah kita dapat menguji perintah –
perintah dalam program yang kita buat sudah benar.
Pada Python, teks yang dituliskan sesudah tanda “#” akan dianggap sebagai komentar program.
Python akan mengabaikan teks sesudahnya hingga akhir baris tersebut Contoh penggunaannya:
Perintah panjang pada Python dapat dibagi ke dalam beberapa baris menggunakan perintah “\”.
Ketika kita menggunakan perintah ini, baris berikutnya harus memuat jumlah spasi yang sama
dengan baris sebelumnya. Spasi dalam Python bersifat sintaktis, kita akan membicarakan hal ini
secara lebih lanjut pada bagian – bagian berikutnya.
Kalian juga dapat memanfaatkan tanda kurung untuk melanjutkan perintah pada baris selanjutnya
tanpa direpotkan oleh tanda “\”, sebagai berikut:
>>> 1 # tekan nomor 1
1
>>> 1.243 + (3.42839 – 4.394834) * 2.1 \
... + 4.587 – 9.293 + 34.234 \
... – 6.2 + 3.4
>>> (1.243 + (3.42839 – 4.394834) * 2.1
... + 4.587 – 9.293 + 34.234
... – 6.2 + 3.4)
Umumnya penggunaan tanda kurung ini lebih disukai oleh para programmer Python ketimbang
tanda ”\”.
Meskipun jarang digunakan, berikut diberikan contoh penggunaan tanda “;” untuk menjalankan
perintah – perintah yang berbeda dalam satu baris.
Sebisa mungkin hindari penggunaan tanda “;” dalam program kalian karena dapat mengurangi
reputasi keterbacaan program kalian oleh orang lain.
Terdapat fungsi help dalam Python yang dapat membantu kalian dalam hampir segala hal. Berikut
ini diberikan contoh andaikan kita ingin mencari tahu penggunaan dari fungsi sun.
Fungsi help bahkan dapat bekerja pada fungsi dan variabel yang kalian buat sendiri. Python
menyediakan cara yang sangat mudah guna menambahkan teks deskriptif yang dapat digunakan
oleh fungsi help. Untuk lebih jelasnya akan kita bahas nanti.
Python merupakan bahasa pemrograman case sensitive. Maka, kita harus mendefinisikan variabel
dan fungsi secara benar agar dapat dikenali. Untuk lebih jelasnya, perhatikan contoh
pendeklarasian variabel di bawah ini:
>>> 1 + 4 ; 6 – 2
5
4
>>> help(sum)
Help on built-in function sum in module __builtin__:
sum(...)
sum(sequence, start=0) -> value
Returns the sum of a sequence of numbers (NOT strings) plus the value
of parameter 'start'. When the sequence is empty, returns start.
>>> Var = 1
>>> var = 2
>>> Var
1
>>> var
2
Untuk keluar dari interpreter interaktif, kita dapat menggunakan fungsi exit().
Segalanya Merupakan Objek
Dalam Python, nilai, list, kelas, dan fungsi merupakan objek Sebagai sebuah objek, maka terdapat
fitur – fitur dan fungsi – fungsi khas yang dapat diakses dengan menggunakan notasi titik,
contohnya:
Kita juga dapat menggunakan notasi titik pada string itu sendiri secara langsung.
Fakta bahwa segala sesuatu dalam Python merupakan objek menjadikan Python sebagai bahasa
pemrograman dengan fleksibilitas tinggi. Dalam pemrograman berorientasi objek, kode program
akan dipecah ke dalam bagian – bagian yang disebut kelas. Melalui pemrograman berorientasi
objek, kode program yang kita buat akan lebih mudah untuk dikembangkan dan dirawat.
Tipe – Tipe Numerik
Bilangan tanpa koma didefinisikan sebagai tipe integer.
>>> exit()
c:\>
>>> s = "halo"
>>> s.capitalize()
'Halo'
>>> s.replace("lo", "i")
'hai'
>>> "halo".capitalize()
'Halo'
>>> type(13)
Fungsi type berguna untuk mengetahui tipe argumen yang kita gunakan. Melalui return value
dalam perintah ini, kita mengetahui bahwa “13” merupakan tipe Python “int” yang berarti suatu
integer. Setiap integer biasa membutuhkan ruang memori sebesar 4 bit, dan dapat bervariasi pada
rentang -2147483648 hingga 2147483647. Di sisi lain, integer dalam jumlah besar dalam Python
diklasifikasikan sebagai tipe integer tersendiri yang disebut sebagai ‘long’.
Operasi numerik yang melibatkan integer dalam jumlah besar membutuhkan lebih banyak memori
dibandingkan operasi pada integer biasa.
Pada operasi numerik umumnya kita menggunakan angka normal dengan titik desimal dalam
Python dikenal sebagai tipe ‘float’.
Tipe ‘float’ dalam Python merupakan bilangan riil berpresisi ganda. Rentangnya bergantung pada
perangkat keras yang digunakan, namun umumnya berkisar antara 10-308 hingga 10308 atau 14 buah
bilangan desimal dibelakangnya.
Python juga dapat menangani operasi bilangan kompleks. Notasi “j” menandai bagian bilangan
imajiner.
Contoh operasi menggunakan bilangan kompleks pada Python antara lain berikut ini:
Perlu kalian catat, bilangan kompleks pada Python wajib dituliskan dalam tanda kurung.
Pada setiap tipe dalam Python, terdapat fungsi ekivalen yang dapat mengubah nilainya ke dalam
tipe lain. Untuk lebih jelas, perhatikan contoh berikut:
>>> int(3.2)
3
>>> float(2)
2.0
>>> complex(1)
(1+0j)
Selain itu, terdapat juga fungsi round yang dapat digunakan untuk pembulatan ke nilai integer
terdekat. Perhatikan contoh berikut ini:
>>> int(0.8)
0
>>> round(0.8)
1.0
>>> int(round(0.8))
1
Menggunakan Python Sebagai Kalkulator
Penjumlahan dua buah bilangan:
Komentar
Posting Komentar