Skripsi Matematika 3

Friday, March 16, 2012

PENYELESAIAN PERSAMAAN NON-LINEAR
 METODE BISEKSI DAN METODE REGULA FALSI
MENGGUNAKAN CARA KOMPUTASI


ABSTRAK

Penelitian ini bertujuan menyusun program komputer untuk mengetahui perbedaan kecepatan antara metode Biseksi dan metode Regula Falsi dalam menyelesaikan persamaan non-linear ditinjau dari banyaknya iterasi dengan menggunakan bahasa pemrograman Turbo Pascal. Penelitian ini menggunakan metode studi literatur, kemudian diimplementasikan ke dalam program komputer. Adapun langkah-langkah yang dilakukan adalah : 1) mengidentifikasi masalah,                2) menentukan solusi, 3) membuat diagram alir, 4) menulis program, 5) menguji program dan 6) menulis dokumentasi. Hasil dari penelitian ini adalah program komputer dengan bahasa Turbo Pascal yang digunakan untuk menyelesaikan persamaan non-linear menggunakan metode Biseksi dan metode Regula Falsi serta mengetahui perbedaan kecepatan antara metode Biseksi dan metode Regula Falsi dalam menyelesaikan persamaan non-linear ditinjau dari banyaknya iterasi.


      Pembimbing I                                                Pembimbing II


      Hindayati Mustafidah, S.Si., M.Kom          Nila Kurniasih, S.Si., M.Si
      NIK. 2160332                                                NIK. 2160228
Mengetahui,
Dekan FKIP


Drs. H. Sutomo, M. Si
NIP. 131602699

BAB I
PENDAHULUAN

A.    Latar Belakang
Persoalan yang melibatkan model matematika banyak muncul dalam berbagai disiplin ilmu pengetahuan, seperti dalam bidang fisika, kimia, ekonomi, atau pada persoalan rekayasa (engineering), seperti Teknik Sipil, Teknik Mesin, Elektro dan sebagainya. Seringkali model matematika tersebut muncul dalam bentuk yang tidak ideal atau sulit untuk dikerjakan secara analitik untuk mendapatkan solusi sejatinya (exact solution). Yang dimaksud dengan metode analitik adalah metode penyelesaian model matematika dengan rumus-rumus aljabar yang sudah baku atau lazim digunakan.
Sebagai ilustrasi, diberikan beberapa contoh berikut ini :
1.      Penyelesaian akar-akar persamaan polinom :
23,4x7 – 1,25x6 + 120x4 + 15x3 - 120x2 - x + 100 = 0
2.      Pencarian harga x yang memenuhi persamaan:
3.      Penyelesaian sistem persamaaan linear :
1,2a - 3b - 12c + 12d + 4,8e – 5,5f + 100g = 18
0,9a + 3b - c + 16d + 8e - 5f - 10g = 17
4,6a + 3b - 6c - 2d + 4e + 6,5f - 13g = 19
1
 
3,7a - 3b + 8c - 7d + 14e + 8,4f + 16g = 6
2,2a + 3b + 17c + 6d + 12e – 7,5f + 18g = 9
5,9a + 3b + 11c + 9d - 5e - 25f - 10g = 0
1,6a + 3b + 1,8c + 12d -7e +2,5f + g =-5
(Susy, 2006 : 1-2)

Setelah melihat beberapa contoh ilustrasi di atas, kemungkinan besar cara analitik tidak dapat digunakan. Untuk polinom berderajat 2, masih bisa dicari akarnya menggunakan rumus abc yang sudah terkenal, yaitu :
Namun, untuk polinom yang berderajat lebih besar dari 2, tidak ada rumus aljabar untuk menghitung akar polinom tersebut. Alternatifnya adalah dengan memanipulasi polinom, misalnya dengan pemfaktoran atau menguraikan polinom tersebut menjadi perkalian beberapa suku. Semakin tinggi derajat polinom, jelas semakin sukar memfaktorkannya. Begitu juga untuk menyelesaian sistem persamaan linear. Apabila sistem persamaannya hanya berupa dua atau tiga garis lurus dengan dua atau tiga peubah, masih dapat ditemukan solusinya (dalam hal ini titik potong kedua garis) dengan menggunakan rumus titik potong dua buah garis. Titik potong tersebut juga dapat ditemukan dengan menggambar kedua garis pada kertas grafik. Tetapi untuk sistem dengan jumlah persamaan dan jumlah peubah lebih besar dari tiga, tidak ada rumus yang dapat dipakai untuk memecahkannya.
Contoh-contoh ilustrasi di atas memperlihatkan bahwa ada beberapa persoalan matematika yang tidak dapat diselesaikan dengan metode analitik. Akan tetapi metode analitik unggul untuk sejumlah persoalan yang memiliki tafsiran geometri sederhana. Misalnya menentukan akar penyelesaian dari  menggunakan rumus abc. Padahal persoalan yang muncul dalam kehidupan sehari-hari tidak selalu dalam bentuk sederhana tetapi sangat kompleks serta melibatkan bentuk dan proses yang rumit. Akibatnya nilai praktis penyelesaian metode analitik menjadi terbatas. Bila metode analitik tidak dapat lagi digunakan, maka salah satu solusi yang dapat digunakan adalah dengan metode Numerik. Metode Numerik adalah teknik yang digunakan untuk memformulasikan persoalan matematika sehingga dapat dipecahkan dengan operasi perhitungan atau aritmatika biasa (tambah, kurang, kali, dan bagi) (Susy, 2006 : 3-5).
Penyelesaian secara numerik umumnya melibatkan proses iterasi, perhitungan berulang dari data numerik yang ada. Jika proses iterasi tersebut dilakukan secara manual, akan membutuhkan waktu yang relatif lama dan kemungkinan timbulnya nilai kesalahan (error) akibat manusia itu sendiri juga relatif besar. Misalnya untuk menyelesaikan persoalan persamaan non-linear , jika diselesaikan menggunakan cara manual menggunakan Metode Biseksi diperlukan beberapa iterasi. Untuk penyelesaian sampai tujuh angka di belakang koma dapat terjadi iterasi sampai puluhan kali. Ini tentu membutuhkan waktu yang relatif lama. Pada kenyataannya sering terjadi proses iterasi sampai ratusan kali, pada keadaan demikian ini komputer sangat dibutuhkan untuk mengurangi waktu penyelesaian (Munif, 1995 : 3). Selain mempercepat perhitungan numerik, dengan komputer dapat dicoba berbagai kemungkinan solusi yang terjadi akibat perubahan beberapa parameter tanpa menyita waktu dan pikiran. Solusi yang diperoleh juga dapat ditingkatkan ketelitiannya dengan mengubah-ubah nilai parameter (Susy, 2006 : 9).
Persamaan linear jika digambarkan pada sumbu kartesius berupa garis lurus. Sedangkan untuk persamaan non-linear jika digambarkan pada sumbu kartesius berupa kurva (garis  lengkung). Persamaan yang termasuk persamaan non-linear adalah persamaan polinomial, persamaan eksponensial, persamaan logaritmik, persamaan sinusoida, dan sebagainya (Munif, 1995 : 7). Sebagai contoh misalnya terdapat persamaan :  dengan daerah asal {x | -2 £ x £ 6, x Î R}. Persamaan tersebut jika digambarkan pada sumbu kartesius :

 









Dari gambar di atas terlihat jelas bahwa persamaan  jika digambarkan pada sumbu kartesius berupa kurva. Jika dicari nilai x yang memenuhi persamaan biasanya digunakan rumus abc, maka diperoleh x1 = 0 dan x2 = 4. Nilai-nilai x yang memenuhi persamaan ini pada gambar terlihat jelas yaitu titik potong garis dengan sumbu x.
Akan tetapi jika diilustrasikan untuk persamaan non-linear :         23,4x7 – 1,25x6 + 120x4 + 15x3 - 120x2 - x + 100 = 0 maka rumus abc sudah tidak berlaku lagi, karena persamaan tersebut mempunyai pangkat yang lebih besar dari 2. Metode analitik tidak berlaku lagi karena terlalu memakan banyak waktu, tenaga dan pikiran. Jalan yang paling efektif dan efisien adalah dengan mengggunakan metode Numerik, karena hanya dengan beberapa langkah saja sudah bisa didapatkan apa yang diinginkan.
Penyelesaian yang digunakan dalam metode Numerik adalah penyelesaian pendekatan, oleh karena itu biasanya timbul kesalahan (error). Pada penyelesaiannya diusahakan untuk mendapatkan error yang sekecil mungkin. Langkah pertama yang dilakukan dalam penyelesaian persamaan non-linear dengan menggunakan metode Biseksi dan metode Regula Falsi adalah menetapkan nilai sebarang a sebagai batas atas dan nilai sebarang b sebagai batas bawah kemudian ditentukan nilai fungsi f(x) untuk x = a dan      x = b. Selanjutnya adalah memeriksa apakah f(a).f(b) < 0, apabila terpenuhi syarat tersebut berarti akar fungsi terdapat di antara a dan b. Jika tidak terpenuhi maka kembali harus menetapkan nilai sebarang a dan b sedemikian rupa sehingga ketentuan perkalian terpenuhi (Wibowo, 2007 : 1). Jika ketentuan perkalian terpenuhi maka selanjutnya adalah menentukan titik c (titik di antara a dan b). Untuk metode Biseksi menggunakan rumus  sedangkan untuk metode Regula Falsi menggunakan rumus . Langkah selanjutnya adalah mencari nilai c yang lain sehingga didapat error yang kecil atau sama dengan nol.
Selain sederhana, metode Biseksi dan metode Regula Falsi mempunyai beberapa kelebihan yaitu proses iterasi lebih cepat, mudah untuk dibuat program dan tingkat kesalahan kecil. Untuk metode yang menghasilkan error kecil maka metode tersebut lebih teliti dibanding dengan metode lain. Dalam metode Numerik ada beberapa metode yang dapat digunakan untuk menyelesaikan persamaan non-linear, diantaranya metode Tabulasi, metode Biseksi, metode Regula Falsi, metode Iterasi bentuk x = g(x), metode Newton Rapson, metode Faktorisasi (P3, P4, P5), metode Bairstow dan metode Quotient-Difference  (Q-D) (Munif, 1995 : 8).
Berdasarkan uraian di atas, tujuan utama penelitian ini adalah mempelajari penyelesaian persamaan non-linear menggunakan metode Biseksi dan metode Regula Falsi Menggunakan Cara Komputasi serta mengetahui perbedaan kecepatannya dalam menyelesaikan persamaan non-linear ditinjau dari banyaknya iterasi.


B.     Perumusan Masalah
Berdasarkan latar belakang tersebut di atas, maka permasalahan dalam penelitian ini adalah :
1.      Bagaimana penyelesaian persamaan non-linear menggunakan metode Biseksi dengan program komputer.
2.      Bagaimana penyelesaian persamaan non-linear menggunakan metode Regula Falsi dengan program komputer
3.      Bagaimana perbedaan kecepatan antara metode Biseksi dan metode Regula Falsi dalam menyelesaikan persamaan non-linear ditinjau dari banyaknya iterasi.

C.    Pembatasan Masalah
Batasan masalah dalam penelitian ini adalah persamaan non-linear dalam bentuk polinomial satu variabel.

D.    Tujuan  Penelitian
Dengan adanya permasalahan yang muncul, maka tujuan dari penelitian ini adalah :
1.      Membuat program komputer untuk menyelesaikan persamaan non-linear menggunakan metode Biseksi.
2.      Membuat program komputer untuk menyelesaikan persamaan non-linear menggunakan metode Regula Falsi.
3.      Mengetahui perbedaan kecepatan antara metode Biseksi dan metode Regula Falsi dalam menyelesaikan persamaan non-linear ditinjau dari banyaknya iterasi.

E.     Manfaat Penelitian
Ada beberapa manfaat yang diharapkan dari penelitian ini, diantaranya adalah :
1.      Mengetahui perbedaan kecepatan antara metode Biseksi dan metode Regula Falsi dalam menyelesaikan persamaan non-linear ditinjau dari banyaknya iterasi.
2.      Memberi masukkan bagi peneliti yang ingin mempelajari lebih jauh tentang metode Numerik.
BAB II
LANDASAN TEORI

A.    Persamaan Non-Linear
Persamaan merupakan kalimat terbuka yang menyatakan hubungan “sama dengan” (ditulis “=”) (Alamsyah, 1994 : 61). Persamaan Non-Linear adalah persamaan yang jika digambarkan dalam bidang kartesius berbentuk garis tidak lurus (berbentuk kurva).  Persamaan yang termasuk persamaan non-linear adalah persamaan polinomial, persamaan eksponensial, persamaan logaritmik, persamaan sinusoida, dan sebagainya (Munif, 1995 : 7).

B.     Metode Numerik
Tidak semua permasalahan matematis atau perhitungan dapat diselesaikan dengan mudah. Bahkan dalam prinsip matematik, dalam memandang permasalahan yang terlebih dahulu diperhatikan apakah permasalahan tersebut mempunyai penyelesaian atau tidak. Hal ini menjelaskan bahwa tidak semua permasalahan  dapat diselesaikan dengan menggunakan perhitungan biasa.
9
 
