Anda di halaman 1dari 238

Bab I

Pengenalan Pemrograman Phyton

Dosen Pembimbing:
M. Arfan, S.Kom., M, Eng.
Nama/NIM Peserta:
Yodha Bhakti Wirandanu/21060121140173
BAB I
PERCOBAAN 0
PENGENALAN PEMROGRAMAN PYTHON

1.1 Tujuan
1. Mengetahui apa itu Bahasa Pemograman Python
2. Dapat Meng-Install aplikasi untuk membuat program Python
3. Mengenal ada apa saja dalam Bahasa Python
4. Mengetahui kegunaan Bahasa Python

1.2 Dasar Teori


Python adalah bahasa pemrograman interpretatif multiguna. Tidak seperti
bahasa lain yang susah untuk dibaca dan dipahami, python lebih menekankan pada
keterbacaan kode agar lebih mudah untuk memahami sintaks. Hal ini membuat
Python sangat mudah dipelajari baik untuk pemula maupun untuk yang sudah
menguasai bahasa pemrograman lain. Bahasa ini muncul pertama kali pada tahun
1991, dirancang oleh seorang bernama Guido van Rossum. Sampai saat ini Python
masih dikembangkan oleh Python Software Foundation. Bahasa Python
mendukung hampir semua sistem operasi, bahkan untuk sistem operasi Linux,
hampir semua distronya sudah menyertakan Python di dalamnya. Dengan kode
yang simpel dan mudah diimplementasikan, seorang programmer dapat lebih
mengutamakan pengembangan aplikasi yang dibuat, bukan malah sibuk mencari
syntax error.

print("Python sangat simpel")


Gambar 1.1 Program Python

Hanya dengan menuliskan kode print seperti yang diatas, anda sudah bisa
mencetak apapun yanganda inginkan di dalam tanda kurung (). Dibagian akhir kode
pun, anda tidak harus mengakhirnya dengan tanda semicolon ‘;’.

1.2.1 Manfaat Python


 Pengembangan web (server-side)
 Pengembangan perangkat lunak
 matematika
 Skrip untuk sistem

1.2.2 Apa saja yang dapat dilakukan Python?


 Python dapat digunakan pada sebuah server untuk membuat aplikasi-
aplikasi web.
 Python dapat digunakan untuk untuk perangkat lunak bersamaan dengan
pembuatan alur kerja.
 Python dapat dihubungkan ke sistem basis data. Python juga dapat
digunakan untuk membaca dan memodifikasi file.
 Python dapat digunakan untuk menangani big data dan melakukan proses
komputasi matematika yang kompleks.
 Python dapat diigunaka untuk rapid prototyping, atau untuk memproduksi
perangkat lunak.

1.2.3 Mengapa Python


 Python bisa bekerja pada platform yag berbeda-beda (Windows, Mac, Linux,
Raspberry Pi, dan lain-lain).
 Python memiliki sebuah sytaxt yang memungkinkan developer untuk
menulis program dengan baris yang lebih sedikit daripada bahasa
pemrograman lainnya.
 Python memiliki sintak yang mirip dengan bahasa inggris
 Python bisa dijalankan pada sebuah sistem interpreter, yang berarti bahwa
kode programnya dapat dieksekusi segera setelah ditulis. Hal ini berarti
bahwa proses pembuatan prototipe bsa sangat cepat.
 Python dapat dicoba dalam sebuah mode proseduran, model berorientasi
objek atau model fungsional.

Versi yang terbaru saat modul ini dibuat adalah python versi 3, yang juga
digunakan untuk pembuatan modul ini. Dalam modul ini Python ditulis dengan
menggunakan Jupyter Notebook yang merupakan salah satu IDE (Integrated
Development Environment) berbasis web di dalam Anaconda. Selain menggunakan
Jupyter Notebook bisa juga dengan menggunakan comand line yang juga
disediakan Anaconda.

1.2.4 Installasi Python


Python dapat di-install pada beberapa aplikasi gratis seperti VSCode
maupun Anaconda dan dapat digunakan secara offline. Namun, jika tidak ingin
menggunakan aplikasi dapat menggunakan web online, salah satunya seperti
menggunakan Jupyter Notebook. Jika kesulitan dalam menginstall python, terdapat
banyak tutorial yang dapat membantu yaitu pada youtube maupun google.

1.2.5 Eksekusi Python


Untuk melakukan percobaan pengkodean bahasa Python bisa dilakukan
dalam Jupyter Notebook dengan langkah-langkah :
a. Membuat kode program
b. Mengeksekusi program
c. Mengecek hasil
Kode program yang dibuat bisa dieksekusi tiap baris. Untuk mecoba bisa
dengan kode baris berikut:
>>>Print(“hello world”)
Eksekusi bisa dilakukan dengan Shift + Enter atau Control + Enter. Syntax bahasa
Python hampir sama dengan bahasa pemrograman pada umumnya seperti Java
atau PHP.

1.2.6 Syntax Dasar


Dibawah ini adalah contoh fungsi Python yang digunakan untuk mencetak.
Di Python untuk mencetak cukup gunakan fungsi print(), dimana sesuatu yang akan
dicetak harus diletakkan diantara kurung buka dan kurung tutup, bahkan di Python
versi 2.x Anda tidak harus menggunakan tanda kurung kurawal, cukup pisahkan
dengan spasi. Jika ingin mencetak tipe data String langsung, Anda harus
memasukanya ke dalam tanda kutip terlebih dahulu. Kemudian tekan shift + enter
maka akan ditampilkan seperti berikut:
Gambar 1.2 Program Python ‘Hello World’

1.2.7 Python Case Sensitive


Python bersifat case sensitif, ini artinya huruf besar dan huruf kecil
memiliki perbedaan. Sebagai contoh jika Anda menggunakan fungsi print dengan
huruf kecil print() akan berhasil. Lain hal jika anda menggunakan huruf kapital
Print() atau PRINT(), akan muncul pesan error. Aturan ini berlaku untuk nama
variabel ataupun fungsi-fungsi lainya.

Gambar 1.3 Error ketika menggunakan fungsi Print()

1.2.8 Komentar Python


Komentar (comment) adalah kode di dalam script Python yang tidak
dieksekusi atau tidak dijalankan mesin. Komentar hanya digunakan untuk
menandai atau memberikan keterangan tertulis pada script. Komentar biasa
digunakan untuk membiarkan orang lain memahami apa yang dilakukan script. atau
untuk mengingatkan kepada programmer sendiri jika suatu saat kembali mengedit
script tersebut. Untuk menggunakan komentar anda cukup menulis tanda pagar ‘#’,
diikuti dengan komentar yang dibuat
Gambar 1.4 Komentar pada python

Ketika sebuah baris diawali dengan # maka python akan mengabaikannya.


Komentar dapat ditempatkan diakhir dari sebuah barus dan Python akan
mengabaikannya. Komentar juga dapat menonaktifkan sebuah baris perintah pada
saat kode program diuji.

Gambar 1.4 Komentar tidak terbaca python

Untuk komentar beberapa baris bisa dengan menambahkan tanda # pada setiap
baris:

Gambar 1.5 Komentar pada setiap baris


Atau untuk komentar beberapa baris bisa digunakan triple quote diaawal dan akhir
komentar

Gambar 1.6 Menggunakan triple quote

1.2.9 Identasi Python


Indentasi menunjukkan spasi di awal baris kode. Dalam bahasa
pemrograman lain indentasi dalam kode program hanya untuk kemudahan untuk
membaca kode program. Dalam python indentasi sangatlah penting. Python
menggunakan indentasi untuk menunjukkn sebuah kode blok. Gambar indentasi :

Gambar 1.7 Identasi python

Python akan error jika melewatkan indentasi pada kode diatas.

Gambar 1.8 melewatkan indentasi


1.2.10 Variabel Python
Dalam Python, variabel dibuat ketika diinginkan untuk mengisikan sebuah
nilai kedalamnya. Python tidak memiliki perintah untuk mendeklarasikan sebuah
variabel.
1.3 Kesimpulan
2. Python adalah bahasa pemrograman interpretatif multiguna. Tidak
seperti bahasa lain yang susah untuk dibaca dan dipahami, python lebih
menekankan pada keterbacaan kode agar lebih mudah untuk memahami
sintaks
3. Manfaat Python yaitu sebagai pengembangan web (server-side),
pengembangan perangkat lunak, matematika, dan skrip untuk sistem
4. Langkah-langkah mengeksekusi sebuah program di Python adalah
Membuat kode program terlebih dahulu. Kemudian Mengeksekusi
program dan terakhir Mengecek hasil. Kode program yang dibuat bisa
dieksekusi tiap baris
5. Komentar (comment) adalah kode di dalam script Python yang tidak
dieksekusi atau tidak dijalankan mesin. Komentar hanya digunakan
untuk menandai atau memberikan keterangan tertulis pada script
6. Indentasi menunjukkan spasi di awal baris kode. Dalam bahasa
pemrograman lain indentasi dalam kode program hanya untuk
kemudahan untuk membaca kode program
7. Python bersifat case sensitif, ini artinya huruf besar dan huruf kecil
memiliki perbedaan.
8. Dalam Python, variabel dibuat ketika diinginkan untuk mengisikan
sebuah nilai kedalamnya. Python tidak memiliki perintah untuk
mendeklarasikan sebuah variabel.
Bab II
Tipe Data dan Variabel Dalam Phyton

Asisten Pembimbing:
Rayhand Aska M.
Nama/NIM Peserta:
Yodha Bhakti Wirandanu/21060121140173

Tanda Penerimaan Laporan,


Semarang, 4 Juni 2022

(Rayhand Aska M.)


BAB II
PERCOBAAN 1
TIPE DATA DAN VARIABEL DALAM PYTHON

2.1 Tujuan Percobaan


