0% menganggap dokumen ini bermanfaat (0 suara)
85 tayangan10 halaman

Pemrograman Dan Komputasi Numerik Menggunakan Python

Diunggah oleh

oenta
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
85 tayangan10 halaman

Pemrograman Dan Komputasi Numerik Menggunakan Python

Diunggah oleh

oenta
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 10

PEMROGRAMAN DAN KOMPUTASI NUMERIK MENGGUNAKAN PYTHON

Penulis:
Sholihun
Zohan Syah Fatomi

Proofreader:
Moulidvi

Desain sampul:
Pram’s

Tata letak isi:


Zohan Syah Fatomi

Penerbit:
Gadjah Mada University Press
Anggota IKAPI dan APPTI

Ukuran: 15,5 × 23 cm; xxii + 348 hlm


ISBN: 978-602-386-957-2

Redaksi:
Jl. Sendok, Karanggayam CT VIII Caturtunggal
Depok, Sleman, D.I. Yogyakarta, 55281
Telp. /Fax.: (0274) 561037
ugmpress.ugm.ac.id | [email protected]

cetakan Pertama: Februari 2021

Hak Penerbitan ©2021 Gadjah Mada University Press


Dilarang mengutip dan memperbanyak tanpa izin tertulis dari penerbit,
sebagian atau seluruhnya dalam bentuk apa pun, baik cetak, photoprint,
micro ilm, dan sebagainya.
KATA PENGANTAR

Segala puji dan syukur penulis sampaikan ke hadirat Allah SWT, Tuhan semes-
ta alam yang telah melimpahkan segala kenikmatan dan kesempatan sehingga
penulis dapat menyelesaikan penyusunan buku "Pemrograman dan Komputasi
Numerik: Menggunakan Python". Buku ini menyajikan pembahasan terkait
dasar pemrograman dan penerapannya pada komputasi numerik. Buku ini
ditulis sebagai panduan bagi pembaca secara umum khususnya bagi pembaca
dengan latar belakang sains dan teknik. Bagi pembaca yang belum mengerti
terkait bahasa pemrograman bisa memulai belajar pemrograman dari awal
melalui buku ini. Bagi pembaca yang mempunyai pengetahuan pemrograman,
buku ini dapat digunakan untuk memperdalam kemampuan pemrograman dan
juga sekaligus untuk memahami terkait komputasi numerik.
Dalam buku ini, penulis menggunakan Python karena selain cukup power-
full untuk komputasi numerik, Python merupakan software pemrograman yang
mudah untuk dipelajari. Selain karena motivasi kemudahan dalam pembela-
jaran, penulis menggunakan Python karena software pemrograman ini sedang
paling banyak (ingin) dikuasai oleh pengembang pemrograman di seluruh
dunia. Harapan penulis, selain pembaca mendapatkan ilmu terkait komputasi
numerik, dengan pemrograman Python pembaca dapat mengembangkan ilmu-
nya dalam bidang lain seperti Data Science dan pengembangan aplikasi baik
berbentuk mobile-based, dekstop-based maupun web-based. Sebagai suatu kar-
ya, buku ini tentunya belum sempurna, sehingga masukan dari berbagai pihak
sangat diperlukan. Terakhir, semoga buku ini bermanfaat bagi bagi pembaca
dan berkontribusi dalam penyebaran khazanah keilmuan dan pendidikan.

Yogyakarta, 5 Januari 2021

Penulis

v
DAFTAR ISI

KATA PENGANTAR v

DAFTAR GAMBAR xiii

DAFTAR TABEL xix

I PEMROGRAMAN PYTHON xxi

1 PENDAHULUAN 1
1.1 Apa itu Program? . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Bahasa Pemrograman . . . . . . . . . . . . . . . . . . . . . . 1
1.2.1 Bahasa Mesin . . . . . . . . . . . . . . . . . . . . . . 3
1.2.2 Bahasa Assembly . . . . . . . . . . . . . . . . . . . . 4
1.2.3 Bahasa Tingkat Tinggi . . . . . . . . . . . . . . . . . 5
1.3 Mengapa harus Python? . . . . . . . . . . . . . . . . . . . . . 6
1.4 Soal Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2 PERANGKAT LUNAK 9
2.1 Menginstal Python . . . . . . . . . . . . . . . . . . . . . . . 9
2.2 Interpreter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.1 Interaktif Interpreter (REPL) pada Python . . . . . . . 10
2.3 Intregrated Development Environtment (IDE) . . . . . . . . . 14
2.3.1 Menginstal Pycharm . . . . . . . . . . . . . . . . . . 15
2.3.2 Menginstal Jupyter Notebook . . . . . . . . . . . . . 17
2.4 Soal Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3 DASAR PYTHON 19
3.1 Konsep variabel . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.1.1 Aturan Penamaan Variabel . . . . . . . . . . . . . . . 21
3.2 Tipe Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2.1 Tipe Data Number . . . . . . . . . . . . . . . . . . . 25