Sebagai ilustrasi untuk persamaan non-linear berderajat lebih dari dua dapat dikatakan mempunyai penyelesaian yang tidak mudah bahkan dan tidak mungkin diselesaikan secara analitik.  Tetapi bukan berarti persamaan tersebut tidak mempunyai penyelesaian, hanya saja menyelesaikan persamaan semacam itu sangat sulit dan kalaupun bisa memerlukan pengetahuan matematis yang tinggi dan waktu yang cukup lama. Dengan dasar inilah dapat dikatakan bahwa diperlukan suatu metode tertentu yang dapat digunakan untuk menghitung persamaan tersebut. Meskipun metode tersebut tidak dapat menghasilkan nilai yang exact (tepat), setidak-tidaknya sudah mendekati nilai yang diharapkan. (Amang, 2006 : 1)
Penyelesaian persamaan non-linear adalah penentuan akar-akar persamaan non-linear. Dimana akar sebuah persamaan f(x) = 0 adalah nilai-nilai x yang menyebabkan nilai f(x) sama dengan nol. Dengan kata lain akar persamaan f(x) adalah titik potong antara kurva f(x) dengan garis y = 0.
 







Gambar 2. Penyelesaian Persamaan Non-Linear
(Amang, 2006 : 10)


C.    Penyelesaian Persamaan Non-Linear
Menurut Munif, A (1995 : 7) Persamaan y=f(x) dikatakan linear jika hubungan antara variabel x dan nilai fungsi y jika digambarkan pada sumbu kartesian menunjukkan garis lurus. Sedangkan yang tidak berbentuk garis lurus disebut persamaan non-linear. Misalnya persamaan polinomial, persamaan sinusoida, persamaan eksponensial, persamaan logaritmik dan sebagainya.
 





Gambar 3. Bentuk-bentuk Grafik Persamaan Linear
 





Gambar 4. Bentuk-bentuk Grafik Persamaan Non-Linear
1.      Metode Biseksi
Metode ini mempunyai ciri dimana area dibagi menjadi 2 bagian, dari dua bagian ini dipilih bagian mana yang mengandung akar dan bagian yang tidak mengandung akar dibuang. Hal ini dilakukan berulang-ulang hingga diperoleh akar persamaan.
 








Gambar 5. Metode Biseksi
            Cara Penyelesaian dari Metode Biseksi
Langkah Pertama menyelesaikan persamaan non-linear f(x) dengan metode Biseksi adalah menentukan dua titik f(x) awal yaitu f(x1) dan f(x2) dan harus memenuhi hubungan f(x1).f(x2) < 0.
Langkah Kedua adalah mencari nilai x3 dengan persamaan :  kemudian mencari nilai f(x3) nya.
Langkah Ketiga, melakukan iterasi untuk mendapatkan akar persamaan. Jika f(x1).f(x3) < 0 maka x2 diganti x3 dan akar terletak diantara x1 dan x3, tetapi jika f(x1).f(x3) > 0 maka x1 diganti x3 dan akar terletak diantara x2 dan x3.
2.      Metode Regula Falsi
Metode Regula Falsi adalah metode pencarian akar persamaan dengan memanfaatkan kemiringan dan selisih tinggi dari dua titik batas range.
 







Gambar 6. Metode Regula Falsi
(Amang, 2006 : 16)
Cara Penyelesaian Metode Regula Falsi :
Langkah Pertama, menentukan dua titik f(x) awal, yaitu x1 dan x2 yang memenuhi persamaan f(x1).f(x2) < 0.
Langkah Kedua, mencari nilai x3 dengan persamaan :  kemudian dicari nilai f(x3) nya.
Langkah Ketiga, melakukan iterasi untuk mendapatkan akar persamaan. Jika f(x1).f(x3) < 0 maka x2 diganti x3 dan akar terletak diantara x1 dan x3, tetapi jika f(x1).f(x3) > 0 maka x1 diganti x3 dan akar terletak diantara x2 dan x3.
 (Munif, 1995 : 12)

D.    Bahasa Pemrograman Pascal
1.      Sejarah Pascal
Pascal adalah bahasa tingkat tinggi (high level language) yang bersifat umum dan dirancang oleh Profesor Niklaus Wirth dari Technical University di Zurich, Switzerland. Nama Pascal diambil sebagai penghargaan terhadap Blaise Pascal, ahli matematik dan philosphi terkenal abad ke-17, dari Perancis. Profesor Niklaus Wirth memperkenalkan kompiler bahasa Pascal pertama kali untuk komputer CDC 6000 (Control Data Corporation) yang dipublikasikan pada tahun 1971 dengan tujuan untuk membantu mengajar program komputer secara sistematis, khususnya untuk memperkenalkan pemrograman yang terstruktur (structured programming) (Jogianto, 1988a : 1).
2.      Langkah-langkah dalam Pemrograman Komputer
Menurut Pranata (2000 : 4-7) Langkah-langkah yang harus dilakukan dalam pemrograman komputer adalah sebagai berikut :
a).   Mendefinisikan Masalah
Sebelum menginjak ke langkah yang kedua, mendefinisikan masalah merupakan langkah yang sangat penting yang berisi menentukan masalahnya seperti apa, apa saja yang harus dipecahkan dengan komputer, yang terakhir adalah apa masukkannya dan bagaimana keluarannya.
b).   Menentukan Solusi
Setelah masalah didefinisikan dengan jelas, masukkan apa yang diberikan sudah jelas, keluaran apa yang diinginkan sudah jelas langkah selanjutnya adalah menentukan bagaimana masalah tersebut diselesaikan. Apabila masalah yang dihadapi terlalu kompleks, kita bisa membaginya ke dalam beberapa bagian kecil agar lebih mudah dalam penyelasaiannya.
c).   Memilih Algoritma
Dalam memilih algoritma untuk sebuah program kita harus menentukannya dengan tepat. Karena pemilihan program yang salah akan menyebabkan program memiliki unjuk kerja yang kurang baik.
d).  Menulis Program
Dalam langkah ini kita sudah mulai menuliskan program komputer untuk memecahkan masalah yang ada. Dalam menulis program kita juga akan melakukan pemilihan terhadap bahasa pemrograman yang akan digunakan. Ada beberapa hal yang harus dipertimbangkan saat memilih bahasa pemrograman, antara lain masalah yang dihadapi, bahasa pemrograman yang dikuasai, dan sebagainya.
e).   Menguji Program
Setelah program selesai ditulis, langkah selanjutnya adalah mengujinya. Pengujian pertama adalah apakah program berhasil dikompilasi dengan baik, Pengujian berikutnya apakah program dapat menampilkan keluaran yang diinginkan.
Program juga harus diuji untuk kasus yang berbeda, sering terjadi suatu program berjalan baik untuk kasus A, B, C tetapi menghasilkan sesuatu yang tidak diinginkan untuk kasus X, Y, dan Z.
f).    Menulis Dokumentasi
Langkah ini biasanya dilakukan bersamaan dengan langkah menulis program tetapi tidak menutup kemungkinan ditulis pada setelah langkah terakhir. Menulis dokumentasi artinya pada setiap beberapa baris program ditambahkan komentar yang menjelaskan kegunaan dari suatu pernyataan.
g).   Merawat Program
Langkah ini dilakukan setelah program selesai dibuat dan sudah digunakan oleh pengguna. Hal yang sering terjadi adalah munculnya bug yang sebelumnya tidak terdeteksi. Atau mungkin juga pengguna menginginkan tambahan suatu fasilitas baru. Apabila hal-hal ini terjadi, maka harus dilakukan revisi terhadap program.
3.      Struktur Program Pascal
Struktur dari suatu program Pascal terdiri dari sebuah judul program (program heading) dan suatu blok program (program block). Blok program di bagi lagi manjadi dua bagian, yaitu bagian deklarasi (declaration part) dan bagian badan program yang berisi pernyataan-pernyataan (statements). Bagian deklarasi dapat tersusun atas deklarasi label (labels), konstanta (constants), tipe (type), variabel (variables), prosedur (procedures) dan fungsi (functions) (Jogianto, 1988a : 2).
Untuk mempermudah pembuatan program pascal, format program pascal disajikan sebagai berikut :
program <nama program>
   label <deklarasi>
   const <deklarasi>
   type <deklarasi>
   var <deklarasi>
   procedure dan function <deklarasi>
   begin          
        <pernyataan >;
        <pernyataan >;
        <pernyataan >;
        .
        .
        .
        <pernyataan >;
   end.
(Zaks, 1988 : 17)
4.      Pengambilan Keputusan
Sering kali pemakai dihadapkan pada permasalahan untuk pengambilan keputusan terhadap dua alternatif atau bahkan lebih. Pemakai dapat mengambil keputusan didasarkan oleh suatu kondisi yang telah dievaluasi terlebih dahulu. Hal serupa juga dilakukan oleh komputer. Untuk keperluan inilah Turbo Pascal menyediakan dua macam pernyataan:
a).    IF
Pernyataan IF ada beberapa bentuk, yaitu :
(1).    Pernyataan IF Sederhana
IF kondisi THEN
            pernyataan
 
           

Pada bentuk ini pernyataan hanya akan dijalankan kalau kondisi bernilai True.
(2).    Pernyataan IF – ELSE
IF kondisi THEN
            pernyataan_1
ELSE
            pernyataan_2
 
        


Pada bentuk ini pernyataan_1 hanya akan dijalankan kalau kondisi bernilai True (benar), pernyataan_2 hanya akan dijalankan kalau kondisi bernilai False (salah).
(3).   
IF kondisi_1 THEN
    IF kondisi_2 THEN
            pernyataan_1
    ELSE
            pernyataan_2
 
Pernyataan IF Bersarang
        


Suatu pernyataan IF dapat mengandung pernyataan IF yang lain. Bentuk seperti ini disebut IF Bersarang (nested IF).
(Kadir , 2001 : 86-92)
b).    CASE
Pernyataan CASE biasanya dipakai pada pilihan berganda. Bentuk pernyataan ini :
CASE nilai OF
            daftar_nilai_1 : pernyataan_1;
daftar_nilai_2 : pernyataan_2;
daftar_nilai_m : pernyataan_m
ELSE
            pernyataan_n
END


 
 





(Kadir, 2001 : 96)
5.      Pengulangan (loop)
Pengulangan digunakan untuk menjalankan satu atau beberapa pernyataan sebanyak beberapa kali. Pengulangan memungkinkan menjalankan beberapa pernyataan hanya dengan menuliskan pernyataan tersebut satu kali saja.
a).    Pernyataan FOR
Pernyataan FOR biasanya digunakan untuk melakukan pengulangan yang jumlahnya diketahui sebelumnya. Bentuk umum pernyataan FOR adalah sebagai berikut :
FOR variabel := nilai_awal TO nilai_akhir DO
            pernyataan
 
                       

Pernyataan FOR bisa juga digunakan untuk melakukan pengulangan dari bilangan yang lebih besar ke bilangan yang lebih kecil. Caranya adalah dengan mengganti kata kunci TO dengan DOWNTO.
FOR variabel := nilai_awal DOWNTO nilai_akhir DO
            pernyataan
 
 


b).    Pernyataan FOR Bersarang
Pernyataan FOR yang berada di dalam FOR disebut FOR Bersarang (nested FOR).

c).    WHILE
Pernyataan WHILE biasa digunakan untuk pengulangan yang belum diketahui secara pasti berapa banyak akan mengulang pernyataan-pernyataan.
WHILE kondisi DO
BEGIN
            pernyataan
END
 
 



d).   Pernyataan REPEAT - UNTIL
Pernyataan REPEAT –UNTIL digunakan bila jumlah pengulangan belum dapat ditentukan pada saat program ditulis. Kondisi REPEAT – UNTIL dicek pada akhir kalang. Bentuk pernyataaan REPEAT :
REPEAT
{pernyataan-pernyataan yang akan diulang}
UNTIL kondisi
 
 


(Pranata, 2002 : 85-87)

6.      Keunggulan Bahasa Pascal
Menurut Zaks, R (1998 : 2-3) Bahasa Pascal telah dirancang untuk mempermudah pengubahan algoritma menjadi program, demikian pula halnya dengan susunan dan penyajian struktur datanya. Pascal berkembang dari pencarian suatu bahasa pemrograman bersifat lengkap, namun sederhana untuk dipelajari dan mudah diimplementasikan ke program komputer dengan memori yang cukup kecil dan dapat dijalankan lewat mode DOS.
21
 
 BAB III
METODOLOGI PENELITIAN

A.    Tempat Penelitian
Penelitian ini dilakukan di Laboratorium Pengembangan Pendidikan Matematika Fakultas Keguruan dan Ilmu Pendidikan Universitas Muhammadiyah Purwokerto.

B.     Alat Penelitian
Alat yang digunakan dalam penelitian ini adalah satu unit komputer dengan spesifikasi :
Processor   : Intel(R) Pentium(R) 4 CPU 1.80GHz
RAM         : 256 MB RAM
Hardisk     : 40 GB Maxtor

