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

Postingan populer dari blog ini