Puji syukur kami panjatkan kehadiran Tuhan Yang Maha Esa atas rahmat-
Nya yang telah dilimpahkan kepada kami sehingga kami dapat menyelesaikan
tugas dengan baik, namun demikian masih ada kekurangan didalamnya. Dan juga
kami berterima kasih kepada Ibu Prof. Dr. Ir. Ellen Joan Kumaat, MSc, DEA dan
Bapak Prof. Dr. Ir. Hieryco Manalip, Msc, DEA selaku dosen mata kuliah Metode
Numerik Lanjut yang telah memberikan kepercayaan tugas ini kepada kami.
Kami sangat berharap tugas ini dapat berguna dalam rangka menambah
wawasan serta pengetahuan. Kami juga menyadari sepenuhnya bahwa di dalam
tugas ini terdapat kekurangan dan jauh dari kata sempurna. Oleh sebab itu, kami
berharap adanya kritik, saran dan usulan demi perbaikan tugas yang telah kami
buat di masa yang akan datang, mengingat tidak ada sesuatu yang sempurna tanpa
saran yang membangun.
Semoga tugas sederhana ini dapat dipahami bagi siapapun yang
membacanya. Sekiranya tugas yang telah disusun ini dapat berguna bagi kami
sendiri maupun orang yang membacanya. Sebelumnya, kami mohon maaf apabila
terdapat kesalahan kata yang kurang berkenan dan juga kami memohon kritik dan
saran yang membangun demi perbaikan makalah ini di waktu yang akan datang.
Manado, November 2019
Penyusun
i
DAFTAR ISI
KATA PENGANTAR..............................................................................................i
DAFTAR ISI............................................................................................................ii
DAFTAR GAMBAR..............................................................................................iv
BAB I.......................................................................................................................1
PENDAHULUAN...................................................................................................1
1.1 Latar Belakang..........................................................................................1
1.2 Rumusan Masalah.....................................................................................2
1.3 Tujuan........................................................................................................3
1.4 Manfaat Penulisan.....................................................................................3
BAB II......................................................................................................................4
PEMBAHASAN......................................................................................................4
2.1 Pengertian Matriks....................................................................................5
2.2 Conjugate Gradient (CG)..........................................................................5
2.3 Sejarah Python...........................................................................................7
2.4 Aplikasi Bahasa Phyton.............................................................................8
2.5 Mengapa Menggunakan Python................................................................8
2.6 Kelebihan dan Kekurangan Python...........................................................9
2.7 Instalasi Python.......................................................................................11
2.8 Platform Python.......................................................................................13
2.9 Cara Menjalankan Program Pertama.......................................................13
BAB III..................................................................................................................15
BAGAN ALIR & PERHITUNGAN......................................................................15
4.1 Algoritma Conjugate Gradient (CG)......................................................15
4.2 Bagan Alir Conjugate Gradient (CG).....................................................16
4.3 Perhitungan Manual dengan Conjugate Gradient (CG)..........................17
4.4 Perhitungan Conjugate Gradient (CG) Menggunakan Program Python 19
BAB V....................................................................................................................22
PENUTUP..............................................................................................................22
5.1 Kesimpulan..............................................................................................22
ii
5.2 Saran........................................................................................................22
DAFTAR PUSTAKA............................................................................................23
iii
DAFTAR GAMBAR
iv
BAB I
PENDAHULUAN
1
yang mempelajari kasus dengan salah satu fungsi obyektif atau fungsi kendalanya
merupakan persamaaan atau pertidaksamaan nonlinear.
Salah satu subklas dalam permasalahan pemrograman nonlinear
adalah pemrograman kuadratik konveks. Pemrograman kuadratik konveks
adalah permasalahan optimisasi berkendala nonlinear dengan fungsi
obyektifnya adalah fungsi kuadratik konveks. Fungsi kuadratik konveks pada
fungsi obyektif yang terdapat dalam pemrograman kuadratik konveks
2
1.3 Tujuan
1. Untuk mengetahui pengertian dari Metode Conjugate Gradient (CG).
2. Untuk mengetahui hasil menyelesaikan permasalahan dengan
menggunakan Metode Conjugate Gradient (CG) pada perhitungan
manual dan perhitungan program python.
3
BAB II
PEMBAHASAN
[ ][ ] [ ]
a11 a12 a13 … a1 n x1 b1
a21 a22 a23 … a2 n x2 b2
a31 a32 a33 … a3 n x 3 = b3
… … …… … … …
an 1 an 2 a n3 … ann xn bn
4
2.1 Pengertian Matriks
Matriks adalah suatu deretan elemen yang membentuk empat persegi
panjang, terdiri dari m baris dan n kolom. Elemen tersebut dapat berbentuk
koefisien, bilangan atau simbul.
Matriks yang mempunyai m baris dan n kolom disebut matriks berdimensi
m x n. Misalkan suatu matriks A dengan elemen aij dapat ditulis sebagai berikut :
A = ( aij )
j = 1 , 2 , 3 ,.........., n : kolom
catatan : dalam menulis elemen, sebutlah barisnya dulu, baru diikuti kolom.
Contoh : a11 maksudnya adalah eleman a baris 1 kolom 1
A23 maksudnya adalah elemen a baris 2 kolom 3
5
f ' (x) = 0
Ax – b = 0
Ax = b .
Jika A definit positif, maka x merupakan titik minimum global dari fungsi kuadrat
f (x), sehingga x merupakan solusi yang unik dari SPL (1). Untuk menemukan
titik minimum atau vektor solusi x, dilakukan langkah-langkah untuk menghitung
nilai perkiraan vektor solusi x pada setiap langkah atau iterasi ke-i dilambangkan
dengan x(i). Indeks untuk langkah atau iterasi dilambangkan dalam tanda kurang.
Jika pada iterasi ke-i toleransi sudah terpenuhi, maka x(i) adalah solusi numerik
dari SPL (1).
Pada setiap iterasi didefinisikan dua buah vektor sebagai berikut:
1. Vektor error e(i), yaitu selisih antara vektor perkiraan pada iterasi ke-i dengan
vektor solusi.
e(i) = x(i) – x (2)
2. Vektor residual r(i), yaitu selisih yang masih terjadi pada SPL dengan
menggunakan perkiraan solusi yang telah diperoleh pada iterasi ke-i.
r(i) = b – Ax (3)
Dari persamaan di atas diketahui bahwa vektor residual r(i) juga merupakan
negatif dari gradient f ' (x) pada titik x(i) .
r(i) = – f ' (x(i)) .
Langkah pertama pada metode CG adalah dengan memilih tebakan awal x(0) .
Selanjutnya vektor x(i) diperoleh dengan persamaan
x(i+1) = x(i) + a(i) d(i)
(4)
Vektor d(i) adalah vektor arah (search direction) untuk mencari titik minimum x
pada iterasi ke-i.
Nilai vektor arah pada langkah pertama d(0) ditetapkan sebagai r(0), sedangkan
pada langkah selanjutnya digunakan persamaan
d(i+1) = r(i+1) - ß (i+1) d(i) (5)
Konstanta a(i) dan ß(i+1) merupakan skalar dan diperoleh dengan persamaan-
persamaan di bawah ini.
(6)
6
dan
(7)
Pada persamaan (3) dan (6) masing-masing terdapat perkalian matriks-vektor.
Untuk meningkatkan efisiensi komputasi pada persamaan (3) dan (6) , maka
dilakukan langkah-langkah berikut ini:
1. Subtitusikan persamaan (1) dan (2) pada persamaan (3) sehingga diperoleh
persamaan
r(i) = Ae(i)
(8)
2. Subtitusikan persamaan (2) pada persamaan (4) sehingga diperoleh persamaan
e(i+1) = e(i)+a(i)d(i) (9)
3. Subtitusikan persamaan (9) pada persamaan (8) sehingga diperoleh persamaan
r(i+1) = r(i) - a(i)Ad(i) (10)
4. Perkalian matriks-vektor Ad(i) pada persamaan (6) dan (10) dapat dinyatakan
sebagai q, sehingga Ad(i) hanya dihitung satu kali dengan menambahkan
persamaan
q = Ad(i) (11)
7
pemegang hak cipta intelektual Python sejak versi 2.1 dan dengan demikian
mencegah Python dimiliki oleh perusahaan komersial. Saat ini distribusi Python
sudah mencapai versi 2.6.1 dan versi 3.0.
Nama Python dipilih oleh Guido sebagai nama bahasa ciptaannya karena
kecintaan guido pada acara televisi Monty Python s Flying Circus. Oleh karena
itu seringkali ungkapan-ungkapan khas dari acara tersebut seringkali muncul
dalam korespondensi antar pengguna Python.
8
memiliki kepustakaan yang luas; dalam distribusi Python telah
disediakan modul-modul siap pakai untuk berbagai keperluan.
memiliki tata bahasa yang jernih dan mudah dipelajari.
9
modul phyton seperti memodifikasi aplikasi tanpa
menghentikannya
Model objek universal kelas Satu Konstruksi pada saat aplikasi berjalan
Interaktif, dinamis dan alamiah Akses hingga informasi interpreter
Portabilitas secara luas seperti pemrograman antar platform tanpa ports
Kompilasi untuk portable kode byte sehingga kecepatan eksekusi
bertambah dan melindungi kode sumber
Antarmuka terpasang untuk pelayanan keluar seperti perangkat Bantu
system, GUI, persistence, database, dll
Kekurangan:
Beberapa penugasan terdapat diluar dari jangkauan python, seperti
bahasa pemrograman dinamis lainnya, python tidak secepat atau efisien
sebagai statis, tidak seperti bahasa pemrograman kompilasi seperti
bahasa C.
Disebabkan python merupakan interpreter, python bukan merupakan
perangkat bantu terbaik untuk pengantar komponen performa kritis.
10
2.7 Instalasi Python
1. Pilih software Python versi yang diinginkan, contoh memakai python
versi 2.4
11
4. Pilih direktori tujuan untuk tempat menyimpan program python, lalu
klik tombol next. Jika kita klik tombol Disk Usage maka muncul form
yang berisi informasi berapa besar kapasitas disk yang dibutuhkan
/digunakan untuk menginstal python(sekitar 49 MB) :
Jika kita klik tombol advanced, pilih compile .py ke byte code setelah
instalasi jika tidak memilih juga tidak apa-apa dan tekan finish,ikuti petunjuk
selanjutnya :
Selesai instalasi, komputer telah ada Python, khususnya versi 2.4 pada
folder C:\Python24
12
2.8 Platform Python
Python dapat digunakan untuk berbagai keperluan pengembangan
perangkat lunak dan dapat berjalan di berbagai macam sistem operasi karena
sifatnya yang multiplatform. Pada kebanyakan sistem operasi linux, bahasa
pemrograman ini menjadi standarisasi untuk disertakan dalam paket
distribusinya.
Seperti halnya bahasa pemrograman dinamis, python seringkali digunakan
sebagai bahasa skrip. Saat ini kode python dapat dijalankan pada sistem berbasis:
Linux/Unix, Windows, Mac OS X, OS/2, Amiga, Palm, Symbian (untuk produk-
produk Nokia).
Python didistribusikan dengan beberapa lisensi yang berbeda dari
beberapa versi. Lihat sejarahnya di Python Copyright. Namun pada
prinsipnya Python dapat diperoleh dan dipergunakan secara bebas, bahkan
untuk kepentingan komersial. Lisensi Python tidak bertentangan baik
menurut definisi Open Source maupun General Public License (GPL).
2.9 Cara Menjalankan Program Pertama
Klik tombol start Program Python24 IDLE((Python GUI), IDLE(GUI-
Integrated Development Environment) dengan tampilan sebagai berikut :
13
pada layar. Ya, kita menuliskan program Python yang pertama
14
BAB III
BAGAN ALIR & PERHITUNGAN
Masukkan nilai matriks [S] dan (b) yang membentuk persamaan simultan
linear, serta toleransi perhitungan.
15
4.2 Bagan Alir Conjugate Gradient (CG)
MULAI
n
bi − ∑ aii x j
j=1 , j ≠ i
x i=
a ii
||
a ij
n
YA IF ∑ aii
TIDAK
j =1 , j ≠i
SELESAI
16
4.3 Perhitungan Manual dengan Conjugate Gradient (CG)
Diketahui :
[ ][ ] ] { }
27 6 −1 X₁ 85
6 15 2 X ₂ = 72
1 1 54 X₃ 110
Ditanya :
Penyelesaian :
[ ][ ] { }
27 X ₁ + 6 X ₂ – X₃ = 85
27 6 −1 X ₁ 85
6 15 2 X ₂ = 72 6 X ₁ + 15 X ₂ + X ₃
1 1 54 X ₃ 110
= 72
85−6 X ₂+ X ₃
X₁ =
27
72−6 X ₁−2 X ₃
X₂ =
15
110−X ₁− X ₂
X₃ =
54
85−(6 . 0)+ 0
X₁.₁ = = 3,14815
27
72−( 6 . 3,14815 )−(2.0)
X₂.₁ = = 3,54074
15
110−3,14815−3,54074
X₃.₁ = = 1,91317
54
17
ITERASI KE- 2
ITERASI X₁ X₂ X₃
1 3.14815 3.54074 1.91317
2 2.43217 3.57204 1.92585
3 2.42569 3.57294 1.92595
4 2.42549 3.57301 1.92595
5 2.42548 3.57302 1.92595
Dapat dilihat bahwa sampai iterasi ke-5 sudah konvergen ke hasil yang
diharapkan.
18
4.4 Perhitungan Conjugate Gradient (CG) Menggunakan Program Python
19
20
Gambar 4.2 Perhitungan Conjugate Gradient (CG)
Menggunakan Program Python
21
BAB V
PENUTUP
5.1 Kesimpulan
Python merupakan bahasa pemrograman yang freeware atau perangkat
bebas dalam arti sebenarnya, tidak ada batasan dalam penyalinannya atau
mendistribusikannya. Lengkap dengan source codenya, debugger dan profiler,
antarmuka yang terkandung di dalamnya untuk pelayanan antarmuka, fungsi
sistem, GUI (antarmuka pengguna grafis), dan basis datanya.
Python dikembangkan oleh Guido van Rossum pada tahun 1990 di CWI,
Amsterdam sebagai kelanjutan dari bahasa pemrograman ABC. Versi terakhir
yang dikeluarkan CWI adalah 1.2.
Tahun 1995, Guido pindah ke CNRI sambil terus melanjutkan
pengembangan Python. Versi terakhir yang dikeluarkan adalah 1.6. Tahun 2000,
Guido dan para pengembang inti Python pindah ke BeOpen.com yang merupakan
sebuah perusahaan komersial dan membentuk BeOpen PythonLabs. Python 2.0
dikeluarkan oleh BeOpen. Setelah mengeluarkan Python 2.0, Guido dan beberapa
anggota tim PythonLabs pindah ke DigitalCreations.
Nama Python dipilih oleh Guido sebagai nama bahasa ciptaannya karena
kecintaan guido pada acara televisi Monty Python s Flying Circus. Oleh karena
itu seringkali ungkapan-ungkapan khas dari acara tersebut seringkali muncul
dalam korespondensi antar pengguna Python.
Dalam tugas ini menggunakan program Python
5.2 Saran
Untuk memudahkan pekerjaan lebih baik kita memanfaatkan aplikasi-
aplikasi komputer yang dapat membantu meringankan pekerjaan sehingga dapat
memaksimalkan waktu. Sebelum menggunakan program harus mengecek kembali
program yang ada didalamnya, harus sesuai dengan data yang akan diolah. Tugas
ini belum sepenuhnya sempurna, diharapkan agar dapat memberikan saran dan
masukan yang bersifat membangun untuk perbaikan dan menyempurnakan tugas
ini.
22
DAFTAR PUSTAKA
file:///C:/Users/ASUS/Downloads/KONSEP%20DASAR
%20PYTHON.pdf. [online] [16 Oktober 2019]
23