C.    Langkah-langkah Penelitian
Penelitian ini menggunakan metode studi literatur yang kemudian diimplementasikan ke dalam program komputer menggunakan bahasa pemrograman Turbo Pascal 7.1. Langkah-langkah yang dilakukan dalam pembuatan program pada penelitian ini adalah sebagai berikut :
1.      Mengidentifikasikan Masalah
Masalah pada penelitian ini adalah mengetahui perbedaan kecepatan antara metode Biseksi dan metode Regula Falsi dalam menyelesaikan persamaan non-linear ditinjau dari banyaknya iterasi dengan cara membandingkan selisih rata-rata akar pendekatan dengan rata-rata akar pada iterasi ke n pada ke dua metode.
2.      Menentukan Solusi
Untuk mengetahui perbedaan kecepatan antara metode Biseksi dan metode Regula Falsi dalam menyelesaikan persamaan non-linear yaitu dengan membandingkan selisih rata-rata akar pendekatan dengan rata-rata akar pada iterasi ke n pada ke dua metode.
3.      Membuat Diagram Alir
Sebelum peneliti membuat program maka terlebih dahulu dibuat diagram alir. Diagram alir dibuat untuk mempermudah urutan langkah-langkah pembuatan program.
4.      Menulis Program
Berdasarkan diagram alir yang telah dibuat sebelumnya, maka permasalahan yang ada diimplementasikan ke dalam program komputer dengan menggunakan bahasa pemrograman Turbo Pascal 7.1.
5.      Menguji Program
Setelah program ditulis, program diuji dengan cara menjalankan (running) program untuk mengetahui kesalahan yang ada.
6.      Menulis Dokumentasi
Menambahkan dokumentasi berupa komentar-komentar pada program. Manfaatnya adalah agar pembaca program (user) dapat mengetahui lebih jelas kegunaan dari setiap pernyataan yang ditulis dalam program.

D.    Membandingkan Metode Biseksi dan Metode Regula Falsi
Pada tahap ini dilakukan pembandingan selisih rata-rata akar pendekatan dengan rata-rata akar pada iterasi ke n untuk metode Biseksi dengan metode Regula Falsi dalam menyelesaikan persamaan non-linear khususnya persamaan polinomial satu variabel.
Jika selisih rata-rata akar pendekatan dengan rata-rata akar pada iterasi ke n untuk metode Biseksi lebih KECIL dari selisih metode Regula Falsi maka disimpulkan metode Biseksi lebih cepat dalam menyelesaikan persamaan non-linear ditinjau dari banyaknya iterasi. Sebaliknya, jika selisih rata-rata akar pendekatan dengan rata-rata akar pada iterasi ke n untuk metode Biseksi lebih BESAR dari selisih metode Regula Falsi maka disimpulkan metode Regula Falsi lebih cepat dalam menyelesaikan persamaan non-linear ditinjau dari banyaknya iterasi.
BAB IV
24
 
HASIL PENELITIAN DAN PEMBAHASAN

Penelitian ini menghasilkan diagram alir, kode program serta keluaran berupa tingkat ketelitian metode Biseksi dan metode Regula Falsi dalam menyelesaikan persamaan non-linear satu variabel.
A.    Diagram Alir
Diagram alir dibuat untuk mempermudah urutan langkah-langkah penyelesaian masalah. Adapun diagram alir yang dihasilkan secara garis besar terdiri dari :
  1. Program Utama
Dalam diagram alir untuk program utama berisi perintah untuk menentukan pilihan pada menu utama (masuk, bantuan dan keluar) serta  pilihan untuk memanggil prosedur penyelesaian metode biseksi, penyelesaian metode regula falsi, memasukan jumlah persamaan dan derajat tertinggi serta pernyataan untuk memanggil prosedur perbandingan utama.
  1. Prosedur Penyelesaian Metode Biseksi
Dalam diagram alir ini berisi perhitungan penyelesaian persamaan non-linear dengan menggunakan metode Biseksi.
  1. Prosedur Penyelesaian Metode Regula Falsi
Dalam diagram alir ini berisi perhitungan penyelesaian persamaan non-linear dengan menggunakan metode Regula Falsi.
  1. Prosedur Perbandingan Utama
Dalam diagram alir untuk prosedur perbandingan utama berisi perhitungan untuk metode Biseksi dan metode Regula Falsi serta perhitungan untuk mengetahui perbedaan kecepatan antara metode Biseksi dan metode Regula Falsi dalam menyelesaikan persamaan non-linear ditinjau dari banyaknya iterasi.
Diagram alir secara keseluruhan dapat dilihat pada lampiran 1.

B.     Kode Program
Kode program yang dihasilkan diberi nama “NUMERIK” yaitu program yang digunakan untuk mengetahui perbedaan kecepatan antara metode Biseksi dan metode Regula Falsi dalam menentukan akar penyelesaian persamaan non-linear ditinjau dari banyaknya iterasi. Secara garis besar kode program ini terdiri dari :
1.      Program Utama
Dalam kode program untuk program utama berisi pernyataan untuk menampilkan menu utama, pernyataan untuk memanggil prosedur penyelesaian metode biseksi, penyelesaian metode regula falsi, memasukan jumlah persamaan dan derajat tertinggi serta pernyataan untuk memanggil prosedur perbandingan utama.


2.      Prosedur-prosedur
a).   Prosedur Tunggu
Prosedur tunggu menampilkan kondisi pada saat program Numerik sedang menyimpan file hasil perhitungan.
b).   Prosedur Judul
Prosedur judul menampilkan judul program pada setiap langkah-langkah program Numerik.
c).   Prosedur Bantuan
Prosedur bantuan menampilkan bantuan dari program.
d).  Prosedur Bye_bye
Prosedur bye_bye menampilkan kondisi pada saat keluar program.
e).   Prosedur Penyelesaian Metode Biseksi
Prosedur ini berisi perhitungan untuk menghitung persamaan non-linear menggunakan metode Biseksi.
f).    Prosedur Penyelesaian Metode Regula Falsi
Prosedur ini berisi perhitungan untuk menghitung persamaan non-linear menggunakan metode Regula Falsi.
g).   Prosedur Memasukkan Jumlah Persamaan dan Derajat Tertinggi
Prosedur ini berisi perintah untuk memasukkan jumlah persamaan dan derajat tertinggi dari persamaan non-linear.


h).   Prosedur Tampil Derajat
Prosedur tampil derajat menampilkan jumlah persamaan dan derajat tertinggi pada setiap langkah-langkah program Numerik.
i).     Prosedur Pilihan Input
Prosedur ini berisi pilihan cara memasukkan data.
j).     Prosedur Perbandingan Utama
Dalam prosedur perhitungan utama berisi perhitungan untuk metode Biseksi dan metode Regula Falsi serta perhitungan untuk mengetahui perbedaan kecepatan antara metode Biseksi dan metode Regula Falsi dalam menyelesaikan persamaan non-linear ditinjau dari banyaknya iterasi.
Kode program secara keseluruhan dapat dilihat pada lampiran 2.

C.    Hasil Keluaran
Pada saat pemanggilan pertama program, tampak MENU UTAMA :
Text Box: *************************************************
****Program penyelesaian Persamaan Non-Linear****
***Menggunakan Metode Biseksi dan Regula Falsi***
*************************************************

< < <  M E N U   U T A M A  > > >
1.  Masuk 
2.  Bantuan 
3.  Keluar/Exit 

Pilihan anda (1/2/3) = 1
Gambar 7. Tampilan Menu Utama
Jika pilihannya adalah 1 maka selanjutnya akan muncul pilihan untuk jenis penyelesaian persamaan non-linear.
Text Box: *************************************************
****Program penyelesaian Persamaan Non-Linear****
***Menggunakan Metode Biseksi dan Regula Falsi***
*************************************************
   Silahkan pilih !!!
 1. Penyelesaian Persamaan Non-Linear Menggunakan 
    Metode Biseksi
 2. Penyelesaian Persamaan Non-Linier Menggunakan 
    Metode Regula Falsi
 3. Penyelesaian Metode Biseksi dan Metode Regula
    Falsi untuk mengetahui ketelitiannya
   Pilihan (1/2/3) ==>> 1
Gambar 8. Tampilan Pilihan Jenis Penyelesaian
Setelah dipilih penyelesaian yang pertama yaitu penyelesaian persamaan non-linear menggunakan metode Biseksi, selanjutnya muncul perintah untuk memasukan derajat tertinggi persamaan non-linear, koefisien dari x serta nilai awal x1 dan nilai awal x2.
Text Box: *************************************************
****Program penyelesaian Persamaan Non-Linear****
***Menggunakan Metode Biseksi dan Regula Falsi***
*************************************************
Penyelesaian Persamaan Non-Linear Menggunakan
Metode Biseksi

  Masukkan pangkat tertinggi = 3
    Menentukan Koefisien x^1, x^2, x^3, ..., x^n
      Nilai a ==>> 1
      Nilai b ==>> 0
      Nilai c ==>> -7
      Nilai d ==>> 1
    Menentukan 2 Nilai Awal x1 dan x2
    Masukkan nilai x1 awal ==>> 2.5
    Masukkan nilai x2 awal ==>> 2.6
Gambar 9. Tampilan Memasukkan Koefisien x dan Nilai Awal x1, x2
Apabila derajat tertinggi, koefisien dari x serta nilai awal x1 dan nilai awal x2 telah ditentukan, sebagai ilustrasi untuk derajat tertingginya adalah 3 nilai a = 1 (koefisien x3), b = 0 (koefisien x2), c = -7 (koefisien x1), d = 1 (koefisien x0) dengan nilai x1 awal = 2,5 dan nilai x2 awal = 2,6. Selanjutnya akan ditampilkan hasil perhitungan menggunakan metode Biseksi.
Text Box: *************************************************
****Program penyelesaian Persamaan Non-Linear****
***Menggunakan Metode Biseksi dan Regula Falsi***
*************************************************
    Hasil Perhitungan Menggunakan Metode Biseksi
Salah satu akar pendekatannya = 2.571201419843419
diperoleh pada iterasi ke  20
dengan error     =   0.000000034720870 (ε = 1E-7)
nilai fungsinya  =  -0.000000034720870
Gambar 10. Tampilan Hasil Perhitungan Menggunakan Metode Biseksi
Untuk pilihan penyelesaian yang kedua yaitu penyelesaian persamaan non-linear menggunakan metode Regula Falsi, tampilannya hampir sama dengan pilihan penyelesaian yang pertama, perbedaannya hanya pada nilai hasil perhitungan karena menggunakan rumus iterasi yang berbeda.
Text Box: *************************************************
****Program penyelesaian Persamaan Non-Linear****
***Menggunakan Metode Biseksi dan Regula Falsi***
*************************************************
Hasil Perhitungan Menggunakan Metode Regula Falsi
Salah satu akar pendekatannya = 2.571201416725671
diperoleh pada iterasi ke  29
dengan error     =   0.000000074738637 (ε = 1E-7)
nilai fungsinya  =  -0.000000074738637
Gambar 11. Tampilan Hasil Perhitungan Menggunakan Metode Regula Falsi

Jika yang dipilih adalah penyelesaian yang ke tiga yaitu penyelesaian metode Biseksi dan metode Regula Falsi untuk mengetahui perbedaan kecepatan dalam menyelesaikan persamaan non-linear ditinjau dari banyaknya iterasi, maka akan muncul perintah untuk memasukkan jumlah persamaan non-linear, pangkat tertinggi dan batas jumlah iterasi.
Text Box: *************************************************
****Program penyelesaian Persamaan Non-Linear****
***Menggunakan Metode Biseksi dan Regula Falsi***
*************************************************

Masukkan jumlah persamaan     ==>> 10
Masukkan derajat tertinggi    ==>> 2
Masukkan batas jumlah iterasi ==>> 10
Gambar 12.  Tampilan Perintah Memasukkan Jumlah Persamaan dan Derajat
   Tertinggi serta Batas Jumlah Iterasi
Setelah jumlah dan pangkat tertinggi ditentukan sebagai ilustrasi jumlah persamaannya adalah 10 dengan derajat tertinggi 2, selanjutnya muncul pilihan cara memasukkan data yaitu data dimasukkan satu persatu dari keyboard atau data didapat dari angka random untuk menentukan koefisien dari x2 (Nilai a), x1 (Nilai b) dan x0 (Nilai c) serta dua nilai awal x1 dan x2.
Text Box: *************************************************
****Program penyelesaian Persamaan Non-Linear****
***Menggunakan Metode Biseksi dan Regula Falsi***
*************************************************
  P i l i h a n  M a s u k k a n
   1. Masukkan dari Keyboard
   2. Masukkan berupa angka Random
  Pilihan ==>> 2
Gambar 13. Tampilan Pilihan Memasukkan Data
Jika yang dipilih memasukkan data satu persatu, maka muncul perintah untuk memasukkan nilai koefisien dari x serta dua nilai awal x1 dan x2 sejumlah persamaan yang ditentukan sebelumnya. Tetapi jika yang dipilih adalah cara memasukkan berupa angka random maka program secara otomatis menentukan nilai koefisien dari x serta dua nilai awal x1 dan x2 sejumlah persamaan yang ditentukan sebelumnya.
Text Box: *************************************************
****Program penyelesaian Persamaan Non-Linear****
***Menggunakan Metode Biseksi dan Regula Falsi***
*************************************************
10 Persamaan || Derajat 2

Persamaan ke 10 dari 10 persamaan
Menentukan Koefisien x^1, x^2, x^3, ..., x^n
      Nilai c ==>>   0.32

Menentukan 2 Nilai Awal x1 dan x2
Menentukan nilai x1 awal ==>>  -0.14
Menentukan nilai x2 awal ==>>   2.08
Gambar 14. Tampilan Program Menentukan Koefisien serta Nilai x1 dan x2
 Awal dengan Angka Random
