Cara menggunakan negative list python

Hi, nice to meet you again in this next module. Pada sesi sebelumnya, saya telah membahas modul Python for Data Professional Beginner — Part 1 . Sekarang, saya akan membahas modul berikutnya, yaitu Python for Data Professional Beginner — Part 2.

Show

Pada sesi kali ini, kita akan memperdalam pemahaman kita mengenai teknik manipulasi data pada Python yang penting sekali peranannya untuk dikuasai oleh seorang programmer. Selanjutnya, kita akan menerapkan ilmu yang kita dapat dari teknik manipulasi data ini melalui praktek-praktek dan conth yang ada. Oya, kita juga akan mempelajari bagaimana caranya membuat fungsi sendiri serta melakukan proses pengolahan berkas teks pada Python. Kemudian, di akhir sesi ini, kita akan menerapkan semua ilmu yang kita dapat untuk membuat prediksi harga rumah berdasarkan variabel tertentu. Keren, bukan? Nah, mungkin ada di antara kalian yang bertanya, “Gimana kak, caranya mempelajari semua ini? Apa saya harus menguasai ilmu komputer dulu baru bisa belajar Python?” Eiits, tenang dulu. Kalian tidak perlu repot-repot mempelajari ilmu komputer dari dasar dulu, karena kalian bisa banget mempelajari semuanya ini di platform belajar DQLab. Selain materi, kalian juga bisa langsung mempraktekkannya di live code editor dalam satu halaman. Seru, bukan?

Ilustrasi Bahasa Pemrograman Python

Nah, sebelum melangkah lebih jauh dalam pembahasan kita kali ini, terlebih dahulu saya akan membahas mengenai:

Apa itu collection manipulation? Dan apa saja yang termasuk dalam collection manipulation?

Collections manipulation adalah salah satu teknik yang penting untuk dikuasai oleh setiap programmer. Melalui penguasaan materi collections manipulation ini, kita dapat mengolah berbagai macam tipe data collections dalam Python, seperti list, tuple, set, dan dictionary.

Pertama-tama, kita akan mengingat-ingat dulu materi yang sudah kita bahas pada module sebelumnya. Seperti yang telah kita pelajari sebelumnya pada tipe data sequence, kita dapat mengakses elemen pada sebuah list ataupun tuple dengan menggunakan indeks atau nomor urut dari list atau tuple tersebut. Perlu untuk diingat bahwa indeks pada list atau tuple ini selalu dimulai dari angka 0.

Ok teman-teman, sebagai contoh, kita akan menggunakan elemen dari tuple bulan_pembelian ini.

Tuple bulan_pembelian

Untuk menampilkan output Januari dan Juni, kita perlu mengetikkan syntax berikut. Di sini, elemen Januari dan Juni masing-masing memiliki posisi indeks 0 dan 5.

Contoh cara menampilkan ouput Januari dan Juni

Hasil:

Ouput dari Januari dan Juni

Kemudian, untuk mengakses elemen dari belakang sebuah list/ tuple, kita dapat menggunakan indeks negatif pada list / tuple tersebut. Sebagai contoh, kita akan menampilkan output Desember dan November dengan mengetikkan syntax di bawah ini. Di sini, elemen Desember berada pada posisi index -1 dan elemen November berada pada posisi index -2.

Contoh cara menampilkan output Desember dan November

Hasil:

Output dari Desember dan November

Nah, selanjutnya kita akan mempelajari cara dari collections manipulation yang pertama. Cara pertama yang akan kita pelajari ini adalah memotong (slicing) list/ tuple dengan menggunakan rentangan nilai indeks (range of index). Sebelumnya, kita akan mengetikkan isi dari list bulan_pembelian berikut.

bulan_pembelian = ('Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember')

Untuk dapat menampilkan output bulan_pembelian Mei, Juni, Juli, Agustus, kita cukup menggunakan syntax di bawah ini untuk mengambil index 4 hingga 7. Perlu diperhatikan disini bahwa dalam rentangan nilai indeks, yang diambil adalah dari nilai indeks pertama hingga sebelum nilai indeks terakhir dari rentangan nilai tersebut.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)

Hasil:

('Mei', 'Juni', 'Juli', 'Agustus')

Selanjutnya, untuk menampilkan output bulan_pembelian Januari, Februari, Maret, April, Mei, kita akan menggunakan syntax di bawah ini untuk mengambil index 0 sampai 4. Di sini, nilai indeks pertama tidak dicantumkan karena sudah mewakili pengambilan dari indeks yang paling awal, yaitu 0.

awal_tahun = bulan_pembelian[:5]print(awal_tahun)

Hasil:

('Januari', 'Februari', 'Maret', 'April', 'Mei')

Lalu, menampilkan output September, Oktober, November, Desember, kita dapat menggunakan syntax berikut untuk mengambil index 8 hingga elemen terakhir. Untuk nilai indeks terakhir juga tidak perlu dicantumkan karena sudah mewakili pengambilan nilai indeks yang paling terakhir, yaitu indeks ke-11 (Desember)

akhir_tahun = bulan_pembelian[8:]print(akhir_tahun)

Hasil:

('September', 'Oktober', 'November', 'Desember')

Selain menggunakan indeks positif seperti contoh-contoh di atas, kita juga dapat memotong sebuah list/tuple dengan menggunakan indeks negatif. Sebagai contoh, kita akan menggunakan syntax di bawah ini untuk mendapatkan output September, Oktober, November. Di sini, elemen September dinyatakan oleh indeks -4, sementara elemen November dinyatakan oleh indeks sebelum -1 (untuk mengetahui metode slicing dengan rentangan nilai indeks ini, perhatikan penjelasannya di awal).

print(bulan_pembelian[-4:-1])

Hasil:

('September', 'Oktober', 'November')

Selain melakukan pemotongan terhadap tipe data list/ tuple, ternyata kita juga dapat menggabungkan isi dari suatu list dengan list ataupun tuple dengan tuple lainnya dengan operator penambahan (+). Pada contoh di bawah ini, kita akan menggabungkan isi dari list_makanan dengan isi dari list_minuman dengan operator +.

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

Hasil:

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
0

Hasil di atas menunjukkan bahwa isi dari list_minuman ditempatkan di bagian akhir dari list_makanan.

Selain collection manipulation yang tadi telah kita bahas, apa saja collection manipulation yang umumnya kita gunakan pada Python?

Ada banyak sekali teknik collection manipulation yang dapat kita terapkan pada Python. Seperti yang sudah saya katakan tadi, collection manipulation ini dapat kita terapkan pada data bertipe set dan dictionary. Hmmm… Seperti apa ya tekniknya? Yuk kita simak dalam uraian di bawah ini.

· List Manipulation — Part 1

Untuk memanipulasi tipe data list, kita dapat menggunakan sekumpulan fitur yang telah tersedia dalam bahasa pemrograman Python. Untuk memahami fitur apa saja yang tersedia di sini, yuk perhatikan uraian di bawah ini.

1) .append()

Untuk menambahkan data sebagai elemen terakhir pada sebuah list. Untuk lebih jelasnya, pada contoh di bawah ini kita akan menambahkan elemen Ketoprak pada list_makanan.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
1

Hasil:

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
2

2) .clear()

Untuk menghapus seluruh elemen dalam sebuah list. Pada contoh berikut ini, kita akan menghapus seluruh elemen dari list_makanan. Setelah list_makanan tersebut dicetak, hasilnya sudah berupa sebuah list kosong.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
3

Hasil:

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
4

3) .copy()

Untuk mengembalikan copy dari setiap elemen dalam list. Di sini, kita akan menggunakan fitur ini pada list_makanan1, lalu kita akan memasukkan list yang telah dicopy ini ke variabel list_makanan2.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
5

Lalu, kita akan memasukkan list_makanan1 yang belum dicopy ini ke variabel list_makanan3.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
6

Selanjutnya, kita akan menambahkan elemen Ketoprak pada list_makanan3. Perlu untuk diperhatikan bahwa penambahan elemen ini tidak mempengaruhi isi dari elemen pada list_makanan2. Sementara itu, kita juga akan menambahkan elemen Opor pada list_makanan2.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
7

Lalu, kita akan mencetak list_makanan1 dan list_makanan2.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
8

Hasil:

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
9

Hasil di atas telah menunjukkan bahwa isi dari kedua list tersebut masing-masing tidaklah sama. Berarti, sudah jelas di sini bahwa penambahan isi pada list awal tidak akan mempengaruhi isi dari copy-an list tersebut.

4) .count()

Untuk mengembalikan jumlah kemunculan sebuah elemen pada list. Pada contoh berikut, kita akan menghitung jumlah elemen Budi pada list_score.

('Mei', 'Juni', 'Juli', 'Agustus')
0

Hasil:

('Mei', 'Juni', 'Juli', 'Agustus')
1

5) .extend()

Untuk menggabungkan dua buah list seperti layaknya penggunaan operator + pada list. Pada contoh berikut kita akan menambahkan isi dari list_minuman pada list_menu dengan menggunakan fitur ini.

('Mei', 'Juni', 'Juli', 'Agustus')
2

Hasil:

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
0

6) .index()

Untuk mengembalikan indeks dari elemen pertama yang ditemukan dari awal sebuah list. Di sini, kita akan mencari nilai indeks dari elemen Sud yang pertama pada list_score. Lalu, kita akan menambahkan nilai indeks ini dengan 1. Selanjutnya, kita akan mencetak variabel score_pertama_sud.

('Mei', 'Juni', 'Juli', 'Agustus')
4

Hasil:

('Mei', 'Juni', 'Juli', 'Agustus')
5

Di sini, hasilnya adalah 2 karena indeks dari elemen Sud bernilai 1, lalu ditambah dengan bilangan 1 sehingga hasilnya menjadi 2.

7) .insert()

Untuk menyisipkan elemen pada indeks yang dispesifikasikan. Pada contoh di bawah ini, kita akan menyisipkan elemen Sud pada indeks ke 3 di list_score. Posisi dari indeks ini ditempatkan pada parameter dari fitur .insert() sebelum elemen Sud ditempatkan.