vii
3.2.2 Tipe Data String . . . . . . . . . . . . . . . . . . . . 27
3.2.3 Tipe Data Boolean . . . . . . . . . . . . . . . . . . . 28
3.2.4 Tipe Data None . . . . . . . . . . . . . . . . . . . . . 28
3.3 Variabel Multinilai . . . . . . . . . . . . . . . . . . . . . . . 29
3.3.1 List . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.3.2 Tuple . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.3.3 Set . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.3.4 Dict . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.4 Indentasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.5 Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.5.1 Operator Aritmatika . . . . . . . . . . . . . . . . . . 49
3.5.2 Operator Pemasukan (Assignment) . . . . . . . . . . 50
3.5.3 Operator Perbandingan . . . . . . . . . . . . . . . . . 52
3.5.4 Operator Logika . . . . . . . . . . . . . . . . . . . . 54
3.5.5 Operator Bitwise . . . . . . . . . . . . . . . . . . . . 55
3.5.6 Operator Khusus . . . . . . . . . . . . . . . . . . . . 57
3.6 Konversi Variabel . . . . . . . . . . . . . . . . . . . . . . . . 59
3.6.1 Konversi Integer . . . . . . . . . . . . . . . . . . . . 59
3.6.2 Konversi Float . . . . . . . . . . . . . . . . . . . . . 60
3.6.3 Konversi String . . . . . . . . . . . . . . . . . . . . . 60
3.6.4 Konversi Char . . . . . . . . . . . . . . . . . . . . . 61
3.6.5 Konversi Complex . . . . . . . . . . . . . . . . . . . 61
3.7 Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.7.1 Menginstal Library . . . . . . . . . . . . . . . . . . . 62
3.7.2 Memanggil Library . . . . . . . . . . . . . . . . . . . 62
3.8 Komentar . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.8.1 Komentar singleline . . . . . . . . . . . . . . . . . . 65
3.8.2 Komentar multiline . . . . . . . . . . . . . . . . . . . 65
3.9 Soal Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

4 ALUR LOGIKA PEMROGRAMAN 67


4.1 Alur logika . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.2 Alur Logika Kondisional . . . . . . . . . . . . . . . . . . . . 68
4.2.1 Ekspresi if ... else . . . . . . . . . . . . . . . . . . . . 69
4.2.2 Ekspresi if ... elif ... else . . . . . . . . . . . . . . . . 71
4.2.3 Ekspresi if ... Bersarang . . . . . . . . . . . . . . . . 72
4.3 Alur Logika Looping . . . . . . . . . . . . . . . . . . . . . . 73
4.3.1 Ekspresi while ... . . . . . . . . . . . . . . . . . . . . 74
4.3.2 Ekspresi for ... . . . . . . . . . . . . . . . . . . . . . 76
4.3.3 Looping bersarang . . . . . . . . . . . . . . . . . . . 77
4.3.4 Ekspresi continue dan break . . . . . . . . . . . . . . 79
4.4 Soal Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

5 FUNGSI 83
5.1 Apa itu Fungsi? . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.1.1 Struktur dan Definisi Fungsi . . . . . . . . . . . . . . 85
5.1.2 Konsep Return dan Fungsi Void . . . . . . . . . . . . 86
5.2 Fungsi Rekursif . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.3 Jangkauan dan Waktu Hidup Variabel . . . . . . . . . . . . . 89
5.4 Fungsi Built-In . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.5 Soal Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

6 PARADIGMA OBJEK 93
6.1 Pemrograman Berorientasi Objek . . . . . . . . . . . . . . . . 93
6.2 Kelas dan Objek . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.3 Mengkonstruksi Kelas . . . . . . . . . . . . . . . . . . . . . 95
6.4 Mengkonstruksi Objek . . . . . . . . . . . . . . . . . . . . . 97
6.5 Konstruktor . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
6.6 Enkapsulasi . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.6.1 Menggunakan Variabel Privat . . . . . . . . . . . . . 102
6.7 Inheritance (Pewarisan) . . . . . . . . . . . . . . . . . . . . . 104
6.7.1 Fungsi super() . . . . . . . . . . . . . . . . . . . . 106
6.7.2 Multiinheritance (Pewarisan ganda) . . . . . . . . . . 107
6.8 Polimorpisme . . . . . . . . . . . . . . . . . . . . . . . . . . 109
6.9 Soal Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