Pada saat program menentukan nilai x1 awal dan x2 awal, syarat yang harus dipenuhi adalah f(x1).f(x2)<0, jika tidak ditemukan nilai yang memenuhi persyaratan maka program akan menentukan nilai a, b, c, …, n yang baru.
Setelah semua persamaan non-linear mempunyai nilai koefisien dan nilai awal x1 dan x2 maka selanjutnya program melakukan perhitungan menggunakan rumus iterasi pada masing-masing metode. Pada metode Biseksi, langkah-langkahnya adalah :
1.  Menentukan nilai x3 dengan rumus  dan nilai f(x3)
2.  Jika f(x1).f(x3) < 0, maka akar berada pada selang x1 dan x3. Ulangi langkah ke 1 dengan x2 = x3.
3.  Jika f(x1).f(x3) > 0, maka akar berada pada selang x1 dan x2. Ulangi langkah ke 1 dengan x1 = x3.
4.  Jika f(x1).f(x3) = 0, maka akar persamaan non-linearnya adalah x3 dan perhitungan selesai.
Sedangkan pada metode Regula Falsi, langkah-langkahnya adalah :
1.  Menentukan nilai x3 dengan rumus  dan nilai f(x3)
2.  Jika f(x1).f(x3) < 0, maka akar berada pada selang x1 dan x3. Ulangi langkah ke 1 dengan x2 = x3.
3.  Jika f(x1).f(x3) > 0, maka akar berada pada selang x1 dan x2. Ulangi langkah ke 1 dengan x1 = x3.
4.  Jika f(x1).f(x3) = 0, maka akar persamaan non-linearnya adalah x3 dan perhitungan selesai.
Proses perhitungan pada kedua metode berjalan ketika pada layar monitor tampak :
Text Box: *************************************************
****Program penyelesaian Persamaan Non-Linear****
***Menggunakan Metode Biseksi dan Regula Falsi***
*************************************************
10 Persamaan || Derajat 2
Silahkan tunggu ... !!!
                                 
                Persamaan Ke 10
Iterasi metode Biseksi ke      =        21
              0.0000001
              0.000000004350076077
Iterasi metode Regula Falsi ke =        35
              0.0000001
              0.000000061622016823
Gambar 15. Tampilan Proses Iterasi Metode Biseksi dan Metode Regula Falsi
Jika proses iterasi untuk metode Biseksi dan metode Regula Falsi sudah selesai, maka selanjutnya muncul pertanyaan apakah hasil perhitungan akan ditampilkan langsung pada layar monitor. Jika menginginkan langsung ditampilkan maka ketikkan ‘y’ atau ‘Y’ dan jika tidak ingin menampilkan hasilnya maka ketikkan ‘t’ atau ‘T’.
Text Box: *************************************************
****Program penyelesaian Persamaan Non-Linear****
***Menggunakan Metode Biseksi dan Regula Falsi***
*************************************************
10 Persamaan || Derajat 2

Tampilkan Hasil perhitungan (Y/T) ? Y
Gambar 16. Tampilan Pertanyaan Tampilkan Hasil Perhitungan
Setelah dipilih untuk menampilkan hasil perhitungan oleh metode Biseksi dan metode Regula Falsi dengan mengetikkan ‘y’ atau ‘Y’ maka selanjutnya akan ditampilkan nilai a, b, c, …, n serta nilai x1 awal dan nilai x2 awal untuk setiap persamaan. Selanjutnya akan ditampilkan pula salah satu akar pendekatan dan akar pada saat iterasi ke 10 serta kesimpulan yang didapat.
Text Box: *************************************************
****Program penyelesaian Persamaan Non-Linear****
***Menggunakan Metode Biseksi dan Regula Falsi***
*************************************************
10 Persamaan || Derajat 2
Persamaan Ke=10 (x1awal = -0.14 dan x2awal = 2.08)
      Nilai a =  -0.69
      Nilai b =   0.61
      Nilai c =   0.32
                                                      Tekan tombol ENTER ...!!!
Gambar 17. Tampilan Koefisien serta Nilai x1 Awal dan x2 Awal Persamaan 
  ke 10
Text Box: **************************************************              **** Program penyelesaian Persamaan Non-Linear ***              *** Menggunakan Metode Biseksidan Regula Falsi ***              **************************************************
10 Persamaan || Derajat 2
Salah satu akar penyelesaiannya
==================================================
|Pers.| Metode Biseksi     | Metode Regula Falsi |
==================================================
|  1  | -5.190668262539352 | -5.190668287775875  |
|  2  | -0.343954970409300 | -0.343955057289213  |
|  3  | -0.631551361084128 | -0.631551389332977  |
|  4  | -0.830031606470087 | -0.830031684094307  |
|  5  | -0.172372954227747 | -0.172372869036705  |
|  6  | -0.148858722887580 | -0.148858744394033  |
|  7  |  1.728295951387191 |  1.728295973844414  |
|  8  |  0.585063956223199 |  0.585063956292722  |
|  9  |  0.003716290471007 |  0.003716285895996  |
| 10  |  1.253684443395722 |  1.253684502218005  |
==================================================
|Rata2| -0.374667723614108 | -0.374667731367197  |
==================================================
Gambar 18. Hasil Perhitungan berupa Salah-satu  akar Penyelesaian
Text Box: **************************************************              **** Program penyelesaian Persamaan Non-Linear ***              *** Menggunakan Metode Biseksidan Regula Falsi ***              **************************************************
10 Persamaan || Derajat 2
Akar penyelesaian pada saat iterasi ke 10
==================================================
|Pers.| Metode Biseksi     | Metode Regula Falsi |
==================================================
|  1  | -5.196309407550139 | -4.882481880756661  |
|  2  | -0.344651613554551 | -0.343129733838454  |
|  3  | -0.632031250000144 | -0.632281360213726  |
|  4  | -0.830285993303823 | -0.843275260142023  |
|  5  | -0.173851682428792 | -0.200284018005079  |
|  6  | -0.148861533717144 | -0.151899792875074  |
|  7  |  1.728896484375898 |  1.719297374422460  |
|  8  |  0.585046472253729 |  0.581724805486349  |
|  9  |  0.002867542613415 | -0.067674822486298  |
| 10  |  1.253246410472204 |  1.227352313314129  |
==================================================
|Rata2| -0.375593457083934 | -0.359265237509438  |
==================================================
Gambar 19. Hasil Perhitungan berupa Salah-satu  akar pada Iterasi ke 10
Text Box: **************************************************              **** Program penyelesaian Persamaan Non-Linear ***              *** Menggunakan Metode Biseksidan Regula Falsi ***              **************************************************
10 Persamaan || Derajat 2

K E S I M P U L A N

Selisih metode Biseksi      = 0.000925733469827
Selisih metode Regula Falsi = 0.015402486104670

Karena selisih rata-rata akar pendekatan dengan rata-rata akar pada iterasi ke 10 metode Biseksi lebih KECIL dari selisih rata-rata akar pendekatan dengan rata-rata akar pada iterasi ke 10 metode Regula falsi maka dapat disimpulkan bahwa : 
Metode Biseksi lebih teliti dari metode Regula Falsi karena hanya dengan 10 iterasi, akar metode Biseksi sudah mendekati akar pendekatannya. Ini ditunjukan dengan selisih untuk metode Biseksi yang lebih KECIL dari selisih metode Regula Falsi.
Gambar 20. Tampilan Kesimpulan
Setelah ditampilkan hasil perhitungan metode Biseksi dan metode Regula Falsi serta kesimpulannya, selanjutnya muncul pertanyaan apakah hasil perhitungan akan disimpan di file. Jika menginginkan hasil perhitungan disimpan maka ketikkan ‘y’ atau ‘Y’ selanjutnya ketikkan nama file untuk menyimpannya (misal nama filenya hasil).
Text Box: *************************************************
****Program penyelesaian Persamaan Non-Linear****
***Menggunakan Metode Biseksi dan Regula Falsi***
*************************************************
10 Persamaan || Derajat 2

Simpan hasil perhitungan (Y/T) ? Y
Gambar 21. Tampilan Pertanyaan Simpan Hasil Perhitungan
Text Box: *************************************************
****Program penyelesaian Persamaan Non-Linear****
***Menggunakan Metode Biseksi dan Regula Falsi***
*************************************************
10 Persamaan || Derajat 2

Hasil perhitungan akan disimpan dalam file text
Ketikkan nama filenya  ===>>> hasil
Gambar 22. Tampilan Perintah Ketikkan Nama File
Text Box: *************************************************
****Program penyelesaian Persamaan Non-Linear****
***Menggunakan Metode Biseksi dan Regula Falsi***
*************************************************
10 Persamaan || Derajat 2

Hasil perhitungan sudah disimpan pada file
 ===>>> c:\numerik\hasil.txt
Gambar 23. Tampilan Keterangan Hasil Perhitungan Telah Disimpan
Gambar 24. Hasil Perhitungan Program NUMERIK pada File Hasil.txt
Pertanyaan terakhir yang muncul adalah apakah akan mengulang menjalankan program. Jika menginginkan mengulangi dan melakukan perhitungan lagi maka ketikkan ‘y’ atau ‘Y’ dan program akan kembali ke MENU UTAMA.
Text Box: *************************************************
****Program penyelesaian Persamaan Non-Linear****
***Menggunakan Metode Biseksi dan Regula Falsi***
*************************************************
Apakah akan mengulang (Y/T) ? Y
Gambar 25. Tampilan Pertanyaan Apakah Akan Mengulang
Selanjutnya jika yang dipilih nomor 2 pada MENU UTAMA, maka akan muncul penjelasan tentang program NUMERIK. Tekan ENTER untuk kembali ke MENU UTAMA.
Text Box: < <  B A N T U A N  > >
Program ini berfungsi untuk menentukan salah satu akar penyelesaian persamaan Non-Linier dengan menggunakan metode Numerik yaitu metode Biseksi dan metode Regula Falsi serta mengetahui ketelitian ke dua metode dengan membandingkan selisih antara rata-rata akar pendekatan dengan rata-rata akar pada saat iterasi ke 10.
Untuk dapat mengoperasikannya silahkan pada MENU UTAMA
  - ketik 1 untuk Masuk Program
  - ketik 2 untuk Bantuan Program
  - ketik 3 untuk Keluar Program
Jika menginginkan hasil perhitungan disimpan di file maka pilih "Y" pada pertanyaan Simpan hasil perhitungan (Y/T) ? dan ketikan NAMA FILE nya.
Jika ingin melakukan perhitungan lagi ketikkan "Y" pada pernyataan Apakah akan mengulang (Y/T) ?
                                                               << E N T E R >>
Gambar 26. Tampilan Penjelasan Program Numerik

Jika pada MENU UTAMA dipilih 3 maka program akan berhenti.
Text Box: ##############################
T E R I M A    K A S I H
Bye … !!!
#############################
Gambar 27. Tampilan Terakhir Program Numerik

D.    Perbandingan Metode Biseksi dan Metode Regula Falsi
Setelah dilakukan perbandingan selisih rata-rata akar pendekatan dengan rata-rata akar pada iterasi ke n untuk metode Biseksi dengan metode Regula Falsi dalam menyelesaikan persamaan non-linear khususnya persamaan polinomial satu variabel maka didapat data seperti pada tabel berikut (e = 1 x 10-7 dan n = 10).
Tabel Hasil Perhitungan Selisih untuk Berbagai Jumlah Persamaan dan Derajat Tertinggi
Jumlah Persamaan
Derajat Tertinggi
Selisih rata-rata metode Biseksi
Selisih rata-rata metode Biseksi
100
2
0.0001115879
0.2696024492
75
2
0.0001893593
0.0229433158
50
4
0.0000367736
0.0148569387
50
2
0.0002691039
0.0081416507
25
4
0.0005576837
0.0917223574
25
2
0.0007035599
0.0277696914
10
4
0.0003280580
0.2511075020
10
2
0.0000933324
0.1053634945

Dari contoh-contoh keluaran di atas dengan jumlah persamaan dan derajat tertinggi yang berbeda-beda diperoleh selisih rata-rata akar pendekatan dengan rata-rata akar pada iterasi ke n (iterasi ke 10) untuk metode Biseksi yang selalu lebih kecil dari selisih metode Regula Falsi. Karena selisih metode Biseksi selalu lebih kecil dari selisih metode Regula falsi maka dapat disimpulkan bahwa metode Biseksi lebih dari metode Regula Falsi karena hanya dengan 10 iterasi, akar metode Biseksi sudah mendekati akar pendekatannya.
41
 
BAB V
KESIMPULAN DAN SARAN

A.    Kesimpulan
Dari penelitian yang telah dilakukan diperoleh kesimpulan :
1.      Telah dibuat program komputer yang digunakan untuk menyelesaikan persamaan non-linear khususnya persamaan polinomial satu variabel dengan metode Biseksi. Hasil keluaran dari program yang telah dibuat berupa :
a.       Nilai salah satu akar pendekatan melalui beberapa iterasi sampai lebih kecil dari nilai error yang ditentukan
b.      Nilai error yang didapat
c.       Nilai fungsi dari salah satu akar pendekatan yang diperoleh.
2.      Telah dibuat program komputer yang digunakan untuk menyelesaikan persamaan non-linear khususnya persamaan polinomial satu variabel dengan metode Regula Falsi. Hasil keluaran dari program yang telah dibuat berupa :
a.       Nilai salah satu akar pendekatan melalui beberapa iterasi sampai lebih kecil dari nilai error yang ditentukan
b.      Nilai error yang didapat
c.       Nilai fungsi dari salah satu akar pendekatan yang diperoleh.


3.      Dalam menyelesaikan persamaan non-linear ditinjau dari banyaknya iterasi, metode Biseksi lebih cepat dari metode Regula Falsi. Ini ditunjukan dengan melihat selisih rata-rata akar pendekatan dengan rata-rata akar pada iterasi ke n metode Biseksi yang selalu lebih kecil dari selisih rata-rata akar pendekatan dengan rata-rata akar pada iterasi ke n metode regula Falsi.