('Mei', 'Juni', 'Juli', 'Agustus')
6

Hasil:

('Mei', 'Juni', 'Juli', 'Agustus')
7

Dari output di atas, dapat kita lihat bahwa elemen Sud telah menempati indeks ke 3 menggantikan posisi elemen Budi.

8) .pop()

Untuk menghilangkan elemen pada posisi tertentu. Pada contoh di bawah ini, kita akan menghilangkan elemen Ayam Goreng dari list_menu yang posisi indeksnya bernilai 1.

('Mei', 'Juni', 'Juli', 'Agustus')
8

Hasil:

('Mei', 'Juni', 'Juli', 'Agustus')
9

9) .remove()

Untuk menghilangkan elemen dengan nilai tertentu. Pada kode di bawah ini, kita akan menghilangkan elemen Rendang dari list_menu dengan langsung mencantumkan elemennya dalam fitur .remove().

awal_tahun = bulan_pembelian[:5]print(awal_tahun)
0

Hasil:

awal_tahun = bulan_pembelian[:5]print(awal_tahun)
1

10) .reverse()

Untuk membalik urutan elemen dari sebuah list. Di bawah ini, kita akan membalik urutan dari elemen-elemen yang ada pada list_menu. Perhatikan bahwa elemen ini awalnya memiliki urutan Gado-gado, Ayam Goreng, Rendang, dan Ketoprak dari kiri ke kanan.

awal_tahun = bulan_pembelian[:5]print(awal_tahun)
2

Hasil:

awal_tahun = bulan_pembelian[:5]print(awal_tahun)
3

Dari hasil di atas, diperoleh bahwa urutan elemen dalam list_menu telah dibalik menjadi urutan dari kanan ke kiri yaitu Ketoprak, Rendang, Ayam Goreng, dan Gado-gado.

11) .sort()

Untuk mengurutkan elemen pada sebuah list. Secara default, fitur ini akan mengurutkan elemen dengan urutan dari kecil ke besar (ascending). Pada kode di bawah ini, kita akan mencoba mengurutkan elemen dari list_menu berdasarkan abjadnya. Pertama-tama, kita akan mengurutkannya dengan urutan naik.

awal_tahun = bulan_pembelian[:5]print(awal_tahun)
4

Hasil:

awal_tahun = bulan_pembelian[:5]print(awal_tahun)
5

Selanjutnya, kita akan mengurutkan elemen dari list_menu ini berdasarkan urutan menurun.

awal_tahun = bulan_pembelian[:5]print(awal_tahun)
6

Hasil:

awal_tahun = bulan_pembelian[:5]print(awal_tahun)
7

· Tuple Manipulation

Selanjutnya, kita akan mempelajari fitur yang dapat digunakan untuk melakukan manipulasi data dengan tipe data tuple. Untuk lebih jelasnya, yuk perhatikan uraian di bawah ini.

1) .count()

Untuk mengembalikan jumlah kemunculan suatu elemen pada tuple, jadi fungsinya sama dengan fitur .count() pada list. Di sini, kita akan menghitung kemunculan elemen dari Budi pada tuple_score.

awal_tahun = bulan_pembelian[:5]print(awal_tahun)
8

Hasil:

awal_tahun = bulan_pembelian[:5]print(awal_tahun)
9

2) .index()

Untuk mengembalikan indeks dari elemen pertama yang ditemukan dari awal sebuah tuple. Fungsi ini sama kegunaannya dengan fitur .index() pada list. Pada contoh berikut, kita akan mencari indeks dari elemen Sud yang pertama pada tuple_score.

('Januari', 'Februari', 'Maret', 'April', 'Mei')
0

Di sini, indeksnya yang sebenarnya adalah 1. Karena indeksnya ditambah 1, hasilnya menjadi 2.

('Januari', 'Februari', 'Maret', 'April', 'Mei')
1

Hasil:

('Mei', 'Juni', 'Juli', 'Agustus')
5

· Set Manipulation — Part 1

Sedikit berbeda dengan tipe data list dan tuple, tipe data set ini memiliki cukup banyak fitur yang disediakan oleh Python untuk memanipulasi data jenis ini. Yuk, simak uraian dan contoh penggunaannya di bawah ini.

1) .add()

Untuk menambahkan data ke dalam set. Penting untuk diingat bahwa tipe data set ini tidak mengizinkan adanya duplikasi elemen di dalamnya. Sebagai contoh, kita akan menambahkan elemen Melon pada set_buah.

('Januari', 'Februari', 'Maret', 'April', 'Mei')
3

Hasil:

('Januari', 'Februari', 'Maret', 'April', 'Mei')
4

Pada output di atas dapat dilihat bahwa elemen Melon telah ditambahkan meskipun urutan pada set tersebut tidak seperti waktu pertama kali dideklarasikan.

2) .clear()

Untuk menghapus seluruh elemen dalam sebuah set. Sama seperti halnya fitur .clear() yang digunakan pada list, fitur ini akan menghasilkan sebuah set kosong. Pada kode berikut, kita akan menggunakan fitur ini pada set_buah.

('Januari', 'Februari', 'Maret', 'April', 'Mei')
5

Hasil:

('Januari', 'Februari', 'Maret', 'April', 'Mei')
6

3) .copy()

Untuk mengembalikan copy dari setiap elemen dalam set. Fitur ini memiliki kesamaan fungsi dengan fitur .copy() pada list. Pada kode di bawah ini, kita akan memasukkan set_buah1 yang telah dicopy pada variabel set_buah3. Sementara itu, set_buah1 akan ditambahkan pada variabel set_buah2.

('Januari', 'Februari', 'Maret', 'April', 'Mei')
7

Lalu, kita akan menambahkan elemen Melon pada set_buah2 dan Kiwi pada set_buah3. Selanjutnya, kita akan mecetak variabel set_buah1 dan set_buah2.

('Januari', 'Februari', 'Maret', 'April', 'Mei')
8

Hasil:

('Januari', 'Februari', 'Maret', 'April', 'Mei')
9

Hasil di atas cukup untuk membuktikan bahwa penambahan pada set_buah3 ternyata tidak berpengaruh baik pada elemen set_buah2 maupun pada set_buah1.

4) .update()

Untuk menambahkan elemen dari sebuah set dengan set lainnya. Pada kode di bawah ini, kita akan menambahkan elemen dari parcel2 dengan elemen pada parcel1.

akhir_tahun = bulan_pembelian[8:]print(akhir_tahun)
0

Hasil:

akhir_tahun = bulan_pembelian[8:]print(akhir_tahun)
1

Walaupun parcel1 dan parcel2 sama-sama memiliki elemen Apel, elemen Apel ini tetap ditampilkan sebagai sebuah elemen. Mengapa? Seperti pada penjelasan di atas, sebuah data bertipe set tidak akan mengijinkan adanya duplikasi elemen di dalamnya.

5) .pop()

Untuk menghilangkan elemen dari sebuah set secara acak. Pada contoh di bawah ini, kita akan menghilangkan sebuah elemen secara acak dari set parcel. Set parcel yang telah dihilangkan elemennya tersebut selanjutnya akan dimasukkan ke variabel buah. Lalu, kita akan mencetak variabel buah dan parcel.

akhir_tahun = bulan_pembelian[8:]print(akhir_tahun)
2

Hasil:

akhir_tahun = bulan_pembelian[8:]print(akhir_tahun)
3

Pada output di atas, dapat dilihat bahwa output dari variabel buah adalah elemen Anggur. Mengapa? Karena variabel Anggur inilah yang akan dihilangkan dari set parcel. Oleh karena itu, output parcel setelah dihilangkan elemennya tersebut kini hanya terdiri dari elemen Jeruk dan Apel saja.

6) .remove()

Untuk menghilangkan elemen dengan nilai tertentu. Pada kode di bawah ini, kita akan menghilangkan elemen Apel dari set parcel. Setelah dihilangkan elemennya, kini yang tersisa hanya elemen Anggur dan Jeruk.

akhir_tahun = bulan_pembelian[8:]print(akhir_tahun)
4

Hasil:

akhir_tahun = bulan_pembelian[8:]print(akhir_tahun)
5

7) .union()

Untuk mengembalikan hasil penggabungan dari dua buah set. Di sini, kita akan menggabungkan isi dari set parcel2 dan parcel3. Perlu diperhatikan juga bahwa duplikasi elemen Apel dihilangkan saat kedua set tersebut digabungkan.

akhir_tahun = bulan_pembelian[8:]print(akhir_tahun)
6

Hasil:

akhir_tahun = bulan_pembelian[8:]print(akhir_tahun)
7

8) .isdisjoint()

Untuk mengembalikan nilai kebenaran apakah sebuah set saling lepas/tidak mengandung elemen yang sama dengan set lainnya. Pada kode berikut ini, kita akan menggunakan set parcel1, parcel2, dan parcel3. Kemudian, kita akan membandingkan isi dari parcel1 dengan parcel2 dengan fitur ini.

akhir_tahun = bulan_pembelian[8:]print(akhir_tahun)
8

Hasil:

akhir_tahun = bulan_pembelian[8:]print(akhir_tahun)
9

Output diatas bernilai True karena baik parcel1 dan parcel2 sama-sama tidak memiliki elemen yang sama dalam setiap setnya.

Selanjutnya, kita akan membandingkan isi dari parcel1 dengan parcel3.

('September', 'Oktober', 'November', 'Desember')
0

Hasil:

('September', 'Oktober', 'November', 'Desember')
1

Outputnya bernilai False karena parcel1 dan parcel3 memiliki elemen yang sama, yaitu Apel.

9) .issubset()

Untuk mengembalikan subset dari sebuah set terhadap set lainnya. Jika kita asumsikan set A adalah subset dari set B, maka seluruh elemen dari set A merupakan bagian dari set B. Pada contoh kali ini, kita akan menggunakan elemen dari parcel_A, parcel_B dan parcel_C sebagai contohnya.

('September', 'Oktober', 'November', 'Desember')
2

