Instalasi Python Lebih Mudah dengan Anaconda

Soeleman 22 Februari 2017

Instalasi Python Lebih Mudah dengan Anaconda

Mencoba belajar sebuah bahasa pemogramman kadang bukan hanya sekadar mempelajari sintaknya saja. Kadang kita harus belajar tentang bagaimana lingkungan bahasa itu bekerja, mengelola package, pilihan editor dan terlebih lagi apabila kita perlu bahasa itu untuk mencapai tujuan lainnya.

Seperti kita ingin belajar Python. Jangankan untuk Data Science, untuk web saja kadang mengesalkan. Kita perlu memasang dan mengkonfigurasi banyak hal. Buat pemula di bahasa itu tentu jadi batu penghalang besar. Kita perlu semacam XAMPP di PHP.

Anaconda

Dari Continuum dibuatlah Anaconda ("Anaconda Distribution"). Anaconda ini gratis, memiliki banyak package dan tool, secara setup untuk memulai sudah siap digunakan dan juga sudah termasuk Python distribution di dalamnya.

Untuk mendapatkan Anaconda ini cukup ke sini dan pilih berdasarkan sistem operasi yang digunakan. Memang cukup besar tapi ini lebih mudah dibandingkan melakukannya secara manual.

alt text

Pada saat pemasangan, apabila terdapat Python sudah terpasang maka ia akan meminta untuk merubah setting ke Anaconda.

Untuk memastikan ini sudah terpasang, kita buka cmd dan ketik python. Harusnya kita melihat versi dari Python dan Anaconda, itu menunjukan bahwa kita berada dilingkungan Anaconda.

Seperti biasa, Hello rutin kita laksanakan. Kita ketikkan kode print("Hello World!") dan tekan Enter. Hasilnya akan muncul seperti gambar dibawah.

alt text

Pada Anaconda juga disertakan conda. Conda adalah package management system dan environment management system yang akan memudahkan pemasangan package dan mengelolanya. Ini open source dan dapat bekerja di Linux, OS X dan Windows. Tadinya ini dibuat untuk membuat package untuk Python, sekarang ia bisa melakukan itu untuk software lainnya.

Conda memiliki banyak package seperti yang terlihat di Conda Package List. Dan cara pasangnya juga mudah conda install basemap. Kebetulan package yang kita contohkan agak berbeda perintahnya kalau di-Windows, dirubah seperti ini conda install -c conda-forge basemap (baca di conda-forge/basemap-feedstock).

alt text

Walaupun conda merupakan tool utama untuk mengatur pemasangan package di-Anaconda. Dan karena ini juga merupakan Python distribution maka tetap kita bisa menggunakan pip untuk memasang package yang tidak terdapat dalam conda. Seperti geopy, memory_profiler dan lainnya. Penggunaannya juga sama seperti layaknya menggunakan pip, contoh pip install geopy.

Kita akan bisa melihat kalau package yang kita perlukan tidak ada, maka akan muncul pesan error seperti pada gambar dibawah. Pada saat kita memberikan perintah untuk meng-import, Python akan berusaha mencari dalam koleksi yang dimilikinya. Bila tidak ada maka dimunculkanlah pesan error-nya.

alt text

Kita pasang lewat pip dengan perintah pip install geopy memory_profiler. Di sini kita juga coba memasang memory_profiler juga dalam satu perintah. Ini sebagai ilustrasi bahwa kita bisa memasang beberapa package dalam satu waktu.

alt text

Sekarang kita coba import lagi. Dan tampaknya tidak ada error, boleh dibilang Python sudah bisa mengakses package geopy.

alt text

Jupyter

Salah satu alasan untuk menggunakan Anaconda adalah Jupyter sudah ada di dalamnya. Jupyter Notebook lebih di kenal dengan sebutan Jupyter. Jupyter pengembangan dari IPython, IPython disini bertindak sebagai kernel dan Jupyter menggunakan antarmuka Notebook Interface(silahkan baca penjelasannya) -- lebih mirip dokument interaktif. Jupyter ini boleh dibilang editor dalam bentuk web aplikasi di localhost komputer kita dan banyak yang bisa dilakukan. Seperti untuk menulis kode Python, equations, visualisasi dan bisa juga sebagai Markdown editor.

alt text

Hello

Menggunakan Jupyter mudah sekali, sama halnya menggunakan web aplikasi. Kita buka cmd kemudian masuk ke folder dimana kita bekerja. Disana masukan perintah jupyter notebook untuk menjalankan Jupyter. Kalau sukses maka terbuka juga browser dengan alamat localhost:8888.

Memulai menggunakannya bisa ditekan file pada tab Files atau kita bisa buat baru dengan dropdown New lalu pilih pilihan dibawah label Notebooks.

alt text

Ketika bekerja dengan Jupyter, maka kita bekerja dengan tab atau windows browser. Per-Tab atau windows browser tersebut akan menjalankan dan berkomunikasi IPython -- satu tab dengan satu instance IPython. Jadi sebetulnya Jupyter adalah antarmuka web untuk IPython, makanya disebut sebagai kernel-nya.

Perlu di ingat, kode yang bisa dijalan oleh ini adalah kode Python. Sekarang kita masukkan kode print("Hello Jupyter"). Untuk mengesekusi kode tersebut bisa dilaksanakan dengan menekan tombol seperti pada gamber atau gunakan Shift + Enter. Dan kita akan melihat hasilnya dibawah kode kita, seperti layaknya di-cmd. Bedanya ini akan terekam sebagai dokumen dan per-cell-nya bisa di esekusi lagi. Caranya, cursor diarahkan ke-cell-nya lalu di esekusi.