B.     Saran
Setelah dilakukan penelitian ini, disarankan :
  1. Program yang telah dibuat dapat dimodifikasi supaya dapat menyelesaikan persamaan non-linear yang berupa persamaan eksponensial, persamaan logaritmik, persamaan sinusoida atau persamaan non-linear yang lain.
  2. Penulisan kode program bisa dilakukan dalam bahasa pemrograman komputer yang lain yang lebih bagus dalam hal grafik dan tingkat kemampuan pengoperasian digit angka.
vii
 
KATA PENGANTAR

Puji syukur penulis panjatkan kehadirat Allah SWT atas rahmat dan nikmat-Nya, sehingga penulis dapat menyelesaikan penyusunan skripsi ini yang berjudul “Penyelesaian Persamaan Non-Linear metode Biseksi dan metode Regula Falsi Menggunakan Cara Komputasi”.
Dalam penyusunan skripsi ini, penulis banyak mendapatkan bimbingan dan bantuan dari berbagai pihak. Oleh karena itu, pada kesempatan ini tidak lupa peneliti menyampaikan terimakasih yang sebesar-besarnya kepada :
1.      Dr. H. Djoko Wahyono, S.U. Apt, Rektor Universitas Muhammadiyah Purwokerto.
2.      Drs. H. Sutomo, M.Si, Dekan Fakultas Keguruan dan Ilmu Pendidikan Universitas Muhammadiyah Purwokerto
3.      Drs. Ahmad, M.Pd, Kaprodi Pendidikan Matematika.
4.      Hindayati Mustafidah, S.Si., M.Kom, Dosen Pembimbing I yang telah memberikan motivasi, pengarahan, saran dan koreksi dalam penyusunan skripsi ini.
5.      Nila Kurniasih, S.Si, M.Si, Dosen Pembimbing II yang telah memberikan motivasi, pengarahan, saran dan koreksi dalam penyusunan skripsi ini.
6.      Semua pihak yang tidak dapat penulis sebutkan satu persatu di sini, yang telah membantu dalam penyelesaian skripsi ini.
Semoga semua bantuan yang telah diberikan menjadi amal di sisi Allah SWT. Akhirnya penulis berharap semoga skripsi ini bermanfaat dalam menunjang perkembangan ilmu pengetahuan dan bermanfaat bagi yang membacanya.
                                                                                       Purwokerto,    Maret 2007
                                                                                                           
                                                                                                      Penulis
DAFTAR ISI
x
 
 

HALAMAN JUDUL …………………………………………………………    i
HALAMAN PENGESAHAN ………….…………………………………….   ii
HALAMAN PERSETUJUAN ……………………………………………….  iii
SURAT PERNYATAAN ……………………………………………………   iv
MOTTO ………………………………………………………………………    v  
PERSEMBAHAN …………………….….…………………………………..   vi  
KATA PENGANTAR ……………………..………………………………… vii  
ABSTRAK ………………………………..…………………………………..  ix
DAFTAR ISI ………………………………..………………………………...   x
DAFTAR GAMBAR ……………………….………………………………... xiii
BAB I          PENDAHULUAN
A.    Latar Belakang ………..……………………………………    1
B.     Perumusan Masalah …..……………………………………    7
C.     Pembatasan Masalah ………………………………………..    7
D.    Tujuan Penelitian ………..…………………………………    7
E.     Manfaat Penelitian ………………………………………….    8

BAB II         LANDASAN TEORI
E.     Persamaan Non-Linear …………….………………………..    9
F.      Metode Numerik ………………………….………………...    9

G.    Penyelesaian Persamaan Non-Linear .....................................  11
1.      Metode Biseksi ..……………………………………….  11
2.      Metode Regula Falsi ……………………………………  12  
H.    Bahasa Pemrograman Pascal ……………………………….  14
1.      Sejarah Pascal    ….……………………………………..  14
2.      Langkah-langkah dalam Pemrograman Komputer ….....  14
3.      Struktur Program Pascal …..............................................  16
4.      Pengambilan Keputusan    ….…………………………..  17
5.      Pengulangan (loop) ……………………………………..  19
6.      Keunggulan Bahasa Pascal …..........................................  20

BAB III       METODOLOGI PENELITIAN
A.    Tempat Penelitian …..………………………………………  21
B.     Alat Penelitian ….…………………………………………..  21  
C.     Langkah-langkah Penelitian ….…………………………….  21
D.    Membandingkan Metode Biseksi dan Metode Regula             Falsi          …..…………………………………………………….  23

BAB IV       HASIL PENELITIAN DAN PEMBAHASAN
A.    Diagram Alir ……………………………………………….  24
B.     Kode Program   ..….………………………………………...  25
C.     Hasil Keluaran ……………………………………………..  27
D.   
xi
 
Perbandingan Metode Biseksi dan Metode Regula Falsi ….. 39
BAB V         KESIMPULAN DAN SARAN
A.    Kesimpulan …………………………………………………  41
B.     Saran ………………………………………………………..  42
DAFTAR PUSTAKA ………………………………………………………..  43
LAMPIRAN
A.   Diagram Alir ………………..…………………………………………….  44
B.    Kode Program …………………………………………………..………...  50
xii
 
 

DAFTAR GAMBAR
xiii
 
 

Gambar  1. Gambar grafik    ……………………………………..    4
Gambar  2. Penyelesaian Persamaan Non-Linear …………………………….  10
Gambar  3. Bentuk-bentuk Grafik Persamaan Linear ………………………… 11
Gambar  4. Bentuk-bentuk Grafik Persamaan Non-Linear …………………..  11
Gambar  5. Metode Biseksi ………………………………………………….  12
Gambar  6. Metode Regula Falsi   ……………………………………………  13
Gambar  7. Tampilan Menu Utama   ………………………………………….  27
Gambar 8. Tampilan Pilihan Jenis Penyelesaian   .............................................  28
Gambar 9. Tampilan Memasukkan Koefisien x dan Nilai Awal x1, x2   .........  28
Gambar 10. Tampilan Hasil Perhitungan Menggunakan Metode Biseksi   ......  29
Gambar 11. Tampilan Hasil Perhitungan Menggunakan
 Metode Regula Falsi  ....................................................................  29
Gambar 12. Tampilan Perintah Memasukkan Jumlah Persamaan dan
 Derajat Tertinggi serta Batas Jumlah Iterasi ................................  30
Gambar 13. Tampilan Pilihan Memasukkan Data   ...........................................  30
Gambar 14. Tampilan Program Menentukan Koefisien serta
 Nilai x1 dan x2 Awal dengan Angka Random …………………. 31
Gambar 15. Tampilan Proses Iterasi Metode Biseksi dan
 Metode Regula Falsi ……………………………………………. 33
Gambar 16. Tampilan Pertanyaan Tampilkan Hasil Perhitungan ……………. 33

Gambar 17. Tampilan Koefisien serta Nilai x1 Awal dan
x2 Awal Persamaan ke 10   ............................................................ 34
Gambar 18. Hasil Perhitungan berupa Salah-satu  akar Penyelesaian   ............ 34
Gambar 19. Hasil Perhitungan berupa Salah-satu  akar pada Iterasi ke 10 .....  35
Gambar 20. Tampilan Kesimpulan    ................................................................. 35
Gambar 21. Tampilan Pertanyaan Simpan Hasil Perhitungan ………………. 36
Gambar 22. Tampilan Perintah Ketikkan Nama File …………………………  36
Gambar 23. Tampilan Keterangan Hasil Perhitungan Telah Disimpan    ……..  36
Gambar 24. Hasil Perhitungan Program NUMERIK pada File Hasil.txt …….  37
Gambar 25. Tampilan Pertanyaan Apakah Akan Mengulang   .........................  38
Gambar 26. Tampilan Penjelasan Program Numerik   ………………………..  38
Gambar 27. Tampilan Terakhir Program Numerik   …………………………..  39
PENYELESAIAN PERSAMAAN NON-LINEAR
 METODE BISEKSI DAN METODE REGULA FALSI
MENGGUNAKAN CARA KOMPUTASI

 








SKRIPSI
Diajukan untuk memenuhi syarat mencapai derajat Sarjana S1
Program Studi Pendidikan Matematika


Disusun Oleh :
MULYONO
0301060025


PROGRAM STUDI PENDIDIKAN MATEMATIKA
FAKULTAS KEGURUAN DAN ILMU PENDIDIKAN
UNIVERSITAS MUHAMMADIYAH PURWOKERTO
2007
DAFTAR PUSTAKA
Alamsyah, MK. 1994. Pelajaran Matematika 1 SMK. Bandung : Armico
Amang. 2006. BAB III. PENYELESAIAN PERSAMAAN NON LINIER.
http://lecturer.eepis-its.edu/~amang/pdf/.
Diakses tanggal 15 November 2006.
Chapra, S. 1996. METODE NUMERIK Jilid 1 Edisi Kedua. Jakarta : Erlangga.
Jogiyanto, HM. 1988a. TURBO PASCAL Versi 5.0 Jilid 1. Yogyakarta : ANDI
Yogyakarta
Jogiyanto, HM. 1988b. TURBO PASCAL Versi 5.0 Jilid 2. Yogyakarta : ANDI
Yogyakarta
Kadir, Abdul. 1997. PEMROGRAMAN PASCAL (Buku 1). Yogyakarta : ANDI
Yogyakarta
Munif, Abd. 1995. Cara Praktis Penguasaan dan Penggunaan Metode Numerik.
                  Jakarta : PT. Guna Widya.
Pranata, Antony. 2002. Algoritma dan Pemrograman. Yogyakarta : J& J Learning
Ruseffendi. 1998. Statistika Dasar untuk Penelitian Pendidikan. Bandung : CV
Andira.
Susy. 2006. BAB 1. Metode Numerik Secara Umum. http://www.malang.ac.id/
e%2Dlearning/FMIPA/Susy%20KA/.
Diakses tanggal 15 November 2006.
Wibowo, dkk. 2007. AKAR PERSAMAAN (ROOT FINDING). http://ft.uns.ac.id/ts/kul_ol/numerik/numerik02_akar.htm
Diakses tanggal 02 Januari 2007.
Wirodikromo, Sartono. 2004. MATEMATIKA Untuk SMA Kelas X. Jakarta :
                  Erlangga.
Zaks, Rodnay. 1988. Pengantar PASCAL Termasuk Torbo Pascal. Jakarta :
43
 
Erlangga
Lampiran 1. Diagram Alir
 





Prosedur perhitungan_utama





 

Lampiran 2. Kode Program NUMERIK

Program metode_biseksi_dan_metode_regula_falsi;
uses crt;

procedure tunggu;
var i:byte;
begin
 for i:=1 to 80 do
 begin
  delay(3000);gotoxy(30,17);textcolor(white+blink);
  write('Silahkan tunggu ... !!!');
  gotoxy(38,20);textcolor(yellow);
  write('[ ',(i/80)*100:0:0,' % ]');
  textcolor(lightblue);
  gotoxy(i,22);write('Û');sound(i*2);
 end;
 nosound;
end;