Terlebih dahulu, kita akan membandingkan isi dari parcel_A dan parcel_C. Hasilnya akan bernilai True karena semua elemen dalam parcel_A terdapat dalam parcel_C, yaitu Anggur dan Apel.

('September', 'Oktober', 'November', 'Desember')
3

Hasil:

akhir_tahun = bulan_pembelian[8:]print(akhir_tahun)
9

Lalu, kita akan membandingkan isi dari parcel_B dengan parcel_C. hasilnya akan bernilai False dikarenakan hanya satu elemen dari parcel_B yang terdapat dalam parcel_C, yaitu Apel.

('September', 'Oktober', 'November', 'Desember')
5

Hasil:

('September', 'Oktober', 'November', 'Desember')
1

10) .issuperset()

Untuk mengembalikan nilai superset dari sebuah set terhadap set lainnya. Sebuah set A merupakan superset dari set B jika seluruh elemen dari set B terdapat dalam set A. pada contoh kali ini, kita tetap menggunakan set parcel_A, parcel_B, dan parcel_C seperti pada fitur sebelumnya. Pertama-tama, kita akan membandingkan elemen dari parcel_C terhadap parcel_A.

('September', 'Oktober', 'November', 'Desember')
7

Hasil:

akhir_tahun = bulan_pembelian[8:]print(akhir_tahun)
9

Hasilnya bernilai True karena seluruh elemen pada parcel_A terdapat dalam parcel_C.

Selanjutnya, kita akan membandingkan isi dari parcel_C dengan parcel_B. Sama sperti pada fitur sebelumnya, hasilnya akan bernilai False karena hanya satu elemen dari parcel_B yang terdapat di parcel, yaitu Apel.

('September', 'Oktober', 'November', 'Desember')
9

Hasil:

('September', 'Oktober', 'November', 'Desember')
1

11) .intersection()

Untuk mengembalikan sebuah set yang merupakan irisan dari dua buah set . Untuk lebih jelasnya, di bawah ini kita akan melihat irisan dari set parcel_A dan parcel_B.

print(bulan_pembelian[-4:-1])
1

Hasil:

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

Outputnya adalah elemen Apel dan Jeruk karena parcel_A dan parcel_B sama-sama memiliki kedua elemen tersebut.

12) .difference()

Untuk mengembalikan sebuah set yang berisikan difference dari dua set lainnya. Adapun difference dari sebuah set A terhadap set B menyatakan setiap elemen yang terdapat di set A tetapi tidak terdapat di set B. Pada contoh di bawah ini, kita tetap menggunakan set parcel_A dan parcel_B seperti pada fitur sebelumnya.

print(bulan_pembelian[-4:-1])
3

Hasil:

print(bulan_pembelian[-4:-1])
4

Output di atas menunjukkan bahwa elemen Melon, Kiwi, dan Anggur terdapat dalam parcel_A tapi tidak terdapat di set parcel_B.

13) .symmetric_difference()

Untuk mengembalikan sebuah set yang berisi symmetric difference dari dua set lainnya. Jika kita asumsikan symmetric difference dari set A dan set B,i setiap elemen dari set A yang tidak terdapat di set B akan digabungkan dengan setiap elemen dari set B yang tidak terdapat di set A. Pada contoh di bawah ini, kita akan menerapkan fitur ini pada parcel_A terhadap parcel_B.

print(bulan_pembelian[-4:-1])
5

Hasil:

print(bulan_pembelian[-4:-1])
6

Dari output di atas, dapat kita lihat bahwa elemen Anggur dan Melon tidak terdapat dalam parcel_B, begitu juga dengan elemen Semangka dan Leci yang tidak terdapat di parcel_A.

· Dictionary Manipulation

Selain dapat memanipulasi data pada data bertipe list, tuple, dan set, kita juga dapat memanipulasi data bertipe dictionary lho. Ada teknik yang bisa kita gunakan untuk memanipulasi tipe data ini. Seperti apa tekniknya? Yuk kita simak penjelasannya di bawah ini.

1) .clear()

Untuk menghapus seluruh elemen dalam sebuah dictionary, sama seperti fitur .clear() pada list dan set. Pada contoh di bawah ini kita akan menghapus elemen-elemen yang ada pada dictionary info_karyawan.

print(bulan_pembelian[-4:-1])
7

Hasil:

print(bulan_pembelian[-4:-1])
8

2) .copy()

Untuk mengembalikan copy dari setiap elemen dalam set. Serupa dengan fitur copy() pada tipe data collections lainnya, fitur copy() ini tidak akan mengubah nilai dari elemen asalnya. Sebagai contoh, kita akan membuat copy-an dari dictionary info_karyawan1, lalu memasukkannya ke variabel info_karyawan2. Selanjutnya, kita akan mengganti value ‘nama’ pada dictionary tersebut menjadi ‘Senja’ dan ‘nik’ menjadi ‘1211056’. Kemudian, kita akan mencetak info_karyawan1 dan info_karyawan2.

print(bulan_pembelian[-4:-1])
9

Hasil:

('September', 'Oktober', 'November')
0

Output di atas menunjukkan bahwa value ‘nama’ dan ‘nik’ pada info_karyawan1 tidak berubah walaupun isi value dari info_karyawan2 ada yang diubah.

3) .keys()

Untuk mengembalikan list dari seluruh kunci akses atau key dari setiap elemen dalam sebuah dictionary. Pada contoh di bawah ini, kita akan mencoba melihat key dari dictionary info_karyawan dengan menggunakan fungsi .keys() ini. Key yang terdapat pada info_karyawan ini terdiri dari ‘nama’, ‘nik’, dan ‘pekerjaan’.

('September', 'Oktober', 'November')
1

Hasil:

('September', 'Oktober', 'November')
2

4) .values()

Untuk mengembalikan list dari seluruh nilai atau value dari setiap elemennya dalam sebuah dictionary. Untuk kode di bawah ini, kita akan mencoba melihat value dari dictionary info_karyawan yang kita gunakan pada fitur sebelumnya. Adapun value yang terdapat dalam dictionary ini adalah ‘Data Analyst’, ‘Aksara’, dan ‘1211011’.

('September', 'Oktober', 'November')
3

Hasil:

('September', 'Oktober', 'November')
4

5) .update()

Untuk menambahkan kunci akses baru (key) dan nilai barunya (value) ke dalam sebuah dictionary. Pada kode berikut, kita akan mencoba menambahkan key ‘skillset’ serta value ‘Python’ dan ‘R’ ke dalam dictionary info_karyawan. Selanjutnya, kita akan mencetak dictionary tersebut.

('September', 'Oktober', 'November')
5

Hasil:

('September', 'Oktober', 'November')
6

Dari ouput tersebut, dapat kita lihat bahwa key dan value yang baru tersebut sudah ditambahkan ke dictionary info_karyawan.

Selain menggunakan fitur-fitur di atas, kita juga dapat menggunakan sebuah fungsi untuk menghitung jumlah data yang tersimpan di setiap elemennya dalam sebuah tuple dan list. Fungsi yang dapat kita gunakan ini adalah fungsi buit-in len(). Untuk lebih jelasnya, yuk kita coba fungsi ini untuk melihat jumlah elemen pada tuple_menu.

('September', 'Oktober', 'November')
7

Hasil yang diperoleh adalah 4, sesuai dengan jumlah dari elemen itu sendiri yang terdiri dari Gado-gado, Ayam Goreng, Rendang, dan Ketoprak.

Hasil:

('Mei', 'Juni', 'Juli', 'Agustus')
1

Selanjutnya, kita akan mencoba fungsi buit-in len ini pada list_menu. Hasil yang diperoleh pun tetaplah sama, yaitu 4.

('September', 'Oktober', 'November')
9

Hasil:

('Mei', 'Juni', 'Juli', 'Agustus')
1

Setelah kita mempelajari teknik-teknik manipulasi data collection, adakah tips atau trik yang dapat kita terapkan dalam memanipulasi tipe data tersebut?

Ternyata ada trik khusus lho yang dapat kita gunakan untuk mengkonversi berbagai tipe data collection tadi. Misalkan, kita akan menggunakan data bertipe list, yaitu list_buah seperti pada contoh berikut.

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

Lalu, kita akan mencoba untuk mengubah data bertipe list tadi menjadi set dengan fungsi set() kemudian memasukkannya ke dalam variabel set_buah.

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

Hasil:

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

Selanjutnya, kita akan mengubah hasil dari konversi tadi menjadi list dengan fungsi list() lalu memasukkannya lagi ke dalam variabel list_buah. Setelah itu, kita akan mengurutkan elemen dalam list ini ke dalam urutan naik.

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

Ternyata sangat simple bukan? Anyway, trik ini akan sangat berguna lho ketika kita ingin mendapatkan seluruh list element yang unik pada bahasa pemrograman Python.

Setelah memahami teknik manipulasi data collection serta tips dan trik dalam memanipulasi data tersebut, yuk saatnya kita mempraktekannnya

Nah, setelah kita memahami bagaimana teknik yang bisa kita gunakan untuk memanipulasi data, kali ini kita akan mempraktekkan bagaimana caranya menggunakan fungsi built-it len serta memadukannya dengan for loops untuk menghitung pengeluaran dan pemasukkan keuangan kita.

Ilustrasi pemasukan dan pengeluaran rutin

Nah, bagi kamu yang suka jajan atau shopping, pernah ngga kamu berpikir, “Selama ini, berapa banyak ya yang sudah aku keluarkan?” Nah, jika kamu pernah berpikir seperti tadi, pastinya kamu berusaha mencari cara yang praktis buat menghitung pengeluaran juga pemasukkannya

Nah, pada praktek kali ini, kita akan mencoba untuk menghiturutin.ng total pengeluaran dan pemasukkan dalam data keuangan milik Mr.X. Supaya lebih mudah menganalisisnya, kita harus merapikan struktur data dari pengeluaran dan pemasukan dalam data bertipe dictionary. Dengan data tipe ini, kita akan memasukkannya ini dengan variabel keuangan, dimana data pengeluaran kita masukkan ke dalam key ‘pengeluaran’ dan data pemasukan kita masukkan ke dalam key ‘pemasukan’. Supaya lebih mudah penghitungannya, data-data yang berformat jutaan ini kita bagi dalam satuan juta, lalu kita masukkan ke dalam list terlebih dahulu.

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

