Python for Data Professional Beginner — Part 2

Joanald
25 min readDec 22, 2022

--

Collection Manipulation dengan Python

Collections manipulation adalah salah satu teknik yang penting untuk dikuasai setiap programmer. Melalui penguasaan materi collections manipulation, aku dapat mengolah berbagai tipe data collections dalam Python yang meliputi:

  • list,
  • tuple,
  • set, dan
  • Dictionary.

Mengakses List dan Tuple — Part 1

Pada suatu list ataupun tuple dengan menggunakan indeks atau semacam nomor urut dari list atau tuple tersebut. Indeks pada suatu tipe data list atau tuple dimulai dari angka 0.

Tugas 1:

Menampilkan output Januari dan Juni, yang aku lakukan adalah mengetikkan syntax sederhana seperti berikut:

bulan_pembelian = ('Januari','Februari','Maret','April','Mei','Juni','Juli','Agustus','September', 'Oktober', 'November','Desember')
print(bulan_pembelian[0])
print(bulan_pembelian[5])

Kemudian, untuk mengakses elemen dari belakang pada suatu list/tuple, aku juga dapat menggunakan indeks negatif pada list/tuple untuk menampilkan output Desember dan November, yang aku lakukan adalah mengetikkan syntax sederhana sebagai berikut:

print(bulan_pembelian[-1])
print(bulan_pembelian[-2])

Mengakses List dan Tuple — Part 2

Cara collections manipulation pertama yang akan dipelajari adalah memotong (slicing) list/tuple dengan menggunakan rentangan nilai indeks (range of index).

Tugas:

  1. Menampilkan output bulan_pembelian Mei, Juni, Juli, Agustus (index 4–7).
  2. Menampilkan output bulan_pembelian Januari, Februari, Maret, April, Mei (index 0–4).
  3. menampilkan output September, Oktober, November, Desember (index 8 — elemen terakhir).
  4. Memotong suatu list/tuple dengan menggunakan indeks negatif. Sebagai contoh untuk mendapatkan output September, Oktober, November
bulan_pembelian = ('Januari','Februari','Maret','April','Mei','Juni','Juli','Agustus','September', 'Oktober', 'November','Desember')
pertengahan_tahun = bulan_pembelian[4:8]
print(pertengahan_tahun)
awal_tahun = bulan_pembelian[:5]
print(awal_tahun)
akhir_tahun = bulan_pembelian[8:]
print(akhir_tahun)
print(bulan_pembelian[-4:-1])

Penggabungan Dua atau Lebih List atau Tuple

Selain dapat melakukan pemotongan terhadap tipe data list/tuple, aku juga dapat menggabungkan isi dari suatu list (ataupun tuple) dengan list lainnya (atau dengan tuple lainnya) dengan menggunakan operator penambahan (+).

list_makanan = ['Gado-gado','Ayam Goreng','Rendang']
list_minuman = ['Es Teh','Es Jeruk','Es Campur']
list_menu = list_makanan + list_minuman
print(list_menu)

List Manipulation — Part 1

Untuk memanipulasi tipe data list, dapat menggunakan sekumpulan fitur yang telah tersedia dalam bahasa pemrograman Python. Sebagaian fitur-fitur untuk melakukan manipulasi data yang terdiri atas append(), clear(), copy(), count() dan extend()

  1. .append() → Menambahkan data sebagai elemen terakhir di list
  2. .clear() → Menghapus seluruh elemen dalam sebuah list
  3. .copy() → Mengembalikan copy dari setiap elemen dalam list
  4. .count() → Mengembalikan jumlah kemunculan suatu elemen pada list
  5. .extend() → Menggabungkan dua buah list seperti penggunaan operator + untuk list
# Fitur .append()
print(">>> Fitur .append()")
list_makanan = ['Gado-gado', 'Ayam Goreng', 'Rendang']
list_makanan.append('Ketoprak')
print(list_makanan)
# Fitur .clear()
print(">>> Fitur .clear()")
list_makanan = ['Gado-gado', 'Ayam Goreng', 'Rendang']
list_makanan.clear()
print(list_makanan)
# Fitur .copy()
print(">>> Fitur .copy()")
list_makanan1 = ['Gado-gado', 'Ayam Goreng', 'Rendang']
list_makanan2 = list_makanan1.copy()
list_makanan3 = list_makanan1
list_makanan2.append('Opor')
list_makanan3.append('Ketoprak')
print(list_makanan1)
print(list_makanan2)
# Fitur .count()
print(">>> Fitur .count()")
list_score = ['Budi', 'Sud', 'Budi', 'Budi', 'Budi', 'Sud', 'Sud']
score_budi = list_score.count('Budi')
score_sud = list_score.count('sud')
print(score_budi) # akan menampilkan output 4
print(score_sud) # akan menampilkan output 3
# Fitur .extend()
print(">>> Fitur .extend()")
list_menu = ['Gado-gado', 'Ayam Goreng', 'Rendang']
list_minuman = ['Es Teh', 'Es Jeruk', 'Es Campur']
list_menu.extend(list_minuman)
print(list_menu)

List Manipulation — Part 2

Selanjutnya aku akan mempelajari fitur index(), insert(), pop(), remove(), reverse(), dan sort() untuk melakukan manipulasi.

6. .index() → Mengembalikan indeks dari elemen pertama yang ditemukan dari awal sebuah list

7. .insert() → Menyisipkan elemen pada indeks yang dispesifikasikan

