Anda di halaman 1dari 67

0

BAHAN BACAAN
MATA KULIAH METODE NUMERIK
Oleh:
Dr. Rochmad, M.Si
Jurusan Matematika FMIPA UNNES
1
BAGIAN I
PENDAHULUAN
Beberapa definisi metode numerik dikemukakan ahli matematika, misalnya
metode numerik adalah teknik di mana masalah matematika diformulasikan sedemikian
rupa sehingga dapat diselesaikan oleh pengoperasian aritmetika (Chapra dan Chanale,
1991); metode numerik adalah teknik-teknik yang digunakan untuk merumuskan masalah
matematika agar dapat diselesaikan han ya dengan operasi hitungan, yang terdiri dari
operasi tambah, kurang, kali dan bagi (Susila, 1994 ; Ibraheem dan Hisyam, 2003).
Terdapat banyak jenis metode numerik, namun pada dasarnya, masing -masing metode
tersebut memiliki karakteristik umum, yaitu selal u mencakup sejumlah kalkulasi
aritmetika. Jadi metode numerik adalah suatu teknik untuk memformulasikan masalah
matematika sehingga dapat diselesaikan dengan operasi aritmetika yang terdiri dari
operasi tambah, kurang, kali dan bagi.
Pada dasarnya penyelesaian atau jawaban dari suatu masalah matematika yang
diharapkan berupa penyelesaian atau jawaban eksak. Misalnya dalam menyelesaikan
suatu persamaan, pemecah masalah sebenarnya berkeinginan memperoleh jawaban
eksak, yakni jawaban yang diperoleh tersebu t memenuhi persamaan semula secara eksak
(penyelesaian analitis). Tetapi karena proses komputasi (termasuk jika menggunakan
komputer) dalam pemecahan masalah sering melibatkan banyak langkah dan angka
(termasuk melakukan pembulatan) maka penyelesaian dari masalah sering hanya berupa
hampiran dari hasil eksak yang diharapkan. Bahkan hasil eksaknya sering tidak diketahui,
hal ini disebabkan konsep hampiran berkaitan dengan konsep pendekatan, misalnya
dalam kasus kekonvergenen suatu barisan bilangan. Kecuali u ntuk kasus-kasus khusus
metode numerik memberikan jawaban suatu masalah secara eksak. Namun pada
prinsipnya metode numerik digunakan untuk memecahkan masalah yang
penyelesaiannya berupa hampiran atau pendekatan dari nilai eksaknya.
Dengan demikian metode numerik menyediakan sejumlah kalkulasi aritmetika
yang kadang sulit dilakukan jika tanpa bantuan komputer. Oleh karena itu, pada era
teknologi elektronik ini, komputer menjadi alat bantu yang handal dalam menyelesaikan
masalah-masalah yang memerlukan perhit ungan yang mencakup sejumlah besar kalkulasi
2
aritmetika. Pada saat ini komputer bukan barang asing bagi para pelajar, termasuk
mahasiswa. Komputer pribadi dengan kemampuan tinggi tersedia meluas , mahasiswa
secara pribadi banyak yang memiliki. Di kampus ban yak tersedia komputer di
laboratorium komputer, bahkan sekarang banyak digunakan di sekolah -sekolah,
termasuk sekolah dasar. Hal ini menjadikan peran metode numerik untuk memecahkan
masalah dengan bantuan komputer banyak diminati mahasiswa. Apalagi akhir-akhir ini
tuntutan dunia kerja adalah tenaga profesional yang mampu mengoperasikan komputer
baik menggunakan paket program maupun program komputer.
Di samping itu, ada sejumlah alasan mengapa orang menggunakan metode
numerik untuk memecahkan masalah yang dihadapinya. Beberapa alasan tersebut sebagai
berikut.
a. Metode numerik merupakan suatu teknik untuk menyelesaikan masalah matematika
yang efektif dan efisisen. Dengan bantuan komputer ia sanggup menangani masalah
yang rumit dan melibatkan perhitungan yang luas, misalnya untuk memecahkan
masalah solusi suatu persamaan tak liear, sistem persamaan yang besar, dan
permasalahan lainnya termasuk dalam teknik dan sosial. Masalah yang sering sulit
atau bahkan tidak mungkin dapat diselesaikan secara analitis da pat diselesaikan
dengan metode numerik.
b. Saat ini terdapat berbagai paket program komputer (misalnya exel, maple, matlab,
atau program paket lainnya) yang tersedia dan diperdagangkan sehingga mudah
didapat yang dalam pengoperasiannya mencakup metode numeri k. Dengan demikian,
pemecah masalah tinggal menyesuaikan dengan karakteristik program paket tersebut
dengan algortima yang digunakan dalam pemecahan masalah.
c. Apabila masalah yang dihadapi sulit diselesaikan dengan bantuan program paket
komputer, maka pemecah masalah dapat menggunakan program komputer (misalnya
basic, pascal, fortran, atau program komputer lainnya). Jika pemecah masalah mahir
mendesain program sendiri, maka pemecah masalah dapat lebih leluasa dalam
menggunakan metode numerik untuk memecahka n masalah yang dihadapinya.
d. Di sisi lain, metode numerik merupakan semacam sarana yang efisien untuk
mengenal karakteristik komputer dan mendesain algoritma, diagram alur dan menulis
program komputer sendiri. Salah satu cara yang efektif untuk belajar men ggunakan
3
komputer adalah dengan mendesain program sendiri, mencoba (mengeksekusi),
merevisi, dan memperhalus program buatannya tersebut. Jika pengguna komputer
sukses dan mahir mendesain program sendiri, maka suatu ketika akan diakui oleh
masyarakat sebagai pemrogram (programer) yang selanjutnya menjadi suatu profesi.
e. Metode numerik dapat dijadikan sarana untuk memperkuat kemampuan menerapkan
ilmu matematika. Misalnya pemahaman terhadap konsep -konsep analisis yang
abstrak dapat direalkan dalam bentuk yang lebih sederhana melalui perhitungan
numerik dengan bantuan komputer , konsep-konsep kekonvergenan erat kaitannya
dengan iterasi yang sering digunakan pemrogram dalam mendesain programnya , dan
fungsi yang sulit dibayangkan grafiknya dapat dibuat gafiknya.
Bahan ajar metode numerik ini memerlukan prasyarat yaitu memahami konsep -
konsep matematika terutama kalkulus, persamaan diferensisal, analisis dan aljabar. Mata
kuliah metode numerik tergolong dalam matematika terapan ( applied mathematics)
memerlukan kemahiran dalam menggunakan dan mengoperasikan komputer baik untuk
paket program maupun program komputer. Pada dasarnya mahasiswa dapat
menggunakan paket program komputer apapun yang dikuasainya dan dapat digunakan
untuk membantu memecahkan masalah yang dihadap ainya, dan demikian pula
mahasiswa dapat menggunakan program komputer apapun yang dikuasainya. Hal ini
disebabkan keberadaan komputer dalam mata kuliah metode numerik hanyalah sebagai
alat untuk membantu mahasiswa dalam melakukan perhitungan numerik yang rumit dan
bahkan mungkin sangat sulit jika diselesaikan secara analitis.
Agar mahasiswa dapat belajar metode numerik dengan lebih baik dan efisien,
mahasiswa diharapkan memahami teori -teori yang mendukung untuk memecahkan
masalah. Pemahaman terhadap teori -teori pendukung ini, memungkin menjadikan
mahasiswa dapat menggunakan pemikiran logis dan bahkan kreatif dalam
mengungkapkan algoritma, contoh-contoh masalah, diagram alur ( flow chart), dan desain
penulisan programnya. Tentu saja program yang dibuat (den gan bahasa program apapun)
diharapkan dapat dieksekusi (dijalankan) di komputer dan hasilnya menunjukkan
pemecahan terhadap masalah yang dihadapi. Dengan demikian mahasiswa juga
diharapkan dapat menginterpretasikan hasil -hasil desain programnya.
4
Mata kuliah metode numerik, karena termasuk matematika terapan pada dasarnya
mencakup masalah dalam kehidupan sehari-hari yang luas, terutama masalah-masalah
yang berkaitan dengan sain, teknik, dan sosial. Oleh karena itu, mahasiswa diharapkan
membaca berbagai lit eratur untuk memperluas pemikiran dan pemahamannya terhadap
penggunaan metode numerik dalam memecahkan masalah -masalah yang berkaitan
dengan masalah dalam kehidupan sehari -hari.
Bagi mahasiswa yang kreatif dapat memilih masalah yang berkaitan dengan
fenomena alam yang dihadapinya, membuat model matematikanya, mencari penyelesaian
umum atau khusus dari model tersebut, dan kemudian dapat mendesain program untuk
mencari pemecahan yang melibatkan hampiran dan ilustrasi animasi komputer misalnya
gerakan grafik dan sebagainya. Dengan cara seperti ini, pemikiran dan keterampilan
mahasiswa dalam memecahkan masalah menjadi meningkat lebih tinggi, yang nantinya
akan berguna jika terjun ke dunia kerja, sebagai seorang yang profesional.
Tujuan mata kuliah metode numerik adalah mahasiswa memahami konsep-konsep
dasar metode numerik, memilih teknik yang cocok untuk menyelesaikan masalah
matematika dengan metode numerik. Mahasiswa mampu menyelesaikan masalah
matematika meliputi: pemodelan, pemilihan metode (algoritma) n umerik, membuat
diagram alur, membuat program komputer, dan menafsirkan hasilnya. Kreatifitas
mahasiswa dalam memecahkan masalah diharapkan tumbuh dan berkembang. Setelah
mahasiswa lulus mata kuliah ini diharapkan memiliki wawasan luas tentang berbagai
teknik pemecahan masalah dengan bantuan komputer, memiliki pemikiran logis dan
kreatif dalam melihat kaitan antara fenomena alam, teori, dan strategi pemecahannya , dan
diharapkan mampu mengembangkan kemampuannya dalam mendesain program
komputer dalam memecahkan masalah yang berkaitan dengan metode numerik.
Materi mata kuliah metode numerik berkaitan dengan galat dan komputasi, akar
persamaan tak linear meliputi pelokasian akar, metode bagi dua, metode posisi palsu,
iterasi titik tetap, metode Newton-Raphson, metode secant (talibusur); interpolasi
meliputi interpolasi linear dan kuadrat, interpolasi beda terbagi Newton, Interpolasi pada
titik-titik berjarak sama, interpolasi lagrange, interpolasi invers, dan interpolasi Spline;
Diferensial dan integral numerik meliputi hampiran turunan, integral numerik, dan aturan
komposisi, serta penggunaan metode numerik untuk memecahkan masalah sehari -hari.
5
BAB II
GALAT DAN KOMPUTASI
A. KOMPUTASI
Metode numerik merupakan suatu cabang atau bidang ilmu matematika,
khususnya untuk memecahkan masalah-masalah di bidang matematika, teknik, sain,
dan sosial, yang sulit jika diselesaikan secara analitik. Operasi yang digunakan adalah
operasi aritmetika misalnya tambah, kurang, kali dan bagi. Karena perkembangan di
bidang teknologi komputer maju dengan pesat, maka dalam memecahkan masalah
tersebut efektif dan efisien menggunakan bantuan komputer . Dalam mempelajari atau
menerapkan metode numerik, ada beberapa pemikiran dasar yang melandasinya, baik
berupa manfaat maupun kendala.
a. Apa yang Perlu Di perhatikan?
Metode numerik pada prinsipnya berkaitan dengan komputasi. Di satu sisi analisis
numerik dapat dipandang mendasari metode numerik, misalnya pada masalah
pemecahan masalah dengan metode bagi dua ( bisection) perlu pemahaman terhadap
analisis numerik. Berkaitan dengan komputasi, berikut ini beberapa hal -hal yang
penting yang perlu mendapat perhatian.
1. Setiap perhitungan (komputasi) mempunyai tujuan, tetapi perlu diperhatikan
bahwa maksud utama dari perhitungan adalah proses dan hasil dalam mencari
pemecahan masalah, bukan hanya untuk memperoleh sustu solusi berupa
bilangan, meskipun demikian fokus tetap pada mencari solusi suatu masalah yang
mendekati solusi eksaknya. Selanjutnya, dalam melakukan perhitungan,
hendaknya dipilih proses perhitungan atau algoritma yang efektif dan efisien,
yaitu yang memerlukan prosedur perhitungan yang sependek mungkin dan
memerlkukan waktu yang sesingkat mungkin . Dengan demikian, tujuan
perhitungan adalah memperoleh pendekatan dari solusi eksak suatu masalah
dengan tuingkat kesalahan relatif kecil dan dalam waktu yang sesingkat -
singkatnya.
6
2. Pemilihan rumus dan algoritma tertentu tidak hanya mempengaruhi proses dan
hasil perhitungan, tetapi juga penafsiran tentang hasil yang diperoleh. Solusi
yang kurang tepat akan memberi dampak pada penafsiran yang kurang akurat.
Tehnik perhitungan yang sering digunakan dalam metode numerik adalah iterasi.
Menggunakan sejumlah iterasi tertentu yang diperlukan, atau pemilihan selang,
yang seringkali bermanfaat dalam memberikan pengertian tentang masalah yang
dihadapi. Yang perlu diperhatikan dalam menggunakan metode iterasi ini adalah
bagaimana menghentikan perhitungan agar tidak terjadi pengulangan terus
menerus.
3. Dengan demikian melalui iterasi ketelitian pendekatan solusi bergantung pada
strategi menghentikan proses berulang dalam iterasi tersebut. P erhitungan
melalui iterasi erat kaitannya dengan sumber masalah maupun penggunaan
jawaban berulang yang diinginkan. Tetapi pemecah masalah masih harus tetap
memperhatikan masalah yang dihadapi, yakni kesesuaian antara pendekatan
solusi dan masalah. Untuk itu, diperlukan pengertian tentang tentang aplikasi
persamaan atau rumus yang akan digunakan untuk perhitungan. Dalam
melakukan prosedur iterasi sering merubah rumus agar mudah dalam
melakukan perhitungan. Kesalahan atau kekurang akuratan dari pengubahan
rumus tersebut bersipat aplikatif dan di luar jangkauan komputasi. Oleh karena
itu, perlu ada kaitan antara masalah yang dihadapi dengan prosedur komputasi,
hal ini dapat ditempuh dengan memahami berbagai karakateristik paket program
dan program komputer yang digunakan untuk memecahkan masalah.
4. Jika tujuan melakukan komputasi adalah penghayatan terhadap proses pemecahan
masalah, maka perlu dipelajari ciri kelo mpok masalah dan kaitan antara kelompok
satu dengan lainnya, bilamana mungkin, dan rumus serta algoritma yang terlalu
khusus sifatnya perlu dihindari. Di sini terletak perbedaan antara analisis numerik
dengan metode numerik. Analisis numerik lebih ditekank an pada pengkajian
mendalam pada teori dan soal khusus, yang relevansinya dengan realitas kurang
diperhatikan, sedangkan metode numerik berusaha untuk memenuhi kebutuhan
akan berbagai teknik untuk memecahkan masalah yang kompleks dan mungkin
7
timbul dari studi literatur mapun muncul dari realitas kehidupan sehari -hari, yakni
dalam hal ini disebut dengan istilah fenomena alam.
5. Metode numerik berkaitan dengan hampiran dan karena berbagai alasan dalam
metode numerik selalu berhadapan dengan galat (kesalah an). Misalnya galat
pembulatan timbul karena proses perhitungan aritmetika dan keterbatasan dalam
penulisan angka signifikansi, misalnya seseorang membatasi penulisan bilangan
hanya sampai enam angka signifikansi. Khususnya dengan menggunakan mesin
hitung dan komputer, bilangan hanya dinyatakan dalam angka (digit) yang
terbatas jumlahnya. Di samping itu, galat juga terjadi jika dua bilangan yang
ditambahkan atau dikurangkan, akibatnya terjadi perambatan galat, yakni
semakin banyak operasi yang digunakan s emakin besar galatnya. . Yang perlu
diusahakan oleh pemecah masalah dengan teknik komputasi komputer adalah
mengupayakan agar galat sekecil mungkin. .
6. Menyangkut keterbatasan proses komputasi nila i dilaksanakan oleh komputer.
Karena komputer mempunyai kemampuan dan kecepatan terbatas, maka untuk
selang waktu tertentu hanya dapat melakukan operasi komputasi yang terbatas
jumlahnya. Berbagai komputer memiliki kemampuan dan kecepatan yang
berbeda. Sering terjadi perbedaan yang signifikan antara pemecah mas alah yang
satu dengan lainnya, hal ini disebabkan oleh kemampuan komputer dalam
memproses program dan panjangnya program yang ditulis pemecah masalah.
Kriteria sederhana yang dapat digunakan untuk menentukan pemecahan masalah
mana yang lebih baik adalah dengan melihat kepraktisan desain program dan
kecilnya galat.
7. Umpan balik (feedback). Bilangan yang dihasilkan pada satu tahap akan
dipergunakan oleh komputer untuk komputasi tahap berikutnya, dan seterusnya.
Suatu program (prosedur) komputasi akan memp unyai suatu jalur ulang (loop)
siklus selanjutnya. Umpan balik erat kaitannya dengan stabilitas jalur ulang
umpan balik: suatu galat mungkin memperb esar atau mereda setelah iterasi
berkali-kali. Sasaran akhir dari analisis numerik yang dilakukan dalam meto de
numerik adalah diperolehnya metode yang terbaik untuk memperoleh jawaban
8
yang berguna dari persoalan matematika dan untuk menarik informasi yang
berguna dari berbagai jawaban yang dapat diperoleh .
8. Adanya kemajuan teknologi komputer yang memungkinka n pelaksanaan
komputasi secara tepat dan cepat menjadikan berbagai metode penyelesaian
persoalan dengan metode hampiran sangat berguna, antara lain karena hal berikut.
Pendekatan numerik, yang mungkin merupakan satu -satunya alternatif
penyelesaian, dapat diperoleh secara efisien. Guna menunjang komputasi ilmiah,
ada beberapa hal yang perlu diketahui yang berkaitan dengan teknik
pemrograman dan penggunaan komputer yaitu sebagai berikut: b ahasa
pemrograman komputer, beberapa di anataranya yang dipakai saat in i adalah
Pascal, Basic, Fortran, dan paket program lainnya misalnya Exel, Matlab, dan
lainnya.
b. Galat
Walaupun pemecah masalah selalu berusaha untuk memperoleh solusi
eksak, tetapi solusi yang demikian jarang diperoleh secara numerik. Solusi yang
diperoleh pada umumny adalah hampiran dari solusi eksak. Bahkan solusi eksaknya
itu sendiri tidak dapat ditemukan. Artinya pemecah masalah hanya mampu
memperoleh solusi hampiran dari solusi eksaknya.
Pada setiap langkah penyelesaian persoalan, dari formulasi hingga
komputasi numeriknya, galat (kesalahan) dan ketidakpastian dap at terjadi.
Ketidakpastian terjadi pada proses perumusan model matematika dan model numerik,
penyusunan metode, dan penerapan metode. Selain itu, faktor ketidakpastian juga
dapat berasal dari data yang dipergunakan. Sedangkan galat dapat disebabkan oleh
beberapa hal, misalnya pembulatan, pemotongan, dan lainnya yang berkaitan dengan
proses komputasi dan keterbatasan alat bantu mesin atau komputer yang digunakan.
Galat dalam metode numerik melekat pada banyak pemecahan masalah
yang melibatkan perhitungan bilangan, apakah dikerjakan secara perhitungan biasa
ataupun dengan bantuan komputer. Data input kadang kurang tepat, khususnya data
input yang diperoleh dari percobaan atau taksiran, dan proses numeriknya sendiri
menghasilkan beberapa macam galat. Galat sering disebut galat absolut
9
Galat absolut adalah selisih dari nilai pendekatan (hampiran) dan nilai eksak
(sebenarnya/sejati).
e = x
*
- x
dengan x
*
adalah nilai pendekatan dan x adalah nilai eksak (sebenarnya), dan e
adalah galat. Atau nilai sebenarnya adalah nilai hampiran ditambah galat.
x = x
*
+ e.
Galat relatif adalah galat absolut dibagi nilai pendekatan. Sebenarnya lebih beralasan
mendefinisikannya sebagai galat absolut dibagi n ilai sebenarnya, tetapi biasanya nilai
sebenarnya tidak diketahui. Yang ada adalah nilai pendekatan dan suatu taksiran galat
atau suatu batas terbesar dari ukuran galat. Jika galat kecil, perbedaan antara dua
definisi tersebut tidak mempunyai arti pada nil ai numerik dari galat relatif. Untuk
bilangan yang mendekati 1, galat absolut dan galat relatif hampir sama. Untuk
bilangan yang tidak mendekati 1, mungkin terdapat perbedaan besar. Misalnya, jika
nilai sebenarnya 0,00006 dari suatu pendekatan 0,00005, gal at absolutnya hanya 10
-5
,
tetapi galat relatifnya adalah 0,2 atau 20%. Di sisi lain, jika nilai sebenarnya 100.500
dan pendekatan adalah 100.000, galat absolutnya 500, tetapi galat relatifnya hanya 0,
005 atau 0,5%. Galat ralatif dirumuskan sebagai berikut .
E =
x
e
dengan E adalah galat relatif, e adalah galat, dan x adalah nilai eksak. Dalam hal nilai
eksaknya tidak diketahui, galat relatif dapat dihitung dengan rumus
E =
*
x
e
dengan E adalah galat relatif, e adalah galat, dan x
*
adalah nilai pendekatan dari nilai
eksak.
Galat Pemotongan. Galat pemotongan bergubungan dengan galat yang disebabkan
oleh cara pelaksanaan prosedur numerik. Misalnya, Deret Taylor tak berhingga:
10
Sin x = x - . . .
! 7 ! 5 ! 3
7 5 3
+ +
x x x
dapat dipakai menghitung sinus sebarang sudut x dalam radian. Jelas dalam kasus ini
pemecah masalah tidak dapat memakai semua suku dalam deret untuk perhitungan.
Karena deretnya tak berhingga, maka perhitungan akan berhenti (dihentikan) sampai
pada sejumlah suku yang berhingga, misalnya sampai suku ketiga, ke empat, atau
suku ke dua puluh.
Suku-suku yang dihilangkan (jumlahnya tak berhingga) menghasilkan suatu galat
dalam operasi perhitungan. Galat ini disebut galat pemotongan (atau pemenggalan),
yaitu galat yang disebabkan oleh pemotongan suatu proses matematika yang tak
berhingga. Kebanyakan prosedur yang dipakai dalam perhitungan numerik adalah tak
berhingga, sehingga galat jenis ini banyak dijumpai dalam pemecahan masalah.
Galat Pembulatan. Misalkan dipergunakan komputer yang tiap bilangannya hanya
dinyatakan sampai 6 angka dan diinginkan untuk melakukan operasi penjumlahan
antara 9,26541 dan 7,16252, nilai keduanya dianggap eksak. Jumlah kedua bilangan
tersebut adalah 16,42793, yaitu terdiri atas 7 angka sehingga tidak dapat disimpan
dalam komputer karena komputer hanya mampu memuat 6 angka . Komputer harus
membulatkan hasil 7 angka tersebut men jadi 16,4279, yakni menjadi 6 angka, dan di
dalam pembulatan ini terdapat suatu galat pembulatan sebesar 0,00003. Jika
pekerjaan komputer dilakukan dengan banyak operasi bilangan, maka dalam hal ini
menyebabkan diperlukannya pembulatan berkali-kali dan akbibatnya terjadi galat
berulangkali. Jadi galat dapat menjadi semakin besar.
Galat bawaan. Galat bawaan mungki n terjadi karena data yang diberikan, misalnya
dari hasil pengukuran tidak akurat. Ketidakakuratan data yang diperoleh dari hasil
pengukuran ini menjadikan hampiran solusi menimpang jauh dari solusi eksaknya.
Hal ini dapat dihindari dengan cara lebih hati -hati dalam mengambil data atau
instrumen yang digunakan untuk mengambil data haruslah instrumen yang memenuhi
kevalidan dan reliabel.
11
BAGIAN III
PERSAMAAN KUADRAT
A. TINJAUAN TEORI
a. Definisi dan Bentuk Umum Persamaan Kuadrat
Dalam kehidupan sehari -hari kita sering menjumpai berbagai kalimat,
misalnya :
1. Matahari beredar mengelilingi bumi.
Kalimat tersebut jelas salah, sebab bukan matahari yang mengelilingi bumi tetapi
sebaliknya, bumilah yang mengelilingi matah ari.
2. Semua benda akan memuai bila dipanaskan.
Kalimat tersebut salah, sebab terdapat benda yang tidak memuai setelah
dipanaskan, misalnya kayu.
3. Ir. Soekarno adalah presiden pertama negara kita.
Kalimat tersebut jelas benar.
Dalam matematika juga dikenal kalimat benar dan kalimat salah seperti contoh
berikut.
4. Bilangan prima selalu bilangan ganjil.
Kalimat tersebut adalah kalimat yang salah, sebab bilangan prima ada juga yang
genap, yaitu 2.
5. Jumlah dari 9 dan 17 adalah 26.
Kalimat tersebut benar, sebab 9 + 17 = 26.
Dari contoh-contoh di atas, kalimat dalam matematika dapat digolongkan menajdi
dua macam kalimat, yaitu kalimat benar dan kalimat salah. Kalimat benar dan
kalimat salah disebut pernyataan.
Selanjutnya, perhatikan contoh-contoh kalimat berikut ini.
6. 12 adalah kelipatan 3.
7. 2 + 9 < 7.
8. x + 7 = 15
Dari contoh-contoh di atas, contoh 6 merupakan kalimat benar, contoh 7 merupakan
kalimat salah, dan contoh 8 merupakan kalimat yang belum dapat ditentukan benar
12
atau salahnya. Kalimat yang belum diketahui nil ai kebenarannya (benar atau salah)
disebut kalimat terbuka. Pada contoh 8, jika x diganti dengan 8, maka akan menjadi
kalimat benar. Jika x diganti dengan bilangan selain 8, maka akan menjadi bilangan
salah.
Lambang-lambang seperti x ataupun lainnya diseb ut variabel atau peubah.
Setiap kalimat terbuka memuat peubah (variabel) yang harus diganti dengan satu atau
beberapa anggota yang telah ditentukan. Pengganti dari variabel yang membuat
kalimat terbuka menjadi kalimat benar disebut.
b. Penyelesaian.
Pada contoh 8, kalimat terbuka tersebut menggunakan tanda hubung =
(sama dengan). Persamaan adalah kalimat terbuka yang dihubungkan dengan tanda
sama dengan, ditulis =. Persamaan pada contoh 8 tersebut hanya memiliki satu
variabel, yaitu x. Maka persamaan yang demikian disebut persamaan dengan satu
variabel. Variabel x pada persamaan tersebut berpangkat 1 (dalam aljabar, pangkat 1
tidak perlu ditulis). Persamaan yang pangkat tertinggi variabelnya adalah satu disebut
persamaan linier.
- Menentukan Akar-akar Persamaan Kuadrat dengan Menggunakan Rumus
Kuadrat
Kita ketahui bahwa menentukan akar -akar persamaan kuadrat dengan
melengkapkan kuadrat sempurna selalu berhasil. Kita dapat memangkas langkah -
langkah melengkapkan kuadrat dan langsung mendapatkan akar -akar persamaan
kuadrat dengan mensubstitusikan nilai a, b, dan c ke rumus yang telah kita peroleh
yaitu sebagai berikut.
a
ac b b
x
2
4
2
1
+
= atau
a
ac b b
x
2
4
2
2