Dari variabel keuangan, kita akan menghitung rata-rata pengeluaran dan pemasukan selama 9 bulan terakhir. Kita akan menggunakan for loops untuk menjumlahkan setiap data yang terdapat dalam key ‘pengeluaran’ dan ‘pemasukan’ sebagai biaya. Total pengeluaran dan pemasukan ini kita nyatakan dalam variabel total_pengeluaran dan total_pemasukan.

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

Lalu, kita akan membagi total_pengeluaran dan total_pemasukan tersebut dengan jumlah elemen data dalam tiap key. Hasil yang diperoleh berupa rata-rata pengeluaran dan pemasukan yang bisa kita lacak dalam kurun waktu 9 bulan terakhir ini.

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

Nah, setelah dilihat, ternyata kondisi keuangan Mr.X ini sehat-sehat saja. Hal tersebut dapat dilihat dari rata-rata pengeluarannya yang jauh lebih sedikit (2.83 juta) dibandingkan dengan rata-rata pemasukkannya (7.9 juta).

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

Setelah kita memahami bagaimana caranya memanipulasi berbagai tipe data pada Python, adakah cara yang dapat digunakan untuk mengolah tipe data string?

Seperti layaknya general-purpose programming language lainnya, bahasa Python juga memungkinkan kita untuk mengolah berbagai berbagai tipe data, termasuk juga tipe data text. Dalam Python ini, tipe data text dapat kita deklarasikan sebagai sebuah string dengan mengapitnya menggunakan tanda kutip satu (‘) ataupun tanda kutip dua (“). Contoh penulisannya bisa kita lihat pada contoh berikut.

Contoh dari penulisan string. String ini bisa kita tulis dengan tanda kutip satu (‘) dan tanda kutip dua (“)

Cara yang kita gunakan di atas adalah dua cara yang valid untuk mendeklarasikan variabel yang bertipe string. Kemudian, untuk mendeklarasikan tipe data string ke dalam beberapa baris, kita dapat melakukannya dengan mengapitnya dengan tanda kutip satu (‘) atau tanda kutip dua (“) sebanyak 6 kali, yaitu 3 di bagian awal dan 3 di bagian akhir dari string. Contoh penggunaan kedua tanda ini dapat kamu perhatikan dalam dua contoh di bawah ini.

Contoh penggunaan tiga tanda kutip satu (‘) pada string

Contoh penggunaan tiga tanda kutip dua (“) pada string

Adakah cara tertentu yang dapat digunakan untuk mengolah data bertipe str ini?

Tentu saja ada cara yag bisa digunakan untuk mengolah tipe data ini. Sebelum memahami lebih lanjut mengenai teknik ini, terlebih dahulu kita harus mengetahui apa itu yang dinamakan dengan string manipulation. String manipulation adalah teknik yang digunakan untuk memanipulasi data yang disimpan dalam tipe data str. Pada bahasa Python, supaya lebih mempermudah dalam proses pengolahan data, tipe data ini dapat diperlakukan layaknya seperti tipe data list

Untuk lebih memahami bagaimana String Manipulation ini bekerja pada Python pertama-tama kita akan mengetikkan variabel nama_produk yang berisi string ‘Sepatu Niko’.

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

Lalu, kita akan mencoba memanipulasinya dengan mengganti huruf ‘p’ pada elemen ‘Sepatu’ serta huruf ‘k’ pada elemen ‘Niko’. Perhatikan bahwa huruf ‘S’ dan e’ masing-masing menempati indeks ke-0 dan ke-1 sementara huruf ‘a’ dan ‘i’ masing-masing menempati indeks ke-3 dan ke-8 pada string tersebut. Output yang dihasilkan adalah SePatu NiKo

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
00

Hasil:

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
01

Lalu, kita akan mencoba mencetak isi dari string tersebut dari indeks paling awal sampai indeks ke-6.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
02

Hasil yang diperoleh adalah SePatu karena indeks ke-6 ditempati oleh spasi.

Hasil:

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
03

Selanjutnya, kita dapat mencoba mencetak isi dari string tersebut dari elemen ke-7 hingga elemen paling akhir.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
04

Output yang dihasilkan adalah NiKo.

Hasil:

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
05

Selain pada tipe data collection, ternyata kita juga bisa menggunakan fungsi built-in len() untuk menentukan jumlah karakter dalam sebuah string. Nah, untuk lebih jelasnya, kita akan mencoba fungsi ini untuk menghitung karakter dari penyusun string nama_produk.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
06

Output yang dihasilkan adalah 11.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
07

Setelah kita mempelajari tentang string Manipulation, sekarang kita akan beralih ke Operator “+”. Operator + yang terletak di antara dua string secara otomatis akan menggabungkan kedua string tersebut. Selain itu, operator ini juga dapat digunakan untuk menambahkan beberapa string secara sekaligus.

Kali ini, kita akan mencoba operator + ini untuk menambahkan isi dari variabel nama_depan dan nama_belakang. Di antara kedua variabel ini, kita akan menyisipkan satu spasi. Spasi ini diwakilkan dengan tanda (‘ ‘).

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
08

Output yang dihasilkan adalah John Doee.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
09

Selanjutnya kita akan mencoba menambahkan variabel umur dan alamat, lalu mecoba membuat kalimat dari variabel-variabel ini. Di sini, kita juga akan menambahkan string ‘Hi, saya’, ‘umur’, ‘tinggal di’, dan ‘.’ supaya susunan kalimat ini menjadi lebih runtut.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
10

Output yang dihasilkan adalah Hi, saya John Doee umur 27 tahun, tinggal di Jl. Anggrek No. 100.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
11

Selain cara-cara di atas, adakah teknik-teknik yang dapat digunakan untuk memanipulasi data bertipe str ini?

Ada banyak teknik yang bisa kita gunakan untuk memanipulasi data bertipe str ini. Dengan teknik tersebut, kita bisa menghilangkan spasi, merubah caps (penggunaan huruf besar/kecil), dan lain-lain. Nah, penasaran kan, seperti apa teknik-teknik tersebut? Yuk pelajari tekniknya dalam uraian di bawah ini.

· Menghilangkan Spasi di Awal dan/atau di Akhir

Sekarang kita akan mempelajari bagaimana caranya menghilangkan kelebihan spasi yang dimiliki di awal dan/atau di akhir variabel string. Untuk memahami bagaimana cara penggunaannya, yuk simak tekniknya di bawah ini.

.

1) .strip()

Untuk menghilangkan kelebihan spasi pada awal dan akhir string. Pada contoh kode di bawah ini, terdapat kelebihan satu spasi di sebelah kiri serta tiga spasi di sebelah kanan pada string dalam variabel kata_sambutan. Kelebihan-kelebihan spasi tersebut akan dihilangkan dengan fitur .strip() ini.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
12

Hasil:

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
13

2) .lstrip()

Untuk menghilangkan kelebihan spasi pada awal string. Sama seperti pada contoh sebelumnya, string pada variabel kata_sambutan ini memiliki kelebihan spasi di sebelah kanan dan kirinya. Setelah dihilangkan spasinya dengan fitur ini, kelebihan 3 spasi pada string ini tidak terlalu nampak karena kelebihan spasi ini terletak di sebelah kanan tanda seru (!).

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
14

Hasil:

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
13

3) .rstrip()

Untuk menghilangkan kelebihan spasi di akhir string. Di sini, kita akan menghilangkan kelebihan spasi dengan fitur .rstrip() ini pada isi dari variabel kata_sambutan. Setelah dicetak variabelnya, terlihat bahwa hanya kelebihan spasi di sebelah kanan saja yang dihilangkan, sementara kelebihan satu spasi di sebelah kiri string ini tidak dihilangkan.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
16

Hasil:

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
13

· Merubah Caps pada String

Selain menghilangkan spasi,kita juga dapat merubah caps, yaitu penggunaan huruf besar dan kecil. Salah satunya yaitu dengan fitur .capitalize() untuk merubah string supaya diawali dengan huruf kapital. Selain .capitalize(), masih banyak fitur-fitur lainnya yang bisa kamu gunakan. Apa sajakah itu? Yuk, simak uraiannya di bawah ini.

1) .capitalize()

Untuk mengubah elemen pertama dari string menjadi huruf kapital. Dalam contoh di bawah ini, kita akan menggunakan isi dari variabel judul_buku sebagai contoh.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
18

Hasil:

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
19

Dari output di atas, terlihat bahwa hanya huruf ‘b’ pada kata belajar saja yang diubah menjadi huruf kapital.

2) .lower()

Untuk mengubah seluruh huruf dalam teks (string) menjadi huruf kecil. Di sini, kita akan menggunakan isi dari variabel judul_buku dimana kata ‘python’ terdiri dari huruf kapital semua. Sementara itu, kata ‘belajar’ dan ‘bahasa’ diawali dengan huruf kapital.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
20

Hasil:

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
21

Semua string dari variabel tersebut akhirnya diubah menjadi huruf kecil tanpa terkecuali.

3) .upper()

Mengubah seluruh huruf dalam teks (string) menjadi huruf besar. Di sini, kita akan menggunakan isi yang sama dengan isi variabel judul_buku pada fitur sebelumnya.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
22

Hasil:

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
23

Sama halnya dengan firu sebelumnya, fitur .upper() ini mengubah semua isi dari variabel judul_buku menjadi huruf besar tanpa terkecuali.

· Pemecahan, Penggabungan, dan Penggantian String

Pada tahapan ini, kita akan belajar bagaimana caranya memecah sebuah string dalam kondisi tertentu sehingga menghasilkan list of string. Lalu, kita akan belajar bagaimana caranya menggabungkan beberapa list of string menjadi sebuah string. Kemudian, di akhir sesi ini,kita akan belajar bagaimana caranya mengganti sub-string tertentu dengan sub-string lainnya.