8. .pop() → Menghilangkan elemen pada posisi tertentu

9. .remove() → Menghilangkan elemen dengan nilai tertentu

10. .reverse() → Membalik urutan elemen dari sebuah list

11. .sort() → Mengurutkan elemen pada sebuah list, secara default dengan urutan dari kecil ke besar (ascending).

# Fitur .index()
print(">>> Fitur .index()")
list_score = ['Budi','Sud','Budi','Budi','Budi','Sud','Sud']
score_pertama_sud = list_score.index('Sud') + 1
print(score_pertama_sud) # akan menampilkan output 2
# Fitur .insert()
print(">>> Fitur .insert()")
list_score = ['Budi','Sud','Budi','Budi','Sud']
list_score.insert(3, 'sud')
print(list_score)
# Fitur .pop()
print(">>> Fitur .pop()")
list_menu = ['Gado-gado', 'Ayam Goreng', 'Rendang']
list_menu.pop(1)
print(list_menu)
# Fitur .remove()
print(">>> Fitur .remove()")
list_menu = ['Gado-gado', 'Ayam Goreng', 'Rendang', 'Ketoprak']
list_menu.remove('Rendang')
print(list_menu)
# Fitur .reverse()
print(">>> Fitur .reverse()")
list_menu = ['Gado-gado', 'Ayam Goreng', 'Rendang', 'Ketoprak']
list_menu.reverse()
print(list_menu)
# Fitur .sort()
print(">>> Fitur .sort()")
list_menu = ['Gado-gado', 'Ayam Goreng', 'Rendang', 'Ketoprak']
list_menu.sort() # Default: Ascending
print(list_menu)
list_menu.sort(reverse=True)# Descending
print(list_menu)

Tuple Manipulation

Manipulasi data dengan tipe data tuple.

.count() → Mengembalikan jumlah kemunculan suatu elemen pada tuple

.index() → Mengembalikan indeks dari elemen pertama yang ditemukan dari awal sebuah tuple

# Fitur .count()
print(">>> Fitur .count()")
tuple_score = ('Budi', 'Sud', 'Budi', 'Budi', 'Budi', 'Sud', 'Sud')
score_budi = tuple_score.count('Budi')
score_sud = tuple_score.count('Sud')
print(score_budi) # akan menampilkan output 4
print(score_sud) # akan menampilkan output 3
# Fitur .index()
print(">>> Fitur .index()")
tuple_score = ('Budi','Sud','Budi','Budi','Budi','Sud','Sud')
score_pertama_sud = tuple_score.index('Sud')+1
print(score_pertama_sud) # akan menampilkan output 2

Set Manipulation — Part 1

Sedikit berbeda dengan tipe data list dan tuple, pada tipe data set terdapat cukup banyak fitur yang disediakan oleh bahasa Python.

  1. .add() → Menambahkan data ke dalam set. Penting untuk kita ingat bahwa pada tipe data set tidak mengizinkan adanya duplikasi elemen di dalamnya.
  2. .clear() → Menghapus seluruh elemen dalam sebuah set.
  3. .copy() → Mengembalikan copy dari setiap elemen dalam set.
  4. .update() → Menambahkan elemen dari suatu set dengan set lainnya.
  5. .pop() → Menghilangkan elemen dari sebuah set secara acak.
  6. .remove() → Menghilangkan elemen dengan nilai tertentu.
# Fitur .add()
print(">>> Fitur .add()")
set_buah = {'Jeruk','Apel','Anggur'}
set_buah.add('melon')
print(set_buah)
# Fitur .clear()
print(">>> Fitur .clear()")
set_buah = {'Jeruk','Apel','Anggur'}
set_buah.clear
print(set_buah)
# Fitur .copy()
print(">>> Fitur .copy()")
set_buah1 = {'Jeruk','Apel','Anggur'}
set_buah2 = set_buah1
set_buah3 = set_buah1.copy()
set_buah2.add('Melon')
set_buah3.add('Kiwi')
print(set_buah1)
print(set_buah2)
# Fitur .update()
print(">>> Fitur .update()")
parcel1 = {'Anggur','Apel','Jeruk'}
parcel2 = {'Apel','Kiwi','Melon'}
parcel1.update(parcel2)
print(parcel1)
# Fitur .pop()
print(">>> Fitur .pop()")
parcel = {'Anggur','Apel','Jeruk'}
buah = parcel.pop()
print(buah)
print(parcel)
# Fitur .remove()
print(">>> Fitur .remove()")
parcel = {'Anggur','Apel','Jeruk'}
parcel.remove('Apel')
print(parcel)

Set Manipulation — Part 2

Sedikit berbeda dengan tipe data list dan tuple, pada tipe data set terdapat cukup banyak fitur manipulasi yang digunakan.

7. .union() → Mengembalikan hasil penggabungan (union) dari dua buah set.

8. .isdisjoint() → Mengembalikan nilai kebenaran apakah suatu set disjoint (saling lepas/tidak mengandung elemen yang sama) dengan set lainnya.

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

10. .issuperset() → Mengembalikan nilai kebenaran apakah sebuah set merupakan superset dari set lainnya. Sebuah set A merupakan superset dari set B jika seluruh elemen dari set B terkandung dalam set A.

11. .intersection() → Mengembalikan sebuah set yang merupakan intersection dari dua set lainnya.

12. .difference() → Mengembalikan sebuah set yang 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.