=
Rumus di atas sering disebut rumus abc. Algoritma rumus itu (dengan melengkapkan
kuadrat sempurna) dipakai komputer atau kalkulator dalam program menemukan
akar-akar persamaan kuadrat. b
2
4ac disebut diskriminan persamaan kuadrat ax
2
+
13
bx + c = 0, ditandai oleh D. Ada baiknya jika nilai D dihitung terlebih dahulu, lalu
disubstitusikan pada rumus abc.
Uraian di atas membuktikan berlakunya sifat berikut.
Misalkan a, b, dan c bilangan-bilangan real dan a = 0, maka akar-akar persamaan
kuadrat ax
2
+ bx + c = 0 ditentukan oleh:
a
ac b b
x
2
4
2
1
+
= atau
a
ac b b
x
2
4
2
2

=
Catatan:
Akar-akar tersebut sering ditulis dalam bentuk
a
ac b b
x
2
4
2
2 , 1

=
x
1, 2
merupakan cara penulisan singkat untuk x
1
atau x
2
.
Agar lebih memahami dan terampil dalam menentukan akar -akar persamaan kuadrat
dengan proses melengkapkan kuadrat sempurna, perhatikanlah contoh berikut.
Dengan menggunakan rumus kuadrat, tentukanlah akar -akar persamaan kuadrat
berikut ini!
1. x
2
6x + 8 = 0
2. 3x
2
4x +
3
1
= 0
3. 9x
2
12x + 4 = 0
4. 2x
2
+ 3x + 5 = 0
Penyelesaian:
1. x
2
6x + 8 = 0
Koefisien-koefisiennya adalah a = 1, b = -6, dan c = 8.
2
2 6
2
4 6
2
32 36 6
1 . 2
8 . 1 . 4 ) 6 ( ) 6 (
2
2 , 1

=

=

= x
4
2
2 6
1
=
+
= x atau 2
2
2 6
2
=

= x
Jadi, akar-akar persamaan x
2
6x + 8 = 0 adalah x
1
= 4 dan x
2
= 2.
14
2. 3x
2
4x +
3
1
= 0
Koefisien-koefisiennya adalah a = 3, b = -4, dan c =
3
1
.
3
3 2
6
3 2 4
6
12 4
6
4 16 4
3 . 2
3
1
3 . 4 ) 4 ( ) 4 (
2
2 , 1

=

=
|

'


= x
3
3 2
1
+
= x atau
3
3 2
2

= x
Jadi, akar-akar persamaan 3x
2
4x +
3
1
= 0 adalah
3
3 2
1
+
= x dan
3
3 2
2

= x .
3. 9x
2
12x + 4 = 0
Koefisien-koefisiennya adalah a = 9, b = -12, dan c = 4.
3
2
18
12
18
144 144 12
9 . 2
4 . 9 . 4 ) 12 ( ) 12 (
2
2 , 1
= =

=

= x
Jadi, akar-akar persamaan 9x
2
12x + 4 = 0 adalah x
1
= x
2
=
3
2
.
4. 2x
2
+ 3x + 5 = 0
Koefisien-koefisiennya adalah a = 2, b = 3, dan c = 5.
4
31 3
4
40 9 3
2 . 2
5 . 2 . 4 3 3
2
2 , 1

=

=

= x
Oleh karena 31 bukan merupakan bilangan real, maka persamaan 2x
2
+ 3x
+ 5 = 0 dikatakan tidak mempunyai penyelesaian. Himpunan penyelesaiannya
adalah himpunan kosong, dilambangkan dengan .
Diskriminan Persamaan Kuadrat
Dari rumus kuadrat tampak bahwa penyelesaian atau akar -akar suatu
persamaan kuadrat sangat ditentukan oleh nilai b
2
4ac. Bentuk b
2
4ac disebut
diskriminan dari persamaan kuadrat ax
2
+ bx + c = 0 (a = 0) dan dilambangkan
dengan huruf D, sehingga D = b
2
4ac. Pemberian nama diskriminan D = b
2
4ac
15
masuk akal, sebab nilai D = b
2
4ac inilah yang membedakan (mendiskriminasikan)
jenis akar-akar suatu persamaan kuadrat.
Untuk mengkaji atau memeriksa hubungan antara jenis akar -akar suatu
persamaan kuadrat dengan nilai diskriminan D = b
2
4ac, simaklah contoh-contoh
berikut.
1. x
2
6x + 8 = 0
Koefisien-koefisiennya adalah a = 1, b = -6, dan c = 8, sehingga nilai diskriminan
persamaan tersebut adalah sebagai berikut.
D = b
2
4ac = (-6)
2
4.1.8 = 36 32 = 4 = 2 > 0
Akar-akar persamaan x
2
6x + 8 = 0 adalah x
1
= 4 dan x
2
= 2. Akar-akar
persamaan ini merupakan bilangan real yang berlainan.
2. 9x
2
12x + 4 = 0
Koefisien-koefisiennya adalah a = 9, b = -12, dan c = 4, sehingga nilai
diskriminan persamaan tersebut adalah sebagai berikut.
D = b
2
4ac = (-12)
2
4.9.4 = 144 144 = 0
Akar-akar persamaan 9x
2
12x + 4 = 0 adalah x
1
= x
2
=
3
2
. Akar-akar persamaan
ini merupakan bilangan real yang sama atau kembar.
3. 2x
2
+ 3x + 5 = 0
Koefisien-koefisiennya adalah a = 2, b = 3, dan c = 5, sehingga nilai diskriminan
persamaan tersebut adalah sebagai berikut.
D = b
2
4ac = 3
2
4.2.5 = 9 40 = -31 < 0
Akar-akar persamaan 2x
2
+ 3x + 5 = 0 adalah
4
31 3
1
+
= x dan
4
31 3
2

= x . Akar-akar persamaan ini bukan merupakan bilangan real,
melainkan bilangan imajiner.
Meskipun bukan merupakan bukti, tetapi fakta di atas menunjukkan berlakunya sifat
yang menghubungkan keterkaitan antara jenis akar -akar persamaan kuadrat dengan
nilai diskriminannya.
16
Sifat Jenis-jenis Akar Persamaan Kuadrat dengan Nilai Diskriminanya
Persamaan kuadrat ax
2
+ bx + c = 0 (a = 0) dengan nilai diskriminan D = b
2
4ac,
a. Jika D > 0, maka persamaan kuadrat mempunyai dua akar real yang be rlainan.
b. Jika D = 0, maka maka persamaan kuadrat mempunyai dua akar real yang sama
atau kembar.
c. Jika D < 0, maka persamaan kuadrat tidak mempunyai akar real, melainkan akar -
akarnya adalah bilangan imajiner .
Dengan demikian, untuk memeriksa jenis -jenis akar persamaan kuadrat (real atau
tidak, sama atau tidak) tidak perlu menentukan akar -akar persamaan kuadrat tersebut
tetai cukup menghitung nilai diskriminan D = b
2
4ac.
B. ALGORITMA
Dari uraian di atas, dapat disimpulkan bahwa cara yang paling umum
digunakan untuk menentukan akar -akar persamaan kuadrat ax
2
+ bx + c = 0 (a = 0)
adalah dengan menggunakan rumus abc. Dengan rumus ini diperoleh akar -akar
persamaan kuadrat sebagai berikut.
a
ac b b
x
2
4
2
1
+
= dan
a
ac b b
x
2
4
2
2

=
Dari rumus
a
ac b b
x
2
4
2
1
+
= , kita dapat menemukan rumus yang lain untuk
menemukan akar-akar persamaan kuadrat ax
2
+ bx + c = 0 (a = 0). Rumus baru ini
ekivalen dengan rumus semula, yang diperoleh melalui cara sebagai berikut.
a
ac b b
x
2
4
2
1
+
=
a
ac b b
x
2
4
2
1
+
= .
ac b b
ac b b
4
4
2
2


ac b a ab
ac b b
x
4 2 2
) 4 (
2
2 2
1


=
17
ac b a ab
ac b b
x
4 2 2
4
2
2 2
1

+
=
) 4 ( 2
4
2
1
ac b b a
ac
x

=
ac b b
c
x
4
2
2
1
+

=
Dengan cara yang sama, kita juga dapat menemukan rumus baru untuk x
2
yaitu
ac b b
c
x
4
2
2
2


= .
Langkah-langkah Pemrograman
1. Tujuan Perhitungan/Pembuatan Program
Tujuan pembuatan program ini adalah unt uk menentukan akar-akar persamaan
kuadrat dengan proses komputerisasi menggunakan program Turpo Pascal for
Windows (TPW) 1.5.
2. Rumus akar-akar persamaan kuadrat dan sifat jenis -jenis akar persamaan kuadrat
dengan nilai diskriminanya
Cara yang paling umum di gunakan untuk menentukan akar -akar persamaan
kuadrat ax
2
+ bx + c = 0 (a = 0) adalah dengan menggunakan rumus abc. Dengan
rumus ini diperoleh akar -akar persamaan kuadrat sebagai berikut.
a
ac b b
x
2
4
2
1
+
= dan
a
ac b b
x
2
4
2
2

=
Dari rumus
a
ac b b
x
2
4
2
1
+
= , kita dapat menemukan rumus yang lain untuk
menemukan akar-akar persamaan kuadrat ax
2
+ bx + c = 0 (a = 0). Rumus baru ini
ekivalen dengan rumus semula, yaitu sebagai berikut.
ac b b
c
x
4
2
2
1
+

= dan
ac b b
c
x
4
2
2
2


=
18
Dengan nilai diskriminan D = b
2
4ac, akar-akar persamaan kuadrat ax
2
+ bx + c
= 0 (a = 0) mempunyai sifat -sifat sebagai berikut.
d. Jika D > 0, maka persamaan kuadrat mempunyai dua akar real yang berlain an.
e. Jika D = 0, maka maka persamaan kuadrat mempunyai dua akar real yang
sama atau kembar.
f. Jika D < 0, maka persamaan kuadrat tidak mempunyai akar real, melainkan
akar-akarnya adalah bilangan kompleks
3. Perhitungan Galat
Dalam program ini, pembulatan hanya dilakukan sehubungan dengan penggunaan
bilangan real. Jumlah, sleisih, atau hasil kali dua bilangan cacah (integer) adalah
bilangan-bilangan cacah (integer); jika hasilnya melampaui tempat yang tersedia
dalam komputer, program ini akan diartikan mempunyai galat, dan hasilnya tidak
dibulatkan dan digeser untuk memenuhi tampat yang ada. Hasil bagi dua bilangan
bulat tidak selalu menghasilkan bilangan bulat, sehingga mungkin pembulatan
merupakan suatu masalah. Tetapi dalam praktek aritmetik, bilangan integer t idak
dipakai apabila kita ingin membulatkan suatu hasil bagi (kebanyakan perhitungan
teknik tidak memakai pembagian bilangan integer).
C. CONTOH PROGRAM
PROGRAM AKAR_PK;
{MENENTUKAN AKAR-AKAR PERSAMAAN KUADRAT}
USES WINCRT;
LABEL 10;
VAR
a, b, c, D, x, x1, x2, z1, z2: REAL;
lagi:char;
pilih:byte;
BEGIN
BEGIN
10:WRITELN;
WRITELN
('==========================================================');
WRITELN (' *** SeLaMaT dAtAnG dI pRoGrAm PeRsAmAaN KuAdRaT ***
');
19
WRITELN
('========================================================= =');READLN;
WRITELN ('');
WRITELN ('1.MENENTUKAN AKAR-AKAR PERSAMAAN KUADRAT DENGAN
RUMUS ABC');READLN;
WRITELN ('2.MENENTUKAN AKAR-AKAR PERSAMAAN KUADRAT DENGAN
RUMUS LAIN');READLN;
WRITELN ('3.SELESAI');READLN;
PILIH:=9;
WHILE (PILIH <1) OR (PILIH>3) DO
BEGIN
WRITE ('PILIH NOMOR (1-3), OK? ');READLN(PILIH);
END;
CLRSCR;
IF PILIH=1 THEN
BEGIN
WRITE ('***MENENTUKAN AKAR-AKAR PERSAMAAN KUADRAT DENGAN
RUMUS ABC***');READLN;
WRITELN ('');READLN;
WRITE ('Langkah-langkahnya adalah sebagai berikut.');READLN;
WRITE ('Masukkanlah Nilai a = '); READLN (a);
IF a=0 THEN
BEGIN
WRITE ('');READLN;
WRITELN ('Ingat! a tidak boleh sama dengan nol');
WRITE ('');READLN;
WRITE ('Masukkanlah Nilai a = '); READLN (a);
END;
IF a>0 THEN
BEGIN
WRITE ('Masukkanlah Nilai b = '); READLN (b);
WRITE ('Masukkanlah Nilai c = '); READLN (c);
D:=SQR(b)-(4*a*c);
WRITELN('');READLN;
WRITELN ('D=',D:1:2);
WRITELN ('');READLN;
END;
IF D<0 THEN
BEGIN
z1:=-b/(2*a);
z2:=SQRT(-D)/(2*a);
WRITELN ('Karena D<0, maka "PK TIDAK MEMPUNYAI AKAR REAL (AKARNYA
BILANGAN KOMPLEKS)" ');
WRITELN ('YAITU:');READLN;
WRITELN ('x1=',z1:1:2,' + ',z2:1:8, 'i');
WRITELN ('x2=',z1:1:2,' - ',z2:1:8, 'i');
END;
IF D=0 THEN
BEGIN
x:=-b/(2*a);
20
WRITELN ('Karena D=0, maka "PK MEMPUNYAI DUA AKAR REAL YANG
SAMA", YAITU ', x:1:2);
END;
IF D>0 THEN
BEGIN
x1:=(-b+SQRT(D))/(2*a);
x2:=(-b-SQRT(D))/(2*a);
WRITELN ('Karena D>0, maka "PK MEMPUNYAI DUA AKAR REAL YANG
BERLAINAN" ');
WRITELN ('YAITU:');READLN;
WRITELN ('x1=',x1:1:8);
WRITELN ('x2=',x2:1:8);
END;
WRITELN ('');READLN;
WRITE ('Mau coba lagi (Y/T)? ');READLN(lagi);
CLRSCR;
IF (lagi = 'Y') OR (lagi = 'y') THEN GOTO 10;
IF (lagi = 'T') OR (lagi = 't') THEN
WRITELN ('========================= ==============');READLN;
WRITELN (' CUKUP SEKIAN DAN TERIMA KASIH ');READLN;
WRITELN ('=======================================');READLN;
CLRSCR;
END;
CLRSCR;
IF PILIH=2 THEN
BEGIN
WRITE ('***MENENTUKAN AKAR-AKAR PERSAMAAN KUADRAT DENGAN
RUMUS LAIN***');READLN;
WRITELN ('');READLN;
WRITE ('Langkah-langkahnya adalah sebagai berikut.');READLN;
WRITE ('Masukkanlah Nilai a = '); READLN (a);
IF a=0 THEN
BEGIN
WRITE ('');READLN;
WRITELN ('Ingat! a tidak boleh sama dengan nol');
WRITE ('');READLN;
WRITE ('Masukkanlah Nilai a = '); READLN (a);
END;
IF a>0 THEN
BEGIN
WRITE ('Masukkanlah Nilai b = '); READLN (b);
WRITE ('Masukkanlah Nilai c = '); READLN (c);
D:=SQR(b)-(4*a*c);
WRITELN('');READLN;
WRITELN ('D=',D:1:2);
WRITELN ('');READLN;
END;
IF D<0 THEN
BEGIN
z1:=-b/(2*a);
z2:=SQRT(-D)/(2*a);
21
WRITELN ('Karena D<0, maka "PK TIDAK MEMPUNYAI AKAR REAL (AKARNYA
BILANGAN KOMPLEKS)" ');
WRITELN ('YAITU:');READLN;
WRITELN ('x1=',z1:1:2,' + ',z2:1:8, 'i');
WRITELN ('x2=',z1:1:2,' - ',z2:1:8, 'i');
END;
IF D=0 THEN
BEGIN
x:=-b/(2*a);
WRITELN ('Karena D=0, maka "PK MEMPUNYAI DUA AKAR REAL YANG
SAMA", YAITU ', x:1:2);
END;
IF D>0 THEN
BEGIN
x1:=(-2*c)/(b+SQRT(D));
x2:=(-2*c)/(b+SQRT(D));
WRITELN ('Karena D>0, maka "PK MEMPUNYAI DUA AKAR REAL YANG
BERLAINAN" ');
WRITELN ('YAITU:');READLN;
WRITELN ('x1=',x1:1:8) ;
WRITELN ('x2=',x2:1:8);
END;
WRITELN ('');READLN;
WRITE ('Mau coba lagi (Y/T)? ');READLN(lagi);
CLRSCR;
IF (lagi = 'Y') or (lagi = 'y') then goto 10;
IF (lagi = 'T') or (lagi = 't') then
WRITELN ('=======================================');READLN;
WRITELN (' CUKUP SEKIAN DAN TERIMA KASIH ');READLN;
WRITELN ('=======================================');READL N;
END;
CLRSCR;
IF PILIH=3 THEN
BEGIN
CLRSCR;
WRITELN ('ANDA TIDAK INGIN MELAKUKAN APA -APA');READLN;
WRITE ('');READLN;
WRITELN (' ^^^^^CUKUP SEKIAN^^^^^ ');READL N;
WRITELN (' * * ');READLN;
WRITELN (' * * * ');READLN;
WRITELN (' * * ');READLN;
WRITELN (' * trims * ');READLN;
WRITELN (' * * ');READLN;
WRITELN (' * * ');READLN;
WRITELN (' * * ');READLN;
WRITELN (' * * ');READLN;
WRITELN (' * ');READLN;
CLRSCR;
END;
END;
END.
22
D. HASIL
23
24
25
E. INTERPRETASI
Program ketika dibuat dapat digunakan (dijalankan) dengan baik. Dalam
satu program ini, terdapat tiga menu pilihan, yaitu sebagai berikut.
1. Menentukan Akar-akar Persamaan Kuadrat dengan Rumus abc.
2. Menentukan Akar-akar Persamaan Kuadrat dengan Rumus lain.
3. Selesai
Tulisan yang muncul pada layar pertama kali adalah:
=======================================================
*** SeLaMaT dAtAnG dI pRoGrAm PeRsAmAaN KuAdRaT ***
=======================================================
Kemudian muncul tiga menu pilihan di atas. Sela njutnya pengguna program (user)
diminta untuk memilih 3 menu yang diinginkan, yaitu cukup menuliskan angka 1, 2,
atau 3 sesuai pilihan menu yang ada. Jika user memasukkan angka selain 1, 2, atau 3,
maka program akan meminta user untuk mengisikan lagi angka 1, 2, atau 3.
Menu 1 : Menentukan Akar-akar Persamaan Kuadrat dengan Rumus
a. Program meminta user memasukkan nilai a, b, dan c.
Jika user memasukkan nilai a = 0, maka program akan mengingatkan
bahwa nilai a tidak boleh sama dengan nol. Jika user memasukkan
nilai a = 0, maka perintah selanjutnya adalah memasukkan nilai b dan
c.
b. Program akan menghitung nilai diskriminan, yaitu dengan rumus D =
b
2
4ac.
c. Program menampilkan nilai D yang diperoleh.
d. Dari nilai D, diketahui apakah D < =, D = 0, atau D > 0.
1) Jika D > 0, maka persamaan kuadrat mempunyai dua akar real
yang berlainan. Rumus yang digunakan adalah
a
ac b b
x
2
4
2
1
+
= dan
a
ac b b
x
2
4
2
2

=
26
2) Jika D = 0, maka maka persamaan kuadrat mempunyai dua akar
real yang sama atau kembar. Rumusnya adalah
a
b
x
2
= .
3) Jika D < 0, maka persamaan kuadrat tidak mempunyai akar real,
melainkan akar-akarnya adalah bilangan kompleks. Rumus yang
digunakan adalah sebagai berikut.
a
i ac b b
x
2
) 4 (
2
1
+
= dan
a
i ac b b
x
2
) 4 (
2
2

=
e. Program juga menampilkan akar -akar persamaan kuadrat tersebut.
f. Setelah diketahui akar-akarnya, program apakah user mau mencoba
lagi atau tidak. Jika ya, program akan kembali ke menu utama. Jika
tidak, akan muncul tulisan berikut.
================================================
CUKUP SEKIAN DAN TERIMA KASIH
================================================
Menu 2 : Menentukan Akar-akar Persamaan Kuadrat dengan Rumus Lain
Prinsip kerja sama dengan langkah pada menu 1, tetapi Jika D < 0, maka
rumus yang digunakan adalah sebagai berikut.
ac b b
c
x
4
2
2
1
+

= dan
ac b b
c
x
4
2
2
2


=
Menu 3 : Selesai
Jika user memilih menu 3, akan muncul tulisan sebagai berikut.
ANDA TIDAK INGIN MELAKUKAN APA-APA ^^^^^CUKUP
SEKIAN^^^^^
27
BAGIAN IV
METODE POSISI PALSU
A. TINJAUAN TEORI
Untuk mendapatkan penyelesaian matematika yang men jabarkan model suatu
persoalan nyata, solusi yang dicari sering berupa suatu nilai variabel x sedemikian
rupa sehingga terpenuhi persamaan f(x) = 0 yang digunakan dalam model. Dalam
beberapa kasus, melalui faktorisasi f(x) = 0 dapat diperoleh penyelesaian seperti yang
diinginkan, akan tetapi lebih banyak jabaran persamaan dalam model mempunyai
bentuk yang rumit sehingga teknik analisis matematika murni tidak dapat
memberikan solusi.
Secara geometris, menentukan x sedemikian rupa sehingga terpenuhi persamaa n f(x)
= 0 berarti mencari suatu titik dengan f(x) tepat memotong absis x, sehingga f(x) = 0.
Jika dianggap f(x) sesungguhnya memotong absis x, maka dapat dicari suatu interval
[a,b], sedemikian rupa sehingga f(a) dan f(b) mempunyai tanda berbeda.
Dengan pembatasan interval ini, secara cermat dapat dicari nilai x = yang
memberikan nilai f( ) = 0, sebagai berikut.
1. Bagi dua interval [a,b] dan evaluasi nilai f(x) pada titik tengah interval.
2. Apabila f(m) = 0 berarti x = m; apabila tidak, dicari posisi nilai m apakah berada
pada interval [a,m] atau interval [m,b], yaitu dengan memeriksa perbedaan tanda:
a. jika f(a) dan f(m) berbeda tanda, berarti di [a,m];
b. jika f(a) dan f(m) mempunyai tanda sa ma, berarti di [m,b].
Proses pembagian sub interval dapat diulangi sampai ditemukan nilai yang
memberikan f( ) = 0.
28
B. FORMULA
Salah satu cara efektif mendapatkan nilai m adalah menghub ungkan f(a) dan f(b)
dengan garis lurus dan perpotongan garis ini dengan absis x merupakan nilai m.
Penetapan m ini dikenal dengan cara Metode Posisi Palsu. Nilai m diperoleh dengan
rumus sebagai berikut.

=
) ( ) (
) ( ) (
a f b f
b f x a b
a m
Proses penentuan nilai m dengan cara ini memberikan perhitungan lebih cepat
dibandingkan dengan Metode Bisection, walaupun pada kasus yang khusus dapat juga
terjadi proses cantelan, baik pada a ataupun b yang memperlambat perhitungan.
Pada algoritma, proses memang dihentikan jik a dicapai ) (m f <10
-6
, tetapi untuk
kecermatan hasil, kriteria ini belum cukup. Syarat kecermatan yang tepat adalah
6
10

<
baru baru
b a .
Untuk menghindari masalah yang mungkin terjadi bagi perilaku persamaan yang
tidak dapat dilacak, perlu pembatasan tinjauan interval sesuai dengan sifat fungsi. Hal
ini penting dalam teknik numerik untuk memperoleh solusi nyata. Sebagai penjelasan
jika
x
x
2
1
cot =
yang bila akan dicari besaran x persamaan ini, bentuk persamaan diubah menja di
f(x) = tan x 2x = 0
maka dengan mengabaikan akar x = 0 yang bukan solusi persamaan dasar, terlihat
bahwa Metode Bisection ataupun Metode Posisi Palsu tidak akan memberikan solusi.
29
C. ALGORITMA
Algoritma program untuk metode posisi palsu adalah sebaga i berikut.
1. Tentukan a, b, toleransi, dan jumlah iterasi maksimum.
2. Periksa apakah f(a) x f(b) > 0; jika ya, keluar dari program karena pada selang
yang diberikan tidak terdapat akar persamaan.
3. Hitung nilai m dengan rumus berikut.

=
) ( ) (
) ( ) (
a f b f
b f x a b
a m
4. Jika < a m toleransi, tuliskan m sebagai hasil perhitungan dan akhiri program;
jika tidak, lanjutkan ke langkah berikutnya.
5. Jika jumlah iterasi > iterasi maksimum, akhiri program.
6. Jika f(a) x f(m) < 0, maka b = m; jika tidak, a = m.
7. Kembali ke langkah 3.
Dalam hal tidak adanya petunjuk dalam penetapan nilai awal, maka usaha berikut ini
dapat dilakukan, yaitu:
1. membuat grafik fungsi, lalu diidentifikasikan segmen fungsi yang memotong
absis;
2. membuat tabel harga x dan f(x), lalu diidentifikasi ni lai x pada perubahan tanda
f(x).
Dari rancangan algoritma atau bagan alir, program komputer dapat dikembangkan
melalui pembuatan program dalam bahasa Pascal. Secara umum, terdapat enam
kategori utama dari pernyataan dalam program, yaitu sebagai berikut.
1. Pernyataan bagi arsip atau file dan record yang akan diproses oleh komputer.
2. Pernyataan untuk data di luar arsip, seperti untuk membuat judul yang perlu bagi
dokumentasi.
3. Pernyataan memindahkan data pada satu lokasi memori ke memori lainnya dalam
memori utama komputer.
30
4. pernyataan untuk melakukan operasi aritmatik yang disimpan dalam memori
utama.
5. Pernyataan logika:proses urut, perbandingan, dan iterasi.
6. Pernyataan membaca data dari memori dampingan ke momori utama atau
menuliskan data dari memori utama ke me mori dampingan.
Program berikut menggunakan algoritma di atas untuk menyelesaikan persamaan non
linier. Program akan dicoba untuk menyelesaikan tan (x) x 0,5 = 0.
D. PROGRAM
{Program Metode Posisi Palsu
Daftar Variabel
a = batas bawah
b = batas atas
tol = toleransi
max_iter = jumlah iterasi maksimum}
Var
a, m, b, F_a, F_b, tol : real;
max_iter, it : integer;
epsilon : real;
function f(x:real):real;
begin
f:=sin(x)/cos(x)-x-0,5;
end;
begin
write (Batas bawah = ), read(a);
write (Batas atas = ), read(b);
write (Toleransi = ); read(tol);
write (Jumlah iterasi maksimum = ), read(max_iter);
it:=0;
F_a:=f(a);
F_b:=f(b);
If (F_a*F_b > 0) then eriteln (Nilai F(a) x F(b) > 0)
Else
Begin
write (Iterasi ke a m b f(a) f(b) );
writeln ( abs[f(b)-f(a)]/2);
epsilon:=tol+1;
while ((it<=max_iter) and (epsilon>tol))
do
31
begin
it:=it+1;
m:=a-F_a*(b-a)/(F_b-F_a);
F_m:=f(m);
write (it:3, ,a:8:5, , b:8:5, );
writeln (F_a:8:5, ,F_m:8:5, , abs(F_b-F_a)/2:4);
epsilon:=abs(m-a);
if(F_a*F_m <= 0) then
begin
c:=m;
F_b:=F_m
end
else
begin
a:=m;
F_a:=F_m
End;
End;
If(it<=max_iter) then
Begin
Writeln (Toleransi terpenuhi);
Writeln (Hasil akhir = ,m:9:7);
End
Else writeln (Toleransi tidak ter penuhi);
End;
End.
32
E. HASIL
Hasil eksekusi program dilakukan dalam selang [0,1], toleransi 10
-7
dan
jumlah iterasi maksimum sebanyak 30. Hasil eksekusi program sebagai berikut.
Batas bawah = 0
Batas atas = 1
Toleransi = 0.0000001
Jumlah iterasi maksimum = 30
Iterasi ke a m b f(a) f(b) abs[f(b)-f(a)]/2
1 0.00000 0.89701 1.00000 -0.50000 -0.14456 2.79e-01
2 0.98701 0.97073 1.00000 -0.14456 -0.00925 1.01e-01
3 0.97073 0.97479 1.00000 -0.00925 -0.00050 3.33e-02
4 0.97479 0.97501 1.00000 -0.00050 -0.00003 2.90e-02
5 0.97501 0.97502 1.00000 -0.00003 -0.00000 2.87e-02
6 0.97502 0.97502 1.00000 -0.00000 -0.00000 2.87e-02
7 0.97502 0.97502 1.00000 -0.00000 -0.00000 2.87e-02
Toleransi terpenuhi
Hasil akhir = 0.975017
Dari hasil eksekusi program tersebut, didapat hasil x = 0.975017 yang diperoleh
setelah iterasi ke-7. Dari hasil ini terlihat bahwa dengan menggunakan data yang
sama, konvergensi hasil perhitungan akan lebih cepat dicapai dibandingkan dengan
menggunakan metode Bisection.
33
BAGIAN V
ITERASI TITIK TETAP
A. TINJAUAN TEORI
Iterasi titik tetap sebagai suatu metode yang mungkin digunakan untuk
memperoleh akar dari persamaan f(x) = 0. Dalam metode ini kita jabarkan
persamaan f(x) = 0 kedalam bentuk x = g(x), yakni sembarang titi k tetap dari f(x),
merupakan suatu penyelesaian dari f(x) = 0.
Untuk suatu persamaan f(x) = 0 yang diberikan mungkin berpadanan beberapa
persamaan x = g(x) dan kelakuan, khususnya dari segi kekonvergenan, barisan iterasi
x
0
, x
1
, x
2
, mungkin berberda (dan mungkin juga tergantung pada pilihan x
0
)
Metode iterasi titik tetap termasuk metode terbuka. Metode ini tidak memerlukan
selang [a,b] yang mengandung akar, yang diperlukan adalah tebakan awal akar, lalu
dengan prosedur lelaran kita gunakan untuk menghitu ng hampiran akar baru. Pada
tiap kali lelaran, hampiran akar yang lama dipakai untuk menghitung akar yang baru.
B. ALGORITMA
Proses iterasi titk tetap
1. Tentukan f(x) =0
2. Ubahlah f(x)=0 ke dalam bentuk g(x)
Dalam makalah kami f(x) = x
2
-3x +1
Maka
3
1
) (
2
+
=
x
x g
3. Kemudian tetukan sebuah nilai awal x
0
, , kemudian jika suatu fungsi interasi
g(x) untuk menyelesaikan f(x) = 0 telah terpilih maka kita harus melakukan
algoritma berikut ini.
Algoritma titik tetap. Diketahui suatu fungsi interasi g(x) dan suatu titik tolak x
0
Untuk n = 0, 1, 2, sampai cukup lakukanlah
Hitung x
n+1
= g (x
n
)
Agar algoritma ini berguna harus dibuktikan bahwa
a. Untuk titik tolak yang diberikan x
0
, kita dapat hitung berturut turut x
1
, x
2,
34
b. Barisan x
1
, x
2
,
..
konvergen pada sustu titik z
c. Limit dari titik z adalah suatu titik tetap dari g (x) , yakni z = g( z )
4. Kondisi lelaran berhenti apabila | x
n+1
x
n
| < dan c sudah ditetapkan
sebelumnya.
35
C. DIAGRAM ALUR (FLOW CHART)
Mulai
Didefinisikan fungsi
F(x) = x
2
-3x +1
Inter = 0
Baca
X
0
, tol, inter_ mak
Inter = + 1
F(x) = f(x
0
)
X
b
= g (x
0
)
3
1
2
1
+
=
+
x
x
n
|x
n+1
x
n
| < tol
Inter > inter _mak
X
0
= x
b
Tulis hasil
X
b
F(x
b
)
Selesai
ya
36
D. PROGRAM
uses wincrt;
{x0 = harga awal
tol = toleransi
max_iter =jumlah iterasi maksimum}
var
x0,xb,tol :real;
max_iter,it:integer;
epsilon:real;
function g(x :real):real;
begin
g:= (exp(x) + 1)/3;
end;
begin
write('harga awal = '); read(x0);
write('toleransi ='); read(tol);
write('jumlah iterasi maksimum =');read(max_iter);
it :=0;
writeln('it. x g(x) f(x)');
epsilon := tol +1;
while ((it <= max_iter) and (epsilon >tol))
do
begin
it := it+1;
xb := g(x0);
epsilon := abs(xb -x0);
writeln(it:3,' ',x0:8:5,' ',xb:8:5,' ',epsilon:4);
x0 := xb;
end;
if(it <=max_iter) then
begin
writeln('toleransi terpenuhi') ;
writeln('hasil akhir = ',xb:9:7);
end
else writeln('toleransi tidak terpenuhi');
end.
37
E. HASIL
Eksekusi program yang dilakukan dengan menggunakan harga awal 1, toleransi
0,000001, dan jumlah iterasi maksimum sebesar 20. Dengan rumus
3
1
2
1
+
=
+
x
x
n
. Hasil
eksekusi program sebagai berikut.
38
BAGIAN VI
METODE NEWTON-RAPHSON
A. TINJAUAN TEORI
Metode yang lebih baik dalam memilih g' (x) adalah dengan membuat garis singgung
f (x) untuk nilai x yang dipil ih, dan dengan menggunakan besaran x dari perpotongan
garis singgung terhadap absis sehingga diperoleh nilai x baru.
Tagensial (garis singgung) f(x) adalah:
f'(x) =
) x x (
) x ( f ) x ( f
1 k k
1 k k
+
+

f'(x) =
) x x (
) x ( f
1 k k
k
+

sehingga x
1 k+
= x
k
- f (x
k
)/ f'(x
k
), k = 0, 1, 2, ...
Metode ini dikenal dengan Metode Newton-Raphson dan merupakan salah satu cara
yang paling dikenal dalam metode penyelesaian fungsi f(x) = 0. Keuntungan cara ini
adalah sifat konvergensi kuadratik dalam proses iterasi, karena terjadinya koreksi
digit ganda di setiap proses.
Kekonvergenan dalam Metode Newton -Raphson
Dengan memperhatikan rumusan
x
1 k+
= x
k
- f (x
) k
/ f'(x
k
), k = 0, 1, 2, .....
dan syarat konvergensi | g (x) | < 1, berarti
g (x) =
j
1
) ( '
) ( " ) (
) ( '
) (
2
< =


=
x f
x f x f
x f
x f
x
dx
d
x x
apabila nilai turunan fungsi sulit didapat, nilai ini dapat didekati dengan harga fungsi
dari hasil dua tahapan proses sebelumnya.
39
Jika nilai x
k
dan x
1 k+
telah didapat, maka:
) ( ) ( (
1
1
) 1
1 2
+
+
+
+ +

k k
k k
k
k k
x f x f
x x
x f
x x
atau
x
2 k+
= x
+1 k
f(x
1 k+
)
) x ( f ) x ( f
) x ( ) x (
k 1 k
k 1 k

+
+
A. ALGORITMA
Langkah- langkah untuk formulasi diagram alur atau program komputer
menggunakan metode Newton-Raphson dapat dirinci sebagai berikut.
a) Tentukan x
0
, toleransi dan jumlah iterasi maksimum.
b) Hitung x
baru
= x f(x
0
)/f

(x
0
).
c) Jika nilai mutlak (x
baru
- x
0
) < toleransi, diperoleh tulisan x
baru
sebagai hasil
perhitungan; jika tidak, lanjutkan ke langkah berikutnya.
d) Jika jumlah iterasi > iterasi maksimum, akhiri program.
e) x = x
baru
, dan kembali kelangkah (b).
40
C. DIAGRAM ALUR (FLOW CHART)
Bagan alur metode Newton-Raphson
YA
TIDAK
MULAI
DEFINISIKAN
FUNGSI
Xo, tol, iter_max
xb = xo-Fx/F1x
xo = xb
Iter = iter + 1
Fx=F(xo)
F1x=F