Penasaran kan, dengan teknik ini? Nah, untuk lebih memahami penggunaan teknik ini, yuk simak uraiannya di bawah ini.

1) .split()

Untuk memecah sebuah string berdasarkan string lainnya ke dalam sebuah list. Pertama-tama, kita akan memecah string pada varabel bilangan berdasarkan string ‘dan’ pada variabel tersebut. String-string tersebut akan dipisahkan menggunakan tanda koma (,) sementara string ‘dan’ dihilangkan.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
24

Hasil:

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
25

Selanjutnya, kita akan memecah elemen dalam variabel bilangan berdasarkan spasi yang memisahkan tiap string yang terdapat dalam variabel tersebut. Elemen-elemen tersebut akan dipisahkan menggunakan tanda koma sebagai ganti dari spasi, sementara string ‘dan’ tidak dihilangkan.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
26

Hasil:

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
27

2) .join()

Untuk menggabungkan sebuah list yang berisikan string berdasarkan sebuah string yang telah didefinisikan. Pada contoh di bawah ini, kita akan memisahkan string ‘Ricky’,’ Peter’, dan ‘Jordan’ dalam variabel karakter dengan menggunakan string ‘dan’ dari variabel pemisah.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
28

Hasil:

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
29

3) .replace()

Untuk menggantikan kemunculan suatu string tertentu dengan string lainnya dalam sebuah string. Dari contoh di bawah ini, kita akan mengganti string ‘apel’ dengan string ‘jeruk’ dalam variabel kalimat.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
30

Hasil:

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
31

· Menentukan Posisi dan Jumlah Sub-string pada String

Pada bagian ini, kita akan mempelajari serta mempraktekkan cara menentukan posisi awal suatu sub-string dan jumlah kemunculan sub-string tersebut pada suatu string. Agar lebih memahami bagaimana penerapannya, yuk baca penjelasannya berikut ini.

1) .find()

Untuk mengembalikan posisi dari sebuah teks (sub-string) lainnya dalam sebuah string. Di sini, kita akan mencari posisi indeks dari string ‘Apel’ dan ‘malang’. Hasilnya menunjukkan bahwa string ‘Apel’ menempati indeks ke 0, sementara itu string ‘malang’ menempati indeks ke 5 pada variabel teks.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
32

Hasil:

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
33

2) .count()

Untuk menghitung jumlah kemunculan sebuah teks (string) lainnya dalam sebuah string Perlu diingat bahwa string yang dicari ini bersifat case sensitive.

Pada contoh berikut, kita akan menghitung kemuculan string ‘apel’ dalam variabel teks pada fitur sebelumnya.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
34

Hasil:

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
35

· Menentukan String Apakah Diawali/Diakhiri oleh Sub-string

Pada bagian terakhir dari teknik manipulasi string ini, kita akan mempelajari bagaimana caranya menentukan apakah suatu string diawali atau diakhiri dengan sebuah substring (teks) tertentu. Supaya lebih paham caranya, yuk kita sama-sama menyimak tekniknya.

1) .startswith()

Untuk mengembalikan nilai kebenaran True ketika sebuah teks (string) diawali dengan sebuah teks lainnya. Di sini, kita akan menentukan apakah variabel teks diawali dengan string Apel atau apel. Perlu diingat lagi bahwa string Apel dengan string apel tidaklah sama.

Contoh:

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
36

Hasil:

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
37

Output di atas menunjukkan bahwa variabel teks diawali dengan string ‘Apel’ dan bukan oleh string ‘apel’. Sama seperti pada penjelasan sebelumnya, walaupun kedua kata ini adalah kata yang sama, namun string ‘Apel’ diawali dengan huruf kapital, tidak seperti pada string ‘apel’ sehingga dianggap sebagai dua string yang berbeda.

2) .endswith()

Untuk mengembalikan nilai kebenaran True ketika sebuah teks (string) diakhiri dengan sebuah teks lainnya. Pada contoh kali ini, kita akan menggunakan variabel teks sama seperti pada fitur sebelumnya. Kita akan melihat apakah variabel teks diakhiri oleh string ‘lainnya’ atau string ‘apel’.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
38

Hasil:

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
37

Berdasarkan output di atas, diketahui bahwa variabel tersebut ternyata diakhiri oleh string ‘lainnya’ dan bukan dengan string ‘apel’.

Selanjutnya, kita akan menggunakan teknik manipulasi daat bertipe str ini dengan mempraktekkannya pada sebuah list yang berisi judul-judul artikel pada sebuah majalah

ilustrasi penulisan artikel

Bagi kalian yang suka menulis artikel, pastinya kalian membutuhkan referensi yang lebih supaya artikel kalian dapat disajikan secara lengkap dan menarik. Artikel tersebut bisa berjumlah lebih dari satu dan bahkan lebih. Salah satu cara cepat yang dapat digunakan untuk mencari referensi, entah itu buku atau artikel lain yang sesuai dengan topik adalah dengan melihat judulnya. Jika judulnya lebih dari satu, mungkin kalian akan kebingungan untuk mencari judul yang sesuai dengan topik. Untuk itu, supaya kita tidak kebingungan lagi dalam mencari judul, dalam praktek kali ini, kita akan mencoba untuk menghitung jumlah kata ‘jeruk’ dan ‘salak’ dalam setiap judul artikel. Sebelumnya, kita akan tempatkan judul-judul artikel yang sudah kita dapatkan ke dalam variabel judul_artikel.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
40

Lalu, kita padukan for loops dengan fungsi .count() untuk menghitung jumlah kata ‘jeruk’ dan ‘salak’ tadi sebagai judul untuk masing-masing elemen dalam judul_artikel. Tiap kemunculannya akan dihitung dalam satu kata.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
41

Dari ouput tersebut, diperoleh jumlah kata ‘jeruk’ sebanyak 10 dan ‘salak’ sebanyak 11 kata.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
42

Selain menghitung jumlah kata yang terdapat dalam judul, kita juga dapat menghitung jumlah kata dalam judul-judul artikel tersebut yang bermuatan positif. Hal tersebut penting untuk diketahui, apalagi jika kita berusaha untuk mencari artikel yang tepat untuk referensi yang akan kita gunakan. Nah, dalam praktek kali ini, kita akan menghitung jumlah kata bermuatan positif yang terdapat dalam judul artikel. Sebagai bahan penghitungan tersebut, kita akan memasukkan kata-kata yang bermuatan positif, seperti ‘Kaya’, ‘Baik’, ‘Mencegah’, dan ‘Memperkuat’ ke dalam list kata_positif.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
43

lalu, kita gunakan list tersebut untuk menghitung kata-kata tersebut untuk judul tiap varian buah (salak dan jeruk). Untuk tiap elemen judul dalam judul_artikel, kita akan menghitung kata ‘jeruk’ dan kata ‘salak’. Begitu juga untuk tiap elemen kata dalam kata_positif, kita juga akan menghitung kata bermuatan positif yang kita butuhkan dan memasukkan kedua penghitungan tersebut dalam satu variabel, yaitu kata_positif_salak dan kata_positif_jeruk.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
44

Dari output di bawah ini, diperoleh jumlah kata positif jeruk sebanyak 8 kata dan kata positif salak sebanyak 9 kata.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
45

Selain menggunakan teknik-teknik di atas, kita juga dapat membuat functions sendiri. Btw, apakah functions itu?

Function adalah sebuah blok statemen yang bisa dijalankan hanya pada saat fungsi tersebut dipanggil. Hmmm… ternyata, tanpa kita sadari, kita telah mencoba menggunakan fungsi-fungsi dalam bahasa pemrograman Python lho dalam pembahasan kita selama ini.

Contoh fungsi yang umumnya biasa kita gunakan adalah fungsi len() yang digunakan untuk mengukur jumlah elemen dalam sebuah list serta fungsi print() untuk menampilkan pesan pada layar konsol. Selain fungsi-fungsi tadi, Python ternyata juga memungkinkan kita untuk mendeklarasikan fungsi dalam sebuah kode yang dikenal sebagai user defined function. Apakah user defined function ini? User defined function adalah fungsi yang …. Untuk lebih jelasnya, perhatikan syntax berikut yang berfungsi untuk membangun function tersebut.

def nama_fungsi(argument):
statement_1

statement_n
return returned_value

Dari syntax tersebut, terdapat sejumlah komponen penting yang membangun function tersebut, yaitu:

1. nama_fungsi adalah nama untuk fungsi yang definisikan serta memiliki aturan seperti layaknya penamaan variabel. Untuk aturan penamaan variabel ini, bisa kamu lihat penjelasannya pada Python for Data Professional Beginner — Part 1.

2. argument adalah variabel masukan yang digunakan dalam fungsi itu sendiri, bisa tanpa variabel, satu variabel atau bahkan lebih.

3. statement_1 … statement_n adalah algoritma yang telah ditransfer dalam bahasa Python yang merupakan inti dari fungsi itu sendiri. Seluruh statement ini bentuknya menjorok (indent) ke dalam seperti yang pernah dipelajari sebelumnya pada conditioning dan looping

4. return_value adalah variabel output yang dihasilkan dari fungsi tersebut, bisa tanpa variabel, satu variabel atau lebih.

Pada kode di bawah ini, kita akan mencoba untuk mendeklarasikan fungsi yaitu contoh_fungsi. contoh_fungsi ini merupakan nama dari fungsi itu sendiri, sementara statemen-statemen yang berisi perintah print ini adalah isi (body) dari fungsi tersebut.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
46

Ketika kita memanggil fungsi tersebut dengan mengetikkan contoh_fungsi(), fungsi ini akan menjalankan perintah print, yaitu string ‘Halo Dunia’ dan ‘Aku sedang belajar bahasa Python’ pada layar konsol.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
47

Hasil:

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
48