alt text

Markdown

Karena ini menggunakan filosofi Notebook Interface. Maka dokumen ini juga bisa ditambahkan informasi yang bukan kode. Dalam kontek ini adalah Text yang bisa ditulis dalam format Markdown.

Pada saat kita di-cell kita rubah di-dropdown menjadi Markdown. Setelah itu kita bisa menulis dalam textbox-nya dengan format itu. Dan tampaknya ia juga mendukung sintak LATEX juga.

alt text

Setelah kita tulis, kita esekusi seperti halnya dengan kode. Bedanya ini akan terlihat menyatu dalam dokumen. Jadi ada kode, informasi dan juga perintah dalam sebuah dokumen yang menjadi implementasi antarmuka Notebook Interface.

alt text

CMD

Di atas disebutkan ada perintah. Yang dimaksud adalah kita bisa menjalankan perintah cmd di dalam Jupyter ini.

Contohnya kita bisa menjalankan perintah untuk mengkompilasi kode yang bukan Python. Seperti kita coba melakukan itu dengan kode C dengan kompiler Microsoft Visual C. Untuk itu kita akan memulai jupyter ini lewat Developer Command Prompt for VS2015 (kebetulan ini pakai VS2015, versi apapun sama saja). Kenapa? untuk mengkompile dengan MSVC cmd perlu diberitahu dimana lokasi header, bin dan library-nya. Dengan menggunakan Developer Command Prompt for VS2015 itu sudah di-set jadi kita tidak perlu lakukan itu secara manual.

alt text

Setelah terbukan cmd-nya kita arahkan ke folder dimana kita bekerja. Setelah itu kita bisa jalankan jupyter notebook. Pada gambar dibawah kita menjalankan perintah python -V dan cl untuk menunjukkan kita berada dilingkugan yang kita perlukan.

alt text

Jupyter berjalan seperti biasa saja. Yang akan berbeda adalah ketika kita menjalan perintah cmd maka ia akan menggunakan set yang terdapat di-Developer Command Prompt for VS2015.

Terlihat di In [1], kita masukkan text itu. Itu adalah kode Python, lihat di line 1. Ada %%file hello.c, Python mengenal itu sebagai perintah apapun setelah ini adalah text dan itu akan dimasukkan ke dalam file hello.c. Pada saat kita mengesekusi line ini, hasilnya adalah Writing hello.c -- kalau ada nama file itu ia akan ditimpa.

Pada In [2] dan In [3], kita memanfaatkan tanda ! dilanjutkan dengan perintah seperti yang biasa dilakukan pada cmd. Tanda itu akan memerintahkan Python untuk menesekusi perintah itu di-process yang berbeda. Disini kita menjalankan perintah untuk mengkompile dan menjalankan hasil pengompilasian itu.

alt text

Pythonic

Menulis kode dengan Python bisa berupa kode yang seperti layaknya kode pemogramman atau dalam Python ada filosofi tersendiri untuk menulis kode yang efisien. Ideomatik itu biasa disebut Pythonic seperti yang tertulis pada gambar dibawah.

alt text

Tentu seperti apa ya. Pada dasarnya sederhana saja tapi kadang bagi pemula terkesan cryptic atau tersamar. Seperti pada contoh dibawah, disini kita coba menghitung Pi. Kita ada kode C yang kita ubah menjadi kode Python. Dari situ kita refactor menjadi lebih efisien secara Pythonic.

alt text

Memang menulis secara Pythonic memerlukan pengenalan atas Python lebih dalam. Di seksi ini hanya ingin menunjukan arah mengkode Python lebih efisien dengan belajar di-Jupyter.

Flask

Mengenai esekusi dengan tanda ! kadang tidak selalu disarankan. Seperti kalau kita membuat aplikasi web. Karena kalau kita jalankan di-process-nya Jupyter (dengan perintah !python server.py) kita akan kesulitan bilamana kita perlu me-restart aplikasi tersebut.

Seperti contoh dibawah. Aplikasi web itu akan menjalankan process dengan socket, kalau kita jalankan di-Jupyter. Maka sub-process pada IPython akan sulit dihentikan. Oleh karena itu kita menjalankan aplikasi itu di-cmd yang berbeda dengan perintah python server.py, biarlah Jupyter bertindak sebagai editor.

alt text

Mandelbrot

Kita bisa melakukan banyak hal juga dengan Jupyter ini. Salah satunya melakukan perhitungan yang hasilnya berupa gambar, baik bentuk chart atau lainnya.

Seperti yang terlihat dibawah kode untuk Mandelbrot yang hasilnya bisa ditampilkan dalam dokumen ini. Jadi bisa dibayangkan kenapa Jupyter banyak digunakan untuk melakukan analisa dengan ini. Antarmuka model Notebook Interface ini akan membantu penggunanya melihat 'hasil' analisa (Data Science, ML, Deep Learning dan lainnya) dengan chart atau ilustrasi gambar dibandingkan dengan antarmuka database yang hasilnya tabular saja.

alt text

Penutup

Anaconda akan banyak membantu mengorkestrasikan banyak hal bila kita ingin bekerja atau belajar dengan Python. Kita tidak direpotkan oleh hal-hal diluar fokus kita. Apalagi dengan adanya Jupyter, lebih memudahkan lagi menggunakan Python untuk tujuan lainnya.

Referensi