Python for Data Professional Beginner - Memahami Bahasa Pemrograman Fundamental (Part 1)

Rismita Wahyu
20 min readFeb 16, 2022

--

Penulis : Rismita Wahyu — DQLab

Data Analyst Career Track (Python)

Bangun kompetensi yang dibutuhkan untuk berkarir sebagai Junior Data Analyst. Kurikulum terstruktur untuk melatih problem-solving dan kreativitas, serta dikemas dengan studi kasus yang mencerminkan kondisi data riil di Indonesia. Kelas Data Analyst Career Track (Python) dirancang oleh 7 ahli data, dari beragam Industri seperti Traveloka, PT. BUMA, Kompas.com, dan GOJEK.

Apa dan Kenapa Python ?

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.

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:

  1. 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.
  2. 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.
  3. 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.

Program Pertama: “Hello World”

Fungsi Python yang akan pertama kali aku pelajari adalah fungsi print().
Dengan fungsi print(), aku dapat menampilkan pesan ke layar pengguna. untuk menampilkan pesan “Hello World!” pada layar menggunakan fungsi print().

Struktur Program Python

Belajar struktur dari sebuah program Python. Dari situ aku paham sebuah program Python pada umumnya terdiri dari:

  1. Statements: Instruksi yang diberikan secara baris per baris untuk dijalankan oleh mesin.
  2. Variables: Lokasi penyimpanan yang dapat digunakan untuk menampung sebuah data atau informasi.
  3. 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.
  4. 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.
    1. Operator — yang berfungsi sebagai operator pengurangan,
    2. Operator * yang berfungsi sebagai operator perkalian, dan
    3. Operator ** untuk pemangkatan

Contoh :

# Statement
print("Belajar Python menyenangkan")
print("Halo Dunia")
print("Hello World!")
# Variables & Literals
bilangan1 = 5
bilangan2 = 10
kalimat1 = "Belajar Bahasa Python"
# Operators
print(bilangan1 + bilangan2)

Tugas Praktek

“Gimana kalau kamu coba buat kalkulator sederhana untuk potongan harga dan pajak?”

Tugas:

  1. 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)
  2. Aku menggunakan variabel harga_asli dengan nilai 20000 dan variabel potongan dengan nilai 2000.

Jawaban:

harga_asli = 20000
potongan = 2000
harga_setelah_potongan = harga_asli-potonganharga_final = harga_setelah_potongan*1.1
print(harga_final)

5. Reserved Words: Kumpulan kata-kata yang memiliki makna khusus dalam bahasa pemrograman Python. Kata False, return, dan for merupakan contoh dari reserved words.

6. 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.

7. Comments: Comments merupakan sekumpulan teks yang dituliskan di dalam sebuah program yang tidak akan mempengaruhi hasil dari sebuah program. Terdapat dua jenis comments di dalam Python, yaitu: single line comment (comments dalam satu baris) menggunakan #. Multi line comment (comments dalam beberapa baris) dengan mengapitnya menggunakan …

Python Variables

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.

Tips: Dalam mendeklarasikan sebuah variabel, berilah nama yang mewakili isi dari variabel tersebut.

Aturan Penamaan Python Variables

Penamaan suatu variabel pada python dapat dikatakan valid selama memenuhi aturan-aturan berikut:

  1. 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).
  2. Variabel hanya boleh mengandung karakter alfabet, bilangan dan underscore (a-z, A-Z, 0–9, _)
  3. Variabel bersifat case-sensitive yang mengartikan bahwa variabel TINGGI, tinggi, dan Tinggi merujuk pada tiga variabel berbeda.

Tipe Data Dasar: Null, Boolean, Numeric dan Text

1. Null Type: Tipe data null dalam Python digunakan untuk menyimpan nilai kosong atau tidak ada yang dinyatakan dengan None.

2. Boolean Type: Tipe data boolean atau bool digunakan untuk menyimpan nilai kebenaran (True, False) dari suatu ekspresi logika.

3. 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)
  • float untuk menyimpan bilangan riil (e.g.: 0.5, 1.01, 2.05, 4.04)

4. Text Type: 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”.

Sequence Type

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.

  1. LIST

