Python for Data Prof Beginner Part 1 - nurkomarhidaya/DQLab GitHub Wiki
1. Mari Mengenal Python
Pengantar
Sesampai di ruangan, aku sibuk berpikir apakah bos mengetahui jika aku diam-diam membantu tim lain mendata profil pelanggan supermarket? “Aksara, saya puas dengan performa kerjamu. Kamu layak dipromosikan jadi data analyst perusahaan dan dipindahkan ke divisi data di bawah kepemimpinan Kroma serta dibimbing langsung Senja dan Andra.” Ini begitu mendadak. Aku masih mencerna informasi ini dalam diam. Semuanya serba cepat. Aku sudah memiliki laptop baru dan dua modul untuk dipelajari pada hari pertama bekerja di divisi baru. Sembari menunggu instruksi, aku membuka isi modul berharap ada bacaan seru. Tapi…
Aku mengangguk sopan. “Sebenarnya tadi itu juga clue untuk pelatihanmu hari ini tentang Bahasa Pemrograman Python, hal paling fundamental dalam dunia data,” ujar Senja sambil menarik bangku untuk duduk di sebelahku. Mencoba melupakan kejadian tadi, aku memfokuskan diri pada penjelasan Senja.
Mari Mengenal Python
Python akan sangat membantuku memahami materi-materi lainnya. Kalau sudah paham mengenai Python aku sudah memiliki pijakan dasar. Oke, baiklah!
Apa dan Kenapa Python - Part 1?
Python adalah bahasa pemrograman yang ditujukan untuk general-purpose programming dan termasuk dalam kategori high-level programming language.
Sebagai general-purpose programming language, Python digunakan untuk berbagai macam permasalahan seperti: pengembangan aplikasi web ataupun mobile, data science, dll.
Python masuk ke dalam kategori high-level programming language dikarenakan bahasa pemrograman Python yang mudah untuk dibaca dan dituliskan oleh manusia.
Bahasa pemrograman Python diciptakan oleh Guido van Rossum dan pertama kali diperkenalkan pada tahun 1991 sebagai sebuah proyek open-source.
Sifat open-source dari Python mengartikan bahwa setiap orang dapat mengembangkan program komputer dengan menggunakan bahasa pemrograman Python baik untuk tujuan komersil/non-komersil.
Apa dan Kenapa Python - Part 2?
Bahasa pemrograman Python bersifat dynamically typed (Python akan secara otomatis mengubah masukan dari pengguna) dan mendukung berbagai paradigma pemrograman baik pemrograman secara prosedural, berbasis objek (Object-Oriented), ataupun fungsional.
Selain alasan di atas terdapat beberapa alasan lain untuk menggunakan bahasa pemrograman Python:
- Python dikembangkan untuk bersifat extendible yang mengartikan bahwa Python dapat dikembangkan untuk berbagai macam tugas baik untuk pembuatan aplikasi web ataupun desktop, proses analisis data, dll.
- Python memiliki komunitas yang besar yang secara aktif berkontribusi untuk menyediakan berbagai macam fungsionalitas (third-party libraries). Third-party libraries yang tersedia dalam bahasa pemrograman Python memungkinkan para pengembang untuk dapat fokus menyelesaikan permasalahan yang ada. Per Januari 2020, terdapat 214,922 modul third-party yang dapat kita gunakan secara cuma-cuma.
- Python terintegrasi dengan baik dengan berbagai macam bahasa pemrograman dan layanan enterprise. Untuk bagian-bagian yang melibatkan sumber daya komputasi yang besar, pengembang dapat menggunakan fungsionalitas dalam bahasa pemrograman lainnya yang bersifat low-level yang telah dikemas ke dalam fungsionalitas Python.
Quiz
Bahasa pemrograman Python, termasuk salah satu bahasa pemrograman yang mudah dimengerti dan dibaca oleh manusia, hal ini membuat Python dapat disebut sebagai: JAWABAN
- User-centric programming language
- High-level programming language
- Medium-level programming language
- Advance programming language
- Functional programming language
Quiz
Python diciptakan oleh … pada tahun … JAWABAN
- Robert Kowalski, 1972
- Dennis Ritchie, 1993
- Rasmus Lerdof, 1994
- Guido van Rossum, 1991
- James Gosling, 1995
Program Pertama "Hello Word"
Setelah memahami teori-teori fundamental terkait dengan "Apa dan Mengapa Python?" aku diminta membuat sebuah program sederhana dengan Python. Fungsi Python yang akan pertama kali aku pelajari adalah fungsi print(). Dengan fungsi print(), aku dapat menampilkan pesan ke layar pengguna.
Tugas
menampilkan pesan “Hello World!” pada layar menggunakan fungsi print()
print ("Hello World!")
Program Pertamaku
Keren! Aku baru tahu kalau Python memiliki fungsi print() yang berguna untuk menampilkan pesan ke layar pengguna.
Tugas
Sekarang aku diberikan tugas dari Senja untuk menampilkan kalimat “Halo Dunia” dan “Riset Bahasa Python” menggunakan fungsi print().
print("Halo Dunia")
print("Riset Bahasa Python")
Struktur Program Python - Part1
Setelah berhasil membuat program sederhana menggunakan Python, aku diminta Senja untuk belajar struktur dari sebuah program Python. Dari situ aku paham sebuah program Python pada umumnya terdiri dari:
-
Statements: Instruksi yang diberikan secara baris per baris untuk dijalankan oleh mesin. Contoh:
-
Variables: Lokasi penyimpanan yang dapat digunakan untuk menampung sebuah data atau informasi. Contoh: aku mempunyai variabel yang bernama bilangan1, bilangan2, dan kalimat1
-
Literals: Simbol-simbol yang dapat kita gunakan untuk mengisi suatu variabel. Pada kode yang telah dicontohkan di atas, angka 5 dan 10 serta 'Belajar Bahasa Python' disebut sebagai literal.
-
Operators: Simbol-simbol yang dapat digunakan untuk mengubah nilai dari satu variabel dengan melibatkan satu atau lebih variabel dan literal. Contoh: Tanda + merupakan salah satu contoh operator. Dengan menggunakan tanda +, aku berhasil menambahkan isi dari bilangan1 dan bilangan2!.
Adapun operator yang lain selain operator + adalah sebagai berikut.
- Operator - yang berfungsi sebagai operator pengurangan,
- Operator * yang berfungsi sebagai operator perkalian, dan
- Operator ** untuk pemangkatan
Tugas Peraktek
Aku diminta untuk mencoba mempraktekkan tutorial yang diajarkan untuk memahami struktur bahasa pemrograman Python. Ketik Syntax berikut pada Live Code Editor:
1. # Statement
2. print("Belajar Python menyenangkan")
3. print("Halo Dunia")
4. print("Hello World!")
5. # Variables & Literals
6. bilangan1 = 5
7. bilangan2 = 10
8. kalimat1 = "Belajar Bahasa Python"
9. # Operators
10. print (bilangan1+bilangan2)
Tugas Peraktek
Tantangan belum berakhir. Aku diminta untuk membuat program pengurangan sederhana dengan Python. Deklarasi variable bilangan1 dengan 20, dan bilangan2 dengan 10 dan tampilkan hasil pengurangan bilangan1 & bilangan 2
bilangan1 = 20
bilangan2 = 10
print(bilangan1 - bilangan2)
Tugas Peraktek
- Aku diminta menghitung harga_setelah_potongan dan harga_final. harga_final diperoleh dengan mengalikan harga_setelah_potongan dengan angka 1.1 karena PPN sebesar 10% (100% + 10% = 110% atau 1.1)
- Aku menggunakan variabel harga_asli dengan nilai 20000 dan variabel potongan dengan nilai 2000.
harga_asli = 20000
potongan = 2000
harga_setelah_potongan = harga_asli - potongan
harga_final = harga_setelah_potongan *1.1
print(harga_final)
Struktur Program Python - Part2
Setelah mengerjakan tugas yang diberikan Senja, aku kembali lanjut belajar. Berikut adalah hal-hal baru yang aku pelajari mengenai Python:
- Reserved Words: Kumpulan kata-kata yang memiliki makna khusus dalam bahasa pemrograman Python. Kata False, return, dan for merupakan contoh dari reserved words. Catatan: Ternyata, aku tidak dapat mendeklarasikan variabel dengan menggunakan sebuah reserved word!
- Whitespace: Pada bahasa Python, spasi dan **tab **memiliki makna khusus untuk menandai serangkaian blok dalam kode Python. Hal ini akan dijelaskan secara lebih lanjut pada bagian struktur pemilihan dan struktur pengulangan pada bahasa Python.
- Comments: Comments merupakan sekumpulan teks yang dituliskan di dalam sebuah program yang tidak akan mempengaruhi hasil dari sebuah program. Walaupun tidak mempengaruhi hasil program, comments merupakan salah satu komponen yang penting dalam pengembangan program. Hal tersebut dikarenakan comments dapat diselipkan di antara sekumpulan statements yang telah dituliskan, untuk berkomunikasi dengan rekan programmer lainnya dalam satu tim.
Terdapat dua jenis comments di dalam Python, yaitu:
- a. single line comment (comments dalam satu baris) seperti pada contoh berikut:
- b. multi line comment (comments dalam beberapa baris) yang dapat dituliskan seperti pada contoh berikut:
Quiz
Dari pilihan-pilihan di bawah ini, manakah yang bukan merupakan struktur dari sebuah program Python: JAWABAN
- Reserved Words
- Whitespace
- Variables
- Operators
- Pointers
Quiz
Dalam bahasa pemrograman Python, … berfungsi untuk memberikan nilai dari sebuah variabel. JAWABAN
- Whitespace
- Operators
- Literals
- Pointers
- Assignment
2. Python Variables & Data Types
Python Variabel
Setelah mengetahui konsep sederhana dari sebuah variabel, aku diminta mencoba mendeklarasikan beberapa variabel dalam bentuk teks ataupun bilangan dan melakukan operasi yang melibatkan sekumpulan variabel.
Pada bagian ini, aku akan mengkaji variabel dan tipe data secara lebih detail. Pada pertemuan sebelumnya aku berhasil mendeklarasikan variabel dengan menggunakan ekspresi seperti:
Tips: Dalam mendeklarasikan sebuah variabel, berilah nama yang mewakili isi dari variabel tersebut. Sebagai contoh :
Aturan Penamaan Python Variabel
Penamaan suatu variabel pada python dapat dikatakan valid selama memenuhi aturan-aturan berikut:
- Nama dari sebuah variabel harus dimulai dengan huruf (a-z, A-Z) atau karakter garis bawah underscore (_) dan tidak dapat dimulai dengan angka (0-9).
- Variabel hanya boleh mengandung karakter alfabet, bilangan dan underscore (a-z, A-Z, 0-9, _)
- Variabel bersifat case-sensitive yang mengartikan bahwa variabel TINGGI, tinggi, dan Tinggi merujuk pada tiga variabel berbeda.
Selain dapat mendeklarasikan nilai dari suatu variabel secara baris per baris, aku juga dapat mendeklarasikan beberapa variabel dalam satu baris dengan menggunakan ekspresi seperti:
Quiz
Temukan satu contoh pendeklarasian variabel yang tidak valid dari lima pilihan berikut. JAWABAN
- x = 10
- x, y, z = True, 1, 4.0
- x, y, z = 3, 3.0, True
- 2x = 80
- x, y, z = False, True, True
Quiz
Temukan salah satu nama variabel yang tidak valid dari lima pilihan berikut : JAWABAN
- _TinggiBadan
- 1unit
- tinggi_badan
- tinggi__badan
- Tinggi-badan
Tipe Data Dasar : Null, Boolean, Numeric dan Text
- Null Type: Tipe data null dalam Python digunakan untuk menyimpan nilai kosong atau tidak ada yang dinyatakan dengan None.
- Boolean Type: Tipe data boolean atau bool digunakan untuk menyimpan nilai kebenaran (True, False) dari suatu ekspresi logika.
- Numeric Type: Tipe data yang digunakan untuk menyimpan data berupa angka. Terdapat dua macam tipe data numeric, yaitu int untuk menyimpan bilangan bulat (e.g.: 0, 1, 2, 404, -500, -1000) dan float untuk menyimpan bilangan riil (e.g.: 0.5, 1.01, 2.05, 4.04)
- Text Type: Pada Python, tipe data string (str) digunakan untuk menyimpan data teks. Tipe data string dimulai dengan tanda kutip (baik kutip satu/ dua) dan diakhir dengan tanda kutip. Contoh: "Teks", "Contoh teks menggunakan Python", dan 'Teks pada Python'
Quiz
… merupakan sebuah tipe data yang hanya berisikan dua nilai kebenaran. JAWABAN
- Numeric
- Float
- Integer
- Boolean
- Text
Quiz
Tipe data … merupakan tipe data yang dapat digunakan untuk menampung bilangan berkoma atau bilangan riil. JAWABAN
- Float
- Integer
- Boolean
- Text
- String
Sequence Type - Part 1
Tipe data ini digunakan untuk menampung sekumpulan data secara terorganisir. Bentuk dari tipe data sequence ini adalah List dan Tuple. Pada part 1 ini, aku akan mempelajari tipe data list terlebih dahulu.
Tipe data list diawali dengan tanda kurung siku buka ( [ ), memisahkan setiap elemen di dalamnya dengan tanda koma ( , ) dan ditutup dengan kurung siku tutup ( ] ). Sebagai contoh:
Setiap elemen dari list memiliki indeks yang dimulai dari angka 0 dan terus bertambah satu nilainya hingga elemen terakhir dari list. Sebagai contoh:
Tipe data list bersifat mutable yang berarti setiap elemen di dalam list dapat dirubah nilainya setelah proses pendeklarasian list. Sebagai contoh:
Tugas:
Aku diberikan tugas untuk menerapkan variasi tipe data list dengan mengikuti petunjuk yang diberikan Senja. Berikut petunjuknya:
- Petunjuk 1: Input data 1, 'dua', 3, 4.0, 5 ke dalam contoh_list
- Petunjuk 2: Ambil Elemen pertama dari contoh_list untuk menampilkan output 1 menggunakan print statement
- Petunjuk 3: Ambil Elemen ke empat dari contoh_list untuk menampilkan output 4.0 menggunakan print statement
- Petunjuk 4: Input data 1, 'dua', 3, 4.0, 5 ke dalam contoh_list
- Petunjuk 5: Rubah Elemen keempat dalam contoh_list menjadi 'empat'
- Petunjuk 6: Tampilkan output elemen keempat yang telah dirubah tersebut menggunakan print statement
contoh_list = [1, 'dua', 3, 4.0, 5]
print(contoh_list[0])
print(contoh_list[3])
contoh_list = [1, 'dua', 3, 4.0, 5]
contoh_list[3] = 'empat'
print(contoh_list[3])
Sequence Type - Part 2
Setelah mempelajari tipe data list, aku mempelajari tipe data tuple. 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 ( ) ). Sebagai contoh:
Aturan indeks dan cara mengakses elemen pada sebuah tuple serupa dengan list. Sebagai contoh:
Berbeda dengan tipe data list, tipe data tuple bersifat immutable yang berarti elemen pada tipe data tuple tidak dapat diubah setelah proses pendeklarasiannya.
Pada saat aku mengubah elemen pada tuple seperti pada kode berikut,
akan menghasilkan error di console, yaitu TypeError
Tugas:
Sekarang aku diberikan tugas untuk menerapkan variasi tipe data tuple dengan mengikuti petunjuk yang diberikan Senja:
- Petunjuk 1: Input data Januari sampai dengan April ke dalam contoh_tuple
- Petunjuk 2: Ambil Elemen pertama dari contoh_tuple untuk menampilkan output 1 menggunakan print statement
- Petunjuk 3: Input kembali data Januari sampai dengan April ke dalam contoh_tuple
- Petunjuk 4: Rubah Elemen pertama dalam contoh_tuple menjadi 'Desember'
Set Type
Serupa dengan tipe data sequence, tipe data set digunakan untuk menampung sekumpulan data dengan tipe lainnya. Terdapat dua jenis dari tipe data set yaitu, set dan frozenset.
Tipe data set diawali dengan tanda kurung buka kurawal ( { ), memisahkan setiap elemen di dalamnya dengan tanda koma ( , ) dan ditutup dengan tanda kurung tutup ( } ). Namun berbeda dengan tipe data sequence, seperti list, tipe data objek tidak mengizinkan adanya elemen dengan nilai yang sama dan tidak memperdulikan urutan dari elemen. Sebagai contoh:
Akan menghasilkan output:
sedangkan pada tipe data set:
Akan menghasilkan output :
Dari kedua contoh output pada program, dapat terlihat:
- Berbeda dengan tipe data set, tipe data list memperdulikan urutan dari setiap elemen saat list dideklarasikan.
- Berbeda dengan list yang mengizinkan adanya duplikasi elemen, tipe data set tidak mengizinkan adanya elemen dengan nilai yang sama di dalamnya.
Keunikan dari kedua tipe data ini tentunya menjadi pengetahuan yang berguna. Dan aku akan mempelajarinya kembali pada bagian struktur kontrol pengulangan!
Bagaimana dengan tipe data frozenset? Tipe data frozenset sebenarnya hanya merupakan set yang bersifat immutable, yang artinya setiap elemen di dalam frozenset tidak dapat diubah setelah proses deklarasinya. Untuk membuat tipe data frozenset, aku dapat merujuk potongan kode di bawah ini:
Tugas:
Sekarang aku diberikan tugas untuk menerapkan variasi set dan frozenset oleh Senja:
- Tugas 1:Input data Dewi, Budi, Cici, Linda, Cici kedalam tipe data list dan tampilkan hasilnya
- Tugas 2: Input data Dewi, Budi, Cici, Linda, Cici kedalam tipe data set dan tampilkan hasilnya
- Tugas 3: Input data Dewi, Budi, Cici, Linda, Cici kedalam tipe data frozenset dan tampilkan hasilnya
Mapping Type
Tipe data mapping dapat digunakan untuk memetakan sebuah nilai ke nilai lainnya. Dalam Python, tipe data mapping disebut dengan istilah dictionary. 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 mapping dengan tipe data set. Untuk lebih memperjelas tipe data mapping, aku mempelajari potongan kode berikut:
Potongan kode di atas adalah contoh pendeklarasian dari tipe data dictionary. Kemudian, bagaimana dengan cara mengakses informasi dari tipe data ini?
Dengan mencoba potongan code ini pada live code editor, maka aku akan mendapatkan output:
Untuk mengakses elemen dari sebuah dictionary, aku hanya perlu menspesifikasikan kata kunci yang terdapat dalam dictionary tersebut. Tugas: Menggunakan tipe data mapping, aku diminta Senja untuk menampilkan nama & pekerjaan John Doe, seorang Programmer.
Tugas Praktek
Ternyata seru juga! Aku jadi berniat mengembangkan program kalkulator potongan harga ini untuk beberapa barang sekaligus agar lebih fungsional. Kalau begitu, aku perlu rapikan dulu informasi setiap barang di tabel ini.
“Lalu, aku tinggal merepresentasikan semuanya ke tipe data dictionary, dengan begitu akan lebih mudah mengolahnya,” gumamku. Aku pun mulai mendeklarasikan variabel sepatu, baju, dan celana untuk menampung informasi barang ke dalam live code editor.
Tugas Praktek
Setelah berhasil merepresentasikan setiap barang ke dalam tipe data dictionary dengan variabel nama, harga, dan diskon, langkahku selanjutnya adalah: mendeklarasikan list dengan nama _daftar_belanja _yang berisi data sepatu, baju, dan celana.
Tugas Praktek
Dengan data yang aku miliki, aku bisa menghitung total harga jual dengan potongan harga beserta pajak sebesar 10% dari nilai jual. Untungnya Senja memberikan beberapa tips untuk menyelesaikan tugas ini:
- Tips 1. # Data yang dinyatakan ke dalam dictionary
- Tips 2. # Hitung harga masing-masing data setelah dikurangi diskon
- Tips 3. # Hitung harga total
- Tips 4. # Hitung harga kena pajak
- Tips 5. # Cetak total_harga + total_pajak
3. Python Operators
Pendahuluan
Setelah aku berhasil mempelajari detail terkait dengan variables dan data type, sekarang aku akan mempelajari operator-operator yang tersedia di dalam Python. Di dalam Python, operator terbagi ke dalam 6 kelompok:
- Arithmetic operators
- Assignment operators
- Comparison operators
- Logical operators
- Identity operators
- Membership operators
Aritmatic Operator
Operator arithmetic digunakan pada tipe data numerik, untuk melakukan operasi matematika sederhana yang terdiri atas:
Assignment Operator
Operator assignment digunakan untuk mendeklarasikan nilai secara langsung ke suatu variabel.
Quiz
Quiz
Comparison Operator
Operator comparison dapat digunakan untuk membandingkan dua buah nilai, berikut merupakan contoh-contoh operator komparasi.
Logical Operator
Operator logical digunakan untuk menggabungkan beberapa nilai kebenaran atas suatu statemen logika.
Quiz
Quiz
Identity Operator
Operator identitas dapat digunakan untuk membandingkan identitas dari dua buah variabel.
Pada umumnya, operator identitas sering digunakan bersamaan dengan fungsi type(), yang mana fungsi type() akan menerima sebuah objek dan mengembalikan tipe data dari objek tersebut. Di bawah ini adalah contoh penggunaan operator identitas dan fungsi type().
Nah, aku coba mempraktekkan contoh tutorial yang diberikan Senja pada live code editor.
akan menampilkan pesan True.
Setelah line di bawah ini selesai dieksekusi, Python akan secara otomatis mengubah tipe data dari x menjadi float
Membership Operator
Operator keanggotaan (membership) dapat digunakan untuk memeriksa anggota dari sebuah tipe data sequence/set. Operator keanggotaan meliputi:
Nilai Prioritas Operator dalam Python - Part 1
Setelah mempelajari berbagai operator dalam bahasa pemrograman Python, tentunya aku juga ingin bisa menuliskan operasi-operasi variabel yang bersifat ekspresif dan ringkas.
Sebagai contoh, untuk menuliskan sebuah program menghitung diskon dan pajak pembelian berdasarkan ilmu yang telah aku pelajari, aku dapat menuliskannya dengan potongan kode berikut:
cara lebih mudah dengan menjelaskan presedensi (urutan eksekusi) dari operator. atau dapat menuliskannya ke dalam jumlah baris yang lebih sedikit seperti pada potongan kode berikut
Tugas:
Hitung lah harga yang harus dibayarkan menggunakan barang senilai 150,000, dengan diskon 30% dan pajak 10%, menggunakan cara yang aku gunakan awal dan cara lebih singkat.
Nilai Prioritas Operator dalam Python - Part 2
Dalam bahasa pemrograman Python, tabel berikut mencakup nilai prioritas dan arah pengerjaan dari setiap operator.
Dari tabel di atas, dapat terlihat bahwa tanda () memiliki nilai prioritas yang paling tinggi. Hal itu menandakan jika di dalam suatu statemen yang melibatkan beberapa operator secara sekaligus, setiap operasi yang berada di dalam tanda () akan dikerjakan terlebih dahulu. Kemudian, jika terdapat beberapa operasi dalam tanda (), tanda kurung yang berada di sebelah paling kiri akan dikerjakan terlebih dahulu dikarenakan arah pengerjaan dari tanda () adalah dari kiri ke kanan.
Sebagai contoh, pada proses deklarasi variabel nilai di bawah ini.
Dari contoh di atas, meskipun operator perkalian (*) memiliki nilai prioritas yang lebih tinggi dari operator pengurangan (-), tanda () akan membuat Python mengerjakan bagian pengurangan terlebih dahulu, sebelum akhirnya mengalikan hasil pengurangan dengan bilangan 100.
Quiz
Tugas Praktek
Kenapa tidak terpikirkan olehku, ya? Harusnya aku tidak perlu mendeklarasikan variabel total_pajak dan aku bisa langsung menampung hasil perhitungan akhir saat mendeklarasikan variabel total_harga. Jadi, kodeku akan berjalan jika aku menambahkan setiap harga barang yang telah dipotong diskon sebelum menghitung pajak.
Tugas:
Dengan cara yang diajarkan Senja, aku akan membuat potongan kode diatas menjadi lebih simpel. Jangan lupa ada pajak 10%.
4. Pythons Conditioning & Looping
Python Conditioning for Decision - Part 1
Layaknya bahasa pemrograman lainnya, bahasa pemrograman Python menyediakan statemen desisi (decision statement) untuk berinteraksi dengan variabel bertipe boolean dan operator logika. Statemen desisi dalam Python dapat dituliskan dengan menggunakan format berikut:
Dengan <conditions> berisikan operator yang mengembalikan nilai kebenaran; ataupun beberapa operator yang mengembalikan nilai kebenaran, yang digabungkan dengan operator logika. Melalui sebuah statemen desisi (if statement), <do_action_1> sampai dengan <do_action_n> akan dijalankan saat <conditions> bernilai True.
Dalam menuliskan serangkaian aksi (<do_action_1>, ... , <do_action_n>) dalam sebuah statemen if, aku harus mengemas setiap aksi dalam sebuah blok dengan menambahkan indentasi (jorokan) dari pada aksi.
Python Conditioning for Decision - Part 2
Aku mempelajari kode yang diberikan Senja dan coba mempraktekkannya ke dalam live code editor:
Kemudian, untuk melengkapi sebuah statement if, aku bisa menambahkan satu ataupun lebih statemen desisi elif, untuk melakukan pengecekan kondisi lainnya, saat kondisi dalam statement if atau elif di atasnya tidak terpenuhi.
Tugas:
Praktekkan kode berikut di live code editor pada baris setelah kode sebelumnya yang telah dibuat.
ps: Aku juga bisa mengubah nilai x sehingga lebih mudah memahami statemen desisi mana yang akan dieksekusi oleh potongan kode yang telah aku jalankan.
Python Conditioning for Decision - Part 3
Dari yang aku pelajari pada bagian awal dari statemen desisi, operator desisi juga dapat digunakan dengan operator logika. Sebagai catatan tambahan, aku juga belajar bahwa aksi dalam sebuah desisi statemen dapat dituliskan desisi statemen tambahan (lainnya) yang dikenal dengan istilah nested if.
Tugas:
Praktekkan potongan kode berikut dalam live code editor.
Tugas Praktek
menghitung tagihan pembayaran karena saat ini prosesnya masih manual.
Tugas:
“Aksara, kantor kita akan merilis penawaran baru terkait jasa pembuatan data warehouse. Bisa tolong kembangkan kalkulatormu untuk menghitung tagihan pembayaran? Soalnya selama ini kita masih manual,” jelas Senja sembari memberikan contoh nota tagihan kantor.
Aku belum mengiyakan karena sedikit ragu. Mengingat sebelumnya aku sempat salah. Tapi dalam hati aku berkata, pasti bisa! Kali ini aku harus mampu membuat kalkulator lebih rumit.
Solusi yang terlintas dalam bayanganku: Kalkulator ini harus dapat menghitung subtotal setiap jasa yang diambil dari kolom harga/ hari dan total hari dari setiap jasa. Ternyata Senja juga memikirkan hal yang sama dengan instruksinya yang sangat membantu.
Tugas Praktek
Aku menunjukkan potongan kode dan hasil dari kalkulator yang telah aku buat ke Senja yang sudah berhasil menampilkan kalimat:
Selamat pagi, Anda harus membayar tagihan sebesar:
Kulihat kedua alis Senja bertaut, ini pertanda kodeku pasti ada yang keliru. “Kalau kamu hanya memasukkan perintah ‘selamat pagi’ seakan kalau tagihan ini dikirim hanya saat pagi, padahal bisa kapan saja sesuai kebutuhan,” komentar Senja. Begini, jam pengiriman email kantor kita mulai dari 6 pagi sampai 9 malam.
Tugas:
Tolong masukkan variabel keterangan waktu tersebut di kodemu. Lalu, diatur dengan detail berikut:
- Diatas jam 07 malam adalah salam 'selamat malam'
- Diatas jam 05 sore adalah salam 'selamat sore'
- Diatas jam 12 siang, adalah 'selamat siang'
- dan selain itu 'selamat pagi'
“Oh, oke. Paham,” sahutku sembari merevisi. Saran yang bagus, kedepannya aku harus berpikir kritis.
Python Primitive Loop Control
Loop Control merupakan salah satu fitur yang mengizinkan penggunanya untuk melakukan serangkaian aksi, selama suatu kondisi yang telah ditetapkan bernilai benar. Dalam Python, terdapat dua bentuk primitif dari loop kontrol (struktur pengulangan), yaitu
- whileloops
- forloops
Python while loops - part1
Pertama-tama aku mempelajari struktur kontrol while loops menggunakan contoh berikut:
Dari tugas di atas, aku belajar bahwa statemen while akan terus menjalankan aksi di dalamnya, selama kondisi yang dituliskan di samping kanan statemen while terus terpenuhi. Melalui penambahan nilai i sebagai salah satu aksi dalam statemen while, saat nilai i = 4, kondisi dari statemen while tidak akan terpenuhi dan eksekusi program akan dilanjutkan ke perintah print(total_tagihan).
Python while loops - part2
Dalam sebuah struktur kontrol pengulangan, aku dapat menggunakan perintah break untuk keluar dari struktur pengulangan dan perintah continue untuk melanjutkan proses pengulangan berikutnya
Python while loops - part3
Python for loops - Part1
Python for loops - Part2
Serupa dengan struktur pengulangan while, aku juga dapat memanfaatkan statement break dan continue di dalamnya. Aku mencoba potongan kode di bawah menggunakan live code editor untuk penggunaan statement break.
Setelah dijalankan akan menghasilkan
Python for loops - Part3
Ternyata, aku belajar bahwa ada istilah nested loops, yaitu pengulangan bersarang. Dengan nested loops, aku dapat mengkombinasikan (menambahkan) struktur pengulangan lain di dalamnya. Aku mencoba potongan kode di bawah menggunakan live code editor:
Tugas Praktek
Aku diberi informasi oleh Senja bahwa manajemen cukup puas dengan hasil kalkulator potongan harga dan pajak yang aku kembangkan. Setelahnya, aku diberikan kepercayaan lebih untuk membuat program baru. Dalam program kali ini, aku diminta untuk menghitung total pengeluaran dan pemasukan perusahaan. Senja pun mengingatkan akan ada penghitungan cash flow. Melihat Senja dan tim manajemen memberikan kepercayaan yang besar kepadaku, akupun bersemangat!
Tugas:
Program yang akan aku bangun akan mengolah sebuah list yang bernama list_cash_flow. Setiap elemen dari list_cash_flow berisikan pengeluaran (bilangan negatif) dan pemasukan (bilangan positif) pada perusahaan
Dari list_cash_flow ini, aku akan menghitung total_pengeluaran dan total_pemasukan perusahaan.
5. Mini Quiz
Pendahuluan
Ekspedisi Pamanku
Aku menyambar ponsel di meja dan membuka pesan singkat dari paman tempo hari yang menjelaskan jika paman harus mengeluarkan uang sebesar 1,5 juta per mobil dalam sehari. Tapi, beliau selalu kebingungan dengan total pengeluaran per bulan karena adanya aturan ganjil-genap yang membuat pengoperasian mobil yang berbeda.
“Kalau begitu, aku akan masukkan variabel jumlah_hari berisi jumlah hari dalam sebulan dan variabel list_plat_nomor berisi seluruh nomor plat mobil milik paman,” gumamku sendiri. Kalau seperti ini paman hanya perlu mengganti variabel jumlah_hari atau modifikasi variabel list_plat_nomor untuk melacak total pengeluaran paman selama sebulan. Ide Cemerlang!
Hasil Belajarku
Wah senangnya! Aku telah berhasil menyelesaikan pelajaran Python pertamaku, Python for Data Professional Beginner - Part 1. Dari materi yang telah aku pelajari dan praktekkan, aku telah mempelajari:
- Alasan Python secara luas digunakan dalam komputasi saintifik, web, ranah data (data domain).
- Konstruksi dari struktur bahasa pemrograman Python.
- Teknik mempraktekkan penggunaan tipe data pada Python.
- Teknik mempraktekkan penggunaan jenis-jenis operator pada Python.
- Teknik mempraktekkan penggunaan pengkondisian untuk pengambilan keputusan dan perulangan pada Python.
- Program Python untuk penyelesaian kasus bisnis sederhana.