Seperti yang sudah kita bahas tadi, sebuah fungsi juga dapat menerima serangkaian argumen pada bagian dalam kurung setelah nama fungsi tersebut didefinisikan. Pada contoh berikut ini, kita akan membuat fungsi_dengan_argumen, dimana fungsi ini membutuhkan dua argumen , yaitu ‘nama_depan’ dan ‘nama_belakang’. Dalam hal ini, Python akan menjalankan fungsi tersebut hanya ketika kita telah mensuplai jumlah argumen yang sesuai dengan fungsi tersebut.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
49

Setelah itu, kita akan mensuplai argumen dalam fungsi tersebut, yaitu ‘John’ untuk argumen ‘nama_depan’ dan ‘Doe’ untuk argumen ‘nama_belakang’.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
50

Hasil:

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
51

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

Contoh berikut ini adalah contoh dari pesan error yang akan dikembalikan oleh Python saat hanya mensuplai satu argumen saja untuk fungsi_dengan_argumen,

Supaya argumen tersebut bersifat opsional, kita bisa menambahkan sebuah nilai default pada argumen tersebut. Untuk lebih jelasnya, perhatikan contoh kode berikut. Di sini, kita akan menambahkan nilai default berupa spasi pada argumen nama_belakang.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
52

Karena argumen nama_belakang ini menjadi opsional, maka saat fungsi ini dipanggil, jika argumen nama_belakang tidak disuplai, Python akan secara otomatis menset argumen tersebut menjadi string kosong alias empty string (“”).

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
53

Potongan kode tersebut akhirnya berhasil dijalankan sehingga menghasilkan output John.

Hasil:

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
54

Masih dengan fungsi dengan nilai default tersebut, ketika kita mensuplai ‘John’ untuk argumen ‘nama_depan’ dan ‘Doe’ untuk ‘nama_belakang’, hasilnya tetaplah sama, yaitu John Doe.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
50

Hasil:

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
51

Setelah mengetahui cara membuat functions tadi, selanjutnya bagaimana kita mempraktekkannya?

Nah, berbekal pemahaman kita soal functions tadi, kita bisa melakukan penghitungan terhadap nilai rata-rata dan standar deviasi dari 2 buah list data. Supaya kita lebih paham bagaimana cara penerapannya, yuk simak prakteknya di bawah ini.

Pada praktek kali ini kita akan menghitung rata-rata dan standar deviasi dari 2 data yang bertipe int. Data tersebut masing-masing kita ringkas dalam list data1 dan data2.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
57

Selanjutnya, kita akan membuat fungsi hitung_rata_rata dengan data sebagai parameternya. Dengan for loops, kita akan menghitung total jumlah elemen data sebagai item, lalu memasukkannya ke variabel jumlah. Selanjutnya, variabel jumlah yang berisi total jumlah data ini akan dibagi dengan jumlah data tersebut dengan banyaknya elemen dari data. Banyaknya elemen data ini dihitung dengan fungsi bulit-in len. Lalu, kembalikan nilai rata_rata pada fungsi tersebut.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
58

Selanjutnya, kita akan menerapkan fungsi tersebut untuk menghitung nilai rata-rata pada data1 dan data2. Tempatkan variabel data1 dan data2 yang sudah kita buat tadi sebagai parameternya.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
59

Dari output yang kita dapat ini, diperoleh nilai rata-rata data1 sebanyak 105.0 dan rata-rata data2 sebanyak 73.0.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
60

Setelah menghitung nilai rata-rata, kita akan lanjut dengan menghitung standar deviasi dari kedua data tersebut dengan fungsi hitung_standar_deviasi yang akan kita buat. Adapun rumus dari standar deviasi itu dapat dilihat pada gambar di bawah ini.

Dengan menggunakan fungsi hitung_rata_rata yang telah kita buat tadi, kita akan memasukkan fungsi tersebut berikut parameter datanya ke variabel rata_rata_data. Kita akan menset nilai varians ini menjadi 0.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
61

Lalu, kita akan mengambil tiap elemen data ini sebagai item, lalu kita kurangkan nlai item dengan rata_rata_data yang sudah kita definisikan tadi, kemudian kita pangkatkan 2 dan memasukkannya ke variabel varians. Selanjutnya, kita bagi variabel varians ini dengan banyaknya data yang dihitung dengan fungsi built-in len, lalu menarik akar kuadratnya dan memasukkannya ke variabel standar_deviasi. Jannngan lupa kembalikan nilai dari standar_deviasi nya teman-teman.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
62

Kemudian, kita terapkan fungsi yang sudah kita buat tadi untuk menghitung nilai standar deviasi dari kedua data tadi. Simple, bukan?

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
63

Ilustrasi properti rumah

Selain untuk menghitung data tadi, kita juga dapat menggunakan kedua fungsi yang sudah kita buat tadi untuk menghitung data lainnya, seperti data properti yang akan kita gunakan pada praktek di bawah ini. Nah, kali ini, kita akan mencoba untuk menghitung rata-rata dan standar deviasi untuk data pada tiap kolom dari tabel di bawah ini.

Tabel Harga Properti yang akan digunakan

Supaya lebih mudah mengoperasikannya, kita masukkan data-data ini ke dalam dictionary tabel_properti yang berisi key ‘luas_tanah’, ‘luas_bangunan’, ‘jarak’, dan ‘harga’. Data yang ada di tiap kolom ini kita masukkan sebagai value dalam sebuah list untuk tiap key-nya.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
64

Kemudian, kita akan membuat fungsi deskripsi_properti untuk mendefinisikan setiap key dalam dictionary tersebut untuk dihitung nilai rata-rata dan standar deviasinya. Supaya bisa diterapkan untuk semua key dalam tabel_properti, kita akan menggunakan for loops dalam fungsi ini. Jangan lupa, gunakan fungsi hitung_rata_rata dan hitung_standar_deviasi

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
65

Lalu, kita akan menggunakan fungsi yang baru kita buat tadi untuk menghitung nilai rata-rata dan standar deviasi dari data dalam tabel_properti.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
66

Nah, hanya dengan mendefinisikan satu fungsi saja, ternyata kita sudah bisa menghitung rata-rata dan standar deviasi untuk setiap kolom lho. Keren, kan?

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
67

Pada bahasa pemrograman selain Python, kita dapat mengolah berkas teks yang kita inginkan. Apakah hal tersebut juga berlaku pada Python?

Tentu saja. Bahkan, yang menjadi kelebihan dari Python ini adalah pengolahan berkas teksnya yang tidak membutuhkan proses import dependencies lainnya seperti pada bahasa-bahasa pemrograman lainnya.

Nah, untuk memanipulasi berkas teks ini, mula-mula kita harus membuka atau membuat berkas teks yang diinginkan dengan menggunakan fungsi open(). Fungsi ini menerima 2 parameter, di mana parameter pertama merupakan nama dari file yang ingin dibuka tersebut, sementara parameter yang kedua merupakan mode yang berkaitan dengan aksi yang ingin dilakukan terhadap file tersebut yang telah dibuka. Sebagai contoh, ketika kita membuka file menggunakan kode di bawah ini

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
68

Kita menggunakan argumen berupa ‘hello.txt’ dan ‘r ’. Argumen ‘hello.txt’ merupakan file yang akan kita buka atau kita buat, sementara itu argumen ‘r’ adalah mode yang kita gunakan, yaitu “read” dimana kita tidak bisa menambahkan atau menuliskan ulang isi dari tulisan pada file teks tersebut.

Untuk menutup file tersebut, kita menggunakan perintah .close() seperti pada kode berikut.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
69

Selain mode “r”, terdapat juga mode lainnya yang bisa kita gunakan, seperti:

1. w: write, mode ini dapat digunakan untuk menulis ke dalam sebuah berkas teks. Jika berkas ini belum tersedia,secara otomatis Python akan membuat sebuah berkas baru dengan nama yang telah di spesifikasikan. Saat menulis dengan menggunakan mode ini, jika file tersebut tidak kosong, maka isi yang sebelumnya terdapat di dalam berkas akan terhapus.

2. a: append, mode ini dapat di gunakan untuk menambah isi dari sebuah berkas teks. Mode ini juga akan membuat sebuah berkas teks baru dengan nama yang telah kita spesifikasikan jika berkas teks tersebut belum tersedia.

3. w+: write+, mode ini dapat digunakan untuk membaca atau menulis isi dari sebuah berkas teks.

4. a+: append+, mode ini dapat digunakan untuk membaca atau menambahkan isi dari sebuah berkas teks.

· Membaca Berkas Teks

Setelah mempelajari bagaimana membuka atau membuat sebuah berkas teks, kali ini akan mempraktekkan secara langsung bagaimana caranya membaca isi dari sebuah berkas teks. Kita akan mengasumsikan baris di bawah ini merupakan isi dari file ‘hello.txt’

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
70

Lalu, kita akan membuka file tersebut dengan fungsi open() serta membacanya dengan fungsi .read(). File yang telah dibaca tersebut selanjutnya dimasukan ke dalam variabel content.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
71

Setelah membaca file tersebut, kita akan menutup berkas tadi dengan fungsi .close().

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
69

setelah kita menutup file tersebut, tidak terdapat output berupa isi dari ‘hello.txt’ pada konsol karena kita hanya melakukan proses membuka, membaca, serta menutup teks tersebut. Hal tersebut pastinya membuat penasaran, apalagi jika kita tidak mengetahui isi teksnya, kan? Oleh karena itu, untuk mengetahui isi dari berkas tersebut, kita akan mencetak variabel content yang sudah kita buat tadi dengan fungsi print().

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
73

Hasil:

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
70

Selain dengan fungsi read(), kita juga dapat menggunakan fungsi readline() ataupun readlines() untuk membaca isi dari suatu berkas teks. Bedanya fungsi readline() dengan readlines(), kita dapat membaca konten dari sebuah berkas secara baris per baris dengan readline(), sedangkan fungsi readlines() digunakan untuk membaca setiap baris berkas teks dalam sebuah list. Untuk lebih jelasnya, kita akan membaca baris pertama dan baris kedua dari berkas ‘hello.txt’ tadi dengan readline. Baris pertama diwakili oleh variabel first_line dan baris kedua diwakili oleh variabel second_line.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
75