Tipe data list diapit dengan tanda kurung siku [ ] , memisahkan setiap elemen di dalamnya dengan tanda koma (,). Setiap elemen dari list memiliki indeks yang dimulai dari angka 0 dan terus bertambah satu nilainya hingga elemen terakhir dari list. Tipe data list bersifat mutable yang berarti setiap elemen di dalam list dapat dirubah nilainya setelah proses pendeklarasian list.

Tugas:

Aku diberikan tugas untuk menerapkan variasi tipe data list dengan mengikuti petunjuk yang diberikan. 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

Jawaban:

contoh_list = [1, 'dua', 3, 4.0, 5]
print(contoh_list[0])
#Jawaban: 1
print(contoh_list[3])
#Jawaban: 4.0
contoh_list = [1, 'dua', 3, 4.0, 5]
contoh_list[3] = 'empat'
print(contoh_list[3])
#Jawaban: empat

2. TUPLE

aku mempelajari tipe data tuple. Tipe data tuple juga berfungsi untuk menampung sekumpulan data. Tipe data ini diapit dengan tanda kurung ( ), memisahkan setiap elemen di dalamnya dengan tanda koma ( , ). Aturan indeks dan cara mengakses elemen pada sebuah tuple serupa dengan list.

NOTE: 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'

Jawaban:

contoh_tuple = ('Januari', 'Februari', 'Maret', 'April')
print(contoh_tuple[0])
#Jawaban: Januari
contoh_tuple = ('Januari', 'Februari','Maret', 'April')
contoh_tuple[0] = 'Desember'
#Jawaban: TypeError: 'tuple' object does not support item assignment

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.

  1. SET

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.

Note:

Dari kedua contoh output pada program, dapat terlihat:

List
Set
Frozen Set
  1. Berbeda dengan tipe data set, tipe data list memperdulikan urutan dari setiap elemen saat list dideklarasikan.
  2. Berbeda dengan list yang mengizinkan adanya duplikasi elemen, tipe data set tidak mengizinkan adanya elemen dengan nilai yang sama di dalamnya.

2. FROZENSET

Tipe data frozenset sebenarnya hanya merupakan set yang bersifat immutable, yang artinya setiap elemen di dalam frozenset tidak dapat diubah setelah proses deklarasinya.

Tugas:

Sekarang aku diberikan tugas untuk menerapkan variasi set dan frozenset oleh Senja:

  1. Tugas 1:Input data Dewi, Budi, Cici, Linda, Cici kedalam tipe data list dan tampilkan hasilnya
  2. Tugas 2: Input data Dewi, Budi, Cici, Linda, Cici kedalam tipe data set dan tampilkan hasilnya
  3. Tugas 3: Input data Dewi, Budi, Cici, Linda, Cici kedalam tipe data frozenset dan tampilkan hasilnya
contoh_list = ['Dewi ','Budi', 'Cici', 'Linda', 'Cici'] 
print(contoh_list)
#Jawaban : ['Dewi ', 'Budi', 'Cici', 'Linda', 'Cici']
contoh_set = {'Dewi', 'Budi', 'Cici', 'Linda', 'Cici'}
print(contoh_set)
#Jawban: {'Cici', 'Linda', 'Dewi', 'Budi'}
contoh_frozen_set = ({'Dewi', 'Budi', 'Cici', 'Linda', 'Cici'})
print(contoh_frozen_set)
#Jawaban : {'Cici', 'Linda', 'Dewi', 'Budi'}

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"

Dictionary

Potongan kode di atas adalah contoh pendeklarasian dari tipe data dictionary. Kemudian, bagaimana dengan cara mengakses informasi dari tipe data ini? 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.

person = {'nama' : 'John Doe', 'pekerjaan' : 'Programmer'}print(person['nama'])
#Jawaban: John Doe
print(person['pekerjaan'])
#Jawaban: Programmer

Tugas Praktek

Aku mengembangkan program kalkulator potongan harga 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. Aku pun mulai mendeklarasikan variabel sepatu, baju, dan celana untuk menampung informasi barang ke dalam live code editor. Jangan lupa ada pajak 10%.

Tabel Data

Jawaban :

  • Mengubah bentuk tabel menjadi tipe data dictionary
