SlideShare a Scribd company logo
1 of 17
Belajar Python
1. Learn The Basic
1.1 Basic Syntax
Setiap bahasa pemrogaman memiliki penulisan syntax (kode) yang berbeda-beda meskipun
ada beberapa yang hampir sama. Begitu juga penulisan syntax python yang memiliki teknik
penulisan tersendiri. Python dikenal dengan bahasa yang memiliki syntax (kode) yang
sederhana dan mudah untuk dipahami.
Aturan umum penulisan syntax dasar python
1. Case sensitive, bahasa python menganggap huruf besar dan kecil itu berbeda, misal :
Nama, berbeda dengan nama.
2. baris perintah python boleh untuk tidak diakhiri dengan tanda titik koma (;) dan boleh juga
untuk menggunakan titik koma, hal ini tidak berpengaruh sama sekali.
3. boleh menggunakan tanda petik satu (‘ ‘), tanda petik dua (“ “) atau tanda petik tiga (“”” “””).
1.2 Variable and Data Types
Pengertian dari variabel dan tipe data dalam bahasa pemrograman python Variabel dalam
bahasa python itu seperti dengan variabel dalam matematika
Contoh dalam variabel matematika.
X = 5
Y = 5
Z = x + y
Maka hasilnya adalah 10, kenapa bisa 10 ? Karena penjumlahan dari X dan Y. Disini dapat
diartikan bahwa variabel adalah tempat untuk menyimpan data.
Contoh dalam bahasa python.
Ada beberapa aturan dalam penulisan variabel yang harus di perhatikan.
1. Nama variabel tidak boleh diawali oleh angka.
2. Nama variabel tidak boleh ada spasi namun bisa menggunakan underscore.
3. Nama variabel hanya bisa diawali dengan huruf dan underscore.
Contoh penamaan variabel yang boleh dan yang tidak boleh.
● _namavariabel (boleh)
● 1namavariabel (tidak boleh)
● nama variabel (tidak boleh)
● nama-variabel (tidak boleh)
● nama_variabel (boleh)
● namaVariabel (boleh)
Sedangkan untuk tipe data adalah macam – macam data yang bisa di masukan kedalam
variabel.
Macam - macam tipe data :
1. Tipe data angka (interger/int)
2. Tipe data desimal (float)
3. Tipe data karakter atau kumpulan karakter (string/str). Dalam penulisan tipe data
string harus diapit dengan tanda kutip.
4. Tipe data True dan False (boolean/bool). Dalam penulisan data boolean huruf
awalnya menggunakan kapital.
Contoh coding beserta hasilnya :
Catatan : Untuk mengetahui sebuah tipe data pada variabel bisa menggunakan fungsi ‘type’.
1.3 Conditional
1.4 Type Casting, Exceptions
1.5 Functions, Builtin Function
1.6 List, Tuples, sets, Dictionaries
1.6.1 List
List merupakan tipe data yang ditulis secara berurutan dimana bisa berisi lebih
dari satu tipe data, serta dapat diubah (mutable) dan memungkinkan adanya
data duplikat. Tipe data list diawali dengan tanda kurung siku buka ([) dan
ditutup dengan kurung siku tutup ( ] ).
Sementara untuk memisahkan setiap elemen di dalamnya dapat dilakukan
dengan menggunakan tanda koma ( , ). Agar lebih paham contoh penggunaan
list, kita langsung praktek yuk!
Misalkan kita ingin membuat list yang berisi tipe data string, numeric, dan juga
boolean, kita bisa langsung menuliskan di dalam tanda kurung siku dan
dipisahkan oleh tanda koma, seperti berikut:
Untuk menampilkan hasil dari list yang sudah dibuat, kita bisa menggunakan
perintah print(), hasilnya adalah sebagai berikut:
Selain itu, kita bisa juga hanya menampilkan data tertentu saja dengan
memanggil data sesuai dengan indeks nya, misalkan kita hanya ingin
memunculkan data pertama, maka kita bisa memanggil indeks 0 karena di
Python perhitungannya dimulai dari 0.
Maka hasilnya adalah:
1.6.2 Tuples
Tipe data tuple juga berfungsi untuk menampung sekumpulan data. Tipe data
ini diawali dengan tanda kurung buka ( ( ), memisahkan setiap elemen di
dalamnya dengan tanda koma ( , ) dan ditutup dengan tanda kurung tutup ( )).
Perbedaan tuple yang cukup mencolok antara tuple dan list selain di kurung
yang digunakan, juga karena tipe data tuple bersifat immutable yang berarti
elemen pada tipe data tuple tidak dapat diubah setelah proses
pendeklarasiannya. Pada tuple, kita juga bisa menuliskan data yang duplikat.
Agar lebih memahami tuple, simak contoh penggunaannya!
Misalkan isi tuple kita adalah bahasa pemrograman yang umum digunakan.
Ketika ingin melihat hasilnya, maka kita bisa menggunakan perintah print().
Maka hasilnya adalah:
Misalkan kita ingin mengganti isi data kedua dengan Skala, apakah kawan-
kawan bisa menebak apa yang terjadi?
Yup, betul sekali. Program tidak akan bisa berjalan atau akan adanya error
karena tuple tidak memungkinkan kita untuk melakukan penggantian data.
1.6.3 Sets
Tipe data set hampir sama dengan tipe data yang sebelumnya, dimana akan
digunakan untuk menyimpan sekumpulan data. Tipe data ini akan diawali
dengan tanda kurung buka kurawal ( { ), dan ditutup dengan tanda kurung tutup
( } ).
Untuk memisahkan setiap elemen di dalamnya masih sama dengan
menggunakan tanda koma ( , ). Namun berbeda dengan list dan tuple, tipe data
objek tidak mengizinkan adanya elemen dengan nilai yang sama dan tidak
memperdulikan urutan dari elemen.
Contoh penggunaan set adalah sebagai berikut:
Kita bisa melihat bahwa adanya data duplikat tidak akan menyebabkan error,
hanya saja pada output nya hanya akan ditampilkan satu data saja. Selain itu,
hasilnya juga tidak berurutan seperti pada list dan tuple.
1.6.4 Dictionary
Tipe data dictionary akan digunakan untuk memetakan sebuah nilai pada data
ke dalam nilai lainnya. Tipe data dictionary dapat dideklarasikan dengan diawali
oleh tanda kurung buka kurawal ( { ), memisahkan setiap elemen di dalamnya
dengan tanda koma ( , ) dan ditutup dengan tanda kurung tutup (}).
Setiap elemen pada tipe data dictionary dideklarasikan dengan format:
"kunci" : "nilai"
Hal inilah yang membedakan tipe data dictionary dengan tipe data set. Kunci ini
dapat dijadikan sebagai indeks, sehingga nilainya harus unique. Untuk lebih
memperjelas tipe data dictionary, simak contoh penggunaannya yuk!
Di potongan code ini kita mendefinisikan data nama adalah Theo Lau,
sementara data pekerjaan adalah Data Analyst, Begitu nama dan pekerjaan
dipanggil, maka harus sesuai dengan dictionary yang sudah dibuat sebelumnya.
Berikut adalah hasilnya.
Ditulis oleh Karnoto - 03119120 Prodi Teknik Sipil B
Sumber https://www.dqlab.id/belajar-python-list-tuples-set-dan-dictionary
2. Data Structures
2.1 Arrays and Linked Lists
2.2 Heaps, Stacks and Queues
2.3 Hash Tables
3. Algorithms
3.1 Binary Search Trees
3.2 Recursion
3.3 Sorting Algorithms
4. Advance Topics
4.1 OOPS (Methods, Inheritance, Classes)
a. Inheritance
Dalam Object Oriented Programming atau yang biasa kita kenal sebagai OOP,
inheritance adalah salah satu konsep yang penting. Dengan menggunakan
inheritance kita dapat mengurangi penulisan fungsi, properti, dan variabel yang
berulang. Inheritance mendefinisikan sebuah class(induk) ke class baru(anak) dan
memberikan kesempatan untuk class(anak) untuk menggunakan object dan method
dari class yang diwariskan tersebut. Inheritance juga dapat didefinisikan sebagai
suatu proses di mana suatu objek memperoleh sifat dan perilaku dari objek lainnya,
ketika ingin membuat class dengan fungsi yang sama seperti class lain maka kita
tidak perlu menulis ulang fungsi tersebut, namun kita tinggal melakukan inheritance
dan kita bisa langsung mengaksesnya.
4.2 Regular Expression
4.3 Decorators
4.4 Iterators
4.5 Type Casting, Exceptions
4.6 Function, builtin fuction
4.7 Lists, Tuples, Sets, Dictionaries
4.8 Modules (bultin, custom)
5. Version Control Systems (VCS)
Version Control System (VCS) adalah sebuah infrastruktur yang dapat mendukung
pengembangan software secara kolaboratif. Setiap anggota yang berada di dalam sebuah
tim pengembangan software dapat menulis kode programnya masing - masing kemudian
digabungkan ke server yang sudah memiliki VCS yang digunakan.
Selain dapat mempercepat pengembangan software, VCS juga mempunyai
kemampuan untuk kembali ke versi software sebelumnya jika terjadi suatu bencana terhadap
versi software yang sedang dikembangkan saat ini. Kemampuan ini disebut reversibility.
Selain itu, dengan menggunakan VCS setiap perubahan pada software seperti penambahan
file atau pengubahan isi file dapat dipantau bagian mana yang diubah dan siapa yang
mengubah. Sehingga pengerjaan software akan lebih transparan dan terukur.
Berikut ini daftar VCS:
a. Bazaar
Bazaar merupakan bagian dari GNU Project, Bazaar adalah free
software yang disponsori oleh Canonical. Salah satu layanan yang
menggunakan Bazaar adalah Launchpad, sebuah tempat dimana aplikasi
Ubuntu dikembangkan dan dipantau oleh komunitas. Bazaar dapat digunakan
di Windows, Ubuntu, Debian, Red Hat, SUSE, OS X, FreeBSD, Solaris,
Gentoo, dan lainnya.
Bazaar memiliki versi GUI yang dapat memudahkan pengguna, Anda
dapat bekerja secara offline dengan menggunakan Bazaar, mempunyai sistem
any workflow, gatekeeper workflow, dan centralized workflow, mempunyai fitur
rename tracking dan smart merging, dan kecepatan dan efisiensi
penyimpanan yang sangat tinggi
b. CVS
CVS adalah free VCS yang digunakan oleh mayoritas proyek free
software. Saat ini CVS perlahan mulai tergantikan oleh sistem VCS lain yang
lebih baru. CVS mendukung pengembangan konkuren oleh banyak
pengembang baik secara lokal atau diatas jaringan. CVS sangat kurang
mendukung untuk atomic commits dan pemindahan / penamaan ulang file.
Dengan menggunakan VS Anda dapat merekam riwayat dari file dan
dokumen. CVS mendukung unreserved checkouts yaitu lebih dari satu
pengembang dapat mengerjakan file yang sama secara bersamaan. CVS
Server dapat berjalan di berbagai varian Unix dan CVS Client dapat berjalan di
Windows dan varian Unix.
c. Subversion (SVN)
SVN adalah free VCS yang didesain mirip dengan CVS dan lebih
sederhana. SVN mendukung atomic commits dari sebuah file dan melakukan
versioning terhadap direktori, symbolic links, dan meta-data. Selain itu
mendukung versioning terhadap penamaan, penyalinan, dan penghapusan
suatu file atau direktori.
SVN merupakan bagian dari Apache Software Foundation. SVN
bersifat open source yang didirikan pada tahun 2000 oleh CollabNet Inc. SVN
dinikmati luas oleh kalangan komunitas ataupun enterprise. SVN tersedia
untuk Linux, OS X, FreeBSD, dan Windows.
d. Mercurial
Mercurial atau yang biasa disingkat menjadi Hg. Mercurial adalah VCS
yang free. Mercurial memiliki konsep distributed source control management
tool. Mercurial efisien untuk menangani proyek yang memiliki bermacam
ukuran dan jenis. Mercurial mendukung berbagai workflow. Dan setiap Anda
melakukan kloning sebuah proyek dengan Mercurial, seluruh riwayat proyek
akan disalin.
e. RCS
Revision Control System atau RCS mampu mengelola revisi dari
banyak file. RCS mengotomasi penyimpanan, pengambilan, pencatatan,
pemeriksaan, dan penggabungan dari sebuah revisi. RCS berguna untuk teks
yang sering direvisi seperti source code, program, dokumentasi, grafik, jurnal,
dan surat.
RCS pertama kali dikembangkan oleh Walter F. Tichy di Purdue
University pada awal 1980. RCS didesain dengan lebih unggul dibandingkan
pendahulunya yaitu Source Code Control System (SCCS). Peningkatan RCS
dibandingkan SCCS diantaranya adalah antar muka yang lebih mudah dan
pengambilan yang lebih cepat dari penyimpanan. RCS menggunakan GNU
Diffutils untuk melihat perbedaan diantara dua versi yang berbeda.
f. Perforce
Yang satu ini bersifat proprietary dan berbayar jika Anda ingin
menggunakannya untuk lebih dari 20 pengembang. Jika menggunakannya
untuk 20 pengembang Anda akan mendapatkan Perforce secara free.
Perforce memiliki keunggulan dengan sebuah sistem yang dinamakan
Continous Delivery. Dengan menggunakan disiplin tersebut software dapat
dirilis menjadi production kapanpun. Perforce ini dipercaya oleh vendor -
vendor besar seperti Netflix, Samsung, Salesforce, dan New York Stock
Exchange.
g. ClearCase
VCS yang ini juga merupakan VCS proprietary dan berbayar. Harga
lisensi untuk penggunanya dalah $ 5.500. Mantap kan harganya?. IBM
Rational ClearCase ini mendukung untuk version control, workspace
management, parallel development support, dan auditing.
Tentunya ClearCase ini dapat diintegrasikan dengan produk IBM
lainnya, misal WebSphere. Selain itu ClearCase memiliki effective IP security
yang menjamin source code yang ditulis akan aman dari kontrol yang tidak
diizinkan.
h. GNU Arch
GNU Arch adalah salah satu decentralized version control system yang
paling awal. Hanya saja saat ini Arch mulai kurang aktif dikembangkan. GNU
Arch murah dan mudah untuk dikelola, dan tidak perlu memberikan permisi
untuk setiap peserta proyek. Mempunyai fitur branching dan merging yang
siap memudahkan tim yang mengembangkan free software.
i. GNU CSSC
CSSC merupakan proyek dari GNU Project yang menggantikan SCCS.
SCCS adalah VCS yang bersifat proprietary yang tersedia untuk versi
komersial dari Unix. GNU CSSC ini dikembangkan sebagai versi free untuk
Unix. Dengan menggunakan CSSC, sebuah proyek dapat dikontrol
menggunakan sistem lain seperti Git atau SVN.
j. Git
Git merupakan VCS yang dikembangkan oleh Linux Torvald ketika
mengembangkan Linux (kernel). Git merupakan decentralized version control
system. Git mempunyai keunggulan seperti repository syncing, bekerja secara
offline, cheap local branching, staging area yang nyaman, mampu menangani
proyek besar seperti Kernel Linux secara efektif dalam hal kecepatan dan
ukuran data, mendukung non-linear development, dan multiple workflow.
Selain itu Git digunakan di berbagai layanan VCS seperti Github, Bitbucket,
Assembla, dan Gitorious
5.1 Basic git Usage
a. Membuat/mengatur/mengambil repository:
Repository adalah asset yang paling kuat dari semua project
versioning. Untuk mengubah direktori menjadi repository GIT, jalankan
perintah git init <directory>. Folder bernama .gt akan muncul di direktori bila
perintah tersebut telah dijalankan. Kemudian, jika Anda telah memiliki direktori
sebelumnya dan ingin mengambilnya
b. Alur Kerja
Setelah repository selesai dibuat, kita akan membahas tentang struktur
pada GIT. Setiap repository lokal memiliki 3 cabang, yaitu: direktori kerja yang
mengandung file; index berperan sebagai staging area dan HEAD yang
menjadi penunjuk commit terakhir yang dilakukan oleh user. Jadi, seperti inilah
cara kerjanya: user menambahkan file atau melakukan perubahan dari
direktori kerja ke index (staging area) dan setelah di-review, file atau
perubahan di-commit ke HEAD.
c. Perintah ADD dan COMMIT
Perubahan yang diajukan atau file tambahan akan ditambahkan ke
index dengan menggunakan perintah add. Untuk menambahkan file, perintah
sederhananya adalah:
git add <file_name>
Jika Anda cukup yakin untuk melakukan perubahan langsung di HEAD, Anda
langsung gunakan perintah commit. Contohnya:
git commit -m "Tambahkan catatan untuk commit Anda"
Catatan: Bila perintah commit telah dijalankan (dari direktori kerja), file akan di-commit
ke HEAD, namun belum terkirim ke remote repository.
d. Mengirim perubahan
Setelah Anda melakukan commit perubahan (dan sudah yakin siap
dikirim ke repository asli), Anda bisa menggunakan perintah push.Setelah git
push origin master dijalankan dari direktori kerja, perubahan yang ada di
HEAD akan dikirim ke remote repository. Seperti yang telah disebutkan
sebelumnya, master bisa diganti menjadi nama branch dimana perubahan
ingin Anda commit.Jika repository yang ada saat ini belum di-clone dan Anda
ingin membuat sambungan antara repository dan remote server, maka
jalankanlah perintah ini:
git remote add origin <server>
Catatan: Ganti <server> dengan alamat remote server.
Setelah di-clone, perubahan yang telah dibuat akan dikirim ke server.
e. Branches
Fitur keren lainnya dari GIT adalah kemampuannya untuk
memungkinkan developer dan project manager untuk membuat branch
independen yang berbeda dalam 1 project. Tujuan utama branch adalah untuk
membuat fitur namun tetap mengisolasinya dari yang lain. Branche default di
project adalah master branch. Karena banyak branch yang dibutuhkan bisa
dibuat dan digabungkan dengan master branch.Branch baru bisa dibuat
dengan menggunakan perintah berikut ini:
git checkout -b feature_n *
Catatan: feature_n adalah nama branch-nya.
Jika Anda ingin kembali ke master branch utama, jalankan perintah ini:
git checkout master
Branch bisa dihapus dengan menggunakan perintah ini:
git checkout -b feature_n
Untuk membuat branch bisa digunakan oleh pengguna lain, Anda harus
mengirimkannya ke remote repository melalui perintah ini:
git push origin feature_n
f. Update & Merging
Jika Anda ingin meng-update direktori kerja lokal Anda saat ini ke yang
paling baru dari remote repository, jalankan perintah git pull.Untuk
menggabungkan branch lain ke yang sudah aktif, gunakan:
git merge feature_n
Jika Anda melakukan pull atau merge, GIT akan selalu mencoba menangani
conflict sendiri, namun kadang-kadang juga gagal. Jika terjadi kegagalan
karena conflict, maka pengguna harus melakukan resolve conflict secara
manual. Setelah Anda meng-edit file (untuk menghapus conflict), tandai
sebagai merged dengan perintah:
git add <nama_file>
Jika setelah merging Anda ingin melihat perubahan, jalan perintah:
git diff <nama_sumber_branch> <nama_target_branch>
g. Tagging
Sebelum merilis update/perubahan apapun, sangat disarankan untuk
membuat tag. Untuk melakukannya di GIT, gunakan perintah:
git tag 1.1.0 1c2d2d56fa
1c2d2d56fa adalah perintah yang terkait dengan 10 karakter pertama dari
commit-id, yang dijadikan sebagai tag. Commit ID bisa ditemukan di log.
h. Log
Catatan history dari repository bisa dipelajari dari log. Perintah git log
yang menampilkannya. Untuk menampilkan commit yang dibuat oleh seorang
pengguna, Anda bisa menggunakan perintah:
git log --author =Bambang
Log yang terkompresi (1 commit per baris) bisa dilihat dengan:
git log --pretty=oneline
Untuk hanya melihat file yang berubah:
git log --name-status
Mengganti perubahan di lokal: Jika Anda tidak sengaja membuat kesalahan
dan ingin kembali ke perubahan normal yang sebelumnya, gunakan perintah:
git checkout -- <filename>
Dengan melakukan hal tersebut, akan mengganti perubahan di direktori kerja
dengan yang terakhir ada di HEAD. Perubahan apapun yang ditambahkan ke
index tidak akan terkena dampak.
Sebaliknya, jika semua perubahan/commit di-drop dan master branch lokal
dibutuhkan untuk menunjukkan history terakhir dari server, jalankan perintah:
git fetch origin
git reset --hard origin/master
6. Advance Topics
6.1 Github
Github merupakan software hosting untuk open source dengan menggunakan tool Git,
Github juga di posisikan sebagai Webhosting. Git sendiri merupakan Tool System Control
yang kegunaan nya sebagai mengontrol berbagai code bahasa pemrograman. Git dipilih
karena dari sekian banyak VCS merupakan yang paling populer (Davis, 2015). Selain itu,
mudah dan digunakan secara gratis serta open source (Leonard, 2017). Adapun untuk
melakukan hosting client yang bisa digunakan adalah Github, dengan memiliki repositori
sourrce code terbesar di dunia (Borges, 2016). (Fumin Qi et al, 2017) “Platform hosting
proyek sumber terbuka menjadi semakin populer. Salah satu yang terbesar, GitHub,
menampung lebih dari 53 juta proyek pada akhir 2016. Proyek-proyek ini beragam dalam
hal jenis, domain, bahasa, dan lain-lain. Lebih penting lagi, sebagai sistem kontrol versi
online, GitHub mencatat berbagai data selama pengembangan proyek, seperti komit
individu, kontributor, masalah dan perbaikannya. solusi, diskusi, dan lain-lain”.
6.2 Gitlab
Gitlab adalah layanan yang menyediakan akses remote ke Git
repositories. Selain meng-hosting kode Anda, layanan ini menyediakan fitur
tambahan yang dirancang untuk membantu mengelola siklus pengembangan
software. GitLab adalah layanan mirip github yang dapat digunakan organisasi
untuk menyediakan manajemen internal git repositories. Ini adalah sistem
manajemen Git-repository yang di-host-sendiri yang menjaga code private
pengguna dan dapat dengan mudah menyebarkan perubahan kode. Ada
beberapa fitur yang dimiliki oleh Gitlab, yaitu :
● GitLab hosts proyek software (private) Anda secara gratis.
● GitLab Adalah platform untuk mengelola Git repositories.
● GitLab menawarkan private repositories dan free public, pelacakan masalah,
dan wiki.
● GitLab adalah user friendly web interface layer di atas Git, yang
meningkatkan kecepatan bekerja dengan Git.
● GitLab menyediakan sistem Continuous Integration (CI) untuk mengelola
proyek dan menyediakan user interface bersama dengan fitur-fitur lain dari
GitLab.
Tentunya ada beberapa kelebihan dan kekurangan yang terdapat pada
GitLab, Antara lain
Kelebihan :
● GitLab menyediakan versi GitLab Community Edition bagi pengguna untuk
menemukan di mana server kode mereka present.
● GitLab menyediakan public repositories dan private tanpa batas secara
gratis.
● The Snippetsection dapat membagikan sejumlah kecil kode dari suatu
proyek, alih-alih membagikan seluruh proyek.
Kekurangan :
● Sambil mendorong dan menarik repositori, itu tidak secepat GitHub.
● GitLab interface akan membutuhkan waktu saat berpindah dari satu
halaman ke halaman lainnya.
6.3 BitBucket
Bitbucket adalah sebuah layanan hosting yang berbasis web untuk kode
sumber dan pembangunan proyek yang menggunakan Mercurial (sejak
peluncuran) ataupun sistem kendali versi Git (sejak Oktober 2011) yang dimiliki
oleh Atlassian. Bitbucket menawarkan paket akun komersial dan gratis. Akun
gratis tersebut menawarkan sebuah layanan repositori dengan jumlah yang
tidak terbatas (yang mana dapat mempunyai 5 pengguna per tim untuk akun
gratis) sejak bulan September 2010. Bitbucket terintegrasi dengan perangkat
lunak Atlassian lain seperti Jira, HipChat, Confluence dan Bamboo.
Hal ini mirip dengan GitHub, yang utamanya menggunakan Git. Bitbucket
secara tradisional disesuaikan untuk membantu pengembang profesional
dengan kode pribadi mereka, terutama sejak diakuisisi oleh Atlassian pada
tahun 2010. Pada bulan September 2016, Bitbucket mengumumkan telah
mencapai 5 juta pengembang dan 900.000 tim pada platform tersebut.[4]
Bitbucket mempunyai 3 model deployment: Cloud, Bitbucket Server dan Data
Center. Dalam sebuah postingan blog tahun 2008, Bruce Eckel membandingkan
Bitbucket akan sangat baik untuk Launchpad,yang mana menggunakan Bazaar.
Bitbucket digunakan dalam kontrol akses, permintaan tarik, kontrol alur
kerja, integrasi Jira, API lainnya. Pembatasan kode sumber disediakan oleh
Bitbucket yang memiliki kontrol akses. Penegakan proyek atau tim dibuat
menggunakan kontrol alur kerja dan permintaan penarikan dilakukan dalam
komentar sebaris untuk berkolaborasi pada tinjauan kode. Penelusuran seluruh
pembangunan dilakukan dengan integrasi Jira.
Seluruh API dibuat untuk mengembangkan fitur untuk mengonfigurasi
alur kerja jika tidak tersedia secara instan. Bitbucket Cloud diterapkan di server
Atlassian dan diaktifkan menggunakan URL. Ini memiliki alat integrasi persisten
built-in yang ekstensif. Pipeline memungkinkan pengguna untuk
mengembangkan, menguji, dan mengeksekusi secara instan bersama dengan
Bitbucket. Server Bitbucket dipasang langsung di lokasi, yang ada di lingkungan
pengguna. Tapi itu tidak memiliki opsi untuk pengujian dan penerapan built-in
sehingga sangat terhubung ke Bamboo yang merupakan integrasi berkelanjutan
yang kuat dan pengiriman persisten yang membuat prosesnya otomatis.
Pusat Bitbucket mirip dengan contoh tunggal server pengguna ke
Bitbucket yang digunakan pada server yang sangat besar dalam lingkungan
klaster yang menambahkan lebih banyak manfaat ke server. Kluster beberapa
server yang dijalankan di server Bitbucket yang mengelola beban berat daripada
server unit dengan kinerja yang dapat diskalakan. Itu tertarik pada
ketersediaannya yang lebih tinggi. Karena jika cluster melambat, semua node
lainnya dapat berbagi beban kerja dengan server yang tersedia dan
menyelesaikan semua permintaan tanpa kehilangan data. Pencerminan pintar
meningkatkan kecepatan klon Git untuk tim yang tersebar yang beroperasi di
repositori besar.
7. Package Managers
7.1 Pip
PIP merupakan sebuah perintah yang digunakan untuk melakukan
proses penambahan atau pengurangan module python yang dilakukan secara
online. Perintah PIP akan melakukan instalasi module python dengan mencari
module tersebut yang terdapat pada repositori yang beralamatkan di
https://pypi.org/ . Perintah PIP dapat di eksekusi setelah menginstal python :
a. Untuk menjalankan perintah PIP pada sistem operasi windows maka
user perlu membuka command prompt dan mengarahkannya ke path
instalasi python lalu ketikan perintah pip.
b. Untuk menjalankan perintah PIP pada sistem operasi linux tergantung
versi python berapa yang digunakan user. Untuk python versi 2 maka
“apt install python-pip” sedangkan python versi 3 “apt install python3-pip”.
Contoh penggunaan perintah PIP :
a. Untuk pengguna OS MS WIndows , setalah anda menginstall Python
selanjutnya masuk pada command prompt , dan ketikkan " pip " , contoh
: pip install flask , artinya melalukan installasi module flask , dan ingat
komputer yang anda gunakan harus dalam keadaan terkoneksi dengan
internet.
b. Untuk pengguna OS Linux ada dua , bila menggunakan Python 2 , pada
terminal ketikkan " pip " sedangkan untuk python 3 ketikkan ' pip3 ".
7.2 PyPI
Python Package Index, disingkat PyPI dan juga dikenal sebagai Cheese Shop
(referensi Monty Python Flying Circus sketsa Cheese Shop), yang merupakan
repositori perangkat lunak pihak ketiga resmi untuk Python. PyPI dapat disamakan
dengan CPAN, repositori untuk Perl.Beberapa manajer paket, termasuk pip,
menggunakan PyPI sebagai sumber standar untuk paket dan dependensinya. Lebih
dari 113.000 paket Python yang dapat diakses melalui PyPI. PyPI terutama host paket
Python dalam bentuk arsip yang disebut sdists (sumber distro) atau "roda"
precompiled.
PyPI sebagai indeks memungkinkan pengguna untuk mencari paket-paket dengan
kata kunci atau filter terhadap metadata, seperti lisensi perangkat lunak bebas atau
kompatibilitas dengan POSIX. Satu entri di PyPI dapat disimpan, selain dari paket dan
metadata, rilis sebelumnya dari paket, roda dikompilasi (misalnya yang mengandung
Dll pada Windows), serta bentuk yang berbagai bentuk sistem operasi dan versi Python
yang berbeda .
8. Learn Framework
Pada bab ini kita akan mempelajari mengenai Framework beserta macam-
macam jenis dari Framework. Sesuai dengan namanya, Framework merupakan
kerangka kerja untuk mengembangkan aplikasi berbasis website maupun dekstop.
Kerangka kerja sangat membantu developer dalam menuliskan sesuatu dengan lebih
terstuktur dan tersusun rapi. Kerangka kerja diciptakan dengan tujuan untuk
mempermudah kinerja dari seorang programmer.
8.1 Synchronous
8.2 Asynchronous
Asynchronous Programming, merupakan sebuah pendekatan pemrograman
yang tidak terikat pada input output (I/O) protocol. Ini menandakan bahwa
pemrograman Asynchronous tidak melakukan pekerjaannya menggunakan cara lama
yaitu dengan eksekusi baris program satu persatu secara hirarki. Asynchronous
Programming melakukan pekerjaannya tanpa harus terikat dengan proses lain atau
dapat kita sebut secara Independent.
Dari gambar diatas terlihat bahwa pendekatan model pemrograman
Asynchronous memiliki waktu eksekusi yang lebih cepat 25 detik dibandingkan dengan
pendekatan metode pemrograman Synchronous. Pada Asynchronous tiap modul tidak
perlu menunggu task lainnya selesai untuk berjalan. Dengan begitu, waktu eksekusi
juga dapat menjadi lebih singkat dan cepat.
8.3 Django
8.4 Gevent
Gevent adalah penggunaan pemrograman sekuensial sederhana dalam python untuk
mencapai skalabilitas yang disediakan oleh IO asynchronous dan multi-threading ringan
(sebagai lawan dari gaya pemrograman panggilan balik menggunakan Twisted's Deferred).
Itu dibangun di atas libevent / libev (untuk I/O asinkron) dan greenlet (multi-threading
kooperatif ringan).Tugas libevent / libev adalah menangani loop acara. Seperti yang akan
kita pelajari di bagian SocketIO nanti, SocketIOServer kami adalah loop peristiwa yang
dapat memancarkan hasil tertentu, pada terjadinya peristiwa tertentu. Ini pada dasarnya
adalah bagaimana contoh SocketIOServer kami akan tahu kapan harus mengirim pesan
ke klien, karenanya streaming data real-time dari server ke klien, pada terjadinya peristiwa
tertentu. Seperti yang telah kita pahami dari konsep umum yang berkaitan dengan proses
dan utas (pthreads) dan konkurensi dan paralelisme di bagian sebelumnya, kami ingin
dapat menangani konkurensi dengan python (untuk manfaat I/O) dan ini adalah di mana
greenlets cocok dengan gambar.
8.5 Flask
Flask berfungsi sebagai kerangka kerja aplikasi dan tampilan dari suatu web.
Dengan menggunakan Flask dan bahasa Python, pengembang dapat membuat sebuah
web yang terstruktur dan dapat mengatur behaviour suatu web dengan lebih mudah.
Flask termasuk pada jenis microframework karena tidak memerlukan suatu alat atau
pustaka tertentu dalam penggunaannya.Flask adalah sebuah web framework yang ditulis
dengan bahasa Python dan tergolong sebagai jenis microframework.
8.6 Sanic
8.7 Pyranid
8.8 Alohttp
8.9 Torando

More Related Content

Similar to Belajar Python Dasar

Kelas dan objek
Kelas  dan objekKelas  dan objek
Kelas dan objekroy naldo
 
Tugas 2 rekweb laily fitria 1412510511
Tugas 2 rekweb laily fitria 1412510511Tugas 2 rekweb laily fitria 1412510511
Tugas 2 rekweb laily fitria 1412510511lailyfitria
 
Modul PBO Bab-01 - Pengenalan Java
Modul PBO Bab-01 - Pengenalan JavaModul PBO Bab-01 - Pengenalan Java
Modul PBO Bab-01 - Pengenalan JavaRakhmat Dedi Gunawan
 
Si-pi, yohanes agung nugroho, hapzi ali, sistem informasi, dasar dasar dalm i...
Si-pi, yohanes agung nugroho, hapzi ali, sistem informasi, dasar dasar dalm i...Si-pi, yohanes agung nugroho, hapzi ali, sistem informasi, dasar dasar dalm i...
Si-pi, yohanes agung nugroho, hapzi ali, sistem informasi, dasar dasar dalm i...Yohanes Agung Nugroho
 
6.SI-PI, yohanes agung nugroho, hapzi ali, sistem informasi, dasar dasar dalm...
6.SI-PI, yohanes agung nugroho, hapzi ali, sistem informasi, dasar dasar dalm...6.SI-PI, yohanes agung nugroho, hapzi ali, sistem informasi, dasar dasar dalm...
6.SI-PI, yohanes agung nugroho, hapzi ali, sistem informasi, dasar dasar dalm...Yohanes Agung Nugroho
 
Backend Dan Python Dasar.pptx
Backend Dan Python Dasar.pptxBackend Dan Python Dasar.pptx
Backend Dan Python Dasar.pptxstrongpapazola1
 
Tipe Data pada Bahasa Java
Tipe Data pada Bahasa JavaTipe Data pada Bahasa Java
Tipe Data pada Bahasa JavaAs Faizin
 
Tugas 3 0317-nurulazmi-1412510487
Tugas 3 0317-nurulazmi-1412510487Tugas 3 0317-nurulazmi-1412510487
Tugas 3 0317-nurulazmi-1412510487nurul azmi
 
Tugas 3 0317-imelda felicia-1412510545
Tugas 3 0317-imelda felicia-1412510545Tugas 3 0317-imelda felicia-1412510545
Tugas 3 0317-imelda felicia-1412510545imeldafelicia
 
Tugas4 (individu)-andrian lesmana-1311510448
Tugas4 (individu)-andrian lesmana-1311510448Tugas4 (individu)-andrian lesmana-1311510448
Tugas4 (individu)-andrian lesmana-1311510448Andrian Lesmana
 
Pengantar Struktur Data dan Tipe-tipe Data (Pertemuan 2 dan 3)
Pengantar Struktur Data dan Tipe-tipe Data (Pertemuan 2 dan 3)Pengantar Struktur Data dan Tipe-tipe Data (Pertemuan 2 dan 3)
Pengantar Struktur Data dan Tipe-tipe Data (Pertemuan 2 dan 3)TututPurnamaSari1
 
Pengenalan pascal asli
Pengenalan pascal asliPengenalan pascal asli
Pengenalan pascal asliNadya Olivia
 
Pengenalan pascal
Pengenalan pascalPengenalan pascal
Pengenalan pascalfhnx
 
05 visual basic (zulkifli said_c3)
05 visual basic (zulkifli said_c3)05 visual basic (zulkifli said_c3)
05 visual basic (zulkifli said_c3)zulkifli said
 
Mengimplementasikan Pemrograman Terstruktur.pdf
Mengimplementasikan Pemrograman Terstruktur.pdfMengimplementasikan Pemrograman Terstruktur.pdf
Mengimplementasikan Pemrograman Terstruktur.pdfraia22
 
Defri yoga p 1110651188
Defri yoga p   1110651188Defri yoga p   1110651188
Defri yoga p 1110651188defri_yoga
 

Similar to Belajar Python Dasar (20)

Kelas dan objek
Kelas  dan objekKelas  dan objek
Kelas dan objek
 
Modul 1-2
Modul 1-2Modul 1-2
Modul 1-2
 
Tugas 2 rekweb laily fitria 1412510511
Tugas 2 rekweb laily fitria 1412510511Tugas 2 rekweb laily fitria 1412510511
Tugas 2 rekweb laily fitria 1412510511
 
Modul PBO Bab-01 - Pengenalan Java
Modul PBO Bab-01 - Pengenalan JavaModul PBO Bab-01 - Pengenalan Java
Modul PBO Bab-01 - Pengenalan Java
 
Si-pi, yohanes agung nugroho, hapzi ali, sistem informasi, dasar dasar dalm i...
Si-pi, yohanes agung nugroho, hapzi ali, sistem informasi, dasar dasar dalm i...Si-pi, yohanes agung nugroho, hapzi ali, sistem informasi, dasar dasar dalm i...
Si-pi, yohanes agung nugroho, hapzi ali, sistem informasi, dasar dasar dalm i...
 
6.SI-PI, yohanes agung nugroho, hapzi ali, sistem informasi, dasar dasar dalm...
6.SI-PI, yohanes agung nugroho, hapzi ali, sistem informasi, dasar dasar dalm...6.SI-PI, yohanes agung nugroho, hapzi ali, sistem informasi, dasar dasar dalm...
6.SI-PI, yohanes agung nugroho, hapzi ali, sistem informasi, dasar dasar dalm...
 
Backend Dan Python Dasar.pptx
Backend Dan Python Dasar.pptxBackend Dan Python Dasar.pptx
Backend Dan Python Dasar.pptx
 
Tipe Data pada Bahasa Java
Tipe Data pada Bahasa JavaTipe Data pada Bahasa Java
Tipe Data pada Bahasa Java
 
Tugas 3 0317-nurulazmi-1412510487
Tugas 3 0317-nurulazmi-1412510487Tugas 3 0317-nurulazmi-1412510487
Tugas 3 0317-nurulazmi-1412510487
 
Tugas 3 0317-imelda felicia-1412510545
Tugas 3 0317-imelda felicia-1412510545Tugas 3 0317-imelda felicia-1412510545
Tugas 3 0317-imelda felicia-1412510545
 
Tugas4 (individu)-andrian lesmana-1311510448
Tugas4 (individu)-andrian lesmana-1311510448Tugas4 (individu)-andrian lesmana-1311510448
Tugas4 (individu)-andrian lesmana-1311510448
 
Pengantar Struktur Data dan Tipe-tipe Data (Pertemuan 2 dan 3)
Pengantar Struktur Data dan Tipe-tipe Data (Pertemuan 2 dan 3)Pengantar Struktur Data dan Tipe-tipe Data (Pertemuan 2 dan 3)
Pengantar Struktur Data dan Tipe-tipe Data (Pertemuan 2 dan 3)
 
Pratikum sistem basis data 2
Pratikum sistem basis data 2Pratikum sistem basis data 2
Pratikum sistem basis data 2
 
Pratikum sistem basis data 2
Pratikum sistem basis data 2Pratikum sistem basis data 2
Pratikum sistem basis data 2
 
Tugas Rekweb 4
Tugas Rekweb 4Tugas Rekweb 4
Tugas Rekweb 4
 
Pengenalan pascal asli
Pengenalan pascal asliPengenalan pascal asli
Pengenalan pascal asli
 
Pengenalan pascal
Pengenalan pascalPengenalan pascal
Pengenalan pascal
 
05 visual basic (zulkifli said_c3)
05 visual basic (zulkifli said_c3)05 visual basic (zulkifli said_c3)
05 visual basic (zulkifli said_c3)
 
Mengimplementasikan Pemrograman Terstruktur.pdf
Mengimplementasikan Pemrograman Terstruktur.pdfMengimplementasikan Pemrograman Terstruktur.pdf
Mengimplementasikan Pemrograman Terstruktur.pdf
 
Defri yoga p 1110651188
Defri yoga p   1110651188Defri yoga p   1110651188
Defri yoga p 1110651188
 

Recently uploaded

Nila88 : Situs Slot Gacor Scatter Hitam Mahjong & Link Slot Resmi Hari Ini
Nila88 : Situs Slot Gacor Scatter Hitam Mahjong & Link Slot Resmi Hari IniNila88 : Situs Slot Gacor Scatter Hitam Mahjong & Link Slot Resmi Hari Ini
Nila88 : Situs Slot Gacor Scatter Hitam Mahjong & Link Slot Resmi Hari IniNila88
 
MAKALAH agama.11docx.docx. ppt agama katolik
MAKALAH agama.11docx.docx. ppt agama katolikMAKALAH agama.11docx.docx. ppt agama katolik
MAKALAH agama.11docx.docx. ppt agama katolikssuser328cb5
 
MONITORING DAN EVALUASI PROGRAM PPI CILOTO oke.pp...............................
MONITORING DAN EVALUASI PROGRAM PPI CILOTO oke.pp...............................MONITORING DAN EVALUASI PROGRAM PPI CILOTO oke.pp...............................
MONITORING DAN EVALUASI PROGRAM PPI CILOTO oke.pp...............................teeka180806
 
Jasatoto99 : Daftar Situs Slot Gacor Maxwin & Situs Slot Terbaru Hari Ini
Jasatoto99 : Daftar Situs Slot Gacor Maxwin & Situs Slot Terbaru Hari IniJasatoto99 : Daftar Situs Slot Gacor Maxwin & Situs Slot Terbaru Hari Ini
Jasatoto99 : Daftar Situs Slot Gacor Maxwin & Situs Slot Terbaru Hari IniJasatoto99
 
IDMPO : SITUS TARUHAN BOLA ONLINE TERPERCAYA, KEMENANGAN DI BAYAR LUNAS Arnet...
IDMPO : SITUS TARUHAN BOLA ONLINE TERPERCAYA, KEMENANGAN DI BAYAR LUNAS Arnet...IDMPO : SITUS TARUHAN BOLA ONLINE TERPERCAYA, KEMENANGAN DI BAYAR LUNAS Arnet...
IDMPO : SITUS TARUHAN BOLA ONLINE TERPERCAYA, KEMENANGAN DI BAYAR LUNAS Arnet...Neta
 
Bento88slot : Situs Judi Slot Online Gacor Hari Ini Viral Gampang Maxwin
Bento88slot : Situs Judi Slot Online Gacor Hari Ini Viral Gampang MaxwinBento88slot : Situs Judi Slot Online Gacor Hari Ini Viral Gampang Maxwin
Bento88slot : Situs Judi Slot Online Gacor Hari Ini Viral Gampang MaxwinBento88slot
 
PEDOMAN PENYELENGGARAAN BEASISWA LPPD JATIM - 2024.pdf
PEDOMAN PENYELENGGARAAN BEASISWA LPPD JATIM - 2024.pdfPEDOMAN PENYELENGGARAAN BEASISWA LPPD JATIM - 2024.pdf
PEDOMAN PENYELENGGARAAN BEASISWA LPPD JATIM - 2024.pdfachsofyan1
 
Sizi99 : Situs Judi Slot Online Gacor Terpercaya & Slot Terbaik Hari Ini
Sizi99 : Situs Judi Slot Online Gacor Terpercaya & Slot Terbaik Hari IniSizi99 : Situs Judi Slot Online Gacor Terpercaya & Slot Terbaik Hari Ini
Sizi99 : Situs Judi Slot Online Gacor Terpercaya & Slot Terbaik Hari IniSizi99
 

Recently uploaded (8)

Nila88 : Situs Slot Gacor Scatter Hitam Mahjong & Link Slot Resmi Hari Ini
Nila88 : Situs Slot Gacor Scatter Hitam Mahjong & Link Slot Resmi Hari IniNila88 : Situs Slot Gacor Scatter Hitam Mahjong & Link Slot Resmi Hari Ini
Nila88 : Situs Slot Gacor Scatter Hitam Mahjong & Link Slot Resmi Hari Ini
 
MAKALAH agama.11docx.docx. ppt agama katolik
MAKALAH agama.11docx.docx. ppt agama katolikMAKALAH agama.11docx.docx. ppt agama katolik
MAKALAH agama.11docx.docx. ppt agama katolik
 
MONITORING DAN EVALUASI PROGRAM PPI CILOTO oke.pp...............................
MONITORING DAN EVALUASI PROGRAM PPI CILOTO oke.pp...............................MONITORING DAN EVALUASI PROGRAM PPI CILOTO oke.pp...............................
MONITORING DAN EVALUASI PROGRAM PPI CILOTO oke.pp...............................
 
Jasatoto99 : Daftar Situs Slot Gacor Maxwin & Situs Slot Terbaru Hari Ini
Jasatoto99 : Daftar Situs Slot Gacor Maxwin & Situs Slot Terbaru Hari IniJasatoto99 : Daftar Situs Slot Gacor Maxwin & Situs Slot Terbaru Hari Ini
Jasatoto99 : Daftar Situs Slot Gacor Maxwin & Situs Slot Terbaru Hari Ini
 
IDMPO : SITUS TARUHAN BOLA ONLINE TERPERCAYA, KEMENANGAN DI BAYAR LUNAS Arnet...
IDMPO : SITUS TARUHAN BOLA ONLINE TERPERCAYA, KEMENANGAN DI BAYAR LUNAS Arnet...IDMPO : SITUS TARUHAN BOLA ONLINE TERPERCAYA, KEMENANGAN DI BAYAR LUNAS Arnet...
IDMPO : SITUS TARUHAN BOLA ONLINE TERPERCAYA, KEMENANGAN DI BAYAR LUNAS Arnet...
 
Bento88slot : Situs Judi Slot Online Gacor Hari Ini Viral Gampang Maxwin
Bento88slot : Situs Judi Slot Online Gacor Hari Ini Viral Gampang MaxwinBento88slot : Situs Judi Slot Online Gacor Hari Ini Viral Gampang Maxwin
Bento88slot : Situs Judi Slot Online Gacor Hari Ini Viral Gampang Maxwin
 
PEDOMAN PENYELENGGARAAN BEASISWA LPPD JATIM - 2024.pdf
PEDOMAN PENYELENGGARAAN BEASISWA LPPD JATIM - 2024.pdfPEDOMAN PENYELENGGARAAN BEASISWA LPPD JATIM - 2024.pdf
PEDOMAN PENYELENGGARAAN BEASISWA LPPD JATIM - 2024.pdf
 
Sizi99 : Situs Judi Slot Online Gacor Terpercaya & Slot Terbaik Hari Ini
Sizi99 : Situs Judi Slot Online Gacor Terpercaya & Slot Terbaik Hari IniSizi99 : Situs Judi Slot Online Gacor Terpercaya & Slot Terbaik Hari Ini
Sizi99 : Situs Judi Slot Online Gacor Terpercaya & Slot Terbaik Hari Ini
 

Belajar Python Dasar

  • 1. Belajar Python 1. Learn The Basic 1.1 Basic Syntax Setiap bahasa pemrogaman memiliki penulisan syntax (kode) yang berbeda-beda meskipun ada beberapa yang hampir sama. Begitu juga penulisan syntax python yang memiliki teknik penulisan tersendiri. Python dikenal dengan bahasa yang memiliki syntax (kode) yang sederhana dan mudah untuk dipahami. Aturan umum penulisan syntax dasar python 1. Case sensitive, bahasa python menganggap huruf besar dan kecil itu berbeda, misal : Nama, berbeda dengan nama. 2. baris perintah python boleh untuk tidak diakhiri dengan tanda titik koma (;) dan boleh juga untuk menggunakan titik koma, hal ini tidak berpengaruh sama sekali. 3. boleh menggunakan tanda petik satu (‘ ‘), tanda petik dua (“ “) atau tanda petik tiga (“”” “””). 1.2 Variable and Data Types Pengertian dari variabel dan tipe data dalam bahasa pemrograman python Variabel dalam bahasa python itu seperti dengan variabel dalam matematika Contoh dalam variabel matematika. X = 5 Y = 5 Z = x + y Maka hasilnya adalah 10, kenapa bisa 10 ? Karena penjumlahan dari X dan Y. Disini dapat diartikan bahwa variabel adalah tempat untuk menyimpan data. Contoh dalam bahasa python. Ada beberapa aturan dalam penulisan variabel yang harus di perhatikan. 1. Nama variabel tidak boleh diawali oleh angka. 2. Nama variabel tidak boleh ada spasi namun bisa menggunakan underscore. 3. Nama variabel hanya bisa diawali dengan huruf dan underscore. Contoh penamaan variabel yang boleh dan yang tidak boleh.
  • 2. ● _namavariabel (boleh) ● 1namavariabel (tidak boleh) ● nama variabel (tidak boleh) ● nama-variabel (tidak boleh) ● nama_variabel (boleh) ● namaVariabel (boleh) Sedangkan untuk tipe data adalah macam – macam data yang bisa di masukan kedalam variabel. Macam - macam tipe data : 1. Tipe data angka (interger/int) 2. Tipe data desimal (float) 3. Tipe data karakter atau kumpulan karakter (string/str). Dalam penulisan tipe data string harus diapit dengan tanda kutip. 4. Tipe data True dan False (boolean/bool). Dalam penulisan data boolean huruf awalnya menggunakan kapital. Contoh coding beserta hasilnya : Catatan : Untuk mengetahui sebuah tipe data pada variabel bisa menggunakan fungsi ‘type’. 1.3 Conditional 1.4 Type Casting, Exceptions 1.5 Functions, Builtin Function 1.6 List, Tuples, sets, Dictionaries
  • 3. 1.6.1 List List merupakan tipe data yang ditulis secara berurutan dimana bisa berisi lebih dari satu tipe data, serta dapat diubah (mutable) dan memungkinkan adanya data duplikat. Tipe data list diawali dengan tanda kurung siku buka ([) dan ditutup dengan kurung siku tutup ( ] ). Sementara untuk memisahkan setiap elemen di dalamnya dapat dilakukan dengan menggunakan tanda koma ( , ). Agar lebih paham contoh penggunaan list, kita langsung praktek yuk! Misalkan kita ingin membuat list yang berisi tipe data string, numeric, dan juga boolean, kita bisa langsung menuliskan di dalam tanda kurung siku dan dipisahkan oleh tanda koma, seperti berikut: Untuk menampilkan hasil dari list yang sudah dibuat, kita bisa menggunakan perintah print(), hasilnya adalah sebagai berikut: Selain itu, kita bisa juga hanya menampilkan data tertentu saja dengan memanggil data sesuai dengan indeks nya, misalkan kita hanya ingin memunculkan data pertama, maka kita bisa memanggil indeks 0 karena di Python perhitungannya dimulai dari 0. Maka hasilnya adalah:
  • 4. 1.6.2 Tuples Tipe data tuple juga berfungsi untuk menampung sekumpulan data. Tipe data ini diawali dengan tanda kurung buka ( ( ), memisahkan setiap elemen di dalamnya dengan tanda koma ( , ) dan ditutup dengan tanda kurung tutup ( )). Perbedaan tuple yang cukup mencolok antara tuple dan list selain di kurung yang digunakan, juga karena tipe data tuple bersifat immutable yang berarti elemen pada tipe data tuple tidak dapat diubah setelah proses pendeklarasiannya. Pada tuple, kita juga bisa menuliskan data yang duplikat. Agar lebih memahami tuple, simak contoh penggunaannya! Misalkan isi tuple kita adalah bahasa pemrograman yang umum digunakan. Ketika ingin melihat hasilnya, maka kita bisa menggunakan perintah print(). Maka hasilnya adalah:
  • 5. Misalkan kita ingin mengganti isi data kedua dengan Skala, apakah kawan- kawan bisa menebak apa yang terjadi? Yup, betul sekali. Program tidak akan bisa berjalan atau akan adanya error karena tuple tidak memungkinkan kita untuk melakukan penggantian data. 1.6.3 Sets Tipe data set hampir sama dengan tipe data yang sebelumnya, dimana akan digunakan untuk menyimpan sekumpulan data. Tipe data ini akan diawali dengan tanda kurung buka kurawal ( { ), dan ditutup dengan tanda kurung tutup ( } ). Untuk memisahkan setiap elemen di dalamnya masih sama dengan menggunakan tanda koma ( , ). Namun berbeda dengan list dan tuple, tipe data objek tidak mengizinkan adanya elemen dengan nilai yang sama dan tidak memperdulikan urutan dari elemen. Contoh penggunaan set adalah sebagai berikut:
  • 6. Kita bisa melihat bahwa adanya data duplikat tidak akan menyebabkan error, hanya saja pada output nya hanya akan ditampilkan satu data saja. Selain itu, hasilnya juga tidak berurutan seperti pada list dan tuple. 1.6.4 Dictionary Tipe data dictionary akan digunakan untuk memetakan sebuah nilai pada data ke dalam nilai lainnya. Tipe data dictionary dapat dideklarasikan dengan diawali oleh tanda kurung buka kurawal ( { ), memisahkan setiap elemen di dalamnya dengan tanda koma ( , ) dan ditutup dengan tanda kurung tutup (}). Setiap elemen pada tipe data dictionary dideklarasikan dengan format: "kunci" : "nilai" Hal inilah yang membedakan tipe data dictionary dengan tipe data set. Kunci ini dapat dijadikan sebagai indeks, sehingga nilainya harus unique. Untuk lebih memperjelas tipe data dictionary, simak contoh penggunaannya yuk! Di potongan code ini kita mendefinisikan data nama adalah Theo Lau, sementara data pekerjaan adalah Data Analyst, Begitu nama dan pekerjaan dipanggil, maka harus sesuai dengan dictionary yang sudah dibuat sebelumnya. Berikut adalah hasilnya.
  • 7. Ditulis oleh Karnoto - 03119120 Prodi Teknik Sipil B Sumber https://www.dqlab.id/belajar-python-list-tuples-set-dan-dictionary 2. Data Structures 2.1 Arrays and Linked Lists 2.2 Heaps, Stacks and Queues 2.3 Hash Tables 3. Algorithms 3.1 Binary Search Trees 3.2 Recursion 3.3 Sorting Algorithms 4. Advance Topics 4.1 OOPS (Methods, Inheritance, Classes) a. Inheritance Dalam Object Oriented Programming atau yang biasa kita kenal sebagai OOP, inheritance adalah salah satu konsep yang penting. Dengan menggunakan inheritance kita dapat mengurangi penulisan fungsi, properti, dan variabel yang berulang. Inheritance mendefinisikan sebuah class(induk) ke class baru(anak) dan memberikan kesempatan untuk class(anak) untuk menggunakan object dan method dari class yang diwariskan tersebut. Inheritance juga dapat didefinisikan sebagai suatu proses di mana suatu objek memperoleh sifat dan perilaku dari objek lainnya, ketika ingin membuat class dengan fungsi yang sama seperti class lain maka kita tidak perlu menulis ulang fungsi tersebut, namun kita tinggal melakukan inheritance dan kita bisa langsung mengaksesnya. 4.2 Regular Expression 4.3 Decorators 4.4 Iterators 4.5 Type Casting, Exceptions 4.6 Function, builtin fuction 4.7 Lists, Tuples, Sets, Dictionaries 4.8 Modules (bultin, custom) 5. Version Control Systems (VCS) Version Control System (VCS) adalah sebuah infrastruktur yang dapat mendukung pengembangan software secara kolaboratif. Setiap anggota yang berada di dalam sebuah tim pengembangan software dapat menulis kode programnya masing - masing kemudian digabungkan ke server yang sudah memiliki VCS yang digunakan.
  • 8. Selain dapat mempercepat pengembangan software, VCS juga mempunyai kemampuan untuk kembali ke versi software sebelumnya jika terjadi suatu bencana terhadap versi software yang sedang dikembangkan saat ini. Kemampuan ini disebut reversibility. Selain itu, dengan menggunakan VCS setiap perubahan pada software seperti penambahan file atau pengubahan isi file dapat dipantau bagian mana yang diubah dan siapa yang mengubah. Sehingga pengerjaan software akan lebih transparan dan terukur. Berikut ini daftar VCS: a. Bazaar Bazaar merupakan bagian dari GNU Project, Bazaar adalah free software yang disponsori oleh Canonical. Salah satu layanan yang menggunakan Bazaar adalah Launchpad, sebuah tempat dimana aplikasi Ubuntu dikembangkan dan dipantau oleh komunitas. Bazaar dapat digunakan di Windows, Ubuntu, Debian, Red Hat, SUSE, OS X, FreeBSD, Solaris, Gentoo, dan lainnya. Bazaar memiliki versi GUI yang dapat memudahkan pengguna, Anda dapat bekerja secara offline dengan menggunakan Bazaar, mempunyai sistem any workflow, gatekeeper workflow, dan centralized workflow, mempunyai fitur rename tracking dan smart merging, dan kecepatan dan efisiensi penyimpanan yang sangat tinggi b. CVS CVS adalah free VCS yang digunakan oleh mayoritas proyek free software. Saat ini CVS perlahan mulai tergantikan oleh sistem VCS lain yang lebih baru. CVS mendukung pengembangan konkuren oleh banyak pengembang baik secara lokal atau diatas jaringan. CVS sangat kurang mendukung untuk atomic commits dan pemindahan / penamaan ulang file. Dengan menggunakan VS Anda dapat merekam riwayat dari file dan dokumen. CVS mendukung unreserved checkouts yaitu lebih dari satu pengembang dapat mengerjakan file yang sama secara bersamaan. CVS Server dapat berjalan di berbagai varian Unix dan CVS Client dapat berjalan di Windows dan varian Unix. c. Subversion (SVN) SVN adalah free VCS yang didesain mirip dengan CVS dan lebih sederhana. SVN mendukung atomic commits dari sebuah file dan melakukan versioning terhadap direktori, symbolic links, dan meta-data. Selain itu mendukung versioning terhadap penamaan, penyalinan, dan penghapusan suatu file atau direktori. SVN merupakan bagian dari Apache Software Foundation. SVN bersifat open source yang didirikan pada tahun 2000 oleh CollabNet Inc. SVN dinikmati luas oleh kalangan komunitas ataupun enterprise. SVN tersedia untuk Linux, OS X, FreeBSD, dan Windows. d. Mercurial Mercurial atau yang biasa disingkat menjadi Hg. Mercurial adalah VCS yang free. Mercurial memiliki konsep distributed source control management tool. Mercurial efisien untuk menangani proyek yang memiliki bermacam ukuran dan jenis. Mercurial mendukung berbagai workflow. Dan setiap Anda
  • 9. melakukan kloning sebuah proyek dengan Mercurial, seluruh riwayat proyek akan disalin. e. RCS Revision Control System atau RCS mampu mengelola revisi dari banyak file. RCS mengotomasi penyimpanan, pengambilan, pencatatan, pemeriksaan, dan penggabungan dari sebuah revisi. RCS berguna untuk teks yang sering direvisi seperti source code, program, dokumentasi, grafik, jurnal, dan surat. RCS pertama kali dikembangkan oleh Walter F. Tichy di Purdue University pada awal 1980. RCS didesain dengan lebih unggul dibandingkan pendahulunya yaitu Source Code Control System (SCCS). Peningkatan RCS dibandingkan SCCS diantaranya adalah antar muka yang lebih mudah dan pengambilan yang lebih cepat dari penyimpanan. RCS menggunakan GNU Diffutils untuk melihat perbedaan diantara dua versi yang berbeda. f. Perforce Yang satu ini bersifat proprietary dan berbayar jika Anda ingin menggunakannya untuk lebih dari 20 pengembang. Jika menggunakannya untuk 20 pengembang Anda akan mendapatkan Perforce secara free. Perforce memiliki keunggulan dengan sebuah sistem yang dinamakan Continous Delivery. Dengan menggunakan disiplin tersebut software dapat dirilis menjadi production kapanpun. Perforce ini dipercaya oleh vendor - vendor besar seperti Netflix, Samsung, Salesforce, dan New York Stock Exchange. g. ClearCase VCS yang ini juga merupakan VCS proprietary dan berbayar. Harga lisensi untuk penggunanya dalah $ 5.500. Mantap kan harganya?. IBM Rational ClearCase ini mendukung untuk version control, workspace management, parallel development support, dan auditing. Tentunya ClearCase ini dapat diintegrasikan dengan produk IBM lainnya, misal WebSphere. Selain itu ClearCase memiliki effective IP security yang menjamin source code yang ditulis akan aman dari kontrol yang tidak diizinkan. h. GNU Arch GNU Arch adalah salah satu decentralized version control system yang paling awal. Hanya saja saat ini Arch mulai kurang aktif dikembangkan. GNU Arch murah dan mudah untuk dikelola, dan tidak perlu memberikan permisi untuk setiap peserta proyek. Mempunyai fitur branching dan merging yang siap memudahkan tim yang mengembangkan free software. i. GNU CSSC CSSC merupakan proyek dari GNU Project yang menggantikan SCCS. SCCS adalah VCS yang bersifat proprietary yang tersedia untuk versi komersial dari Unix. GNU CSSC ini dikembangkan sebagai versi free untuk Unix. Dengan menggunakan CSSC, sebuah proyek dapat dikontrol menggunakan sistem lain seperti Git atau SVN. j. Git Git merupakan VCS yang dikembangkan oleh Linux Torvald ketika mengembangkan Linux (kernel). Git merupakan decentralized version control system. Git mempunyai keunggulan seperti repository syncing, bekerja secara
  • 10. offline, cheap local branching, staging area yang nyaman, mampu menangani proyek besar seperti Kernel Linux secara efektif dalam hal kecepatan dan ukuran data, mendukung non-linear development, dan multiple workflow. Selain itu Git digunakan di berbagai layanan VCS seperti Github, Bitbucket, Assembla, dan Gitorious 5.1 Basic git Usage a. Membuat/mengatur/mengambil repository: Repository adalah asset yang paling kuat dari semua project versioning. Untuk mengubah direktori menjadi repository GIT, jalankan perintah git init <directory>. Folder bernama .gt akan muncul di direktori bila perintah tersebut telah dijalankan. Kemudian, jika Anda telah memiliki direktori sebelumnya dan ingin mengambilnya b. Alur Kerja Setelah repository selesai dibuat, kita akan membahas tentang struktur pada GIT. Setiap repository lokal memiliki 3 cabang, yaitu: direktori kerja yang mengandung file; index berperan sebagai staging area dan HEAD yang menjadi penunjuk commit terakhir yang dilakukan oleh user. Jadi, seperti inilah cara kerjanya: user menambahkan file atau melakukan perubahan dari direktori kerja ke index (staging area) dan setelah di-review, file atau perubahan di-commit ke HEAD. c. Perintah ADD dan COMMIT Perubahan yang diajukan atau file tambahan akan ditambahkan ke index dengan menggunakan perintah add. Untuk menambahkan file, perintah sederhananya adalah: git add <file_name> Jika Anda cukup yakin untuk melakukan perubahan langsung di HEAD, Anda langsung gunakan perintah commit. Contohnya: git commit -m "Tambahkan catatan untuk commit Anda" Catatan: Bila perintah commit telah dijalankan (dari direktori kerja), file akan di-commit ke HEAD, namun belum terkirim ke remote repository. d. Mengirim perubahan Setelah Anda melakukan commit perubahan (dan sudah yakin siap dikirim ke repository asli), Anda bisa menggunakan perintah push.Setelah git push origin master dijalankan dari direktori kerja, perubahan yang ada di HEAD akan dikirim ke remote repository. Seperti yang telah disebutkan sebelumnya, master bisa diganti menjadi nama branch dimana perubahan ingin Anda commit.Jika repository yang ada saat ini belum di-clone dan Anda ingin membuat sambungan antara repository dan remote server, maka jalankanlah perintah ini: git remote add origin <server> Catatan: Ganti <server> dengan alamat remote server. Setelah di-clone, perubahan yang telah dibuat akan dikirim ke server. e. Branches
  • 11. Fitur keren lainnya dari GIT adalah kemampuannya untuk memungkinkan developer dan project manager untuk membuat branch independen yang berbeda dalam 1 project. Tujuan utama branch adalah untuk membuat fitur namun tetap mengisolasinya dari yang lain. Branche default di project adalah master branch. Karena banyak branch yang dibutuhkan bisa dibuat dan digabungkan dengan master branch.Branch baru bisa dibuat dengan menggunakan perintah berikut ini: git checkout -b feature_n * Catatan: feature_n adalah nama branch-nya. Jika Anda ingin kembali ke master branch utama, jalankan perintah ini: git checkout master Branch bisa dihapus dengan menggunakan perintah ini: git checkout -b feature_n Untuk membuat branch bisa digunakan oleh pengguna lain, Anda harus mengirimkannya ke remote repository melalui perintah ini: git push origin feature_n f. Update & Merging Jika Anda ingin meng-update direktori kerja lokal Anda saat ini ke yang paling baru dari remote repository, jalankan perintah git pull.Untuk menggabungkan branch lain ke yang sudah aktif, gunakan: git merge feature_n Jika Anda melakukan pull atau merge, GIT akan selalu mencoba menangani conflict sendiri, namun kadang-kadang juga gagal. Jika terjadi kegagalan karena conflict, maka pengguna harus melakukan resolve conflict secara manual. Setelah Anda meng-edit file (untuk menghapus conflict), tandai sebagai merged dengan perintah: git add <nama_file> Jika setelah merging Anda ingin melihat perubahan, jalan perintah: git diff <nama_sumber_branch> <nama_target_branch> g. Tagging Sebelum merilis update/perubahan apapun, sangat disarankan untuk membuat tag. Untuk melakukannya di GIT, gunakan perintah: git tag 1.1.0 1c2d2d56fa 1c2d2d56fa adalah perintah yang terkait dengan 10 karakter pertama dari commit-id, yang dijadikan sebagai tag. Commit ID bisa ditemukan di log.
  • 12. h. Log Catatan history dari repository bisa dipelajari dari log. Perintah git log yang menampilkannya. Untuk menampilkan commit yang dibuat oleh seorang pengguna, Anda bisa menggunakan perintah: git log --author =Bambang Log yang terkompresi (1 commit per baris) bisa dilihat dengan: git log --pretty=oneline Untuk hanya melihat file yang berubah: git log --name-status Mengganti perubahan di lokal: Jika Anda tidak sengaja membuat kesalahan dan ingin kembali ke perubahan normal yang sebelumnya, gunakan perintah: git checkout -- <filename> Dengan melakukan hal tersebut, akan mengganti perubahan di direktori kerja dengan yang terakhir ada di HEAD. Perubahan apapun yang ditambahkan ke index tidak akan terkena dampak. Sebaliknya, jika semua perubahan/commit di-drop dan master branch lokal dibutuhkan untuk menunjukkan history terakhir dari server, jalankan perintah: git fetch origin git reset --hard origin/master 6. Advance Topics 6.1 Github Github merupakan software hosting untuk open source dengan menggunakan tool Git, Github juga di posisikan sebagai Webhosting. Git sendiri merupakan Tool System Control yang kegunaan nya sebagai mengontrol berbagai code bahasa pemrograman. Git dipilih karena dari sekian banyak VCS merupakan yang paling populer (Davis, 2015). Selain itu, mudah dan digunakan secara gratis serta open source (Leonard, 2017). Adapun untuk melakukan hosting client yang bisa digunakan adalah Github, dengan memiliki repositori sourrce code terbesar di dunia (Borges, 2016). (Fumin Qi et al, 2017) “Platform hosting proyek sumber terbuka menjadi semakin populer. Salah satu yang terbesar, GitHub, menampung lebih dari 53 juta proyek pada akhir 2016. Proyek-proyek ini beragam dalam hal jenis, domain, bahasa, dan lain-lain. Lebih penting lagi, sebagai sistem kontrol versi online, GitHub mencatat berbagai data selama pengembangan proyek, seperti komit individu, kontributor, masalah dan perbaikannya. solusi, diskusi, dan lain-lain”.
  • 13. 6.2 Gitlab Gitlab adalah layanan yang menyediakan akses remote ke Git repositories. Selain meng-hosting kode Anda, layanan ini menyediakan fitur tambahan yang dirancang untuk membantu mengelola siklus pengembangan software. GitLab adalah layanan mirip github yang dapat digunakan organisasi untuk menyediakan manajemen internal git repositories. Ini adalah sistem manajemen Git-repository yang di-host-sendiri yang menjaga code private pengguna dan dapat dengan mudah menyebarkan perubahan kode. Ada beberapa fitur yang dimiliki oleh Gitlab, yaitu : ● GitLab hosts proyek software (private) Anda secara gratis. ● GitLab Adalah platform untuk mengelola Git repositories. ● GitLab menawarkan private repositories dan free public, pelacakan masalah, dan wiki. ● GitLab adalah user friendly web interface layer di atas Git, yang meningkatkan kecepatan bekerja dengan Git. ● GitLab menyediakan sistem Continuous Integration (CI) untuk mengelola proyek dan menyediakan user interface bersama dengan fitur-fitur lain dari GitLab. Tentunya ada beberapa kelebihan dan kekurangan yang terdapat pada GitLab, Antara lain Kelebihan : ● GitLab menyediakan versi GitLab Community Edition bagi pengguna untuk menemukan di mana server kode mereka present. ● GitLab menyediakan public repositories dan private tanpa batas secara gratis. ● The Snippetsection dapat membagikan sejumlah kecil kode dari suatu proyek, alih-alih membagikan seluruh proyek. Kekurangan : ● Sambil mendorong dan menarik repositori, itu tidak secepat GitHub. ● GitLab interface akan membutuhkan waktu saat berpindah dari satu halaman ke halaman lainnya.
  • 14. 6.3 BitBucket Bitbucket adalah sebuah layanan hosting yang berbasis web untuk kode sumber dan pembangunan proyek yang menggunakan Mercurial (sejak peluncuran) ataupun sistem kendali versi Git (sejak Oktober 2011) yang dimiliki oleh Atlassian. Bitbucket menawarkan paket akun komersial dan gratis. Akun gratis tersebut menawarkan sebuah layanan repositori dengan jumlah yang tidak terbatas (yang mana dapat mempunyai 5 pengguna per tim untuk akun gratis) sejak bulan September 2010. Bitbucket terintegrasi dengan perangkat lunak Atlassian lain seperti Jira, HipChat, Confluence dan Bamboo. Hal ini mirip dengan GitHub, yang utamanya menggunakan Git. Bitbucket secara tradisional disesuaikan untuk membantu pengembang profesional dengan kode pribadi mereka, terutama sejak diakuisisi oleh Atlassian pada tahun 2010. Pada bulan September 2016, Bitbucket mengumumkan telah mencapai 5 juta pengembang dan 900.000 tim pada platform tersebut.[4] Bitbucket mempunyai 3 model deployment: Cloud, Bitbucket Server dan Data Center. Dalam sebuah postingan blog tahun 2008, Bruce Eckel membandingkan Bitbucket akan sangat baik untuk Launchpad,yang mana menggunakan Bazaar. Bitbucket digunakan dalam kontrol akses, permintaan tarik, kontrol alur kerja, integrasi Jira, API lainnya. Pembatasan kode sumber disediakan oleh Bitbucket yang memiliki kontrol akses. Penegakan proyek atau tim dibuat menggunakan kontrol alur kerja dan permintaan penarikan dilakukan dalam komentar sebaris untuk berkolaborasi pada tinjauan kode. Penelusuran seluruh pembangunan dilakukan dengan integrasi Jira. Seluruh API dibuat untuk mengembangkan fitur untuk mengonfigurasi alur kerja jika tidak tersedia secara instan. Bitbucket Cloud diterapkan di server Atlassian dan diaktifkan menggunakan URL. Ini memiliki alat integrasi persisten built-in yang ekstensif. Pipeline memungkinkan pengguna untuk mengembangkan, menguji, dan mengeksekusi secara instan bersama dengan Bitbucket. Server Bitbucket dipasang langsung di lokasi, yang ada di lingkungan pengguna. Tapi itu tidak memiliki opsi untuk pengujian dan penerapan built-in sehingga sangat terhubung ke Bamboo yang merupakan integrasi berkelanjutan yang kuat dan pengiriman persisten yang membuat prosesnya otomatis. Pusat Bitbucket mirip dengan contoh tunggal server pengguna ke Bitbucket yang digunakan pada server yang sangat besar dalam lingkungan
  • 15. klaster yang menambahkan lebih banyak manfaat ke server. Kluster beberapa server yang dijalankan di server Bitbucket yang mengelola beban berat daripada server unit dengan kinerja yang dapat diskalakan. Itu tertarik pada ketersediaannya yang lebih tinggi. Karena jika cluster melambat, semua node lainnya dapat berbagi beban kerja dengan server yang tersedia dan menyelesaikan semua permintaan tanpa kehilangan data. Pencerminan pintar meningkatkan kecepatan klon Git untuk tim yang tersebar yang beroperasi di repositori besar. 7. Package Managers 7.1 Pip PIP merupakan sebuah perintah yang digunakan untuk melakukan proses penambahan atau pengurangan module python yang dilakukan secara online. Perintah PIP akan melakukan instalasi module python dengan mencari module tersebut yang terdapat pada repositori yang beralamatkan di https://pypi.org/ . Perintah PIP dapat di eksekusi setelah menginstal python : a. Untuk menjalankan perintah PIP pada sistem operasi windows maka user perlu membuka command prompt dan mengarahkannya ke path instalasi python lalu ketikan perintah pip. b. Untuk menjalankan perintah PIP pada sistem operasi linux tergantung versi python berapa yang digunakan user. Untuk python versi 2 maka “apt install python-pip” sedangkan python versi 3 “apt install python3-pip”. Contoh penggunaan perintah PIP : a. Untuk pengguna OS MS WIndows , setalah anda menginstall Python selanjutnya masuk pada command prompt , dan ketikkan " pip " , contoh : pip install flask , artinya melalukan installasi module flask , dan ingat komputer yang anda gunakan harus dalam keadaan terkoneksi dengan internet. b. Untuk pengguna OS Linux ada dua , bila menggunakan Python 2 , pada terminal ketikkan " pip " sedangkan untuk python 3 ketikkan ' pip3 ". 7.2 PyPI Python Package Index, disingkat PyPI dan juga dikenal sebagai Cheese Shop (referensi Monty Python Flying Circus sketsa Cheese Shop), yang merupakan repositori perangkat lunak pihak ketiga resmi untuk Python. PyPI dapat disamakan dengan CPAN, repositori untuk Perl.Beberapa manajer paket, termasuk pip, menggunakan PyPI sebagai sumber standar untuk paket dan dependensinya. Lebih dari 113.000 paket Python yang dapat diakses melalui PyPI. PyPI terutama host paket Python dalam bentuk arsip yang disebut sdists (sumber distro) atau "roda" precompiled.
  • 16. PyPI sebagai indeks memungkinkan pengguna untuk mencari paket-paket dengan kata kunci atau filter terhadap metadata, seperti lisensi perangkat lunak bebas atau kompatibilitas dengan POSIX. Satu entri di PyPI dapat disimpan, selain dari paket dan metadata, rilis sebelumnya dari paket, roda dikompilasi (misalnya yang mengandung Dll pada Windows), serta bentuk yang berbagai bentuk sistem operasi dan versi Python yang berbeda . 8. Learn Framework Pada bab ini kita akan mempelajari mengenai Framework beserta macam- macam jenis dari Framework. Sesuai dengan namanya, Framework merupakan kerangka kerja untuk mengembangkan aplikasi berbasis website maupun dekstop. Kerangka kerja sangat membantu developer dalam menuliskan sesuatu dengan lebih terstuktur dan tersusun rapi. Kerangka kerja diciptakan dengan tujuan untuk mempermudah kinerja dari seorang programmer. 8.1 Synchronous 8.2 Asynchronous Asynchronous Programming, merupakan sebuah pendekatan pemrograman yang tidak terikat pada input output (I/O) protocol. Ini menandakan bahwa pemrograman Asynchronous tidak melakukan pekerjaannya menggunakan cara lama yaitu dengan eksekusi baris program satu persatu secara hirarki. Asynchronous Programming melakukan pekerjaannya tanpa harus terikat dengan proses lain atau dapat kita sebut secara Independent. Dari gambar diatas terlihat bahwa pendekatan model pemrograman Asynchronous memiliki waktu eksekusi yang lebih cepat 25 detik dibandingkan dengan pendekatan metode pemrograman Synchronous. Pada Asynchronous tiap modul tidak
  • 17. perlu menunggu task lainnya selesai untuk berjalan. Dengan begitu, waktu eksekusi juga dapat menjadi lebih singkat dan cepat. 8.3 Django 8.4 Gevent Gevent adalah penggunaan pemrograman sekuensial sederhana dalam python untuk mencapai skalabilitas yang disediakan oleh IO asynchronous dan multi-threading ringan (sebagai lawan dari gaya pemrograman panggilan balik menggunakan Twisted's Deferred). Itu dibangun di atas libevent / libev (untuk I/O asinkron) dan greenlet (multi-threading kooperatif ringan).Tugas libevent / libev adalah menangani loop acara. Seperti yang akan kita pelajari di bagian SocketIO nanti, SocketIOServer kami adalah loop peristiwa yang dapat memancarkan hasil tertentu, pada terjadinya peristiwa tertentu. Ini pada dasarnya adalah bagaimana contoh SocketIOServer kami akan tahu kapan harus mengirim pesan ke klien, karenanya streaming data real-time dari server ke klien, pada terjadinya peristiwa tertentu. Seperti yang telah kita pahami dari konsep umum yang berkaitan dengan proses dan utas (pthreads) dan konkurensi dan paralelisme di bagian sebelumnya, kami ingin dapat menangani konkurensi dengan python (untuk manfaat I/O) dan ini adalah di mana greenlets cocok dengan gambar. 8.5 Flask Flask berfungsi sebagai kerangka kerja aplikasi dan tampilan dari suatu web. Dengan menggunakan Flask dan bahasa Python, pengembang dapat membuat sebuah web yang terstruktur dan dapat mengatur behaviour suatu web dengan lebih mudah. Flask termasuk pada jenis microframework karena tidak memerlukan suatu alat atau pustaka tertentu dalam penggunaannya.Flask adalah sebuah web framework yang ditulis dengan bahasa Python dan tergolong sebagai jenis microframework. 8.6 Sanic 8.7 Pyranid 8.8 Alohttp 8.9 Torando