Sama seperti pada fungsi .read, untuk menampilkan output dari tiap baris tersebut kita perlu mencetaknya dengan fungsi print().

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
76

Hasil:

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
77

Dengan fungsi .readlines(), kita dapat membaca file tersebut secara langsung dalam sebuah list.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
78

Hasil:

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
79

Selain menggunakan fungsi-fungsi standar tadi, kita juga dapat membaca isi dari sebuah file secara baris per baris dengan menggunakan for loops. Nah, seperti pada contoh sebelumnya, kita akan membaaca isi dari file ‘hello.txt’ dengan for loops.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
80

Perintah ‘for line in line’ berarti untuk setiap barisnya (line) dari file tersebut akan ditampilkan outputnya dengan fungsi print().

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
70

· Menulis Berkas Teks

Untuk menulis isi dari sebuah berkas, kita dapat menggunakan fungsi write() dan writelines(). Sebelum lanjutempraktekkan kedua fungsi ini, penting untuk diingat bahwa mode yang kita gunakan pada fungsi open() akan mempengaruhi bagaimana cara Python menuliskan isidari berkas tersebut. Sebagai contoh, jika kita menggunakan mode “w”, Python akan menghapus seluruh isi dalam berkas sebelum menuliskan konten yang aku spesifikasikan.

Ok, pada praktek kali ini, kita akan mengasumsikan isi berkas ‘hello.txt’ seperti pada contoh berikut.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
70

Pertama-tama, kita akan membuka file tersebut dengan mode “w”.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
83

Lalu, kita akan menulis ulang file tersebut baris per baris dengan fungsi .write() ini.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
84

Setelah itu, kita akan mencoba membaca file tersebut dengan fungsi .readlines().

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
85

Hasil:

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
86

Berbeda dengan mode “w” ketika kita menulis berkas teks dengan mode “a”, Python tidak akan menghapus isi dalam berkas tersebut dan hanya akan menambahkan saja. Sebagai contoh, jika kita asumsikan isi dari ‘hello.txt’ seperti ini:

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
70

Lalu kita gunakan mode “a” untuk membuka file tersebut.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
88

Kemudian, kita menulis dengan menggunakan writelines(). Perlu diingat bahwa fungsi .writelines() ini dapat digunakan untuk menulis semua baris dari berkas tersebut dalam sebuah list.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
89

Kemudian, kita baca isinya dengan .readlines()

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
85

Hasilnya menunjukkan bahwa isi dari berkas semula tidak dihapus dan hanya ditambahi saja di bagian akhir teks.

Hasil:

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
91

Pada pemrograman Python, selain dapat mengolah data yang bertipe teks dan string, apakah pemrograman Python ini juga dapat mengolah data berupa angka?

Tentu saja bisa. Untuk mengolah data berupa angka dalam Python, kita cukup mengimport library math pada layar code editor. Perlu untuk diketahui bahwa library math ini adalah library yang biasa digunakan untuk melakuakn penghitungan secara matematis. Nah, syntax yang digunakan untuk mengimport library ini dapat dilihat pada kode berikut.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
92

· Fungsi dalam Library Matematika

Di dalam library math ini, kita akan mempelajari berbagai fungsi. Fungsi-fungsi tersebut berguna sekali peranannya dalam melakukan pembulatan terhadap bilangan dalam variabel tertentu. Selain itu, dengan fungsi-fungsi ini kita juga dapat melakukan penghitungan logaritma lho. Penasaran kan, seperti apa tekniknya? Yuk kita sama-sama mempelajarinya dalam uraian di bawah ini.

1) math.ceil()

Untuk menerima input berupa bilangan dan mengembalikan pembulatan ke atas untuk bilangan input. Pada contoh di bawah ini, kita akan menggunakan fitur ini untuk membulatkan isi dari variabel x dan y. Isi dari variabel x (10.32) akan dibulatkan ke atas menjadi 11, sedangkan isi variabel y (13.87) akan dibulatkan menjadi 14.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
93

Hasil:

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
94

2) math.floor()

Untuk menerima input berupa bilangan dan mengembalikan hasil pembulatan ke bawah untuk bilangan input. Nah, pada kode di bawah ini, kita tetap menggunakan variabel x dan y seperti pada fitur sebelumnya. Kita akan membulatkan variabel x dan y ini ke bawah dengan math.floor().

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
95

Hasil:

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
96

Dari output di atas, terlihat bahwa isi dari variabel x (10.32) dibulatkan ke bawah menjadi 10, sedangkan isi variabel y (13.87) dibulatkan menjadi 13.

3) math.fabs()

Untuk menerima input berupa bilangan dan mengembalikan hasil absolut dari bilangan tersebut. Absolut di sini yaitu bentuk mutlak dari bilangan tersebut (jadi tidak dalam bentuk postif ataupun negatif, tetapi bentuk dasar dari bilangan tersebut). Pada cotoh di bawah ini, kita akan menggunakan isi dari 2 variabel yang saling berlawanan, yaitu variabel x (10.32) yang bernilai positif dan variabel y (13.87) yang bernilai negatif.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
97

Lalu, kita akan mencari nilai absolut dari bilangan dalam kedua variabel ini.

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
98

Hasil:

pertengahan_tahun = bulan_pembelian[4:8]print(pertengahan_tahun)
99

Output yang diperoleh d atas adalah bentuk absolut yang bukan merupakan bilangan positif ataupun negatif.

4) math.factorial()

Untuk menerima input berupa bilangan serta mengembalikan hasil faktorial dari bilangan tersebut. Dari kode di bawah ini, kita akan mencari nilai faktorial dari 5. Hasil faktorial yang akan diperoleh adalah 120.

('Mei', 'Juni', 'Juli', 'Agustus')
00

Hasil:

('Mei', 'Juni', 'Juli', 'Agustus')
01

5) math.fsum()

Untuk menerima input berupa tipe data collection, yaitu tuple, list, dan sebagainya. Fotur ini akan mengembalikan hasil penjumlahan dari setiap elemen yang ada dalam tipe data tersebut. Nah, pada contoh kali ini, kita akan menjumlahkan elemen 1, 2, 3, 4, 5, 6, -6, -5, -4 dalam list x. Total hasil penjumlahan elemen-elemen ini adalah 6.

('Mei', 'Juni', 'Juli', 'Agustus')
02

Hasil:

('Mei', 'Juni', 'Juli', 'Agustus')
03

6) math.log()

Untuk menerima input berupa dua buah bilangan , yaitu x dan y serta mengembalikan sebuah bilangan, yaitu z. Di sini, kita mengasumsikan z sebagai hasil dari log basis y terhadap x . Dengan kata lain, x di sini merupakan hasil pemangkatan dari z terhadap y. Untuk lebih jelasnya, di sini kita akan mencari log basis dari 3 terhadap 81. Hasilnya adalah 4 karena bilangan 81 ini adalah hasil pemangkatan dari bilangan 3 oleh 4.

('Mei', 'Juni', 'Juli', 'Agustus')
04

Hasil:

('Mei', 'Juni', 'Juli', 'Agustus')
05

Supaya lebih paham lagi, kita juga akan mencoba mencari log basis dari 10 terhadap 1000. Hasil yang diperoleh adalah 3 karena bilangan 1000 ini adalah hasil pemangkatan dari 10 oleh 3.

('Mei', 'Juni', 'Juli', 'Agustus')
06

Hasil:

('Mei', 'Juni', 'Juli', 'Agustus')
07

7) math.sqrt()

Untuk menerima input berupa sebuah bilangan dan mengembalikan hasil dari akar pangkat dua atau akar kuadrat dari bilangan tersebut. Untuk lebih jelasnya, dalam contoh berikut kita akan mencoba mencari nilai akar kuadrat dari 100 dengan fitur ini. Hasil yang diperoleh adalah 10.

('Mei', 'Juni', 'Juli', 'Agustus')
08

Hasil:

('Mei', 'Juni', 'Juli', 'Agustus')
09

Selanjutnya, kita akan mencari nilai akar kuadrat dari 2 dengan menggunakan fitur math.sqrt() ini. Hasil yang diperoleh adalah 1.41.

('Mei', 'Juni', 'Juli', 'Agustus')
10

Hasil:

('Mei', 'Juni', 'Juli', 'Agustus')
11

8) math.copysign()

Untuk menerima input berupa dua buah bilangan serta mengembalikan bilangan pertama dari kedua bilangan tersebut yang dikalikan dengan tanda dari bilangan kedua. Untuk lebih jelasnya, dalam contoh kali ini kita akan menggunakan fitur ini terhadap isi dari variabel x, y, dan z.

('Mei', 'Juni', 'Juli', 'Agustus')
12

Lalu, kita akan mecoba menggunakan fitur ini pada x terhadap z. Di sini, isi dari variabel x adalah 10.32 sedangkan variabel z berisi -15.

('Mei', 'Juni', 'Juli', 'Agustus')
13

Hasil:

('Mei', 'Juni', 'Juli', 'Agustus')
14

Hasil yang diperoleh adalah -10.32. Bilangan 10.32 ini diperoleh dari variabel x. Sementara itu, tanda negatif (-) diperoleh dari tanda negatif pada isi dari variabel z, yaitu -15.

Untuk lebih jelasnya lagi, kita akan mecoba menggunakan fitur ini lagi pada y terhadap z.

('Mei', 'Juni', 'Juli', 'Agustus')
15

Hasil:

('Mei', 'Juni', 'Juli', 'Agustus')
16

Hasil yang diperoleh tetaplah bernilai negatif karena yang diambil adalah tanda dari bilangan kedua, yang dalam hal ini adalah bilangan dari variabel z. Sementara itu, sama seperti pada contoh sebelumnya, bilangan 13.87 diperoleh dari bilangan pada variabel y.

Ok. Sekarang, setelah memahami semua teknik manipulasi data yang telah kita bahas tadi, yuk saatnya membuat mini project

Pada mini project kali ini, kita akan ditantang untuk memprediksi harga rumah di Tangerang berdasarkan luas tanah, luas bangunan serta kedekatan lokasinya dengan pusat kota.

