diff --git a/references.bib b/references.bib index 6c85f59..7f8abcc 100644 --- a/references.bib +++ b/references.bib @@ -1,5 +1,9 @@ +<<<<<<< HEAD +@inproceedings{awangga2017colenak, +======= @inproceedings{awangga2017colenak, +>>>>>>> fcd89785ae81782a380ec11f8a8c0d22c789c202 title={Colenak: GPS tracking model for post-stroke rehabilitation program using AES-CBC URL encryption and QR-Code}, author={Awangga, Rolly Maulana and Fathonah, Nuraini Siti and Hasanudin, Trisna Irmayadi}, booktitle={Information Technology, Information Systems and Electrical Engineering (ICITISEE), 2017 2nd International conferences on}, @@ -26,6 +30,20 @@ @article{chen2014web publisher={IEEE} } +@article{utamipemrograman, + title={PEMROGRAMAN TERDISTRIBUSI MENGGUNAKAN PYTHON MERUPAKAN ALTERNATIF YANG SEDERHANA DAN MENARIK DALAM MEMBANGUN SISTEM SEKELAS SUPERKOMPTER DENGAN ALOKASI DANA YANG RENDAH}, + author={Utami, Ema and Ridho, Mahdi} +} + +@inproceedings{van2007python, + title={Python Programming Language.}, + author={Van Rossum, Guido and others}, + booktitle={USENIX Annual Technical Conference}, + volume={41}, + pages={36}, + year={2007} +} + @article{priyambodo2005implementasi, title={Implementasi web-Service untuk pengembangan layanan pariwisata terpadu}, @@ -6790,3 +6808,263 @@ @article{taneja2014python year={2014}, publisher={Jagan Institute of Management Studies, Rohini} } + +@inproceedings{balaji2013sentinel, + title={Sentinel: occupancy based HVAC actuation using existing WiFi infrastructure within commercial buildings}, + author={Balaji, Bharathan and Xu, Jian and Nwokafor, Anthony and Gupta, Rajesh and Agarwal, Yuvraj}, + booktitle={Proceedings of the 11th ACM Conference on Embedded Networked Sensor Systems}, + pages={17}, + year={2013}, + organization={ACM} +} + +@inproceedings{marosi2018novel, + title={A novel IoT platform for the era of connected cars}, + author={Marosi, Attila Csaba and Lovas, R{\'o}bert and Kisari, {\'A}d{\'a}m and Simonyi, Ern{\"o}}, + booktitle={Future IoT Technologies (Future IoT), 2018 IEEE International Conference on}, + pages={1--11}, + year={2018}, + organization={IEEE} +} + +@article{romero2016security, + title={Security in the industrial internet of things}, + author={Romero-Mariona, Jose and Hallman, Roger and Kline, Megan and San Miguel, John and Major, Maxine and Kerr, Lawrence}, + year={2016} +} + +@article{crespo2012grado, + title={GRADO EN INGENIER{\'I}A INFORM{\'A}TICA INGENIER{\'I}A DE COMPUTADORES}, + author={Crespo, Marta Aguirre}, + year={2012} +} + +@article{hirschbergreal, + title={Real-time wait time prediction for customers}, + author={Hirschberg, David and Hess, David and Silver, Alex and Alba, Nicholas} +} + +@article{zumsandedesign, + title={Design and Development of a Remote Lab for Hands-On Education in Mechatronics and Control Engineering}, + author={Zumsande, J and Bosselmann, S and Dagen, M and Ortmaier, T} +} + +@article{dong2015chemdes, + title={ChemDes: an integrated web-based platform for molecular descriptor and fingerprint computation}, + author={Dong, Jie and Cao, Dong-Sheng and Miao, Hong-Yu and Liu, Shao and Deng, Bai-Chuan and Yun, Yong-Huan and Wang, Ning-Ning and Lu, Ai-Ping and Zeng, Wen-Bin and Chen, Alex F}, + journal={Journal of cheminformatics}, + volume={7}, + number={1}, + pages={60}, + year={2015}, + publisher={Nature Publishing Group} +} + +@article{wood2018ccbuilder, + title={CCBuilder 2.0: Powerful and accessible coiled-coil modeling}, + author={Wood, Christopher W and Woolfson, Derek N}, + journal={Protein Science}, + volume={27}, + number={1}, + pages={103--111}, + year={2018}, + publisher={Wiley Online Library} +} + +@book{mulone2012web2py, + title={web2py Application Development Cookbook}, + author={Mulone, Pablo Martin and Reingart, Mariano}, + year={2012}, + publisher={Packt Publishing Ltd} +} + +@article{true150828teaplot, + title={Teaplot v0. 1: A browser-based 3D engine for animating TEACUP experiment data}, + author={True, Isaac and Armitage, Grenville and Branch, Philip}, + journal={Centre for Advanced Internet Architectures, Swinburne University of Technology, Melbourne, Australia, Tech. Rep. A}, + volume={150828}, + pages={28} +} + +@book{maia2015building, + title={Building Web Applications with Flask}, + author={Maia, Italo}, + year={2015}, + publisher={Packt Publishing Ltd} +} + +@article{mulerolinked, + title={Linked Open Data Management in Ambient Assisted Cities}, + author={Mulero, Ruben and Urosevic, Vladimir and Almeida, Aitor} +} + +@article{swain2018tethys, + title={Tethys Platform Documentation}, + author={Swain, Nathan}, + year={2018} +} + +@article{pellicer2016desarrollo, + title={Desarrollo e implementacion en Django de una plataforma en la nube para la gestion y monitorizacion de maquinas de analitica clinica}, + author={Pellicer Collado, Luis}, + year={2016} +} + +@misc{cencini2017data, + title={Data center management}, + author={Cencini, Andrew Brian and White, Steven and Crawford, Cole Malone}, + year={2017}, + month=mar # "~23", + publisher={Google Patents}, + note={US Patent App. 15/366,554} +} + +@misc{reingart2012web2py, + title={web2py Application Development Cookbook}, + author={Reingart, Mariano and Rocha, Bruno Cezar and Lundell, Jonathan and Mulone, Pablo Mart{\'\i}n and Comitini, Michele and Gordon, Richard and Di Pierro, Massimo}, + year={2012}, + publisher={Packt Publishing, March} +} + +@phdthesis{beran2017analyza, + title={Anal{\`y}za soubor{\uu} ze s{\'\i}t'ov{\'e}ho provozu}, + author={Beran, Michal}, + year={2017}, + school={Masaryk University, Faculty of Informatics} +} + +@phdthesis{rudiana2015perancangan, + title={PERANCANGAN SISTEM WEB SERVICE DATA LOGGER MENGGUNAKAN BAHASA PEMROGRAMAN PYTHON DAN FRAMEWORK FLASK}, + author={RUDIANA, ANGGA and Muhammad Arrofiq, ST}, + year={2015}, + school={Universitas Gadjah Mada} +} + +@article{rajagukguksearch, + title={Search results for" Web API}, + author={Rajagukguk, Jan Peter Alexander} +} + +@mastersthesis{Guo Mingyang 2016 Research on the Control of Agricultural Factory Production Process, + title={ Study on the Control of Agricultural Factory Production Process}, + author={Guo Ming Yang}, + year={2016}, + school={Zhejiang Sci-Tech University} +} + +@inproceedings{annamaa2015introducing, + title={Introducing Thonny, a Python IDE for learning programming}, + author={Annamaa, Aivar}, + booktitle={Proceedings of the 15th Koli Calling Conference on Computing Education Research}, + pages={117--121}, + year={2015}, + organization={ACM} +} + +@inproceedings{helminen2010jype, + title={Jype-a program visualization and programming exercise tool for Python}, + author={Helminen, Juha and Malmi, Lauri}, + booktitle={Proceedings of the 5th international symposium on Software visualization}, + pages={153--162}, + year={2010}, + organization={ACM} +} + +@article{rosmalasarana, + title={Sarana Promosi Web Dengan Teknik Re-engineering (Manipulasi) Web Traffic Menggunakan Browser Lynx}, + author={Rosmala, Dewi and Adityawarman, Randy} +} + +@article{fifli2016pirhoogammarhoalphamumualpha, + title={Supervision of data transfer with Python}, + author={Fifli, Konstantina}, + year={2016}, + publisher={TEI of Crete} +} + +@inproceedings {edwards2014pythy, + title = {Pythy: meningkatkan pengalaman pemrograman python pengantar}, + penulis = {Edwards, Stephen H dan Tilden, Daniel S dan Allevato, Anthony}, + booktitle = {Prosiding simposium teknis ACM ke-45 pada pendidikan ilmu komputer}, + halaman = {641--646}, + tahun = {2014}, + organisasi = {ACM} +} + +@inproceedings {van2007python, + title = {Python Programming Language.}, + author = {Van Rossum, Guido, dan lainnya}, + booktitle = {USENIX Annual Technical Conference}, + volume = {41}, + halaman = {36}, + tahun = {2007} +} + +@article{aripurnamayana2012rancangan, + title={Rancangan Dan Pembuatan Mobile Learning Berbasis Android (Studi Kasus: Pembelajaran Sejarah Di SMP)}, + author={Aripurnamayana, M Irfan}, + journal={Jurnal Informatika Universitas Gunadarma}, + pages={1--9}, + year={2012} +} + +@article{wicaksana2013user, + title={User Guide Aplikasi Ekstraksi Tabel HTML}, + author={Wicaksana, I and Purnamasari, Detty and Banowosari, Lintang Yuniar and Rachmadeni, Lucky}, + journal={User Guide Aplikasi Ekstraksi Tabel HTML}, + year={2013}, + publisher={Gunadarma University} +} + +@inproceedings{helminen2010jype, + title={Jype-a program visualization and programming exercise tool for Python}, + author={Helminen, Juha and Malmi, Lauri}, + booktitle={Proceedings of the 5th international symposium on Software visualization}, + pages={153--162}, + year={2010}, + organization={ACM} +} + +@misc{swarnkar2013survey, + title={A Survey on Performance of different Text Editor}, + author={Swarnkar, Virendra Kumar and Satao, KJ}, + year={2013}, + publisher={Citeseer} +} + +@incollection{tateosian2015beginning, + title={Beginning Python}, + author={Tateosian, Laura}, + booktitle={Python For ArcGIS}, + pages={13--35}, + year={2015}, + publisher={Springer} +} +@book{islam2015mastering, + title={Mastering PyCharm}, + author={Islam, Quazi Nafiul}, + year={2015}, + publisher={Packt Publishing Ltd} +} +@book{nahado2015bumbu, + title={Bumbu Bumbu Membuat Website: Cara Membuat Website Cantik dan Mudah}, + author={Nahado, Moh Royhan}, + year={2015}, + publisher={Bang Roy Han} +} + +@inproceedings{ramos2014implementing, + title={Implementing Python for DrRacket}, + author={Ramos, Pedro Palma and Leit{\~a}o, Ant{\'o}nio Menezes}, + booktitle={OASIcs-OpenAccess Series in Informatics}, + volume={38}, + year={2014}, + organization={Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik} +} + +@phdthesis{malikhah2016eksplorasi, + title={Eksplorasi Python Untuk Penyesuaian Modul Perkuliahan dan Praktikum di Teknik Informatika Unpas}, + author={MALIKHAH, NUR SOFIA and others}, + year={2016}, + school={Fakultas Teknik Unpas} +} \ No newline at end of file diff --git a/section/1uwsgi.tex b/section/1uwsgi.tex new file mode 100644 index 0000000..32601f7 --- /dev/null +++ b/section/1uwsgi.tex @@ -0,0 +1,247 @@ +\documentclass[12pt, times new roman, a4paper]{Article} +\begin{document} + +%Resume uWSGI D4TI2A Kelompok 3 +%\begin{enumerate} +%\item Aldi Maulana Yusuf 1164001 +%\item Dieni Hanifah 1164008 +%\item Ikrima Ningrumsari Mulyana 1164013 +%\item Muhammad Farid Alwan Assyifa 1164017 +%\item Rojasqi Fadilla 1164026 +%\end{enumerate} + +\section{macam-macam definisi uwsgi} + uWSGI merupakan antarmuka Gateway Server Web yang ditulis dalam C, Nginx merupakan sebuah web server untuk menjalankan skrip python dan Uwsgi merupakan antarmuka yang didukung oleh web server nginx yang biasanya di implementasikan dengan kerangka kerja flask. Nginx terhubung ke protokol uWSGI untuk mengaktifkan frontend web berbasis kinerja tinggi WSGI. uWSGI melengkapi NGiNX dengan menangani dinamika konten \cite{balaji2013sentinel}.\\ + + uWSGI juga merupakan protokol komunikasi untuk jaringan, maka uWSGI yang akan menanggapi Nginx melalui protokol WSGI. Lalu data dinamis dari interaksi antara program komputasi pada Python dan uWSGI yang akan behubungan dengan Nginx, maka Nginx dapat berkomunikasi dengan kode Python backend menggunakan uWSGI lalu uWSGI akan menjalankan kode Python pada program tersebut \cite{hirschbergreal}.\\ + + Server aplikasi uWSGI dapat menangani permintaan dinamis. testbed dapat dikontrol dengan menentukan sinyal Simulink dan parameter (misalnya variabel referensi, gain factor, parameter fungsi transfer) atau fungsi (misalnya start / stop, reset, dan perpindahan aliran sinyal). Karena penggunaan UDP blok Simulink, para RCL dapat disalurkan ke testbeds Simulink dan dikontrol dengan mudah \cite{zumsandedesign}.\\ + + uWSGI itu sendiri adalah sebuah proyek besar dengan banyak komponen, yang bertujuan untuk memberikan full [software] stackuntuk building hosting services. Salah satu komponen ini, server uWSGI, menjalankan aplikasi Python WSGI. Ini mampu menggunakan berbagai protokol, termasuk protokol kawat uwsgi sendiri , yang quasi-identik dengan SCGI. Dalam rangka memenuhi permintaan untuk menggunakan server HTTP yang berdiri sendiri di depan server aplikasi, nginx dan Cherokee server web Modular untuk mendukung uWSGI protokol untuk memiliki kontrol langsung atas proses nya \cite{dong2015chemdes}.\\ + + uWSGI juga merupakan aplikasi yang memproses kode Python dan menyediakan WSGI (Layanan Web Gateway Interface) yang memungkinkan server web untuk berkomunikasi Dengan Django, yaitu, dalam prakteknya Nginx menawarkan traffic dan aplikasi Djangos ke uWSGI menangani lalu lintas yang diterima. WSGI adalah antarmuka standar untuk server dan komunikasi aplikasi. Untuk setiap aplikasi Django, konfigurasikan pengaturan uWSGI yang dapat digunakan Tentukan berbagai pengaturan terkait serve \cite{wood2018ccbuilder}.\\ + + \section{Macam-macam Cara Instalasi UWSGI} + Cara install uWSGI Resep ini menjelaskan cara menjalankan web2py di belakang server web Cherokee menggunakan uWSGI. Cherokee adalah webserver yang ditulis dalam bahasa C, serupa dengan maksud untuk Lighttpd: cepat, kompak, dan modular. Cherokee hadir dengan antarmuka administratif yang memungkinkan seseorang untuk mengelola konfigurasinya,yang sulit dibaca dan dimodifikasi sebaliknya. uWSGI digambarkan di situs webnya sebagai cepat(murni C), penyembuhan diri sendiri, server aplikasi kontainer pengembang / sysadmin-friendly. Cherokee punya modul yang disertakan untuk berbicara dengan server uWSGI. Instal paket atau unduh, kompilasi, dan instal komponen yang diperlukan. Buat file berikut di root instalasi web2py, dan beri nama uwsgi.xml:\\ + +\verb|| \\ +\verb| / home / web2py | \\ +\verb| wsgihandler | \\ +\verb| 127.0.0.1:37719 | \\ +\verb|| \\ +\verb| 8 | \\ +\verb|| \\ +\verb|| \\ + + Konfigurasi ini memunculkan delapan proses untuk mengelola beberapa permintaan dari +Server HTTP. Ubah sesuai kebutuhan, lalu konfigurasikan ke instalasi +akar web2py.\\ +1. Sebagai pengguna yang memiliki instalasi web2py, mulai server uWSGI: \$ uWSGI -d uwsgi.xml\\ +2. Sekarang luncurkan antarmuka administratif Cherokee untuk membuat konfigurasi baru:\\ +\$ cherokee-admin\\ +3. Hubungkan ke antarmuka admin dengan browser di tautan berikut:\\ +\verb|http: // localhost: 9090 /|\\ +4. Pergi ke bagian Sumber - (A), lalu klik tombol + - (B).\\ +5. Pilih Remote Host on (C), lalu isi kolom teks di (D) dengan alamat IP, dan port untuk mencocokkan konfigurasi dalam file uswgi.xml sebelumnya. Setelah mengkonfigurasi sumber uWGI, sekarang mungkin untuk mengkonfigurasi Virtual Host, dan mengalihkan permintaan melalui itu. Dalam resep ini, kita memilih Virtual Host default yang ada digunakan ketika tidak ada Virtual Host lain yang memiliki kecocokan yang lebih baik untuk permintaan yang masuk.\\ +6. Klik pada tombol (C) untuk pergi ke Manajemen Aturan.\\ +7. Hapus semua aturan yang tercantum di sebelah kiri. Hanya aturan default yang akan tetap ada.\\ +8. Konfigurasikan aturan default dengan uWSGI Handler. Biarkan nilai-nilai lain tidak berubah.\\ +9. Jika Anda ingin Cherokee menyajikan file statis langsung dari folder web2py, Anda dapat menambahkan Aturan Ekspresi Reguler. Klik tombol (A), dan pilih Ekspresi Reguler dari menu drop-down di (B). Ketahuilah bahwa konfigurasi ini hanya berfungsi jika web2py direktori berada pada sistem file yang sama, dan dapat diakses oleh Cherokee.\\ +10. Konfigurasikan Ekspresi Reguler\\ +11. Sekarang Anda dapat mengkonfigurasi Penangan Statis yang menunjuk ke subdirektori aplikasi instalasi web2py Anda:\\ +- Ingat untuk menyimpan konfigurasi, dan memuat kembali atau memulai kembali Cherokee dari antarmuka administratif; maka Anda siap untuk memulai server uWSGI.\\ +12. Ubah ke ID pengguna yang benar yang digunakan untuk menginstal web2py; Sadarilah bahwa menggunakan root tidak disarankan.\\ +13. Pergilah ke direktori root dari instalasi web2py, di mana Anda menyimpan konfigurasi file uwsgi.xml.\\ +14. Jalankan uWSGI dengan opsi -d , sehingga berjalan di latar belakang:\\ +\verb|$ su - |\\ +\verb|$ cd |\\ +\verb|$ uwsgi -x uwsgi.xml -d /tmp/uwsgi.log\cite{mulone2012web2py}|\\ + + + Salah satu contoh dari implementasi uwsgi yaitu pada BuildingSherlock: Kerangka Manajemen Kerusakan untuk HVAC. BDSherlock telah dirancang sebagai layanan web, karena menyediakan +fleksibilitas, skalabilitas, dan kemudahan pengembangan. Kami telah membangun BDSherlock +di atas BuildingDepot (BDDepot), sebuah data pembangunan open source +kerangka penyimpanan. BDDepot mengekspos API RESTful untuk penyimpanan dan +mengambil data sensor, menghubungkan metadata, dan menyediakan akses +kontrol. Data dari berbagai sumber dikumpulkan di BDDepot dan bertindak sebagai layanan manajemen informasi kami. Sistem di Bangunan Komersial. Diimplementasikan menggunakan server web nginx, uWSGI dan Python Kerangka flask. BDDepot menggunakan basis data Cassandra untuk menyimpan sensor data \cite{teraoka2014buildingsherlock}.\\ + + Pada prosedur pemasangan berikut ini menguraikan tindakan yang diperlukan untuk menginstal Teaplot pada FreeBSD berbasis sistem. Perintah yang diinputkan pertama kali dengan menggunakan karakter (\#) hastag untuk menunjukkan bahwa eksekusi harus dilakukan di dalam shell dengan root untuk hak aksesnya , sedangkan \$ menunjukkan hak-hak atas tingkatan penggunanya dalam mengakses\\ + +1. Jika TEACUP belum terintall maka bias didownload maelalui laman http://downloads.sourceforge.net/ + project/teacup/teacup-1.0.tar.gz. Informasi tambahan dapat diperoleh dari laporan CAIA nya.\\ +2. kemudian kita extract arsip instalasi Teaplotnya kedalam TEACUP dengan direktorinya \\ +\verb|(\$TEACUP_DIR)|dengan cara :\\ +\verb|\$ cd \$TEACUP_DIR|\\ +\verb|\$ tar xvf teaplot-0.1.txz|\\ +3. Setelah itu untuk menerapkan patch Teaplot kedalam file fabfile.py didalam direktori yang sama menggunakan peintah :\\ + \$ patch -p1 < teaplot.patch\\ +4. Menginstal system dependesi di FreeBSD dengan cara sebagai berikut :\\ + \# pkg install py27-django py27-scipy py27-numpy uwsgi spp\\ +5. Setelah menginputkan data diatas, maka Instalasi telah selesai di FreeBSD. Teaplot sekarang bisa dijalankan melalui fabfile di\\ + direktori \verb|(\$FABFILE_DIR)| atau memanggil tugas Fabric “animate” dengan cara :\\ +\verb|\$ cd \$FABFILE_DIR|\\ +\verb|\$ fab animate|\\ \cite{true150828teaplot}.\\ + + Instalasi uWSI menggunakan web server Nginx, Untuk uWSGI kita perlu menginstallnya seperti berikut : +Ketik, “ pip install uwsgi “, (tanpa tanda “ ”) untuk awal menginstall uWSGI, +Sekarang, di dalam folder bin virtualenv kamu, akan ada perintah uWSGI. cari +di mana letak perintah uWSGI itu karena kita akan membutuhkannya. Setelah itu +Buat file wsgi.py di dalam folder proyek Anda dengan konten berikut:\\ +\# coding:utf-8\\ +from main import \verb|app_factory|\\ +\verb|app = app_factory(name="myproject")|\\ + + Sebuah uWSGI menggunakan instance aplikasi dari file yang telah kita buat di atas untuk terhubung ke aplikasi kita. Sebuah \verb|app_factory| adalah fungsi dari bawaan pabrik yang menciptakan aplikasi kita. Pastikan saja aplikasi yang dibuat sudah dikonfigurasi dengan benar. Selanjutnya, kita melanjutkan untuk menghubungkan uWSGI ke aplikasi kita. kita dapat memanggil binary uWSGI kita dengan semua parameter yang diperlukan untuk memuat wsgi kita. file \verb|‘py’| langsung dari baris perintah atau kita dapat membuat file \verb|‘ini’| , dengan semua konfigurasi yang diperlukan, dan hanya memberikannya ke binary. Seperti yang Anda lihat, pendekatan kedua biasanya lebih baik, jadi buatlah file ‘ini’ seperti berikut:\\ + +[uwsgi]\\ +user-home = /home/your-system-username\\ +project-name = myproject\\ +project-path = %(user-home)/%(myproject)\\ +\# make sure paths exist\\ +socket = %(user-home)/%(project-name).sock\\ +pidfile = %(user-home)/%(project-name).pid\\ +logto = /var/tmp/uwsgi.%(prj).log\\ +touch-reload = /tmp/reload\\ +chdir = %(project-path)\\ +wsgi-file = %(project-path)/wsgi.py\\ +callable = app\\ +chmod-socket = 664\\ +master = true\\ +processes = 5\\ +vacuum = true\\ +die-on-term = true\\ +optimize = 2\\ + +The user-home, project-name, dan project-path adalah alias yang kita gunakan untuk membuat pekerjaan kita lebih mudah. Opsi socket menunjuk ke file socket yang akan digunakan server HTTP kita untuk berkomunikasi dengan aplikasi kita. +Kita sekarang dapat mengatur server HTTP kita, ini merupakan langkah yang mudah. Cukup instal Nginx sebagai berikut:\\ +“ sudo apt-get install nginx-full “ tanpa tanda (“”) +Sekarang, server http kita sudah aktif dan berjalan di port 80. Mari kita pastikan Nginx tahu tentang aplikasi kita. Tuliskan kode berikut ke sebuah file di proyek kita di dalam / etc / nginx / sites-available:\\ +server {\\ +listen 80;\\ +\verb|server_name PROJECT_DOMAIN;|\\ +location /media {\\ +alias /path/to/media;\\ +}\\ +location /static {\\ +alias /path/to/static;\\ +}\\ +location / {\\ +\verb|include /etc/nginx/uwsgi_params;|\\ +\verb|uwsgi_pass unix:/path/to/socket/file.sock;|\\ +}\\ +}\\ +File konfigurasi sebelumnya menciptakan server virtual yang berjalan pada port 80. Kita perlu membuat satu file terakhir di dalam / etc / init yang akan mendaftarkan proses uWSGI kita sebagai layanan. Bagian ini sangat mudah, buat saja file di project kamu dengan nama file conf dengan kode sebagai berikut:\\ +description "uWSGI application my project"\\ +start on runlevel [2345]\\ +stop on runlevel [!2345]\\ +setuid your-user\\ +setgid www-data\\ +exec /path/to/uwsgi --ini /path/to/ini/file.ini\\ +Jika semuanya berjalan dengan baik, berarti instalasi berhasil \cite{maia2015building}.\\ + +Setelah sertifikat SSL diperoleh, maka sertifikat perlu direferensikan pada konfigurasi Nginx, yang merupakan server web yang Tethys, lalu file konfigurasi Nginx atau uWSGI akan ditampilkan. Lalu buat salinan blok server yang tidak aman dan tempelkan di bawah yang asli. Lalu masuk ke Proxy Base URL terakhir restart Nginx untuk melihat hasil install\cite{swain2018tethys}. + + Berikut merupakan Instal paket atau men-download, mengkompilasi dan menginstal komponen-komponen yang diperlukan. +Buat file berikut di akar instalasi web2py, dan menyebutnya uwsgi.xml:\\ +\verb|| +\\ \verb|/home/web2py| +\\ \verb|wsgihandler| +\\ \verb|127.0.0.1:37719| +\\ \verb|| +\\ \verb|8| +\\ \verb|| +\\ \verb|| + +\begin{enumerate} +\item Konfigurasi ini menghasilkan delapan proses untuk mengelola beberapa permintaan dari +HTTP server. Mengubah yang diperlukan, dan mengkonfigurasi \verb|| ke instalasi +akar web2py \verb||. +\item kemudian sebagai user yang memiliki instalasi web2py, mulai server uWSGI :\\ \$ uWSGI -d uwsgi.xml +\item Sekarang luncurkan antarmuka administratif Cherokee untuk membuat konfigurasi baru:\\ \$cherokee-admin +\item lalu konekkan kedalam browser admin dengan link : http://localhost:9090/. +\item kemudian kelik tombol + - +\item Pilih Remote Host on (C), lalu isi kolom teks di (D) dengan alamat IP, dan port untuk mencocokkan konfigurasi dalam file uswgi.xml sebelumnya. +\item Setelah mengkonfigurasi sumber uWGI, sekarang mungkin untuk mengkonfigurasi Virtual Host, dan +mengalihkan permintaan melalui itu. Dalam resep ini, kita memilih Virtual Host default +\item kemudian klik button rule management +\item Hapus semua aturan yang tercantum di sebelah kiri. Hanya aturan default yang akan tetap ada +\item Konfigurasikan aturan default dengan uWSGI Handler. Biarkan nilai-nilai lain tidak berubah +\item Jika Anda ingin Cherokee untuk melayani file statis langsung dari folder web2py, Anda dapat menambahkan Aturan Ekspresi Reguler. Klik tombol (A), dan pilih Ekspresi Reguler dari menu drop-down di (B). Ketahuilah bahwa konfigurasi ini hanya berfungsi jika web2py direktori berada pada sistem file yang sama, dan dapat diakses oleh Cherokee. +\item konfigurasi ke dalam regular expressions +\item Sekarang Anda dapat mengkonfigurasi Penangan Statis yang menunjuk ke subdirektori aplikasi +instalasi web2py Anda:\\ +\verb - Ingat untuk menyimpan konfigurasi, dan kembali atau mulai ulang Cherokee dari antarmuka administratif; maka Anda siap untuk memulai server uWSGI\\ +\verb - Ubah ke ID pengguna yang benar yang digunakan untuk menginstal web2py;\\ +\verb - Sadarilah bahwa menggunakan +root tidak disarankan.\\ +\verb - Pergilah ke direktori root dari instalasi web2py, di mana Anda menyimpan konfigurasi file uwsgi.xml. +\item Jalankan uWSGI dengan opsi -d , sehingga berjalan di latar belakang: +\\ \$ su - +\\ \$ cd +\\ \$ uwsgi -x uwsgi.xml -d /tmp/uwsgi.log \cite{reingart2012web2py}.\\ + +Pada penginstallan uwsgi sertifikat ssl tersebut direferensikan pada konfigurasi Nginx yang merupakan server web yang Tethys, kemudian file konfigurasi pada Nginx atau uWSGI akan menampillkan halaman Nginx atau UWSGI lalu salin blok server Kemudian masuk ke Proxy Base URL setelah selasai, restart Nginx untuk melihat hasil install Nginx atau UWSGI tersebut\cite{pellicer2016desarrollo}. + +\section{Contoh - Contoh uWSGI} + Flask micro-framework merupakan pustaka Python yang dapat membantu untuk pembuatan Web. uWSGI merupakan implementasi protokol WSGI, uWSGI dapat menangani transmisi data antara kode Python . Perbedaan diantara uWSGI dan Flask adalah bahwa uWSGI berfungsi sebagai aplikasi namun tidak hanya aplikasi sekarang UWSGI dapat dijalankan dimana saja sedangkan Flask berfungsi untuk membantu pembuatan web \cite{mulerolinked}.\\ + uWSGI mendukung berbagai protokol dan cara untuk mengambil file konfigurasi seperti stdin dan http. contohnya +\verb |\# uwsgi [option] [option 2] .. -w [wsgi.py with application callable]|\\ + +\# Simple server running *wsgi*\\ +uwsgi --socket 127.0.0.1:8080 -w wsgi\\ + +\# Running Pyramid (Paster) applications\\ +uwsgi --ini-paste production.ini\\ + +\# Running web2py applications\\ +uwsgi --pythonpath /path/to/app --module wsgihandler\\ + +\# Running WSGI application with specific module / callable names\\ +\verb|uwsgi --module wsgi_module_name --callable application_callable_name|\\ +\verb|uwsgi -w wsgi_module_name:application_callable_name|\\ +Meskipun mudah membingungkan dan sulit untuk dikelola, cara paling dasar untuk menjalankan uWSGI sama seperti skrip shell lainnya - dengan menyediakan konfigurasi yang diperlukan sebagai argumen\cite{cencini2017data}.\\ + + + + +\end{enumerate} +Sebagai contoh uWSGI sendiri merespon server menuju Nginx melalui protocol wsgi, maka Data dinamis dari interaksi program +komputasi Python kemudian uWSGI akan berinteraksi dengan Nginx, dan yang terakhir akan menyajikan hasil kepada klien dalam\ +bentuk konten statis. Selain itu, untuk memenuhi kebutuhan waktu untuk operasi data, penyedia telah mengoptimalkan beberapa +parameter terkait dari Nginx dan uWSGI seperti max requestsi harakiri and keepalive timeout.\\ + + Dengan menggunakan arsitektur tertentu, keseimbangan antara sumber daya sistem dan efisiensi komputasi dipertahankan. independensi yang baik dan operasi data yang aman kemudian akses file dari permintaan yang berbeda juga dapat diajamin. Untuk memberikan layanan komputasi secara online berbasis web, antarmuka pengguna harus nyaman dan mudah digunakan untuk pengguna sehingga pengguna dapat lebih mudah mengoprasikannya\cite{dong2015chemdes}.\\ + + Dengan menggunakan arsitektur tertentu, keseimbangan antara sumber daya sistem dan efisiensi komputasi dipertahankan. independensi yang baik dan operasi data yang aman kemudian akses file dari permintaan yang berbeda juga dapat diajamin. Untuk memberikan layanan komputasi secara online berbasis web, antarmuka pengguna harus nyaman dan mudah digunakan untuk pengguna sehingga pengguna dapat lebih mudah mengoprasikannya\cite{dong2015chemdes}.\\ + + uWSGI merupakan antarmuka yang menjembatani web server yang ditulis dalam bahasa C, dan biasanya juga digunakan untuk mengakses REST API, uWSGI juga yang menjadikan layanan tersedia sebagai aplikasi, dan antarmuka web Nginx yang membuatnya dapat diakses ke Internet dan memungkinkan manajemen koneksi. Berikut contoh pengimplementasian uWSGI menggunakan REST API terlihat sebagai berikut :\\ +\verb|[ uwsgi ]| +plugins = python\\ +chdir = /home/cuckoo/cuckoo \\ +f i l e = u t i l s /api . py\\ +uid = cuckoo\\ +gid = cuckoo\\ +c a l l a b l e = app\\ + +Dan untuk mengakses ke aplikasi, kita mengatur web server kita nginx sebagai berikut :\\ +\verb|upstream api {|\\ +s e rve r unix :/ run/uwsgi/app/cuckoo−api/socket ;\\ +\verb|}|\\ +\verb|s e rve r {|\\ +l i s t e n 8 09 0;\\ +l i s t e n [ : : ] : 8 0 9 0 ipv6only=on ;\\ +\# REST API app +l o c a t i on / \verb|{| \\ +\verb|uwsgi_pass| api ;\\ +\verb|include /e t c/nginx/uwsgi_params ;|\\ +allow 1 4 7 . 2 5 1 . 1 7 . 0/1 6 ; \\ +deny a l l ;\\ + +Dalam pengaturan, seperti halnya untuk server, akses ke alamat IP terbatas berasal dari lingkup aplikasi kita. Server REST API berjalan di port 8090 sehingga tidak tumpang tindih dengan antarmuka web \cite{beran2017analyza}.\\ + +Layanan web yang dapat memproses data struktural dan memiliki keamanan yang tinggi maka diperlukan aplikasi yang dapat logging data. Aplikasi dengan layanan web ini dibuat dengan pemrograman bahasa Python dengan kerangka labu digunakan untuk mengatur URL dengan protokol uWSGI dengan sistem lengkap aplikasi dapat diakses oleh internet dengan membuka alamat web aplikasi\cite{rudiana2015perancangan}. + +\end{document} + + + diff --git a/section/2idepython.tex b/section/2idepython.tex new file mode 100644 index 0000000..fd977ca --- /dev/null +++ b/section/2idepython.tex @@ -0,0 +1,127 @@ + +%Resume Tentang IDE Python D4TI2A Kelompok 3 +%\begin{enumerate} +%\item Aldi Maulana Yusuf 1164001 +%\item Dieni Hanifah 1164008 +%\item Ikrima Ningrumsari Mulyana 1164013 +%\item Muhammad Farid Alwan Assyifa 1164017 +%\item Rojasqi Fadilla 1164026 +%\end{enumerate} + + +\section {Pengertian IDE} + IDE (Integrated Development Environment) merupakan sebuah program komputer yang mempunyai fasilitas - fasilitas yang diperlukan untuk pembangunan dan pengembangan software atau perangkat lunak. Sedangkan tujuan dari IDE ini sendiri yaitu sebagai penyedia utilitas - utilitas yang diperlukan untuk pembangunan maupun pengembangan software atau perangkat lunak. Setidaknya IDE mempunyai fasilitas - fasilitas seperti, Editor (untuk menuliskan kode), Compiler (Untuk mengecek kode,dan mengubahnya kedalam bentuk binary), Linker (Untuk menyatukan data binary yang dihasilkan compiler), Debuger (Untuk mengetes jalanya program).\\ + + IDE sendiri sebuah software yang digunakan untuk membuat program , sebuah Integrated Development Environment (IDE) terdiri dari source code editor build automation tools dan debugger untuk menulis sebuah program. Kita bisa menggunakan text editor atau IDE nya. +Beberapa contoh Integrated Development Environment (IDE) untuk Python antara lain \\ +\begin{itemize} +\item Komodo +\item LiClipse +\item NetBeans +\item PyCharm +\item KDevelop +\item PyDev +\item Wing IDE\cite{aripurnamayana2012rancangan}. +\end{itemize} + +\section{Definisi Tentang Python} + Python merupakan salah satu bahasa pemrograman dari banyak bahasa pemrograman seperti contohnya java, C, C++ dan lain-lain. Python adalah bahasa pemrograman yang freeware atau perangkat bebas dalam arti sebenarnya, tidak ada batasan dalam penyalinannya atau mendistribusikannya. Bahasa pemrograman python ini menjadi umum dan banyak digunakan di kalangan programmer seluruh dunia dalam pembuatan software atau perangkat lunaknya. Python juga adalah bahasa pemrograman yang sangat populer didunia saat ini, nomor 2 setelah Java. Hal tersebut membuktikan bahwa banyak programmer yang menggunakan bahasa python. Selain dapat digunakan untuk membuat aplikasi desktop, python juga dapat digunakan untuk membuat aplikasi web, pembuatan game dan lain sebagainya \cite{malikhah2016eksplorasi}.\\ + + Python adalah bahasa pemrograman multi-paradigma : pemrograman berorientasi obyek dan pemrograman terstruktursepenuhnya didukung, dan ada sejumlah fitur bahasa yang mendukung pemrograman fungsional dan pemrograman berorientasi aspek (termasuk oleh metaprogramming dan dengan metode sihir ). Banyak paradigma lain didukung menggunakan ekstensi, termasuk desain dengan kontrak dan pemrograman logika . +Python menggunakan pengetikan dinamis dan kombinasi penghitungan referensi dan pengumpul sampah pendeteksi siklus untuk manajemen memori . Fitur penting dari Python adalah resolusi nama dinamis (late binding), yang mengikat metode dan nama variabel selama eksekusi program. +Desain Python hanya menawarkan dukungan terbatas untuk pemrograman fungsional dalam tradisi Lisp . Bahasa memiliki fungsi map (), mengurangi () dan filter (), pemahaman untuk daftar, kamus, dan set, serta ekspresi generator. Perpustakaan standar memiliki dua modul (itertools dan functools) yang mengimplementasikan alat-alat fungsional yang dipinjam dari Haskell dan Standard ML +Pernyataan Python termasuk (antara lain):\\ + +\begin{itemize} +\item The ifpernyataan, yang kondisional mengeksekusi blok kode, bersama dengan elsedan elif(kontraksi lain-jika).\\ +\item The forpernyataan , yang iterates atas obyek iterable, menangkap setiap elemen untuk variabel lokal untuk digunakan oleh blok terpasang.\\ +\item The whilepernyataan , yang mengeksekusi blok kode selama kondisinya benar.\\ +\item The trypernyataan, yang memungkinkan pengecualian dibesarkan di blok kode yang melekat ditangkap dan ditangani oleh exceptklausa; itu juga memastikan bahwa kode pembersihan di finallyblok akan selalu dijalankan terlepas dari bagaimana blok keluar.\\ +\item The classpernyataan , yang mengeksekusi blok kode dan menempel namespace lokal untuk kelas , untuk digunakan dalam pemrograman berorientasi objek .\\ +\item The defpernyataan, yang mendefinisikan fungsi atau metode.\\ +\item The withpernyataan (dari Python 2.5), yang membungkus sebuah blok kode dalam manajer konteks (misalnya, memperoleh kunci sebelum blok kode dijalankan, dan melepaskan kunci setelah itu).\\ +\item The passpernyataan, yang berfungsi sebagai NOP . Ini secara sintaktis diperlukan untuk membuat blok kode kosong.\\ +\item The assertpernyataan, digunakan selama debugging untuk memeriksa kondisi yang seharusnya berlaku.\\ +\item The yieldpernyataan, yang mengembalikan nilai dari pembangkit fungsi. Dari Python 2.5, yieldjuga merupakan operator. Formulir ini digunakan untuk mengimplementasikan coroutines .\\ +\item The importpernyataan, yang digunakan untuk modul impor yang fungsinya atau variabel dapat digunakan dalam program saat ini.\\ +\end{itemize} + Ekspresi Python mirip dengan bahasa seperti C dan Java :\\ +\begin{itemize} +\item Pada Python 2, /operator pada integer melakukan pembagian integer; itu memotong hasil ke integer. Pembagian titik-mengambang pada bilangan bulat dapat dicapai dengan mengubah salah satu bilangan bulat menjadi pelampung (misalnya float(x) / y). Dalam Python 3, hasil dari /selalu merupakan nilai floating-point. Perilaku ini dapat diaktifkan dengan menggunakan Python 2.2+ from \_future\_ import division. Di kedua Python 2.2+ dan Python 3, dapat digunakan untuk melakukan pembagian integer.\\ +\item Dalam Python, == bandingkan dengan nilai, berbeda dengan Java, di mana ia membandingkan dengan referensi. (Perbandingan nilai dalam Java menggunakan equals()metode ini.) Operator Python isdapat digunakan untuk membandingkan identitas objek (perbandingan berdasarkan referensi). Perbandingan dapat dirantai, misalnya a \verb|<= b <= c.|\\ \cite{van2007python}.\\ +\end{itemize} + + Python sendiri merupakan salah satu Language programming yang biasanya digunakan oleh para pengembang. Kebanyakan dari mereka mengembangkan aplikasi python hanya menggunakan editor yang ada maupun yang biasa. Namun tak sedikitpun para pengembang menggunakan Integrated Development Environment (IDE) untuk membantu mereka bekerja dengan proyek Python. Selain standar desktop Python IDE (integrated development environments), ada juga IDE berbasis IDEs, Sage, (dimaksudkan untuk mengembangkan ilmu pengetahuan dan program Python yang berhubungan dengan matematika), dan IDE yang di-hostingya.\\ + + Sebagian besar implementasi Python (termasuk CPython) dapat berfungsi sebagai interpreter baris perintah , di mana pengguna memasukkan laporan secara berurutan dan menerima hasilnya dengan segera. Singkatnya, Python bertindak sebagai shell . Kerang lain menambah kemampuan di luar mereka di interpreter dasar, termasuk IDLE dan IPython . Meskipun umumnya mengikuti gaya visual shell Python, mereka menerapkan fitur seperti penyelesaian otomatis, retensi status sesi, dan penyorotan sintaks. Selain standar desktop Python IDE (lingkungan pengembangan terintegrasi), ada juga IDE berbasis browser , Sage , (dimaksudkan untuk mengembangkan sains dan program Python yang berhubungan dengan matematika), dan sebuah IDE yang di-hosting, pythonAnywhere. \cite{van2007python} \\ + + Python Pada dasarnya Python merupakan perangkat lunak yang secara default termasuk dalam suatu paket distribusi GNU/Linux. Untuk GNU/Linux distribusi Slackware menggunakan Python versi 2.4, biasanya terdapat pada CD I direktori /slackware/d. Toolkit yang digunakan untuk melakukan instalasi paket di Slackware adalah installpkg, berikut langkah instalasinya:\\ + \\ \verb|# mount /mnt/cdrom| + \\ \verb|# cd /mnt/cdrom/slackware/d| + \\ \verb|# installpkg python-2.4.1-i486-1.tgz| \cite{utamipemrograman}.\\ + + Python IDE merupakan program standar kemampuan konstruksi dan pelaksanaan, Python secara umum banyak pengembang profesional yang menggunakanya lingkungan pengembangan terintegrasi (IDE) mendukung Python dan beberapa pemrograman microworld berbasis Python lingkungan, seperti RUR-PLE17, Guido van Robot18, dan Turtlet19). ViLLE juga menyediakan beberapa dukungan untuk memvisualisasikan eksekusi Python dengan fungsi tersebut untuk menerjemahkan animasi kode Java ke yang setara animasi dengan Python, ViLLE juga dapat menyediakan beberapa dukungan untuk visualisasi eksekusi Python dengan menggunakan fungsi tersebut untuk menerjemahkan animasi kode Java ke yang setara animasi dengan Python. aplikasi untuk memvisualisasikan kode seperti edukasi IDE (integrated development environments) secara terpisah dapat mengirimkan dan mendapatkan umpan balik jawaban mereka atas sistem penilaian berbasis web \cite{helminen2010jype}.\\ + + Python adalah bahasa pemrograman interpretatif multiguna dengan filosofi perancangan yang berfokus pada tingkat keterbacaan kode. Python diklaim sebagai bahasa yang menggabungkan kapabilitas, kemampuan, dengan sintaksis kode yang sangat jelas dan dilengkapi dengan fungsionalitas pustaka standar yang besar serta komprehensif. Python mendukung multi paradigma pemrograman, namun tidak dibatasi pada pemrograman berorientasi objek, pemrograman imperatif, dan pemrograman fungsional. Salah satu fitur yang tersedia pada python adalah sebagai bahasa pemrograman dinamis yang dilengkapi dengan manajemen memori otomatis. Seperti halnya pada bahasa pemrograman dinamis lainnya, python umumnya digunakan sebagai bahasa skrip meski pada praktiknya penggunaan bahasa ini lebih luas mencakup konteks pemanfaatan yang umumnya tidak dilakukan dengan menggunakan bahasa skrip. Python dapat digunakan untuk berbagai keperluan pengembangan perangkat lunak dan dapat berjalan di berbagai platform sistem operasi. \cite{rosmalasarana}.\\ + + Python adalah lingkungan pemrograman berbasis web untuk Python yang menghilangkan hambatan yang berhubungan dengan perangkat lunak untuk masuk ke programmer pemula, seperti menginstal IDE atau runtime Python. Hanya menggunakan browser web, dalam beberapa menit siswa dapat mulai menulis kode, menontonnya berjalan, dan mengakses materi dan tutorial dukungan. Meskipun ada sejumlah alat pengajaran Python berbasis web, Pythy berbeda dalam beberapa hal: ia mengatur tugas penugasan siswa, termasuk tenggat waktu, turn-in, dan grading; ini mendukung contoh kode interaktif dan hidup yang dapat ditulis oleh instruktur dan siswa dapat menjelajah; ini menyediakan penyimpanan otomatis kerja siswa di cloud, dengan kontrol versi penuh transparan; dan mendukung proyek-proyek gaya-komputasi yang memanipulasi gambar dan suara. Python menyediakan ekosistem lengkap untuk belajar siswa, dengan antarmuka pengguna yang mengikuti model penelusuran web yang lebih akrab, daripada antarmuka IDE yang berfokus pada pengembang. Evaluasi membandingkan persepsi siswa tentang Pythy dalam kaitannya dengan JES, lingkungan Python pemula yang ramah siswa. Pengalaman kelas menunjukkan bahwa Pythy memang mengurangi rintangan pemula yang ingin diatasi \cite{edwards2014pythy}.\\ + +\section{IDE PYTHON} +IDE Phyton menurut para ahli : +The Eric Python IDE - Ini adalah "berfitur lengkap Python dan Ruby editor dan IDE, ditulis dengan Python". +Leo - Ini adalah IDE yang ditulis dengan Python, menggunakan PyQt, untuk Python dan bahasa lainnya. Dibutuhkan pendekatan yang tidak biasa dalam mengintegrasikan manajemen proyek, rendering engine, dan pemutar musik dan video. +Padre, Perl IDE - Ini adalah IDE open-source yang ditulis dalam Perl, dan ditujukan terutama untuk pengembangan Perl. + F. Lazarus, Free Pascal IDE - Ini adalah IDE yang ditulis dalam Free Pascal Compiler (FPC). Ini memungkinkan pengembangan lintas platform dan lintas-UI \cite{swarnkar2013survey}. + +Nama Python berasal dari serial televisi Monty Python Flying Circus dan umum digunakan referensi Monty Python dalam kode contoh. Sebagai contoh, variabel metasyntactic sering digunakan dalam literatur Python adalah spam dan telur , bukan foo dan bar tradisional.Awalan Py- digunakan untuk menunjukkan bahwa ada sesuatu yang terkait dengan Python. Contoh penggunaan awalan ini di nama aplikasi Python atau perpustakaan termasuk Pygame, sebuah mengikat dari SDL untuk Python (yang biasa digunakan untuk membuat game); PyS60, implementasi untuk sistem operasi Symbian S60 ; PyQt dan PyGTK , yang mengikat Qt dan GTK , masing-masing, ke Python; dan PyPy , implementasi Python yang ditulis dengan Python. \cite{van2007python} + +Sebagaimana dibahas pada bagian sebelumnya, dalam hal aktual latihan pemrograman penulisan kode, visualisasi alat biasanya terpisah dari penilaian otomatis lingkungan, yang mencegah peserta didik dari mudah memanfaatkan secara bersamaan. Mereka mungkin menginstal yang berdiri sendiri aplikasi untuk memvisualisasikan kode mereka, seperti edukasi IDE dan secara terpisah mengirimkan dan mendapatkan umpan balik jawaban mereka atas sistem penilaian berbasis web \cite{helminen2010jype}. + +Bahasa pemrograman Python menjadi semakin populer di berbagai bidang, terutama di kalangan programmer pemula. Di sisi lain, Raket dan dialek Skema lainnya dianggap sebagai kendaraan yang sangat baik untuk memperkenalkan konsep Ilmu Komputer. Implementasi Python untuk Raket dan IDE DrRacket memungkinkan pemrogram Python untuk menggunakan pustaka Raket dan sebaliknya, serta menggunakan fitur pedagogik DrRacket \cite {ramos2014implementing}. + +\section{Macam - Macam IDE Python} + Thonny adalah IDE Python baru untuk belajar dan mengajar pemrograman yang dapat membuat visualisasi program menjadi bagian alami dari alur kerja pemula. +Di antara fitur-fiturnya yang menonjol adalah cara yang berbeda untuk melakukan langkah-langkah melalui kode, langkah demi langkah expression evaluation, visualisasi rinci dari tumpukan panggilan dan mode untuk menjelaskan konsep referensi dan heap. Ini mendukung penelitian pendidikan dengan mencatat tindakan pengguna untuk mengulang atau menganalisis proses pemrograman. Ini gratis untuk digunakan dan terbuka untuk ekstensi \cite{annamaa2015introducing}. + + PyCharm adalah Python IDE dengan seperangkat set tools yang lengkap untuk pengembangan yang produktif dengan bahasa pemrograman Python. Selain itu, IDE ini menyediakan kemampuan kelas tinggi untuk pengembangan Web profesional dengan framework Django. Seperti IDE lainnya, PyCharm menawarkan editor kode cerdas yang memahami kekhususan Python dan menawarkan peningkatan produktivitas yang luar biasa seperti, pemformatan kode otomatis, penyelesaian kode, refactoring, impor otomatis, navigasi kode dengan sekali klik, dan banyak lagi. Didukung oleh rutinitas analisis kode tingkat lanjut, fitur-fitur ini menjadikan PyCharm alat yang ampuh di tangan pengembang Python profesional dan mereka yang baru memulai dengan teknologi tersebut \cite{fifli2016pirhoogammarhoalphamumualpha}. + + PyScripter adalah Integrated Development Environment (IDE) Python yang bisa didapat secara gratis dan open source untuk Windows. IDE ini dibangun dalam Object Pascal. PyScripter juga merupakan pilihan yang baik sebagai IDE Python. PyScripter setara dengan PythonWin’s Interactive Window adalah jendela Python Interpreter. PyScripter lebih kompleks daripada PythonWin, tetapi memiliki fungsi tambahan, seperti pemeriksaan sintaks interaktif, windows tab, alat jam variabel, dan kemampuan untuk membuat proyek \cite{tateosian2015beginning}. + + PyCharm adalah IDE Python yang dikembangkan oleh JetBrains’s. IDE ini sangat direkomendasikan bagi yang terbiasa dengan IDE bahasa pemrograman lain yang didstribusikan oleh JetBrain’s. IDE ini tersedia gratis untuk versi komunitas. Tersedia untuk sistem operasi Linux, Windows, dan Mac OS. Sama dengan Spyder dan JupiterLab, PyCharm juga dapat diintegrasikan dengan library-library Python seperti NumPy, ScyPy, MatplotLib, dan lain-lain. PyCharm memiliki fitur-fitur pendukung seperti code editor, syntax highlighter, debugger, integrasi GIT, SVN, dan Mercurial. +Ada dua versi PyCharm: +Versi Profesional (Trial 30 hari) – Memiliki fitur lebih banyak untuk pemrograman python dan web. +Versi Komunitas (Gratis dan opensource) – Fiturnya standar untuk pemrograman python. +\cite{tateosian2015beginning}. + +\subsection{Cara Instalasi Python} +Berikut ini adalah cara instalasi Python di windows \\ +\verb|1. Download dulu python terbaru.| \\ +\verb|2. Install (run/double klik seperti biasa) +Ketika keluar opsi pemilihan path installer biarkan terinstall pada root C. "C:\Python34"selanjutnya ikuti proses install sampai selesai.|\\ +\verb|3. Setelah selesai test dulu apakah sudah berjalan dengan baik atau belum,buka cmd/Command Prompt dan ketik "python" +tanpa tanda petik biasanya python belum dikenali (not recognized) karena path nya tidak ketemu/dikenali oleh windows.| \\ +\verb|4. Masuk ke system pada Control Panel +/ Control Panel\System and Security\System.|\\ +\verb|5. Lanjut klik "Environment Variables" +maka akan muncul lagi pop up "Environment Variables".|\\ +\verb|6. Pada bagian System variables, scroll + sampai ketemu Path. (Path adalah nama Variable).|\\ +\verb|7. Seleksi/klik Path dan kemudian klik Edit + Maka akan muncul lagi pop up "Edit System variable" sebelum mengedit Variable value bikin dulu backup untuk mencegah hal2 yang diluar dugaan ,buka notepad copas semua Variable value.|\\ +\verb|8. Pada bagian paling kanan/ujung "Variable +value"tambahkan path ";C:\Python34\" tanpa tanda petik dan klik OK pada jendela Edit System variable.klik OK pada jendela Environment Variables.klik OK pada jendela System Properties.dan close Control Panel keterangan : angka 34 pada ";C:\Python34\"adalah versi python yang gw gunakan harus disesuaikan dengan versi yang kamu download.| \\ +\verb|9. Lanjut Buka lagi : cmd/Command Prompt +dan ketik lagi "python" tanpa tanda petik berarti python sudah berjalan di windows kamu|\\ +\verb|10. Lanjut coba ketik "import this" + <<< tanpa tanda petik Maka PC kamu sudah siap untuk python pada windows|\cite{nahado2015bumbu}. + + \section{INSTALASI PYTHON-2.7} +Berikut ini adalah cara instalasi bahasa pemrograman Python yang berjalan pada sistem operasi Windows. Langkah-langkahnya adalah: +a. Pilih file “python-2.7.amd64”, tampil jendela “Python for Windows”, pilih “next” \\ +b. Pada jendela “Select Destination Directory”, pilih “next”\\ + c. Muncul jendela “Customize Python 2.7”, pilih “next\\ + d. Muncul jendela progress bar untuk proses instalasinya, setelah itu akan keluar jendela “Completing the Python 2.7 Installer”, dan pilih “finish” \\ + e. Maka instalasi bahasa pemrograman Python sudah selesai dilakukan.\\ + f. Setelah proses instalasi selesai dilakukan, langkah berikutnya yang dilakukan adalah melakukan “setting path”. \\ + g. “Setting path” dilakukan dengan membuka jendela “Properties” dengan klik kanan pada “Computer”, dan pilih “Advanced System Setting”.\\ + h. Pada jendela “System Properties” dan tab “Advanced”, pilih “Environment Variables”\cite{wicaksana2013user}.\\