Data Python
Data Python
> ## Carilah tabulasi silang antara kolom jenis produk (Produk) dan tingkat kepuasan (Tingkat.Kepuasan) dari variable data_intro
> table(data_intro$Produk,data_intro$Tingkat.Kepuasan)
1 2 3
A 0 1 3
B 2 0 2
C 1 2 1
D 2 2 1
E 2 0 1
> ## Analisis bagaimana hubungan jenis produk dengan tingkat kepuasan mengunakan uji korelasi
> chisq.test(table(data_intro$Produk,data_intro$Tingkat.Kepuasan))
Selanjutnya analisis inferensia yaitu untuk mengetahui apakah ada perbedaan rata-rata total belanja pada laki-laki dan perempuan maka digunakan statistik uji t-test.
Untuk melakukan visualisasi boxplot dan uji statistik t-test pada R tahapannya sebagai berikut :
boxplot(Total~Jenis.Kelamin,data = data_intro)
t.test(Total~Jenis.Kelamin,data = data_intro)
Function boxplot digunakan untuk melihat secara grafik rata-rata total belanja pada laki-laki dan perempuan, sedangkan perintah t.test digunakan untuk melihat hubungan secara
statistik. Penggunaan kedua fungsi diatas yaitu variabel pertama yang bertipe numerik, sedangkan variabel kedua variabel kategorik. Hipotesis t-test sebagai berikut :
Hipotesis Nihil (null): tidak ada perbedaan rata-rata total belanja antara laki-laki dan perempuan
Hipotesis Alternatif : ada perbedaan rata-rata total belanja antara laki-laki dan perempuan
Tugas Praktek
Lengkapi bagian […1...] dan […2…] pada code editor untuk membaca file seperti yang ditunjukkan pada bagian Lesson.
boxplot(Total~Jenis.Kelamin,data=data_intro)
## analisis bagaimana hubungan jenis kelamin dengan total belanja mengunakan uji statistik t-test
t.test(Total~Jenis.Kelamin,data=data_intro
Kesimpulan
Selamat! Dengan menyelesaikan bab kedua ini maka Anda sudah menyelesaikan course "Introduction to Statictics with R" yang singkat namun padat ini!
Dari pembahasan materi diatas maka kesimpulannya sebagai berikut:
Sebelum memulai menganalisis data harus dilihat summary per tiap variabel.
Analisis Deskriptif digunakan untuk membangun sebuah hipotesis.
Analisis Inferensia digunakan untuk menguji hipotesis.
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 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().
Dari situ aku paham sebuah program Python pada umumnya terdiri dari:
1. Statements: Instruksi yang diberikan secara baris per baris untuk dijalankan oleh mesin. Contoh:
2. Variables: Lokasi penyimpanan yang dapat digunakan untuk menampung sebuah data atau informasi. Contoh: aku mempunyai variabel yang bernama bilangan1, bilangan2, dan
kalimat1
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!
print("Halo Dunia")
print("Hello World!")
bilangan1 = 5
bilangan2 = 10
kalimat1 = "Belajar Bahasa Python"
# Operators
print(bilangan1 + bilangan2)
In [1]: # 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
Tantangan belum berakhir. Aku diminta Senja untuk membuat program pengurangan sederhana dengan Python.
Tugas:
Deklarasi variable bilangan1 dengan 20, dan bilangan2 dengan 10 dan tampilkan hasil pengurangan bilangan1 & bilangan 2.
bilangan1 = 20
bilangan2= 10
print(bilangan1 - bilangan2)
In [1]: bilangan1 = 20
bilangan2= 10
print(bilangan1 - bilangan2)
10
Tugas Praktek
“Saya lihat kamu cepat belajar. Gimana kalau kamu coba buat kalkulator sederhana untuk potongan harga dan pajak, Aksara?” komentar Senja padaku.
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.
harga_asli = 20000
potongan = 2000
print(harga_final)
19800.0
3. 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:
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. Pada pertemuan sebelumnya aku berhasil mendeklarasikan variabel dengan menggunakan ekspresi
seperti:
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.
Selain dapat mendeklarasikan nilai dari suatu variabel secara baris per baris, aku juga dapat mendeklarasikan beberapa variabel dalam satu baris dengan menggunakan ekspresi
seperti:
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
Tips:
Dalam mendeklarasikan sebuah variabel, berilah nama yang mewakili isi dari variabel tersebut. Sebagai contoh :
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,
contoh_tuple = ('Januari','Februari','Maret','April')
print(contoh_tuple[0])
contoh_tuple = ('Januari','Februari','Maret','April')
contoh_tuple[0] = 'Desember'
Januari
Traceback (most recent call last):
File "<stdin>", line 4, in <module>
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.
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:
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.
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:
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)
contoh_set = {'Dewi','Budi','Cici','Linda','Cici'}
print(contoh_set)
contoh_frozen_set = ({'Dewi','Budi','Cici','Linda','Cici'})
print(contoh_frozen_set)
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.
sepatu = {"nama": "Sepatu Niko", "harga": 150000, "diskon": 30000}
Tugas Praktek
Dengan data yang aku miliki, aku bisa menghitung total harga jual dengan potongan harga beserta pajak sebesar 10% dari nilai jual.
print(total_harga + total_pajak)
365200.0
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:
1. Arithmetic operators
2. Assignment operators
3. Comparison operators
4. Logical operators
5. Identity operators
6. Membership operators
Next
Arithmetic Operators
Operator arithmetic digunakan pada tipe data numerik, untuk melakukan operasi matematika sederhana yang terdiri atas:
Assignment Operators
Operator assignment digunakan untuk mendeklarasikan nilai secara langsung ke suatu variabel.
x=3
+= Penambahan x += 2 ekivalen dengan x = x + 2
akan mengubah nilai x menjadi 5
x=3
-= Pengurangan x -= 2 ekivalen dengan x = x - 2
akan mengubah nilai x menjadi 1
x=3
*= Perkalian x *= 2 ekivalen dengan x = x * 2
akan mengubah nilai x menjadi 6
/= Pembagian x=3
x /= 2 ekivalen dengan x = x / 2
akan mengubah nilai x menjadi 1.5
x=3
%= Modulo/sisa bagi x %= 2 ekivalen dengan x = x % 2
akan mengubah nilai x menjadi 1
x=3
**= Pangkat x **= 2 ekivalen dengan x = x ** 2
akan mengubah nilai x menjadi 9
x=3
//= Pembagian dengan pembulatan ke bawah x //= 2 sama dengan x = x // 2
akan mengubah nilai x menjadi 1
Comparison Operators
Operator comparison dapat digunakan untuk membandingkan dua buah nilai, berikut merupakan contoh-contoh operator komparasi.
34 != 33 akan menghasilkan output: True dikarenakan benar bahwa 34 tidak sama dengan 33
!= Pertidaksamaan
33 != 33 akan menghasilkan output: False dikarenakan 33 sama dengan 33
< Lebih kecil dari 33 < 34 akan menghasilkan output True dikarenakan benar 33 lebih kecil dari 34
34 < 33 akan menghasilkan output: False dikarenakan tidak benar 34 lebih kecil dari 33
Simbol
Keterangan Contoh
Operator
x=5
x >= 1 and x <= 10
dan - menerima dua nilai kebenaran dan mengembalikan nilai benar jika akan mengembalikan nilai True
and
keduanya benar x=5
x >= 1 and x <= 4
akan mengembalikan nilai False
x=3
x >= 1 or x <= 2
akan mengembalikan nilai True dikarenakan statemen logika pertama terpenuhi
atau - menerima dua nilai kebenaran dan mengembalikan nilai benar jika
or x=3
salah satu benar
x >= 5 or x <= 0
akan mengembalikan nilai False dikarenakan kedua statemen logika tidak terpenuhi
(bernilai False)
x=7
negasi - menerima sebuah nilai kebenaran dan mengembalikan
not not(x == 7) akan mengembalikan nilai False
komplemennya
not(x >= 10) akan mengembalikan nilai True
Identity Operators
Operator identitas dapat digunakan untuk membandingkan identitas dari dua buah variabel.
Simbol
Keterangan Contoh
Operator
x = ["Ani", "Budi"]
y = ["Ani", "Budi"]
a=x
Menerima dua buah objek dan mengembalikan nilai True ketika keduanya
is
merujuk pada objek yang sama dan False dalam kondisi lainnya print(a is x) akan menampilkan nilai True dikarenakan a dan x merujuk ke objek
yang sama
print(a is y) akan menampilkan nilai False dikarenakan a dan y tidak merujuk ke
objek yang sama meskipun isi di dalam keduanya sama.
x = ["Ani", "Budi"]
y = ["Ani", "Budi"]
a=x
Menerima dua buah objek dan mengembalikan nilai True ketika keduanya
is not
merujuk pada objek yang berbeda dan False jika sama print(a is not x) akan menampilkan nilai False dikarenakan a dan x merujuk ke
objek yang sama
print(a is not y) akan menampilkan nilai True dikarenakan a dan y tidak merujuk
ke objek yang sama
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.
Membership Operators
Operator keanggotaan (membership) dapat digunakan untuk memeriksa anggota dari sebuah tipe data sequence/set. Operator keanggotaan meliputi:
Simbol
Keterangan Contoh
Operator
not in Menerima sebuah sequence/set dan objek, mengembalikan True ketika objek bukan merupakan anggota dari sequence/set, x = ["Ani", "Budi", "Cici"]
dan False ketika merupakan.
y = "Cici"
z = "Dodi"
print(y not in x) akan menampilkan
nilai False
print(z not in x) akan menampilkan
nilai True
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:
Setelah aku memberikan potongan kode yang telah kubuat, ternyata Senja memiliki ide yang lebih baik. Wajar saja, Senja adalah mentorku. Senja langsung mencontohkan cara lebih
mudah dengan menjelaskan presedensi (urutan eksekusi) dari operator.
Dengan mengikuti masukan Senja, aku dapat menuliskannya ke dalam jumlah baris yang lebih sedikit seperti pada potongan kode berikut
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 yang diajarkan Senja.
# Kode awal
total_harga = 150000
potongan_harga = 0.3
total_harga = 150000
potongan_harga = 0.3
+x
7 Kiri ke kanan Tanda bilangan positif dan negatif
-x
*
/ 6 Kiri ke kanan Perkalian Pembagian Modulus
%
+
5 Kiri ke kanan Penambahan Pengurangan
-
is, is not, in, not in
<=, <, >=, > 4 Kiri ke kanan Membership operator Comparison 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.
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.
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.
Tugas:
Dengan cara yang diajarkan Senja, aku akan membuat potongan kode diatas menjadi lebih simpel. Jangan lupa ada pajak 10%.
sepatu = { "nama" : "Sepatu Niko", "harga": 150000, "diskon": 30000 }
print(total_harga)
365200.00000000006
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:
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.
Aku tidak sabar untuk mempraktekkannya.
Ketika aku menjalankan potongan kode ini, live code editor akan menampilkan output sebagai berikut:
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.
# Statement if
x=4
x=7
else:
In [1]: # Statement if
x = 4
if x % 2 == 0: # jika sisa bagi x dengan 2 sama dengan 0
print("x habis dibagi dua") # statemen aksi lebih menjorok ke dalam
# 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 tiga")
elif x % 5 == 0: # jika sisa bagi x dengan 5 sama dengan 0
print("x habis dibagi lima")
else:
print("x tidak habis dibagi dua, tiga ataupun lima")
Tugas:
Praktekkan potongan kode berikut dalam live code editor.
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!")
print("Selamat malam!")
In [1]: 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!")
Selamat siang!
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.
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.
Harga per
Nama Jasa Total hari Subtotal
hari
Total 85000000
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_transform
print("Tagihan kepada:")
print(tagihan_ke)
print(total_harga)
Tagihan kepada:
Mr. Yoyo
Selamat pagi, anda harus membayar tagihan sebesar:
85000000
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:
“Oh, oke. Paham,” sahutku sembari merevisi. Saran yang bagus, kedepannya aku harus berpikir kritis.
jam = 17
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_transform
print("Tagihan kepada:")
print(tagihan_ke)
if jam >= 19 :
else :
print(total_harga)
In [1]: 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_transform
print("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)
Tagihan kepada:
Mr. Yoyo
Selamat sore, anda harus membayar tagihan sebesar:
85000000
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
Tugas 1:
Hitung total tagihan secara manual dengan menulis potongan kode berikut ke dalam live code editor:
Setelah aku konfirmasi potongan kode yang aku buat ke Senja, aku belajar bahwa potongan kode ini tidak efektif apabila ukuran dari list tagihan bertambah. Tentunya aku akan
kewalahan untuk menuliskan ekspresi penambahan pada setiap elemennya, terutama jika elemennya berjumlah banyak. Untuk mengatasi hal ini Senja memberikan masukan untuk
menggunakan struktur kontrol while.
Tugas 2:
Ubah potongan kode yang telah dibuat dengan arahan Senja dan tuliskan di dalam live code editor:
Setelah dijalankan, kedua potongan kode akan mencetak output yang sama yaitu 750000.
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).
# Tagihan
print(total_tagihan)
i = 0 # sebuah variabel untuk mengakses setiap elemen tagihan satu per satu
print(total_tagihan)
In [1]: # 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] # tambahkan tagihan[i] ke total_tagihan
i += 1 # tambahkan nilai i dengan 1 untuk memproses tagihan selanjutnya.
print(total_tagihan)
750000
750000
Tugas:
Praktekkan potongan kode berikut pada live code editor.
dengan output
i=0
jumlah_tagihan = len(tagihan)
total_tagihan = 0
# jika terdapat tagihan ke-i yang bernilai minus (di bawah nol),
if tagihan[i]< 0:
total_tagihan = -1
break
total_tagihan += tagihan[i]
i += 1
print(total_tagihan)
i=0
jumlah_tagihan = len(tagihan)
total_tagihan = 0
# jika terdapat tagihan ke-i yang bernilai minus (di bawah nol),
i += 1
continue
total_tagihan += tagihan[i]
i += 1
print(total_tagihan)
750000
total_tagihan = 0
print(total_tagihan)
550000
total_tagihan_break = 0
if tagihan < 0:
break
total_tagihan_break += tagihan
print()
total_tagihan_continue = 0
if tagihan < 0:
continue
total_tagihan_continue += tagihan
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!
# Data
uang_jalan = 1500000
jumlah_hari = 31
kendaraan_genap = 0
kendaraan_ganjil = 0
if plat_nomor % 2 == 0:
kendaraan_genap += 1
else:
kendaraan_ganjil += 1
i=1
total_pengeluaran = 0
if i % 2 == 0:
else:
i += 1
In [1]: # 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)
163500000
Hasil Belajarku
Wah senangnya! Aku telah berhasil menyelesaikan pelajaran Python pertamaku, Python for Data Professional Beginner - Part 1.
Selain membabat habis materi dari Senja, aku berhasil menyelesaikan latihan, dan membantu Pamanku.
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.
Tugas 1:
Aku mencoba mempraktekkan potongan kode di bawah dengan live code editor:
Untuk menampilkan output bulan_pembelian Mei, Juni, Juli, Agustus, aku dapat menggunakan syntax di bawah untuk mengambil index 4 - 7.
Tugas 2:
Untuk menampilkan output bulan_pembelian Januari, Februari, Maret, April, Mei aku dapat menggunakan syntax di bawah untuk mengambil index 0 - 4.
Tugas 3:
Untuk menampilkan output September, Oktober, November, Desember. Aku dapat menggunakan syntax di bawah untuk mengambil index 8 - elemen terakhir.
Tugas 4:
Aku juga dapat memotong suatu list/tuple dengan menggunakan indeks negatif. Sebagai contoh untuk mendapatkan output September, Oktober, November aku bisa
menggunakan syntax di bawah:
Tugas:
Aku menggunakan potongan kode yang dicontohkan dengan live code editor:
Tugas:
Ketikkanlah kode yang diberikan pada contoh penggunaan di live code editor.
Menyisi
pkan
elemen
.inse pada
rt() indeks
yang akan menampilkan output
dispesifi
kasikan
Menghil
angkan
.pop( elemen
) pada
posisi akan menghasilkan output:
tertentu
Menghil
angkan
.remo elemen
ve() dengan
nilai akan menghasilkan output:
tertentu
Membali
k urutan
.reve elemen
rse() dari
sebuah akan menghasilkan output:
list
.sort Mengur
() utkan
elemen
pada
sebuah
list,
secara
akan menghasilkan output:
default
dengan
urutan
dari
kecil ke melakukan proses pengurutan dari besar ke
besar kecil (descending)
(ascendi
ng). akan menghasilkan output:
Tuple Manipulation
Aku juga mempelajari fitur yang dapat digunakan untuk melakukan manipulasi data dengan tipe data tuple.
Tugas:
Ketikkan potongan kode berikut pada live code editor:
Fitu Keteran
Contoh Penggunaan
r gan
Mengem
balikan
jumlah
.cou kemuncu
nt() lan suatu
elemen
akan menampilkan output 4
pada tup
le
akan menampilkan output 3
.ind Mengem
ex() balikan
indeks
dari
elemen
pertama
yang indeks dimulai dari 0
ditemuk
an dari
awal
sebuah t Akan menampilkan output 2
uple
Tugas:
Ketikkan potongan kode pada kolom Contoh Penggunaan di live code editor.
Perlu diingat bahwa: tipe data set merupakan unordered collection setiap kali perintah print
dijalankan, aku mungkin akan melihat output yang berbeda.
.clear() Menghapus seluruh elemen dalam sebuah set
akan menghasilkan output:
serupa dengan tipe data list, melalui operator assignment =, penambahan pada set_buah2 akan
mempengaruhi set_buah1
menghasilkan output:
dan
menghasilkan output:
menghasilkan output:
menghasilkan output:
.pop() Menghilangkan elemen dari sebuah set secara acak. >>> Fitur .pop()
'Anggur' atau 'Apel' ataupun 'Jeruk'
dan
menghasilkan output:
menghasilkan output:
Tugas:
Ketikkan potongan kode yang diberikan pada Contoh Penggunaan pada live code editor:
perhatikan bahwa fungsi union mengembalikan hasil penggabungan setiap elemen milik
set parcel1 dan parcel2 nilai dari set parcel1 tidak akan berubah melalui fitur union() tidak
seperti fitur update()
menghasilkan output:
dan
menampilkan output:
akan menghasilkan output False dikarenakan parcel1 dan parcel3 sama-sama memiliki Apel
.issubset() Mengembalikan nilai kebenaran apakah
sebuah set merupakan subset dari set
lainnya. Sebuah set A merupakan subset
dari set B jika seluruh elemen dari set A
merupakan bagian dari set B.
akan menghasilkan output True dikarenakan Anggur dan Apel terdapat dalam set parcel_C
akan menghasilkan output False dikarenakan Durian dan Semangka tidak terdapat dalam
set parcel_C
parcel_A, parcel_B, dan parcel_C seperti yang diberikan pada baris fitur .issubset()
akan menghasilkan output False dikarenakan C tidak mengandung seluruh elemen dari set B
dikarenakan Apel dan Jeruk terdapat baik pada set parcel_A dan parcel_B.
.difference() Mengembalikan sebuah set yang parcel_A dan parcel_B merupakan set yang sama dengan baris fitur .intersection()
berisikan difference dari dua set
lainnya. Difference dari sebuah set A
berdasarkan set B adalah setiap elemen
yang terdapat di set A tetapi tidak
terdapat di set B.
dapat menghasilkan output:
Tugas:
Ketikkan potongan kode berikut pada live code editor:
Mengembalikan cop
y dari setiap elemen
dalam set. Serupa
dengan fitur copy()
pada tipe
.copy() data collections lainn
ya, fitur copy() tidak akan menghasilkan output:
akan mengubah nilai
dari elemen asal {'nik': '1211011', 'pekerjaan': 'Data Analyst', 'nama': 'Aksara'}
seperti
fungsi assignment. dan
Mengembalikan list
.values
dari seluruh nilai
() ("value") dari setiap
elemen dalam
sebuah dictionary
dapat menghasilkan output:
['Aksara','1211011','Data Analyst']
Menambahkan kunci
.update
akses ("key") dan
() nilai baru ("value")
ke dalam
sebuah dictionary.
dapat menghasilkan output:
Tugas 1:
Ketikkan potongan kode berikut pada live code editor:
Tugas 2:
Ternyata ada trik khusus yang dapat aku gunakan untuk mengkonversi berbagai tipe data collection. Contohnya:
Selanjutnya aku dapat melemparkan list ke dalam set() untuk mengkonversi sebuah list ke sebuah set
dan melemparkan set ke dalam list() untuk mengkonversi sebuah set ke sebuah list
trik ini akan sangat berguna ketika aku ingin mendapatkan seluruh list element unik pada bahasa pemrograman Python.
Tugas Praktek
“Aksara, untuk praktik kali ini, saya membebaskan kamu memilih case yang akan digunakan,” ujar Senja padaku.
Aku pun mulai berpikir. Selama ini aku bikin program hitung-menghitung untuk kantor dan keluarga, kok enggak bikin buat diri sendiri juga yah? Apalagi belakangan aku suka nge-
boba, kayaknya memang harus dilacak deh pengeluaran dan pemasukanku minimal 9 bulan terakhir. Kalau begitu, aku pakai case pengalamanku sendiri ini saja untuk dianalisis!
Buat menganalisisnya, berarti aku harus merapikan struktur data yang kumiliki terlebih dulu dengan dictionary dan kuberi nama keuangan untuk merepresentasikan pengeluaran dan
pemasukan. “Pakai format juta, lalu masukkan variabel keuangan,” ujarku sembari mengetik
Tugas:
Dari variabel keuangan, aku akan menghitung rata-rata pengeluaran dan pemasukanku selama 9 bulan terakhir. Semoga keuanganku sehat-sehat saja.
# Data keuangan
keuangan = {
total_pengeluaran = 0
total_pemasukan = 0
total_pengeluaran += biaya
total_pemasukan += biaya
rata_rata_pengeluaran = total_pengeluaran/len(keuangan['pengeluaran'])
rata_rata_pemasukan = total_pemasukan/len(keuangan['pemasukan'])
print(rata_rata_pengeluaran)
print(rata_rata_pemasukan)
2.8277777777777775
7.8999999999999995
Cara di atas adalah dua cara yang valid untuk mendeklarasikan variabel dengan bertipe string. Kemudian, untuk mendeklarasikan tipe data string ke dalam beberapa baris, aku dapat
melakukannya dengan mengapitnya dengan tanda kutip satu ataupun tanda kutip dua sebanyak 6 kali (3 di bagian awal dan 3 di bagian akhir dari string). Sebagai contoh:
akan menghasilkan:
dan
akan menghasilkan:
Apa itu String Manipulation?
Aku belajar bahwa String Manipulation adalah teknik yang digunakan dalam memanipulasi data yang disimpan dalam tipe data str. Pada bahasa Python, untuk mempermudah proses
pengolahan data, tipe data string dapat diperlakukan layaknya seperti tipe data list.
Tugas:
Aku mengikuti contoh yang diberikan dengan mengetik syntax pada live code editor untuk memahami bagaimana String Manipulation bekerja pada Python.
Tugas 2:
Selanjutnya aku mencoba mengetik kode berikut di live code editor pada baris berikutnya
akan menghasilkan output: Hi, saya John Doee umur 27 tahun, tinggal di Jl. Anggrek No. 100.
Keteran
Fitur Contoh Penggunaan
gan
Menghil
angkan
kelebiha
.stri n spasi
p() pada
awal dan
akhir stri
ng. akan menghasilkan output:
'halo, selamat siang!'
Menghil
angkan
kelebiha
.lstr
ip() n spasi
pada
awal stri
ng. akan menghasilkan output:
'halo, selamat siang! '
Menghil
angkan
kelebiha
.rstr
ip() n spasi
pada
akhir stri
ng. akan menghasilkan output:
' halo, selamat siang!'
Merubah Caps pada String
Pada bagian ini, aku akan mempelajari cara merubah caps (penggunaan huruf besar dan kecil). Jika diawal kalimat pada suatu string yang dimiliki belum berupa huruf kapital, maka
dengan menggunakan fitur .capitalize() kita dengan mudah mengubah string tersebut menjadi kalimat yang benar secara bahasa.
Tugas:
Aku mengikuti contoh yang diberikan dengan mengetik syntax pada live code editor untuk memahami bagaimana fitur .capitalize(), .lower(), dan .upper() bekerja pada
Python.
Keteranga
Fitur Contoh Penggunaan
n
Mengubah
elemen
pertama
.capital
ize() dari string
menjadi
huruf
kapital. akan menghasilkan output:
Belajar bahasa python
Mengubah
seluruh
huruf
.lower() dalam teks
(string)
menjadi akan menghasilkan output:
huruf kecil belajar bahasa python.
Mengubah
seluruh
huruf
.upper() dalam teks
(string)
menjadi akan menghasilkan output:
huruf besar
BELAJAR BAHASA PYTHON.
Pada bagian ini, aku akan mempelajari bagaimana cara memecah suatu string dengan kondisi tertentu sehingga menghasilkan list of string. Kemudian, akan dipelajari bagaimana cara
menggabungkan beberapa list of string menjadi string saja. Akhirnya, aku akan mengganti sub-string tertentu dengan sub-string lainnya sehingga mengubah string awalnya.
Tugas:
Agar lebih memahami bagaimana penerapannya pada Python, aku akan mengikuti contoh penggunaan yang diberikan dari tabel berikut dengan mengetik syntax pada live code editor.
Fitu
Keterangan Contoh Penggunaan
r
.spl Memecah memecah string berdasarkan kata dan
it()
sebuah string ber
dasarkan string la
innya ke dalam
sebuah list.
Menggabungkan
sebuah list yang akan menghasilkan output:
berisikan string b
.joi 'Ricky dan Peter dan Jordan'
n() erdasarkan
sebuah string yan dan
g telah
didefinisikan.
.rep Menggantikan
lace
kemunculan
()
suatu string terte
ntu
dengan string lai
nnya dalam
sebuah string. akan menghasilkan output:
'jeruk malang jeruk yang paling segar,
jeruk sehat, jeruk nikmat'
Tugas:
Aku akan mengikuti contoh penggunaan yang diberikan dari tabel berikut dengan mengetiknya pada live code editor.
Fitu
Keterangan Contoh Penggunaan
r
Mengembalik
an posisi dari
.fin sebuah teks
d() (sub-string) akan menghasilkan output: 0
lainnya dalam
sebuah string. dikarenakan kalimat diawali dengan kata Apel
Tugas:
Agar lebih memahami bagaimana penerapannya pada Python, aku akan mengikuti contoh penggunaan yang diberikan menggunakan fitur dalam tabel berikut dengan mengetiknya
pada live code editor.
Mengembalik
an nilai
kebenaran Tru
.startsw
e ketika
ith() sebuah teks
(string)
diawali akan menghasilkan output: True
dengan sebuah dan
teks lainnya.
Tugas Praktek
Aku mengecek ponsel. Sejak kukirimkan progress latihanku terakhir pada Senja, belum ada kabar lagi sampai saat ini. Senja memang tiba-tiba pergi dari mejanya tadi. Sedikit bosan,
aku coba membuka-buka dokumen di laptop. Aku menemukan folder “LATIHAN” dan teringat kalau ada satu latihan kecil yang belum kukerjakan. “Mumpung lagi lowong, aku coba
deh.”
Aku mengeklik dokumen PENGOLAHAN DATA TEKS. Di dalamnya aku diminta untuk meneliti popularitas antara buah salak dan buah jeruk berdasarkan judul artikel yang
muncul di majalah Buah Sehat. Aku mulai menyiapkan susunan kodeku:
judul_artikel = [
"Buah Salak Baik untuk Mata", "Buah Salak Kaya Potasium",
"Buah Jeruk Kaya Vitamin C", "Buah Salak Kaya Manfaat",
"Salak Baik untuk Jantung", "Jeruk dapat Memperkuat Tulang",
"Jeruk Mencegah Penyakit Asma", "Jeruk Memperkuat Gigi",
"Jeruk Mencegah Kolesterol Jahat", "Salak Mencegah Diabetes",
"Salak Memperkuat Dinding Usus", "Salak Baik untuk Darah",
"Jeruk Kaya Manfaat untuk Jantung", "Salak si Kecil yang Baik",
"Jeruk dan Salak Buah Kaya Manfaat", "Buah Jeruk Enak",
"Tips Panen Jeruk Ribuan Kilo", "Tips Bertanam Salak",
"Salak Manis untuk Berbuka", "Jeruk Baik untuk Wajah"
]
Tugas:
“Kalau mengikuti yang sudah kupelajari, langkah pertama adalah menghitung jumlah kemunculan kata jeruk dan salak di tiap judul artikel,” batinku.
Aku kembali berkutat di depan layar laptop.
judul_artikel = [
jumlah_artikel_jeruk = 0
jumlah_artikel_salak = 0
if judul.count("Jeruk") > 0:
jumlah_artikel_jeruk += 1
if judul.count("Salak") > 0:
jumlah_artikel_salak += 1
print(jumlah_artikel_jeruk)
print(jumlah_artikel_salak)
In [1]: judul_artikel = [
"Buah Salak Baik untuk Mata", "Buah Salak Kaya Potasium",
"Buah Jeruk Kaya Vitamin C", "Buah Salak Kaya Manfaat",
"Salak Baik untuk Jantung", "Jeruk dapat Memperkuat Tulang",
"Jeruk Mencegah Penyakit Asma", "Jeruk Memperkuat Gigi",
"Jeruk Mencegah Kolesterol Jahat", "Salak Mencegah Diabetes",
"Salak Memperkuat Dinding Usus", "Salak Baik untuk Darah",
"Jeruk Kaya Manfaat untuk Jantung", "Salak si Kecil yang Baik",
"Jeruk dan Salak Buah Kaya Manfaat", "Buah Jeruk Enak",
"Tips Panen Jeruk Ribuan Kilo", "Tips Bertanam Salak",
"Salak Manis untuk Berbuka", "Jeruk Baik untuk Wajah"
]
jumlah_artikel_jeruk = 0
jumlah_artikel_salak = 0
for judul in judul_artikel:
if judul.count("Jeruk") > 0:
jumlah_artikel_jeruk += 1
if judul.count("Salak") > 0:
jumlah_artikel_salak += 1
print(jumlah_artikel_jeruk)
print(jumlah_artikel_salak)
10
11
Tugas Praktek
Setelah selesai menghitung jumlah kemunculan kata, aku mencoba berpikir dari sudut pandang si pemilik majalah. Kalau aku jadi mereka, tentunya aku juga ingin tahu apakah kata
yang muncul itu bermuatan positif atau tidak. Nah ini!
Tugas:
Dengan cepat, aku mendeklarasikan daftar bernama kata_positif yang berisi nuansa kata positif untuk menghitung jumlah kemunculan kata_positif bagi tiap
artikel jeruk dan salak, seperti ini:
judul_artikel = [
kata_positif_jeruk = 0
kata_positif_salak = 0
for judul in judul_artikel:
kata_positif_jeruk += 1
kata_positif_salak += 1
print(kata_positif_jeruk)
print(kata_positif_salak)
In [1]: judul_artikel = [
"Buah Salak Baik untuk Mata", "Buah Salak Kaya Potasium",
"Buah Jeruk Kaya Vitamin C", "Buah Salak Kaya Manfaat",
"Salak Baik untuk Jantung", "Jeruk dapat Memperkuat Tulang",
"Jeruk Mencegah Penyakit Asma", "Jeruk Memperkuat Gigi",
"Jeruk Mencegah Kolesterol Jahat", "Salak Mencegah Diabetes",
"Salak Memperkuat Dinding Usus", "Salak Baik untuk Darah",
"Jeruk Kaya Manfaat untuk Jantung", "Salak si Kecil yang Baik",
"Jeruk dan Salak Buah Kaya Manfaat", "Buah Jeruk Enak",
"Tips Panen Jeruk Ribuan Kilo", "Tips Bertanam Salak",
"Salak Manis untuk Berbuka", "Jeruk Baik untuk Wajah"
]
kata_positif = ["Kaya", "Baik", "Mencegah", "Memperkuat"]
kata_positif_jeruk = 0
kata_positif_salak = 0
for judul in judul_artikel:
for kata in kata_positif:
if judul.count("Jeruk") > 0 and judul.count(kata) > 0:
kata_positif_jeruk += 1
if judul.count("Salak") > 0 and judul.count(kata) > 0:
kata_positif_salak += 1
print(kata_positif_jeruk)
print(kata_positif_salak)
8
9
Apa itu Functions?
Function adalah sebuah blok statemen yang hanya akan dijalankan saat ia dipanggil. Secara tidak sadar, selama proses belajar ini, aku telah mencoba menggunakan fungsi-fungsi
dalam bahasa pemrograman Python.
Fungsi len() untuk mengukur jumlah elemen dalam sebuah list dan fungsi print() untuk menampilkan pesan pada layar konsol merupakan contoh dari bentuk fungsi yang telah
disediakan oleh bahasa pemrograman Python, atau dengan kata lain built-in functions.
Selain fungsi yang telah disediakan oleh Python, Python mengizinkan aku untuk mendeklarasikan fungsi dalam kode yang aku tuliskan yang dikenal dengan user defined function.
def nama_fungsi(argument):
statement_1
…
statement_n
return returned_value
nama_fungsi adalah nama untuk fungsi yang kita definisikan, memiliki aturan seperti penamaan variabel
argument adalah variabel masukan ke fungsi, bisa tanpa variabel, satu variabel atau lebih
statement_1 … statement_n adalah algoritma yang telah kita transfer dalam bahasa Python. Ini merupakan inti dari fungsi yang kita definisikan. Seluruh statement adalah
menjorok (indent) ke dalam seperti yang pernah dipelajari pada conditioning dan looping
return_value adalah variabel output dari fungsi kita. Bisa tanpa variabel, satu variabel, atau lebih.
Fungsi Pertama
contoh_fungsi merupakan nama dari fungsi yang aku deklarasikan dan statemen-statemen di dalamnya disebut sebagai isi (body) dari fungsi.
Tugas:
Untuk menjalankan fungsi yang telah aku deklarasikan, aku dapat menuliskan potongan kode berikut dengan mengetiknya pada live code editor pada baris berikutnya.
pemanggilan fungsi contoh_fungsi() akan menghasil output:
Fungsi Kedua
Sebuah fungsi dapat menerima serangkaian argumen pada bagian dalam kurung setelah nama fungsi telah aku definisikan.
fungsi_dengan_argumen membutuhkan dua argumen (nama_depan, nama_belakang).
Python akan menjalankan sebuah fungsi hanya ketika aku telah mensuplai jumlah argumen yang sesuai saat fungsi didefinisikan.
Tugas:
Fungsi Ketiga
Saat aku melakukan pemanggilan fungsi dengan jumlah argumen yang tidak sesuai, Python akan mengembalikan pesan error yang menyatakan bahwa terdapat argumen yang belum
disuplai agar fungsi dapat dijalankan dengan baik.
Berikut ini adalah contoh pesan error yang akan dikembalikan oleh Python saat aku hanya menyuplai satu argumen saja untuk fungsi_dengan_argumen:
Bahasa Python mengizinkan aku untuk memberikan suatu nilai default terkait dengan sebuah argumen dalam sebuah fungsi. Melalui fitur ini, suatu argumen dalam sebuah fungsi akan
bersifat opsional.
Tugas 1:
Aku mencoba mengetik potongan kode berikut dengan live code editor:
Argumen nama_belakang menjadi bersifat opsional saat fungsi dipanggil. Jika argumen kedua tidak disuplai Python, akan secara otomatis menset argumen nama_belakang menjadi
string kosong - empty string ("").
Tugas 2:
Aku mencoba mengetik potongan kode berikut dengan live code editor:
Tugas 3:
Aku mencoba mengetik potongan kode berikut dengan live code editor:
Tugas Praktek
Tepat ketika aku baru menyelesaikan latihan tadi, aku mendapat pesan masuk di email. Dari Senja.
Tugas:
Aksara, pekerjaan terakhirmu baru bisa saya review sore nanti. Saat ini, kita sedang butuh bantuanmu untuk menentukan nilai rata-rata untuk data yang sudah saya buatkan dalam
bentuk list of numeric bertipe int/float berikut ini. Tolong kirimkan hasilnya sebelum jam 3 siang. Terima kasih.
data1 = [70, 70, 70, 100, 100, 100, 120, 120, 150, 150]
dan
data2 = [50, 60, 60, 50, 70, 70, 100, 80, 100, 90]
Aku pun melirik jam dinding kantor. Masih ada satu setengah jam sebelum deadline. Harus segera dikebut!
Aku langsung menulis kode dari data-data yang dikirimkan Senja tadi:
data1 = [70, 70, 70, 100, 100, 100, 120, 120, 150, 150]
data2 = [50, 60, 60, 50, 70, 70, 100, 80, 100, 90]
def hitung_rata_rata(data):
jumlah = 0
jumlah += item
rata_rata = jumlah/len(data)
return rata_rata
print(hitung_rata_rata(data1))
print('Rata-rata data2:')
print(hitung_rata_rata(data2))
Rata-rata data1:
105.0
Rata-rata data2:
73.0
Tugas Praktek
Sudah setengah jam sejak kukirimkan hasil susunan kodeku pada Senja, ia segera membalas pesanku. Untungnya bukan revisi! Aku lebih suka dapat tambahan pekerjaan dibanding
merevisi pekerjaan lama.
Tugas:
Aksara, yang kamu buat sudah cukup. Tolong buat satu fungsi untuk menghitung standar deviasi data dari data yang sudah saya berikan tadi (data dalam list of
numeric bertipe int atau float).
data1 = [70, 70, 70, 100, 100, 100, 120, 120, 150, 150]
dan
data2 = [50, 60, 60, 50, 70, 70, 100, 80, 100, 90]
Baiklah, mari kuselesaikan tantangan ini. Kubuka kembali layar susunan kodeku tadi, dan mulai mengutak-atiknya. Kuingat kembali definisi matematis dari perhitungan standar
deviasi, yaitu
data1 = [70, 70, 70, 100, 100, 100, 120, 120, 150, 150]
data2 = [50, 60, 60, 50, 70, 70, 100, 80, 100, 90]
def hitung_rata_rata(data):
jumlah = 0
rata_rata = jumlah/len(data)
return rata_rata
def hitung_standar_deviasi(data):
rata_rata_data = (hitung_rata_rata(data))
varians = 0
varians /= len(data)
return standar_deviasi
print(hitung_standar_deviasi(data1))
print(hitung_standar_deviasi(data2))
Tugas Praktek
“Aksara, hasil kerjamu dapat pujian di rapat tadi. Terima kasih ya sudah membantu!” ujar Senja yang menghampiri mejaku setelah keluar dari ruang rapat.
Aku mengangguk. Mungkin program tadi sederhana saja, tapi bisa bermanfaat bagi yang membutuhkannya sangat membahagiakan buatku.
“Oh ya, Aksara sebelum kamu pulang bisa tolong buatkan fungsi baru lagi? Kali ini untuk menentukan nilai-rata dan standar deviasi dari data di tabel. Nanti aku kasih data di tabelnya
ya.” Senja langsung menarik bangku ke sebelahku dan membuka laptop.
Tugas:
Dari data ini, berarti aku harus menjalankan fungsi baru dengan nama variabel deksripsi_properti. Aku pun mengangkat jempol pada Senja seakan bilang, "Serahkan padaku!"
Setelah kupelajari kembali, data ini sebenarnya telah direpresentasikan ke dalam dict dengan nama tabel_properti. Kalau begitu, aku bisa mulai kodeku seperti berikut ini.
# Data properti
tabel_properti = {
'luas_tanah': [70, 70, 70, 100, 100, 100, 120, 120, 150, 150],
'luas_bangunan': [50, 60, 60, 50, 70, 70, 100, 80, 100, 90],
'jarak': [15, 30, 55, 30, 25, 50, 20, 50, 50, 15],
'harga': [500, 400, 300, 700, 1000, 650, 2000, 1200, 1800, 3000]
def hitung_rata_rata(data):
jumlah = 0
jumlah += item
rata_rata = jumlah/len(data)
return rata_rata
# Fungsi hitung_standar_deviasi
def hitung_standar_deviasi(data):
rata_rata_data = hitung_rata_rata(data)
varians = 0
varians /= len(data)
return standar_deviasi
def deskripsi_properti(tabel):
print(hitung_rata_rata (tabel[key]))
print(hitung_standar_deviasi(tabel[key]))
print('')
# Panggil fungsi deskripsi_properti untuk menghitung rata-rata
deskripsi_properti(tabel_properti)
Rata-rata jarak:
34.0
Standar deviasi jarak:
6.24005184770928
Rata-rata luas_tanah:
105.0
Standar deviasi luas_tanah:
14.93311056335886
Rata-rata harga:
1155.0
Standar deviasi harga:
587.0594351517378
Argumen/parameter "r" mengartikan bahwa file yang akan dibuka berada dalam mode “read” sehingga nantinya aku tidak dapat menambahkan/ menuliskan ulang isi tulisan dari
file "hello.txt".
Perintah ini dapat digunakan untuk menutup file yang telah aku buka.
file.close()
Aku juga belajar bahwa selain mode "r" yang hanya digunakan untuk membaca file, terdapat juga mode lainnya seperti:
1. w: write, mode ini dapat aku gunakan untuk menulis ke dalam sebuah berkas teks. Jika berkas tidak tersedia, maka Python akan secara otomatis membuat sebuah berkas baru
dengan nama yang telah di spesifikasikan. Saat menulis dengan menggunakan mode ini, jika file semula tidak kosong, maka isi yang sebelumnya terdapat di dalam berkas
akan terhapus.
2. a: append, mode ini dapat aku gunakan untuk menambahkan isi dari sebuah berkas teks. Mode ini juga akan membuat sebuah berkas teks baru dengan nama yang telah kita
spesifikasikan jika berkas teks tidak tersedia.
3. w+: write+, mode ini dapat aku gunakan untuk membaca ataupun menuliskan isi dari sebuah berkas teks.
4. a+: append+, mode ini dapat aku gunakan untuk membaca ataupun menambahkan isi dari sebuah berkas teks.
import requests
url = "https://storage.googleapis.com/dqlab-dataset/hello.txt"
response = requests.get(url)
Setelah mempelajari bagaimana membuka/membuat sebuah berkas teks dalam Python, aku akan mempelajari sintaks untuk dapat membaca isi dari sebuah berkas. Untuk membaca isi
dari sebuah teks aku dapat menggunakan potongan kode berikut.
Aku akan mengasumsikan baris-baris di bawah comment merupakan isi dari “hello.txt”.
Note: Karena ada perubahan hosting file hello.txt yang tidak ditempatkan di direktori lokal sistem DQLab kamu dapat mempraktikkan bagian A1 dan A2 pada komputer kamu. Untuk
itu file hello.txt dapat kamu unduh melalui https://storage.googleapis.com/dqlab-dataset/hello.txt.
A1. Membaca file hello.txt dengan fungsi read() dan menutup file
Perintah ini aku gunakan untuk menutup berkas setelah selesai digunakan
Selain dapat membaca dan menampung isi dari sebuah berkas secara sekaligus menggunakan fungsi read(), aku juga dapat menggunakan
fungsi readline() ataupun readlines() untuk membaca isi dari suatu berkas teks. Dengan menggunakan fungsi readline(), Python akan membaca konten dari sebuah berkas
secara baris per baris, dimulai dari baris paling awal.
A2. Membaca file hello.txt dengan fungsi readline()
dengan menggunakan fungsi readline() dapat aku gunakan untuk membaca isi dari file secara tersedia dalam berkas “hello.txt” baris per baris
perintah ini aku gunakan untuk menutup berkas setelah selesai digunakan
Tugas Praktik:
Well, aku sudah mempraktikkan membaca berkas teks secara lokal di komputer ku. Sekarang aku akan mencoba membaca berkas teks yang sama yang berada di
url https://storage.googleapis.com/dqlab-dataset/hello.txt. Di code editor akupun mengetikkan perintah berikut
Aku akan mengecek apakah permintaan yang dilakukan melalui url dapat dipenuhi. Selanjutnya aku mengetikkan kode berikut
yang kemudian aku dapati hasil berikut di console
Ini apa ya? Akupun mencarinya melalui mesin pencari google dan melalui tautan https://en.wikipedia.org/wiki/List_of_HTTP_status_codes saya dapatkan informasi bahwa kode
status HTTP 200 adalah response OK dari url di mana file hello.txt disimpan.
Untuk mencetak isi berkas hello.txt yang telah dibaca dapat aku lakukan melalui potongan kode yang ditunjukkan berikut ini
Ketika aku jalankan maka aku memperoleh hasil di console seperti berikut ini
Sayangnya setelah aku amati terlihat bahwa hasilnya tidak sama dengan isi berkas hello.txt.
Fungsi readlines() akan mengembalikan sebuah list yang setiap elemennya merupakan setiap baris dalam sebuah berkas teks.
Note: Karena ada perubahan hosting file hello.txt yang tidak ditempatkan di direktori lokal sistem DQLab kamu dapat mempraktikkan bagian A1 dan A2 pada komputer kamu. Untuk
itu file hello.txt dapat kamu unduh melalui https://storage.googleapis.com/dqlab-dataset/hello.txt.
untuk setiap baris sebagai variabel line dalam berkas dengan nama variabel file
Waaw.... Penggunaan atribut .text menghasilkan isi berkas hello.txt sesuai dengan isi yang seharusnya.
Tips: Trik ini efektif digunakan ketika mengambil data melalui web scrapping.
Menulis Berkas Teks – Part 1
Untuk menuliskan isi dari suatu berkas, aku dapat menggunakan fungsi write() atau writelines() yang telah disediakan oleh Python. Sebelum masuk ke dalam contoh penggunaan
fungsi write() atau writelines(), penting bagiku untuk mengingat bahwa mode yang aku spesifikasikan pada fungsi open() akan mempengaruhi bagaimana Python menuliskan isi
ke dalam berkas teks. Jika aku menggunakan mode w, maka Python akan menghapus seluruh isi dalam berkas sebelum menuliskan konten yang aku spesifikasikan.
Asumsikan baris-baris di bawah comment ini merupakan isi dari “hello.txt”
Tugas:
Perintah ini aku gunakan untuk membuka/membuat sebuah berkas teks
Untuk setiap baris sebagai variabel line dalam berkas dengan nama variabel file
Seusai program selesai dijalankan, baris-baris di bawah comment ini merupakan isi dari "hello.txt"
Tugas:
Pertama, aku mengasumsikan baris-baris di bawah comment ini merupakan isi dari “hello.txt”
Perintah ini aku gunakan untuk membuka/membuat sebuah berkas teks dengan menggunakan mode “a”, untuk menambahkan beberapa baris pada berkas teks setelah isi dari berkas
awalnya
file.writelines([
"Sekarang kita belajar menulis dengan menggunakan Python",
])
file.close()
import
adalah nama library yang akan diimport untuk dapat digunakan dalam kode program yang disusun, baik library bawaan (built-in), library yang tersedia ada di web python package
index atau dikembangkan sendiri.
Python adalah salah satu bahasa yang paling diminati untuk pengolahan data secara matematis. Untuk menggunakan fungsi-fungsi matematis yang telah disediakan oleh bahasa
Python, aku dapat melakukan proses import library math seperti pada potongan kode berikut:
import math
Tugas:
Aku mengetikkan potongan kode berikut dalam live code editor:
Menerima in
put berupa
bilangan dan
mengembalik
math.floo an hasil
r() pembulatan
ke bawah akan menghasilkan output: 10
untuk
bilangan inp
ut.
akan menghasilkan output: 13
Menerima in
put berupa
bilangan dan
math.fabs mengembalik
() an hasil
absolut dari
bilangan inp
ut. akan menghasilkan output: 10.32
Tugas:
Aku mempraktekkan potongan kode berikut dalam live code editor:
Menerima inp
ut berupa dua
buah bilangan
(asumsikan x
dan y) dan
mengembalika
n sebuah
bilangan (z) di
math.log(
mana z
) merupakan
hasil log basis
y dari x (atau
dengan kata
lain x akan menghasilkan output 3
merupakan
hasil
pemangkatan
dari z terhadapakan menghasilkan output 4
y)
Menerima inp
ut berupa dua
buah bilangan
dan
math.copy
mengembalika
sign() n bilangan
pertama sesuai
dengan tanda
yang dimiliki akan menghasilkan output: -10.32
oleh bilangan
kedua
akan menghasilkan output: -13.87
“Terima kasih, Aksara! Akhirnya kelar juga pekerjaan kemarin. Masih semangat, kan? Belum kapok kalau ada proyek baru datang lagi? Hahaha,” goda Senja.
“Asalkan ada bonus, maju terus,” candaku.
“Oke, kali ini serius. Kita diminta untuk mengembangkan model prediksi harga rumah di di Tangerang berdasarkan luas tanah, luas bangunan serta kedekatan lokasi dengan pusat
kota. Untuk mengembangkan model prediksi ini, saya telah mengumpulkan beberapa data yang diperlukan. Coba kamu lihat,” jelas Senja.
“Berarti aku akan memprediksi harga rumah ini berdasarkan kemiripan atribut dari data yang telah ada ini?” tanyaku memastikan. Senja mengangguk.
Aku pun segera menempatkan data tersebut ke dalam file harga_rumah.txt seperti berikut ini:
Tugas 1
Aku pun melanjutkan prosesnya dengan membaca file harga_rumah.txt dan merepresentasikan setiap data ke dalam tipe data dictionary dan menampung keseluruhan data dalam
sebuah list bernama harga_rumah:
Setelah selesai memasukkan data dan menemukan jika nilai dari setiap atribut (tanah, bangunan, jarak_ke_pusat) tidak setara, aku mulai agak bingung. Tapi, harus tenang dan
jangan panik!
Aku kembali mengecekanya dan memutuskan utnuk melakukan proses transformasi data. Transformasi data dilakukan dengan mengurangi setiap nilai atribut dalam data dengan nilai
atribut minimum dan membaginya dengan nilai atribut maksimum yang dikurangi dengan nilai atribut minimum, seperti ini:
Untuk atribut tanah, nilai maksimum adalah 150 dan nilai minimum adalah 70.
Saat nilai atribut tanah 100, proses transformasi akan mengubah nilai atribut ini menjadi 0,375
Tugas 2
Mula-mula, aku akan membuat sebuah fungsi bernama get_all_specified_attribute yang menerima parameter list_of_dictionary (tipe data list yang berisikan sekumpulan tipe data
dictionary) dan specified_key (tipe data string). Fungsi akan mengembalikan sebuah list yang berisikan seluruh atribut dengan kunci (key) specified_key.
Tugas 3
Kemudian, setelah berhasil membuat fungsi tersebut, aku juga membuat fungsi min_value yang menerima parameter list_attributes (berupa tipe data list) dan mengembalikan nilai
terkecil dalam list_attributes dan max_value yang menerima parameter list_attributes dan mengembalikan nilai terbesar dalam list_attributes.
Tugas 4
Selanjutnya aku membuat fungsi transform_attribute yang menerima parameter attr (sebuah bilangan), max_attr (sebuah bilangan) dan min_attr (sebuah bilangan) yang
mengembalikan nilai transformasi dari sebuah attribute.
Tugas 5
“Sudah cukup, Nja?” tanyaku saat Senja terdiam lama menelusuri hasil kerjaku.
“Menurutku kita masih butuh fungsi baru yaitu fungsi data_transformation yang menerima parameter list_of_dictionary (sebuah list yang berisikan tipe data dictionary)
dan list_attribute_names (sebuah list yang berisikan tipe data string) mengembalikan hasil transformasi data dari list_of_dictionary berdasarkan list_attribute_names telah
dispesifikasikan.
Tugas 6
Dari data baru dan attr_info ini, Senja menyuruhku membuat fungsi transform_data yang menerima parameter data dan attr_info dan mengembalikan nilai atribut dari data baru
yang telah ditransformasikan.
Tugas 7
Setelah itu, Senja memintaku untuk membuat sistem prediksi harga berdasarkan nilai kemiripan atribut.
Tugas 8
Dan aku menggunakan semua fungsi yang telah aku definisikan dari Step 1 s/d Step 7.
Hitung harga rumah yang telah ditransformasikan ke dalam variabel harga_rumah berikut dengan atributnya attr_info
Gunakan variabel data untuk memprediksi harga rumah
transformasikan data tersebut dengan dengan menggunakan attr_info yang telah diperoleh yang kembali disimpan ke variabel data.
Hitunglah prediksi harga dari variabel data tersebut.