7 LIBRARY NUMPY 113


7.1 Apa itu Library NumPy? . . . . . . . . . . . . . . . . . . . . 113
7.2 Instalasi Library Numpy . . . . . . . . . . . . . . . . . . . . 113
7.3 Mengimport Library NumPy . . . . . . . . . . . . . . . . . . 114
7.4 Objek Ndarray . . . . . . . . . . . . . . . . . . . . . . . . . 115
7.4.1 Pendefinisian Array . . . . . . . . . . . . . . . . . . . 116
7.4.2 Tipe Data Array . . . . . . . . . . . . . . . . . . . . 117
7.4.3 Pendefinisian Intrinsik pada Array . . . . . . . . . . . 119
7.5 Operasi Dasar pada Array . . . . . . . . . . . . . . . . . . . . 120
7.5.1 Operator Aritmatika . . . . . . . . . . . . . . . . . . 120
7.5.2 Perkalian Matriks . . . . . . . . . . . . . . . . . . . . 123
7.5.3 Operator (Incre-Decre)ment . . . . . . . . . . . . . . 125
7.5.4 Fungsi Universal (ufunc) . . . . . . . . . . . . . . . . 126
7.5.5 Fungsi Agregat . . . . . . . . . . . . . . . . . . . . . 127
7.6 Akses Data pada Array . . . . . . . . . . . . . . . . . . . . . 128
7.6.1 Mekanisme Indeks . . . . . . . . . . . . . . . . . . . 128
7.6.2 Slicing . . . . . . . . . . . . . . . . . . . . . . . . . 132
7.6.3 Iterasi pada Array . . . . . . . . . . . . . . . . . . . . 133
7.6.4 Operasi Perbandingan (Boolean) . . . . . . . . . . . . 135
7.7 Manipulasi Dimensi Array . . . . . . . . . . . . . . . . . . . 136
7.8 Manipulasi Array . . . . . . . . . . . . . . . . . . . . . . . . 138
7.8.1 Penggabungan Array . . . . . . . . . . . . . . . . . . 139
7.8.2 Pemisahan Array . . . . . . . . . . . . . . . . . . . . 140
7.9 Membaca dan Mencetak data Array pada File . . . . . . . . . 143
7.9.1 Mengambil dan Menyimpan Data pada File Binary . . 143
7.9.2 Membaca File dengan Data Tabel . . . . . . . . . . . 144
7.10 Soal Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . 146

8 LIBRARY MATPLOTLIB 149


8.1 Apa itu Library Matplotlib? . . . . . . . . . . . . . . . . . . . 149
8.2 Instalasi Matplotlib . . . . . . . . . . . . . . . . . . . . . . . 150
8.3 Arsitektur Library Matplotlib . . . . . . . . . . . . . . . . . . 151
8.3.1 Lapisan Backend . . . . . . . . . . . . . . . . . . . . 151
8.3.2 Lapisan Artist . . . . . . . . . . . . . . . . . . . . . . 152
8.3.3 Lapisan Scripting (pyplot) . . . . . . . . . . . . . . . 153
8.4 Grafik Interaktif . . . . . . . . . . . . . . . . . . . . . . . . . 154
8.4.1 Mengatur Tampilan Grafik . . . . . . . . . . . . . . . 155
8.4.2 Menyimpan Grafik . . . . . . . . . . . . . . . . . . . 166
8.5 Grafik 2-Dimensi . . . . . . . . . . . . . . . . . . . . . . . . 168
8.5.1 Grafik Garis . . . . . . . . . . . . . . . . . . . . . . . 168
8.5.2 Histogram . . . . . . . . . . . . . . . . . . . . . . . . 173
8.5.3 Grafik Batang . . . . . . . . . . . . . . . . . . . . . . 175
8.5.4 Grafik Lingkaran . . . . . . . . . . . . . . . . . . . . 178
8.5.5 Grafik Contour . . . . . . . . . . . . . . . . . . . . . 180
8.5.6 Grafik Polar . . . . . . . . . . . . . . . . . . . . . . . 181
8.6 Grafik 3-Dimensi . . . . . . . . . . . . . . . . . . . . . . . . 183
8.6.1 Grafik Surface . . . . . . . . . . . . . . . . . . . . . 184
8.6.2 Grafik Scatter 3-Dimensi . . . . . . . . . . . . . . . . 184
8.7 Soal Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . 186