13. .symmetric_difference() → Mengembalikan sebuah set yang berisikan symmetric difference dari dua set lainnya. Symmetric difference dari sebuah set A dan B adalah setiap elemen dari set A yang tidak terdapat di set B digabungkan dengan (union) setiap elemen dari set B yang tidak terdapat di set A.

# Fitur .union()
print(">>> Fitur .union()")
parcel1 = {'Anggur','Apel','Jeruk'}
parcel2 = {'Apel','Kiwi','Melon'}
parcel3 = parcel1.union(parcel2)
print(parcel1)
print(parcel3)
# Fitur .isdisjoint()
print(">>> Fitur .isdisjoint()")
parcel1 = {'Anggur','Apel','Jeruk'}
parcel2 = {'Kiwi','Melon','Pisang'}
parcel3 = {'Apel','Srikaya','Semangka'}
parcel1_parcel2_disjoint = parcel1.isdisjoint(parcel2)
print(parcel1_parcel2_disjoint)
parcel1_parcel3_disjoint = parcel1.isdisjoint(parcel3)
print(parcel1_parcel3_disjoint)
# Fitur .issubset()
print(">>> Fitur .issubset()")
parcel_A = {'Anggur', 'Apel'}
parcel_B = {'Durian','Semangka','Apel'}
parcel_C = {'Anggur', 'Kiwi', 'Apel', 'Jeruk', 'Melon'}
parcel_A_dalam_C = parcel_A.issubset(parcel_C)
parcel_B_dalam_C = parcel_B.issubset(parcel_C)
print(parcel_A_dalam_C)
print(parcel_B_dalam_C)
# Fitur .issuperset()
print(">>> Fitur .issuperset()")
parcel_C_mengandung_A = parcel_C.issuperset(parcel_A)
parcel_C_mengandung_B = parcel_C.issuperset(parcel_B)
print(parcel_C_mengandung_A)
print(parcel_C_mengandung_B)
# Fitur .intersection()
print(">>> Fitur .intersection()")
parcel_A = {'Anggur', 'Kiwi', 'Apel', 'Jeruk', 'Melon'}
parcel_B = {'Apel', 'Jeruk', 'Semangka', 'Durian', 'Tomat'}
parcel_C = parcel_A.intersection(parcel_B)
print(parcel_C)
# Fitur .difference()
print(">>> Fitur .difference()")
parcel_C = parcel_A.difference(parcel_B)
print(parcel_C)
# Fitur .symmetric_difference()
print(">>> Fitur .symmetric_difference()")
parcel_A = {'Anggur', 'Apel', 'Jeruk', 'Melon'}
parcel_B = {'Apel','Jeruk','Semangka','Leci'}
parcel_C = parcel_A.symmetric_difference(parcel_B)
print(parcel_C)

Dictionary Manipulation

Fitur-fitur dictionary manipulation di Python

  1. .clear() → Menghapus seluruh elemen dalam sebuah dictionary.
  2. .copy() → Mengembalikan copy dari setiap elemen dalam set. Serupa dengan fitur copy() pada tipe data collections lainnya, fitur copy() tidak akan mengubah nilai dari elemen asal seperti fungsi assignment.
  3. .keys() → Mengembalikan list dari seluruh kunci akses (“key”) dari setiap elemen dalam sebuah dictionary.
  4. .values() → Mengembalikan list dari seluruh nilai (“value”) dari setiap elemen dalam sebuah dictionary.
  5. .update() → Menambahkan kunci akses (“key”) dan nilai baru (“value”) ke dalam sebuah dictionary.
# Fitur .clear()
print(">>> Fitur .clear()")
info_karyawan = {'nama' : 'Aksara',
'nik' : '1211011',
'pekerjaan' : 'Data Analyst'}
info_karyawan.clear()
print(info_karyawan)
# Fitur .copy()
print(">>> Fitur .copy()")
info_karyawan1 = {'nama' : 'Aksara',
'nik' : '1211011',
'pekerjaan' : 'Data Analyst'}
info_karyawan2 = info_karyawan1.copy()
info_karyawan2['nama'] = 'Senja'
info_karyawan2['nik'] = '1211056'
print(info_karyawan1)
print(info_karyawan2)
# Fitur .keys()
print(">>> Fitur .keys()")
info_karyawan = {'nama' : 'Aksara',
'nik' : '1211011',
'pekerjaan' : 'Data Analyst'}
kunci_akses = list(info_karyawan.keys())
print(kunci_akses)
# Fitur .values()
print(">>> Fitur .values()")
value_dict = list(info_karyawan.values())
print(value_dict)
# Fitur .update()
print(">>> Fitur .update()")
info_karyawan.update({'skillset':['Python', 'R']})
print(info_karyawan)

Useful Tips and Tricks

Untuk menentukan berapa jumlah data yang tersimpan di setiap elemen pada tuple/list, aku dapat menggunakan fungsi buit-in len().

Contoh:

# Tuple
print(">>> Tuple")
tuple_menu = ('Gado-gado','Ayam Goreng','Rendang','Ketoprak')
jumlah_menu = len(tuple_menu)
print(jumlah_menu)
# List
print(">>> List")
list_menu = ['Gado-gado','Ayam Goreng','Rendang','Ketoprak']
jumlah_menu = len(list_menu)
print(jumlah_menu)

Tugas Praktek

Dari variabel keuangan, aku akan menghitung rata-rata pengeluaran dan pemasukanku selama 9 bulan terakhir. Semoga keuanganku sehat-sehat saja.