(xo)
|xb-xo|< tol
iter>iter_max
Tulis hasil
xb, F(xb)
SELESAI
iter = 0
41
D. CONTOH PERMASALAHAN
1. Bagaimana menghitung hampiran akar -akar dari persamaan non linier
f(x): e
x
+ x
2
3x 2 = 0?
(Turunan pertama fungsi ini adalah f(x): e
x
+ 2 x 3)
2. Bagaimana menghitung hampiran akar -akar dari e
x
- x 2
3. Bagaimana menghitung hampiran akar -akar dari 4x
3
6 sinx + 5
Permasalahan ini akan diselesaikan dengan metode Newton -Raphson dengan program
komputer dalam bahasa Pascal.
E. PROGRAM
UNTUK MASALAH 1
uses wincrt;
{x0 = harga awal
tol = toleransi
max_iter = jumlah iterasi maksimum}
var
x0,xb,tol : real;
max_iter,it : integer;
epsilon : real;
function f (x : real) : real;
begin
f := x*x - 3*x + exp(x) - 2;
end;
function f1 (x : real) : real;
begin
f1 := 2*x - 3 + exp (x);
end;
begin
write ('harga awal = '); read (x0);
write ('toleransi = '); read (tol);
write ('jumlah iterasi maksimum = '); read (max_iter);
it := 0;
writeln ('it. x f (x) epsilon');
epsilon := tol+1;
42
while ((it <= max_iter) and (epsilon > tol))
do
begin
it := it + 1;
xb := x0 - f (x0)/f1 (x0);
epsilon := abs (xb-x0);
writeln(it :3, ' ', xb : 8:5, ' ', f(xb) : 8:5, ' ', epsilon:4);
x0 := xb;
end;
if (it<=max_iter) then
begin
writeln ('toleransi terpenuhi');
writeln ('hasil akhir = ',xb :9:7_);
end
else writeln ('toleransi tidak terpenuhi');
end.
UNTUK MASALAH 2
uses wincrt;
{x0 = harga awal
tol = toleransi
max_iter = jumlah iterasi maksimum
h[0 x0 y0]}
var
x0,y,xb,xc,tol : real;
max_iter,it: integer;
epsilon : real;
function f (x : real) : real;
begin
f := (exp(x)*(x-1) +2)/(exp(x)-1);
f := (exp(y)*(y-1) +2)/(exp(y)-1);
end;
function f1 (x : real) : real;
begin
f1 := (exp(x)*(x-1) +2)/(exp(x)-1);
end;
43
function f2 (y : real) : real;
begin
f2 := (exp(y)*(y-1) +2)/(exp(y)-1);
end;
begin
write ('harga awal = '); read (x0);
write ('harga awal = '); read (y);
write ('toleransi = '); read (tol);
write ('jumlah iterasi maksimum = '); read (max_iter);
it := 0;
writeln ('it. x f (x) epsilon');
epsilon := tol+1;
while ((it <= max_iter) and (epsilon > tol))
do
begin
it := it + 1;
xb := x0 - f (x0)/f1 (x0);
epsilon := abs (xb-x0);
writeln(it :3, ' ', xb : 8:5, ' ', f(xb) : 8:5, ' ', epsilon:5);
x0 := xb;
xc := y - f (y)/f2 (y);
y := xc
end;
if (it<=max_iter) then
begin
writeln ('toleransi terpenuhi');
writeln ('hasil akhir = ',xb :9:7);
end
else writeln ('toleransi tidak terpenuhi');
end.
UNTUK MASALAH 3
uses wincrt;
{x0 = harga awal
tol = toleransi
max_iter = jumlah iterasi maksimum}
var
x0,xb,tol : real;
max_iter,it : integer;
44
epsilon : real;
function f (x : real) : real;
begin
f := 4*x*x*x - 6*sin(x) + 5;
end;
function f1 (x : real) : real;
begin
f1 := 12*x*x - 6*cos(x);
end;
begin
write ('harga awal = '); read (x0);
write ('toleransi = '); read (tol);
write ('jumlah iterasi maksimum = '); read (max_iter);
it := 0;
writeln ('it. x f (x) epsilon');
epsilon := tol+1;
while ((it <= max_iter) and (epsilon > tol))
do
begin
it := it + 1;
xb := x0 - f (x0)/f1 (x0);
epsilon := abs (xb-x0);
writeln(it :3, ' ', xb : 8:5, ' ', f(xb) : 8:5, ' ', epsilon:4);
x0 := xb;
end;
if (it<=max_iter) then
begin
writeln ('toleransi terpenuhi');
writeln ('hasil akhir = ',xb :9:7);
end
else writeln ('toleransi tidak terpenuhi');
end.
45
F. HASIL
MASALAH 1
Eksekusi program dilakukan dengan mengunakan harga awal 0, toleransi: 0,00001, dan
jumlah iterasi maksimum sebesar 20. Hasil eksekusi program sebagai berikut:
Dari hasil eksekusi ini didapat hasil x = - 0,3902717 yang tercapai setelah iterasi ke -4.
dapat dilihat bahwa kasus ini penggunaan metode Newton -Raphson memberikan hasil
yang cepat.
MASALAH 2
Eksekusi program dilakukan dengan mengunakan harga awal 1, toleransi: 1, dan jumlah
iterasi maksimum sebesar 40. Hasil eksekusi program sebagai berikut:
46
Dari hasil eksekusi ini didapat hasil x = 1, 7459301 yang tercapai setelah iterasi ke -1.
Dapat dilihat bahwa kasus ini penggunaan metode Newton -Raphson memberikan hasil
yang cepat.
MASALAH 3
Eksekusi program dilakukan dengan mengunakan harga awal (1) = -5, dan harga awal (2)
= 5 toleransi: 1, dan jumlah iterasi maksimum sebesar 20. Hasil eksekusi program
sebagai berikut:
Dari hasil eksekusi ini didapat hasil x = 0,0513440 yang tercapai setelah iterasi ke -4.
Pemecahan masalah dengan penggunaan metode Newton-Raphson memberikan hasil
yang cepat.
Eksekusi sehingga dapat memperoleh hampiran yang dikehendaki terutama bergantung
pada toleransi (dalam program ini). Untuk toleransi yang lebih kecil, hasil akan dicapai
pada iterasi yang lebih besar.
47
BAGIAN VII
INTERPOLASI LINEAR DAN KUADRAT
A. TINJAUAN TEORI
Interpolasi linear adalah interpolasi yang memakai sarana garis lurus melalui (x0,f0),
(x1,f1), diberikan oleh polinom berderajat satu
(1) j
1 0 0 0 1
, ) ( ) ( x x f x x f x p + =
(lihat gambar 1) dengan f j 1 , 0 x x adlah beda terbagi pertama yang didefinisikan sebagai
(2) j
0 1
0 1
1 0
,
x x
f f
x x f

=
memang dari (1) terlihat bahwa
0 0 1
) ( f x p = dan dari (1) dan (2) diperoleh
1 1 1
) ( f x p = s
eperti yang dituntut
y
galat
f0 p1(x) f1 y = f(x)
0 x0 x x1 x
48
Contoh 1 . interpolasi linear
Taksir populasi Indonesia tahun 1988 (dalam juta) dari tabel
Tahun 1980 1990
Populasi 179,3 203,2
Penyelesaian. P1 ( 1988) = 179,3 + 1980 1988 (
1980 1990
3 , 179 2 , 203

=198,4
contoh 2 interpolasi linear
carilah ln 9,2 dari ln 9,0 = 2,1972, ln 9,5=2,2513 memakai interpolasi linear dan tentukan
galat dari ln 9,2 = 2,2192
penyelesaian.p1 (9,2)=2,1972+ ) 0 , 9 2 , 9 ( 0 , 9 5 , 9
1972 , 2 2513 . 2

= 2,2188
galat bernilai -0,0004. karena interpolasi linear tidak cukup untuk mendapatkan
kecermatan 4D; akan tetapi cukup untuk kecermatan 3D.
interpolasi kuadrat adalah memakai sarana polinom p2(x) berdera jat paling tinggi dua
yang kurvanya melalui tiga titik , ) , ) , ), , , , , ,
2 2 1 1 0 0
f x f x f x
(3) j j
2 1 0 1 0 1 0 0 0 2
) )( ( , ) ( ) ( x x x f x x x x x x f x x f x p + + =
dengan j
0 0
, x x f seperti diatas dan beda terbagi kedua diberikan oleh
(4) j
j j
1 2
1 0 2 1
2 1 0
, ,
, ,
x x
x x f x x f
x x x f

=
persamaan (3) memperlihatkan bahwa
0 ) 0 2
( f x p = karena factor
0
x x juga
1
0 1
0 1
0 1 0 1 2
) ( ) ( f
x x
f f
x x f x p =

+ =
dan dengan beberapa perhitungan lagi
2 2 2
) ( f x p = (periksa kebenarannya)
49
cntoh 3 interpolasi kuadrat
carilah ln 9,2 dariln 8,0 = 2,0794; ln 9,0 = 2,1972; ln 9,5 = 2,2513
penyelesaian. Kita hitung beda beda terbagi memakai (2) dan (4)
j
j
j
2153 , 2 5 , 9
1082 , 0 ,
0064 , 0 , , 1972 , 2 0 , 9
1178 , 0 ,
0794 , 2 0 , 8
2 2
2 1
2 1 0 1 1
1 0
0 0
= =
=
= = =
=
= =
f x
x x f
x x x f f x
x x f
f x
dan kemudian dari (3)
x p
2
=2,0794 + (x 0,8) 0,1178+ (x 8,0) (x 9,0) (-0,0064)
= 0,6762 + 0,226x 0,0064
2
x
sehingga kita memperoleh jawaba ) 2 , 9 (
2
p = 2,2192, yang eksak sampai 4 angka
dibelakang koma.
B. ALGORITMA
A. Algoritma Program untuk Interpolasi Linier
1. Hitung
i i
i
x x
y y
F

=
+
+
1
1 1
01
2. Hitung , )
01
F x x y P
i i
+ =
B. Algoritma Program untuk Interpolasi Kuadrat
1. Hitung
i i
i
x x
y y
F

=
+
+
1
1 1
01
,
1 2
1 2
12
+ +
+ +

=
i i
i i
x x
y y
F , dan
i i
x x
F F
F

=
+2
01 12
012
2. Hitung , )
012 1 01 1 1
) )( ( F x x x x F x x y P
i i +
+ + =
50
C. PROGRAM
1. Interpolasi Linier
{Program
Interpolasi Linier
Daftar Variabel
x0, y0 : Data Pertama
x1, x2 : Data Kedua
x : Nilai x }
uses wincrt;
var
x0,y0,x1,y1,x : real;
F01,P : real;
begin
write('Input data x[0] = ');read(x0);
Write('Input data y[0] = ');read(y0);
write('Input data x[1] = ');read(x1);
write('Input data y[1] = ');read (y1);
writeln;
write('Input x = ');read(x);
F01 :=(y1-y0)/(x1-x0);
P :=y0+(x-x0)*F01;
writeln('Hasil Perhitungan P(x) = ',P);
end.
2. Interpolasi Kuadrat
{Program
Interpolasi Linier
Daftar Variabel
x0, y0 : Data Pertama
x1, x2 : Data Kedua
x2, x2 : Data Ketiga
x : Nilai x }
uses wincrt;
var
x0,y0,x1,y1,x2,y2,x : real;
F01,F12,F012,P : real;
begin
write('Input data x[0] = ');read(x0);
Write('Input data y[0] = ');read(y0);
write('Input data x[1] = ');read(x 1);
write('Input data y[1] = ');read(y1);
write('Input data x[2] = ');read(x2);
write('Input data y[2] = ');read(y2);
writeln;
write('Input x = ');read(x);
F01 :=(y1-y0)/(x1-x0);
F12 :=(y2-y1)/(x2-x1);
F012:=(F12-F01)/(x2-x1);
P :=y0+(x-x0)*F01+(x-x0)*(x-X1)*F012;
writeln('Hasil Perhitungan P(x) = ',P);
end.
51
C. HASIL
Tampilan Program Interpolasi Linier.
Tampilan Program Interpolasi Linier.
52
BAGIAN VIII
INTERPOLASI PADA TITIK YANG BERJARAK SAMA
A. TINJAUAN TEORI
Di dalam pengertian matematik dasar, interpolasi adalah perkiraan suatu nilai
tengah dari satu set nilai yang diketahui. Interpolasi dengan pengertian yang lebih
luas merupakan upaya mendefinisikan suatu fungsi dekatan suatu fungsi a nalitik
yang tidak diketahui atau pengganti fungsi rumit yang tak mungkin diperoleh
persamaan analitiknya. Masalah umum interpolasi adalah menjabarkan data -data
untuk fungsi dalam fungsi dekatan; dan salah satu metode penyelesaiannya
dinamakan metode prinsip substitusi.
Diberikan n + 1 titik data yang berupa pasangan bilangan : ( x
0
,f
0
), (x
1
,f
1
), ...,
(x
n
,f
n
), dengan x
0
, x
1
, ..., x
n
, semuanya berlainan, kita ingin mencari polinom p
n
(x)
yang pada setiap x
j
mengambil nilai f
j
yang diberikan yakni:
P
n
(x
0
) = f
0
, p
n
(x
1
) = f
1
, ..., p
n
(x
n
) = f
n
dan mempunyai derajat n atau kurang. Polinom p
n
yang demikian disebut polinom
penginterpolasi. Nilai -nilai x
j
seringkali disebut simpul. Nilai f
j
yang berpadanan
dapat berupa nilai-nilai suatu fungsi matematis f( x) (ln x, sin x, fungsi Bessel, dan
sebagainya), jadi f
j
= f(x
j
) dan p
n
(x) adalah hampiran dari f(x) yang pada simpul-
simpul nilainya sama dengan nilai f. Juga f
j
dapat berupa nilai secara empiris
diperoleh dalam suatu percobaan atau pengamatan. Polinom p
n
(x) digunakan untuk
mendapatkan nilai-nilai untuk semua x, adalah nilai-nilai penghampiran dari f( x)
atau nilai-nilai pada x yang tidak dilakukan pengkuran. Kita sebut ini interpolasi jika
x yang diminati terletak diantara simpul -simpul, dan ekstrapolasi jika dia terl etak
diantara simpul-simpul. Dalam kasus yang belakangan, prosesnya secara umum
kurang cermat.
Polinom penginterpolasi p
n
(x) derajat n atau kurang yang demikian yang
mencocoki data diberikan ada, di bawah kita akan menuliskannya secara gamblang,
dan tunggal. Ketunggalan terlihat dengan mencatat bahwa selisih d
n
= p
n
q
n
dari
dua polinom yang demikian adalah suatu polinom berderajat n atau kurang yang
paling sedikit mempunyai n + 1 titik nol [yaitu simpul -simpul x
0
, x
1
, ..., x
n
tempat
53
p
n
(x) = q
n
(x), sesuai dengan asumsi], karenanya d
n
harus identik nol, yakni p
n
(x) =
q
n
(x).
B. DIAGRAM ALUR (FLOW CHART)
1. DIAGRAM ALUR INTERPOLASI MAJU NEWTON
MULAI
Baca
Jumlah data:n
i = 1 to n
Baca x(i);y(i)
Baca x
P = Newton(x)
Tulis Hasil P
SELESAI
P = Newton(x)
r = (x-x(0))/h
Sum = y(0)
i = 1 to n-1
Product = 1
j = 1 to i-1
Product = Product*(r-j)/(j+1)
Sum = Sum + Product*Del(i,0)
KEMBALI
54
P = Newton(x)
j = 1
tidak
Del = Del(i-1,j+1) Del(i-1,j)
KEMBALI
Del = y(j+1) y(j)
ya
55
2. DIAGRAM ALUR INTERPOLASI MUNDUR NEWTON
MULAI
Baca
Jumlah data:n
i = 1 to n
Baca x(i);y(i)
Baca x
P = Newton(x)
Tulis Hasil P
SELESAI
Newton(x)
r = (x-x(n-1))/h
Sum = y(n-1)
i = 1 to n-1
Product = 1
j = 0 to i-1
Product = Product*(r+j)/(j+1)
Sum = Sum + Product*Del(i,n - 1)
KEMBALI
Del(i,j)
j = 1
tidak
Del = Del(i-1,j+1) Del(i-1,j)
KEMBALI
Del = y(j+1) y(j)
ya
56
3. DIAGRAM ALUR BEDA TERBAGI NEWTON
MULAI
Baca
Jumlah data:n
i = 1 to n
Baca x(i);y(i)
Baca x
P = Newton(x)
Tulis Hasil P
SELESAI
Newton(x)
Sum y(0)
i = 1 to n-1
Product = 1
j = 0 to i-1
Product = Product*(x-x(j))
Sum = Sum + Product*Del(0,1)
KEMBALI
Del(i,j)
(j-i)< = 1
tidak
Del = Del(i-1,j+1) Del(i-1,j)
KEMBALI
Del = yj
ya
(j-i) = 1
Del = (yj-yj)/(xj-xj)
57
C. PROGRAM
1. INTERPOLASI BEDA MAJU NEWTON
{INTERPOLASI NEWTON KEDEPAN (EQUAL SPACE)
DAFTAR VARIABEL
n : jumlah titik data
x[], y[] : data
xp : nilai x}
USES WINCRT;
Var
n, i : integer;
x, y : Array [0..20] of real;
h, xp, P : real;
{Fungsi Rekursif untuk mencari nilai 'tabel beda'}
Function Del(rank_n, k : integer) : real;
Begin
if (rank_n = 1) then Del:=y[k+1] - y[k]
else Del:= Del(rank_n-1, k+1) - Del(rank_n-1,k);
End;
Function Newton(xp : real) : real;
Var
sum, product, r : real;
i, j : integer;
Begin
r:=(xp-x[0])/h;
sum:=y[0];
for i:=1 to n-1 do
Begin
product:=1;
for j:=0 to i-1 do product:=product*(r-j)/(j+1);
sum:=sum+Del(i,0)*product;
End;
Newton:=sum;
End;
58
Begin
Write('Jumlah data n = ');read(n);
Writeln;
Write('Input data x[0] = ');read(x[0]);
Write('Input data h = ');read(h);
for i:=1 to n-1 do x[i]:=x[i-1]+h;
for i:=0 to n-1 do
Begin
Write('Input data y[',i:2,'] = ');
read(y[i]);
End;
Writeln;
Write('Input x = ');read(xp);
P:=Newton(xp);
Writeln('Hasil Perhitungan P(x) = ',P);
End.
2. INTERPOLASI BEDA MUNDUR NEWTON
{INTERPOLASI NEWTON KEBELAKANG
DAFTAR VARIABEL
n : jumlah titik data
x[], y[] : data
x : nilai x }
USES WINCRT;
Var
n, i : integer;
x, y : Array [0..20] of real;
h, xp, P : real;
{Fungsi rekursif untuk mencari nilai 'tabel data' }
Function Del(rank_n, k : integer):real;
Begin
if (rank_n=1) then Del:=y[k] -y[k-1]
else Del:=Del(rank_n-1, k) - Del(rank_n-1, k-1);
End;
59
Function Newton(xp:real):real;
Var
sum, product, r : real;
i, j : integer;
Begin
r:=(xp-x[n-1])/h;
sum:=y[n-1];
for i:=1 to n-1 do
Begin
product:=1;
for j:=0 to i-1 do product:=product*(r+j)/(j+1);
sum:=sum+Del(i, n-1)*product;
End;
Newton:=sum;
End;
Begin
Write('Jumlah data n = ');read(n);
Writeln;
Write('Input data x[0] = ');read(x[0]);
Write('Input data h = ');read(h);
for i:=1 to n-1 do x[i]:=x[i-1]+h;
for i:=0 to n-1 do
Begin
Write('Input data y[',i:2,'] = ');
read(y[i]);
End;
Writeln;
Write('Input x = '); read(xp);
P:=Newton(xp);
Writeln('Hasil Perhitungan P(x) = ',P);
End.
60
3. INTERPOLASI BEDA TERBAGI NEWTON
{INTERPOLASI BEDA TERBAGI NEWTON
DAFTAR VARIABEL
n : jumlah titik data
x[], y[] : data
xp : nilai x}
USES WINCRT;
Var
i, n : integer;
x, y : Array [0..20] of real;
xp, P: real;
{Fungsi rekursif untuk mencari nilai 'tabel beda'}
Function Del(i,k:integer):real;
Begin
if(k-i<=0) then Del:=y[i]
else if (k-i = 1) then Del:=(y[k]-y[i])/(x[k]-x[i])
else Del:=(Del(i+1,k)-Del(i,k-1))/(x[k]-x[i]);
End;
Function Newton(xp:real):real;
Var
sum, product : real;
i, j : integer;
Begin
sum:=y[0];
for i:=1 to n-1 do
Begin
product:=1;
for j:=0 to i-1 do product:=product*(xp-x[j]);
sum:=sum+Del(0,i)*product;
End;
Newton:=sum;
End;
Begin
Write('Jumlah data n = ');read(n);
Writeln;
for i:=0 to n-1 do
61
Begin
Write('Input data x[',i:2,']= '); read(x[i]);
Write('Input data y[',i:2,']= ');read(y[i ]);
End;
Writeln;
Write('Input x = ');read(xp);
P:=Newton(xp);
Writeln('Hasil perhitungan P(x) = ',P);
End.
D. HASIL
1. INTERPOLASI BEDA MAJU NEWTON
62
2. INTERPOLASI BEDA MUNDUR NEWTON
3. INTERPOLASI BEDA TERBAGI NEWTON
63
BAGIAN IX
INTERPOLASI INVERS
C. DIAGRAM ALUR (FLOW CHART)
BAGAN ALUR INTERPOLASI INVERS
MULAI
Baca jumlah
data : n
Baca x[i];y[i]
Baca y
P = Invers(y)
i = 1 to n
Tulis hasil P
SELESAI
Invers (y)
suku_2= (f
0
+ f
1
]) / 2
suku_3=(sk*sk-0.25)/2*(del(f
1
)+del(f
0
))/2
suku_4 := sk*(sk*sk - 0.25)/6* del (f
1
)
sk = 0
sk_1= 1/del (f
0
)*(y-suku_2-suku_3-suku_4)
epsilon = abs((sk_1-sk)/sk_1)
sk = sk_1
epsilon<tol
KEMBALI
Ya
Tidak
64
D. PROGRAM
INTERPOLASI INVERS
uses wincrt;
{n:jumlah titik data
x[],y[]:data
xp:nilai x}
var
n,nmid, i:integer;
x,y :array [0..20] of real;
h,yp,P: real;
const
tol = 0000001;
{fungsu rekursif untuk mencari nilai 'tabel beda'}
function del(rank_n,k : integer) :real;
begin
if(rank_n =1) then del := y[nmid + k + 1] - y[nmid + k]
else del := del(rank_n - 1, k + 1) - del(rank_n - 1, k);
end;
function factorial(n: integer) : longint;
begin
if(n <=1) then factorial :=1
else factorial := n * factorial (n - 1);
end;
function invers(yp :real): real;
var
sk,sk_1,suku_2,suku_3,suku_4, epsilon: real;
xp:real;
begin
sk :=0;
epsilon := tol + 1;
while(epsilon> tol) do
begin
suku_2 := (y[nmid] + y[nmid +1]) / 2.0;
65
suku_3 := (sk * sk - 0.25) / 2.0 * (del(2, -1)+ del(2,0))/2.0;
suku_4 := sk * (sk * sk - 0.25)/6.0 * del (3, -1);
sk_1 := 1/del (1,0) * (yp - suku_2 - suku_3 - suku_4);
epsilon := abs ((sk_1 - sk) / sk_1);
sk := sk_1;
end;
xp := x[nmid] + h * (sk + 0.5);
invers := xp;
end;
begin
write('jumlah data n (genap) = '); read (n);
nmid := trunc (n/2) - 1;
if ((n mod 2) <> 0) then
begin
writeln('jumlah data harus genap');
halt(1);
end;
writeln;
write('input data x[0] = '); read (x[0]);
write('input data h = '); read (h);
for i := 1 to n - 1 do x[i] := x[i -1] +h;
for i := 0 to n - 1 do
begin
write('input data y[' ,i:2, ') = ');
read(y[i]);
end;
writeln;
write('input P(x) = '); read(yp);
P := invers (yp);
writeln('hasil perhitungan x = ',P);
end.
66
E. HASIL