II KOMPUTASI NUMERIK 191

9 MATRIKS 193
9.1 Apa itu Matriks? . . . . . . . . . . . . . . . . . . . . . . . . 193
9.2 Sifat Matriks . . . . . . . . . . . . . . . . . . . . . . . . . . 194
9.2.1 Sifat Aljabar . . . . . . . . . . . . . . . . . . . . . . 194
9.2.2 Sifat Matriks Transpos . . . . . . . . . . . . . . . . . 196
9.2.3 Sifat Matriks Determinan . . . . . . . . . . . . . . . . 196
9.3 Kaitan matriks dan Python . . . . . . . . . . . . . . . . . . . 197
9.3.1 Operasi Pertambahan dan Pengurangan pada Matriks . 198
9.3.2 Operasi Perkalian Matriks . . . . . . . . . . . . . . . 199
9.3.3 Operasi Matriks Tranpos . . . . . . . . . . . . . . . . 201
9.3.4 Operasi Determinan Matriks . . . . . . . . . . . . . . 202
9.3.5 Operasi Matriks Invers . . . . . . . . . . . . . . . . . 203
9.3.6 Operasi Pencarian Nilai dan Vektor Eigen Matriks . . 205
9.4 Soal Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . 210

10 SOLUSI PERSAMAAN NONLINEAR 213


10.1 Definisi Sistem Persamaan Nonlinear . . . . . . . . . . . . . 213
10.2 Metode Bisection . . . . . . . . . . . . . . . . . . . . . . . . 215
10.3 Metode Newton-Raphson . . . . . . . . . . . . . . . . . . . . 220
10.4 Metode Secant . . . . . . . . . . . . . . . . . . . . . . . . . 224
10.5 Metode Regula-Falsi . . . . . . . . . . . . . . . . . . . . . . 228
10.6 Metode Fixed-Point . . . . . . . . . . . . . . . . . . . . . . . 232
10.7 Soal Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . 237

11 SISTEM PERSAMAAN LINEAR 239


11.1 Definisi Sistem Persamaan Linear . . . . . . . . . . . . . . . 239
11.2 Metode Eliminasi-Gauss . . . . . . . . . . . . . . . . . . . . 242
11.3 Metode Jacobi . . . . . . . . . . . . . . . . . . . . . . . . . . 250
11.4 Metode Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . . 260
11.5 Soal Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . 264

12 INTERPOLASI 267
12.1 Definisi Interpolasi . . . . . . . . . . . . . . . . . . . . . . . 267
12.2 Interpolasi Linear . . . . . . . . . . . . . . . . . . . . . . . . 269
12.3 Interpolasi Lagrange . . . . . . . . . . . . . . . . . . . . . . 271
12.4 Interpolasi Newton . . . . . . . . . . . . . . . . . . . . . . . 278
12.5 Interpolasi Hermite . . . . . . . . . . . . . . . . . . . . . . . 286
12.6 Interpolasi Spline-Kubik . . . . . . . . . . . . . . . . . . . . 290
12.7 Soal Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . 299

13 INTEGRASI 301
13.1 Definisi Integrasi . . . . . . . . . . . . . . . . . . . . . . . . 301
13.2 Metode Trapezoidal . . . . . . . . . . . . . . . . . . . . . . . 303
13.3 Metode Simpson-1/3 . . . . . . . . . . . . . . . . . . . . . . 307
13.4 Metode Simpson-3/8 . . . . . . . . . . . . . . . . . . . . . . 312
13.5 Metode Gauss-Quadrature . . . . . . . . . . . . . . . . . . . 315
13.6 Metode Monte-Carlo . . . . . . . . . . . . . . . . . . . . . . 320
13.7 Soal Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . 324

14 DIFERENSIAL 325
14.1 Definisi Diferensial . . . . . . . . . . . . . . . . . . . . . . . 325
14.2 Persamaan Diferensial . . . . . . . . . . . . . . . . . . . . . 326
14.2.1 Metode Beda-Hingga . . . . . . . . . . . . . . . . . . 326
14.2.2 Metode Runge-Kutta 2 . . . . . . . . . . . . . . . . . 332
14.2.3 Masalah Syarat Awal . . . . . . . . . . . . . . . . . . 334
14.3 Soal Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . 337

DAFTAR PUSTAKA 343

INDEKS 345

xii

Anda mungkin juga menyukai