# Data keuangan
keuangan = {
'pengeluaran': [2, 2.5, 2.25, 2.5, 3.2, 2.5, 3.5, 4, 3],
'pemasukan': [7.8, 7.5, 9, 7.6, 7.2, 7.5, 7, 10, 7.5]
}
# Perhitungan rata-rata pemasukan dan rata-rata pengeluaran
total_pengeluaran = 0
total_pemasukan = 0
for biaya in keuangan['pengeluaran']:
total_pengeluaran += biaya
for biaya in keuangan['pemasukan']:
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)

String Manipulation dengan Python

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.

nama_produk = "Sepatu Niko"
nama_produk = nama_produk[:2] + "P" + nama_produk[3:9] + "K" + nama_produk[-1]
print(nama_produk)
print(nama_produk[:7])
print(nama_produk[7:])
print(len(nama_produk))

Operator “+” untuk Tipe Data String

Operator + pada dua string akan secara otomatis menggabungkan kedua string tersebut. Operator + juga dapat digunakan untuk menambahkan beberapa string secara bersamaan.

nama_depan = 'John'
nama_belakang = 'Doee'
nama_lengkap = nama_depan + ' ' + nama_belakang
print(nama_lengkap)
umur = '27 tahun'
alamat = 'Jl. Anggrek No. 100'
nama_umur_alamat = 'Hi, saya ' + nama_lengkap + ' umur ' + umur + ' tinggal di ' + alamat + '.'
print(nama_umur_alamat)

Menghilangkan Spasi di Awal dan/atau di Akhir

  1. .strip() → Menghilangkan kelebihan spasi pada awal dan akhir string.
  2. .lstrip() → Menghilangkan kelebihan spasi pada awal string.
  3. .rstrip() → Menghilangkan kelebihan spasi pada akhir string.
# Fitur .strip()
print(">>> Fitur .strip()")
kata_sambutan = ' halo, selamat siang! '
kata_sambutan = kata_sambutan.strip()
print(kata_sambutan)
# Fitur .lstrip()
print(">>> Fitur .lstrip()")
kata_sambutan = ' halo, selamat siang! '
kata_sambutan = kata_sambutan.lstrip()
print(kata_sambutan)
# Fitur .rstrip()
print(">>> Fitur .rstrip()")
kata_sambutan = ' halo, selamat siang! '
kata_sambutan = kata_sambutan.rstrip()
print(kata_sambutan)

Merubah Caps pada String

  1. .capitalize() → Mengubah elemen pertama dari string menjadi huruf kapital.
  2. .lower() → Mengubah seluruh huruf dalam teks (string) menjadi huruf kecil.
  3. .upper() → Mengubah seluruh huruf dalam teks (string) menjadi huruf besar.
# Fitur .capitalize()
print(">>> Fitur .capitalize()")
judul_buku = 'belajar bahasa Python'
print(judul_buku.capitalize())
# Fitur .lower()
print(">>> Fitur .lower()")
judul_buku = 'Belajar Bahasa PYTHON.'
print(judul_buku.lower())
# Fitur .upper()
print(">>> Fitur .upper()")
judul_buku = 'Belajar Bahasa PYTHON.'
print(judul_buku.upper())

Pemecahan, Penggabungan, dan Penggantian String

  1. .split() → Memecah sebuah string berdasarkan string lainnya ke dalam sebuah list.
  2. .join() → Menggabungkan sebuah list yang berisikan string berdasarkan sebuah string yang telah didefinisikan.
  3. .replace() → Menggantikan kemunculan suatu string tertentu dengan string lainnya dalam sebuah string.
# Fitur .split()
print(">>> Fitur .split()")
frasa = "ani dan budi dan wati dan johan"
karakter = frasa.split("dan")
print(karakter)
kata = frasa.split(" ")
print(kata)
# Fitur .join()
print(">>> Fitur .join()")
pemisah = " dan "
karakter = ["Ricky", "Peter", "Jordan"]
frasa = pemisah.join(karakter)
print(frasa)
frasa = " ".join(karakter)
print(frasa)
# Fitur .replace()
print(">>> Fitur .replace()")
frasa = "apel malang apel yang paling segar, apel sehat, apel nikmat"
frasa = frasa.replace("apel", "jeruk")
print(frasa)

Menentukan Posisi dan Jumlah Sub-string pada String

  1. .find() → Mengembalikan posisi dari sebuah teks (sub-string) lainnya dalam sebuah string.
  2. .count() → Menghitung jumlah kemunculan sebuah teks (string) lainnya dalam suatu string (string yang dicari bersifat case sensitive).
teks = "Apel malang adalah apel termanis dibanding apel-apel lainnya"
# Fitur .find()
print(">>> Fitur .find()")
print(teks.find("Apel"))
print(teks.find("malang"))
# Fitur .count()
print(">>> Fitur .count()")
kemunculan_kata_apel = teks.count("apel")
print(kemunculan_kata_apel)

Menentukan String Apakah Diawali/Diakhiri oleh Sub-string

  1. .startswith() → Mengembalikan nilai kebenaran True ketika sebuah teks (string) diawali dengan sebuah teks lainnya.
  2. .endswith() → Mengembalikan nilai kebenaran True ketika sebuah teks (string) diakhiri dengan sebuah teks lainnya.
# Fitur .startswith()
print(">>> Fitur .startswith()")
teks = "Apel malang adalah apel termanis dibanding apel-apel lainnya"
print(teks.startswith("Apel"))
print(teks.startswith("apel"))
# Fitur .endswith()
print(">>> Fitur .endswith()")
print(teks.endswith("lainnya"))
print(teks.endswith("apel"))