sepatu = {"nama": "Sepatu Niko", "harga": 150000, "diskon": 30000 }baju = {"nama" : "Baju Unikloh", "harga" : 80000, "diskon": 8000}celana = {"nama" : "Celana Lepis", "harga":200000, "diskon": 60000}
  • Selanjutnya mendeklarasikan list dengan nama daftar_belanja yang berisi data sepatu, baju, dan celana.
daftar_belanja = [sepatu, baju, celana]
  • Dengan data yang aku miliki, aku bisa menghitung total harga jual dengan potongan harga beserta pajak sebesar 10% dari nilai jual.

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

# Data yang dinyatakan ke dalam dictionary
sepatu = {"nama": "Sepatu Niko", "harga": 150000, "diskon": 30000}
baju = {"nama": "Baju Unikloh", "harga": 80000, "diskon": 8000}
celana = {"nama": "Celana Lepis", "harga": 200000, "diskon": 60000}
# Hitunglah harga masing-masing data setelah dikurangi diskon
harga_sepatu = sepatu["harga"] - sepatu["diskon"]
harga_baju = baju["harga"] - baju["diskon"]
harga_celana = celana["harga"] - celana["diskon"]
# Hitung harga total
total_harga = harga_sepatu + harga_baju + harga_celana
# Hitung harga kena pajak
total_pajak = total_harga * 0.1
# Cetak total_harga + total_pajak
print(total_harga + total_pajak)

Operator dalam Python

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:

  1. Arithmetic operators
  2. Assignment operators
  3. Comparison operators
  4. Logical operators
  5. Identity operators
  6. Membership operators
Arithmetic Operators
Assignment Operators
Comparison Operators
Operator logical
Identity Operators
Membership Operators

Nilai Prioritas Operator dalam Python

aku juga ingin bisa menuliskan operasi-operasi variabel yang bersifat ekspresif dan ringkas. cara lebih mudah dengan menjelaskan presedensi (urutan eksekusi) dari operator. aku dapat menuliskannya ke dalam jumlah baris yang lebih sedikit.

Tugas:

Aku diminta Senja untuk menghitung 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

# Kode awal
total_harga = 150000
potongan_harga = 0.3
pajak = 0.1 # pajak dalam persen ~ 10%
harga_bayar = 1-potongan_harga # baris pertama
harga_bayar *= total_harga # baris kedua
pajak_bayar = pajak * harga_bayar # baris ketiga
harga_bayar += pajak_bayar # baris ke-4
print("Kode awal - harga_bayar=", harga_bayar)
# Penyederhanaan baris kode dengan menerapkan prioritas operator total_harga = 150000
potongan_harga = 0.3
pajak = 0.1 # pajak dalam persen ~ 10%
harga_bayar = (1-potongan_harga) * total_harga #baris pertama
harga_bayar += harga_bayar * pajak # baris kedua
print("Penyederhanaan kode - harga_bayar=", harga_bayar)
#Jawaban:
Kode awal - harga_bayar= 115500.0
Penyederhanaan kode - harga_bayar= 115500.0

Nilai Prioritas Operator dalam Python

Dalam bahasa pemrograman Python, tabel berikut mencakup nilai prioritas dan arah pengerjaan dari setiap operator. 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.

Tugas Praktek

Senja memang hebat!

Aku baru sadar, dengan struktur penulisan yang tepat maka penulisan syntax dapat dipersingkat untuk menjadi lebih simpel.

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. aku akan membuat potongan kode diatas menjadi lebih simpel. Jangan lupa ada pajak 10%.

Kode Sebelumnya (Before)
Kode Setelah Penyederhanaan (After)
sepatu = { "nama" : "Sepatu Niko","harga": 150000, "diskon": 30000 }
baju = { "nama" : "Baju Unikloh", "harga": 80000, "diskon": 8000 }
celana = { "nama" : "Celana Lepis","harga": 200000,"diskon": 60000 }

harga_sepatu = sepatu["harga"] - sepatu["diskon"]
harga_baju = baju["harga"] - baju["diskon"]
harga_celana = celana["harga"] - celana["diskon"]
total_harga = (harga_sepatu + harga_baju + harga_celana) * 1.1
print(total_harga)