procedure judul;
begin
 clrscr;textcolor(yellow);
 writeln;writeln;
 writeln('  *********************************************
 ******');
 writeln('  **** Program penyelesaian Persamaan Non-Linier
 ****');
 writeln('  *** Menggunakan Metode Biseksi dan Regula Falsi
 ***');
 writeln('  *********************************************
 ******');
 writeln;
end;

procedure bantuan;
var a,b:byte;
label terakhir;
begin
 clrscr;textcolor(10);
 writeln; writeln;
 writeln('           < <  B A N T U A N  > >           ');
 writeln;
 writeln('      Program ini berfungsi untuk menentukan salah
 satu akar penyelesaian      ');
 writeln('      persamaan Non-Linier dengan menggunakan
 metode Numerik yaitu             ');
 writeln('      metode Biseksi dan metode Regula Falsi serta
 mengetahui ketelitian       ');
 writeln('      ke dua metode dengan membandingkan selisih
 antara rata-rata akar         ');
 writeln('      pendekatan dengan rata-rata akar pada saat
 iterasi ke 10');
 writeln;
 writeln('      Untuk dapat mengoperasikannya silahkan pada
 MENU UTAMA                   ');
 writeln('        - ketik 1 untuk Masuk Program       ');
 writeln('        - ketik 2 untuk Bantuan Program     ');
 writeln('        - ketik 3 untuk Keluar Program      ');
 writeln;
 writeln('      Jika menginginkan hasil perhitungan disimpan
 di file maka                ');
 writeln('      pilih "Y" pada pertanyaan Simpan hasil
 perhitungan (Y/T) ?               ');
 writeln('      dan ketikan NAMA FILE nya.            ');
 writeln;
 writeln('      Jika ingin melakukan perhitungan lagi
 ketikkan "Y" pada pernyataan       ');
 writeln('      Apakah akan mengulang (Y/T) ?         ');
 repeat
 for a:=9 to 15 do
 begin
  textcolor(a);delay(5000);gotoxy(65,25);
  write('<< E N T E R >>');
 end;
 until keypressed;
 readln;
end;

procedure bye_bye;
var a,b,c,x,y:byte;
begin
  clrscr;
  gotoxy(28,12);writeln('   T E R I M A  K A S I H   ');
  gotoxy(28,14);writeln('         Bye ... !!!   ');
  for a:=28 to 56 do
  begin
   delay(5000);
   gotoxy(a,10);textcolor(9+random(6));
   delay(500);writeln('#');
   gotoxy(56+(28-a),16);textcolor(9+random(6));write('#');
   gotoxy(56+(28-a),10);
   textcolor(9+random(6));delay(500);writeln('#');
   gotoxy(a,16);textcolor(9+random(6));write('#');
   end;
  repeat
   clrscr;
   x:=random(55);
   y:=random(25);
   sound(1000);
   delay(5000);
   nosound;
   textcolor(9+random(6));
   gotoxy(x,y);write('Tekan sebarang tombol ... !!!');
   gotoxy(1,25);
   write('                       B y : M U L Y O N O ');
   delay(50000);
   gotoxy(x,y);write('                             ');
  until keypressed;
end;

procedure penyelesaian_metode_biseksi;
var a, b, c, n, derajat_tertinggi, tertinggi_bis, huruf, iterasi_bis : byte;   
x1, nilai_awal_x1, fx1, x2, nilai_awal_x2, fx2, x3, nilai_awal_x3, fx3 : real;
koef,xpangkat,koef_x_xpangkat: array [1..100] of real;

label mengulang_bis;
begin
mengulang_bis:
judul;
writeln('   Penyelesaian Persamaan Non-Linear Menggunakan Metode Biseksi');writeln;
  write('    Masukkan pangkat tertinggi = '); readln(tertinggi_bis);
derajat_tertinggi:=tertinggi_bis;
writeln;
huruf := 97;
writeln('    Menentukan Koefisien x^1, x^2, x^3, ..., x^n');
{menentukan nilai a, b, c, ..., n}
for a:=1 to tertinggi_bis+1 do
 begin
  write('      Nilai ',chr(huruf),' ==>> ');
  readln(koef[a]);
  huruf := huruf + 1;
  if koef[1]=0 then
    begin
    sound(1000);delay(10000);nosound;
    gotoxy(25,25);
    textcolor(lightred);
    write('  a tidak boleh sama dengan nol');
    textcolor(yellow);
    readln;
    goto mengulang_bis;
    end;
 end;
{menentukan nilai awal x1}
writeln;
writeln('    Menentukan 2 Nilai Awal x1 dan x2');
  write('     Masukkan nilai x1 awal ==>> ');readln(x1);
nilai_awal_x1 := x1;
{nilai fungsi untuk x1 awal}
{X PANGKAT 1, 2, 3, 4, .... n}
xpangkat[1] := x1;
for b:=2 to tertinggi_bis do
 begin
 xpangkat[b]:=xpangkat[b-1]*x1;
 end;
{X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA}
c:=derajat_tertinggi;
for b:=1 to tertinggi_bis do
 begin
 koef_x_xpangkat[b]:=koef[b]*xpangkat[c];
 c:=c-1;
 end;
{NILAI FX}
fx1:=koef[tertinggi_bis+1];
for b:=tertinggi_bis downto 1 do
 begin
 fx1:=fx1+koef_x_xpangkat[b];
 end;
{menentukan nilai awal x2}
n:=0;
repeat
 begin
 n:=n+1;
 if n=5 then
   begin
   gotoxy(25,25);sound(1000);delay(10000);nosound;
   textcolor(lightred);
   write('Syarat ==>>  f(x1).f(x2) < 0');
   textcolor(yellow);
   readln;
   goto mengulang_bis;
   end
   else begin
   write('     Masukkan nilai x2 awal ==>> '); readln(x2);
   end; nilai_awal_x2:=x2;

 {nilai fungsi untuk x2 awal}
 {X PANGKAT 1, 2, 3, 4, .... n}
 xpangkat[1] := x2;
 for b:=2 to tertinggi_bis do
  begin xpangkat[b]:=xpangkat[b-1]*x2; end;
 {X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA}
 c:=derajat_tertinggi;
 for b:=1 to tertinggi_bis do
 begin
  koef_x_xpangkat[b]:=koef[b]*xpangkat[c]; c:=c-1;
 end;


 {NILAI FX}
 fx2:=koef[tertinggi_bis+1];
 for b:=tertinggi_bis downto 1 do
  begin fx2:=fx2+koef_x_xpangkat[b]; end;
 end;
until (fx1*fx2)<0;
readln;

judul;
{METODE BISEKSI}
iterasi_bis:=0; fx3:=0;
repeat
 begin
 x3:=(x1+x2)/2;
 {nilai fungsi untuk x3}
 {X PANGKAT 1, 2, 3, 4, .... n}
 xpangkat[1] := x3;
 for b:=2 to tertinggi_bis do
  begin xpangkat[b]:=xpangkat[b-1]*x3; end;
 {X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA}
 c:=derajat_tertinggi;
 for b:=1 to tertinggi_bis do
 begin koef_x_xpangkat[b]:=koef[b]*xpangkat[c]; c:=c-1; end;
 {NILAI FX}
 fx3:=koef[tertinggi_bis+1];
 for b:=tertinggi_bis downto 1 do
  begin fx3:=fx3+koef_x_xpangkat[b]; end;
end;
if (fx3*fx1)<0 then
 begin x2:=x3; end
else
 begin x1:=x3; end;

iterasi_bis:=iterasi_bis+1;
gotoxy(1,8);write('    Hasil Perhitungan Menggunakan Metode Biseksi');
gotoxy(1,10);write('     Salah satu akar pendekatannya adalah ',x3:1:15);
gotoxy(1,12);write('     diperoleh pada iterasi ke  ',iterasi_bis);
gotoxy(1,14);write('     dengan error     = ',abs(fx3):25:15,' (î = 1E-7)');
gotoxy(1,16);write('     nilai fungsinya  = ',fx3:25:15);
until abs(fx3)<1e-7;
readln;
end;

procedure penyelesaian_metode_regula_falsi;
var a, b, c, n, derajat_tertinggi, tertinggi_reg, huruf, iterasi_reg : byte;
x1, nilai_awal_x1, fx1, x2, nilai_awal_x2, fx2, x3, nilai_awal_x3, fx3 : real;
koef,xpangkat,koef_x_xpangkat: array [1..100] of real;
label mengulang_reg;
begin mengulang_reg:
judul;
writeln('   Penyelesaian Persamaan Non-Linear Menggunakan Metode Regula Falsi');writeln;
  write('    Masukkan pangkat tertinggi = '); readln(tertinggi_reg);
derajat_tertinggi:=tertinggi_reg;
writeln; huruf := 97;
writeln('    Menentukan Koefisien x^1, x^2, x^3, ..., x^n');
{menentukan nilai a, b, c, ..., n}
for a:=1 to tertinggi_reg+1 do
 begin
  write('      Nilai ',chr(huruf),' ==>> '); eadln(koef[a]);
  huruf := huruf + 1;
  if koef[1]=0 then
    begin sound(1000); delay(10000); nosound; gotoxy(25,25);
    textcolor(lightred);
    write('  a tidak boleh sama dengan nol');
    textcolor(yellow); readln;
    goto mengulang_reg;end;
 end;
{menentukan nilai awal x1}
writeln;
writeln('    Menentukan 2 Nilai Awal x1 dan x2');
  write('    Masukkan nilai x1 awal ==>> ');readln(x1);
nilai_awal_x1 := x1;
{nilai fungsi untuk x1 awal}
{X PANGKAT 1, 2, 3, 4, .... n}
xpangkat[1] := x1;
for b:=2 to tertinggi_reg do
 begin xpangkat[b]:=xpangkat[b-1]*x1; end;
{X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA}
c:=derajat_tertinggi;
for b:=1 to tertinggi_reg do
 begin koef_x_xpangkat[b]:=koef[b]*xpangkat[c]; c:=c-1; end;
{NILAI FX}
fx1:=koef[tertinggi_reg+1];
for b:=tertinggi_reg downto 1 do
 begin fx1:=fx1+koef_x_xpangkat[b]; end;
{menentukan nilai awal x2}
n:=0;
repeat
 begin n:=n+1;
 if n=5 then
   begin gotoxy(25,25);sound(1000);delay(10000);nosound;
   textcolor(lightred);
   write('Syarat ==>>  f(x1).f(x2) < 0');
   textcolor(yellow); readln; goto mengulang_reg; end
   else
   begin
   write('    Masukkan nilai x2 awal ==>> '); readln(x2);
   end;
   nilai_awal_x2:=x2;
 {nilai fungsi untuk x2 awal}
 {X PANGKAT 1, 2, 3, 4, .... n}
 xpangkat[1] := x2;
 for b:=2 to tertinggi_reg do
  begin xpangkat[b]:=xpangkat[b-1]*x2; end;
 {X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA}
 c:=derajat_tertinggi;
 for b:=1 to tertinggi_reg do
 begin koef_x_xpangkat[b]:=koef[b]*xpangkat[c]; c:=c-1; end;
 {NILAI FX}
 fx2:=koef[tertinggi_reg+1];
 for b:=tertinggi_reg downto 1 do
  begin fx2:=fx2+koef_x_xpangkat[b]; end;
 end;
until (fx1*fx2)<0;
readln;
judul;
{METODE REGULA FALSI}
iterasi_reg:=0; fx3:=0;
repeat
 begin x3:=(x2-(fx2/(fx2-fx1))*(x2-x1));
 {nilai fungsi untuk x3}
 {X PANGKAT 1, 2, 3, 4, .... n}
 xpangkat[1] := x3;
 for b:=2 to tertinggi_reg do
  begin xpangkat[b]:=xpangkat[b-1]*x3; end;
 {X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA}
 c:=derajat_tertinggi;
 for b:=1 to tertinggi_reg do
 begin koef_x_xpangkat[b]:=koef[b]*xpangkat[c]; c:=c-1; end;
 {NILAI FX}
 fx3:=koef[tertinggi_reg+1];
 for b:=tertinggi_reg downto 1 do
  begin fx3:=fx3+koef_x_xpangkat[b]; end;
end;
if (fx3*fx1)<0 then
 begin x2:=x3; end
else
 begin x1:=x3; end;
iterasi_reg:=iterasi_reg+1;
gotoxy(1,8);write('    Hasil Perhitungan Menggunakan Metode Regula Falsi');
gotoxy(1,10);write('     Salah satu akar pendekatannya adalah ',x3:1:15);
gotoxy(1,12);write('     diperoleh pada iterasi ke  ',iterasi_reg);
gotoxy(1,14);write('     dengan error     = ',abs(fx3):25:15,' (î = 1E-7)');
gotoxy(1,16);write('     nilai fungsinya  = ',fx3:25:15);
until abs(fx3)<1e-7;
readln; end;
procedure memasukan_jumlah_persamaan_dan_derajat_tertinggi (var jum,pangkat,batas : longint);
begin
  clrscr; judul;
  write('      Masukkan jumlah persamaan     ==>> ');
  readln(jum);
  write('      Masukkan derajat tertinggi    ==>> ');
  readln(pangkat);
  write('      Masukkan batas jumlah Iterasi ==>> ');
  readln(batas);
end;
procedure tampil_derajat (var jum,pangkat:longint);
begin
 gotoxy(1,7);
 writeln('                 ',jum,' Persamaan || Derajat ',
 pangkat); gotoxy(1,7); writeln;
end;
procedure pilihan_input(var pil_input:char);
begin
repeat
 judul; writeln;
 writeln('     P i l i h a n   M a s u k k a n  ');
 writeln;
 writeln('      1. Masukkan dari Keyboard');
 writeln('      2. Masukkan berupa angka Random'); writeln;
   write('     Pilihan ==>> '); readln(pil_input);
 if (pil_input='1') or (pil_input='2') then
 begin end
 else
 begin gotoxy(18,24);
  write(' Pilihan hanya 1 dan 2, Silahkan ulangi !!! ');
  delay(20000);
 end;
until (pil_input='1') or (pil_input='2')end;

procedure perbandingan_utama (var jum,pangkat,batas : longint);
var a, b, c {Variabel untuk mengulang},
    n {Stop jika tidak menemukan nilai awal x2 },
    derajat {Derajat dari persamaan Non-Linier},
    huruf {Menampilkan nilai a, b, c, ... } : integer;
    fx1 {Nilai fungsi untuk awal x1},
    fx2 {Nilai fungsi untuk awal x2},
    x1, x2 { Nilai awal x1 dan x2},
    nilai_awal_x1, nilai_awal_x2 {Nilai awal x1 dan x2 untuk
    ke 2 metode }, errorbis {Error dari metode Biseksi},
    iterasibis {Jumlah iterasi metode Biseksi},
    x1bis, x2bis, x3bis {Nilai x1, x2, x3 metode Biseksi},
    fx1bis, fx2bis, fx3bis {Nilai fungsi x1, x2, x3 metode
    Biseksi}, errorreg {Error dari metode Regula Falsi},
    iterasireg {Jumlah iterasi metode Regula Falsi},
    x1reg, x2reg, x3reg {Nilai x1, x2, x3 metode Regula
    Falsi}, fx1reg, fx2reg, fx3reg {Nilai fungsi x1, x2, x3
    metode Regula Falsi}, 
    akar_iterasi_ke10_yg_dibandingkan_bis,
    akar_iterasi_ke10_yg_dibandingkan_reg {akar untuk
    perbandingan}, fx3bissebelum, fx3bisterakhir, 
    fx3regsebelum, fx3regterakhir: array [1..100] of double;
    koef {Nilai a, b, c, ..., n},
    xpangkat {Nilai x^n untuk x1, x2, x3},
    koef_x_xpangkat {Nilai x^n dikalikan dengan
    koefisiennya} : array [1..100, 1..10] of double;
    fileku  {Variabel file text}   : text;
    nama_file {Nama file penyimpanan hasil perhitungan},
    besar_kecil{kondisi rata2 error iterasi ke 10} : string;
    drive {Drive letak file text}   : integer;
    directory {Direktori letak file text}  : string[20];
    jum_akar_ke10_bis,jum_akar_ke10_reg,
    jum_akar_bis,jum_akar_reg,
    rata2_akar_bis_iterasi_ke10,rata2_akar_reg_iterasi_ke10,
    rata2_akar_bis,rata2_akar_reg,
    selisih_rata2_bis,selisih_rata2_reg    : double;
    random1,random2,random3 {angka random dari 0 sampai
    dengan 100}       : integer;
    angka_random_real       : real;
    pil_tampil {pilihan untuk menampilan hasil perhitungan},
    pil_simpan {pilihan untuk menyimpan hasil perhitungan},
    pil_input {pilihan untuk input data}     : char;

label 1,2,mengulang;

begin
  derajat := pangkat;  pilihan_input(pil_input);
  for a:=1 to jum do
  begin
    mengulang:
    clrscr;judul;tampil_derajat(jum,pangkat);writeln;
    writeln('              Persamaan ke ',a,' dari ',jum,'
    persamaan'); writeln;  huruf := 97;
    writeln('              Menentukan Koefisien x^1, x^2,
    x^3, ..., x^n');
    {menentukan nilai a, b, c, ..., n}
    for b:=1 to derajat+1 do
    begin
      random1:=random(100); random2:=random(100);
      random3:=random(100);
      angka_random_real:=(random1-random2)/(random3+1);
      if pil_input = '2' then
      begin
       koef[a,b]:=angka_random_real;
       gotoxy(10,13); writeln('                Nilai ',
       chr(huruf),' ==>>                           ');
       gotoxy(10,13); writeln('                Nilai ',
       chr(huruf),' ==>> ',koef[a,b]:6:2);
      end
      else
      begin gotoxy(10,13);
      write('                Nilai ',chr(huruf),' ==>> ');
       gotoxy(10,13); write('  Nilai ',chr(huruf),' ==>> ');
       readln(koef[a,b]);
      end;
      huruf := huruf + 1;
      if koef[a,1]=0 then
      begin
        if pil_input = '2' then
        begin goto mengulang;  end
        else
        begin  sound(1000);delay(10000);nosound;
          gotoxy(25,25);  textcolor(lightred);
          write('  a tidak boleh sama dengan nol');
          textcolor(yellow); readln; goto mengulang; end;
      end;
    end;
   {menentukan nilai awal x1 dan x2}
   begin writeln;
    writeln('           Menentukan 2 Nilai Awal x1 dan x2');
    random1:=random(100); random2:=random(100);
    random3:=random(100); angka_random_real:=(random1-
    random2)/(random3+1);
    if pil_input = '2' then
    begin
     x1[a]:=angka_random_real; gotoxy(10,17);
     writeln('  Menentukan nilai x1 awal ==>>    ');
     gotoxy(10,17);
     writeln('  Menentukan nilai x1 awal ==>> ',x1[a]:6:2);
    end
    else
    begin
     gotoxy(10,17);
     write('     Menentukan nilai x1 awal ==>>     ');
     gotoxy(10,17);
     write('     Menentukan nilai x1 awal ==>> ');
     readln(x1[a]);
    end;
    nilai_awal_x1[a] := x1[a];

    {nilai fungsi untuk x1 awal}
    {X PANGKAT 1, 2, 3, 4, .... n}
    xpangkat[a,1] := x1[a];
    for c:=2 to derajat do
    begin xpangkat[a,c]:=xpangkat[a,c-1]*x1[a]; end;
    {X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA}
    c:=pangkat;
    for b:=1 to derajat do
    begin koef_x_xpangkat[a,b]:=koef[a,b]*xpangkat[a,c];
      c:=c-1; end;
    {NILAI FX}
    fx1[a]:=koef[a,derajat+1];
    for b:=derajat downto 1 do
    begin  fx1[a]:=fx1[a]+koef_x_xpangkat[a,b]; end;
   end;
    n:=0;
    repeat
    begin
      n:=n+1;
      if n=5 then
      begin
        if pil_input='2' then begin end
        else
        begin
          gotoxy(25,25);sound(1000);delay(10000);nosound;
          textcolor(lightred);
          write('Syarat ==>>  f(x1).f(x2) < 0');
          textcolor(yellow); readln;
        end; goto mengulang;
      end
      else random1:=random(100);
      random2:=random(100); random3:=random(100);
      angka_random_real:=(random1-random2)/(random3+1);
      if pil_input = '2' then
      begin  x2[a]:=angka_random_real;
      gotoxy(10,19);
      writeln('        Menentukan nilai x2 awal ==>>    ');
      gotoxy(10,19);
      writeln('        Menentukan nilai x2 awal ==>> ',
      x2[a]:6:2); end
      else begin
      gotoxy(10,19);
      write('          Menentukan nilai x2 awal ==>>     ');
      gotoxy(10,19);
      write('          Menentukan nilai x2 awal ==>> ');
      readln(x2[a]);
      end;
      nilai_awal_x2[a]:=x2[a];
      {nilai fungsi untuk x2 awal}
      {X PANGKAT 1, 2, 3, 4, .... n}
      xpangkat[a,1] := x2[a];
      for c:=2 to derajat do
      begin  xpangkat[a,c]:=xpangkat[a,c-1]*x2[a]; end;
      {X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA}
      c:=derajat;  koef_x_xpangkat[a,1]:=1;
      for b:=1 to derajat do
      begin koef_x_xpangkat[a,b]:=koef[a,b]*xpangkat[a,c];
        c:=c-1; end;
      {NILAI FX} fx2[a]:=koef[a,derajat+1];
      for b:=derajat downto 1 do
      begin fx2[a]:=fx2[a]+koef_x_xpangkat[a,b];end;
      end;
    until (fx1[a]*fx2[a])<0;
  end;
  readln;
  clrscr;judul;tampil_derajat(jum,pangkat);
  {perhitungan metode biseksi dan metode regula falsi}
  for a:=1 to jum do
  begin
    {METODE BISEKSI}
    iterasibis[a]:=0; x1bis[a]:=x1[a]; x2bis[a]:=x2[a];
    fx1bis[a]:=fx1[a]; fx2bis[a]:=fx2[a]; fx3bis[a-1]:=0;
    repeat
    begin x3bis[a]:=(x1bis[a]+x2bis[a])/2;
      {nilai fungsi untuk x3}
      {X PANGKAT 1, 2, 3, 4, .... n}
      xpangkat[a,1] := x3bis[a];
      for c:=2 to derajat do
      begin  xpangkat[a,c]:=xpangkat[a,c-1]*x3bis[a]; end;
      {X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA}
      c:=derajat;
      for b:=1 to derajat do
      begin koef_x_xpangkat[a,b]:=koef[a,b]*xpangkat[a,c];
        c:=c-1; end;
      {NILAI FX}
      fx3bis[a]:=koef[a,derajat+1];
      for b:=derajat downto 1 do
      begin fx3bis[a]:=fx3bis[a]+koef_x_xpangkat[a,b]; end;
      if (fx3bis[a]*fx1bis[a])<0 then
      begin x2bis[a]:=x3bis[a]; end
      else
      begin  x1bis[a]:=x3bis[a];  end;
      fx3bissebelum[a]:=fx3bis[a-1];
      fx3bisterakhir[a]:=fx3bis[a];
      gotoxy(30,16);textcolor(5);write('     0.0000001');
      gotoxy(30,17);textcolor(lightred);
      write(abs(fx3bisterakhir[a]-fx3bissebelum[a]):25:22);
    end;
    if iterasibis[a] = batas then
       begin
       akar_iterasi_ke10_yg_dibandingkan_bis[a] := x3bis[a];
       end;
    errorbis[a]:=(fx3bisterakhir[a]-fx3bissebelum[a]);
    gotoxy(30,10);textcolor(9+random(6));
    write('Silahkan tunggu ... !!!');
    gotoxy(30,12);textcolor(9+random(6));
    write('    Persamaan Ke ',a);
    gotoxy(21,14);textcolor(white);
    write('Iterasi metode Biseksi ke      =',
    iterasibis[a]:10:0);
    iterasibis[a]:=iterasibis[a]+1;
    until abs(fx3bis[a])<1e-7;

    {METODE REGULA FALSI}
    iterasireg[a]:=0; x1reg[a]:=x1[a]; x2reg[a]:=x2[a];
    fx1reg[a]:=fx1[a]; fx2reg[a]:=fx2[a];
    fx3reg[a-1]:=0;
   repeat
    begin  x3reg[a]:=((x1reg[a]*fx2reg[a])-
     (x2reg[a]*fx1reg[a]))/(fx2reg[a]-fx1reg[a]);
      {nilai fungsi untuk x3}
      {X PANGKAT 1, 2, 3, 4, .... n}
      xpangkat[a,1] := x3reg[a];
      for c:=2 to derajat do
      begin xpangkat[a,c]:=xpangkat[a,c-1]*x3reg[a]; end;
      {X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA}
      c:=derajat;
      for b:=1 to derajat do
      begin koef_x_xpangkat[a,b]:=koef[a,b]*xpangkat[a,c];
        c:=c-1;  end;
      {NILAI FX}
      fx3reg[a]:=koef[a,derajat+1];
      for b:=derajat downto 1 do
      begin fx3reg[a]:=fx3reg[a]+koef_x_xpangkat[a,b];end;
      if (fx3reg[a]*fx1reg[a])<0 then
      begin x2reg[a]:=x3reg[a]; end
      else
      begin  x1reg[a]:=x3reg[a]; end;
      fx3regsebelum[a]:=fx3reg[a-1];
      fx3regterakhir[a]:=fx3reg[a];
      gotoxy(30,21);textcolor(5);write('     0.0000001');
      gotoxy(30,22);textcolor(lightred);
      write(abs(fx3regterakhir[a]-fx3regsebelum[a]):25:22);
    end;
    {jumlah akar sampai iterasi ke 10}
    if iterasireg[a] = batas then
       begin
       akar_iterasi_ke10_yg_dibandingkan_reg[a] := x3reg[a];
       end;
    gotoxy(30,10);textcolor(9+random(6));
    write('Silahkan tunggu ... !!!');
    gotoxy(30,12);textcolor(9+random(6));
    write('    Persamaan Ke ',a);
    gotoxy(21,19);textcolor(white);
    write('Iterasi metode Regula Falsi ke =',
    iterasireg[a]:10:0);
    errorreg[a]:=(fx3regterakhir[a]-fx3regsebelum[a]);
    iterasireg[a]:=iterasireg[a]+1;
    until abs(fx3reg[a])<1e-7;
  end;
 readln;
 begin clrscr; derajat:=pangkat;
  repeat
  judul;tampil_derajat(jum,pangkat);writeln;
  write('     Tampilkan Hasil perhitungan (Y/T) ? ');
  readln(pil_tampil);
  until (pil_tampil='y') or (pil_tampil='Y') or
  (pil_tampil='t') or (pil_tampil='T');
  if (pil_tampil='y') or (pil_tampil='Y') then
     begin
     writeln('      Jumlah Persamaan  = ',jum);
     writeln('      Derajat Tertinggi = ',pangkat);
     writeln;
     {tampilkan koefisien setiap persamaan}
     for a:=1 to jum do
         begin
         clrscr;judul;tampil_derajat(jum,pangkat);writeln;
         writeln('      Persamaan Ke = ',a,' (x1 awal = ',
         nilai_awal_x1[a]:0:2,' dan x2 awal = ',
         nilai_awal_x2[a]:0:2,')');
         huruf:=97;
         for b:=1 to derajat+1 do
             begin
             writeln('      Nilai ',chr(huruf),' = ',
             koef[a,b]:6:2);  huruf:=huruf+1; end;
         gotoxy(55,25);write('Tekan tombol ENTER ...!!!');
         readln;   end;    clrscr;
     {tampilkan akar persamaan dengan î = 1E-7}
     judul;tampil_derajat(jum,pangkat);writeln;
     writeln('       Salah satu akar penyelesaiannya');
     writeln('       ======================================
     =================');
     writeln('       | Pers. | Metode Biseksi      
     | Metode Regula Falsi  |');
     writeln('       ======================================
     =================');
     jum_akar_bis:=0; jum_akar_reg:=0;
     for a:=1 to jum do
       begin if (a mod 10)=0 then  begin
       writeln('       | ',a:4,'  | ',x3bis[a]:19:15,
       '  |',x3reg[a]:20:15,'  |'); readln; end
       else begin
       writeln('       | ',a:4,'  | ',x3bis[a]:19:15,
       '  |',x3reg[a]:20:15,'  |'); end;
       jum_akar_bis:= jum_akar_bis+x3bis[a];
       jum_akar_reg:= jum_akar_reg+x3reg[a];
       end;
     rata2_akar_bis:=jum_akar_bis/jum;
     rata2_akar_reg:=jum_akar_reg/jum;
     writeln('       ======================================
     =================');
     writeln('       | Rata2 | ', rata2_akar_bis:19:15,
     '  |',rata2_akar_reg:20:15,'  |');
     writeln('       ======================================
     ================='); readln;
     {tampilkan akar persamaan pada saat iterasi ke 10}
     judul;tampil_derajat(jum,pangkat);writeln;
     writeln('  Akar penyelesaian pada saat iterasi ke ',
     batas:0);
     writeln('       ======================================
     =================');
     writeln('       | Pers. | Metode Biseksi       | Metode
     Regula Falsi  |');
     writeln('       ======================================
     =================');
     jum_akar_ke10_bis:=0; jum_akar_ke10_reg:=0;
     for a:=1 to jum do
       begin if (a mod 10)=0 then   begin
       writeln('       | ',a:4,'  | ',
       akar_iterasi_ke10_yg_dibandingkan_bis[a]:19:15,
       '  |',akar_iterasi_ke10_yg_dibandingkan_reg[a]:20:15,
       '  |');  readln;  end
       else  begin
       writeln('       | ',a:4,'  | ',
       akar_iterasi_ke10_yg_dibandingkan_bis[a]:19:15,'  |',
       akar_iterasi_ke10_yg_dibandingkan_reg[a]:20:15,
       '  |'); end;
       jum_akar_ke10_bis:= jum_akar_ke10_bis+akar_iterasi_
       ke10_yg_dibandingkan_bis[a];
       jum_akar_ke10_reg:= jum_akar_ke10_reg+akar_iterasi_
       ke10_yg_dibandingkan_reg[a];  end;
     rata2_akar_bis_iterasi_ke10:=jum_akar_ke10_bis/jum;
     rata2_akar_reg_iterasi_ke10:=jum_akar_ke10_reg/jum;
     writeln('       =====================================
     ==================');
     writeln('       | Rata2 | ', rata2_akar_bis_iterasi
     _ke10:19:15,'  |',rata2_akar_reg_iterasi_ke10:20:15,
     '  |');
     writeln('       ===================================
     ====================');  readln;
     selisih_rata2_bis:=rata2_akar_bis-
     rata2_akar_bis_iterasi_ke10;
     selisih_rata2_reg:=rata2_akar_bis-
     rata2_akar_reg_iterasi_ke10;
     if abs(selisih_rata2_bis) < abs(selisih_rata2_bis) then
       begin besar_kecil:='BESAR' end
     else
       begin besar_kecil:='KECIL' end;
     {menampilkan kesimpulan}
     judul;tampil_derajat(jum,pangkat);writeln;
     writeln('            K E S I M P U L A N ');writeln;
     writeln('   Selisih metode Biseksi      = ',
     abs(selisih_rata2_bis):15:15);
     writeln('   Selisih metode Regula Falsi = ',
     abs(selisih_rata2_reg):15:15);writeln;
     writeln('   Karena selisih rata-rata akar pendekatan
     dengan rata-rata');
     writeln('   akar pada iterasi ke ',batas:0,' metode
     Biseksi lebih ',besar_kecil);
     writeln('   dari selisih rata-rata akar pendekatan
     dengan rata-rata ');
     writeln('   akar pada iterasi ke ',batas:0,' metode
     Regula falsi, maka dapat ');
     writeln('   disimpulkan bahwa :  ');
     writeln('   Metode Biseksi lebih teliti dari metode
     Regula Falsi karena');
     writeln('   hanya dengan 10 iterasi, akar metode
     Biseksi sudah mendekati');
     writeln('   akar pendekatannya. Ini ditunjukan dengan
     selisih untuk metode');
     writeln('   Biseksi yang lebih ',besar_kecil,' dari
     selisih metode '); writeln('   Regula Falsi');  readln;
    end
  else clrscr;
  repeat judul;tampil_derajat(jum,pangkat);writeln;
  write('      Simpan hasil perhitungan (Y/T) ? ');
  readln(pil_simpan);
  until (pil_simpan='y') or (pil_simpan='Y') or
  (pil_simpan='t') or (pil_simpan='T');
  if (pil_simpan='y') or (pil_simpan='Y') then
  begin
  {$i-}
  ChDir('c:\numerik');{ Cek Keberadaan Folder c:\numerik\ }
  if IOResult <> 0 then       { Jika tidak ada }
   begin mkdir('c:\numerik'); { Buat Folder c:\numerik }
   end;
  clrscr; judul;tampil_derajat(jum,pangkat);writeln;
  writeln('      Hasil perhitungan akan disimpan dalam file
  text');
    write('      Ketikan nama filenya  ===>>> ');
  readln(nama_file); assign(fileku,nama_file + '.txt');
  rewrite(fileku); writeln(fileku,
  '*****************************************************');
  writeln(fileku, '** Hasil Program Penyelesaian Persamaan
  Non-Linier **');
  writeln(fileku,
  '*****************************************************');
  writeln(fileku);
  writeln(fileku, 'Jumlah Persamaan  = ', jum);
  writeln(fileku, 'Pangkat Tertinggi = ', pangkat);
  writeln(fileku); derajat:=pangkat;

  write(fileku,
  '=========================================================
  ==================================================');
  writeln(fileku,'=========================================
  ==========================================================
  =======');
  for a:=1 to jum do
  begin
   huruf:=97;
   write(fileku, 'Persamaan ke ',a:4,' ==>> dengan x1
   awal = ',x1[a]:6:2,', x2 awal = ',x2[a]:6:2, ' dan
   nilai ');
   for b:=1 to derajat+1 do
   begin write(fileku,chr(huruf),' = ',koef[a,b]:6:2,', ');
    huruf:=huruf+1; end; writeln(fileku); end;  write(fileku,'===========================================================================================================');
writeln(fileku,'=========================================================================================================='); writeln(fileku);
 writeln(fileku,'  S A L A H   S A T U   A K A R   P E N Y E L E S A I A N');
writeln(fileku,'===================================================================================================');
writeln(fileku,'| Pers. |     Metode Biseksi                     |     Metode Regula Falsi                        |');
writeln(fileku,'===================================================================================================');
  jum_akar_bis:=0; jum_akar_reg:=0;
  for a:=1 to jum do
  begin
   writeln(fileku, '| ',a:4,'  | ',x3bis[a]:19:15,'  
  (Iterasi ',iterasibis[a]:7:0,') |',x3reg[a]:25:15,'  
  (Iterasi ',iterasireg[a]:10:0,') |');
   jum_akar_bis:= jum_akar_bis+x3bis[a];
   jum_akar_reg:= jum_akar_reg+x3reg[a];
  end;
  rata2_akar_bis:=jum_akar_bis/jum;
  rata2_akar_reg:=jum_akar_reg/jum;
writeln(fileku,'===================================================================================================');
writeln(fileku,'| Rata2 | ', rata2_akar_bis:19:15,'   | ',
rata2_akar_reg:24:15,'                       |');
writeln(fileku,'======================================================================================');
writeln(fileku);
writeln(fileku,'  A K A R   P E N Y E L E S A I A N (Pada saat iterasi ke ',batas:0,')');
writeln(fileku,'======================================================================================');
writeln(fileku,'| Pers. |     Metode Biseksi                |     Metode Regula Falsi                |');
writeln(fileku,'======================================================================================');
  jum_akar_ke10_bis:=0;  jum_akar_ke10_reg:=0;
  for a:=1 to jum do
  begin
   writeln(fileku, '| ',a:4,'  | ',
   akar_iterasi_ke10_yg_dibandingkan_bis[a]:19:15,' 
   (Iterasi ',batas:0,') |',
   akar_iterasi_ke10_yg_dibandingkan_reg[a]:25:15,' 
   (Iterasi ',batas:0,') |');
   jum_akar_ke10_bis:= jum_akar_ke10_bis+akar_iterasi
   _ke10_yg_dibandingkan_bis[a];
   jum_akar_ke10_reg:= jum_akar_ke10_reg+akar_iterasi
   _ke10_yg_dibandingkan_reg[a];
  end;
  rata2_akar_bis_iterasi_ke10:=jum_akar_ke10_bis/jum;
  rata2_akar_reg_iterasi_ke10:=jum_akar_ke10_reg/jum;
writeln(fileku,'======================================================================================');
writeln(fileku,'| Rata2 | ', rata2_akar_bis_iterasi_ke10:19:15,'               | ',
rata2_akar_reg_iterasi_ke10:24:15,'               |');
writeln(fileku,'======================================================================================');
writeln(fileku);
selisih_rata2_bis:=rata2_akar_bis-
rata2_akar_bis_iterasi_ke10;
selisih_rata2_reg:=rata2_akar_bis-
rata2_akar_reg_iterasi_ke10;
writeln(fileku,'Selisih rata-rata akar pendekatan dengan rata-rata akar pada iterasi ke 10 metode Biseksi      = ',
abs(selisih_rata2_bis):1:10);
writeln(fileku,'Selisih rata-rata akar pendekatan dengan rata-rata akar pada iterasi ke 10 metode Regula Falsi = ',
abs(selisih_rata2_reg):1:10);writeln(fileku);
if abs(selisih_rata2_bis) < abs(selisih_rata2_bis) then
  begin besar_kecil:='BESAR' end
else begin besar_kecil:='KECIL' end;
writeln(fileku,' Karena selisih rata-rata akar pendekatan dengan rata-rata akar pada ');
writeln(fileku,' iterasi ke ',batas:0,' metode Biseksi lebih ',besar_kecil,' dari selisih rata-rata');
writeln(fileku,' akar pendekatan dengan rata-rata akar pada iterasi ke ',batas:0,' metode Regula falsi');
writeln(fileku,' maka dapat disimpulkan bahwa : ');
writeln(fileku,' Metode Biseksi lebih teliti dari metode Regula Falsi karena');
writeln(fileku,' hanya dengan ',batas:0,' iterasi, akar metode Biseksi sudah mendekati akar pendekatannya');
writeln(fileku,' ini ditunjukan dengan selisih untuk metode Biseksi yang lebih ',besar_kecil,' dari ');
writeln(fileku,' selisih metode Regula Falsi');
writeln(fileku);writeln(fileku,' Selesai ...... !!!!');
append(fileku); close(fileku);
  judul;  drive:=0; getdir(drive,directory);  writeln;
  writeln(' Hasil perhitungan sedang disimpan pada file ');
  writeln;
  writeln('      ===>>> ',directory,'\',nama_file,'.txt');
  tunggu;  judul;  textcolor(lightred);
  writeln(' Hasil perhitungan sudah disimpan pada file ');
  writeln;
  writeln('      ===>>> ',directory,'\',nama_file,'.txt');
  gotoxy(55,25);textcolor(yellow);
  write('Tekan tombol ENTER ...!!!');
  readln; end
  else end
end;

{ P R O G R A M  U T A M A }
var
   n,jum, pangkat,batas         : longint;
   pil,pil_ulang,pil_penyelesaian :char;
label ulang,ulangi,keluar;

begin
  ulangi: n:=0;
  repeat
  begin
   judul;
   {menu utama}
   writeln('  < < <  M E N U   U T A M A  > > >'); writeln;
   writeln('   1. Masuk ');
   writeln('   2. Bantuan ');
   writeln('   3. Keluar ');
   writeln; write('  Pilihan (1/2/3) ==>> '); readln(pil);
  end;
  if (pil='1') or (pil='2') or (pil='3') then
  begin end
  else
  begin
      gotoxy(15,24);sound(1000);delay(10000);nosound;
      textcolor(lightred);
     write('Pilihan hanya 1, 2 dan 3, Silahkan ulangi !! ');
      textcolor(yellow); readln; end;
  until (pil='1') or (pil='2') or (pil='3');
  if (pil = '2') then
  begin
    judul; bantuan; goto ulangi; end
  else if (pil = '3') then begin goto keluar; end
  else
  ulang: judul;writeln('   Silahkan pilih !!!'); writeln;
  writeln('   1. Penyelesaian Persamaan Non-Linier
  Menggunakan Metode Biseksi');writeln;
  writeln('   2. Penyelesaian Persamaan Non-Linier
  Menggunakan Metode Regula Falsi');writeln;
  writeln('   3. Penyelesaian Metode Biseksi dan Metode
  Regula Falsi ');
  writeln('      untuk mengetahui ketelitiannya');writeln;
  write('   Pilihan (1/2/3) ==>> ');
  readln(pil_penyelesaian);
  if pil_penyelesaian = '1' then
     penyelesaian_metode_biseksi
  else if pil_penyelesaian = '2' then
     penyelesaian_metode_regula_falsi
  else
  begin
  memasukan_jumlah_persamaan_dan_derajat_tertinggi
  (jum,pangkat,batas);
  perbandingan_utama(jum,pangkat,batas);
  writeln;  writeln; end;
  repeat
  judul; write('     Apakah akan mengulang (Y/T) ? ');
  readln(pil_ulang);
  until (pil_ulang='y') or (pil_ulang='Y') or
  (pil_ulang='t') or (pil_ulang='T');
  if (pil_ulang='y') or (pil_ulang='Y') then
  begin goto ulangi; end
  else
  keluar: bye_bye;
end.      {akhir program utama}

xiv
 
viii
 
xiv
 
 





1 komentar:

{ Utiyah Arofah } at: July 16, 2014 at 4:53 AM said...

Terima kasih postingannya Mas, sangat membantu :)
Saya mahasiswa Pendidikan Matematika yg tertarik menyusun skripsi yg sejenis dengan ini. Kalau boleh sy minta filenya sebagai bahan reverensi mas :) Beberapa equation tidak bisa termuat :)
Terima kasih ^_^

Post a Comment

 

Pengikut

Copyright © ZONA SKRIPSI All Rights Reserved • Design by Dzignine
best suvaudi suvinfiniti suv