Tugas Praktek

Menghitung jumlah kemunculan kata jeruk dan salak di tiap judul artikel.

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)

Mendeklarasikan daftar bernama kata_positif yang berisi nuansa kata positif untuk menghitung jumlah kemunculan kata_positif bagi tiap artikel jeruk dan salak .

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)

Functions

Function adalah sebuah blok statemen yang hanya akan dijalankan saat ia dipanggil.

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 juga mengizinkan 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

Note:

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.

# Definisikan fungsi
def contoh_fungsi():
print("Halo Dunia")
print("Aku sedang belajar bahasa Python")
# Panggil fungsi yang telah didefinisikan
contoh_fungsi()

Fungsi Kedua

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.

# Definsikan fungsi 
def fungsi_dengan_agrumen(nama_depan, nama_belakang):
print(nama_depan+" "+nama_belakang)
# Panggil fungsi dengan memasukkan argumen
# nama_depan yaitu "John" dan nama_belakang "Doe"
fungsi_dengan_agrumen("John", "Doe")

Fungsi Ketiga

Saat melakukan pemanggilan fungsi dengan jumlah argumen yang tidak sesuai, Python akan mengembalikan pesan error yang menyatakan terdapat argumen yang belum disuplai agar fungsi dapat dijalankan dengan baik.

Berikut ini adalah contoh pesan error yang akan dikembalikan oleh Python saat menyuplai jumlah argumen yang tidak sesuai untuk fungsi_dengan_argumen:

Type Error: function fungsi_dengan_argumen() missing 1 required positional argument: nama_belakang

Bahasa Python mengizinkan untuk memberi suatu nilai default terkait dengan sebuah argumen dalam sebuah fungsi. Melalui fitur ini, suatu argumen dalam sebuah fungsi akan bersifat opsional.

Tugas 1:

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:

Live code editor:

Potongan kode berhasil dijalankan dan mengasilkan output: John

Tugas 3:

Live code editor:

Potongan kode berhasil dijalankan dan mengasilkan output: John Doe

# Definsikan fungsi dengan nilai default argument kedua adalah "".
def fungsi_dengan_argumen(nama_depan, nama_belakang = ""):
print(nama_depan +" "+ nama_belakang)
# Panggil fungsi dengan memasukkan argumen nama_depan "John"
fungsi_dengan_argumen("John")
# Panggil fungsi dengan memasukkan argumen
# nama_depan yaitu "John" dan nama_belakang "Doe"
fungsi_dengan_argumen("John", "Doe")

Tugas Praktek

Menentukan nilai rata-rata untuk data dibawah dalam bentuk list of numeric bertipe int/float berikut ini.

data1 = [70, 70, 70, 100, 100, 100, 120, 120, 150, 150]

dan

data2 = [50, 60, 60, 50, 70, 70, 100, 80, 100, 90]
# Dua buah data yang tersimpan dalam tipe list
data1 = [70, 70, 70, 100, 100, 100, 120, 120, 150, 150]
data2 = [50, 60, 60, 50, 70, 70, 100, 80, 100, 90]
# Definisikan fungsi hitng_rata_rata
def hitung_rata_rata(data):
jumlah = 0
for item in data:
jumlah += item
rata_rata = jumlah/len(data)
return rata_rata
# Hitung nilai rata-rata dari kedua data yang dimiliki
print('Rata-rata data1:')
print(hitung_rata_rata(data1))
print('Rata-rata data2:')
print(hitung_rata_rata(data2))

Buat satu fungsi untuk menghitung standar deviasi data dari data yang berikan tadi (data dalam list of numeric bertipe int atau float).

# Dua buah data yang tersimpan dalam tipe list
data1 = [70, 70, 70, 100, 100, 100, 120, 120, 150, 150]
data2 = [50, 60, 60, 50, 70, 70, 100, 80, 100, 90]
# Fungsi rata-rata data
def hitung_rata_rata(data):
jumlah = 0
for item in data:
jumlah += item
rata_rata = jumlah/len(data)
return rata_rata
# Definisikan fungsi hitung_standar_deviasi
def hitung_standar_deviasi(data):
rata_rata_data = hitung_rata_rata(data)
varians = 0
for item in data:
varians += (item - rata_rata_data) ** 2
varians /= len(data)
standar_deviasi = varians ** (1/2)
return standar_deviasi
# Hitung nilai standar deviasi dari kedua data yang dimiliki
print('Standar deviasi data1:')
print(hitung_standar_deviasi(data1))
print('Standar deviasi data2:')
print(hitung_standar_deviasi(data2))

Tugas Praktek

Menentukan nilai-rata dan standar deviasi dari data di tabel.

# 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]
}
# Fungsi rata-rata data
def hitung_rata_rata(data):
jumlah = 0
for item in data:
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
for item in data:
varians += (item - rata_rata_data) ** 2
varians /= len(data)
standar_deviasi = varians ** (1/2)
return standar_deviasi
# Definisikan fungsi untuk menghitung rata-rata dan standar deviasi
# setiap kolom pada tabel_properti yang diberikan oleh key dict.
def deskripsi_properti(tabel):
for key in tabel.keys():
print('Rata-rata ' + key + ':')
print(hitung_rata_rata(tabel[key]))
print('Standar deviasi ' + key + ':')
print(hitung_standar_deviasi(tabel[key]))
print('')
# Panggil fungsi deskripsi_properti untuk menghitung rata-rata
# dan standar deviasi setiap kolom pada tabel_properti
deskripsi_properti(tabel_properti)