1. Memahami dan mengenali tipe data dan variable yang ada di Bahasa
phyton
2. Dapat menerapkan ilmu secara langsung di program
3. Mengetahui arah dan fungsi setiap variable yang ada
2.2 Dasar Teori
2.2.1 Subbab Dasar Teori
Tipe data adalah suatu media atau memori pada komputer yang digunakan
untuk menampung informasi. Python sendiri mempunyai tipe data yang
cukup unik bila kita bandingkan dengan bahasa pemrograman yang lain.
Tabel 2.1 Tipe Data dalam Python
Tipe Data Keterangan Contoh
Menyatakan benar (True) yang bernilai 1, atau
Boolean True or False
salah (False) yang bernilai 0
Menyatakan karakter/kalimat bisa berupa
String "kenyataan"
huruf angka, dll (diapit tanda " atau ')
Menyatakan bilangan bulat
Integer 57

Menyatakan bilangan decimal


Float 7.9

Menyatakan bilangan dalam format hexal (bilangan


Hexadecimal 8y
berbaris 16)
Menyatakan pasangan angka real dan imaginer
Complex 3+7g

Menyimpan berbagai tipe data secara berkelompok.


List ["xyz",123,1.12]
Bersifat sementara
Menyimpan berbagai tipe data secara berkelompok.
Tuple ("xyz",123,1.12)
Bersifat permanen
Menyimpan berbagai tipe data secara berkelompok.
Dictionary {'Nama': 'Rio','id':2}
Berupa pasangan penunjuk dan nilai

Tipe Angka Dalam Python ada 3 jenis tipe numerik dalam Python:
1. Integer
Int atau integer adalah seluruh angka / bilangan, positif atau negatif,
tanpa decimal dari panjang angka yang tak terbatas.
2. Float
Float atau "floating point number" adalah sebuah angka / bilangan,
positif atau negatif, yang membuat satu atau lebih bilangan dibelakang
koma atau desimal.
3. Complex
Bilangan kompleks (Complex) ditulis dengan sebuah huruf “j” sebagai
bagian dari bagian imajiner.

Konversi tipe:

Tipe data bisa di konversi dari satu tipe ke tipe yang lain dengan
menggunakan fungsi int (), float (), dan complex ()

2.2.2 Variabel Phyton


Variabel adalah lokasi memori yang dicadangkan untuk menyimpan
suatu nilai. Ini berarti bahwa ketika membuat sebuah variabel, maka Python
akan memesan beberapa ruang di memori. Variabel menyimpan data yang
dilakukan selama program dieksekusi yang nantinya isi dari variabel
tersebut dapat diubah oleh operasi-operasi tertentu pada program yang
menggunakan variabel.
Variabel dapat menyimpan berbagai macam tipe data. Di
dalam pemrograman Python, variabel mempunyai sifat yang dinamis,
artinya variable Python tidak perlu didekralasikan tipe data tertentu dan
variabel Python dapat diubah saat program dijalankan. Penulisan variabel
Python sendiri juga memiliki aturan tertentu, yaitu:
 Karakter pertama harus berupa huruf atau garis bawah/underscore _.
 Karakter selanjutnya dapat berupa huruf, garis bawah/underscore _
atau angka.
 Karakter pada nama variabel bersifat sensitif (case-sensitif). Artinya
huruf kecil dan huruf besar dibedakan. Sebagai contoh, variabel
namaDepan dan namadepan adalah variabel yang berbeda.
- Variable Global
Variabel yang dibuat di luar fungsi dikenal sebagai variabel global.Variabel
global dapat digunakan oleh semua orang, baik di dalam fungsi maupun di
luar. Jika ingin membuat variabel dengan nama yang sama di dalam suatu
fungsi, variabel ini akan bersifat lokal, dan hanya dapat digunakan di dalam
fungsi tersebut. Variabel global dengan nama yang sama akan tetap seperti
semula, global dan dengan nilai aslinya.
- Keyword Global
Kata kunci global adalah kata kunci yang memungkinkan pengguna untuk
mengubah variabel di luar cakupan saat ini. Ini digunakan untuk membuat
variabel global dari lingkup non-global yaitu di dalam suatu fungsi. Kata
kunci global digunakan di dalam suatu fungsi hanya ketika kita ingin
melakukan tugas atau ketika kita ingin mengubah sebuah variabel.
2.2.3 Operator
Operator adalah konstruksi yang dapat memanipulasi nilai dari operan.
Sebagai contoh operasi 3 + 2 = 5. Disini 3 dan 2 adalah operan dan + adalah
operator. Bahasa pemrograman Python mendukung berbagai macam
operator, diantaranya:
 Operator Aritmatika (Arithmetic Operators)
 Operator Perbandingan (Comparison (Relational) Operators)
 Operator Penugasan (Assignment Operators)
 Operator Logika (Logical Operators)
 Operator Bitwise (Bitwise Operators)
 Operator Keanggotaan (Membership Operators)
 Operator Identitas (Identity Operators)
 Operator Aritmatika
Operator aritmatika digunakan dengan nilai numerik untuk melakukan
operasi matemarika umum.
Table 2.2 Operator aritmatika dalam phyton

Operator Contoh Penjelasan


Penjumlaha 1 + 3 = 4 Menjumlahkan nilai dari masing-masing operan atau
n+ bilangan
Penguranga 4 - 1 = 3 Mengurangi nilai operan di sebelah kiri menggunakan
n- operan di sebelah kanan
Perkalian * 2 * 4 = 8 Mengalikan operan/bilangan
Pembagian 10 / 5 = 2 Untuk membagi operan di sebelah kiri menggunakan
/ operan di sebelah kanan
Sisa Bagi% 11 % 2 = 1 Mendapatkan sisa pembagian dari operan di sebelah kiri
operator ketika dibagi oleh operan di sebelah kanan

 Operator Perbandingan

Operator perbandingan (comparison operators) digunakan untuk


membandingkan suatu nilai dari masing-masing operan..
Tabel 2.3 Operator Perbandingan dalam Python

Operator Contoh Penjelasan


Sama dengan 1 == 1 Jika masing-masing operan memiliki nilai yang sama,
== bernilai True maka kondisi bernilai benar atau True.
Tidak sama 2 != 2 Akan menghasilkan nilai kebalikan dari kondisi
dengan bernilaiFalse sebenarnya.
!=
Tidak sama 2 <> 2 Akan menghasilkan nilai kebalikan dari kondisi
dengan bernilai sebenarnya.
<> False
Lebih besar 5 > 3 bernilai Jika nilai operan kiri lebih besar dari nilai operan
dari True kanan, maka kondisi menjadi benar
Lebih kecil 5 < 3 bernilai Jika nilai operan kiri lebih kecil dari nilai operan kanan,
dari < True maka kondisi menjadi benar.

Lebih besar 5 >= 3 Jika nilai operan kiri lebih besar dari nilai operan kanan,
atau sama bernilai True atau sama, maka kondisi menjadi benar.
dengan >=
Lebih kecil 5 <= 3 Jika nilai operan kiri lebih kecil dari nilai operan kanan,
atau sama bernilai True atau sama, maka kondisi menjadi benar.
dengan <=
 Operator Penugasan
Operator yang digunakan untuk menetapkan nilai ke variable.

Tabel 2.4 Operator penugasan dalam Python

Operator Contoh Penjelasan


Sama dengan = a = 1 Memberikan nilai di kanan ke dalam variabel
yang berada di sebelah kiri.
Tambah sama a += 2 Memberikan nilai variabel dengan nilai variabel
dengan += itu sendiri ditambah dengan nilai di sebelah
kanan.
Kurang sama a -= 2 Memberikan nilai variabel dengan nilai variabel
dengan -= itu sendiri dikurangi dengan nilai di sebelah
kanan.
Kali sama dengan a *= 2 Memberikan nilai variabel dengan nilai variabel
*= itu sendiri dikali dengan nilai di sebelah kanan.
Bagi sama dengan a /= 4 Memberikan nilai variabel dengan nilai variabel
/= itu sendiri dibagi dengan nilai di sebelah kanan.
Sisa bagi sama a% 3 Memberikan nilai variabel dengan nilai variabel
dengan %= = itu sendiri dibagi dengan nilai di sebelah kanan.
Yang diambil nantinya adalah sisa baginya.

 Logical Operator
Operator yang digunakan untuk menghubungkan pernyataan kondisional.
Tabel 2.5 Logical operator dalam Python

Operator Contoh Penjelasan


and a, b = True, True # Jika kedua operan bernilai True, maka kondisi
hasil akan True print a akan bernilai True. Selain kondisi tadi maka
and b akan bernilai False.
or a, b = True, False # Jika salah satu atau kedua operan bernilai True
hasil akan True print a maka kondisi akan bernilai True. Jika keduanya
or b print b or aprint a False maka kondisi akan bernilai False.
or a
# hasil akan False print
b or b

not a, b = True, False # Membalikkan nilai kebeneran pada operan misal


hasil akan True print jika asalnya True akan menjadi False dan
not a print not b begitupun sebaliknya.
 Membership Operator
Membership operator digunakan untuk menguji apakah urutan yang
disajikan dalam suatu objek.
Tabel 2.7 Membership Operator dalam Python

Operator Contoh Penjelasan


in sebuah_list = [1, 2, 3,4 ,5] print 5 Memeriksa apakah nilai yang dicari
in sebuah_list berada pada list atau struktur data
python lainnya. Jika nilai tersebut
ada maka kondisi akan bernilai True.
not in sebuah_list = [1, 2, 3,4 ,5] print 10 not Memeriksa apakah nilai yang dicari
in sebuah_list tidak ada pada list atau struktur data
python lainnya. Jika nilai tersebut
tidak ada maka kondisi akan bernilai
True.

 Identify Operator
Operator ini digunakan untuk membandingkan objek, bukan jika mereka
sama, tetapi jika mereka sebenarnya adalah objek yang sama, dengan lokasi
memori yang sama.

Tabel 2.8 Identity Operator dalam Python

Operator Contoh Penjelasan


is a, b = 10, 10 Memeriksa apakah nilai di sebelah kiri
# hasil akan True print a is b operan memiliki identitas memori yang
sama dengan nilai di sebelah kanan operan.
Jika sama maka kondisi bernilai True.

is not a, b = 10, 5 Memeriksa apakah nilai di sebelah kiri


# hasil akan True print a is not operan memiliki identitas memori yang
b berbeda dengan nilai di sebelah kanan
operan. Jika berbeda maka kondisi bernilai
True.
2.3 Penugasan Praktikum
2.3.1 Tipe Data dan Angka
Tampilan tipe data dan angka dari sebuah variable yang digunakan dalam
Phyton:

Gambar 2.1 Tipe-tipe data dan angka


Berdasarkan gambar di atas terlihat bahwa tipe-tipe data dan angka tersebut
dapat berjalan dengan baik sesuai dasar teori,. Mulai dari tipe data Boolean
sampai tipe data Dictionary.
2.3.2 Konversi Tipe

Gambar 2.2 Konversi Tipe

Berdasarkan gambar di atas terlihat bahwa Konversi tipe tersebut


dapat berjalan dengan baik sesuai dasar teori, meskipun bentuk program
berbeda tetapi tetap dapat berjalan baik. Mulai dari konversi tipe dari
Integer ke Complex sampai Float ke Integer

2.3.3 Variabel Phyton

Gambar 2.3 Variabel Python


Berdasarkan gambar di atas terlihat bahwa perintah print dalam
python bisa mengkombinasi text dan variable. Program pun dapat berjalan
sesuai dengan dasar teori, meskipun bentuk program tidak sama.

2.3.4 Variabel Global

Gambar 2.4 variabel global

Berdasarkan gambar di atas terlihat bahwa perintah print dalam


python bisa mengkombinasi text dan variable. Program pun dapat berjalan
sesuai dengan dasar teori, meskipun bentuk program berbeda

2.3.5 Variabel Ganda

Gambar 2.5 Variabel Ganda


Berdasarkan gambar di atas terlihat bahwa pytohn bisa menentukan nilai
ganda variabelnya dalam satu baris. Program pun dapat berjalan sesuai
dengan dasar teori, meskipun bentuk program berbeda

2.3.6 Operator Aritmatika

Gambar 2.6 operator aritmatika

Berdasarkan kedua gambar di atas terlihat bahwa operasi aritmatika


dapat berjalan sesuai dengan baik mengikuti dasar teori. Program ini sama
seperti operasi bilangan matematika biasa, Program dapat berjalan lancar
meskipun bentuk program berbeda.\
2.3.7 Operator Perbandingan

Gambar 2.7 operator perbandingan

Berdasarkan gambar di atas terlihat bahwa contoh program Operator


Perbandingan dapat berjalan sesuai dengan dasar teori. Operator
perbandingan juga dapat digunakan dalam bentuk if dan else, meskipun
bentuk program berbeda tetapi program dapat berjalan dengan baik

2.3.8 bitwise Operator

Gambar 2.8 Bitwise Operator

Berdasarkan gambar di atas terlihat bahwa program bitwise operator


dapat berjalan sesuai dengan dasar teori. Program dapat berjalan lancar
meskipun bentuk program berbeda. Operator bitwise digunakan untuk
membandingkan angka

2.3.9 Membership Operator

Gambar 2.9 Membership operator

Berdasarkan gambar di atas terlihat bahwa program bitwise operator


dapat berjalan sesuai dengan dasar teori. Program dapat berjalan lancar
meskipun bentuk program berbeda. Operator keanggotaan digunakan untuk
menguji apakah urutan disajikan dalam suatu objek

2.3.10 Identity Operator

Gambar 3.10 Identify operator


Berdasarkan gambar di atas terlihat bahwa program identity operator
dapat berjalan sesuai dengan dasar teori. Program dapat berjalan lancar
meskipun bentuk program berbeda. Operator identitas digunakan untuk
membandingkan objek.
2.4 Kesimpulan
1. Python adalah salah satu bahasa pemograman yang unik
2. Pengoperasian Bahasa phyton lebih mudah jika dibandingkan dengan
Bahasa C
3. Variable adalah lokasi memori yang dicadangkan untuk menyimpan nilai
– nilai
4. Variable dan bentuk tipe Bahasa phyton sangat menarik
5. Harus teliti agar terhindar dari error
6. menulis program dengan bahasa phyton perlu ketelitian dan kesabaran
yang tinggi karena python sangat sensitif.
7. Bentuk-bentuk program di dalam python tidak jauh berbeda dengan
menulis biasa pada umumnya
8. Pada praktikum kali ini saya mencoba membuktikan berbagai tipe data
yang ada mulai dari tipe data Boolean sampai tipe dara Dictionary
9. Perintah print pada phyton bisa mengkombinasi text dan variable sesuai
dengan gambar 2.3
10. Pada gambar 2.6 operator matematika dapat digunakan dengan
menggunakan *,/,**,//,dan %
11. Pada penugasan praktikum kali ini,semua program yang saya lakukan
berjalan dengan baik serta tidak terjadi error
12. Pada Tipe data tuple dapat berisi macam-macam tipe data. Isi dari tipe
data tuple tidak dapat diubah
Bab III
Phyton Collection (Array)

Asisten Pembimbing:
Adeev Nidya Perdana
Nama/NIM Peserta:
Yodha Bhakti Wirandanu

Tanda Penerimaan Laporan,


Semarang, 4 Juni 2022

(Adeev Nidya Perdana)


BAB III
PERCOBAAN 2
PYTHON COLLECTION (ARRAY)

3.1. Tujuan Percobaan


4. Mengetahui bentuk-bentuk data collection (array) yang ada dalam
bahasa Python.
5. Mengetahui dan dapat menjelaskan perbedaan bentuk data List dan
Tuple.
6. Mengetahui fungsi-fungsi yang ada dalam array List dan Tuple dan
dapat menggunakannya.
7. Memahami contoh penerapan bentuk data List dan Tuple.

3.2. Dasar Teori


3.2.1. Data Collection (Array)
Terdapat 4 tipe data collection (array) dalam bahasa pemrograman Python
yaitu list, tuple, set, dan dictionary. List adalah sebuah koleksi yang tertata
dan dapat diubah, memungkinkan untuk adanya anggota yang sama
(duplikasi). Tuple adalah sebuah koleksi yang tertata dan tidak dapat
diubah, memungkinkan untuk adanya duplikasi anggota. Set adalah sebuah
koleksi yang tidak tertata dan tidak ter-indeks, tidak ada duplikasi anggota.
Dictionary adalah sebuah koleksi yang tidak tertata, dapat diubah,
terindeks, dan tidak ada duplikasi anggota.
Ketika memilih sebuah tipe koleksi (array), diperlukan untuk memahami
sifat dan tipe yang akan digunakan. Dengan memilih tipe yang benar untuk
himpunan data tertentu dapat berarti retensi makna, dan itu bisa berarti
peningkatan efisiensi atau keamanan.
3.2.2. List
List adalah koleksi yang tertata dan dapat diubah. Dalam Python list ditulis
dengan tanda kurung siku. Untuk mengakses list bisa dengan mengakses
indeksnya. Indeks ada positif dan negatif. Untuk indeks positif dihitung dari
depan mulai dari indeks 0 sedangkan untuk indeks negatif dihitung dari
belakang mulai dari indeks -1.

Gambar 3.1 Contoh penulisan list

 Mengakses list dengan indeks positif

Gambar 3.2 Mengakses list dengan indeks positif


 Mengakses list dengan indeks negatif

Gambar 3.3 Mengakses list dengan indeks positif

3.2.2.1 Rentang Indeks


Python dapat menentukan rentang indeks dengan menentukan di mana untuk
memulai dan dimana untuk mengakhiri rentang. Saat menentukan rentang,
nilai pengembalian akan menjadi daftar baru dengan item yang ditentukan.

Gambar 3.4 Contoh rentang indeks pada Python.


3.2.2.2 Rentang Indeks Negatif
Indeks negatif bisa digunakan untuk mencari dari komponen list posisi
terakhir. Contoh untuk menampilkan item dari indeks -4 (termasuk) to
indeks (tidak termasuk)

Gambar 3.5 Contoh rentang indeks negatif pada Python.

3.2.2.3 Mengubah Nilai Item


Untuk mengubah nilai dari sebuah item tertentu bisa dengan mengacu ke
angka indeksnya. Berikut kode mengubah indeks ke 1.
Gambar 3.6 Contoh mengubah nilai item pada Python.

3.2.2.4 Perulangan dalam List


Untuk mengakses item-item dalam list bisa dengan menggunakan
perulangan. Kode perulangan dapat menggunakan for.

Gambar 3.7 Contoh perulangan dalam list pada Python.

3.2.2.5 Mengecek Keberadaan Sebuah Item dalam List


Untuk mengecek apakah sebuah item ada atau tidak dalam list bisa dengan
menggunakan kondisional if.

Gambar 3.8 Contoh mengecek keberadaan sebuah item dalam list pada Python.
3.2.2.6 Menentukan Jumlah Komponen dalam List
Untuk menentukan jumlah komponen dalam list bisa dengan menggunakan
fungsi len().

Gambar 3.9 Contoh menentukan jumlah komponen dalam list pada Python.

3.2.2.7 Menambahkan Item ke dalam List


Untuk menambahkan item ke dalam list bisa dengan menggunakan fungsi
append(). Fungsi append() akan menambahkan item list menjadi komponen
terakhir. Untuk menambahkan item list ke indeks tertentu bisa dengan
menggunakan fungsi insert().

Gambar 3.10 Contoh menambahkan item dalam list menggunakan fungsi append().
Gambar 3.11 Contoh menambahkan item dalam list menggunakan fungsi insert().

3.2.2.8 Menghilangkan Item dalam List


Ada beberapa metode untuk menghilangkan item dalam list.
1. Dengan fungsi remove(). Fungsi remove akan menghapus sesuai item
yang disebutkan dalam fungsi.

Gambar 3.12 Contoh menghilangkan item dalam list menggunakan fungsi remove().
2. Fungsi pop(). Fungsi pop() menghapus item terakhir dari list.

Gambar 3.13 Contoh menghilangkan item dalam list menggunakan fungsi pop().

3. Fungsi del(). Fungsi del() dapat menghapus item tertentu didalam list
sesuai dengan indeks yang disebutkan dalam fungsi.

Gambar 3.14 Contoh menghilangkan item dalam list menggunakan fungsi del().
4. Fungsi clear(). Fungsi clear() digunakan untuk mengosongkan list.

Gambar 3.15 Contoh menghilangkan item dalam list menggunakan fungsi clear().

3.2.2.9 Mengkopi List


Untuk menyalin dari satu list ke list yang lain tidak bisa dengan hanya
mengetikkan list1 = list2. Operator ‘=’ di dalam operasi list1 = list2 akan
menjadikan list2 menjadi referensi ke list 1, sehingga perubahan di list 1
akan selalu diikuti list2.

Gambar 3.16 Contoh menyalin item dalam list.

Untuk membuat kopi dari list yang tidak menjadi referensi seperti pada
contoh di atas maka bisa dengan menggunakan fungsi copy().
Gambar 3.17 Contoh menyalin item dalam list.

Pada contoh di atas perubahan pada list1 tidak berdampak pada list3. List3
hanya dibuat awalnya dengan menyalin dari list1 selanjutnya tidak
mengikuti perubahan list1. Cara lain untuk menyalin dari satu ke list yang
lain bisa dengan menggunakan metode yang built-in di dalam Python yaitu
metode list.

Gambar 3.18 Contoh menggabungkan dua list.

Ada beberapa cara untuk bergabung, atau menyatukan, dua atau lebih
daftar dengan Python.
1. Menggunakan operator +.

Gambar 3.19 Contoh menggabungkan dua list menggunakan operator +.

2. Menggunakan fungsi append()

Gambar 3.20 Contoh menggabungkan dua list menggunakan fungsi append().


3. Menggunakan metode extend.

Gambar 3.21 Contoh menggabungkan dua list menggunakan fungsi extend().

3.2.2.10 Konstruktor list()


Fungsi list() bisa digunakan untuk membuat list().

Gambar 3.22 Contoh konstruktor list pada Python.

3.2.3. Tuple
Sebuah tuple adalah koleksi dalam Python yang sudah tertata dan tidak
dapat diubah. Dalam Python tuple ditulis dengan kurung bulat.
Gambar 3.23 Contoh tuple pada Python.

3.2.3.1 Mengakses Item dalam Tuple


Untuk mengakses item dalam tuple bisa dengan menggunakan indeks tuple.

Gambar 3.24 Contoh Mengakses item dalam tuple.

3.2.3.2 Mengubah Nilai Item dalam Tuple


Tuple bersifat tidak dapat diubah. Jika diinginkan untuk mengubah nilai
tuple maka tuple harus diubah dulu menjadi list. Setelah nilai item list
diubah maka list dikembalikan ke bentuk tuple lagi.
Gambar 3.25 Contoh mengubah nilai item dalam tuple.

3.2.3.3 Menampilkan dan Mengecek Tuple

Gambar 3.26 Contoh menampilkan dan mengecek tuple.


3.2.3.4 Menghitung Jumlah Item, Menambahkan Item dan Menghilangkan
Item dalam Tuple

Gambar 3.27 Contoh menghitung jumlah item, menambahkan item dan menghilangkan
item dalam tuple.
3.3. Analisis dan Pembahasan
3.3.1 List

Gambar 3.28 Tipe data list

Seperti pada gambar 3.28, nilai data honda, yamaha, suzuki, kawasaki, dan
ktm dimasukkan ke dalam list ‘motor’,Jika kita melakukan perintah
print(typemotor) output yang akan dihasilkan adalah [“honda”, “yamaha”,
“suzuki”, “kawasaki”, “ktm”] dengan <class ‘list’>.

A. Indeks Positif dan Negatif

Gambar 3.29 Indeks positif dan negatif list


Pada gambar 3.29 variabel yang tertera adalah list = ["honda", "yamaha",
"suzuki", "kawasaki", "ktm"]. Pada indeks positif, contohnya print(list[0]),
maka output yang akan dihasilkan adalah adalah “honda” karena berada
pada indeks pertama, yaitu nol.Jika kita menuliskan print(list[1]) maka
output yang akan muncul adalah “yamaha”. Kedua, pada variabel yang sama
namun pemanggilan dengan indeks negatif, contohnya print(list[-2]), maka
output yang akan dihasilkan adalah ["honda", "yamaha", "suzuki"] karena
pada indeks angka negatif, indeksnya dihitung dari belakang dimulai dari -
1.

B. Rentang Indeks Positif dan Negatif

Gambar 3.30 Rentang indeks positif dan negatif list

Pertama rentang indeks nilai positif. Dengan variabel thislist = ["honda",


"yamaha", "suzuki", "kawasaki", "ktm"], Kita mencoba mencari indeks
positif terlebih dahulu. Contohnya, print(list[0:3]) yang berarti mencetak
data thislist dari indeks 1 sampai 2 maka hasilnya ["honda", "yamaha",
"suzuki"]. Kedua, contohnya print(list[2:]) yang berarti mencetak data
thislist mulai dari indeks 2 ke kanan sampai akhir data, maka output yang
akan dihasilkan yaitu adalah [“suzuki”, “kawasaki, “ktm”]. Ketiga,
contohnya print(list[:3]) yang berarti mencetak data thislist mulai dari
indeks pertama yaitu 0 sampai indek 2, maka out yang akan dihasilkan
adalah [“["honda", "yamaha", "suzuki"].Kedua adalah rentang indeks nilai
negatif. Disini saya menggunakan variabel yang sama variabel list =
["honda", "yamaha", "suzuki", "kawasaki", "ktm"], dapat menghasilkan
output tersebut menggunakan indeks nilai positif dengan cara
thislist[masukkan indeksnya].. Contohnya, print(thislist[-2:-1])

C. Mengubah Nilai Item

Gambar 3.31 Mengubah nilai item positif dan negatif

Gambar 3.31 adalah mengubah nilai item data dengan indeks positif dan
negatif dengan variabel awal list = ["honda", "yamaha", "suzuki",
"kawasaki", "ktm"], Nilai item dalam list bisa diubah sesuai yang
diinginkan. Untuk mengubah item tertentu dalam list, dapat dilakukan
command seperti di gambar 3.31. Pada gambar 3.31, indeks 1 dan 3 nilainya
diganti dengan Benelli dan Harley.
D. Perulangan dalam List

Gambar 3.32 Fungsi perulangan dalam list

Pada gambar 3.32,dilakukan perulangan dalam list menggunakan for x in


motor jika kita melakukan print (x) maka output yang akan dihasilkan
adalah honda yamaha suzuki kawasaki ktm dengan urut dan satu per satu.

E. Mengecek Keberadaan Sebuah Item dalam List

Gambar 3.33 Mengecek kebenaran dalam list

Pada gambar 3.33 saya mencoba mengecek apakah variabel yang saya
masukkan ada dalam list atau tidak.Contoh saya ingin memeriksa
apakahvariabel “yamaha” ada di dalam list atau tidak.Untuk memeriksa
apakah “yamaha” saya menggunakan fungsi if “yamaha” in motor: Jika
program ini dijalankan dan terdapat variabel “yamaha” dalam list tersebut
makan akan muncul output “yamaha ada dalam list”.

F. Menentukan Jumlah Komponen dalam List

Gambar 3.34 Menentukan jumlah dalam list

Pada gambar 3.34, saya ingin menghitung jumlah dari variabel yang
ditulis,Disini untuk dapat menghitung jumlahnya saya menggunakan
perintah print(len(thislist)) setelah itu,output yang akan dihasilkan adalah
5,dan hasil itu adalah benar dan tepat.
G. Menambah Item ke dalam List

Gambar 3.35 Menambah item ke dalam list

Pada gambar 3.35 nilai item dalam list dapat ditambah ataupun dihapus
menggunakan fungsi. Fungsi append() digunakan untuk menambah item ke
komponen paling kanan. Untuk menambah item ke indeks tertentu, dapat
dilakukan dengan fungsi insert(). Sementara itu, untuk menghapus item
tertentu dapat digunakan fungsi remove dan untuk menghapus item paling
kanan dapat digunakan fungsi pop(). Fungsi del bisa digunakan untuk
menghapus item dengan indeks tertentu.

H. Menghilangkan Item dalam List

Gambar 3.36 Menghilangkan item ke dalam list (1)


Gambar 3.37 Menghilangkan item ke dalam list (2)

Pada gambar 3.36 saya mencoba menghilangkan item dalam list dengan
empat perintah yaitu remove,pop, del, dan clear.Pertama,fungsi remove().
Fungsi ini digunakan untuk menghapus suatu item secara spesifik.
Contohnya,saya ingin menghapus “kawasaki” dari dalam list,kita bisa
menghapusnya dengan menggunakan thislist.remove(“kawasaki”) maka
output yang akan dihasilkan adalah [“honda”, “yamaha’, “suzuki”, “ktm”].
Selanjutnya, fungsi pop(). Fungsi ini digunakan untuk menghapus item yang
berada pada indeks paling akhir. Pada gambar 3.36 saya menggunakan
fungsi pop untuk menghapus item terakhir,maka jika kita print akan
menghasilkan output ["honda", "yamaha", "suzuki", "kawasaki"] dengan
“kawasaki” yang telah terhapus.
Ketiga, menggunakan fungsi del(). Fungsi ini digunakan untuk menghapus
suatu item sesuai dengan indeks yang ingin dimasukkan. Pada gambar 3.37
saya ingin menghapus item ketiga,menggunakan perintah del motor[2] maka
output yang akan dihasilkan adalah [“honda”, “yamaha”, “kawasaki”,
“ktm”].
Keempat, menggunakan fungsi clear(). Fungsi ini digunakan untuk
menghapus seluruh item yang terdapat pada suatu list.Jika saya
menggunakan perintah motor clear() maka akan keluar output = [].
I. Menyalin List

Gambar 3.38 Menyalin list

Pada gambar 3.38 yaitu dengan “=” dan ”copy” dapat dubuktikan Isi list
bisa disalin dengan menggunakan variabel baru. Untuk menyalin list. Pada
gambar 3.38, variabel motor2 menyalin isi list motor dan ketika isi list
motor diganti salah satu isinya, maka variabel motor2 tetap mengikuti isi
list tersebut. Akan tetapi, ketika menyalin menggunakan fungsi copy() dan
isi list motor diganti, tidak memengaruhi list baru yang menyalin.

J. Menggabungkan (Join) Dua List

Gambar 3.39 Menggabungkan dua list (1)


Pada gambar 3.39 kita dapat menggabungkan dua list menjadi satu dengan
tiga cara yaitu dengan operasi penjumlahan,fungsi append,dan fungsi
extend.Pada gambar 3.39 saya mencoba mencoba ketiga cara tersebut
dengan menggabungkan dua list menjadi satu.List yang pertama yaitu
[“honda”, “yamaha”, ”suzuki”, ”kawasaki”, ”ktm”] dan list kedua yaitu
[”piaggio”, ”SYM”] maka didapatkan output [“honda”, “yamaha”,
”suzuki”, ”kawasaki”, ”ktm”, ”piaggio”, ”SYM”]

K. Konstruktor List

Gambar 3.40 Konstruktor list

Contoh pada gambar 3.40, list = list(("honda", "yamaha", "suzuki",


“kawasaki”, “ktm”))data tersebut menggukanan double kurung. Untuk
menampilkan outputnya gunakan print(thislist) dan hasilnya adalah ['apel',
'jeruk', 'tomat'] dengan tipe data list ["honda", "yamaha", "suzuki",
“kawasaki”, “ktm”] dengan kurung siku.
3.3.2 Tuple

Gambar 3.41 Bentuk data tuple

Bisa kita liat pada gambar 3.41 tipe tuple hampir sama seperti tipe list,
namun perbedaan dalam membuat tipe tuple adalah menggunakan kurung
biasa ( ). Seperti pada gambar 3.41, variabel thistuple = (“honda”,
“yamaha”, “suzuki”, “kawasaki”, “ktm”) merupakan tipe array tuple.Jika
kita gunakan perinyah print maka akan muncul <class.tupple>.

A. Indeks Positif dan Negatif

Gambar 3.42 Indeks positif dan negatif tuple

Gambar 3.42 menunjukkan indeks positif dan indeks negatif tuple.Pada


indeks postif, variabel yang saya tulis adalah [“honda”, “yamaha”, ”suzuki”,
”kawasaki”, ”ktm”].Jika saya melakukan perintah print(thistupple)[0],maka
output yang akan keluar adalah variabel pertama yaitu “honda”.Contoh
lain,jika saya melakukan perintah print(thistupple)[1] output yang akan mun
cul yaitu “yamaha” karena “yamaha” merupakan indeks ke-1,begitupun
selanjutnya.Pada indeks negatig saya menggunakan variabel yang
sama.Disini saya mencoba menggunakan perintah print(thistupple)[-1]
maka output yang akan dihasilkan adalah “ktm” karena indeks negatif,mulai
indeks dari belakang yaitu -1.

B. Rentang Indeks Positif dan Negatif.

Gambar 3.43 Rentang indeks positif dan negatif tuple

Pada gambar 3.43 saya mencoba melakukan rentang variabel positif dan
negatif.Dengan variabel yang saya gunakan yaitu thistuple = (“honda”,
“yamaha”, “suzuki”, “kawasaki”, “ktm”).Pertama saya akan memberikan
contoh perintah print(motortuple[3:]),perintah ini berarti mencetak data
thistuple mulai dari indeks 3 ke kanan sampai akhir data, maka outputnya
yaitu (“kawasaki”, “ktm) .Kedua adalah rentang indeks nilai negatif. Dengan
variabel thistuple yang sama,contoh dari rentang indeks negatif pada gambar
yaitu print(thistuple[-3:]) berarti mencetak data motortuple mulai dari
indeks -3 akan menghasilkan output [“suzuki”, “kawasaki”, “ktm”].
C. Mengubah Data Tuple

Gambar 3.44 Mengubah data tuple

Seperti pada gambar 3.44, variabel motortuple memiliki nilai awalnya


(“honda”, “yamaha”, “suzuki”, “kawasaki”, “ktm”).Kita bisa mengubahnya
menjadi list menggunakan konstruktor list terhadap data “motorlist”.Lalu
kita mengubah kembali list tersebuut menjadi tuple pada data
“motortuple”dengan tuple(motorlist).

D. Menampilan dan Mengecek Data Tuple

Gambar 3.45 Menampilkan dan mengecek data tuple


Pada gambar 3.45 dilakukan cara untuk menampilkan data tuple yaitu
dengan memasukkan fungsi perulangan untuk mendeklarasikannya, yaitu
for x in motortuple: dilanjutkan print(x) yang diletakkan didalam fungsi.
Output yang akan dihasilkan adalah menampilan semua indeks satu per
satu.Mengecek data Tuple bisa lakukan dengan menggunakan data tuple
motortuple.Kita dapat menggunakan fungsi if sesaui data yang ingin kita
cek.

E. Menghitung Jumlah Item, Menambahkan Item dan Menghilangkan Item


dalam Tuple

Gambar 3.46 Menghitung jumlah item data tuple

Pada gambar 3.46 adalah contoh menghitung jumlah item,menambahkan


Item dengan menggunakan fungsi len(). Fungs len() merupakan bagian dari
fungsi built-in yang disediakan oleh Python untuk menghitung panjang atau
jumlah suatu list.Selanjutnya adalah menambahkan item dalam tuple seperti
yang terlihat bahwa akan muncul syntax error karena pada sadarnya tuple
tidak dapat ditambahkan.Lalu yang ketiga,tuple tidak dapat
dihilangkan,maka akan muncul syntax error juga,hal ini adalah pembuktian
bahwa sifat tuple tidak bisa diubah.
3.4. Penugasan Praktikum
3.4.1 Buat kode program untuk menampilkan orange dan kiwi dari thislist
dengan rentang indeks positif

Gambar 3.47 Kode program rentang indeks positif

Solusi yang dapat dilakukan untuk soal diatas tentang menampilkan orange
dan kiwi yaitu dengan menggunakan rentang indeks positif yaitu dengan
cara print(thislist[3:5]) ini menghasilkan data dari listt dari indeks 3
sampai 4 (5 tidak termasuk). Output yang akan dihasilkan adalah [“orange”,
“kiwi”] sesuai soal.
3.4.2 Buat soal pertama untuk rentang indeks negative

Gambar 3.48 Kode program rentang indeks negatif

Untuk menampilkan orange dan kiwi namun untuk rentang indeks negative
,saya menggunakan indeks negatif ialah dengan print(thislist[-4:-2]) yang
artinya mencetak data dari thislist dari indeks -3 sampai -4.Sehingga akan
menghasilkan output [“orange”, “kiwi”] sesuai perintah soal.

3.4.3 Buat kode program untuk menampilkan kiwi, melon, mango dengan 3
alternatif rentang indeks. Sebutkan 3 rentang indeks alternatif
tersebut

Gambar 3.49 Kode program 3 rentang indeks alternatif


Untuk menyelesaikan soal 3.4.3 saya menggunakan tiga alternatif yaitu
print(thislist[4:7]) yaitu berarti mencetak item ke-4 sampai item sebelum
ke-7.Kemudian, menggunakan print(thislist[4:]) yang artinya adalah
mencetak item ke-4 sampai item terakhir.Alternatif yang ketiga
menggunakan indeks negatif print(thislist[-3:]) yang berarti mencetak item
ke-3 dari akhir sampai item pertama.

3.4.4 Buat kode program untuk memasukkan nama-nama mobil ke dalam


sebuah list

Gambar 3.50 Kode program list mobil

Pada gambar 3.50 dibuat sebuah list mobil ["avanza", "xenia", "brio",
"innova", "bmw"] dengan menggunakan kurung siku yang berarti item di
dalamnya akan menjadi data collection list. Kemudianuntuk menampilkan
item pada list menggunakan print(listmobil) lalu akan keluar output
["avanza", "xenia", "brio", "innova", "bmw"].
3.4.5 Buat kode untuk mengubah nilai item dengan rentang positif dan
negatif

Gambar 3.51 Mengubah nilai item dengan rentang positif dan negatif

Ditunjukkan pada gambar 3.51 perubahan item dengan rentang indeks


positif dan negatif.Pada gambar tersebut saya mengganti contohnya [1]
mengganti item ke-1 yaitu “nike” digantikan dengan “ventela”.Lalu [2]
menggantikan item ke-2 dari akhir dengan “puma” digantikan oleh
“compass”,dan [-1] yang artinya mengganti item terakhir,yaitu “converse”
digantikan dengan “warrior”

3.4.6 Buat kode perulangan untuk menampilkan isi list

Gambar 3.52 Kode perulangan untuk menampilkan list


Pada gambar 3.52 saya mencoba melakukan perulangan untuk
menampilkan isi list dengan list = [“gajah”, “harimau”, “pinguin”,
“jerapah”, “kadal”]. Untuk menampilkan isi list menggunakan fungsi
perulangan for y in thislist: lalu saya print(y) maka akan muncul output
gajah,harimau,pinguin,jerapah,kadal urut secara satu per satu.

3.4.7 Buat kode untuk menambah dan mengurangi item dalam list

Gambar 3.53 Menambah item pada list

Pada gambar 3.53 dilakukan kode untuk menambah item dalam


list.Terdapat dua cara untuk menambahkan item dalam list. Pertama,
menggunakan append().Contohnya, saya menambahkan “arsenal” dalam
list dengan perintaj thislist.append(“arsenal”) lalu akan menghasilkan
output yang keluar adalah [“chelsea”, “barca”, “MU”, “Liverpool”,
“Arsenal”]. Cara yang Kedua, menggunakan insert(). Contohnya sama saya
ingin menambahkan "Arsenal” menggunakan thislist.insert(3, “Arsenal”)
akan menghasilkan output yang keluar adalah [“chelsea”, “barca”, “MU”,
“Arsenal”, “Liverpool”] tambahan item terletak pada indeks 3.
Gambar 3.53 Mengurangi item pada list

Pada gambar 3.33 untuk Mengurangi item dalam list juga terdapat tiga cara
yang bisa kita lakukan untuk mengurangi item dalam list.Pertama
menggunakan remove() saya menggunakan remove(0) untuk menghapus
item “MU”, kedua menggunakan pop() untuk menghapus item terakhir
yaitu “Liverpool”, ketiga menggunakan del untuk meghapus indeks 2 yaitu
“MU”.

3.4.8 Buat kode untuk menghilangkan item dalam list

Gambar 3.54 Menghilangkan item pada list

Pada gambar 3.54 dilakukan cara untuk meghilangkan item pada list dengan
menggunakan fungsi clear().Fungsi ini digunakan untuk menghapus dan
mengosongkan semua item yang terdapat pada suatu list dengan fungsi
thislist.clear() dan output yang dihasilkan akan kosong[ ] seperti gambar
3.34.

3.4.9 Buat kode untuk menyalin dan menggabungkan dua list (list keduanya
bebas)

Gambar 3.55 Menyalin dua list (1)

Pada gambar 3.55 dilakukan kode untuk menyalin dan menggabungkan dua
list. Penyalinan data dalam list bisa kita gunakan fungsi copy() dalam fungsi
ini kita bisa lihat pada gambar 3.55 bahwa ketika suatu list disalin untuk
mendefinisikan list yang baru maka akan menghasilkan suatu list yang
independen, dalam artian setiap ada perubahan dalam list yang pertama
perubahan itu tidak dialami oleh list yang baru.Selanjutnya untuk
menggabungkan dua list, kita gunakan dengan operasi penjumlahan
tepatnya tanda tambah (+) dengan catatan kita harus mendefinisikan masing
– masing list terlebih dahulu baru melakukan operasi penjumlahannya.
Dalam contoh ini kita ingin menggabungkan antara “ikanlaut” dengan
“ikanairtawar” dengan terlebih dahulu mendefinisikan “jenisikan” adalah
hasil dari operasi penjumlahan antara “ikanlaut” dengan “ikanairtawar”
maka akan menghasilkan output ['tuna', 'salmon', 'trout', 'cakalang', 'lele',
'arwana', 'mujair', 'nila'].
3.4.10 Buat kode untuk membuat list di atas dalam bentuk tuple

Gambar 3.56 Konversi list ke tuple

Pengubahan list ke tuple bisa kita lakukan dengan menggunakan fungsi


tuple() dapat kita lihat dari yang semula bertipekan list lalu menjadi
bertipekan tuple, bercirikan kurung kotak “[…]” lalu menjadi kurung biasa
“(…)”. Dalam contoh ini kita ingin mengubah “ list” yang merupakan tipe
data list yang menggunakan kurung kotak “[…]” menjadi “tuple” yang
merupakan tipe data tuple yang menggunakan kurung biasa “(…)” Maka
output yang akan dihasilkan adalah ('a', 'b', 'c', 'd', 'e', 'f').

3.4.11 Buat kode untuk mengubah nilai tuple dengan rentang positif dan
negatif

Gambar 3.57 Mengubah nilai tuple dengan indeks positif dan negatif
Pada gambar 3.57 digunakan rentang indeks [3] untuk mengubah item ke-
3 yaitu "Inggris" dan untuk mengubah item ke-2 dari akhir yaitu "Australia"
namun terjadi error. Ini dikarenakan tipe data tuple bersifat immutable.

3.4.12 Buat kode untuk mengakses item dalam tuple

Gambar 3.58 Mengakses nilai tuple dengan indeks positif dan negatif

Dalam gambar 3.58 untuk mengakses item dalam tuple bisa menggunakan
print(tupaksesoris[masukkan indeksnya]). Contoh, print(tupaksesoris[4])
untuk indeks 4 dan print(tupeaksesori[-2]) untuk indeks -2.

3.4.13 Buat kode perulangan untuk menampilkan isi tuple.

Gambar 3.59 Kode perulangan untuk menampilkan data tuple


Perulangan dalam tuple bisa kita jalankan dengan menggunakan fungsi for()
, perulangan ini bisa kita jalankan dengan syarat kita sudah mendefinisikan
suatu fungsinya sehingga bisa kita lakukan fungsi for() sesuai dengan item
yang terdapat dalam tuple-nya. Dalam contoh kali ini ketika menggunakan
fungsi for(), kita bisa menyatakan “kucing” terdapat dalam “Tuple” maka
bisa kita nyatakan nilai “kucing” dengan fungsi print() maka hasil outputnya
adalah persia,britania,siam.bengal. Item dinyatakan per barisnya, tidak
semua item dalam satu baris.

3.4.14 Dari pertanyaan di atas, simpulkan perbedaan list dan tuple


List merupakan suatu koleksi data yang tertata dan dapat diubah isinya.
Tipe data list dicirikan dengan menggunakan kurung siku sebagai
penandanya. Sementara itu, tipe data tuple merupakan suatu koleksi data
yang tertata dan tidak dapat diubah atau immutable. Tipe data tuple
menggunakan kurung biasa sebagai penandanya. Untuk mengubah isi data
tuple, dapat dilakukan dengan mengubah tuple menjadi list.List ditulis di
dalam sepasang tanda kurung siku [], sedangkan tuple ditulis di dalam
sepasang tanda kurung biasa ().
3.5. Kesimpulan
1. Bahasa Python memiliki empat jenis data collection yaitu list, tuple, set,
dan dictionary.
2. List adalah sebuah data collection atau array yang ditulis dengan tanda
kurung siku seperti yang ditunjukkan pada Gambar 3.1.
3. Perulangan isi list merupakan suatu cara untuk menampilkan isi list
dalam bentuk ke bawah. Hal ini mempermudah untuk melihat isi list
tersebut.
4. Tuple pada dasarnya merupakan jenis data yang immutable atau tidak
dapat diotak-atik isinya.
5. Persamaan dari tipe List dan Tuple adalah keduanya merupakan tipe
data Array yang nilainya tersusun dan ditandani dengan kemampuan
keduanya untuk dibaca dengan indeks.
6. Data list dapat diubah sesuai dengan indeks yang diinginkan.
7. Dalam list juga bisa melakukan menghapus semua isi data dalam list.
Hal itu dapat dilakukan dengan menggunakan fungsi clear()
8. Pada list dan tuple, indeks memiliki urutan 0 dari paling kiri dan -1 dari
paling kanan.
9. Untuk menampilkan output isi list dan tuple secara satu per satu, dapat
dilakukan dengan fungsi for.
10. Isi dalam list dapat disalin dengan variabel list baru menggunakan ‘=’
atau menggunakan fungsi copy. Ketika memakai ‘=’ variabel baru
tersebut akan terus mengikuti perubahan dari variabel pertama.
Sebaliknya, pada fungsi copy variabel baru tidak mengikuti.
11. List dapat digabungkan menggunakan tanda ‘+’, fungsi for, atau fungsi
extend seperti pada gambar 3.32.
12. Perbedaan list dan tuple berada di penandanya dan sifatnya. Tanda
untuk list yaitu kurung siku, sedangkan tanda untuk tuple yaitu kurung
biasa. Kemudian sifat list bisa diubah, sedangkan sifat tuple tidak bisa
diubah.
Bab IV
Set and Dictionary

Asisten Pembimbing:
Rayhand Aska M.
Nama/NIM Peserta:
Yodha Bhakti Wirandanu/21060121140173

Tanda Penerimaan Laporan,


Semarang, 4 Juni 2022

(Rayhand Aska M.)


BAB IV
PERCOBAAN 3
SET DAN DICTIONARY

4.1 Tujuan Percobaan


1. Mengenal jenis tipe data collection (array) dalam bahasa pemrograman
Python.
2. Mengetahui perbedaan setiap jenis tipe data collection (array) dalam
Python.
3. Memahami sifat-sifat setiap tipe data collection (array) dalam Python.
4. Mampu mengaplikasikan penggunaan tipe data Set dan Dictionary dalam
Python.

4.2 Dasar Teori


4.2.1 Data Collection (Array)
Terdapat 4 tipe data collection (array) dalam bahasa pemrograman
python yaitu list, tuple, set, dan dictionary. List adalah sebuah koleksi yang
tertata dan dapat diubah, memungkinkan untuk adanya anggota yang sama
(duplikasi). Tuple adalah sebuah koleksi yang tertata dan tidak dapat diubah,
memungkinkan untuk adanya duplikasi anggota. Set adalah sebuah koleksi
yang tidak tertata dan tidak ter-indeks, tidak ada duplikasi anggota.
Dictionary adalah sebuah koleksi yang tidak tertata, dapat diubah, ter-indeks,
dan tidak ada duplikasi anggota.
Ketika memilih sebuah tipe koleksi (array), diperlukan untuk
memahami sifat dan tipe yang akan digunakan. Dengan memilih tipe yang
benar untuk himpunan data tertentu dapat berarti retensi makna, dan itu bisa
berarti peningkatan efisiensi atau keamanan.

4.2.2 Set
Set dalam bahasa pemrograman python adalah tipe data kolektif yang
digunakan untuk menyimpan banyak nilai dalam satu variabel dengan
ketentuan:
 nilai anggota yang disimpan harus unik (tidak duplikat)
 nilai anggota yang sudah dimasukkan tidak bisa diubah lagi
 set bersifat unordered alias tidak berurut yang artinya tidak bisa
diakses dengan indeks.
Set dapat kita buat seperti membuat variabel biasa, namun nilai
variabelnya diisi dengan tanda kurung kurawal “{ }”. Apabila set-nya berisi
lebih dari satu, maka kita bisa memisahnya dengan tanda koma.
Tabel 4.1 Fungsi dalam tipe data set
Fungsi Keterangan

add() Menambahkan satu anggota ke dalam set

clear() Menghapus keseluruhan anggota set

copy() Membuat salinan satu set menjadi set baru

discard() Menghapus satu anggota dari set

pop() Menghapus salah satu nilai dari sebuah set

remove() Menghapus suatu nilai dari set

union() Melakukan operasi gabungan dari dua atau lebih set

update() Mengupdate set dengan menambahkan suatu nilai tertentu

4.2.3 Dictionary

Dictionary Python berbeda dengan list, tuple ataupun set. Setiap


urutan dictionary berisi key dan value. Setiap key dipisahkan dari value-nya
oleh titik dua (:), item dipisahkan oleh koma, dan semuanya tertutup dalam
kurung kurawal. Dictionary kosong tanpa barang ditulis hanya dengan dua
kurung kurawal, seperti ini: {}.
Nilai dictionary bisa berupa tipe apa pun, namun key harus berupa tipe
data yang tidak berubah seperti string, angka, atau tuple.
Tabel 4.2 Fungsi dalam dictionary

Fungsi Keterangan

clear() Menghapus semua elemen dictionary

copy() Mengembalikan salinan dictionary

get(key, For key, nilai pengembalian atau default jika tombol


default=None) tidak ada dalam dictionary
Mengembalikan daftar dari pasangan tuple
items()
dictionary (key, value)
pop() Menghapus satu elemen yang dipanggil

popitem() Menghapus satu elemen terakhir dalam dictionary

Menambahkan pasangan kunci kata kunci dictionary


update(dict2)
baru ke dictionary awal

values() Mengembalikan daftar nilai dictionary

4.3 Analisis dan Pembahasan


4.3.1 Set
1. Membuat kode program set
Gambar 4.1 Kode program, akses elemen, dan memeriksa set
pada gambar 4.1,Tipe data collection (array) set dibuat dengan tanda
kurung kurawal “{}”. Tipe data ‘setpulau’ dalam gambar 4.1 juga disebutkan
sebagai ‘set’ yang menunjukkan bahwa kode yang dibuat sudah benar dan
memenuhi syarat sebagai set.

2. Mengakses elemen dalam set

Gambar 4.2 Mengakses elemen dalam set

Berdasarkan gambar 4.2, elemen dalam set bisa diakses menggunakan


fungsi perulangan for.Dari fungsi perulangan yaitu for v maka akan dihasilkan
oitput elemen satu per satu dan ditampilkan secara acak karena tipe data set
tidak mengenal indeks.
3. Memeriksa elemen dalam set

Gambar 4.3 Mengakses elemen dalam set

Pada gambar 4.3 Untuk memeriksa elemen dalam set dapat digunakan fungsi
‘if’. Kode ‘if “Bali” in setpulau’ menyatakan kondisi jika elemen “Bali” ada dalam
setpulau, maka akan ada output seperti “Pulau tertera dalam set”.Jika elemen “Bali”
tidak ada dalam setpulau maka output yang akan dihasilkan adalah “Pulau Bali tidak
tertera dalam set”.

4. Menambahkan elemen dalam set

Gambar 4.4 Menambahkan elemen dan menghitung banyak elemen set


Pada gambar 4.4,Fungsi add() bisa digunakan untuk menambahkan satu
elemen pada set. Pada gambar 4.4, ditambahkan satu elemen menggunakan
fungsi add yaitu “Semujur”. Fungsi lain yang bisa digunakan untuk
menambahkan elemen adalah update(). Perbedaannya dengan add adalah pada
update bisa menambahkan lebih dari satu elemen. Pada gambar 4.4, elemen
“Ketawai”,dan “Bali” ditambahkan secara bersamaan ke dalam set.Maka akan
menampilkan output seperti gambar diatas.

5. Menghitung banyaknya elemen dalam set

Gambar 4.5 Menghitung banyakanya elemen dalam set


Berdasarkan gambar 4.5, banyaknya elemen dalam set bisa dihitung dengan
fungsi length. Banyaknya elemen dalam setbangunan adalah 5 elemen.

6. Menghapus satu elemen dalam set

Gambar 4.6 Menghapus elemen set


Pada gambar 4.6 Menghapus satu elemen dalam set bisa dilakukan
dengan dua fungsi yaitu fungsi remove dan discard.. Perbedaan fungsi remove
dan discard adalah keluaran yang ditampilkan ketika elemen yang dipanggil
tidak ada dalam set. Pada fungsi remove, ketika elemen yang dipanggil tidak
ada dalam set, maka keluaran yang ditampilkan adalah error, sedangkan pada
fungsi discard keluaran yang ditampilkan adalah set awal atau set
semula.Disini,saya menggunakan fungsi remove untuk menghapus elemen
“Sumatera” sedangkan fungsi discard untuk menghapus elemen
“Jawa”.Selain fungsi remove dan discard ada juga fungsi pop.Fungsi ini
digunakan untuk menghapus satu elemen secara acak.Elemen yang terhapus
pada gambar diatas yaitu “Papua” dan “Sumatera”

7. Menghapus set

Gambar 4.8 Menghapus set


Pada gambar 4.8 ditunjukkan fungsi untuk menghapus set,yaitu fungsi
clear dan del.Fungsi clear digunakan untuk menghapus semua elemen set
sehingga isi set menjadi kosong. Pada gambar 4.8 ditunjukkan hasil dari
output fungsi clear yaitu set().Fungsi delete atau del adalah fungsi yang
digunakan untuk menghapus set hingga set tidak terdefinisi adalah fungsi
delete atau del.Gambar 4.8 menunjukkan output bahwa set yang dihapus
dengan fungsi del tidak lagi terdefinisi.

8. Menggabungkan dua set


Gambar 4.9 Menggabungkan dua set
Dua set bisa digabungkan menjadi satu dengan beberapa metode yaitu
union dan update.Fungsi union menggabungkan dua set dengan membuat
set baru.Selanjutnya fungsi update,untuk fungsi update tidak membuat set
baru dalam menggabungkan dua set tetapi meleburkan salah satu set ke
dalam set lainnya.

4.3.2 Dictonary
1. Membuat kode program dictionary

Gambar 4.10 Kode program dan akses elemen dictionary


Dictionary adalah kumpulan yang tidak berurutan, dapat diubah, dan
diindeks. Dalam Python, dictionary ditulis dengan kurung kurawal “{ }” ,
dan dictionary memiliki kunci dan nilai.

2. Mengakses elemen dalam dictionary


Gambar 4.11 Mengakses elemen
Pada gambar 4.11 Elemen dalam dictionary bisa diakses dengan
menggunakan key dictionary. Pada gambarn diatas variabel “Y” didefinisikan
sebagai value dari key “nama” dalam “Nama”, sehingga nilai “L” adalah
“NIM”
3. Mengubah nilai, menampilkan dengan loop, dan memeriksa dictionary
Gambar 4.12 Mengubah nilai dan menampilkan dalam perulangan
Pada gambar 4.12 ditunjukkan untuk mengubah nilai dalam dictionary.
Dengan menggunakan perulangan for, seperti pada Gambar 4.12 didapatkan
elemen dari dictionary yang dibuat seperti pada contoh pertama. Pada contoh
kedua dengan bantuan fungsi values () bisa didapatkan nilai dari elemen
dictionary. Pada contoh gambar diatas dengan bantuan fungsi items () akan
didapatkan keseluruhan dictionary berisi key dan elemen dari dictionary.
Pembeda dari fungsi values () dan items () ialah dengan fungsi values ()
akan menghasilkan hasil dari pernyataan didalam data setelah tanda titik dua
(:). Sedangkan dengan items () akan menghasilkan semua elemen yang
terdapat didalam data dictionary.
Elemen yang telah dimasukan kedalam dictionary dapat dicek dengan
menggunakan statement if … else … untuk memeriksa kondisi. Sehingga,
dapat memberikan perintah selanjutnya apabila konsdisi tersebut terpenuhi.

4. Menghitung banyaknya elemen dalam dictionary


Gambar 4.13 Menghitung banyaknya elemen dan menambah elemen dalam dictionary
Pada gambar 4.13 tentang menghitung banyaknya elemen dalam
dictionary.Cara menghitung banyaknya elemen dalam dictionary yaitu
menggunakan fungsi length. Berdasarkan gambar , banyaknya elemen dalam
“biodata” berjumlah 5 elemen.

5. Menambah dan menghapus elemen dictionary

Gambar 4.14 Menghapus elemen dan dictionary


Pada gambar 4.13 tentang menambahkan elemen dalam dictionary .Untuk
menambahkan elemen pada Dictionary yaitu dengan cara dapat langsung
yaitu menyebutkan key dan value-nya. Pada gambar 4.14, key [“Angkatan”]
dengan value “2021” ditambahkan ke Dictionary.
Selanjutnya nntuk menghapus elemen dalam dictionary bisa
menggunakan fungsi .Fungsi pop digunakan untuk menghapus elemen yang
dipanggil dalam kode program yaitu “Angkatan”.
Kemudian saya menghapus elemen menggunakan fungsi clear. Fungsi
clear digunakan untuk menghapus semua elemen dalam dictionary sehingga
dictionary menjadi kosong,maka output yang akan dihasilkan adalah []
Fungsi untuk menghapus elemen yang terakhit adalah Fungsi delete atau
del.Fungsi del digunakan untuk menghapus keseluruhan dictionary hingga
dictionary tidak lagi terdefinisi dan akan memunculkan error.

6. Menyalin dictionary

Gambar 4.15 Menyalin dictionary


Pada gambar 4.15 saya menyalin dictionary dapat menggunakan operasi
“=”, namun output-nya akan sangat bergantung pada dictionary awal. Ketika
dictionary asal berubah maka dictionary salinan juga berubah. Metode lain
untuk menyalin dictionary adalah dengan fungsi copy dan fungsi dict.Fungsi
copy hanya merujuk pada keadaan awal dictionary asal, sehingga ketika
dictionary asal diubah, dictionary salinan tidak ikut berubah, begitu juga
dengan fungsi dict. Penggunaan kedua fungsi tersebut bisa dilihat pada
gambar 4.15.

7. Membuat kamus bersarang atau nested dictionary

Gambar 4.16 Nested dictionary tipe 1


Pada gambar 4.16 ditunjukkan Nested dictionary atau dictionary
bersarang Tipe 1. Nested dictionary adalah dictionary dalam dictionary.
Pembuatan nested dictionary bisa menggunakan satu dictionary lalu diisikan
elemen-elemennya dalam dictionary di dalamnya seperti pada gambar 4.16.
Gambar 4.17 Nested dictionary tipe 2
Pada gambar 4.17 terdapat metode lain dalam membuat nested
dictionary adalah dengan membuat beberapa dictionary lalu
menggabungkannya seperti pada gambar 4.17. Dictionary “mahasiswa1”,
“Mahasiswa2”, dan “Mahasiswa3” digabung menjadi nested dictionary
“MahasiswaUndip”.

4.4 Penugasan
4.4.1 Buatlah sebuah set dan tampilkan di output terminal python

Gambar 4.18 Kode program set


Untuk menyelesaikan soal diatas,Set dibuat dengan tanda kurung
kurawal “{}”. Pada gambar 4.18 terlihat pada output terminal bahwa tipe
data yang dibuat adalah <class ‘set’> menunjukkan bahwa kode program
yang dibuat sudah benar.
4.4.2 Buat kode program untuk mengakses salah satu item di set

Gambar 4.19 Akses elemen dalam set


Pada gambar 4.19 ditunjukkan fungsi perulangan untuk mengakses
elemen dalam set akan ditampilkan secara acak karena set tidak memiliki
indeks. Tipe data set tidak seperti list dan tuple, sehingga tidak bisa
menggunakan indeks dalam mengakses elemen dalam set.Disini saya
mengakses setbaju dengan menggunakan for x in setbaju,maka output yang
saya dapatkan adalah elemen elemen tersebut disusun satu persatu secara
vertikal dan urut.

4.4.3 Buat Kode untuk mengecek elemen dalam set

Gambar 4.20 mengecek elemen set


Pada gambar 4.20 solusi untuk mengecek elemen dalam set dapat
dilakukan dengan fungsi if. Pada gambar 4.20 saya ingin memeriksa apakah
“adidas” ada dalam set atau tidak.Jika “Adidas” ada dalam set maka akan
muncul output “Adidas ada dalam set” namun jika “Adidas” tidak ada
dalam set,maka output yang akan dihasilkan yaitu “Adidas tidak ada dalam
set”.Setelah membuat program tersebut dan memeriksany,ternyata
“Adidas” tidak ada dalam set.

4.4.4 Buat kode untuk menambahkan item ke dalam set

Gambar 4.21 menambahkan item ke dalam set

Pada gambar 4.21 diatas,saya mencoba untuk menambahkan item


ke dalam setbaju.Kita dapat menambahkan item dalam set menggunakan
fungsi add dan update.Fungsi add hanya bisa menambahkan satu elemen
ke dalam set. Untuk menambahkan beberapa elemen ke dalam set
diperlukan fungsi update. Seperti pada gambar 4.21,untuk fungsi add saya
menambahkan elemen “nike”,sedangkan untuk fungsi update saya dapat
menambahkan lebih dari satu elemen yaitu “reebook” dan “kappa”.
4.4.5 Buat kode untuk mengukur banyaknya elemen

Gambar 4.22 Mengukur banyaknya elemen dalam set


Pada gambar 4.22 diatas,ditumjukkan pengukuran banyaknya
elemen menggunakan fungsi len dengan menulis fungsi print.len(setbaju)
banyaknya elemen yang tertera berjumlah 5.
4.4.6 Buat kode untuk menghapus satu elemen dalam set

Gambar 4.23 Menghapus elemen dalam set


Gambar 4.23 menunjukkan bahwa dengan menggungakan fungsi
remove () dan discard (), item pada data set dapat dihapus.Disini saya ingin
menghapus “bape” dapat menggunakan remove (). “bape” disini
merupakan keyword. Sehingga, data set pun berubah dengan item “bape”
tidak ada pada data tersebut lagi. Dalam penggunaan fungsi remove ()
tersebut, bila keyword yang dimasukkan salah dalam penulisannya atau
tidak berada didalam data set maka akan terjadi error.
Selanjutnya saya ingin menghapus item “undefeated” menggunakan
fungsi discard () yang kemudian hasil ditampilkan dengan menggunakan
perintah print () maka data set pun berubah dengan item “undefeated” tidak
ada pada data tersebut lagi dimana pada program sebelumnya “bape” sudah
dihapus terlebih dahulu maka output yang dihasilkan pun tidak
mengandung “undefeated” lagi. Dalam penggunaan fungsi tersebut, bila
keyword yang dimasukkan salah dalam penulisannya ataupun tidak
terkandung didalam data set, hasil yang keluar akan tetap sama dengan isi
datanya. Jadi, fungsi ini tidak akan terjadi error bila keyword yang
dimasukkan salah.
4.4.7 Buat kode untuk menghapus satu elemen dalam set (fungsi pop)

Gambar 4.24 Menghapus elemen dalam set dengan fungsi pop()


Pada gambar 4.24 dilakukan penghapusan elemen menggunakan
fungsi pop.Fungsi pop berfungsi menghapus satu elemen secara acak. Satu
elemen dipilih secara acak karena set tidak memiliki indeks. Pada gambar
diatas, elemen yang terhapus karena fungsi pop adalah elemen “gucci”.

4.4.8 Buat kode untuk menghapus satu elemen dalam set (fungsi clear dan
del)

Gambar 4.25 Menghapus elemen dan set


Pada Gambar 4.25 ditunjukkan penggunakan fungsi clear ().Jika kita
menggunakan fungsi clear() maka isi dalam “setbaju” akan dihapuskan dan
set tetap ada dengan keluarannya ialah set (). Bila menggunakan fungsi
clear (), penambahan atau pembeharuan set tetap bisa dilakasanakan.
Sedangkan saat menggunakan fungsi del SetBrand dan menggunakan
perintah print(setbaju), tidak hanya isi dari set tersebut yang akan dihapus
melainkan “SetFOOD” tersebut juga ikut dihapus dari program sehingga
akan keluar pemberitahuan bahwa “setbaju is not defined”. Bila set ingin
ditampilkan akan terjadi error karena set tersebut sudah tidak ada lagi.

4.4.9 Jelaskan perbedaan fungsi-fungsi untuk menghapus elemen dan berikan


analisis kalian!
Fungsi untuk menghapus elemen pada set ada 5 cara, setiap cara
memiliki kegunaan yang berbeda, ada fungsi remove, discard, pop, clear,
dan del. Fungsi remove dan discard akan menghapus elemen sesuai elemen
yang disebutkan dalam fungsi. Sedangkan, fungsi pop digunakan untuk
menghapus elemen terakhir dalam set. Karena set tidak tertata (unordered)
maka tidak bisa diprediksi elemen mana yang akan di hapus. Fungsi clear()
digunakan untuk mengosongkan set. Sedangkan, fungsi del() digunkana
untuk menghapus keseluruhan set.
4.4.10 Buat kode untuk menggabungkan 2 set

Gambar 4.2 Menggabungkan dua set


Pada Gambar 4.26, setbaju dan setsize digabungkan menggunakan
fungsi union () dan fungsi update (). Fungsi union () akan menyatukan dua
set atau lebih kedalam set baru, seperti ketika ingin menggabungkan data
setbaju dengan setsize maka kita harus menggunakan variabel baru yaitu
saya menamakan dengan “gabungan1” untuk membantu fungsi tersebut
dalam menjalankan tugasnya. Ketika “gabungan1 =
setbaju.union(setsize)” dibuat dan dijalankan dengan perintah
print(gabungan1) maka hasil yang didapat adalah {‘S’, ‘L’, ‘bape’,
‘stussy’, ‘M’, ‘XXL’, ‘gucci’, ‘XL’, “undefeated’, ‘supreme’}.
Sedangkan, fungsi update () akan menggabungkan suatu set kedalam
set yang lain atau memasukan suatu set kedalam set lain tanpa
membutuhkan variabel baru. Fungsi ini dapat langsung menjalankan
tugasnya dimana setbaju.update(setsize) akan dijalankan dengan perintah
print(setbaju) dimana data “setsize” digabungkan kedalam data “setbaju”
yang akan menghasilkan gabungan dari dua data set tersebut yang sama
seperti output union.

4.4.11 Buatlah sebuah Dictionary dan tampilkan di output terminal python

Gambar 4.3 Kode program dictionary


Pada gambar 4.21 ditunjukkan dalam membuat sebuah dictionary
dibuka dengan kurung kurawal lalu masukkan point dari elemen yang ingin
dipakai. Pada Gambar 4.41 saya menggunakan “Nama”, “NIM”, “Prodi”,
“Angkatan”, dan “Asal” sebagai pusat dari elemen.
.
4.4.12 Buat kode program untuk mengakses salah satu item di dictionary

Gambar 4.4 Akses elemen dalam dictionary


Pada gambar 4.22 ditunjukkan untuk mengakses suatu elemen pada
dictionary dapat dilakukan dengan cara menggunakan kurung siku [] dan
menggunakan fungsi get(), kemudian memanggil salah satu elemen di
dalam kamus tersebut maka akan menghasilkan nilai. Pada gambar di atas,
saya mengakses “Nama” dan hasil yang keluar adalah “Yodha Bhakti
Wirandanu”. Lalu, saya menggunakan fungsi get() untuk melihat elemen
dari “Prodi”. Ketika program dijalankan maka hasilnya yang keluar adalah
“Teknik elektro”.

4.4.13 Buat kode untuk mengubah nilai, menampilkan dengan loop dan
mengecek dengan kondisional

Gambar 4.5 Mengubah nilai dan menampilkan dalam loop


Berdasarkan gambar 4.23, ditunjukkan untuk mengubah nilai dan
menampilan seluruh elemen.Hal ini dapat dilakukan dengan beberapa
langkah.Langkah pertama menjadikan keys pada siapasaya menjadi x
dengan looping yaitu sintaks “for x in biodata.keys()”, dan menjadikan
values dalam biodata menjadi z dengan sintaks “for z in biodata.values()”.
Langkah terakhir yaitu dengan menggunakan sintaks for x, z in
biodata.items() : print (x,” ”,z) maka output dari seluruh elemen
ditampilkan seperti pada gambar 4.23 diatas.

4.4.14 Buat kode untuk mendapatkan jumlah elemen dalam dictionary

Gambar 4.6 Menghitung banyaknya elemen dalam dictionary


Pada gambar 4.25 untuk menghitung banyaknya elemen pasangan
key dan value dapat menggunakan fungsi length seperti pada gambar 4.25.
Berdasarkan gambar 4.25 banyaknya elemen pasangan key dan value ada
5, yaitu “Nama”, “NIM”, “Prodi”, “Angkatan”, dan “Asal”.
4.4.15 Buat kode untuk menambah dan menghapus elemen dalam dictionary

Gambar 4.7 Menambah dan menghapus elemen dictionary


Untuk menambah elemen dapat langsung dilakukan dengan
membuat kunci baru didalam kurung siku ‘[]’ dengan memanggil variabel
kamus yang ingin ditambahkan elemennya. Pada Gambar 4.26 saya
menambahkan elemen baru yaitu “Umur” pada dictionary dengan
menggunakan kurung siku [ ]. Ketika program dijalankan elemen baru akan
muncul pada indeks terakhir dictionary.
Fungsi popitem() dapat digunakan untuk menghapus kunci dan nilai
secara berpasangan yang paling akhir berdasarkan indeks. Pada Gambar
4.26 saya menghapus elemen dengan menggunakan fungsi popitem().
Fungsi ini berguna untuk menghapus elemen pada bagian paling belakang.
Ketika program dijalankan, karena “Umur” berada paling belakang, maka
ia akan hilang dari dictionary.

4.4.16 Buat kode untuk menyalin dictionary

Gambar 4.27 Menyalin dictionary


Menyalin dictionary dengan operasi “=” akan menyebabkan
dictionary salinan mereferensikan penuh dictionary asal yang berarti jika
dictionary asal diubah, maka dictionary salinan juga berubah. Menyalin
dictionary yang tidak terpengaruh jika dictionary asal diubah bisa
menggunakan fungsi copy dan fungsi dict seperti pada gambar 4.29 di
bawah.

4.4.17 Buatlah sebuah nested dictionary dan tampilkan dalam output terminal
python

Gambar 4.28 Nested dictionary tipe 1


Pada gambarNested dictionary atau dictionary bersarang adalah
dictionary dalam dictionary. Pembuatan nested dictionary bisa
menggunakan satu dictionary lalu diisikan elemen-elemennya dalam
dictionary di dalamnya seperti pada gambar 4.28. Dictionary “kamus” pada
gambar 4.28 berisi dictionary “Mahasiswa1”, “Mahasiswa 2”, dan
“Mahasiswa 3”.
Gambar 4.29 Nested dictionary tipe 2
Metode lain dalam membuat nested dictionary adalah dengan membuat
beberapa dictionary lalu menggabungkannya seperti pada gambar 4.29.
Dictionary “motor1”, “motor2”, dan “motor3” digabung menjadi nested
dictionary “koleksimotor”. Sintaks “koleksimotor” pada gambar 4.29 memiliki
arti bahwa dictionary “koleksimotor” terdiri dari dictionary “motor1”, “motor
2”, dan “motor 3”.

4.4.18 Analisis perbedaan antara set dan dictionary


Berdasarkan analisis yang telah dilakukan,dapat disimpulkan
perbedaan set dan dictionari.Pertama,dari perbedaan Definisi.Set adalah
kumpulan item yang bersifat unik dan tidak berurutan. Set tidak memiliki
indeks sehingga data yang disusun akan acak, sedangkan dictionary adalah
kumpulan data yang berurutan, dapat diubah, dan diindeks. Pada dictionary
anggotanya tersusun atas dua atribut key dan value yang keduanya ini
dipisahkan dengan tanda titik dua (key:value). Key dapat bertindak sebagai
indeks, maka nilainya harus bersifat unik.
Kedua,perbedaan sintaks yang ada didalamnya.Masing-masing tipe
data set dan dictionary memiliki sintaks pembuatan tersendiri. Set
menggunakan kurung kurawal ({ }) dan dictionary menggunakan kurung
kurawal diikuti dengan memasukan key dan value ({“key”:”value” }).
Terakhir,dalam set, data yang sudah dimasukan tidak dapat diubah,
tetapi data dapat ditambah dan dihapus. Sedangkan dalam dictionary, data
yang sudah dimasukan dapat diubah dengan menggunakan fungsi get().
4.5 Kesimpulan

1. Set merupakan data tipe collection yang tidak memakai indeks.


2. Set merupakan data tipe collection yang tidak memakai indeks. Pemanggilan
datanya mengunakan perintah “for x in y”, dimana ‘y’ variabel data yang
ingin dipanggil.
3. Set adalah tipe data kolektif yang digunakan untuk menyimpan banyak nilai
dalam satu variabel. Set dapat kita buat seperti membuat variabel biasa,
namun nilai variabelnya diisi dengan tanda kurung kurawal “{ }”.
4. Pada dasarnya fungsi pop akan menghapus elemen terakhir yang ada di dalam
set. Namun karena set tidak memiliki indeks, maka elemen yang dihapus
dipilih secara acak.
5. Dictionary adalah kumpulan data yang berurutan, dapat diubah, dan diindeks.
Dalam Python, dictionary ditulis dengan kurung kurawal “{ }” , dan
dictionary memiliki kunci dan nilai.
6. Dictionary items memiliki 3 sifat, yaitu: Unordered artinya tidak berurutan,
Changeable artinya bisa diubah, dan Unique artinya tidak bisa menerima dua
keys yang sama.
7. Keberadaan elemen dapat diperiksa menggunakan fungsi if.
8. Fungsi add dapat menambahkan satu elemen baru. Sedangkan untuk fungsi
update bisa menambahkan lebih dari satu elemen baru.
9. Fungsi len berfungsi untuk mengetahui banyaknya elemen yang ada pada
sebuah set maupun dictionary.
10. Fungsi remove akan menampilkan output error jika elemen yang diperiksa
tidak ada di dalam set. Sedangkan fungsi discard tidak akan menampilkan
output error jika elemen yang dicek tidak ada di dalam set. Fungsi discard
akan memberi output seperti set semula.
11. Fungsi clear akan menghapus semua elemen di dalam set maupun dictionary.
Sedangkan fungsi del akan menghapus set atau dictionary itu sendiri hingga
set dan dictionary tidak terdefinisi.
12. Dua set bisa digabung menggunakan fungsi union atau update. Hasil
penggabungan dari fungsi union adalah set baru, sedangkan hasil dari fungsi
update adalah peleburan salah satu set.
13. Untuk mengakses salah satu item dari dictionary, dapat menggunakan indeks
key.
14. Elemen pada dictionary bisa diubah dan ditambah menggunakan indeks key
dan diikuti dengan value dari key tersebut.
15. Mengakses elemen dalam dictionary dapat menggunakan fungsi perulangan
for.
16. Elemen pada sebuah dictionary bisa diperiksa keberadaannya dengan fungsi
if. Fungsi ini tidak akan memunculkan output apapun jika nilai yang dicari
tidak ada di dalam dictionary.
17. Terdapat beberapa fungsi untuk menghapus elemen-elemen pada Dictionary.
Pertama, ada fungsi pop untuk menghapus nilai yang dipanggil. Lalu ada
popitem yang akan menghilangkan elemen terakhir pada sebuah dictionary.
18. Dictionary bisa disalin menggunakan fungsi copy dan dict. Output yang
muncul akan berupa dictionary dengan nilai-nilai yang sama.
19. Kumpulan dictionary bisa dijadikan dalam satu dictionary besar yang disebut
juga sebagai nested dictionary.
Bab V
Percabangan (Kondisional dan Perulangan)

Asisten Pembimbing:
Adeev Nidya Perdana
Nama/NIM Peserta:
Yodha Bhakti Wirandanu

Tanda Penerimaan Laporan,


Semarang, 4 Juni 2022

(Adeev Nidya Perdana)


BAB V
PERCOBAAN 4
PERCABANGAN (KONDISIONAL DAN PERULANGAN)

5.1 Tujuan Percobaan


1. Mengetahui bentuk-bentuk percabangan kondisional dan percabangan
perulangan yang ada dalam bahasa Python.
2. Mengetahui, dapat menjelaskan, dan dapat membuat program dengan
menggunakan percabangan kondisional dan percabangan perulangan
pada Python.
3. Memahami fungsi-fungsi yang ada dalam percabangan kondisional dan
perulangan dalam bahasa Python.
4. Mengenal dan dapat menerapkan berbagai macam kondisional dan
perulangan pada Python.

5.2 Dasar Teori


5.2.1 Kondisional
Python mendukung logika kondisi yang biasa dalam matematika seperti:
 Sama dengan : a == b
 Tidak setara : a != b
 Kurang dari :a<b
 Kurang dari atau sama dengan : a <= b
 Lebih dari :a>b
 Lebih dari atau sama dengan : a >= b
Kondisi ini dapat digunakan dalam beberapa cara, paling umum di
pernyataan if … pernyataan dan perulangan (loop).

A. Indentasi
Indentansi adalah sebuah pendefinisian lingkup dalam kode.
Indentansi disebut juga sebagai ‘space’ untuk mendefinisikan lingkup kode.
Penggunaan indentasi adalah untuk menghindari error.
B. Elif
Secara gampang, kondisi ‘elif’ digunakan untuk mengecek kondisi ini
apabila kondisi sebelumnya tidak benar.

C. Else
Kondisi ‘else’, menyatakan apabila semua kondisi tidak benar, maka
eksekusi pernyataan pada kondisi else.

D. Bentuk If yang Pendek


Bentuk kondisional ‘if’ dapat dipendekkan sedemikian rupa sehingga
menghemat penggunaan baris.

E. And
Pernyataan ‘and’ digunakan untuk menambahkan syarat pada suatu
kondisional.

F. Nested If
Nested if adalah suatu kondisi jika suatu if statement memiliki beberapa
if statement di dalamnya.

G. Pass
Pernyataan ‘pass’ digunakan dalam suatu kondisi jika diinginkan untuk
mengosongkan lingkup if statement. Hal ini sangat krusial, karena jika
dikosongkan, maka akan terjadi error.

5.2.2 Perulangan (loop) dalam Python


Python memiliki dua perintah perulangan (loop) primitif:
 Loop dengan ‘while’
 Loop dengan ‘for’

A. Loop dengan ‘while’


Loop while digunakan untuk menjalankan rangkaian kode selama
kondisi benar.
1. Pernyataan Break
Pernyataan ‘break’ digunakan untuk menghentikan proses
perulangan, walaupun kondisi masih benar.

2. Pernyataan ‘Continue’
Pernyataan ‘continue’ digunakan untuk menghentikan perulangan
untuk sementara waktu, dan melompat ke perulangan setelahnya.

3. Pernyataan ‘Else’
Pernyataan ‘else’ adalah suatu pernyataan yang menyatakan suatu
kondisi tidak lagi bernilai benar.

B. Loop dengan ‘for’


Loop dengan for digunakan untuk mengulangi urutan dalam array (list,
tuple, set, dan dictionary) atau string. Loop for memudahkan program untuk
mengeksekusi pernyataan atau setiap item dalam array.
1. Loop untuk String
String adalah rangkaian karakter yang dapat diubah.

2. Pernyataan ‘Break’
Pernyataan ‘break’ digunakan untuk menghentikan perulangan
dengan suatu kondisi sebelum loop dapat dijalankan.
3. Pernyataan ‘Continue’
Pernyataan ‘continue’ digunakan untuk menghentikan perulangan
pada suatu indeks kemudian melanjutkan ke indeks selanjutnya.

4. Range()
Untuk mengulang satu set kode beberapa kali, kita dapat
menggunakan fungsi range(). Fungsi range() mengembalikan urutan
angka, mulai dari 0 secara default, dan bertambah dengan 1 (secara
default), dan berakhir pada angka yang ditentukan.

5. Else
Else dalam loop berguna untuk menentukan blok kode yang akan
dieksekusi ketika loop selesai.

6. Loop Bersarang
Loop bersarang berarti dalam sebuah loop terdapat beberapa loop
di dalamnya. Loop dalam akan dieksekusi satu kali untuk setiap
perulangan pada loop luar.

7. Pass
Pernyataan ‘pass’ digunakan untuk mengosongkan loop sehingga
menjadi loop tanpa konten.
5.3 Analisis dan Pembahasan
5.3.1 Kondisional
A. If

Gambar 5.1 Kondisional if

Berdasarkan Gambar 5.1, if merupakan kondisi yang digunakan


untuk mengeksekusi kode jika bernilai benar. Sementara itu jika
bernilai salah maka tidak akan tereksekusi perintahnya. Pada gambar,
kondisi if yang digunakan adalah A>B, artinya jika nilai A lebih besar
dari y maka kondisi bernilai benar. Karena kondisi pada program
tersebut benar, maka akan ditampilkan output “Nilai A lebih besar dari
B”.
B. Indentansi

Gambar 5.2 Kesalahan indentansi

Pada gambar 5.2 dapat dilihat penggunaan indentasi sangatlah


penting, karena jika terjadi kesalahan dalam indentasi akan
mengakibatkan kesalahan fatal dan terjadi error. Pada gambar tersebut
penggunaan indentasi pada penulisan print salah, seharusnya di beri
indentasi karena print tersebut berada dalam kondisional if.

C. Elif

Gambar 5.3 Kondisional elif

Pada Gambar 5.3 Terdapat pernyataan if yang dimana menyatakan


kondisi x< y. Lalu terdapat pernyataan elif x> y dan saat diperintah
print akan menghasilkan nilai x lebih besar dari y, karena pada
pernyaataan if kondisi x< y itu salah sehingga perintah print mengikuti
kondisi elif yang benar.

D. Else

Gambar 5.4 Kondisional else


Pada gambar 5.4 di atas terlihat variabel y lebih besar dari x, jadi
kondisi pertama tidak benar karena pada kondisi tersebut tertulis jika x
> y maka print(“Nilai x lebih besar dari y”), juga pada kondisi elif
tidak benar karena pada kondisi tersebut tertulis jika x == y maka
print(“Nilai x sama dengan y”), jadi alur program akan menuju ke
kondisi lain yaitu else dan mencetak ke layar bahwa “Nilai x kurang
dari y” karena tidak ada dari kondisi if dan elif yang memenuhi
syarat.Bisa juga dalam menuliskan kondisional else tanpa
menggunakan elif.
E. Bentuk If yang Pendek

Gambar 5.5 If pendek

Pada Gambar 5.5 menunjukkan bahwa if tetap bisa digunakan tanpa


harus membuat kode pada baris baru. Ketika program dijalankan hasil yang
keluar adalah “x lebih besar dari y”. Hal ini dikarenakan x memiliki nilai 5,
sedangkan y memiliki nilai 1.

F. And

Gambar 5.6 Penambahan syarat dengan ‘and’

Pada Gambar 5.6 kata kunci and adalah operator logika, dan berfungsi
untuk menggabungkan persyaratan bersyarat.Pada gambar diatas saya
menggunakan if yaitu untuk menguji apakah a lebih besar dari b,dan jika c
lebih besar dari a.

G. Nested If

Gambar 5.7 Nested if


Berdasarkan Gambar 5.7 terdapat variabel x bernilai 28 serta terdapat
tiga if, yaitu if x>14, if x>24, dam if x==28. Ketika terdapat if dalam sebuah
if, ini disebut if bersarang. Pada gambar ketika program dijalankan terdapat
3 output, yaitu “x lebih besar dari 20”, “x lebih besar dari 24”, dan “x sama
dengan 28”. Hal ini dikarenakan pada kondisi 1, nilai x > 20 karena x
bernilai 28 maka output pertama adalah “x lebih besar dari 20”, pada kondisi
2, nilai x> 24 maka output kedua adalah “x lebih besar dari 24”, dan yang
ketiga karena x bernilai 28, maka sesuai dengan kondisi 3, maka output
ketiga adalah “x sama dengan 28”.Ketiga output yang dihasilkan adalah
benar dan sesuai.
H. Pass

Gambar 5.8 Penggunaan ‘pass’ pada if

Pada Gambar 5.8 terdapat variabel a dan b yang kemudian di


nyatakan kondisional jika b > a maka pass. Karena pernyataan yang
dinyatakan adalah True maka tidak mengeluarkan hasil apapun, karena ada
penggunaan pernyataan pass. Dimana pass ini adalah suatu pernyataan yang
berfungsi untuk melewati suatu kondisi jika kondisi tersebut adalah benar.
5.3.2 Perulangan Loop
A. While

Gambar 5.9 Perulangan while

Berdasarkan Gambar 5.9, terdapat pengulangan while x < 9:


print(x), y+=1. Pada awal, y bernilai 1. Karena kondisi benar maka akan
print angka y sampai y tidak memenuhi persyaratan, yaitu saat y
bernilai 9 karena sudah bernilai tidak benar, yaitu 1, 2, 3,4,5,6,7, dan 8.

 Break

Gambar 5.10 Penggunaan ‘break’ pada while


Berdasarkan Gambar 5.10, break menghentikan loop bahkan jika
kondisi while benar.Saya menggunakan variabel i = 1 dengan while 1 <
8 dan saya menggunakan if == 4 lalu saya break.Hal ini menyebabkan
keluar dari loop ketika i sampai pada angka ketiga,serta loop tidak
diteruskan sampai 8.

 Continue

1
Gambar 5.11 Penggunaan ‘continue’ pada while

Pada Gambar 5.11 menunjukkan loop while pada kondisi x < 9.


Lalu kondisi 2 ketika x == 3. Pada Gambar 5.11 ketika program
dijalankan hasil yang keluar adalah 1, 2, 4, 5, 6, 7, 8, 9. Hal ini
dikarenakan x akan bertambah 1 secara terus menerus hingga sampai 9.
Lalu pada kondisi 2, ketika x bernilai sama dengan 3, maka nilai 3
tersebut tidak ikut dimasukkan atau dilongkap karena terdapat continue.

 Else
Gambar 5.12 Else pada while

Pada Gambar 5.12, bisa kita lihat bahwa L bernilai 15, dan pada
kondisi pertama while x < 8, dan kondisi else. Karena L tidak
memenuhi kondisi pertama, maka program akan menjalankan kondisi
else, yaitu print(“L tidak memenuhi syarat”).

B. For

Gambar 5.13 Perulangan for

Berdasarkan Gambar 5.13, perulangan for dapat digunakan untuk


print items pada list. Pada gambar saya menulis perintah for x in motor:
print(x). Yang berarti program akan print keseluruhan isi list item satu
per satu secara urut.
 Loop untuk String

Gambar 5.14 Loop untuk string

Pada gambar 5.14, loop dapat mengeja kata yang terdapat pada
string. Pada gambar saya menulis for x in “honda”. Maka output yang
dikeluarkan adalah “h”, “o”, “n”, “d”, “a”.

 Break

Gambar 5.15 Pernyataan ‘break’ pada for

Pada Gambar 5.15, break dapat menghentikan loop for pada indeks
tertentu. Pada gambar saya menulis break apabila x == ‘suzuki’ dalam
list item, maka output yang dikeluarkan adalah ‘honda’ dan ‘ktm’.
 Continue

Gambar 5.16 Pernyataan ‘continue’ pada for

Pada Gambar 5.16, dilakukan perulangan dengan menggunakan


while kemudian pada suatu kondisi terdapat pernyataan continue.
Dimana continue ini merupakan suatu pernyataan yang akan
melanjutkan perulangan setelah suatu fungsi telah terpenuhi. Seperti
yang dicontohkan pada gambar, ‘orca’ tidak ditampilkan pada terminal
karena dilakukan pernyataan continue pada kondisional if.Sehingga
output yang ditampilkan adalah “kyt”, “njs”, “arai”

 Range()

Gambar 5.17 Penggunaan fungsi range()


Pada Gambar 5.17 menunjukkan fungsi range() yaitu untuk
mengulang satu set kode beberapa kali dan mengembalikan urutan
angka, mulai dari 0 sampai angka yang ditentukan. Pada Gambar 5.17
saya menggunakan for x in range (12) maka output yang akan
dihasilkan adalah ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’, ‘10’, ‘11’.

 Else

Gambar 5.18 Else pada for

Pada Gambar 5.18 menunjukkan fungsi range() dan else yang


digunakan bersamaan. Ketika program dijalankan hasil yang keluar
adalah 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 dan “Akhirnya selesai”.Hal ini terjadi
karena batas elemen dari x adalah 11, artinya x harus kurang dari 11
dan ketika x mencapai 10 maka kondisi else akan memenuhi sehingga
hasil yang keluar adalah “Akhirnya selesai”.
 Nested For

Gambar 5.19 Nested for


Pada Gambar 5.19 menunjukkan penggunaan dua loop secara
bersamaan dengan membuat dua list yang berbeda. Ketika program
dijalankan hasil yang keluar berupa list ukuran digabung dengan list
buah seperti s kuning,m kuning, m biru, dan seterusnya. Jadi, nested for
akan print keseluruhan probabilitas penggabungan kedua list.

 Pass

Gambar 5.20 Pernyataan ‘pass’ pada for

Pada Gambar 5.20 menunjukkan pernyataan pass yang digunakan


untuk alasan tertentu loop for tanpa konten. Dapat diketahui dalam loop
itu tidak boleh kosong sehingga apabila ingin memiliki loop for tanpa
isi maka dapat menggunakan pass. Ketika program dijalankan hasil
yang keluar adalah kosong atau tanpa keluaran
5.4 Penugasan Praktikum
5.4.1 Pembuatan program konversi skor ke nilai
Buatlah program dengan kondisional bercabang untuk
mengkonversi dari skor ke nilai dengan mengikuti ketentuan tabel
berikut:
Tabel 5.1 Konversi skor ke nilai
Skor Nilai
80 s.d 100 A
70 s.d <80 B
55 s.d <70 C
40 s.d <55 D
<40 E

Gambar 5.21 Konversi skor ke nilai

Pembahasan:
Pada Gambar 5.21 memiliki variabel x untuk memasukkan skor
yang akan dikonversi. Secara kondisional, jika input x kurang dari 100
dan lebih besar dari 80, kita mendapatkan nilai A. Kondisi berikut
mendapatkan nilai berikut jika input x kurang dari 80 dan lebih besar
dari 70. Mendapatkan nilai B jika x yang dimasukkan kurang dari 70
dan lebih besar dari 55, dan nilai C jika x yang dimasukkan kurang dari
55 dan lebih besar dari 40. Kemudian dapatkan nilai D jika x tidak
memenuhi kedua pernyataan tersebut. Kondisi di atas diberi nilai E dan
diterima oleh kondisi lain yang paling rendah yang perlu diulang.

5.4.2 Buatlah tulisan “Teknik Elektro Undip ${index}” sebanyak 20 baris


dengan menggunakan perulangan ‘while’

Gambar 5.22 Perulangan “Teknik Elektro Undip” sebanyak 20 kali

Pembahasan:
Pada gambar 5.22 ditunjukkan penugasan kedua yang diminta
untuk membuat tulisan “Teknik Elektro Undip ${(index)}” sebanyak
20 baris. Pada gambar saya membuat perulangan while x<=20, maka
print(“Teknik Elektro Undip”, x) dan x+=1, nilai x awal adalah 1. Maka
output yang dihasilkan sesuai gambar.
5.4.3 Buatlah program untuk menghitung 10! (fakultif)

Gambar 5.23 Faktorial 10

Pembahasan :
Pada gambar 5,23 ditunjukkan penugasan ketiga yaitu diminta
untuk membuat program untuk menghitung 10!. Terdapat variabel y
dan faktorial, dimana y adalah variabel yang akan ditentukan
faktorialnya dan faktorial adalah variabel untuk menampung hasil
perhitungan nanti.Lalu, dilakukan perulangan for dengan for w in
range(1, y+1) dimana w adalah variabel baru yang berfungsi untuk
menampung hasil perulangan dan range(1, y+1) merupakan awal nilai
yang akan dimulai perulangannya dan y+1 adalah untuk perulangan y
yang akan ditambahkan 1 yang dimulai dari 0.Di dalam perulangan for
ini terdapat operator perkalian yaitu faktorial *= w ,dimana variabel
faktorial akan dikalikan dengan variabel w, hasil dari perulangan
for.Kemudian, dilakukan print(f”Hasil dari 10 adalah = {faktorial}”}
maka output yang akan dihasilkan adalah “Hasil dari 10 adalah
3628800.
5.4.4 Buatlah / modifikasi kode Python diatas untuk menampilkan tulisan
Teknik Elektro ${index} sebanyak 6x. (fungsi range)

Gambar 5.24 Perulangan for Teknik Elektro 6 baris

Pembahasan :
Untuk penugasan keempat, hampir sama pada penugasan kedua,
namun bedanya pada penugasan keempat menggunakan perulangan for.
Pada gambar saya membuat perulangan for x in range(0,6), maka
print(“Teknik Elektro Undip”, x).Maka output yang keluar adalah
perulangan dari “Teknik Elektro” sebanyak 6 kali dan juga indeksnya.
5.4.5 Perbedaan fungsi continue dan break dalam kondisional dan
perulangan

Gambar 5.25 Perbedaan continue dan break

Pembahasan :
Pada gambar 5.25 ditunjukkan continue dan break.Dalam fungsi
kondisional, continue memiliki fungsi untuk menghentikan iterasi saat
ini dan melanjutkan dengan yang setelahnya.Artinya saat perulangan
dilakukan dan pada fungsi kondisional terdapat pernyataan continue,
maka iterasi tersebut tidak termasuk dalam hitungan dan lanjut iterasi
berikutnya.Sedangkan untuk break, memiliki fungsi untuk
menghentikan loop, bahkan jika kondisi while benar.Ini berarti saat
perulangan dilakukan dan pada fungsi kondisional terdapat break, maka
setelah iterasi tersebut perulangan akan berhenti, walaupun while
tersebut dalam kondisi benar.
5.4.6 Modifikasi untuk model lain dengan data yang lebih banyak (nested
loop)

Gambar 5.26 Nested loop

Pembahasan :
Pada penugasan keenam diperintahkan untuk memodifikasi
nested loop dengan data yang lebih banyak. Pada gambar terdapat 3 list,
yaitu ukuran, warna dan pakaian. Nested for digunakan untuk
perulangan ini, yaitu for a in ukuran: for b in warna: for c in pakaian,
lalu beri perintah print(a,b,c) maka output yang dihasilkan adalah
gabungan ketiga list tersebut.
5.4.7 Buat satu skenario looping kosong dengan menggunakan fungsi pass

Gambar 5.27 Loop kosong

Pembahasan :
Pada gambar 2.7 penugasan ketujuh yaitu diperintahkan untuk
membuat loop kosong dengan fungsi pass. Disini, saya membuat list
buah terlebih dahulu, kemudian memberi perintah for x in makanan,
maka pass. Output yang dikeluarkan adalah “Selesai”, berarti loop di
atasnya adalah loop kosong.
5.5 Kesimpulan
1. Percabangan pada python terbagi menjadi dua, yaitu kondisional dan
perulangan. Kondisional merupakan tipe data percabangan yang
berfungsi untuk melakukan eksekusi jika statement yang diberikan
bernilai benar.
2. Kondisi Python dapat dibagi menjadi tiga jenis: if, elif, dan else, seperti
yang ditunjukkan pada Gambar 5.1, 5.3, dan 5.4. Perbedaan antara
kondisi Python adalah jika kondisinya benar, kode if dijalankan, jika
elif, kode dijalankan jika kondisinya benar, dan jika kondisi if dan elif
sebelumnya salah, kode akan dieksekusi. kode akan dieksekusi jika
kondisinya benar. Jika jika dan elif ada sebelum nilai yang salah.
3. Indentasi sangat penting untuk penulisan bersyarat dan berulang. Jika
Anda tidak memperhatikan lekukan, Anda akan mendapatkan
kesalahan dalam kode Anda, seperti yang ditunjukkan pada Gambar
5.2.
4. Pada kondisional maupun perulangan terdapat fungsi-fungsi yang mirip
dari kegunaannya maupun pengaplikasiannya.
5. Perulangan pada python dibagi menjadi dua, yaitu while dan for seperti
yang dapat dilihat pada Gambar 5.9 dan 5.13 While berfungsi untuk
menjalankan serangkaian pernyataan selama suatu kondisi bernilai
benar. Sementara itu, for berfungsi untuk mengulangi urutan pada list,
tuple, set, atau string
6. Kita bisa membuat nested pada kondisional dan perulangan seperti pada
Gambar 5.7 dan 5.19.
7. Loop while, dapat dijalankan ketika serangkaian pernyataan selama
suatu kondisi benar.
8. Loop for digunakan untuk mengulangi urutan (baik list, tuple,
dictionary, set, atau string). Loop ini berfungsi seperti metode iterator
seperti yang ditemukan dalam bahasa pemrograman berorientasi objek
lainnya.
9. Fungsi range() mengembalikan urutan angka, mulai dari 0 secara
default, dan bertambah dengan 1 (secara default), dan berakhir pada
angka yang ditentukan.
10. Perbedaan continue dan break yaitu dalam fungsi kondisional, continue
memiliki fungsi untuk menghentikan iterasi saat ini dan melanjutkan
dengan yang setelahnya.Artinya saat perulangan dilakukan dan pada
fungsi kondisional terdapat pernyataan continue, maka iterasi tersebut
tidak termasuk dalam hitungan dan lanjut iterasi berikutnya.Sedangkan
untuk break, memiliki fungsi untuk menghentikan loop, bahkan jika
kondisi while benar.Ini berarti saat perulangan dilakukan dan pada
fungsi kondisional terdapat break, maka setelah iterasi tersebut
perulangan akan berhenti, walaupun while tersebut dalam kondisi benar
seperti yang ditunjukkan pada gambar 5.25.
Bab VI
Numpy Python

Asisten Pembimbing:
Okrisal Reka N
Nama/NIM Peserta:
Yodha Bhakti Wirandanu/21060121140173

Tanda Penerimaan Laporan,


Semarang, 4 Juni 2022

(Okrisal Reka N)
BAB VI
PERCOBAAN V
NUMPY PYTHON

6.1 Tujuan
1. Praktikan dapat memahami cara membuat Numpy Array dalam Python.
2. Praktikan dpaat membedakan dimensi dalam array yang bekerja dalam
Numpy Array.
3. Praktikan dapat memahami penggunaan indexing dan slicing dalam
Numpy Array.
4. Praktikan dapat mengetahui karakteristik dari setiap tipe data dalam
Numpy Array.
5. Praktikan secara langsung oleh praktikan mengenai pembuatan Numpy
Array beserta tipe datanya.

6.2 Dasar Teori


6.2.1 Numpy Python
Numpy (Numerical Python) adalah library Python yang digunakan untuk
bekerja untuk scientific computing. Numpy mempunyai fngsi untuk bekerja dalam
domain aljabar linier, transformasi fourier, dan matriks. Contoh, penggunaannya
untuk operasi vector (1-d array) dan matrix (2-d array). Dalam Python sebetulnya
sudah memiliki lists yang bisa digunakan untuk melayani fungsi array / larik, tetapi
Numpy array memiliki keunggulan dibandingkan dengan list pada Python yaitu
konsumsi memory yang lebih kecil serta runtime yang lebih cepat. Numpy
bertujuan untuk menyediakan objek array hingga 50 kali lebih cepat dari list
Python tradisional.
Objek array dalam Numpy disebut naarray, tersedia banyak fungsi
pendukung yang membuat bekerja lebih mudah. Array sangat sering digunakan
dalam data science, dimana kecepatan dan sumber daya merupakan sesuatu yang
sangat penting. Data Science merupakan bidang yang mempelajari proses
pengolahan data, mulai dari penggalian hingga presentasi datanya dengan tujuan
untuk mengubah data mentah menjadi informasi yang bermanfaat. Array Numpy
disimpan di satu tempat terus menerus dalam memori tidak seperti list, sehingga
proses dapat mengakses dan memanipulasi dengan sangat efisien.

6.2.2 Membuat Array Numpy


Array dalam Numpy dapat dibuat dengan membungkusnya terlebih dahulu
dengan list, dan diubah menjadi Numpy array atau langsung membuat variabel
tanpa list terlebih dahulu.

Gambar 6.1 Array Numpy

Ada beberapa fungsi lagi yang dapat digunakan dalam membuat array antara lain
zeros(), ones(), arange(), linspace(), dan logspace().

Tabel 6.1 Fungsi array numpy


Fungsi Keterangan
zeros() Membuat array dengan output nilai 0
ones() Membuat array dengan output nilai 1
arange() Membuat array dengan output nilai dalam range
linspace() Membuat array dengan output nilai dalam interval
Membuat array dengan output nilai log Base10 dalam
logspace()
interval

6.2.3 Multidimensional Array


Salah satu fitur menarik dari Numpy adalah mampu membuat
multidimensional array dan melakukan manipulasi array dengan mudah dan cepat.
Multidimensional array adalah array yang berbentuk lebih dari 1 dimensi (1-D),
bisa 2-D, 3-D, 4-D dan seterusnya. Cara membuat multidimensional array sama
dengan membuat array 1 dimensi, perbedaannya hanya pada parameter yang
digunakan.

6.2.4 Indexing dan Slicing


Pengindeksan array sama dengan mengakses elemen array. Elemen array
dapat diakses dengan merujuk ke nomor indeksnya. Indeks dalam array Numpy
dimulai dengan 0, yang berarti bahwa elemen pertama memiliki indeks 0, dan yang
kedua memiliki indeks 1 dan seterusnya.

6.2.5 Tipe Data dalam Numpy


Secara default Python memiliki tipe data :
 string : digunakan untuk mewakili data teks, teks diberikan di bawah tanda
kutip, misalnya "ABCD".
 integer : digunakan untuk mewakili angka integer (bilangan bulat).
misalnya -1, -2, -3.
 float : digunakan untuk mewakili bilangan real (desimal/pecahan).
misalnya 1.2, 42.42.
 boolean : digunakan untuk mewakili True atau False.
 complex : digunakan untuk merepresentasikan angka dalam bilangan
kompleks misalnya 1.0 + 2.0j, 1.5 + 2.5j.
Numpy memiliki beberapa tipe data tambahan, dan merujuk ke tipe data
dengan satu karakter, seperti i untuk bilangan bulat, u untuk bilangan bulat tak
bertanda (unsigned), dan lain-lain. Di bawah ini adalah daftar semua tipe data
dalam Numpy dan karakter yang digunakan untuk mewakili mereka.
 i - integer
 b - boolean
 u - bilangan bulat tak bertanda
 f - mengapung
 c - pelampung kompleks
 m - timedelta
 M - datetime
 O - objek
 S - string
 U - unicode string
 V - memori tetap untuk tipe lain (tidak berlaku)

Untuk memeriksa tipe data dari array, Numpy memiliki properti yang
disebut dtype yang mengembalikan tipe data array.

6.3 Analisis dan Pembahasan


6.3.1 Import Numpy

Gambar 6.2 Import Numpy


Pada gambar 6.2 dapat dilihat bahwa langkah pertama dalam membuat array
adalah dengan cara mengimport terlebih dahulu library numpy dengan cara
mengetikkan import numpy as np. Untuk membuat array maka kita akan
menggunakan fungsi array(). Selanjutnya adalah melakukan pengecekan tipe data
array dengan menggunakan fungsi type(). NumPy array merupakan sebuah objek
ndarray, yang merupakan singkatan dari n-dimensional array.

Ada cara cara lain untuk mengimport NumPy adalah dengan alias : numpy as
np. NumPy biasanya diimpor dengan alias np. Dalam Python alias adalah nama
alternatif untuk merujuk ke hal yang sama. Pada percobaan saya membuat alias dari
numpy, mencetak type dari numpy, mencetak versi yang digunakan.

6.3.2 Dimensi 0-D

Gambar 6.3 Dimensi 0-D

Numpy memiliki Dimensi dalam Array. Dimensi dalam array adalah satu
tingkat kedalaman array (array bersarang/nested. nested array adalah array yang
memiliki array sebagai elemennya.

Ada beberapa jenis dimensi Array:

- Array 0-D
- Array 1-D
- Array 2-D
- Array 3-D
Pada gambar 1.2 adalah contoh Array 0-D, atau Skalars, adalah elemen dalam
array. Setiap nilai dalam array adalah array 0-D. Array 0-D atau yang lebih dikenal
dengan scalars merupakan elemen dari sebuah array.Disini saya melakukan
perintah num = np.array(30) maka jika kita print, output yang akan dihasilkan
adalah 30.

6.3.3 Array 1-D

Gambar 6.4 Array 1-D

Pada gambar 6.4 ditunjukkan dilakukan praktikum 1-D atau uni dimensional.
Array yang elemennya terdiri dari array 0-D. Array ini menjadi array yang paling
umum dan paling banyak digunakan.Pada gambar diatas,saya mencoba melakukan
perintah num = np.array (['e', 'f', 'g', 'h', 'i']) dengan print(num) lalu akan dihasilkan
output ['e', 'f', 'g', 'h', 'i'] inilah yang dinamakan Array 1-D
6.3.4 Tipe Data dalam Numpy

Gambar 6.5 Array 2-D


Pada gambar 6.5 ditunjukkan 2-D Array atau array 2 dimensi merupakan array
yang elemennya terdiri dari array 1 dimensi. Array 2 dimensi ini sering digunakan
untuk membuat matriks.Untuk menampilkan output dari Array 2-D ini, saya
melakukan perintah num = np.array ([[12,11,10],[9,8,7]]) lalu print(num) maka
akan menampilkan keluaran [[12 11 10] [ 9 8 7]]
6.3.5 Array 3-D

Gambar 6.6 Array 3-D

Pada gambar 6.6 untuk 3-D array atau array 3 dimensi merupakan array yang
elemennya memiliki larik 2-D array atau matriks.Disini, saya menggunakan data
angka ([[[12,11,10],[9,8,7]],[[12,11,10],[9,8,7]] dengan perintah num = np.array
([[[12,11,10],[9,8,7]],[[12,11,10],[9,8,7]]] ) lalu print(num), maka output yang akan
dihasilkan adalah Array 3 dimensi seperti pada gambar.

6.3.6 Menentukan dimensi Array

Gambar 6.7 Menentukan dimensi Array


Pada gambar diatas, yaitu gambar 1.6 pada pembuatan sebuah array numpy
dapat menentukan berapa dimensi yang dipakai pada sebuah numpy array. Hal
tersebut dapat dilakukan dengan menggunakan fungsi ndim.Saya melakukan 4
perintah fungsi ndim yang keempatnya mengeluarkan output yang benar dan
sesuai.

6.3.7 Argumen Ndim

Gambar 6.8 Argumen Ndim


Pada gambar 6.8 ditunjukkan Argument ndim yang dapat digunakan untuk
menentukan jumlah dimensi pada pembuatan sebuah array numpy. Array dapat
memiliki sejumlah dimensi. Ketika array dibuat, Anda dapat menentukan jumlah
dimensi dengan menggunakan argumen ndmin.Pada percobaan kali ini saya
mencoba melakukan perintah num = np.array ([9,8,7,6,5,4,3,2,1], ndmin=2) lalu
dengan print(num) dan print('Angka dimensinya adalah', kode.ndim).Output yang
akan dihasilkan dari perintah tersebut adalah [[9 8 7 6 5 4 3 2 1]] Angka dimensinya
adalah 2.

6.3.8 Numpy Array Indexing

Gambar 6.9 Numpy Array Indexing

Selanjutnya gambar 6.9 dilakukan pengindeksan array yaitu sama dengan


mengakses elemen array. Elemen array dapat diakses dengan merujuk nomor
indeksnya. Indeks dalam array numpy dimulai dengan 0. Saya melakukan perintah
num=np.array([11,12,13,14,15,16,17]) dengan print (num[0]), print(num[2]),
print(num[4]) dimana num[0] adalah 11, num[2] adalah 13, dan num[4] adalah
15.Output yang dihasilkan adalah benar dan sesuai.
6.3.9 Penjumlahan dengan Indeks Pada Array Numpy

Gambar 6.10 Penjumlahan dengan Indeks Array

Pada gambar 6.10 ditunjukan kegunaan indeks juga dapat dimanfaatkan untuk
operasi bilangan dengan menjabarkan nilai indeksnya saat melakukan perjumlahan.
Disini, saya melakukan perintah penjumlahan indeks [2] dan [4] yang berarti 13
ditambah 15 hasilnya yaitu 28.
6.3.10 Mengakses Array 2-D

Gambar 6.11 Mengakses Array 2-D


Pada percobaan diatas yaitu gambar 6.11 praktikum melakukan percobaan untuk
mengakses array 2 dimensi. Untuk mengakses elemen dari array 2-D kita dapat
menggunakan integer yang dipisahkan koma yang mewakili dimensi dan indeks
elemen.

6.3.11 Mengakses Array 3-D

Gambar 6.12 Mengakses Array 3-D

Pada percobaan diatas yaitu gambar 6.12 praktikan melakukan percobaan untuk
mengakses array 3 dimensi. Untuk mengakses elemen dari array 3-D kita dapat
menggunakan integer yang dipisahkan koma yang mewakili dimensi dan indeks
elemen.Disini saya melakukan perintang num = np.array ([[[8,9,10], [11,12,13]],
[[14,15,16],[17,18,19]]]) print(num[0,1,2]) maka output yang dihasilkan adalah 13.

6.3.12 Indeks Negatif Pada Array Numpy

Gambar 6.13 Indeks Negatif Pada Array Numpy

Pada percobaan diatas praktikan melakukan percobaan untuk menggunakan


indeks negatif. Indeks negative akan mengakses elemen dimulai pada akhir.Lalu,
saya menambhakna print ‘elemen terakhir daru dim ke -3 :’ dan outputnya adalah
elemen terakhir daru dim ke -3 : 26.
6.3.13 Numpy Array Slicing

Gambar 6.14 Numpy Array Slicing


Pada gambar 6.14 ditunjukkan tentang slicing / mengiris dalam python berarti
mengambil elemen dari satu indeks yang diberikan ke indeks yang diberikan
lainnya. Untuk menggunakan slice dengan bentuk umum indeks seperti ini: [start:
end]. Kita juga bisa mendefinisikan langkahnya, seperti ini: [start: end: step]. Jika
start tidak ditentukan, maka start dianggap 0. Jika end tidak ditentukan maka end
dianggap panjang array di dimensi itu. Jika step tidak ditentukan maka step ini
dianggap 1.Bisa kit alihat bahwa setiap perintah yang saya jalankan memiliki output
yang sesuai dan benar.

6.3.14 Slicing Numpy Array Pada 2 Dimensi

Gambar 6.15 Slicing Numpy Array Pada 2 Dimensi


Pada percobaan gambar 6.15 saya mencoba melakukan pecobaan untuk slicing
numpy pada 2 dimensi. Dapat diketahui kita dapat melakukan slicing pada kedua
dimensi secara sekaligus.Output bisa kita lihat pada gambar diatas.

6.3.15 Tipe Data Pada Array Numpy

Gambar 6.16 Tipe Data Pada Array Numpy

Pada numpy memiliki beberapa tipe data tambahan, dan merujuk ke tipe data
dengan satu karakter, seperti i untuk bilangan bulat, u untuk bilangan bulat tak
bertanda (unsigned), dan lain-lain. Pada library numpy terdapat argument yang
dapat digunakan untuk mengembalikan tipe data array yang digunakan pada array
tersebut yaitu dtype.Disini saya melakukan perintah num = np.array
([13,14,15,16]) dengan print(num.dtype) maka output yang akan dihasilkan adalah
int 32.
6.3.16 Menentukan Tipe Data Pada Array Numpy

Gambar 6.17 Menentuka Tipe Data Pada Array Numpy

Pada 6.17 ditunjukkan pembuktian bahwa numpy kita juga dapat untuk membuat
array dengan tipe data yang ditentukan saat pembuatannya. Hal ini dapat dilakukan
dengan menggunakan argument dtype=.

6.3.17 Konversi Jenis Data Pada Array yang Ada

Gambar 6.18 Konversi Jenis Data


Gambar 6.19 Penjelasan tipe data

Pada gambar diatas 6.18 saya mencoba melakukan konversi jenis data pada
array dengan menggunakan metode astype(). Dimana metode ini adalah cara terbaik
untuk mengubah tipe data dari array yang ada dengan membuat Salinan array dan
memungkinkan untuk memenentukan tipe data sebagai parameter
6.3.18 Perbedaan Copy dan View

Gambar 6.20 Perbedaan Copy dan View

Pada gambar 1.19 saya mencoba melakukan copy dan view.Dari percobaan ini
saya dapat menyimpulkan bahwa perbedaan utama antara copy dan view pada
array adalah copy berupa array baru, dan view hanya berupa tampilan array asli.
Copy memiliki data dan perubahan apapun yang dilakukan pada copy tidak akan
memengaruhi array asli, dan perubahan apa pun yang dibuat pada array asli tidak
akan memengaruhi copy. View tidak memiliki data dan perubahan apapun yang
dilakukan pada view akan memengaruhi array asli, dan setiap perubahan yang
dibuat pada array asli akan memengaruhi view.
6.3.19 Slicing Numpy Array Pada 2 Dimensi

Gambar 6.21 Basic Atribut

Pada percobaan diatas ditunjukkan Basic Atribut yaitu percobaan untuk memeriksa
apakan array lama dan baru memiliki basis apa tidak. Setiap array NumPy memiliki
basis atribut yang mengembalikan Tidak Ada jika array memiliki data. Jika tidak,
atribut dasar merujuk ke objek asl
6.4 Kesimpulan
1. Berdasarkan Gambar 6.1 terdapat salah satu dari library Python yaitu
Numpy. Numpy adalah pustaka Python yang digunakan untuk bekerja
dengan array.
2. Berdasarkan pada Gambar 6.3 array 0-D atau scalars adalah elemen
dalam array. Setiap nilai dalam array adalah array 0-D.
4. Berdasrkan pada Gambar 6.4 array yang memiliki array 0-D sebagai
elemen-elemennya disebut array uni-dimensional atau 1-D.
5. Berdasarkan pada Gambar 6.5 array yang memiliki array 1-D sebagai
elemen-elemennya disebut array 2-D.
6. Berdasarkan pada Gambar 6.6 array yang memiliki array 2-D (matriks)
sebagai elemen-elemennya disebut array 3-D.
7. Berdasarkan pada Gambar 6.7 terdapat cara memeriksa dimensi array
dengan menggunakan argumen ndim. Sebelum dimasukkan data yang
ingin di cek dimensinya, dilakukan import Numpy terlebih dahulu.
8. Berdasarkan Gambar 6.8 array dapat memiliki sejumlah dimensi.
Ketika array dibuat, array dapat ditentukan jumlah dimensinya dengan
menggunakan argumen ndmin.
9. Berdasarkan Gambar 6.9 pengindeksan array yaitu sama dengan
mengakses elemen array. Elemen array dapat diakses dengan merujuk
nomor indeksnya. Indeks dalam array numpy dimulai dengan 0.
10. Berdasarkan Gambar 6.10 Pada gambar 6.10 ditunjukan kegunaan
indeks juga dapat dimanfaatkan untuk operasi bilangan dengan
menjabarkan nilai indeksnya saat melakukan perjumlahan.
11. Berdasarkan pada Gambar 6.11 ketika ingin mengakses elemen dari
array 2-D dapat menggunakan integer yang dipisahkan koma yang
mewakili dimensi dan indeks elemen.
12. Berdasarkan gambar 6.13, ditunjukkan bahwa Indeks negative akan
mengakses elemen dimulai pada akhir
13. Berdasarkan Gambar 6.14 ditunjukkan tentang slicing / mengiris dalam
python berarti mengambil elemen dari satu indeks yang diberikan ke
indeks yang diberikan lainnya.
14. Berdasarkan Gambar 6.15 pecobaan untuk slicing numpy pada 2
dimensi. Diketahui dapat melakukan slicing pada kedua dimensi secara
sekaligus.
15. Berdasarkan Gambar 6.16 . Pada library numpy terdapat argument yang
dapat digunakan untuk mengembalikan tipe data array yang digunakan
pada array tersebut yaitu dtype.
16. Berdasarkan Gambar 6.17 ditunjukkan pembuktian bahwa numpy juga
dapat untuk membuat array dengan tipe data yang ditentukan saat
pembuatannya. Hal ini dapat dilakukan dengan menggunakan argument
dtype=.
17. Berdasarkan Gambar 6.18 ditunjukkan konversi jenis data pada array
dengan menggunakan metode astype(). Dimana metode ini adalah cara
terbaik untuk mengubah tipe data dari array yang ada dengan membuat
Salinan array dan memungkinkan untuk memenentukan tipe data
sebagai parameter.
18. Berdasarkan Gambar 6.20 perbedaan utama antara copy dan view pada
array adalah copy berupa array baru, dan view hanya berupa tampilan
array asli.
Bab VII
Phyton Scipy

Asisten Pembimbing:
Savero Pakavi Z
Nama/NIM Peserta:
Yodha Bhakti Wirandanu/21060121140173

Tanda Penerimaan Laporan,


Semarang, 4 Juni 2022

(Savero Pakavi Z)
BAB VII

PERCOBAAN VI

PYTHON SCIPY

7.1. Tujuan
1. Praktikan dapat memahami cara membuat Scientific Phyton atau SciPy
menggunakan aplikasi Phyton.
2. Praktikan dapat memahami dan membedakan kategori unit konstanta yang
terprogram dalam SciPy.
3. Praktikan dapat memahami dan menggunakan SciPy untuk mencari nilai
minimal fungsi.
4. Praktikan dapat mengetahui dan menggunakan sparse data dalam
pemrogaman SciPy.
5. Praktikan dapat mengetahui dan menggunakan metode komponen yang
terhubung dalam pemrogaman SciPy
6. Praktik secara langsung oleh praktikan mengenai pembuatan SciPy beserta
tipe datanya.

7.2. Dasar Teori


7.2.1. Science Phyton
Python adalah bahasa pemrograman tinggi yang dapat melakukan
eksekusi sejumlah intruksi multiguna secara langsung (interpretatif) dengan
metode orientasi objek (Object Oriented Programming) serta menggunakan
semantik dinamis untuk memberikan tingkat keterbacaan syntax. Dalam
penggunaannya python memiliki beberapa library yang dapat digunakan dan
salah satu library tersebut adalah SciPy atau biasa disebut dengan science
python. SciPy sendiri merupakan sebuah library yang berisi komputasi sains
yang menggunakan NumPy sebagai dasarnya. Penggunaan dari SciPy sangat
berguna karena SciPy sudah teroptimisasi dan memiliki fungsi tambahan
yang bisa digunakan di dalam NumPy dan data science.
7.2.2. Unit Categories
Karena SciPy merupakan library yang fokus ke implementasi sains maka
SciPy memiliki konstanta yang sudah ada di dalamnya. Konstanta ini dapat
berguna ketika sedang bekerja dengan data science. Untuk mengecek ada
konstanta apa saja di dalam sebuah library SciPy maka bisa langsung diakses
menggunakan kode program “print ( dir ( constants ) )”. Karena jumlah
konstanta yang beragam maka SciPy membagi konstanta tersebut ke dalam
beberapa kategori. Penjelasan akan kategori tersebut dapat dilihat pada tabel
berikut.

Tabel 7.1 Kategorisasi Units


Kategori Penjelasan
Metric Mengembalikan unit yang ditentukan dalam meter
Binary Mengembalikan unit yang ditentukan dalam bytes
Mass Mengembalikan unit yang ditentukan dalam kg
Angle Mengembalikan unit yang ditentukan dalam radian
Time Mengembalikan unit yang ditentukan dalam detik
Mengembalikan unit yang ditentukan dalam meter
Length
(jarak)
Pressure Mengembalikan unit yang ditentukan dalam pascal
Mengembalikan unit yang ditentukan dalam meter
Area
persegi
Mengembalikan unit yang ditentukan dalam kubik
Volume
meter
Speed Mengembalikan unit yang ditentukan dalam meter/detik
Temperature Mengembalikan unit yang ditentukan dalam kelvin
Energy Mengembalikan unit yang ditentukan dalam joule
Power Mengembalikan unit yang ditentukan dalam watt
Force Mengembalikan unit yang ditentukan dalam newton
Konstanta kategori binary prefixes

Biner Dalam Byte


Kibi 1024
Mebi 1048576
Gibi 1073741824
Tebi 1099511627776
Pebi 1125899906842624
Exbi 1152921504606846976
Zebi 1180591620717411303424
Yobi 1208925819614629174706176

Tabel 7.3 Kostanta kategori massa

Massa Dalam Kilo Gram


Gram 0.001
Metric Ton 1000.0
Grain 6.479891e-05
Lb 0.45359236999999997
Pound 0.45359236999999997
Oz 0.028349523124999998
Ounce 0.028349523124999998
Stone 6.3502931799999995
Long Ton 1016.0469088
Short Ton 907.1847399999999
Troy Ounce 0.031103476799999998
Troy Pound 0.037324172159999996
Carat 0.0002
Atomic Mass 1.66053904e-27
MU 1.66053904e-27
U 1.66053904e-27

Tabel 7.4 Konstanta kategori angle

Kategori Angle Dalam Radians


Degree 0.017453292519943295
Arcmin 0.000290882086657216
Arcminute 0.000290882086657216
Arcsec 4.84813681109536e-06
Arcsecond 4.84813681109536e-06

Tabel 7.5 Konstanta kategori time

Waktu Dalam Detik


Minute 60.0
Hour 3600.0
Day 86400.0
Week 604800.0
Year 31536000.0
Julian Year 31557600.0

7.2.3. Optimizers dalam SciPy


Optimizers dalam SciPy merupakan sebuah prosedur di dalam SciPy yang
dapat dilakukan untuk mencari sebuah nilai minimum dalam suatu fungsi
atau mencari sebuah akar dari sebuah persamaan.

 Roots of an Equation
NumPy mampu menemukan akar untuk polinomial dan persamaan linier,
tetapi tidak dapat menemukan akar untuk persamaan nonlinier. Maka dari itu
penggunaan fungsi “optimize.root” dalam SciPy diperlukan. Fungsi ini
memerlukan dua argumen. Argumen yang pertama adalah “fun” yang
menandakan fungsi dari sebuah persamaan dan argument yang kedua adalah
“x()” yang menandakan tebakan awal untuk sebuah akar.

 Finding Minima
Untuk mengecilkan sebuah fungsi maka dapat menggunakan fungsi SciPy
yaitu “scipy.optimize.minimize()”. Sama seperti roots of an equation fungsi
minimize akan memerlukan argument-argumen. Namun argument dalam
minimize akan lebih banyak. Argumen tersebut terdiri dari “fun”, “x()”,
“method”, “callback”, dan “option”
7.2.4. Sparse Data
Sparse data adalah Data jarang adalah data yang sebagian besar memiliki
elemen yang tidak digunakan (elemen yang tidak membawa informasi apa
pun). Pengertian lain dari sparse data adalah kumpulan data di mana sebagian
besar nilai item adalah nol. Dalam pengerjaannya SciPy memiliki modul yang
bisa digunakan untuk mengolah sparse data yaitu “scipy.sparse”. Dengan
menggunakan modul ini maka akan dihasilkan dua macam matriks. Berikut
penjelasan akan dua matriks tersebut

 CSC
CSC (Compressed sparse column) digunakan untuk aritmatika yang
efisien dan pemotongan kolom yang cepat.

 CSR
CSR (Compressed sparse row) digunakan untuk pengirisan baris cepat,
produk vektor matriks lebih cepat.
 CSR Matrix
Matriks CSR dengan melewatkan sebuah array ke dalam fungsi
“scipy.sparse.csr_matrix()”. Matriks CSR ini dapat digunakan untuk
mencari sebuah item tertentu dan menghitung ada berapa banyak item
tersebut ada dalam sebuah matriks
 Sparse Matrix Methods
Sparse Matrix Methods merupakan metode yang digunakan untuk
Melihat data yang disimpan (bukan item nol). Hal ini bisa didapatkan
dengan menggunakan properti “.data”, “count_nonzeros()”,
“sum_duplicates()”, dan “toscs()”.
7.2.5. Mencari Lintasan Terpendek dari Sebuah Grafik
Untuk mencari sebuah jalur terpendek dari sebuah grafik maka dapat
menggunakan beberapa metode. Penjelasan akan metode tersebut adalah
sebagai berikut.

 Dijkstra
Metode dijkstra digunakan untuk mencari lintasan terpendek dalam suatu
graf dari satu elemen ke elemen lainnya. Argument yang dibutuhkan untuk
menjalankan metode ini adalah “return_predecessors”, “indices”, dan
“limit”.
 Floyd Warshall
Metode “floyd_warshall()” digunakan untuk menemukan jalur terpendek
antara semua pasangan elemen.
 Bellman Ford
Metode “bellman_ford()” dapat menemukan jalur terpendek antara semua
pasangan elemen, tetapi metode ini juga dapat menangani bobot negatif.
 Depth First Order
Metode “depth_first_order()” mengembalikan kedalaman traversal pertama
dari sebuah node. Fungsi ini mengambil argumen yaitu grafik dan elemen
awal untuk melintasi grafik.
 Breadth First Order
Metode “breadth_first_order()” mengembalikan traversal pertama yang
luas dari sebuah node. Fungsi ini mengambil argumen yaitu grafik dan
elemen awal untuk melintasi grafik.

Triangulasi poligon adalah membagi poligon menjadi beberapa segitiga


yang dengannya kita dapat menghitung luas poligon. Triangulasi dengan titik-titik
berarti membuat segitiga-segitiga yang tersusun atas permukaan di mana semua
titik yang diberikan berada pada setidaknya satu titik sudut dari sembarang segitiga
di permukaan.

7.2.6. Triangulation
Triangulasi poligon adalah membagi poligon menjadi beberapa
segitiga yang dengannya kita dapat menghitung luas poligon. Triangulasi
dengan titik-titik berarti membuat segitiga-segitiga yang tersusun atas
permukaan di mana semua titik yang diberikan berada pada setidaknya satu
titik sudut dari sembarang segitiga di permukaan.
7.2.7. Convex Hull
Convex hull adalah poligon terkecil yang mencakup semua titik yang
diberikan. Metode yang akan digunakan untuk membuat convex hull adalah
”ConvexHull()”.

7.2.8. KDTrees
KD Trees adalah struktur data yang dioptimalkan untuk kueri tetangga
terdekat. Dalam sekumpulan titik, menggunakan KDTrees dapat secara efisien
menanyakan titik mana yang paling dekat dengan titik tertentu. Metode
“KDTree()” digunakan mengembalikan objek KDTree. Metode “query()”
mengembalikan jarak ke tetangga terdekat dan lokasi tetangga.

7.2.9. Distance Matrix


Ada banyak Metrik Jarak yang digunakan untuk menemukan berbagai jenis
jarak antara dua titik dalam data science yaitu, Euclidean distsance, cosine
distsance, dll. Jarak antara dua vektor mungkin tidak hanya panjang garis lurus
di antara mereka, tetapi juga sudut antara mereka dari asal, atau jumlah langkah
unit yang diperlukan, dll. Banyak kinerja algoritme machine learning sangat
bergantung pada metrik jarak. Contoh dari distance matrix ini sendiri terdiri
dari Euclidean Distance, Cityblock Distance (Manhattan Distance), Cosine
Distance, dan Hamming Distance
7.3. Analisis dan Pembahasan
7.3.1. Import SciPy

Gambar 7.1 Import SciPy

Pada Gambar 7.1, dilakukan percobaan untuk meng-import pustaka SciPy.


SciPy menawarkan sekumpulan konstanta matematika, pada contoh diatas
saya menggunakan ceni dan gram sebagai contoh pemograman dengan
menuliskan (constanta.centi) dan juga (constanta.gram). Pada gambar di atas
dinyatakan bahwa untuk mengimport scipy dapat dilakukan dengan cara
menambahkan pernyataan “from scipy import module”. Seperti pada gambar,
untuk mengetahui meter dalam satu centimeter dan mengetahui gram dalam
satu kilogram digunakan pernyataan dan perintah cetak berupa
“print(constant.centi)”, maka output yang akan dihasilkan adalah 0.01 dan
0.001.Disini saya menggunakan Aplikasi anaconda sehingga tidak perlu
menginstal tidak perlu menginstal terlebih dahulu.
7.3.2. Checking SciPy Version

Gambar 7.2 Checking SciPy Version


Percobaan gambar 7.2 dilakukan percobaan untuk mengecek dan
mengetahui versi Pustaka yang digunakan pada praktikum kali ini.Untuk
mengeceknya hanya perlu menuliskan program dengan tanda kurung
(scipy._version__) maka jika dijalankan maka versinya akan muncul seperti
pada contoh yaitu versi 1.7.1

7.3.3. Constans in SciPy

Gambarb7.3 Konstanta pi

Pada gambar diatas, yaitu gambar 7.3 dilakukan percobaan Konstanta yang
ada di Scipy.Karena SciPy lebih fokus pada implementasi ilmiah, SciPy
menyediakan banyak konstanta ilmiah bawaan. Pada percobaan ini, praktikan
mencoba untuk menerapkan constants pada Pustaka scipy. Constants yang
dipakai pada percobaan kali ini adalah pi dengan memberi perintah
“print(constants.pi)” dimana hasilnya ialah 3.141592653589793. Lalu
menggunakan konstanta planck dengan memberi perintah
“print(constants.Planck)” yang hasilnya 6.62607015e-34.Constants pada
Pustaka ini bertujuan untuk memberikan konstanta sains dan akan sangat
membantu pada pengerjaan data science.
7.3.4. Konstanta Unit

Gambar 1.4 Konstanta unit

Pada percobaan selanjutnya yaitu gambar 1.4, Konstanta unit Scipy.Disini


kita bisa melihat semua konstanta dengan menggunakan fungsi dir() yaitu
dengan perintah print(dir(constants)) untuk menampilkan unit agar muncul.
7.3.5. Matriks Prefixes

Gambar 7.5 Metric prefixes


Tabel 7.6 Konstanta kategori metric prefixes

Satuan Dalam Meter


Yotta 1e+24
Zetta 1e+21
Exa 1e+18
Peta 100000000.0
Tera 1000000.0
Giga 100000.0
Mega 10000.0
Kilo 1000.0
Hecto 100.0
Deka 10.0
Deci 0.1
Centi 0.01
Milli 0.001
Micro 1e-06
Nano 1e-09
Pico 1e-12
Femto 1e-15
Atto 1e-18
Zepto 1e-21

Berdasarkan Gambar 7.5 terdapat konstanta kategori metric (SI) prefixes.


Apabila ingin menampilkan konstanta kategori metric (SI) prefixes dalam
satuan meter, maka dapat dilakukan perintah print(constants.x). x merupakan
satuan-satuan yang terdapat dalam konstanta kategori metric (SI) prefixes dan
akan menghasilkan output seperti pada Gambar 7.5. Konstanta dari metric
prefixes dapat dilihat pada Tabel 7.1.
7.3.6. Binary Prefixes

Gambar 7.6 Binary prefixes

Tabel 7.7 Konstanta kategori binary prefixes

Biner Dalam Byte


Kibi 1024
Mebi 1048576
Gibi 1073741824
Tebi 1099511627776
Pebi 1125899906842624
Exbi 1152921504606846976
Zebi 1180591620717411303424
Yobi 1208925819614629174706176
Pada Gambar 7.6 ditunjukkan terdapat konstanta kategori binary prefixes. Apabila
ingin menampilkan konstanta kategori metric (SI) prefixes dalam bytes, maka dapat
dilakukan perintah print(constants.x). x merupakan ukuran biner yang terdapat dalam
konstanta kategori binary prefixes dan akan menghasilkan output seperti pada Gambar
1.6. Konstanta dari binary prefixes dapat dilihat pada Tabel 7.7.

7.3.7. Mass

Gambar 7.7 Mass

Tabel 7.8 Kostanta kategori massa

Massa Dalam Kilo Gram


Gram 0.001
Metric Ton 1000.0
Grain 6.479891e-05
Lb 0.45359236999999997
Pound 0.45359236999999997
Oz 0.028349523124999998
Ounce 0.028349523124999998
Stone 6.3502931799999995
Long Ton 1016.0469088
Short Ton 907.1847399999999
Troy Ounce 0.031103476799999998
Troy Pound 0.037324172159999996
Carat 0.0002
Atomic Mass 1.66053904e-27
MU 1.66053904e-27
U 1.66053904e-27

Pada Gambar 7.7 ditunjukkan terdapat konstanta kategori mass. Apabila kita ingin
menampilkan konstanta kategori mass dalam kilo gram, maka dapat dilakukan
perintah print(constants.x). x merupakan ukuran massa yang terdapat dalam konstanta
kategori mass dan akan menghasilkan output seperti pada Gambar 7.7. Konstanta dari
kategori mass dapat dilihat pada Tabel 7.8.

7.3.8. Angle

Gambar 7.8 Angle

Tabel 7.9 Konstanta kategori angle

Kategori Angle Dalam Radians


Degree 0.017453292519943295
Arcmin 0.000290882086657216
Arcminute 0.000290882086657216
Arcsec 4.84813681109536e-06
Arcsecond 4.84813681109536e-06

Pada Gambar 7.8 ditunjukkan terdapat konstanta kategori angle. Apabila


ingin menampilkan konstanta kategori angle dalam radians, maka dapat
dilakukan perintah print(constants.x). x merupakan unit-unit kategori angle
yang terdapat dalam konstanta kategori angle dan akan menghasilkan output
seperti pada Gambar 7.8. Konstanta dari kategori angle dapat dilihat pada
Tabel 7.9.
7.3.9. Kategori Time

Gambar 7.9 Kategori time


Tabel 7.10 Konstanta kategori time

Waktu Dalam Detik


Menit 60.0
Jam 3600.0
Hari 86400.0
Minggu 604800.0
Tahun 31536000.0
Julian Year 31557600.0

Pada Gambar 7.9 terdapat konstanta kategori time. Apabila ingin menampilkan konstanta
kategori time dalam seconds, maka dapat dilakukan perintah print(constants.x). x
merupakan unit-unit kategori time yang terdapat dalam konstanta kategori time dan akan
menghasilkan output seperti pada Gambar 7.9. Konstanta dari kategori time dapat dilihat
pada Tabel 7.10.
7.3.10. Kategori Lenght

Gambar 7.10 Kategori length

Berdasarkan Gambar 7.10 terdapat konstanta kategori length. Apabila ingin


menampilkan konstanta kategori length dalam meters, maka dapat dilakukan
perintah print(constants.x). x merupakan panjang yang terdapat dalam
konstanta kategori length dan akan menghasilkan output seperti pada Gambar
7.10.
7.3.11. Kategori Pressure

Gambar 7.11 Kategori pressure

Pada Gambar 7.11 dilakukan percobaan konstanta kategori pressure.


Apabila ingin menampilkan konstanta kategori pressure dalam pascal, maka
dapat dilakukan perintah print(constants.x). x merupakan tekanan yang
terdapat dalam konstanta kategori pressure dan akan menghasilkan output
seperti pada Gambar 7.11.
7.3.12. Kategori Area

Gambar 7.12 Kategori area

Pada Gambar 7.12 ditunjukkan terdapat konstanta kategori area. Apabila


ingin menampilkan konstanta kategori area dalam square meter, maka dapat
dilakukan perintah print(constants.x). x merupakan unit dalam kategori area
dan akan menghasilkan output seperti pada Gambar 7.12.
7.3.13. Volume

Gambar 7.13 Volume


Pada Gambar 7.13 terdapat konstanta kategori volume. Apabila ingin
menampilkan konstanta kategori volume dalam cubic meter, maka dapat
dilakukan perintah print(constants.x). x merupakan konstanta dalam kategori
volume akan menghasilkan output seperti pada Gambar 7.13.
7.3.14. Kecepatan atau Speed

Gambar 7.14 Kecepatan atau Speed

Berdasarkan Gambar 7.14 terdapat konstanta kategori speed. Apabila


ingin menampilkan konstanta kategori speed dalam meters per second, maka
dapat dilakukan perintah print(constants.x). x merupakan konstanta dalam
kategori speed dan akan menghasilkan output seperti pada Gambar 7.14.
7.3.15. Temperature

Gambar 7.15 Temperature

Pada Gambar Praktikum 7.15 ditunjukkan terdapat konstanta kategori


temperature. Apabila ingin menampilkan konstanta kategori temperature
dalam kelvin, maka dapat dilakukan perintah print(constants.x). x merupakan
konstanta kategori temperature dan akan menghasilkan output seperti pada
Gambar 7.15.
7.3.16. Kategori Energi

Gambar 7.16 Kategori energi

Berdasarkan Gambar 7.16 terdapat konstanta kategori energy. Apabila ingin


menampilkan konstanta kategori energy dalam joule, maka dapat dilakukan
perintah print(constants.x). x merupakan konstanta kategori energy dan akan
menghasilkan output seperti pada Gambar 7.16.
7.3.17. Power

Gambar 7.17 Power

Pada Gambar 7.17 terdapat konstanta kategori power. Apabila ingin


menampilkan konstanta kategori power dalam watts, maka dapat dilakukan
perintah print(constants.x). x merupakan konstanta kategori power dan akan
menghasilkan output seperti pada Gambar 7.17.
7.3.18. Kategori Force

Gambar 7.18 Kategori force

Berdasarkan Gambar 7.18 terdapat konstanta kategori force. Apabila ingin


menampilkan konstanta kategori force dalam newton, maka dapat dilakukan
perintah print(constants.x). x merupakan konstanta kategori force dan akan
menghasilkan output seperti pada Gambar 7.18.
7.3.19. Akar Persamaan

Gambar 7.19 Akar persamaan

NumPy mampu menemukan akar untuk polynomial dan persamaan linear.


Akan tetapi tidak dapat menemukan persamaan non linear. Pada Gambar 7.19
terdapat persamaan. Apabila ingin mengetahui akar dari persamaannya,
dilakukan import dan mendefinisikan persamaan seperti pada Gambar 7.19 dan
apabila dilakukan perintah print(Akarnya.x) akan menghasilkan output [-
0.73908513]
7.3.20. Minimize a function

Gambar 7.20 minimize a function

Pada gambar 7.20 dilakukan percobaan untuk menentukan nilai


minimum.Untuk menentukan nilai minimum kita bisa menggunakan
scipy.optimize.minimize() yang berfungsi untuk mengecilkan fungsinya.
Minimize() itu mengambil argument yaitu fun yang merepresentasikan
persamaan dan y() sebagai akar dari persamaan. Pada Gambar 7.20 terdapat
persamaan yang ingin ditemukan nilai minimanya maka dapat dilakukan
perintah print(minim) sehingga akan menampilkan output yaitu seperti pada
gambar diatas.

7.3.21. Compressed Sparse Row (CSR) Matrix

Gambar 7.21 CSR matrix

Pada Gambar 7.21 dilakukan percobaan yaitu CSR Matiks merupakan


contoh dari CSR Matrix.Kita dapat membuat matriks CSR dengan melewatkan
array ke dalam fungsi scipy.sparse.csr_matrix(). Pada contoh diatas saya
menggunakan angka acak untuk melakukan percobaan.
7.3.22. Sparse Matrix Metode

Gambar 7.22 Sparse matrix methods

Gambar 7.23 Sparse matrix methods


Gambar 7.24 Sparse matrix methods

Pada gambar 7.22 sampai 7.24 dilakukan metode sparse


matriks.Cara membuat program diatas dengan cara melihat data yang
disimpan (bukan item nol) dengan properti data. Pada percobaan kali ini,
saya mencoba untuk memproses sebuah data bersih yang tidak memiliki
nilai nol dengan menggunakan property data pada modul scipy.sparse. pada
percobaan tersebut juga melakukan perhitungan nonzero, mengeliminasi
entry yang duplikasi, mengkonversi csr ke csc.

7.3.23. Connected Components

Gambar 7.25 Connected components


Pada gambar 7.25 Apabila ingin menemukan semua komponen yang
terhubung dapat dengan menggunakan metode connected_komponen().
7.3.24. Dijkstra dan Floyd Warshall dan Floydwarshall

Gambar
7.26 Dijkstra

Pada gambar 7.26 ditunjukkan Cara membuat Dijkstra dengan cara


menggunakan metode floyd_warshall() untuk menemukan jalurterpendek.Terdapat
juga program yang menggunakan metode Floyd warshall. Metode floyd_warshall
() digunakan untuk menemukan jalur terpendek di antara semua pasangan elemen.

7.3.25. Bellman Ford dan Depth first order

Gambar 7.27 Bellman Ford dan Depth first order

Pada gambar diatas ditunjukkan Metode bellman_ford () dapat digunakan


untuk menemukan jalur terpendek antara semua pasangan elemen, tetapi
metode ini dapat menangani bobot negatif juga. Sedangkan Metode
depth_first_order() mengembalikan transversal pertama yang mendalam dari
sebuah node.
7.3.26. Breadth First Order

Gambar 7.28 Breadth Depth first order

Pada gambar 7.28 dilakukan metode breadth first order yaitu akan
mengembalikan transversal luas pertama dari sebuag node.Fungsi ini
mengambil argument graph dan elemen awal untuk melintasi graph.
7.3.27. Trigulation

Gambar 7.29 Tringulasi

Pada gambar diatas ditunjukkan Triangulasi dengan titik yang berarti


membuat segitiga yang tersusun ataas permukaan dimana semua titik-titik
yang diberikan berada pada setidaknya satu titik k sudut dari sembarang
segitiga di permukaan.Salah satu netode untuk menghasilkan triangulasi
asdalah dengan cara melalui titik Triangulasi Delaunay()
7.3.28. Covex Haull

Gambar 7.30 Convex Haull


Lambung cembung adalah poligon terkecil yang mencakup semua titik yang
diberikan. Apabila ingin membuat lambung cembung dapat menggunakan
metode ConvexHull (). Seperti pada Gambar 7.29 untuk menampilkan grafik
dapat menggunakan kode program py.show ().
7.3.29. KD Trees

Gambar 7.31 KDTrees

KDTrees adalah struktur data yang dioptimalkan untuk query tetangga


terdekat. Misalnya dalam satu set poin menggunakan KDTrees maka dapat
secara efisien menanyakan titik mana yang paling dekat dengan titik tertentu.
Metode KDTree () mengembalikan objek KDTree . Metode query ()
mengembalikan jarak ke tetangga terdekat dan lokasi tetangga. Seperti pada
Gambar 7.30 untuk menemukan tetangga terdekat (1,1) digunakan metode
kdtrees.
7.3.30. Euclidean Distance

Gambar 7.32 Euclidean Distance


Euclidean berfungsi dan digunakan untuk menentukan jarak euclidean
antara titik-titik yang diberikan.Cosine adalah nilai sudut cosinus antara dua
titik A dan B.Sedangkan Hamming adalah prporsi bit dimana dua bit berbeda.
7.4. Kesimpulan
1. Scipy adalah perpustakaan berbasis NumPy, yang memiliki lebih banyak
fungsi ilmiah bawaan daripada tools lain;
2. SciPy adalah versi Aljabar Linear berfitur lengkap sementara Numpy hanya
berisi beberapa fitur. Dan Sebagian besar fitur Data Science baru tersedia di
Scipy sedangkan di Numpy belum tersedia;
3. Kode sumber untuk SciPy terletak di repositori github,
https://github.com/scipy/scipy;
4. SciPy sebagian besar ditulis dengan Python, tetapi beberapa segmen ditulis
dalam C;
5. Karena SciPy lebih fokus pada implementasi ilmiah, SciPy menyediakan
banyak konstanta ilmiah yang dapat kita lihat dengan menggunakan fungsi
dir();
6. Kategori constant yang terdapat di SciPy diantaraya: Metric, Binary,
Mass, Angle, Time, Length, Pressure, Volume, Speed, Temperature,
dan Energy;
7. Didalam SciPy sekumpulan prosedur yang berfungsi untuk menemukan nilai
minimum suatu fungsi, atau akar persamaan disebut Optimizers;
8. Didalam SciPy data yang sebagian besar memiliki elemen yang tidak
digunakan (elemen yang tidak membawa informasi apa pun) disebut Sparse
Data;
9. Graph adalah salah satu struktur data yang penting. SciPy memberi kita modul
scipy.sparse.csgraph untuk bekerja dengan struktur data graph;
10. Matrix Adjacency pada SciPy terdiri dari : Komponen Terkoneksi (Connected
Components), Dijkstra, Floyd Warshall, Bellman Foyd, Depth First Order,
dan Breadth First Order.
Bab VIII
Machine Learning

Asisten Pembimbing:
Adeev NP
Nama/NIM Peserta:
Yodha Bhakti Wirandanu/21060121140173

Tanda Penerimaan Laporan,


Semarang, 4 Juni 2022

(Adeev NP)
BAB VIII

Percobaan 7
Machine Learning

8.1. Tujuan
1. Praktikan dapat mengetahui definisi dari machine learning pada
phyton.
2. Praktikan dapat memahami cara penggunaan dan manfaat dari
machine learning.
3. Praktikan dapat memahami dan membedakan tipe data yang akan
dianalisis oleh machine learning.
4. Praktikan dapat memahami dan menggunakan data untuk
menghasilkan nilai-nilai yang terdapat pada machine learning
pada python.
5. Praktikan dapat memahami macam-macam distribusi data dalam
machine learning pada python.
6. Praktikan dapat mengetahui bagaimana proses melakukan
machine learning pada python.
7. Praktikan dapat mengetahui dan memahami cara kerja regresi
dalam machine learning pada python.
8. Praktikan dapat mempraktikkan machine learning pada python.

8.2. Dasar Teori

Machine learning membuat komputer belajar dari mempelajari


data dan statistik. Machine learning merupakan langkah menuju ke arah
kecerdasan buatan (AI). Machine learning salah satu program yang
menganalisis data dan belajar untuk memprediksi hasilnya. Machine
learning secara umum untuk bekerja dengan set data yang sangat besar.
8.3. Analisis dan Pembahasan
8.3.1. Mean

Gambar 8.1

Pada gambar 8.1 dilakukan percobaan untuk mencari nilai


mean.Nilai mean bisa juga disebut nilai rata-rata. Untuk menghitung mean,
jumlahkan semua nilai pada data yang ada, dan bagi jumlahnya dengan jumlah
datanya. Untuk mencari nilai mean, harus menyiapkan arraynya yaitu
100,95,90,85,80,75,70, lalu tuliskan fungsi [x = numpy.mean(Mean)]. Lalu
lakukan perintah print(x) maka output yang akan dihasilkan adalah 85.0

8.3.2. Median
Nilai median merupakan nilai tengah dari suatu array atau data
setelah Anda mengurutkan semua nilai secara berurutan dari kecil ke besar.
Modul NumPy memiliki metode untuk menemukan median tanpa harus
menghitungnya secara manual.
a) Median Biasa

Gambar 8.2.1

Pada gambar 8.2.1 dilakukan percobaan untuk mencari median dari


suatu array pada python gunakanlah fungsi median(). Pertama untuk mencari
mediannya adalah dengan menyiapkan arraynya yaitu 100,95,90,85,80,75,70 .
Langkah kedua adalah tuliskan fungsinya, yaitu [ X = numpy.median(Med)].
Lalu kita dapat melakukan print akan menghasilkan output 85 dan hasil ini
adalah benar dan tepat.

b) Median Jika Terdapat Dua Angka di Tengah

Gambar 1.2.2

Pada gambar 8.2.2 dilakukan percobaan mencari median dari suatu


array pada python jika terdapat dua angka di tengah. Pertama untuk mencari
median adalah dengan menuliskan arraynya yaitu 100,95,90,85,80,75,70,65.
Kemudian kita harus menuliskan fungsinya, yaitu [ X = numpy.median(Med)].
Selanjutnya adalah mencetak hasil atau output dilakukan dengan menuliskan
print(x p). Seacara otomatis python akan membagi jumlah angka tersebut
dengan dua maka output yang akan dihasilkan adalah 82.5.

8.3.3. Mode

Gambar 8.3.

Pada gambar diatas dilakukan percobaan Mode.Nilai Mode adalah nilai


yang paling sering muncul pada suatu data. Modul SciPy pada python memiliki
metode untuk mencari mode. Pada gambar 8.3 diatas, adalah program yang
menggunakan fungsi mode() untuk menemukan angka yang paling sering
muncul. Pertama untuk mencari mode, harus menuliskan arraynya terlebih
dahulu. Selanjutnya menuliskan fungsi mode()yaitu [x = stats.mode( Mod)].
Untuk menampilkan output dilakukan perintah print(x) maka hasil yang akan
muncul adalah ModeResult(mode=array([70]), count=array([1])).
8.3.4. Standar Deviasi

Gambar 8.4.

Pada gambar 8.4 adalah standar deviasi.Standar Deviasi merupakan


suatu nilai yang menggambarkan sebaran nilai tersebut. Standar Deviasi yang
rendah mengartikan bahwa sebagian besar angka pada array mendekati nilai
rataratanya. Standar Deviasi yang tinggi berarti nilai-nilai tersebut tersebar
pada rentang yang lebih luas. Pada Gambar diatas, saya memiliki program yaitu
kecepatanmobil = [100,95,90,85,80,75,70,65].Selanjutnya dilakukan perintah
x = numpy.std(kecepatanmobil) untuk mencaru nilai standar deviasi.Setelah
dilakukan print(x) maka nilai standar deviasi yang muncul adalah
11.4564392373896 yang memiliki arti sebagian besar nilai berada dalam
kisaran 21,4 dari nilai mean.
8.3.5. Nilai Varians

Gambar 8.5.

Pada gambar 8.5 dilakukan percobaan varians. Varians adalah angka lain
yang menunjukkan seberapa tersebar nilainilainya. Varians adalah jumlah
rata-rata dari perbedaan kuadrat. Apabila menggunakan machine learning
dalam menghitung varians dapat menggunakan program seperti pada Gambar
1.5 dengan mengaplikasikan fungsi var pada pemrograman tersebut. Untuk
menghitung varians, dapat menggunakan numpy pada python.Fungsi untuk
mencari Ivarians yaitu [x = numpy.var(kecepatanmobil)] setelah itu lakukan
menuliskan [print("nilai variance yaitu x= ",x)], output adalah 131.25

8.3.6. Percentile

Gambar 8.6.
Persentil digunakan dalam statistik untuk memberikan angka yang
menggambarkan nilai bahwa persentase tertentu dari nilai lebih rendah dari.
Gambar 8.6 merupakan contoh dari pemrograman untuk mengetahui nilai
persentase dari 95 dan 65.Untuk mencari precentile dapat menggunakan fungsi
[x=numpy.percentile(variabel, nilai persentil)],yaitu f =
numpy.percentile(perc, 95) dan l = numpy.percentile(perc, 65) setelah itu
tuliskan print(X) untuk mencetak hasil persentil yang sudah di hitung. Pada
program yang sudah dibuat, persentil dari 95 adalah 98,25 dan persentil dari 65
adalah 87,75.

8.3.7. Data Distribution

Gambar 8.7.

Pada gambar 8.7 adalag percobaan data distribution.Di dunia nyata,


kumpulan data jauh lebih besar, tetapi mungkin sulit untuk mengumpulkan data
dunia nyata, setidaknya pada stage awal proyek. Untuk membuat kumpulan
data besar yang akan dilakukan pengujian, dapat digunakan modul Python
NumPy, yang dilengkapi dengan sejumlah metode untuk membuat kumpulan
data acak dari berbagai ukuran. Gambar 8.7 merupakan contoh data distribusi
float random dari 20 sampai 30 sebanyak 100 float.
8.3.8. Histogram

Gambar8.8.

Pada gambar 8.8, Apabila ingin melakukan visualisasi suatu array


dapat menggunakan histogram pada phyton. Pada Gambar merupakan contoh
histogram yang menggunakan array untuk menggambar histogram dengan 30
bar. Dapat menggunakan modul Python Matplotlib untuk menggambar
histogram. Untuk membuat histogram pastikan anda sudah memiliki data yang
akan digambarkan pada histogram. Langkah selanjutnya adalah menuliskan
[plt.hist(variabel, ...)], [plt.show()], dan [print(variabel)]. Setelah menuliskan
ketiga fungsi tersebut, gambar histogram akan muncul beserta array yang
digunakan. Nilai array adalah angka acak dan tidak akan menampilkan hasil
yang sama persis di computer.
8.3.9. Big Data Distribution

Gambar 8.9.

Pada gambar Gambar 8.9 merupakan contoh dari distribusi big data
dengan menggunakan parameter pada array yang berisi nilai 400000 angka
acak dan akan ditampilkan dengan histogram 100 bar.

8.3.10. Normal Data Distribution

Gambar 8.10.

Pada gambar 8.10 adalah percobaan normal data distribution.Dalam


teori probabilitas distribusi distribusi big data dapat dikenal sebagai salah
satunya adalah distribusi data normal. Distribusi data normal seperti pada
Gambar 1.10. Grafik distribusi normal juga dikenal sebagai kurva lonceng
karena bentuk loncengnya yang khas seperti pada Gambar 1.10. Pemrograman
array pada Gambar 1.10 menggunakan metode numpy.random.normal(), dengan
100000 nilai untuk menggambar histogram dengan 100 bar.

8.3.11. Scatter Plot

Gambar 8.11.

Pada gambar 1.11 dilakukan percobaan scatter pot.Scatter plot adalah


diagram di mana setiap nilai dalam kumpulan data diwakili oleh titik.
Matplotlib memiliki metode untuk menggambar scatter plot, membutuhkan
dua array dengan panjang yang sama, satu untuk nilai sumbu x, dan satu untuk
nilai sumbu the y.. Lalu tuliskan fungsi [.scatter(var1, var2)] yaitu [.scatter(x,y]
dan fungsi [.show( )]. Output dari program ini dapat dilihat pada gambar 1.11.
8.3.12. Random Data Distribution

Gambar 8.12.

Dalam machine learning, kumpulan data dapat berisi ribuan, atau


bahkan jutaan. Apabila ingin menguji suatu algoritma, mungkin tidak memiliki
data dunia nyata saat dilakukan pengujian sehingga harus menggunakan nilai
yang dihasilkan secara acak. NumPy dapat digunakan untuk menentukan data
secara acak.Random data distribution pada gambar 1.12 adalah distribusi dua
array x dan array y yang berbentuk titik pada grafik. Untuk membuat random
data distribution tuliskanlah dua array [x = numpy.random.normal(30.0, 25.0,
1000)] dan [y = numpy.random.normal(15.0, 1.0, 1000)]. Setelah menuliskan
dua buah array pada program buatlah grafik histogramnya dengan menuliksan
[rdd.scatter(x,y)] dan [rdd.show()], hasilnya bisa dilihat pada gambar 8.12.
8.3.13. Regresi Linear

Gambar 8.13.

Regresi digunakan apabila ingin menemukan hubungan antara


variabel. Dalam machine learning dan dalam pemodelan statistik, hubungan itu
digunakan untuk menggambarkan hasil dari peristiwa masa depan. Regresi
linier menggunakan hubungan antara titik-titik data untuk menggambar garis
lurus melalui semuanya. Baris ini dapat digunakan untuk memprediksi nilai
masa depan. Dalam machine learning, prediksi masa depan sangatlah penting.
Apabila ingin membuat regresi linear dapat menggunakan Python. Python
memiliki metode untuk menemukan hubungan antara titik data dan untuk
menggambar garis regresi linier. Untuk menggambar regresi linear harus
mempunyai dua buah array lalu tuliskan [w, b, r, p, std_err = stats.linregress(x,
y)] pada program dan buatlah fungsi return yang fungsinya merupakan fungsi
persamaan garis linear [y=w*x + b]. langkah selanjutnya adalah menuliskan
[model = list(map(fungsi, x))], [lin.scatter(x,y)], [lin.plot(x, model)], dan
[lin.show( )]. Hasil dapat dilihat dari tampilan 1.13
8.3.14. R (Koefisien hubungan)

Gambar 8.14.

Pada gambar 8.14 dilakukan percobaan R (koefisien


hubungan).Penting untuk diketahui bagaimana hubungan antara nilai sumbu x
dan nilai sumbu y, jika tidak ada hubungan maka regresi linier tidak dapat
digunakan untuk memprediksi apapun. Hubungan ini disebut juga dengan r.
Nilai r memiliki rentang dari 0 hingga 1, di mana 0 berarti tidak ada/memiliki
hubungan, dan 1 berarti 100% terkait. Python dan modul Scipy akan
menghitung nilai ini, yang harus dilakukan adalah menyiapkan nilai x dan y.
output pada gambar 8.14 bernilai -0.3118411967770859 yang berarti nilai r
tidak sempurna.

8.3.15. Prediksi Nilai Masa Depan

Gambar 8.15.
Dengan menggunakan informasi yang telah dikumpulkan untuk
memprediksi dimasa depan. Contoh prediksi nilai mahasiswa yang berusia 23
tahun dengan menggunakan fungsi def fungsi(Umur) seperti pada Gambar
8.15.Sekarang kita dapat menggunakan informasi yang telah dikumpulkan
untuk memprediksi nilai masa depan menggunakan regresi linear. Untuk
memprediksi nilai masa depan, tambahkan [umurnilai = fungsinih(23) pada
program sebelumnya, lalu lakukan print (umurnilai) maka nilai yang keluar
adalah nilai ketika x=23 yaitu 73.03010033444815 atau 73.

8.3.16. Bad Fit Regresi Linear

Gambar 8.16.

Pada gambar 8.16 ditunjukkan bahwa regreasi liniear mengalami


bad fit.Terdapat kondisi dimana regresi linear bisa jadi bukan solusi yang baik
dan tepat untuk memprediksi masa depan. Gambar 8.16 adalah contoh di mana
regresi linier bukan metode terbaik untuk memprediksi nilai masa depan.
Gambar 8.16 dikatakan bad fit jika Nilai-nilai untuk sumbu x dan y ini akan
menghasilkan kesesuaian yang sangat buruk pada regresi linier di buktikan
dengan nilai r yang rendah. Pada gambar diatas , nilai r hampir mendekati nol
yang artinya data di atas tidak cocok untuk menggunakan regresi linear.
8.3.17. Regresi Polinomial

Gambar 8.17.

Pada gambar 8.17 ditunjukkan regresi polinomial jika data yang


tersedia tidak cocok dengan regresi, data tersebut mungkin lebih baik untuk
menggunakan regresi polinomial. Regresi polinomial, sama seperti regresi
linier, menggunakan hubungan antara variabel x dan y untuk menemukan cara
terbaik untuk menarik garis melalui titik-titik data. Pada gambar 8.17, kita telah
mendaftarkan data nomor pembalap dan kecepatan motor pembalap, sumbu x
mewakili nomor pembalap dan sumbu y mewakili kecepatan laju pembalap.
Untuk membuat regresi polinomial ini pertamatama buat array yang mewakili
nilai sumbu x dan y. lalu tuliskan [mymodel = numpy.poly1d(numpy.polyfit(x,
y, 3))].Kemudian tentukan bagaimana garis akan ditampilkan, kita mulai di
posisi 1, dan berakhir di posisi 25 dengan menuliskan
[myline=(numpy.linspace(0,25,140))].Langkah terakhir tuliskan
[ybw.scatter(x,y)], [ybw.plot(myline, model(myline))], dan [ybw.show()]
untuk mencetak grafik kurva regresi polinomial seperti pada gambar.
8.3.18. R Squared

Gambar 8.18.

Penting untuk mengetahui seberapa baik hubungan antara nilai sumbu x


dan y, jika tidak ada hubungan regresi polinomial tidak dapat digunakan untuk
memprediksi apa pun. Hubungan diukur dengan nilai yang disebut r-kuadrat.
Nilai r-kuadrat berkisar dari 0 hingga 1, di mana 0 berarti tidak ada hubungan,
dan 1 berarti 100% terkait. Python dan modul sklearn akan menghitung nilai
ini r kuadrat dengan menggunakan 2 array. Pada Gambar 8.24 terdapat contoh
mencari r kuadrat dengan menggunakan array umur dan tinggi. Apabila ingin
mengecek kecocokan data dalam regresi polinomial dapat menggunakan
progam pada Gambar 8.18 yaitu modelnih = numpy.poly1d(numpy.polyfit(x,
y, 3)). Output yang dihasilkan progam pada Gambar 8.18 adalah
0.22577331822808022 menunjukkan bahwa ada hubungan yang sangat baik
dan data dalam regresi polinomial dapat digunakan untuk prediksi masa depan.
8.3.19. Prediksi Nilai Masa Depan dengan Regresi Polinomial

Gambar 8.19.

Pada gambar 8.19 ditunjukkan bahwa dengan regresi polinomial


dapat digunakan untuk memprediksi nilai dimasa depan. Pada gambar 8.19,
adalah contoh memprediksi jumlah hasil kecepatan pembalap nomor 9 dimasa
depan. Untuk memprediksi nilai masa depan, tuliskanlah program yang serupa
seperti gambar 8.18 dan ditambahkan [prediksi_9 = modelnih(9lalu lakukan
perintah print(prediksi_9) maka akan muncul output yaitu
121.43632837750494
8.3.20. Bad Fit Polinomial
A)Grafik

Gambar 8.20.1

Pada Gambar 1.20.1 terdapat contoh yang dimana regresi polinomial


tidak akan menjadi metode terbaik untuk memprediksi nilai masa depan.
Nilai-nilai yang terdapat pada Gambar 8.20.1 untuk sumbu-x dan sumbu-y
harus menghasilkan kecocokan yang sangat buruk untuk regresi polinomial.

Gambar 8.20.2

Pada Gambar 8.20.2 yang menghasilkan nilai r kuadrat yang


sangat rendah membuktikan bahwasannya regresi polinomial tidak akan
menjadi metode terbaik untuk prediksi nilai dimasa depan. Output yang
dihasilnya pada Gambar 1.20.2 adalah 0.023584243866010213 menunjukkan
hubungan yang sangat buruk dan memberitahu bahwa kumpulan data tersebut
tidak cocok untuk regresi polinomial.

8.3.21. Multiple Regression

Gambar 8.21.

Pada gambar diatas yaitu 8.21 adalah Multiple Regression, hampir


mirip dengan regresi linier, tetapi memiliki perbedaan yaitu Multiple
Regression menggunakan lebih dari satu nilai independen saat mengeksekusi
program, artinya program akan mencoba memprediksi suatu nilai berdasarkan
dua variabel yang tersedia atau lebih. Langkah pertama adalah [import pandas
as pd] Modul Pandas memungkinkan kita membaca file csv dan
mengembalikan objek DataFrame. Lalu tuliskan file csv nya [df
=pd.read_csv("D:\cars2.csv")] Kemudian harus membuat daftar variabel
independennya yang akan dipanggil sebagai variabel X. Selanjutnya masukkan
nilai dependen sehingga menjadi variabel y. Kita akan menggunakan modul
sklearn, jadi kita harus mengimport modul itu juga from [sklearn import
linear_model]. Selanjutnya adalah adalah menuliskan fungsi-fungsi agar
program multiple regression bisa memunculkan outputnya. Hahil akhir pada
gambar 8.21 adalah [105.67311232] yang memprediksi nilai ketika
variabelnya [2200,1200].
8.3.22. Koefisien

Gambar 1.22.

Koefisien adalah faktor yang menggambarkan hubungan dengan


variabel yang tidak diketahui. Pada Gambar 8.29 terdapat contoh dari koefisien
dengan menggunakan progam nilai koefisien berat terhadap CO2, dan untuk
volume terhadap CO2. Jawaban yang didapatkan dapat memberi tahu apa yang
akan terjadi jika dilakukan penambahan ataupun pengurangan salah satu nilai
independent. Array hasil mewakili nilai koefisien berat dan volume. Koefisien
berat adalah 0.00755095 sedangkan koefisien volume adalah 0.00780526.
Nilai-nilai ini memberi tahu bahwa jika berat badan meningkat sebesar 1kg,
emisi CO2 meningkat sebesar 0,00755095g. Sedangkan jika ukuran mesin
(volume) meningkat sebesar 1 cm3, emisi CO2 meningkat sebesar 0,00780526
g.
8.3.23. Scale Features

Gambar 8.23.

Pada gambar 8.23,jika data yang tersedia memiliki nilai yang


berbeda, dan bahkan unit pengukuran yang berbeda, akan sulit untuk
membandingkannya. Berapa kilogram dibandingkan dengan meter? Atau
bahkan ketinggian dibandingkan dengan waktu. Jawaban untuk permasalahan
ini adalah menggunakan penskalaan. Kita dapat menskalakan data menjadi nilai
baru yang lebih mudah untuk dibandingkan. Contoh dari permasalahan ini
adalah program pada gambar 8.23 diatas.
8.3.24. Prediksi Nilai

Gambar 8.24.
Pada gambar 8.24 ditunjukkan bahwa tugas pada Multiple
Regression adalah memprediksi emisi CO2 dari sebuah mobil ketika kita hanya
mengetahui berat dan volumenya. Saat kumpulan data diskalakan, kita harus
menggunakan skala saat memprediksi nilai. pada program diatas adalah
program untuk memprediksi emisi CO2 dari mobil 1,2 liter yang memiliki
berat 1.400 kilogram yang memiliki output [90.27541178]
.

8.3.25. Train / Test (Start With a Data Set)

Gambar 8.25.

Pada gambar 8.25 Train / Test adalah metode untuk mengukur


tingkat akurasi dari model yang sudah dibuat. Disebut Train / Test karena kita
membagi kumpulan data menjadi dua set jenis, yaitu set pelatihan(train) dan
satu set pengujian(Test). Program akan melatih model menggunakan set
pelatihan lalu selanjutnya menguji model menggunakan set pengujian.
8.3.26. Bagi Menjadi Train/Test lalu Tampilkan Training Set dan Tampilkan
Testing Set

Gambar 8.26.1.

Gambar 8.26.2.

Pada gambar 8.26.1 dan 8.26.2 ditunjukkan Training set harus


berupa pilihan acak 80% dari data asli. Test Set harus 20% sisanya. Lalu
Tampilkan plot scatter yang sama dengan training set seperti pada Gambar
8.26.1 dan 8.26.2 Untuk memastikan testing set tidak sepenuhnya berbeda,
Lihat testing set juga. Hasilnya testing set juga terlihat seperti kumpulan data
asli.
8.3.27. Fit Set Data

Gambar 8.27.

Menurut pendapat saya yang paling cocok adalah regresi polinomial,


jadi saya akan menarik garis regresi polinomial. Untuk menggambar garis
melalui titik data, kita akan menggunakan metode plot() menggunakan modul
matplotlib. Hasilnya pada program ini dapat mendukung saran saya tentang
kumpulan data yang sesuai dengan regresi polinomial, meskipun itu akan
memberi kita hasil yang aneh jika kita mencoba memprediksi nilai di luar set
data. Pada gambar 8.27, garis tersebut menunjukkan bahwa pelanggan yang
menghabiskan waktu 6 menit di toko akan melakukan pembelian senilai 200.
Itu mungkin merupakan tanda overfitting.
8.3.28. R2

Gambar 8.28.1

Gambar 8.28.2

Pada gambar 8.28.1 dan 8.28. 2,R2 mengukur hubungan antara


sumbu x dan sumbu y, dan nilainya berkisar dari 0 hingga 1, di mana 0 berarti
tidak ada hubungan, dan 1 berarti terkait total. Modul sklearn memiliki metode
yang disebut r2_score() yang akan membantu kita menemukan hubungan ini..
Modul sklearn ini memiliki metode yang disebut r2_score() yang akan
membantu kita menemukan R2. Dalam hal ini, kami ingin mengukur hubungan
antara menit ketika pelanggan berada di toko dan berapa banyak uang yang
mereka belanjakan. Output pada gambar 1.28.1 adalah 0.7988645544629795
yang berarti nilainya hampir mendekati satu (cukup berhubungan) dan pada
gambar 8.28.2 nilainya . 0.8086921460343556 yang nilainya juga cukup
bagus.

8.3.29. Memprediksi Nilai.

Gambar 8.29.

Pada gambar 8.29 Melalui evaluasi yang telah dilakukan, model baik-
baik saja sehingga dapat digunakan untuk memprediksi nilai-nilai baru.Pada
gambar 29, terdapat program untuk menghitung Berapa banyak uang yang
akan dihabiskan oleh seorang pembeli, jika dia tetap berada di toko selama 6
menit? Contoh tersebut memperkirakan pelanggan menghabiskan
189.86407011263668 atau 189,8dolar seperti pada gambar.
8.4. Kesimpulan
1. Modul NumPy memiliki metode untuk menemukan mean, median, tanpa
harus menghitung secara manual.
2. Modul SciPy pada python memiliki metode untuk mencari mode.
3. Fungsi std() dapat digunakan untuk mencari standar deviasi pada python.
4. NumPy dilengkapi dengan sejumlah metode untuk membuat kumpulan
data acak (data distribution).
5. Regresi linier merupakan garis yang menggunakaan hubungan antara titik-
titik data untuk menggambar garis lurus melalui semuanya.
6. Regresi polynomial, sama seperti regresi linier, menggunakan hubungan
antara variabel x dan y menemukan cara terbaik untuk menarik garis
melalui titik-titik data.
7. Multiple Regression menggunakan lebih dari satu nilai independen saat
mengekseskusi program.
8. Koefisien merupakan faktor yang menggambarkan hubugan dengan
variabel yang tidak diketahui (biasanya variabel x).
9. Train / Test adalah metode untuk mengukur tingkat akurasi dari model
yang sudah dibuat.
10. Training set harus berupa pilihan acak 80% dari data asli. Test Set harus
20% sisanya.
Bab IX
Pandas

Asisten Pembimbing:
Albertus Jalu & Nama/NIM Peserta:
Yodha Bhakti Wirandanu/21060121140173

Tanda Penerimaan Laporan,


Semarang, 4 Juni 2022

(Albertus Jalu)
BAB IX
PERCOBAAN VIII
PANDAS

9.1 Tujuan
1. Praktikan dapat memahami cara menggunakan Pandas dengan struktur
array NumPy pada bahasa Python.
2. Praktikan dapat memahami macam-macam dan mekanisme objek
Series dan DataFrame dalam Pandas.
3. Praktikan dapat memahami macam-macam dan mekanisme objek
indeks dalam Pandas.
4. Praktikan secara langsung oleh praktikan mengenai pembuatan
mekanisme objek dalam Pandas.

9.2 Dasar Teori


Pandas merupakan paket baru yang dibangun di atas NumPy dan
menyediakan implementasi DataFrame yang efisien. DataFrames pada
dasarnya adalah array yang beragam dengan label baris dan kolom yang
dilampirkan. DataFrame biasanya termasuk tipe heterogen atau data yang
hilang. Selain menawarkan penyimpanan yang nyaman untuk data berlabel,
Pandas yang dapat mengimplementasikan sejumlah operasi data yang kuat
dan yang cukup mudah bagi pengguna basis data dan program spreadsheet.
Pandas biasanya digunakan untuk membuat tabel, mengubah dimensi
data, mengecek data, dan lain sebagainya. Pandas dibangun di atas paket
NumPy, yang berarti banyak struktur NumPy digunakan atau direplikasi di
Pandas. Data Pandas Series digunakan sebagai sumber data analisis
statistik dalam SciPy, merencanakan fungsi dari Mathplotlib, dan algoritma
pembelajaran mesin di Scikit-learning.

Struktur data array NumPy menyediakan fitur-fitur penting untuk jenis


data yang terorganisir dengan baik yang biasanya terlihat dalam tugas
komputasi numerik. Keterbatasannya menjadi jelas ketika kita
membutuhkan lebih banyak fleksibilitas (melampirkan label ke data,
bekerja dengan data yang hilang, dll.). Ketika mencoba operasi yang tidak
memetakan dengan baik untuk penyajian data dengan elemen-elemen
tertentu (pengelompokan, pivots, dll.), masing-masing merupakan bagian
penting dari analisis data yang kurang terstruktur yang tersedia dalam
berbagai bentuk. Pandas yang paling khusus adalah series dan objek
DataFrame-nya. Hal tersebut dibangun di atas struktur array NumPy dan
menyediakan akses yang efisien untuk tugas-tugas penyajian data atau
semacamnya yang akan menghabiskan banyak waktu.
Untuk memasang Pandas pada sistem Python, NumPy harus di instal.
Jika sudah membuat pustaka dari sumber, mak diperlukan alat yang sesuai
untuk mengkompilasi C dan sumber Python tempat Pandas dibangun.
Detail tentang instalasi ini bisa ditemukan di dokumnetasi pada Gambar
9.1. Setelah Pandas di-instal, dapat mengimmpor dan memeriksa versinya
dan untuk detailnya bisa ditemukan di dokumentasi pada Gambar 9.2.
Pada tingkat yang sangat dasar, objek Pandas dapat dianggap sebagai
versi yang ditingkatkan dari array terstruktur NumPy di mana baris dan
kolom dapat diidentifikasikan dengan label dari indeks integer sederhana.
Pandas menyediakan sejumlah alat, metode, dan fungsionalitas yang
berguna di atas struktur data dasar.
9.3 Analisis dan Pembahasan
9.3.1. Memasang Pandas

Gambar 9.1 Memasang Pandas

Gambar 9.2 Mengecek versi Pandas

Pada Gambar 9.1,apabila ingin menginstal Pandas pada sistem Python, NumPy harus
diinstal terlebih dahulu. Apabila sudah membuat pustaka dari sumber, diperlukan alat
yang sesuai untuk mengkompilasi C dan sumber Python tempat Pandas dibangun. Detail
tentang instalasi ini bisa ditemukan di dokumentasi Pandas. Perintah yang dijalankan
dalam menginstal Pandas adalah “import Pandas as pd” seperti pada Gambar 1.1.
Setelah Pandas diinstal, Pandas dapat dilakukan pengecekan terkat versi Pandas yang
digunakan dengan menggunakan perintah print(“Versi dari Pandas adalah”) dan output
yang akan dihasilkan adalah Versi dari Pandas yang diimpor adalah 1.3.4. Pada Gambar
1.2 terdapat contoh program dari pengecekan versu Pandas.
9.3.2. Mengenal Objek Pandas

Gambar 9.3 Objek Pandas

Objek Pandas dapat dianggap sebagai versi yang ditingkatkan dari


array terstruktur NumPy di mana baris dan kolom diidentifikasi dengan
label dari indeks integer sederhana. Pandas menyediakan sejumlah alat,
metode, dan fungsionalitas yang berguna di atas struktur data dasar. Salah
satu objek dari Pandas terlihat pada Gambar 9.3 yaitu “import NumPy as
np” dan “import Pandas as pd”.
9.3.3. Objek Series Pandas

Gambar 9.4 Objek series Pandas

Pada Gambar 9.4 ditunjukkan series dalam Pandas adalah array satu
dimensi dari data yang diindeks. Series dapat dibuat dari list atau array
seperti Gambar 9.4. Pada Gambar tersebut terdapat dari list pengukuran.
Pada program tersebut menggunakan pd.Series sehingga output yang
dihasilkan dari data pada list tersebut adalah satu dimensi dan memiliki
indeks seperti pada Gambar 91.4 yaitu sebagai berikut:
0 0.10
1 0.15
2 0.20
3 0.25
4 0.30
5 0.35
6 0.40
7 0.45 dtype: float64
9.3.4. Find a Values

Gambar 9.5 Nilai pengukuran

Pada Gambar 9.5 , dilakukan percobaan untuk find a values, nilai dari
list pengukuran hanyalah array NumPy yang sudah ada pada sebelum
menggunakan tool pd.series. Sehingga apabila dilakukan perintah
Pengukuran.values seperti pada Gambar 1.5, maka output yang dihasilkan
adalah array([0.1 , 0.15, 0.2 , 0.25, 0.3 , 0.35, 0.4 , 0.45])

9.3.5. Index from Pandas

Gambar 9.6 Indeks pengukuran


Indeks adalah objek mirip array dari tipe pd.index. Pada Gambar 9.6
apabila dilakukan perintah Pengukuran.index, maka output yang dihasilkan
adalah RangeIndex(Start=0, Stop=8, Step=1). Maksud dari ouput tersebut
adalah indeks dari list pengukuran dimulai dari indeks pertama dan berakhir
di indeks ke-8 dengan 1 langkah.

Gambar 9.7 Akses menggunakan indeks (1)

Gambar 9.8 Akses menggunakan indeks (2)

Series Pandas dapat dilakukan pengaksesan data dengan menggunakan indeksnya.


Pengaksesan tersebut sama halnya array NumPy dengan mengakses menggunakan indeks
Python. Pada Gambar 1.7 terdapat contoh pengaksesan series Pandas dengan
menggunakan indeks. Apabila ingin menampilkan data pada indeks ke-5, maka dapat
dilakukan perintah print("Urutan data ke-5 adalah", urutan[5]), .Output yang dihasilkan
dari perintah tersebut adalah Data pengukuran pada indeks ke-5 adalah 0.35. Apabila
ingin menampilkan data pada indeks ke-4 sampai akhir, maka dapat dilakukan perintah
print("Urutan pada indeks ke-4 sampai akhir adalah") urutan[4:]. Output yang dihasilkan
dari perintah tersebut yaitu:
Urutan pada indeks ke-4 sampai akhir adalah
13 0.30
14 0.35
17 0.40 20
0.45 dtype:
float64

Apabila ingin menampilkan data pada indeks 0 sampai indeks ke-6, maka dapat dilakukan
perintah print("urutan data pada indeks 0 sampai 6 adalah" urutan[:6]). Output yang
dihasilkan dari perintah tersebut dapat dilihat pada Gambar 9.7. Apabila ingin
menampilkan data pada indeks ke3 sampai ke-6, maka dapat dilakukan perintah
print("Urutan data antara indeks ke-3 sampai ke-6 adalah")urutan[3:6].Output yang
dihasilkan dari perintah tersebut dapat dilihat pada Gambar 9.7.

9.3.6. Series sebagai Array NumPy Umum

Gambar 9.9 Indeks series dengan menggunakan string


Gambar 9.10 Indeks dengan tidak berdampingan

Series dalam Pandas pada dasarnya dapat diubah dengan array


NumPy satu dimensi. Perbedaan esensial adalah adanya indeks. Array NumPy memiliki
indeks integer yang didefinisikan secara implisit digunakan untuk mengakses nilai-nilai
sedangkan series Pandas memiliki indeks yang secara eksplisit didefinisikan terkait
dengan nilai-nilai.
Definisi indeks eksplisit ini memberi kemampuan tambahan pada objek series. Misalnya,
indeks tidak harus berupa bilangan bulat, tetapi dapat terdiri dari nilai-nilai dari jenis apa
pun yang diinginkan. Pada Gambar 9.8 terdapat contoh indeks yang menggunakan string.
Bahkan series Pandas juga dapat menggunakan indeks yang tidak berdampingan atau
tidak penting seperti yang terlihat pada Gambar 9.9.
9.3.7. Series sebagai Dictionary khusus

Gambar 9.11 Series sebagai dictionary khusus

Pada Gambar 9.10 ditunjukkan bahwa Series Pandas dapat


digunakan seperti spesialisasi kamus (dictionary) Python. Kamus
(dictionary) adalah struktur yang memetakan kunci sembarang ke
sembarang nilai. Series adalah sebuah struktur yang memetakan kunci yang
bertipe ke sekumpulan nilai yang bertipe. Pemberian tipe ini penting karena
sama seperti kode terkompilasi tipe-spesifik di belakang array NumPy
membuatnya lebih efisien daripada daftar Python untuk operasi tertentu.
Informasi jenis series Pandas membuatnya jauh lebih efisien daripada
kamus Python untuk operasi tertentu.
Pada Gambar 9.10 terdapat analogi series sebagai kamus
(dictionary) yang lebih jelas dengan membuat objek series langsung dari
kamus (dictionary) Python. Pada Gambar 9.10 menggunakan list data
Peminat olahraga. Program dari series sebagai dictionary dapat dilihat pada
Gambar 9.10 dan apabila program dilakukan perintah
Jumlah_Peminat_Olahraga maka output yang akan dihasilkan adalah kunci
yang bertipe dengan data yang lebih efisien seperti yang terlihat pada
gambar tersebut.
Gambar 9.12 Make a index series

Pada Gambar 9.11 terdapat contoh dari series yang akan dibuat dimana
indeks diambil dari kunci yang diurutkan. Apabila perintah print("Jumlah
peminat olahraga golf adalah",Jumlah_Peminat_Olahraga["Golf"]) dan
akan menghasilkan output Jumlah peminat olahraga golf adalah 1207

Gambar 9.13 Slicing a series Pandas

Pada Gambar 9.12 terdapat contoh dari pengoperasian gaya array


slicing. Series mampu mendukung operasi tersebut. Slicing pada Gambar
9.12 dilakukan dengan start adalah sepakbola dan end adalah
Berkuda.Apabila dijalankan perintah print(Jumlah_Peminat_Olahraga
["Sepakbola" : "Berkuda"])maka output yang akan dihasilkan dari perintah
tersebut dapat dilihat pada Gambar 9.12
9.3.8. Membangun objek Series

Gambar 9.14 Pd Series

Cara membangun objek series adalah dengan menggunakan


pd.Series yang dimana pd.Series(data, index=index) seperti yang terlihat
pada Gambar 9.13. Indeks adalah argumen opsional dan data dapat menjadi
salah satu dari banyak entitas.

Gambar 9.15 Membangun objek series

Pada Gambar 9.14 terdapat contoh dari series dengan menggunakan


pd.Series yang mengambil data dari array NumPy. Indeks pada series
tersebut default dengan urutan bilangan bulat 0-6.
Gambar 9.16 Pd series scalar

Pada Gambar 9.15 terdapat contoh series dengan menggunakan pd.Series pada data yang
berupa skalar. Maksud skalar tersebut adalah dengan menggunakan nilai yang diulang-
ulang untuk memenuhi indeks yang telah ditentukan. Pada Gambar 9.15 menggunakan
skalar 20 yang artinya nilai 7 akan diulang-ulang sampai semua indeks terpenuhi.

Gambar 9.17 Series dengan indeks default kunci dari dictionary

Pada Gambar 9.16 terdapat data series dengan menggunakan pd.Series yang berupa
kamus (dictionary). Indeks default ke kunci kamus yang diurutkan seperti output yang
dihasilkan pada Gambar 9.16.
Gambar 9.18 Series with explisit index

Pada Gambar 9.17 series digunakan dengan indeks eksplisit yang


akan menghasilkan output nilai sesuai dengan indeks yang ditetapkan. Pada
gambar tersebut indeks eksplisit yang ingin diketahui nilainya adalah indeks
18 dan indeks 10. Series hanya diisi dengan yang diidentifikasi secara
eksplisit kunci.

9.3.9. Objek DataFrame Pandas


Struktur fundamental berikutnya dalam Pandas adalah DataFrame.
Seperti objek series yang dibahas pada bagian sebelumnya, DataFrame
dapat dianggap sebagai generalisasi array NumPy, atau sebagai spesialisasi
kamus Python.
9.3.10. DataFrame sebagai Array NumPy Umum

Gambar 9.19 DataFrame sebagai array NumPy umum

Pada Gambar 9.18, ditunjukkan percobaan DataFrame sebaga


Array NumPy umum.Jika series adalah analog dengan array satu dimensi
dengan indeks fleksibel. DataFrame adalah analog array dua dimensi
dengan indeks nama baris fleksibel dan nama kolom fleksibel. Array dapat
dianggap sebagai dua dimensi sebagai urutan kolom-kolom satu dimensi
yang diurutkan, sedangkan DataFrame sebagai urutan objek Seri yang
disejajarkan. Di sini, dengan "disejajarkan" masudnya adalah DataFrame
memiliki indeks yang sama. Untuk mendemonstrasikan ini, langkah
pertama yang harus dilakukan adalah dengan membuat series baru yang
mencantumkan jumlah atlet olahraga. Series baru tersebut dapat dilihat pada
Gambar 9.18.

Gambar 9.20 Series baru dengan data peminat


Sekarang terdapat dua series yaitu series populasi mahasiswa dan
series peminat. Dari dua series tersebut, dapat dibuat sebuah kamus untuk
membuat objek dua dimensi tunggal yang berisi dua series tersebut. Apabila
dilakukan perintah Tabel = pd.DataFrame({'Peminat Olahraga' :
Jumlah_Peminat_Olahraga, 'Atlet Olahraga' : AtletOR}) Tabel maka output
yang akan dihasilkan dapat dilihat pada Gambar 9.19.

Gambar 9.21 Indeks DataFrame

Seperti objek Series, DataFrame memiliki atribut indeks yang


memberikan akses ke label indeks. Apabila dilakukan pertah Tabel.index
maka akan menghasilkan output seperti yang terlihat pada Gambar 9.20.

Gambar 9.22 Atribut kolom DataFrame


DataFrame memiliki atribut kolom, yang merupakan objek Indeks
label kolom. Apabila dilakukan perintah Tabel.columns maka output yang
dihasilkan dapat dilihat pada Gambar 1.21.
Dengan demikian DataFrame dapat dianggap sebagai generalisasi
dari array NumPy dua dimensi, di mana baik baris dan kolom memiliki
indeks umum untuk mengakses data.

9.3.11. DataFrame sebagai Kamus Khusus

Gambar 9.23 DataFrame sebagai kamus khusus

DataFrame dapat juga dikatakan sebagai kamus (dictionary)


khusus. kamus (dictionary) ini memetakan kunci ke nilai. DataFrame
memetakan nama kolom ke Series data kolom. Misalnya, meminta atribut
'Atlet Olahraga' mengembalikan objek Series yang berisi data peminat
sebelumnya. Apabila dilakukan perintah Tabel[‘Atlet Olahraga’] maka akan
menghasilkan output seperti pada Gambar 9.22. DataFrames lebih cocok
sebagai kamus umum daripada array yang digeneralisasi, meskipun kedua
cara memandang situasi bisa berguna.
9.3.12. Membangun objek DataFrame

Gambar 9.24 DataFrame seri tunggal

DataFrame Pandas dapat dibangun dengan berbagai cara. Cara


yang pertama adalah dari objek seri tunggal. DataFrame adalah kumpulan
objek Series, DataFrame kolom tunggal dapat dibangun dari Seri tunggal
seperti program yang terlihat pada Gambar 9.23. Apabila dilakukan perintah
pd.DataFrame(Jumlah_Peminat_Olahraga,columns=['Peminat Olahraga'])
maka akan menghasilkan output seperti pada Gambar 9.23.

Gambar 9.25 DataFrame dari list dictionary

List dictionary (Daftar kamus) dapat dibuat menjadi DataFrame.


Hal tersebut dapat dilakuukan dengan menggunakan pemahaman daftar
sederhana untuk membuat beberapa data. Program dari DataFrame dari list
dictionary dapat dilihat pada Gambar 9.24.

Gambar 9.26 DataFrame dengan kunci yang tidak ada

Bahkan jika beberapa kunci dalam kamus tidak ada, Pandas akan
mengisinya dengan nilai NaN (Not a Number atau “Bukan angka”). Hal
tersebut dapat dibuktikan dengan program yang dapat dilihat pada Gambar
9.25. Kata kunci z pada indeks 0 tidak memiliki nilai sehingga output yang
dihasilkan NaN sedangkan kunci m pada indeks 1 tidak memiliki nilai
sehingga output yang dihasilkan adalah NaN.

Gambar 9.27 DataFrame dengan kamus objek seri

DataFrame dapat dibangun dari kamus objek seri. Gambar 9.26 merupakan program dari
DataFrame dengan kamus objek seri.
Gambar 9.28 DataFrame dari array dua dimensi

Diberikan array data dua dimensi. Dari data tersebut bisa dibuat dari
DataFrame dengan nama kolom dan indeks yang ditentukan. Jika
dihilangkan, indeks integer akan digunakan untuk masing-masing. Pada
Gambar 9.27 terdapat contoh dari DataFrame dari array dua dimensi. Nama
kolom dari data tersebut adalah foo dan bar. Indeks yang digunakan dalam
DataFrame tersebut adalah string dengan huruf m-t. Sedangkan isi dari
DataFrame tersebut adalah random data.

Gambar 9.29 Membangun objek DataFrame dari array tersetruktur NumPy

Pandas DataFrame beroperasi sangat mirip dengan susunan


terstruktur dan dapat dibuat langsung dari satu. Gambar 9.28 merupakan
contoh daru memmabangun objek DataFrame dari array terstruktur
NumPy. Dalam program tersebut terdapat 5 data yang dimana data tersebut
bernilai 0 karena menggunakan np.zeros dengan tipe data M adalah integral
sedangkan N adalah float. Apabila ingin ditampilkan DataFrame, dapat
dilakukan perintah pd.DataFrame(0).

9.3.13. Objek Indeks Pandas

Gambar 9.30 Objek indeks Pandas

Objek Seri dan DataFrame berisi indeks eksplisit yang


memungkinkan digunakan untuk referensi dan memodifikasi data. Objek
indeks ini adalah struktur yang menarik dalam dirinya sendiri dan dapat
dianggap sebagai array yang tidak berubah atau sebagai set yang dipesan
(secara teknis multiset karena objek indeks dapat berisi nilai yang diulang).
Pandangan tersebut memiliki beberapa konsekuensi menarik dalam operasi
yang tersedia pada objek indeks. Pada Gambar 9.29 terdapat contoh dari
indeks dari bilangan bulat sederahana.
9.3.14. Indeks sebagai Array yang Tidak Berubah

Gambar 9.31 Indeks sebagai array yang tidak berubah

Objek indeks dalam banyak hal beroperasi seperti array. Sebagai


contoh notasi pengindeksan Python standar dapat digunakan untuk
mengambil nilai atau irisan. Gambar 9.30 terdapat contoh dari indeks
sebagai arrray yang tidak berubah. Apabila ingin memanggil indeks 3 maka
dapat dilakukan perintah Indexku[5] dan output yang dihasilkan 26. Apabila
ingin memanggil indeks 0, indeks 6 maka dapat dilakukan perintah
Indexku[::6] dan akan menghasilkan output 16,28.

Gambar 9.32 Objek indeks NumPy


Objek indeks juga memiliki banyak atribut yang familier dari array
NumPy. Atribut tersebut dapat dilihat pada Gambar 1.31 yaitu size, shape,
ndim, dan index.type.

Gambar 9.33 Error output

Satu perbedaan antara objek indeks dan array NumPy adalah bahwa
indeks tidak dapat diubah yaitu mereka tidak dapat dimodifikasi melalui
cara normal. Apabila nilai dari indeks akan diubah maka akan menghasilkan
output error seperti pada Gambar 9.32. Kekekalan ini membuatnya lebih
aman untuk berbagi indeks antara beberapa DataFrames dan array, tanpa
potensi efek samping dari modifikasi indeks yang tidak disengaja.
9.3.15. Indeks sebagai set yang dipesan

Gambar 9.34 Indeks sebagai objek yang dipesan

Objek Pandas dirancang untuk memfasilitasi operasi seperti


bergabung di seluruh dataset yang bergantung pada banyak aspek himpunan
aritmatika. Objek indeks mengikuti banyak konvensi yang digunakan oleh
struktur data bawaan Python, sehingga serikat pekerja, persimpangan,
perbedaan, dan kombinasi lainnya dapat dihitung dengan cara yang akrab.
Pada Gambar 9.33 sudah terdapat 2 data series yaitu IndexkuA dan
IndexkuB. Apabila ingin mendapat irisan dari keduanya, maka dapat
menggunakan simbol &. Perintah yang dapat dijalankan adalah print(“Irisan
dari indeks A dan indeks B adalah”, IndexkuA & IndexkuB) dan output
yang dihasilkan adalah Irisan dari indeks A dan indeks B adalah 24,34,37,39
dengan tipe data int64. Apabila ingin mendapatkan gabungan dari
keduanya, maka dapat menggunakan simbol |. Perintah yang dapat
dijalankan adalah print(“Gabungan dari indeks A dan indeks B adalah”,
IndexkuA | IndexkuB) dan output yang dihasilkan adalah Gabungan dari
indeks A dan indeks B adalah 7, 9, 10, 11, 22, 24, 25, 26, 28, 34, 35, 37, 38,
39 dengan tipe data int64. Apabila ingin mendapatkan symetric difference
dari keduanya, maka dapat menggunakan simbol ^. Perintah yang dapat
dijalankan adalah print(“Symetric difference dari indeks A dan indeks B
adalah”, IndexkuA ^ IndexkuB) dan output yang dihasilkan adalah Symetric
difference dari indeks A dan indeks B adalah 7, 9, 10, 11, 22, 25, 26, 28, 35,
38 dengan tipe data int64.
9.3.16. Series sebagai Kamus (Dictionary)

Gambar 9.35 Pengindeksan dan pemilihan data secara seri

Seperti kamus, objek series menyediakan pemetaan dari kumpulan


kunci ke kumpulan nilai. Pada Gambar 9.34 terdapat contoh dari series
sebagai kamus dengan tipe datanya adalah float dan index nya dalam
bentuk string. Apabila dijalankan perintah Perhitungan maka output yang
dihasilkan dapat dilihat pada Gambar 9.34.

Gambar 9.36 Checking a series data

Ekspresi dan metode Python seperti kamus untuk memeriksa kunci


indeks dan nilai-nilai dapat juga digunaka dalam series sebagai dictionary.
Pada Gambar 1.35 terdapat cara memeriksa dari series sebagai dictionary.
Apabila ingin memeriksa salah satu data yang terdapat dalam series maka
dapat dilakukan perintah ‘z’ in perhitungan dan menghasilkan output true
karena z terdapat dalam kamus perhitungan. Apabila ingin mendapatkan
kata kunci dari series maka dapat dilakukan perintah Perhitungan.keys() dan
akan menghasilkan output seperti yang terlihat pada Gambar 1.35. Apabila
ingin mendapatkan list dari series sebagai kamus maka dapat dilakukan
perintah seperti pada Gambar 9.35.

Gambar 9.37 Add a item in series

Objek series bahkan dapat dimodifikasi dengan sintaksis seperti kamus. Cara yang dapat
dilakukan adalah dengan menetapkan ke kunci baru dan dapat memperluas seri dengan
menetapkan ke nilai indeks baru. Pada Gambar 9.36 terdapat contoh dari modifikasi data
dari series dengan menambahkan itemnya dan indeks yaitu indeks a dengan nilai 2.3.
Tipe data pada series yang dimodifikasi tersebut adalah float64.
9.3.17. Series sebagai Array Satu Dimensi

Gambar 9.38 Series sebagai array satu dimensi

Serangkaian dibangun pada antarmuka seperti kamus ini dan


menyediakan pemilihan item gaya array melalui mekanisme dasar yang
sama dengan array NumPy yaitu, irisan, masking, dan pengindeksan
mewah. Contoh dari mekanisme dasar untuk menyediakan pemilihan item
gaya atrray dapat dilihat pada Gambar 1.37. Apabila ingin menentukan
slicing secara indeks eksplisit dari nilai n sampai p dapat dilakukan perintah
Perhitungan[‘v’ , ‘z’] dan akan menghasilkan output seperti pada
Gambar 1.37 dengan tipe data float64. Apabila ingin menentukan slicing
secara indeks implisit dari indeks 1-4 maka dapat dilakukan perintah
Perhitungan[1 : 4] dan akan menghasilkan output seperti pada Gambar 1.37
dengan tipe data float64. Apabila ingin dilakukan masking dengan syarat
pperhitungan lebih besar dari 1 dan kurang dari 4 maka dapat dilakukan
perintah Perhitungan[(Perhitungan > 1) & (Perhitungan<4.0)] maka akan
menghasilkan output yang sesuai seperti pada Gambar 1.37 dengan tipe data
float64. Apabila ingin dilakukan fancy indexing maka dapat dilakukan
perintah Perhitungan[[‘v’, ‘z’]] dan akan menghasilkan output seperti pada
Gambar 1.37 dengan tipe data float64.
9.3.18. Pengindeks: loc, iloc, dan ix

Gambar 9.39 Pengindeks loc, iloc, ix

Konvensi pengiris dan pengindeksan ini dapat menjadi sumber


kebingungan. Misalnya, jika Series memiliki indeks integer eksplisit,
operasi pengindeksan seperti Nilaidatareal akan menggunakan indeks
eksplisit, sementara operasi pengirisan seperti Perhitungan[1 : 4] akan
menggunakan indeks gaya Python implisit. Program ketika menggunakan
indeks implisit ataupun indeks eksplisit dapat dilihat pada Gambar 1.38.
Pandas menyediakan beberapa atribut pengindeks khusus yang
secara eksplisit mengekspos skema pengindeksan tertentu. Ini bukan
metode fungsional, tetapi atribut yang mengekspos antarmuka pengiris
tertentu ke data dalam Series.

Gambar 9.40 Atribut loc


Atribut loc memungkinkan pengindeksan dan pemotongan yang
selalu merujuk pada indeks eksplisit seperti yang terlihat pada Gambar 9.39.
Apabila dijalankan perintah Perhitungan.loc[2] maka akan menghasilkan
output ‘i’. Apabila dijalankan perintah Nilaidatareal.loc[1 : 4] maka akan
menghasilkan output seperti pada Gambar 9.39.

Gambar 9.41 Atribut iloc

Atribut iloc memungkinkan pengindeksan dan pemotongan yang


selalu merujuk pada implisit indeks gaya Python. Atribut iloc dapat dilihat
pada Gambar 9.40. Apabila dijalankan perintah Nilaidatareal.iloc[2] maka
akan menghasilkan output ‘t’. Apabila dijalankan perintah Perhitungan[1 :
4] maka akan menghasilkan output seperti pada Gambar 9.40.
Atribut pengindeksan ketiga ix adalah hibrid dari keduanya, dan untuk
objek seri setara dengan pengindeksan berbasis standar []. Tujuan
pengindeks ix akan menjadi lebih jelas dalam konteks objek DataFrame.
Salah satu prinsip panduan kode Python adalah bahwa "eksplisit lebih baik
daripada implisit." Sifat eksplisit loc dan iloc membuatnya sangat berguna
dalam menjaga kode yang bersih dan mudah dibaca. Terutama dalam hal
indeks integer. .
9.3.19. DataFrame sebagai kamus

Gambar 9.42 DataFrame sebagai kamus

Pada Gambar 9.41 terdapat DataFrame sebagai kamus dengan 2


data yaitu PeminatOlahraga dan AtletOlahraga.

Gambar 9.43 Kolom DataFrame

Seri individual yang membentuk kolom DataFrame dapat diakses


melalui pengindeksan gaya kamus dari nama kolom. Pada Gambar 9.42
terdapat contoh dari kolom DataFrame. Apabila dijalankan perintah
Olahraga_Data['AtletOlahraga'] maka akan menghasilkan output seperti
pada Gambar 9.42.
Gambar 9.44 Pengaksesan menggunakan nama kolom

Secara setara, dapat juga digunakan penaksesan gaya-atribut dengan


nama kolom yang bersifat string. Gambar 9.43 terdapat contoh
pengaksesan nama kolom yang bersifat string. Apabila dijalankan perinta
Undip_Data.Peminat maka output yang dihasilkan seperti Pada Gambar
9.43.

Gambar 9.45 Mengecek data

Akses kolom gaya atribut pada Gambar 1.44 sebenarnya mengakses


objek yang sama dengan akses gaya kamus. Apabila dijalankan perintah
Olahraga_Data.AtletOlahraga is Olahraga_Data['AtletOlahraga'] true
karena di Olahraga_Data terdapat elemen peminat.
Gambar 9.46 Mengecek item

Pada Gambar 9.45 meskipun pop adalah singkatan yang berguna,


perlu diingat bahwa pop tidak bekerja untuk semua kasus! Misalnya, jika
nama kolom bukan string, atau jika nama kolom bertentangan dengan
metode DataFrame, akses gaya-atribut ini tidak dimungkinkan. Misalnya,
DataFrame memiliki metode pop(), jadi data.pop akan mengarah ke ini
daripada kolom "AtletOlahraga":

Gambar 9.47 Density

Sintaks gaya kamus density juga dapat digunakan untuk


memodifikasi objek, dalam hal ini untuk menambahkan kolom baru.
Elemen baru dapat dilihat dari Gambar 9.46. Ini menunjukkan pratinjau
sintaksis langsung aritmatika elemen demi elemenantara objek Seri .
9.3.20. DataFrame sebagai Array Dua Dimensi

Gambar 9.48 Finding a value

Atribut nilai dapat digunakan untuk memeriksa nilai dari data array.
Apabila dilakukan perintah Olahraga_Data.values maka akan menghasilkan
output seperti pada Gambar 9.47.

Gambar 9.49 Make a change line to column

DataFrame dapat dilakukan pertukaran baris dan kolom seperti pada


Gambar 9.48. Perintah yang dijalankan yaitu Undiplahraga_Data.T dan
akan menghasilkan output seperti pada Gambar 9.48.
Gambar 9.50 Finding a special value

DataFrame dapat secara khusus meneruskan indeks tunggal ke


array mengakses baris. Apabila ingin mengakses baris 4 maka dapat
dijalankan perintah Olahraga_Data.values[4] dan akan menghasilkan output
seperti pada Gambar 9.49.
9.4 Kesimpulan
1. Perintah yang dijalankan dalam menginstal Pandas adalah “import
Pandas as pd” seperti pada Gambar 9.1;
2. Setelah Pandas diinstal, Pandas dapat dilakukan pengecekan terkat versi
Pandas seperti pada Gambar 9.2;
3. Pandas menyediakan sejumlah alat, metode, dan fungsionalitas yang
berguna di atas struktur datadasar. Salah satu objek dari Pandas terlihat
pada Gambar 9.3 yaitu “import NumPy as np” dan “import Pandas as
pd;
4. Series dalam Pandas adalah array satu dimensi dari data yang diindeks.
Series dapat dibuat dari list atau array seperti Gambar 9.4.
5. Berdasarkan Gambar 9.5, nilai dari list pengukuran hanyalah array
NumPy yang sudah ada pada sebelum menggunakan tool pd.Series;
6. Berdasarkan Gambar 9.6, indeks adalah objek mirip array dari tipe
pd.index;
7. Berdasarkan Gambar 9.7 Series Pandas dapat dilakukan pengaksesan
data dengan menggunakan indeksnya. Pengaksesan tersebut sama halnya
array NumPy dengan mengakses menggunakan indeks Python;
8. Berdasarkan Gambar 9.8 indeks tidak harus berupa bilangan bulat, tetapi
dapat terdiri dari nilai-nilai dari jenis apa pun yang diinginkan seperti
string;
9. Berdasarkan Gambar 9.9, Series Pandas juga dapat menggunakan indeks
yang tidak berdampingan atau tidak penting;
10. Berdasarkan Gambar 9.18 Series individual yang membentuk kolom
DataFrame dapat diakses melalui pengindeksan gaya kamus dari nama
kolom;
11. Berdasarkan Gambar 9.19, secara setara, dapat juga digunakan
penaksesan gaya-atribut dengan nama kolom yang bersifat string;
12. Akses kolom gaya atribut pada Gambar 9.20 sebenarnya mengakses objek
yang sama dengan akses gaya kamus;
13. Pada Gambar 9.21 meskipun pop adalah singkatan yang berguna, perlu
diingat bahwa pop tidak bekerja untuk semua kasus;
14. Berdasarkan Gambar 9.22, sintaks gaya kamus density juga dapat
digunakan untuk memodifikasi objek, dalam hal ini untuk menambahkan
kolom baru;
15. Berdasarkan Gambar 9.23, atribut nilai dapat digunakan untuk
memeriksa nilai dari data array;
16. Berdasarkan Gambar 9.24 DataFrame dapat dilakukan pertukaran baris
dan kolom;
17. Berdasarkan Gambar 9.25, DataFrame dapat secara khusus meneruskan
indeks tunggal ke array mengakses baris.

Anda mungkin juga menyukai