Tips 1 : Pastikan faktor pengali yang Anda gunakan adalah 1.1 yaitu harga total barang yang dibeli setelah ditambah pajak.

Tips 2 : Pastikan Anda telah menjumlah seluruh harga sebelum mencari harga total yang telah ditambah pajak.

Python Conditioning for Decision

  1. IF

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:

if conditions:
do_action_1
...
do_action_n

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.

# statement if
x = 4
if x % 2 == 0:
print("x habis dibagi dua")
#Jawaban: x habis dibagi dua# Statement if ... elif ... else
x = 7
if x % 2 == 0: # jika sisa bagi x dengan 2 sama dengan 0
print("x habis dibagi dua")
elif x % 3 == 0: # jika sisa bagi x dengan 3 sama dengan 0
print("x habis dibagi 3")
elif x % 5 == 0: # jika sisa bagi x dengan 5 sama dengan 0
print("x habis dibagi 5")
else:
print("x tidak habis dibagi dua, tiga ataupun 5")
#Jawaban:
x tidak habis dibagi dua, tiga ataupun 5

2. Nested IF

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.

jam = 13
if jam >= 5 and jam < 12: # selama jam di antara 5 s.d. 12
print("Selamat pagi!")
elif jam >= 12 and jam < 17: # selama jam di antara 12 s.d. 17
print("Selamat siang!")
elif jam >= 17 and jam < 19: # selama jam di antara 17 s.d. 19
print("Selamat sore!")
else: # selain kondisi di atas
print("Selamat malam!")

Tugas Praktek

Aku diminta tolong Senja untuk 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.

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.

tagihan_ke = 'Mr. Yoyo'warehousing = { 'harga_harian': 1000000, 'total_hari':15 } 
cleansing = { 'harga_harian': 1500000, 'total_hari':10 }
integration = { 'harga_harian':2000000, 'total_hari':15 }
transform = { 'harga_harian':2500000, 'total_hari':10 }

sub_warehousing = warehousing['harga_harian']*warehousing['total_hari']
sub_cleansing = cleansing['harga_harian']*cleansing['total_hari']
sub_integration = integration['harga_harian']*integration['total_hari']
sub_transform = transform['harga_harian']*transform['total_hari']
total_harga = sub_warehousing + sub_cleansing + sub_integration + sub_transformprint("Tagihan kepada:")
print(tagihan_ke)
print("Selamat pagi, anda harus membayar tagihan sebesar:")
print(total_harga)

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:

  1. Diatas jam 07 malam adalah salam ‘selamat malam’
  2. Diatas jam 05 sore adalah salam ‘selamat sore’
  3. Diatas jam 12 siang, adalah ‘selamat siang’
  4. dan selain itu ‘selamat pagi’

Jawaban:

jam = 17
tagihan_ke = 'Mr. Yoyo'
warehousing = { 'harga_harian': 1000000, 'total_hari':15 }
cleansing = { 'harga_harian': 1500000, 'total_hari':10 }
integration = { 'harga_harian':2000000, 'total_hari':15 }
transform = { 'harga_harian':2500000, 'total_hari':10 }

sub_warehousing = warehousing['harga_harian']*warehousing['total_hari']
sub_cleansing = cleansing['harga_harian']*cleansing['total_hari']
sub_integration = integration['harga_harian']*integration['total_hari']
sub_transform = transform['harga_harian']*transform['total_hari']
total_harga = sub_warehousing+sub_cleansing+sub_integration+sub_transformprint("Tagihan kepada:")
print(tagihan_ke)
if jam > 19:
print("Selamat malam, anda harus membayar tagihan sebesar:")
elif jam > 17:
print("Selamat sore, anda harus membayar tagihan sebesar:")
elif jam > 12:
print("Selamat siang, anda harus membayar tagihan sebesar:")
else:
print("Selamat pagi, anda harus membayar tagihan sebesar:")
print(total_harga)

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

  • while loops
  • for loops

> While Loops

Pertama-tama aku mempelajari struktur kontrol while loops. Statemen while akan terus menjalankan aksi di dalamnya, selama kondisi yang dituliskan di samping kanan statemen while terus terpenuhi.