Data yang digunakan tersedia dalam format teks yang harus dibaca terlebih dahulu dan dirubah ke dalam list of dict. Nah, data dalam bentuk list of dict inilah yang akan digunakan untuk memprediksi harga rumah di Tangerang.

Ilustrasi harga rumah. Dapatkah kamu menentukan harga rumah dengan membuat prediksinya?

Dalam mini project ini, kita akan memprediksi harga rumah ini berdasarkan kemiripan atribut dari data yang sudah ada. Sebelum menggunakan data ini, kita tempatkan data tersebut ke dalam file harga_rumah.txt seperti berikut ini:

Data harga_rumah.txt yang akan kita gunakan

1) Langkah 1

Ok, langkah pertama yang akan kita lakukan adalah membaca file harga_rumah.txt , lalu merepresentasikan setiap datanya ke dalam tipe dictionary. dan menampung keseluruhan data dalam sebuah list bernama harga_rumah. Terlebih dahulu, kita akan membaca data harga_rumah.txt dengan mode “r”. Supaya lebih mudah, kita akan membacanya dengan fungsi .readlines()

('Mei', 'Juni', 'Juli', 'Agustus')
17

Lalu, kita akan mengganti newline (\n) dengan spasi dalam data_harga_rumah tersebut pada baris ke 0 (baris pertama), lalu mengubah menjadi list dengan fungsi .split() dan menampungnya dalam variabel key_harga_rumah. Sebelum menampung isi data_harga_rumah ke dalam list, terlebih dahulu kita buat list kosong dalam variabel harga_rumah.

('Mei', 'Juni', 'Juli', 'Agustus')
18

Lalu, kita nyatakan baris ke-1hingga baris terakhir sebagai variabel baris dalam for loops. Lalu, variabel baris ini kita ganti newlinenya (\n) dengan spasi, lalu mengubahnya menjadi list dengan fungsi .split(). Selanjutnya, kita masukkan fungsi dict() ke dalam variabel dict_harga_rumah.

('Mei', 'Juni', 'Juli', 'Agustus')
19

Kemudian, kita gunakan for loops untuk representasikan nilai i untuk nilai tiap baris dalam list baris_harga_rumah. Lalu, kita nyatakan dict_harga_rumah sebagai variabel yang akan menampung baris_harga_rumah untuk semua baris data yang ada di dalam baris_harga_rumah. Dengan fungsi .append(), kita akan menambahkan seluruh isi elemen dalam dict_harga_rumah ke dalam variabel harga_rumah.

('Mei', 'Juni', 'Juli', 'Agustus')
20

2) Langkah 2

Pada langkah ini, kita akan membuat sebuah fungsi bernama get_all_specified_attribute yang menerima parameter list_of_dictionary yang bertipe list dan berisi sekumpulan tipe data dictionary serta specified_key yang bertipe string. Fungsi ini akan mengembalikan sebuah list, yaitu list_attributes yang berisi seluruh atribut dengan kunci (key) yang dideklarasikan dalam variabel specified_key.

('Mei', 'Juni', 'Juli', 'Agustus')
21

3) Langkah 3

Setelah berhasil membuat fungsi tersebut, kita juga perlu membuat fungsi min_value yang berfungsi menerima parameter list_attributes yang kita buat pada Langkah 2 serta mengembalikan nilai terkecil dalam list tersebut. Di sini, kita asumsikan nilai terkecilnya adalah 9999 dalam variabel min_attribute. list_attribute ini kita nyatakan sebagai attr. Jika nilai attr ini lebih kecil dari min_atrribute, maka fungsi min_value ini akan mengembalikan nilai attr tersebut sebagai min_atrribute.

('Mei', 'Juni', 'Juli', 'Agustus')
22

Selain itu, kita juga akan membuat fungsi max_value yang berfungsi menerima parameter list_attribute serta mengembalikan nilai terbesar dalam list_attributes. Kita asumsikan nilai terbesar ini adalah -9999 dalam variabel max_atrribute. Hampir sama seperti pada fungsi min_value, jika nilai attr ini lebih besar dari max_attribute, maka fungsi ini akan mengembalikan nilai attr sebagai max_attribute.

('Mei', 'Juni', 'Juli', 'Agustus')
23

4) Langkah 4

Langkah berikutnya, kita akan 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. Parameter attr ini adalah parameter yang telah kita buat pada Langkah 3.

('Mei', 'Juni', 'Juli', 'Agustus')
24

5) Langkah 5

Kemudian, kita akan membuat fungsi baru yaitu data_transformation yang menerima parameter list_of_dictionary, yaitu sebuah list yang berisikan tipe data dictionary serta list_attribute_names, yaitu sebuah list yang berisikan tipe data string. Fungsi ini akan digunakan untuk mengembalikan hasil transformasi data dari list_of_dictionary berdasarkan list_attribute_names yang telah dispesifikasikan. Perlu untuk diingat bahwa parameter list_of_dictionary ini adalah parameter yang kita buat pada Langkah 2. Sebelumnya, kita akan terlebih dahulu membuat variabel atrr_info.

('Mei', 'Juni', 'Juli', 'Agustus')
25

Lalu, kita akan menyatakan tiap elemen dalam list_attribute_names ini sebagai variabel attr_name. Selanjutnya, kita akan memasukkan fungsi get_all_specified_attributes (dari Langkah 2)ke dalam variabel specified_attributes. Variabel specified_attributes inilah yang akan kita gunakan sebagai parameter max_value dan min_value (dari Langkah 3). Masing-masing dari fungsi tersebut akan kita masukkan dalam variabel max_attr dan min_attr. Kemudian, variabel max_attr dan min_attr kita nyatakan sebagai value dalam dictionary attr_info dengan attr_name sebagai key nya, dimana key dari max_attr adalah ‘max’ dan key ‘min’ untuk min_attr.

('Mei', 'Juni', 'Juli', 'Agustus')
26

6) Langkah 6

Dari data baru dan attr_info yang telah kita dapatkan pada Langkah 5, kita akan membuat fungsi transform_data yang menerima parameter data dan attr_info yang kita buat pada Langkah 5 untuk mengembalikan nilai atribut dari data baru yang telah ditransformasikan.

('Mei', 'Juni', 'Juli', 'Agustus')
27

7) Langkah 7

Setelah itu, kita akan membuat sistem prediksi harga berdasarkan nilai kemiripan dari atribut. Untuk melakukannya, kita perlu membuat fungsi abs_value untuk mengembalikan nilai negatif dan nilai positif.

('Mei', 'Juni', 'Juli', 'Agustus')
28

Selanjutnya, kita akan membuat fungsi price_based_on_similarity untuk menghitung prediksi harga rumah. Kita akan menyatakan variabel list_of_data sebagai data_point, lalu kita akan menggunakan fungsi abs_value untuk menghitung selisih antara nilai dalam variabel data dengan variabel data untuk atribut key ‘tanah’, ‘bangunan’, dan ‘jarak_ke_pusat’. Selisih nilai-nilai ini selanjutnya kita masukkan ke variabel perbedaan.

('Mei', 'Juni', 'Juli', 'Agustus')
29

Jika nilai dalam variabel perbedaan lebih kecil dari nilai pada variabel perbedaan_terkecil (999), kita akan mengembalikan nilai dari key ‘harga’ dalam data_point ke dalam prediksi_harga. Sementara itu, nilai perbedaan akan dikembalikan sebagai nilai perbedaan_terkecil.

('Mei', 'Juni', 'Juli', 'Agustus')
30

8) Langkah 8

Langkah terakhir yang akan kita lakukan yaitu menggunakan semua fungsi yang telah kita definisikan dari Langkah 1 sampai dengan Langkah 7 untuk menghitung harga rumah .

Dengan fungsi tadi, kita dapat menghitung prediksi harga rumah dengan data baru mengenai luas tanah, bangunan, serta jaraknya ke pusat. Misalkan, kita akan menghitung pprediksi harga rumah dengan luas tanah 110 m2, luas bangunan 80 m2, serta jaraknya ke pusat sejauh 35 km. Kita akan memasukkan datanya dalam dictionary data seperti pada kode berikut.

Sebelumnya, harga rumah ini akan ditransformasi dulu dalam variabel harga_rumah berikut dengan atributnya, yaitu attr_info.

('Mei', 'Juni', 'Juli', 'Agustus')
31

Cara menghitung prediksi harga rumah tersebut yaitu dengan mentransformasikan data tersebut dengan dengan menggunakan attr_info yang telah diperoleh, lalu menyimpannya kembali ke variabel data.

('Mei', 'Juni', 'Juli', 'Agustus')
32

Lalu, kita akan hitung prediksi harganya dengan fungsi price_based_on_similarity.

('Mei', 'Juni', 'Juli', 'Agustus')
33

Dari output yang kita peroleh di bawah ini, kita mendapati bahwa nilai dari prediksi harga rumah tersebut adalah 1200.

('Mei', 'Juni', 'Juli', 'Agustus')
34

Dari pembahasan kita tadi, kita dapat menyimpulkan bahwa banyak sekali kegunaan dari teknik manipulasi berbagai tipe data, function, serta manipulasi berkas dalam Python, entah itu untuk menghitung data keuangan pribadi, data dari sebuah perusahaan, dan bahkan bisa digunakan untuk memprediksi harga properti berdasarkan variabel-variabel data yang diperoleh. Teknik-teknik tersebut tersebut tentunya penting sekali peranannya dalam kehidupan kita sehari-hari, mengingat banyaknya data yang terus bertambah dari waktu ke waktu. Dengan menggunakan function seperti pada mini project yang kita lakukan tadi, kita tidak perlu lagi memulai proses penghitungan dari awal terhadap data baru.

Ok, teman-teman, sekian dulu pembahasan kita kali ini. Mohon maaf apabila ada kekurangan ataupun kesalahan dalam menjelaskan materi ini. Semoga pembahasan kita kali ini bermanfaat bagi kita semua. See you in the next module !