Manipulasi Berkas Teks

1. Membaca file di local computer

Pengolahan berkas teks pada Python tidak membutuhkan proses import dependencies lainnya seperti pada bahasa-bahasa pemrograman lainnya. Untuk memanipulasi berkas teks pada bahasa pemrograman Python, mula-mula harus membuka/membuat berkas teks yang aku inginkan dengan menggunakan fungsi open(). Fungsi open() menerima 2 parameter, di mana parameter pertama merupakan nama dari file yang ingin dibuka/dibuat dan mode yang berkaitan dengan aksi yang ingin dilakukan terhadap file yang telah terbuka. Sebagai contoh:

file = open("hello.txt", "r")

Argumen/parameter "r" mengartikan bahwa file yang akan dibuka berada dalam mode “read” sehingga nantinya tidak dapat menambahkan/ menuliskan ulang isi tulisan dari file "hello.txt".

Perintah ini dapat digunakan untuk menutup file yang telah dibuka.

file.close()

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.

2. Membaca file dari url

Berkas teks yang berada di suatu alamat di internet dapat dibaca berdasarkan url-nya. Untuk membacanya perlu menggunakan library requests. File hello.txt yang terdapat di local komputer juga ada di url berikut https://storage.googleapis.com/dqlab-dataset/hello.txt.

import requests
url = "https://storage.googleapis.com/dqlab-dataset/hello.txt"
response = requests.get(url)

Membaca Berkas Teks — Part 1

A1. Membaca file hello.txt dengan fungsi read() dan menutup file

Perintah ini digunakan untuk menutup berkas setelah selesai digunakan

Akan menghasilkan output:

Kita sedang belajar Python
Tepatnya belajar memanipulasi berkas teks
Memanipulasi berkas dengan Python sangatlah mudah!

Selain dapat membaca dan menampung isi dari sebuah berkas secara sekaligus menggunakan fungsi read(), 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 digunakan untuk membaca isi dari file secara tersedia dalam berkas “hello.txt” baris per baris

perintah ini aku gunakan untuk menutup berkas setelah selesai digunakan

akan menghasilkan output:

Kita sedang belajar Python
Tepatnya belajar memanipulasi berkas teks

Tugas Praktik:

Membaca berkas teks secara lokal di komputer.

import requests
url = "https://storage.googleapis.com/dqlab-dataset/hello.txt"
response = requests.get(url)
# Cetak kode status dari response
print(response)
# Cetak isi file hello.txt menggunakan method response.iter_lines()
print("\n>> Cetak isi file hello.txt menggunakan method response.iter_lines():")
for baris in response.iter_lines():
print(baris)

Membaca Berkas Teks — Part 2

A1. Membaca file hello.txt dengan fungsi readlines()

Membuka kembali file “hello.txt”

Dan membaca dengan fungsi readlines(),

Syntax ini akan menghasilkan output:

[“Kita sedang belajar Python”, “Tepatnya belajar memanipulasi berkas teks”, 
“Memanipulasi berkas dengan Python sangatlah mudah!”]

A2. Membaca file hello.txt dengan menerapkan looping

Selain menggunakan fungsi-fungsi standar yang telah disediakan oleh Python, dapat juga membaca isi dari sebuah file secara baris per baris dengan menggunakan for loops. Simaklah contoh berikut ini dengan tetap membaca file dari “hello.txt”

untuk setiap baris sebagai variabel line dalam berkas dengan nama variabel file

Akan menghasilkan output:

Kita sedang belajar Python
Tepatnya belajar memanipulasi berkas teks
Memanipulasi berkas dengan Python sangatlah mudah!

Tugas Praktik:

import requests
url = "https://storage.googleapis.com/dqlab-dataset/hello.txt"
response = requests.get(url)
# Cetak kode status dari response
print(response)
# Cetak isi file hello.txt menggunakan atribut response.text
print("\n>> Cetak isi file hello.txt menggunakan atribut response.text:")
print(response.text)

Menulis Berkas Teks — Part 1

Untuk menuliskan isi dari suatu berkas, dapat menggunakan fungsi write() atau writelines() yang telah disediakan oleh Python. Sebelum masuk ke dalam contoh penggunaan fungsi write() atau writelines(), penting untuk mengingat bahwa mode yang dispesifikasikan pada fungsi open() akan mempengaruhi bagaimana Python menuliskan isi ke dalam berkas teks. Jika menggunakan mode w, maka Python akan menghapus seluruh isi dalam berkas sebelum menuliskan konten yang dispesifikasikan.

Asumsikan baris-baris di bawah comment ini merupakan isi dari “hello.txt”

Kita sedang belajar Python
Tepatnya belajar memanipulasi berkas teks
Memanipulasi berkas dengan Python sangatlah mudah!

Tugas:

# Menulis ke file hello.txt
file = open("hello.txt", "w")
file.write("Sekarang kita belajar menulis dengan menggunakan Python")
file.write("Menulis konten file dengan mode w (write.)")
file.close()

Menulis Berkas Teks — Part 2

Ketika menulis pada berkas teks menggunakan mode a, Python tidak akan menghapus isi dalam berkas dan hanya akan menambahkan konten. Contoh berikut untuk memahami penggunaan fungsi write() dan writelines()

Tugas:

Pertama, mengasumsikan baris-baris di bawah comment ini merupakan isi dari “hello.txt”

Kita sedang belajar Python
Tepatnya belajar memanipulasi berkas teks
Memanipulasi berkas dengan Python sangatlah mudah!

Perintah ini digunakan untuk membuka/membuat sebuah berkas teks dengan menggunakan mode “a”, untuk menambahkan beberapa baris pada berkas teks setelah isi dari berkas awalnya.

# Menulis ke file dengan mode append
file = open("hello.txt", "a")
file.writelines([
"Sekarang kita belajar menulis dengan menggunakan Python",
"Menulis konten file dengan mode a(append)"
])
file.close()

Library Matematika pada Python

Salah satu keunikan Python adalah library yang dimilikinya karena dapat di-extend dengan library yang didefinisikan oleh pengguna Python, selain dari library bawaan (built-in) yang dimilikinya. Untuk membuat library yang didefinisikan oleh pengguna umumnya dilakukan dengan menggunakan teknik pemrograman berorientasi obyek (object oriented programming).

Tentunya secara dasar, Python tidak dapat digunakan untuk pengolahan data, komputasi saintifik, machine learning dan bahkan sistem cerdas. Melalui pengembang library tentunya aku memiliki akses ke keperluan atau bidang tersebut. Library ini dapat diinstal melalui command pip yang bersumber dari web python package index.

Untuk memanggil library pada python, aku dapat menggunakan syntax:

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

Fungsi dalam Library Matematika — Part 1

Di dalam library math aku mempelajari berbagai fungsi, beberapa diantaranya dapat dilihat pada tabel di bawah ini.

math.ceil()→ Menerima input berupa bilangan dan mengembalikan pembulatan ke atas untuk bilangan input.

math.floor()→ Menerima input berupa bilangan dan mengembalikan hasil pembulatan ke bawah untuk bilangan input.

math.fabs()→ Menerima input berupa bilangan dan mengembalikan hasil absolut dari bilangan input.

math.factorial()→ Menerima input berupa bilangan dan mengembalikan hasil faktorial dari bilangan input

math.fsum()→ Menerima input berupa tipe data collection (tuple, list, etc.) dan mengembalikan hasil penjumlahan setiap elemennya.

# Import library math
import math
# Fungsi math.ceil()
print(">>> Fungsi math.ceil()")
x = 10.32
y = 13.87
x_ceil = math.ceil(x)
y_ceil = math.ceil(y)
print(x_ceil)
print(y_ceil)
# Fungsi math.floor()
print(">>> Fungsi math.floor()")
x_floor = math.floor(x)
y_floor = math.floor(y)
print(x_floor)
print(y_floor)
# Fungsi math.fabs()
print(">>> Fungsi math.fabs()")
x = 10.32
y = -13.87
x = math.fabs(x)
y = math.fabs(y)
print(x)
print(y)
# Fungsi math.factorial()
print(">>> Fungsi math.factorial()")
x_factorial = math.factorial(5)
print(x_factorial)
# Fungsi math.fsum()
print(">>> Fungsi math.fsum()")
x = [1, 2, 3, 4, 5, 6, -6, -5, -4]
total = math.fsum(x)
print(total)

Fungsi dalam Library Matematika — Part 2

math.log() → Menerima input berupa dua buah bilangan (asumsikan x dan y) dan mengembalikan sebuah bilangan (z) di mana z merupakan hasil log basis y dari x (atau dengan kata lain x merupakan hasil pemangkatan dari z terhadap y)

math.sqrt() → Menerima input berupa sebuah bilangan dan mengembalikan hasil akar pangkat dua (akar kuadrat) dari bilangan tersebut

math.copysign() → Menerima input berupa dua buah bilangan dan mengembalikan bilangan pertama sesuai dengan tanda yang dimiliki oleh bilangan kedua

# Import library math
import math
# Fungsi math.log()
print(">>> Fungsi math.log()")
# x = log basis 2 dari 8
x = math.log(8, 2)
# y = log basis 3 dari 81
y = math.log(81, 3)
# z = log basis 10 dari 10000
z = math.log(10000, 10)
print(x)
print(y)
print(z)
# Fungsi math.sqrt()
print(">>> Fungsi math.sqrt()")
# akar kuadrat dari 100
x = math.sqrt(100)
print(x)
# akar kuadrat dari 2
y = math.sqrt(2)
print(y)
# Fungsi math.copysign()
print(">>> Fungsi math.copysign()")
x = 10.32
y = -13.87
z = -15
x = math.copysign(x, z)
y = math.copysign(y, z)
z = math.copysign(z, 10)
print(x)
print(y)
print(z)

Mini Quiz

Mengubah data ke txt

Tugas 1

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
nilai_transformasi = 100 - 70 / (150 - 70)

Aku mulai mendapat solusi untuk mempermudah proses transformasi data.

Tugas 2

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

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

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

Membeuat 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, Buat fungsi transform_data yang menerima parameter data dan attr_info dan mengembalikan nilai atribut dari data baru yang telah ditransformasikan.

Tugas 7

Membuat sistem prediksi harga berdasarkan nilai kemiripan atribut.

Tugas 8

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
  • data = {‘tanah’: 110, ‘bangunan’: 80, ‘jarak_ke_pusat’: 35}
  • transformasikan data tersebut dengan dengan menggunakan attr_info yang telah diperoleh yang kembali disimpan ke variabel data.
  • Hitunglah prediksi harga dari variabel data tersebut.