# Tagihan
tagihan = [50000, 75000, 125000, 300000, 200000]

# Tanpa menggunakan while loop
total_tagihan = tagihan[0] + tagihan[1] + tagihan[2] + tagihan[3] + tagihan[4]
print(total_tagihan)
# Dengan menggunakan while loop
i = 0 # sebuah variabel untuk mengakses setiap elemen tagihan satu per satu
jumlah_tagihan = len(tagihan) # panjang (jumlah elemen dalam) list tagihan
total_tagihan = 0 # mula-mula, set total_tagihan ke 0
while i < jumlah_tagihan: #selama nilai i kurang dari jumlah_tagihan
total_tagihan += tagihan[i] #tambah tagihan[i] ke total_tagihan
i += 1 #tambah i dengan 1 untuk memproses tagihan selanjutnya.
print(total_tagihan)

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).

Catatan Pribadi :

Jumlah tagihan = len(tagihan) ==> 5

Jika i = 0, apakah i < jumlah_tagihan (5) ? TRUE. Maka total_tagihan akan bertambah dengan tagihan pada list index [0] ===> maksudnya total tagihan akan berisi 50000 (tagihan pertama / index ke-0)

Jika i = 1, apakah i < jumlah_tagihan (5) ? TRUE. Maka total_tagihan akan bertambah dengan tagihan pada list index [1] ===> total tagihan = 50000 + 75000

Jika i = 2, apakah i < jumlah_tagihan (5) ? TRUE. Maka total_tagihan akan bertambah dengan tagihan pada list index [2]===> total tagihan = 50000 + 75000 + 125000

Jika i = 3, apakah i < jumlah_tagihan (5) ? TRUE. Maka total_tagihan akan bertambah dengan tagihan pada list index [2]===> total tagihan = 50000 + 75000 + 125000 + 300000

Jika i = 4, apakah i < jumlah_tagihan (5) ? TRUE. Maka total_tagihan akan bertambah dengan tagihan pada list index [2]===> total tagihan = 50000 + 75000 + 125000 + 300000 + 200000

Jika i = 5, apakah i < jumlah_tagihan (5) ? FALSE. Maka total_tagihan berhenti ===> print(total_tagihan)

Break & Continue

Dalam sebuah struktur kontrol pengulangan, aku dapat menggunakan perintah break untuk keluar dari struktur pengulangan dan perintah continue untuk melanjutkan proses pengulangan berikutnya.

  1. BREAK
tagihan = [50000, 75000, -150000, 125000, 300000, -50000, 200000]i = 0
jumlah_tagihan = len(tagihan)
total_tagihan = 0
while i < jumlah_tagihan:
# jika terdapat tagihan ke-i yang bernilai minus (di bawah nol),
# pengulangan akan dihentikan
if tagihan[i] < 0:
total_tagihan = -1
print("ada angka minus dalam tagihan, perhitungan dihentikan!")
break
total_tagihan += tagihan[i]
i += 1
print(total_tagihan)

Catatan Pribadi :

Jumlah tagihan = len(tagihan) ==> 7

Jika i = 0, apakah i < jumlah_tagihan ? TRUE. Maka lanjut percabagan If

if tagihan[i] < 0 ? FALSE, apakah 50000 (bilangan positif) kurang dari 0?

maka lanjut ke break untuk keluar dari struktur pengulangan.

Jika i = 2, apakah i < jumlah_tagihan ? TRUE. Maka lanjut percabagan If

if tagihan[i] < 0 ? TRUE, apakah -150000 (bilangan negatif) kurang dari 0?

maka lanjut ke perintah total_tagihan = -1 dan print(“ada angka minus dalam tagihan, perhitungan dihentikan!”), sehingga didapatkan hasil output demikian.

2. CONTINUE

tagihan = [50000, 75000, -150000, 125000, 300000, -50000, 200000]
i = 0
jumlah_tagihan = len(tagihan)
total_tagihan = 0
while i < jumlah_tagihan:
# jika terdapat tagihan ke-i yang bernilai minus (di bawah nol),
# abaikan tagihan ke-i dan lanjutkan ke tagihan berikutnya
if tagihan[i] < 0:
i += 1
continue
total_tagihan += tagihan[i]
i += 1
print(total_tagihan)

Catatan Pribadi :

Jumlah tagihan = len(tagihan) ==> 7

Jika i = 0, apakah i < jumlah_tagihan ? TRUE. Maka lanjut percabagan If

if tagihan[i] < 0 ? FALSE, apakah 50000 (bilangan positif) kurang dari 0?

maka lanjut ke total_tagihan += tagihan[i] ===> maksudnya total tagihan bertambah 50000 (tagihan[0] = 50000)

dan setererusnya dilakukan perulangan sampai i = 6, maka hasil keseluruhan total_tagihan sebesar 750.000.

> For Loops

list_tagihan = [50000, 75000, -150000, 125000, 300000, -50000, 200000]
total_tagihan = 0
for tagihan in list_tagihan: # untuk setiap tagihan dalam list_tagihan
total_tagihan += tagihan # tambahkan tagihan ke total_tagihan
print(total_tagihan)

BREAK & CONTINUE in for loops

Serupa dengan struktur pengulangan while, aku juga dapat memanfaatkan statement break dan continue di dalamnya.

list_tagihan = [50000, 75000, -150000, 125000, 300000, -50000, 200000]

# For loops with break
print("For loops with break")
total_tagihan_break = 0
for tagihan in list_tagihan:
if tagihan < 0:
print("Terdapat angka minus dalam tagihan, perhitungan dihentikan!")
break
total_tagihan_break += tagihan
print("Total tagihan %d." % total_tagihan_break)


# For loops with continue
print("For loops with continue")
total_tagihan_continue = 0
for tagihan in list_tagihan:
if tagihan < 0:
print("Terdapat angka minus dalam tagihan, tagihan %d dilewati!" % tagihan)
continue
total_tagihan_continue += tagihan
print("Total tagihan %d." % total_tagihan_continue)
#ouput:
For loops with break
Terdapat angka minus dalam tagihan, perhitungan dihentikan!
Total tagihan 125000.

For loops with continue
Terdapat angka minus dalam tagihan, tagihan -150000 dilewati!
Terdapat angka minus dalam tagihan, tagihan -50000 dilewati!
Total tagihan 750000.

Nested Loops

aku belajar bahwa ada istilah nested loops, yaitu pengulangan bersarang. Dengan nested loops, aku dapat mengkombinasikan (menambahkan) struktur pengulangan lain di dalamnya.

list_daerah = ['Malang', 'Palembang', 'Medan']
list_buah = ['Apel', 'Duku', 'Jeruk']
for nama_daerah in list_daerah:
for nama_buah in list_buah:
print(nama_buah+" "+nama_daerah)

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.

Jawaban :

        list_cash_flow = [
2500000, 5000000, -1000000, -2500000, 5000000, 10000000,
-5000000, 7500000, 10000000, -1500000, 25000000, -2500000
]
total_pengeluaran, total_pemasukan = 0, 0
for dana in list_cash_flow:
if dana > 0:
total_pemasukan += dana
else:
total_pengeluaran += dana
total_pengeluaran *= -1
print(total_pengeluaran)
print(total_pemasukan)

— — — Studi Kasus — — —

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!

Jawaban :

# Data
uang_jalan = 1500000
jumlah_hari = 31
list_plat_nomor = [8993, 2198, 2501, 2735, 3772, 4837, 9152]
# Pengecekan kendaraan dengan nomor pelat ganjil atau genap
kendaraan_genap = 0
kendaraan_ganjil = 0
for plat_nomor in list_plat_nomor:
if plat_nomor % 2 == 0:
kendaraan_genap += 1
else:
kendaraan_ganjil += 1
# Total pengeluaran untuk kendaraan dengan nomor pelat ganjil
# dan genap dalam 1 bulan
i = 1
total_pengeluaran = 0
while i<= jumlah_hari:
if i % 2 == 0:
total_pengeluaran += (kendaraan_genap * uang_jalan)
else:
total_pengeluaran += (kendaraan_ganjil * uang_jalan)
i += 1
# Cetak total pengeluaran
print(total_pengeluaran)

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.

--

--