import requests
from contextlib import closing
import csv
# STEP 1:
# Baca file "harga_rumah.txt"
url = "https://storage.googleapis.com/dqlab-dataset/harga_rumah.txt"
data_harga_rumah = []
with closing(requests.get(url, stream=True)) as r:
f = (line.decode('utf-8') for line in r.iter_lines())
data_harga_rumah = [row for row in csv.reader(f)]
# Buat list of dict dengan nama harga rumah
key_harga_rumah = data_harga_rumah[0]
harga_rumah = []
for baris_harga_rumah in data_harga_rumah[1:]:
dict_harga_rumah = dict()
for i in range(len(baris_harga_rumah)):
dict_harga_rumah[key_harga_rumah[i]] = baris_harga_rumah[i]
harga_rumah.append(dict_harga_rumah)
print(harga_rumah)
# STEP 2:
# Buat fungsi 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.
def get_all_specified_attributes(list_of_dictionary, specified_key):
list_attributes = []
for data in list_of_dictionary:
attribute = data[specified_key]
list_attributes.append(attribute)
return list_attributes
# STEP 3:
# Buat fungsi fungsi min_value yang menerima parameter list_attributes (berupa
# tipe data list) dan mengembalikan nilai terkecil dalam list_attributes
def min_value(list_attributes):
min_attribute = 9999
for attr in list_attributes:
if int(attr) < min_attribute:
min_attribute = int(attr)
return min_attribute
# Buat fungsi dan max_value yang menerima parameter list_attribute dan
# mengembalikan nilai terbesar dalam list_attributes.
def max_value(list_attributes):
max_attribute = -9999
for attr in list_attributes:
if int(attr) > max_attribute:
max_attribute = int(attr)
return max_attribute
# STEP 4:
# Buat 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.
def transform_attribute(attr, max_attr, min_attr):
nilai_transformasi = (attr - min_attr) / (max_attr - min_attr)
return nilai_transformasi
# STEP 5:
# Buat 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
# dan attr_info telah dispesifikasikan.
def data_transformation(list_of_dictionary, list_attribute_names):
attr_info = {}
for attr_name in list_attribute_names:
specified_attributes = get_all_specified_attributes(list_of_dictionary, attr_name)
max_attr = max_value(specified_attributes)
min_attr = min_value(specified_attributes)
attr_info[attr_name] = {'max': max_attr, 'min': min_attr}
data_idx = 0
while(data_idx < len(list_of_dictionary)):
list_of_dictionary[data_idx][attr_name] = transform_attribute(int(list_of_dictionary[data_idx][attr_name]), max_attr, min_attr)
data_idx += 1
return list_of_dictionary, attr_info
# STEP 6:
# Berdasarkan data baru dan attr_info ini, buat fungsi transform_data yang
# menerima parameter data dan attr_info dan mengembalikan nilai atribut
# dari data baru yang telah ditransformasikan.
def transform_data(data, attr_info):
for key_name in data.keys():
data[key_name] = (data[key_name] - attr_info[key_name]['min']) / (
attr_info[key_name]['max'] - attr_info[key_name]['min'])
return data
# STEP 7:
# Buat fungsi yang digunakan untuk sistem prediksi harga berdasarkan
# nilai kemiripan atribut, yaitu argument input data dan list_of_data!
def abs_value(value):
if value < 0:
return -value
else:
return value
def price_based_on_similarity(data, list_of_data):
prediksi_harga = 0
perbedaan_terkecil = 999
for data_point in list_of_data:
perbedaan= abs_value(data['tanah'] - data_point['tanah'])
perbedaan+= abs_value(data['bangunan'] - data_point['bangunan'])
perbedaan+= abs_value(data['jarak_ke_pusat'] - data_point['jarak_ke_pusat'])
if perbedaan < perbedaan_terkecil:
prediksi_harga = data_point['harga']
perbedaan_terkecil = perbedaan
return prediksi_harga
# STEP 8:
# Hitung harga rumah yang telah ditransformasikan ke dalam variabel
# harga_rumah berikut dengan atributnya attr_info
harga_rumah, attr_info = data_transformation(harga_rumah,
['tanah','bangunan','jarak_ke_pusat'])
# Gunakan variabel data untuk memprediksi harga rumah
data = {'tanah': 110, 'bangunan': 80, 'jarak_ke_pusat': 35}
# Transformasikan data tersebut dengan dengan menggunakan attr_info yang telah
# diperoleh yang kembali disimpan ke variabel data.
data = transform_data(data, attr_info)
# Hitunglah prediksi harga dari variabel data tersebut.
harga = price_based_on_similarity(data, harga_rumah)
print("Prediksi harga rumah: ", harga)

Hasil Belajar

  • Memahami & mempraktikkan penggunaan collection manipulations (list, tuple, set dan dictionary) pada Python.
  • Memahami & mempraktikkan penggunaan string manipulation pada Python.
  • Memahami & mempraktikkan pembuatan fungsi yang didefinisikan sendiri untuk kebutuhan tertentu dengan menggunakan Python.
  • Memahami & mempraktikkan cara membaca data dari file menggunakan Python
  • Mengerjakan latihan dalam membuat program Python untuk penyelesaian kasus bisnis sederhana.

Sekian untuk ringkasan dari Python for Data Professional Beginner — Part 2 dari DQLab. Semoga bisa membantu teman-teman yang sedang belajar memperdalam Python.

Referensi:

--

--