Kata Pengantar
i
Kata Pengantar
i
Daftar Isi
1.1
Mengenal Fitur-Fitur Excel & VBA ............................................................. .............................................. 1
1.2
Tambahan Heading 2 .............................................................. .............................................................. .... 3
1.3
Algoritma dan Pemrograman.......................................................... ........................................................ 3
1.2.1
Algoritma Metode Diagram Alir (Flow Chart) ..................................................................................... 4
1.2.2
Algoritma Metode Pseudocode ................................................................. ............................................. 4
1.4
Aplikasi Algoritma dalam Program .............................................................................. .......................... 4
2.1
Judul Sub Bab Baru ........................................................ .............................................................. ............... 6
2.2
Mengaktifkan VBA di Excel 2007 .......................................................................... .................................. 6
2.3
Mengaktifkan VBA Excel Excel 2010 & 2013 ................................................................ .................................. 8
2.4
Bekerja di Visual Basic Editor ............................................................................................ ....................... 8
2.5
Keterangan Tiga Menu Utama VBE ........................................................... ............................................. 8
3.1
Deklarasi Type Data........................................................................... ....................................................... 11
3.2
Type Data Numerik........................................................ .............................................................. .............. 11
3.3
Type Data Non Numerik ....................................................... ............................................................... ... 12
4.1
Sub Routine .......................................................... ................................................................. ...................... 13
4.2
Function ................................................................................................. ....................................................... 14
5.1
Conditional Statements ........................................................... .............................................................. ... 17
2.5.1
If, Then, Else .......................................................... ................................................................. ...................... 17
2.5.2
Select Case ............................................................ ................................................................. ...................... 18 ii
5.2
Looping ....................................................... ................................................................. ................................. 18
6.2.1
For .... Next ............................................................ ................................................................. ...................... 19
6.2.2
Do ... Loop Until .............................................................. ................................................................. ........... 19
6.2.3
Do... Loop While ............................................................. .............................................................. .............. 19
6.2.4
While...Wend ............................................................................. ............................................................... ... 19
6.2.5
Do While... Loop ................................................................................................................ ......................... 19
6.2.6
For Each ... Next .............................................................. ................................................................. .......... 20
6.1
Pendahuluan......................................................................................... ...................................................... 23 23
6.2
Mengakses Userform ......................................................................... ...................................................... 23
7.1
Metode Penyelesaian Soal Matematika .............................................................. ................................ 26
7.2
Nilai Error (Nilai Kesalahan) .............................................................. ...................................................... 26
7.3
Penyelesaian Menggunakan Metode Numerik .......................... ...................................................... 28
7.4
Solusi Numerik Dengan Analitik....................................................................................... Analitik...................... ................................................................. ..................... 28
8.1
Solusi Numerik Dengan D engan Tabulasi Excel ............................................................... ................................ 29
8.2
Solusi Numerik Metode Bisection.............................................................. ........................................... 30
8.3
Soulusi Numerik Metode Regula Falsi ................................................................ ................................. 33 33
8.4
Solusi Numerik Metode Secant ....................................................... ...................................................... 33
8.5
Solusi Numerik Metode Iterasi ........................................................ ...................................................... 33
8.6
Solusi Numerik Metode Newton Raphson ......................................................... ................................ 33
9.1
Penyelesaian Diferensial ............................................................................................................. ............. 35
9.2
Penyelesaian Diferensial Metode Euler .............................................................. ................................ 36
9.3
Penyelesaian Diferensial Metode Runge Kutta ................................................................................. 37
10.1
Integrasi Numeris Metode Simpson .................................................................................................... 39
10.2
Integrasi Numeris Metode Runge Kutta ........................................................................................... .. 39
10.3
39 iii
iv
Daftar Gambar Gambar 1-1 Algoritma Metode Diagram Alir ........................................................... ............................................. 4 Gambar 2-1 Pilihan Tombol Trust Center Setting .............................................................. .................................. 6 Gambar 2-2 Pilihan Tingkat Keamanan Macro........................................................ ............................................. 6 Gambar 2-3 Short Cut VBA di Excel Ribbon ..........................................................................................................7 Gambar 2-4 Menampilkan Short Cut VBA di Ribbon ................................................................ ..........................7 Gambar 2-5 Fasilitas VBA pada Ribbon Excel .......................................................... ..............................................7 Gambar 2-6 Mengaktifkan Macro Excel ......................................................... ........................................................ 8 Gambar 2-7 Tampilan Utama Visual Basic Editor .............................................................. .................................. 9 Gambar 2-8 Tampilan dan Menu VBA Project ........................................................ ............................................. 9 Gambar 2-9 Tampilan dan Menu VBA Properties ............................................................. .................................. 9 Gambar 2-10 Coding Windows ............................................................... .............................................................. ... 10 Gambar 4-1 Fungsi Konversi oC Menjadi oF .................................................................................... ...................... 14 Gambar 4-2 Input Data Latihan Menjalankan Fungsi ................................................................ ........................ 15 Gambar 4-3 Memanggil Fungsi Dengan Sub Prosedur .............................................................. ...................... 15 Gambar 4-4 Memperpendek Tulisan Kode .............................................................. ............................................ 16 Gambar 5-1 Konversi Temperatur Berdasarkan oC ............................................................................... .............. 21 Gambar 5-2 Hasil Running Program Temperatur.............................................................. ................................. 21 Gambar 6-1 Menu User Form VBA Excel ........................................................ ...................................................... 23 Gambar 6-2 Langkah Membuat UserForm............................................................... ........................................... 23 Gambar 6-3 Tampilan UserForm yang Sudah Dibuat ......................................................................... ............. 24 Gambar 6-4 Contoh Tampilan Userform ....................................................... ...................................................... 24 Gambar 6-5 Contoh Bentuk Konversi Satuan Fisika.................................................................. ........................ 25 Gambar 7-1 Penentuan Nilai Signifikan .......................................................... ...................................................... 27 Gambar 7-2 Nilai ........................................................ ................................................................. ................................ 27 Gambar 8-1 Metode Numerik Dengan Tabulasi .............................................................................................. .. 29 Gambar 8-2 Latihan Soal Dengan Tabulasi .............................................................. ........................................... 29 Gambar 8-3 Jawaban Soal Latihan Dengan Tabulasi ................................................................ ...................... 29 Gambar 8-4 Grafik Bantu Nilai Tebakan ......................................................... ...................................................... 30 Gambar 8-5 Tabel dan Grafik Bantu Penentu Akar Persamaan........................................................ ............. 32 Gambar 8-6 Gradien Titik X Pada Kurva f(x)............................................................. ........................................... 33 Gambar 8-7 Nilai X Metode Newton Rapshon ........................................................ ........................................... 34 Gambar 8-8 Kode Metode Newton Rapshon .......................................................... ........................................... 34 Gambar 9-1 Kurva Diferensial (dy/dt) .............................................................. ...................................................... 35
v
Daftar Tabel Tabel 1 Type Data Numerik ........................................................... .............................................................. .............. 12 Tabel 2 Type Data Non Numerik ............................................................ .............................................................. ... 12
vi
BAB 1 PENDAHULUAN Bagian ini merupakan ringkasan umum tentang fitur-fitur yang biasa digunakan pada Ms Office Excel. 1.1
Mengenal Fitur-Fitur Excel & VBA
Dalam pembahasan buku ini, bahasa pemrograman yang akan digunakan adalah bahasa Visual Basic Application (VBA) yang terdapat di excel. Pembatasan ini diperlukan karena VBA juga terdapat pada produk Microsoft Office Lainnya (Ms. Word, MS. Power Point, Ms. A ccess, AutoCad,dll).
Alasan mengapa menggunakan VBA Excel atau biasa disebut macro excel dapat dijelaskan dari keterangan di bawah ini:
VBA Excel merupakan program satu paket yang terdapat pada produk Microsoft Excel
Program yang kita buat dapat digunakan bersama-sama program lainnya yang sudah mnjadi program bawaan Excel (Contohnya Program Fungsi)
Program Excel merupakan program paling populer dan paling banyak penggunanya di dunia
Karena pengguna Excel yang banyak, sehingga banyak juga literatur online maupun offline yang membahas VBA excel, yang bisa dijadikan sebagai rujukan untuk mempelajari program ini
Spesifikasi komputer yang diperlukan rendah
Tidak membutuhkan Install tersendiri, seperti program-program lainnya
Kemampuan Excel mengolah data maupun melakukan perhitungan masih terbilang cukup baik dibandingkan dengan program perhitungan lainnya, seperti program Mathlab, Math Cad, dll
Microsoft Excel memiliki objek utama yaitu Workbook, Worksheets, GUI, dan objek-objek lainnya yang dapat dimodifikasi, dan digunakan secara bersamaan dalam suatu program. Berikut penjelasan masing-masing objek dalam Excel tersebut. Workbook terdiri dari :
Worksheets
Chart Sheets
Macro Sheets
Dialog Sheets
Workheets merupakan lembar kerja yang terdiri dari baris dan kolom:
Excel 2003 : 65.536 baris, 256 kolom 1
Excel 2007 : 1.048.576 baris, 16.384 kolom
Excel 2010 : 1.048.576 baris, 16.384 kolom
Excel 2013 : 1.048.576 baris, 16.384 kolom
Excel GUI (Graphical User Interface) Antar muka excel dapat diakses dengan beberapa cara melalui:
Menu
Dialog Box
Toolbars
Drag and Drop
Keyboard Shortcuts (Copy = Ctrl+C, Cut = Ctrl+X, Undo = Ctrl+Z, dll)
Entry Data
Nilai/Value (Angka, Tanggala, Waktu)
Teks
Rumus
Nilai logika
Kemampuan Excel
Formatting (Bold, Italics, Number)
Formulas (Stat, Finance, Enginerring, Math, dll)
Name Range
Functions
Shape
Chart
Macros
Dll
Fasilitas Fungsi dan Aplikasi Lainnya
Outline
Automatic Subtotal
Scenario Toolpak
Pivot Table
Auditing
Solver
Addins
Penjelasan di atas merupakan suatu pengetahuan dasar yang harus dimiliki oleh pembaca agar mampu mempelajari buku ini dengan baik. Meskipun tidak semua menu-menu tersebut pernah
2
digunakan, tetapi setidaknya pernah membuka dan tahu poisisi-posisi menu itu berada dalam program Excel. Dengan demikian, apabila pembaca belum pernah memahami pengetahuan dasar tentang Excel, penulis menyarankan untuk mempelajari kembali fasilitas-fasilitas Microsoft Excel yang banyak dibahas pada buku-buku komputer di toko-toko buku di daerah Anda. 1.2
Tambahan Heading 2
1.3
Algoritma dan Pemrograman
Algoritma merupakan dasar/pondasi yang harus dikuasai seorang programmer untuk menyelesaikan masalah secara terstruktur, efektif, dan efisien. Untuk menyelesaikan masalah dengan pemrograman, terlebih dahulu harus mempelajari hal-hal berikut ini:
Analisa masalah, diperlukan untuk mengidentifikasi informasi yang menjadi masukan (input) untuk dikelola menjadi keluaran (output). Oleh karena itu diperlukan prosedur untuk mengolah masukan (input) menjadi keluaran yang dikehendaki. Langkah demi langkah penyelesaian masalah harus dilakukan secara sistematis yang disebut dengan A lgoritma. Algoritma berlaku umum untuk semua bahasa pemrograman apapun. Jadi ketika pembaca mempelajari algoritma bahasa pemrograman VBA maka secara otomatis pembaca akan memahami juga algoritma yang dibuat oleh bahasa pemrograman lainnya, misalnya Fotran, Delphi, C++, Mathlab, dll. Sehingga algoritma menjadi suatu pengetahuan dasar yang mau tidak mau harus dikuasai agar programmer mampu membuat, memodifikasi, dan menjelaskan struktur pengolahan data yang dibuatnya.
“Algoritma adalah urutan langkah-langkah penyelesaian masalah yang disusun secara sistematis dan logis” langkah-langkah tersebut harus runut dan dapat ditentukan bernilai salah atau benar. Menjalankan Algoritma berarti mengerjakan langkah-langkah di dalam algoritma tersebut. Eksekusi program akan dijalankan sesuai dengan algoritma/urutan yang diberikan kepadanya. Contoh: Seorang juru masak akan membuat masakan berdasarkan resep dan panduan mengenai masakan tersebut. Begitu juga dengan pianis, akan memainkan lagu sesuai dengan not-not yang diberikan. Oleh karena itu suatu algoritma harus dinyatakan dalam bentuk yang dapat dimengerti oleh “pemroses” dalam hal ini adalah komputer.
Jadi, sebuah komputer harus :
Mengerti setiap langkah dalam Algoritma
Mengerjakan operasi yang bersesuaian dengan langkah tersebut
Contoh sederhana sebuah Algoritma, menghitung keliling persegi panjang dengan menggunakan komputer. Langkah awal sebelum membuat program harus dibuat terlebih dahulu Algoritmanya sebagai berikut :
Mulai
Tentukan nilai Panjang, Lebar persegi panjang tersebut
Hitung keliling persegi dengan rumus = 2 x (Panjang + Lebar)
Cetak / tampilkan hasil perhitungan 3
Selesai
Algoritma biasanya disajikan dalam salah satu dari dua bentuk algoritma, yaitu diagram alir (flowchart) dan pseudocode.
Diagram alir atau flowchart adalah standar untuk menggambarkan urutan langkah dalam suatu proses penyelesaian masalah. Setiap langkah Algoritma dinyatakan dengan simbol dan aliran setiap langkah dinyatakan dengan garis bertanda panah seperti contoh pada Gambar 1-1.
Gambar 1-1 Algoritma Metode Diagram Alir
Pseudocode bentuk algoritma yang menggunakan berbagai notasi dengan tujuan untuk menyederhanakan bentuk kalimat manusia. Contoh :
Panjang -> 6
Lebar -> 8
Keliling -> 2 * (Panjang + Lebar)
Print/Tampilkan hasil perhitungan Keliling
Untuk lebih dalam memahami Algoritma penulis akan memberikan algoritma setiap contoh soal dalam buku ini. Harapannya pembaca akan terbiasa membuat algoritma permasalahan sebelum membuat kode-kode program yang diinginkan. Sehingga tahapan pembuatan program VBA setidaknya mengikuti tiga langkah berikut ini:
Pemahaman masalah
Pembuatan algoritma
Pembuatan kode program
1.4
Aplikasi Algoritma dalam Program
Komputer hanya sebuah alat pemroses, oleh karena itu agar kode yang kita ketikkan dapat dijalankan oleh komputer, Algoritma harus ditulis dalam bahasa pemrograman. Jadi program adalah perwujudan atau implementasi teknis Algoritma yang ditulis dalam bahasa pemrograman tertentu sehingga dapat dijalankan oleh komputer. Terdapat perbedaan belajar pemrograman dengan belajar bahasa pemrograman.
4
adalah belajar tentang metodologi pemecahan masalah, kemudian
menuangkannya ke dalam notasi tertentu yang mudah dibaca dan difahami. adalah belajar memakai suatu bahasa pemrograman beserta
tata bahasa, instruksi-instruksi, tata cara compiler, dan memanfaatkan instruksi-instruksi tersebut untuk membuat program yang ditulis dengan bahasa itu saja.
Setelah program dibuat, kemudian program diuji untuk mengetahui hasil yang diperoleh baik kesalahan sewaktu kompilasi, ataupun kesalahan ketika menjalankan program. Kemungkinan kesalahan dapat terjadi berupa:
Kesalahan Sintaks
Kesalahan Logika
Kesalahan Runtime disebabkan karena kesalahan dalam menuliskan kode program yang tidak
sesuai dengan kaidah bahasa pemrograman yang dibuat. adalah kesalahan yang terjadi karena ada logika yang salah. Misalnya menuliskan 31,4 (pakai koma) untuk menyatakan phi, padahal yang benar adalah 3.14 (pakai titik). Kesalahan Runtime adalah kesalahan yang terjadi karena suatu operasi di dalam program tidak bisa dijalankan oleh komputer. Contoh pembagian suatu angka dengan nol, menyebabkan kesalahan fatal, kesalahan akan ditampilkan dan eksekusi program dihentikan. contth
hahahha
hahaha
5
BAB 2 RUANG LINGKUP VBA Setelah mempelajari pengetahuan dasar tentang kemampuan dan fasilitas Microsoft Excel serta Algoritma suatu program, maka langkah selanjutnya adalah mulai mempelajari VBA. Dalam buku ini akan dijelaskan cara mengaktifkan fasilitas VBA untuk Microsoft Excel versi 2007, 2010, dan 2013. Penulis berpendapat pembaca minimal sudah sudah menggunakan microsoft Excel versi 2007. Apabila pembaca masih menggunakan Microsoft Excel versi 2003, penulis menyarankan untuk melakukan upgrade program ke Excel 2007 atau di atasnya. 2.1
Judul Sub Bab Baru
Contoh tulisan 2.2
Mengaktifkan VBA di Excel 2007
Untuk mengaktifkan VBA di Excel, ikuti perintah berikut ini:
1. Klik tombol (Windows Kiri Atas) 2. Klik 3. Klik Trust Center, seperti Gambar 2-1 di bawah ini
Gambar 2-1 Pilihan Tombol Trust Center Setting
Hasil langkah Nomor 3, akan menjadi seperti Gambar 2-2 Klik Macro Setting, pilih Enable All Macros .
Gambar 2-2 Pilihan Tingkat Keamanan Macro
6
Untuk menampilkan short cut VBA di Excel Ribbon, seperti Gambar 2-3, lakukan langkahlangkah berikut ini:
Gambar 2-3 Short Cut VBA di Excel Ribbon
1. Klik tombol (Windows Kiri Atas)
kemudian Klik
2. Hasil klik Excel Options seperti Gambar 2-4 3. Klik
, pilih
Gambar 2-4 Menampilkan Short Cut VBA di Ribbon
Setelah tombol developer diklik, maka akan muncul tampilan seperti Gambar 2-5 berikut.
Gambar 2-5 Fasilitas VBA pada Ribbon Excel
1. Tombol 2. Tombol
untuk masuk ke VBE (Visual Basic Editor) untuk mengedit/menjalankan kode-kode macro yang sudah dibuat
sebelumnya. 3. Tombol 4. Tombol
untuk merekam data VBA berguna untuk ... 7
5. Tombol 2.3
untuk menampilkan setting keamanan Macro Excel
Mengaktifkan VBA Excel 2010 & 2013
Untuk mengaktifkan VBA di Excel versi 2010 dan versi 2013, ada sedikit perbedaan dibandingkan versi 2007. Langkah-langkahnya adalah sebagai berikut:
1. Klik tombol
(Kiri Atas)
2. Pilih 3. Klik
dan pilih
4. Pilih 5. Centang pilihan Macro Settings seperti tampilan Gambar 2-6 Dengan pilihaan Enable All Macros, maka semua file Excel yang memiliki kode VBA di dalamnya dapat dibuka. Hati-hati bila membuka file Excel yang tidak dikenal, karena dapat menyebarkan virus macro.
Gambar 2-6 Mengaktifkan Macro Excel
Demikian cara untuk mengaktifkan Visual Basic Application dan memunculkan toolbar-toolbar yang berguna bagi kita untuk membuat program berbasis VBA Excel versi 2007, 2010, dan 2013.
2.4
Bekerja di Visual Basic Editor
Setelah tombol developer ditampilkan pada ribbon Excel, klik tombol untuk menampilkan Visual Basic Editor seperti Gambar 2-7. Tampilan utama Visual Basic Editor terdiri dari tiga menu utama yaitu: VBA Project, VBA Properties, dan Coding Windows (Visual Basic Editor) atau tempat mengetikkan kode-kode yang akan kita buat, atau kode-kode yang dihasilkan oleh perekaman ketika selesai menekan tombol
.
Tampilan utama VBE pada Excel versi 2010 dan Excel versi 2013 tidak memiliki perbedaan. Sehingga penulis hanya memberikan contoh tampilan VBE menggunakan Excel versi 2010 saja. 2.5
Keterangan Tiga Menu Utama VBE
Sub bab berikut ini akan menjelaskan secara detil masing-masing fungsi menu utama VBE.
8
Gambar 2-7 Tampilan Utama Visual Basic Editor
Gambar 2-8 Tampilan dan Menu VBA Project
VBA Project terdiri dari Ms Office Excel Objects (Berupa Sheet dan W orbook), UserForm (untuk membuat userform), dan Module. Ketiga komponen ini dapat diedit/dimodifikasi oleh pengguna sesuai kebutuhan. Form properties berfungsi untuk melihat dan merubah propertis/sifat suatu objek VBA. Bisa dimodifikasi sesuai dengan kebutuhan pengguna.
Gambar 2-9 Tampilan dan Menu VBA Properties
Coding windows berguna untuk mengetikkan kode-kode yang akan dibuat, serta tempat kodekode hasil perekaman dengan metode Record Macro. Tampilan utuhnya seperti Gambar 2-10 berikut ini.
9
Gambar 2-10 Coding Windows
10
BAB 3 TYPE DATA 3.1
Deklarasi Type Data
VBA memiliki type data yang akan digunakan dalam proses coding. Penentuan type data ini berkaitan dengan penggunaan memori variabel yang bersangkutan. Type data yang sesuai, dapat menghemat penggunaan memori yang digunakan dalam pembuatan program, hasilnya running program yang dibuat menjadi lebih ringan. Cara menentukan type data yang dibuat dilakukan dengan mendeklarasikan terlebih dahulu data yang akan digunakan sebelum data tersebut dijalankan. Deklarasi type data di awali dengan Dim Nama_Variabel As Type Data. Untuk lebih jelas, lihat dua contoh berikut ini: Sub Deklarasi_Type_Data_Numeric() Dim Nilai_Siswa As Byte Dim Jumlah_Siswa As Integer Dim Rata_Rata As Single Nilai_Siswa = Range("D1").Value Jumlah_Siswa = Range("D2").Value Rata_Rata = Nilai_Siswa / Jumlah_Siswa Range("D3").Value = Rata_Rata End Sub
Contoh kedua: Sub Deklarasi_Type_Data_NonNumeric() Dim Nama As String * 10 'Fixed String Dim Tempat_Lahir As String * 8 Dim TglLahir As Date TglLahir = #9/26/1994# Nama = "Agus Manggala" Tempat_Lahir = "Muara Enim" Range("A9").Value = Nama Range("B9").Value = Tempat_Lahir Range("C9").Value = "String" Range("C10").Value = TglLahir End Sub
Mendeklarasikan suatu variabel berarti juga mendeklarasikan type data. Jika dalam mendeklarasikan suatu variabel type datanya tidak disebutkan (dideklarasikan), maka secara otomatis VBA akan menganggap variabel tersebut menggunakan type data Variant. Type data variabel menggunakan memori 16 Byte. Dari kedua contoh di atas, diketahui bahwa ada dua jenis type data utama yang digunakan di dalam kode VBA. Type data Numeric dan type data Non Numeric. Berikut penjelasan kedua type data tersebut. 3.2
Type Data Numerik
Variabel dengan type data numerik mencakup semua jenis data yang hanya berisi angka. Jika angka berupa bilangan bulat, maka type data yang sesuai digunakan dapat berupa Integer atau Long . Sedangkan jika berupa bilangan pecahan atau real dapat berupa single, double, atau currency . Contoh deklarasi variabel dengan type data numerik: Dim Jenis_Kelamin As Byte Dim Temperatur As Integer Private Temperatur As Long Public Temperatur As Single Static Temperatur As Double Dim Temperatur As Currency
Untuk bilangan real, dapat diekspresikan dalam bentuk ‘mmmEeee’ atau ‘mmmDeee’, dimana ‘mmm’ adalah bagian mantissa dan ‘eee’ adalah bagian eksponen (pangkat). ‘E’ digunakan untuk memisahkan bagian mantissa dan eksponen type data S ing le, dan ‘D’ digunakan untuk memisahkan bagian mantissa dan eksponen type data Double. Berikut ini tabel type data numerik beserta nilai range data yang dimilikinya:
11
Tabel 1 Type Data Numerik
3.3
Type Data Non Numerik
Variabel dengan type data non numerik mencakup semua jenis data yang hanya berisi tulisan atau text. Type data Non Numerik terdiri dari: Dim Dim Dim Dim
Nama_Lengkap As String Tanggal_Lahir As Date My_Cell As Range Pilihan_Benar As Boolean
‘Data ‘Data ‘Data ‘Data
Huruf Tanggal Objek Boolean
Sama seperti type data numerik, type data Non numerik juga terdiri dari beberapa jenis. Tabel 2 berisi type, kapasitas memori penyimpanan, dan range nilai yang mampu ditampung didalam type data tersebut. Tabel 2 Type Data Non Numerik
12
BAB 4 SUB ROUTINE & FUNCTION Secara garis besar prosedur pembuatan kode program VBA dikelompokkan menjadi dua, yaitu prosedur Sub Routine dan Function. 4.1
Sub Routine
Sub routine (selanjutnya Sub) adalah satu set perintah untuk melakukan kerja khusus yang dimasukkan ke dalam prosedur. Prosedur sub dalam pengetikannya diawali dengan Sub dan diakhiri dengan End Sub (Kalimat ini muncul otomatis ketika Sub selesai diketik dan ditekan Enter di keyboard). Tata cara penamaan prosedur Sub Procedure:
Karakter awal harus diawali dengan huruf, karakter berikutnya bisa menggunakan huruf atau angka atau kombinasi keduanya
Tidak boleh menggunakan spasi, apabila ingin memisahkan antar karakter bisa menggunakan garis bawah (Contoh: Data_Temperatur)
VBA tidak membedakan penulisan dengan huruf besar/huruf kecil
Tidak boleh menggunakan simbol-simbol yang sudah dipakai oleh VBA maupun excel (Contoh: #, !, $, %, @, ^, *)
Tidak boleh menggunakan operator matematika
Penulisan tidak boleh lebih dari 255 karakter
Idealnya penamaan Sub Procedure harus disesuaikan dengan kebutuhan yang akan dijalankan. Hal ini akan memudahkan programmer mengingat dan menjalankan program yang dibuatnya. Sub procedure, dapat dibuat dengan menggunakan fasilitas Record Macro dan diketikkan secara manual. Untuk menjalankan sub procedure, ada beberapa metode yang dapat digunakan, yaitu:
Mengklik Run
yang ada di ribbon Visual Basic Editor, atau tekan F5 di keyboard. Metode
ini memungkinkan programmer menjalankan program yang dibuat secara langsung, sehingga mendapatkan hasil
Menekan tombol F8 di keyboard, muncul warna kuning dibaris pertama sub procedure, lanjutkan menekan F8 sampai akhir baris kode. Metode ini memungkinkan programmer mampu memantau setiap langkah program yang dibuat. Metode ini juga digunakan untuk mengetahui kesalahan-kesalahan yang mungkin ditemui pada saat pembuatan program. Karena ketika program ada masalah, maka secara otomatis garis kuning yang ada akan berhenti dan muncul informasi mengenai jenis kesalahan tersebut
Dengan membuat Short Cut yang telah dibuat sebelumnya (Misal tekan ctrl+shift+k)
Membuat command control yang sudah disematkan kode macro sebelumnya. Metode ini biasanya menggunakan Command Button yang ada di Excel.
Berikut ini contoh penulisan kode Sub Sub ObjectVariable_Akhir()
13
Dim mycell As Range Set mycell = Worksheets("Sheet1").Range("A15") mycell.Value = 100 mycell.Font.Bold = True mycell.Font.Underline = xlDouble End Sub 4.2
Function
Setiap penulisan fungsi, dalam pengkodeannya selalu diawali kata Function dan diakhiri dengan End Function (Otomatis, sama seperti End Sub di Sub Procedure). Aturan penulisan fungsi sama dengan peraturan penamaan Sub. Dianjurkan untuk tidak menggunakan namanama yang mengacu kepada nama Cell tertentu (Contoh: A32, B56, F76, dst). Function memiliki fungsi yang sama dengan Sub, tetapi ada perbedaan mendasar antara Sub dan Function. Function menghasilkan nilai balik, sedangkan Sub tidak menghasilkan nilai balik. Kode sub bisa dibuat dengan metode record macro, sedangkan Function harus diketikkan secara manual. Untuk menjalankan function dilakukan dengan langkah berikut:
Dipanggil menggunakan Sub Prosedur
Melalui pengetikan secara manual di Worksheet Formula
Berikut ini contoh penulisan kode F unction Function LuasArea(panjang As Double, lebar As Double) As Double LuasArea = panjang * lebar End Function Function Ctof(temp As Double) As Double Ctof=9/5 * temp + 32 End Function
Gambar 4-1 Fungsi Konversi oC Menjadi oF
Kode berikut ini adalah contoh mengeksekusi Function menggunakan Sub Prosedur. Sebelum dijalankan terlebih dahulu input data di “ Sheet2 ” seperti Gambar 4-2 berikut:
14
Gambar 4-2 Input Data Latihan Menjalankan Fungsi
Untuk menguji fungsi input data seperti Gambar 4-2 menggunakan metode pemanggilan sub prosedur, ketikkan kode-kode seperti Gambar 4-3 berikut ini:
Gambar 4-3 Memanggil Fungsi Dengan Sub Prosedur
Urutan eksekusi program, komputer membaca nilai-nilai input data yang sudah diisi sebelumnya yaitu data AA,BB,CC,DD,EE,FF yang berada di Sheet2 kolom C3:C7. Selanjutnya program akan menghitung nilai FF, nilai FF diperoleh dengan menghitung terlebih dahulu fungsi (yg_dipanggil_pertama) . Tetapi fungsi (yg_dipanggil_ pertama) mengandung persamaan fungsi (yg_dipanggil_kedua) . Sehingga fungsi ini juga harus menjalankan fungsi kedua sebelum hasil akhir FF ditampilkan. Untuk lebih jelasnya silakan buka file yang terlampir di buku ini, kemudian arahkan kursor ke Sub Utama, dan tekan F8 secara kontinyu. Garis kuning yang muncul secara
15
bertahap akan memperlihatkan urutan-urutan yang terjadi pada program, langkah-langkah apa saja yang dijalankan lebih dahulu. Ada kalanya kita mengetikkan kode VBA dengan kode yang sangat panjang, sehingga kesulitan dibaca karena terhalang layar komputer. Untuk mengatasi hal itu, perlu cara untuk memperpendek penulisan kode dengan cara berikut:
Gambar 4-4 Memperpendek Tulisan Kode
Perhatikan tanda [_] pada kotak merah Gambar 4-4 di atas. Lakukan langkah-langkah berikut:
Tempelkan kursor di sisi kanan tanda “koma”
Klik tombol spasi, ketikkan “underscore”
Tekan “Enter”
Sehingga kode yang tadinya panjang dan tidak tampak di monitor komputer menjadi turun ke bagian bawahnya. Syarat untuk melakukan ini, kode yang dipotong harus ditulis lengkap dahulu. Bila pada saat di tekan enter, warna huruf menjadi merah, itu artinya proses “pemotongan” belum berhasil. Ulangi kembali langkah di atas sampai berhasil dengan baik.
16
BAB 5 CONDITIONAL STATEMENTS & LOOPING 5.1
Conditional Statements
If, Then, Else berfungsi untuk menjalankan perintah dimana perintah tersebut memiliki dua atau lebih kondisi tertentu yang harus diekesekusi terlebih dahulu agar data selanjutnya bisa dijalankan. Contoh penerapannya bila kondisi data A terpenuhi, maka akan menghasilkan data B, bila data A tidak terpenuhi lanjutkan ke data C, dan seterusnya. Format penulisan kode If, Then, Else seperti berikut ini:
If kondisi1 Then Aksi ketika hasil evaluasi kondisi1 bernilai benar ElseIf kondisi2 Then Aksi ketika hasil evaluasi kondisi2 bernilai benar Else Aksi ketika hasil evaluasi kondisi1 & kondisi2 tidak memenuhi semua ketentuan End If Perhatikan contoh di bawah ini: Dim nilai_mahasiswa As Integer Dim Hasil As String nilai_mahasiswa = Range(“A1”).Value If nilai_mahasiswa >= 80 Then Hasil = “Anda Berhasil Memuaskan” ElseIf nilai_mahasiswa >= 65 Then Hasil = “Anda Berhasil Lulus Ujian” Else Hasil = “Anda Gagal Ujian” End If Range(“A2”).Value = Hasil
Berikut contoh If Then Else dengan kondisi yang lebih banyak. Dim Nilai_mahasiswa As Double Dim Hasil As String Nilai_mahasiswa = Range(“B1”).Value If Nilai_mahasiswa < 60 Then Hasil = “Kurang” ElseIf Nilai_mahasiswa <= 70 Then Hasil = “Cukup” ElseIf Nilai_mahasiswa > 70 Then Hasil = “Baik” End If Range(“B2”).Value = Hasil
Pada contoh pertama jika nilai Range “A1” bernilai lebih besar atau sama dengan 65, maka hasilnya Anda berhasil lulus. Tetapi, bila nilai Range “A1” bernilai kurang dari 65, maka hasilnya Anda Gagal Ujian, kemudian hasil eksekusi ini ditampilkan di Range “A2”. Contoh kedua, jika nilai di Range “B1” kurang dari 60, maka hasilnya “kurang”, jika nilai di Range “B1” kurang dari atau sama dengan 70, maka hasilnya “Cukup”, jika Range “B1” lebih dari 70, maka hasilnya “Baik”.
17
Dari kedua contoh di atas, jelaslah bahwa kode If Then Else memiliki kondisi-kondisi tertentu yang harus dipenuhi terlebih dahulu agar bisa menghasilkan jawaban yang sesuai yang diinginkan. Selain If Then Else, ada beberapa jenis lagi Conditional yang akan dibahas dalam buku ini. Dengan harapan pembaca dapat menggunakan metode-metode tersebut untuk membuat conditional case sesuai kebutuhan.
Select Case memiliki fungsi sama dengan If, Then, Else. Yaitu melakukan aksi berdasarkan kondisi-kondisi tertentu yang dipersyaratkan.
Format penulisan kode Select Case : Select Case Expression Case Value1 Aksi ketika pernyataan sesuai dengan Nilai1 Case Value2 Aksi ketika pernyataan sesuai dengan Nilai2 . . Case Else Aksi ketika tidak ada pernyataan yang sesuai dengan nilai yang dipersyaratkan End Select Berikut ini contoh penggunaan Select Case
Select Case ActiveCell.Value Case Is <= 5 ActiveCell.Interior.Color = 65280 ' Warna cell Hijau Case 6, 7, 8, 9 ActiveCell.Interior.Color = 49407 ' Warna cell Orange Case 10 ActiveCell.Interior.Color = 65535 ' Warna cell Kuning Case Else ActiveCell.Interior.Color = 255
' Warna cell Merah
End Select Contoh di atas contoh kasus berupa nilai pada cell yang aktif (ActiveCell) sebagai Case. Jika nilai Cell <= 5, Warnanya menjadi hijau. Bila nilainya 6,7,8,9 maka warna cell menjadi Orange, bila nilainya 10, maka warna cell menjadi kuning, bila nilai yang ada tidak sama dengan nilai di atas, maka warna cell menjadi merah. 5.2
Looping
Looping merupakan statement perintah yang digunakan untuk melakukan pekerjaan/perhitungan secara berulang sampai batas waktu yang ditentukan oleh programmer. Looping memiliki bentuk kode yang berbeda-beda, tetapi fungsinya sama. Sub bab berikut ini akan membahas Looping dengan berbagai metode.
18
Kode For Next berikut ini akan mengurutkan angka dari 1 sampai 10 dengan posisi angkaangka tersebut akan ditempatkan pada Kolom B, dan baris ke-1 sampai dengan baris ke-10. Sub UrutkanAngka() For i = 1 To 10 Range(“ A” & i).Value = i Next i End Sub
Sama seperti For Next, kode Do Loop Until di bawah ini akan mengurutkan angka 1 sampai 10 dengan posisi di Kolom B. Sub UrutkanAngka2() Dim i As Integer i=1 Do Range(“ B” & i ).Value = i i=i+1 Loop Until i > 10 End Sub
Dengan Do...Loop While hasilnya sama seperti kode pengulangan sebelumnya. Mengurutkan angka 1 sampai 10 dengan posisi di Kolom C Sub UrutkanAngka3() Dim i As Integer i=1 Do Range("C" & i).Value = i i=i+1 Loop While i <= 10 End Sub
While Wend juga berfungsi untuk melakukan perhitungan/pekerjaan berulang seperti contoh di atas. Sub UrutkanAngka4() Dim i As Integer While i < 10 For i = 1 To 10 Range("D" & i).Value = i Next i Wend End Sub
Do While Loop, juga berfungsi untuk melakukan pekerjaan perulangan. Dengan contoh kode seperti di bawah ini: Sub UrutkanAngka5()
19
Dim index As Integer Do While index < 10 For index = 1 To 10 Range("E" & index).Value = index Next index Loop End Sub
Perulangan dengan For Each ... Next, berfungsi untuk melakukan pekerjaan dalam bentuk Objek dan juga angka numerik.
Sub UrutkanAngka6() Dim MyArray(1 To 10) As Integer MyArray(1) = 1 MyArray(2) = 2 MyArray(3) = 3 MyArray(4) = 4 MyArray(5) = 5 MyArray(6) = 6 MyArray(7) = 7 MyArray(8) = 8 MyArray(9) = 9 MyArray(10) = 10 'iterasi menggunakan For each loop. For i = 1 To 10 For Each Item In MyArray Range("F" & i).Value = MyArray(i) Next Next i End Sub Kode di atas akan menampilkan angka 1 sampai 10 di cell F1:F10, sama seperti kode sebelumnya. Untuk menambah pemahaman pembaca, berikut ini contoh penggunaan Looping untuk membuat tabel nilai konversi temperatur dengan parameter oC.
20
Gambar 5-1 Konversi Temperatur Berdasarkan oC
Hasil kode pada Gambar 5-1 berupa nilai temperatur hasil konversi oC menjadi oFahreinhet, Kelvin, Rankine, dan Reamur. Ketika program dijalankan, hasil konversi akan muncul pada range (“ A3:E1003”) seperti pada Gambar 5-2 berikut ini.
Gambar 5-2 Hasil Running Program Temperatur Untuk mengecek temperatur yang ditampilkan, silakan pembaca melakukan konversi angkaangka di program lainnya atau di program Convert yang penulis sertakan dalam buku ini. Keunggulan Looping pada program komputer, yaitu program mampu melakukan perhitungan secara berulang secara konsisten. Oleh karena itulah perhitungan-perhitungan yang membutuhkan banyak perulangan/iterasi memerlukan bantuan komputer untuk perhitungannya.
21
Pada mata kuliah Komputasi, penggunaan Function dan Looping menjadi sangat penting, karena ilmu-ilmu teknik banyak menggunakan perhitungan-perhitungan rumit yang tidak bisa dihitung secara manual. Perhitungan-perhitungan tersebut mencakup semua aspek ilmu pengetahuan baik teknik maupun non teknik. Oleh karena itu pemahaman Looping menjadi sangat penting dalam pembuatan program apapun. Pada bab-bab berikutnya, penulis akan menjelaskan contoh-contoh perhitungan yang banyak ditemui dalam bidang teknik. Sehingga pembaca mampu menerapkan ilmu VBA ini dalam menyelesaikan setiap persamaan-persamaan sulit yang ditemui pada mata kuliah maupun dalam kehidupan sehari-hari.
22
BAB 6 USERFORM 6.1
Pendahuluan
UserForm merupakan fasilitas VBA sama seperti halnya Module, Sheets, Dan Worksheet yang terdapat di VBA Project. Userform berfungsi untuk mempermudah pengguna program (pemakai) berinteraksi dengan program yang dibuat oleh programmer. Materi yang mampu ditampilkan oleh Userform terdiri dari:
Command Button
Label
Text Box
Scroll Bar
Spin Button
Check Box
Option Button
Frame Work
Picture, dst
Menu standar Userform dapat dilihat pada Gambar 6-1. Menu lainnya yang perlu ditampilkan sendiri oleh programmer yang belum ada pada tampilan standar.
Gambar 6-1 Menu User Form VBA Excel
6.2
Mengakses Userform
Untuk mengakses Userform, berikut langkah-langkah nya :
Gambar 6-2 Langkah Membuat UserForm
23
Klik Kanan di VBA Project, -> Klik Insert -> UserForm
Hasilnya akan tampak seperti Gambar 6-2 & Gambar 6-3
Gambar 6-3 Tampilan UserForm yang Sudah Dibuat
Pada tampilan Gambar 6-3 di posisi inilah programmer meletakkan tombol-tombol yang dibutuhkan agar sesuai dengan kebutuhan dan bisa dieksekusi oleh pengguna program. Untuk lebih jelasnya, perhatikan Gambar 6-4 berikut ini.
Gambar 6-4 Contoh Tampilan Userform
UserForm yang ditampilkan Gambar 6-4 memiliki fitur:
TextBox
Command Button
ScrollBar
Spin Button
Label
Contoh berikut ini akan memandu Mahasiswa untuk membuat UserForm konversi satuansatuan dalam bidang Fisika terapan yang sudah dipelajari pada semester Awal di teknik Energi Politeknik Negeri Sriwijaya. Sebagai gambaran, mahasiswa nanti mampu membuat konversi nilai satuan dalam fisika menjadi seperti Gambar berikut ini menggunakan fasilitas UserForm VBA Excel.
24
Gambar 6-5 Contoh Bentuk Konversi Satuan Fisika
Untuk membuat Form seperti Gambar 6-5 lakukan langkah-langkah berikut ini:
25
BAB 7 SOLUSI PERHITUNGAN NUMERIK Mengapa menggunakan metode numerik? Alasannya tidak semua persoalan matematis/perhitungan dapat diselesaikan dengan manual (hitungan tangan). Salah satu contoh soal integral yang sulit untuk dikerjakan secara manual seperti contoh persamaan berikut ini:
Integral di atas terlihat mudah, tetapi untuk menyelesaikan integral tersebut bukan perkara mudah. Tetapi bukan berarti integral tersebut tidak bisa diselesaikan. Dengan dasar inilah dapat dikatakan bahwa penyelesaian suatu persamaan dibutuhkan metode lainnya, sehingga soal tersebut bisa diselesaikan meskipun nilainya hanya mendekati. 7.1
Metode Penyelesaian Soal Matematika
Dalam penerapan matematis untuk menyelesaikan persoalan-persoalan perhitungan dan analisis, ada beberapa kondisi dan metode yang digunakan untuk menghasilkan penyelesaian yang baik, yaitu : (1) Bila persoalan merupakan persoalan yang sederhana atau ada theorema analisa matematika yang dapat digunakan untuk menyelesaikan persoalan tersebut, maka penyelesaian matematis (metode analitik) adalah penyelesaian exact yang harus digunakan. Penyelesaian ini menjadi acuan bag i pemakaian metode pendekatan. (2) Bila persoalan sudah sangat sulit atau tidak mungkin diselesaikan secara matematis (analitik) karena tidak ada theorema analisa matematik yang dapat digunakan, maka dapat digunakan metode numerik. (3) Bila persoalan berupa pers oalan yang mempunyai kompleks itas ting g i, sehingga metode numerikpun tidak dapat menghasilkan penyelesaian dengan baik, maka dapat digunakan metode-metode simulasi. Contoh penggunaan simulasi adalah penentuan titik pengeboran, kontur bumi, dll. Pendekatan yang digunakan metode numerik merupakan pendekatan analisis matematis. Sehingga dasar pemikirannya tidak keluar jauh dari dasar pemikiran analitis, hanya saja pemakaian g rafis dan tekni k perhitung an yang mudah merupakan pertimbangan dalam pemakaian metode numerik. Mengingat bahwa algoritma yang dikembangkan dalam metode numerik adalah algoritma pendekatan maka dalam algoritma tersebut akan muncul istilah iterasi yaitu pengulangan proses perhitungan. Dengan kata lain perhitungan dalam metode numerik adalah perhitungan yang dilakukan secara berulang-ulang dan terus-menerus sehingga diperoleh hasil yang makin mendekati nilai penyelesaian exact. Perhatikan salah satu bentuk formulasi dalam bidang numerik berikut ini:
Dari formula di atas, terlihat bahwa hasil iterasi ke-n adalah hasil iterasi ke n-1 (hasil sebelumnya) ditambah yang merupakan nilai perbaikan. Sehingga dapat dikatakan bahwa semakin banyak iterasi yang digunakan, maka nilainya semakin mendekati nilai Excat atau semakin baik hasil yang diperoleh. 7.2
Nilai Error (Nilai Kesalahan)
Dalam analisa metode numerik, kesalahan menjadi sangat penting. Karena kesalahan dalam pemakaian pendekatan, akan menyebabkan nilai kesalahan yang besar, tentu tidak diharapkan.
26
Sehingga pendekatan metode analitik selalu membahas tingkat kesalahan dan tingkat kecepatan proses yang akan terjadi. Kesalahan di dalam metode numerik dibagi menjadi dua macam, yaitu:
Kesalahan pembulatan (Round of Error)
Kesalahan pemotongan (Truncation Error)
Kesalahan numerik (Numeric Error)
Kesalahan pembulatan adalah kesalahan yang disebabkan oleh pembulatan misalnya 0.4 menjadi 0 atau 0,5 menjadi 1. Kesalahan pemotongan adalah kesalahan pengurangan jumlah angka signifikan.
yang
ditimbulkan
pada
saat
dilakukan
Nilai signifikan adalah suatu nilai dimana jumlah angka ditentukan sebagai batas nilai tersebut diterima atau tidak. Sebagai contoh perhatikan nilai pada penggaris :
Gambar 7-1 Penentuan Nilai Signifikan
Nilai yang ditunjuk tidak tepat pada angka yang ditentukan karena selisih 1 strip, dalam kejadian ini bila dianggap nilai signifikan (berkemungkinan) = 1 maka nilainya 59 atau 60. Bila penggaris tersebut dilihat dengan skala lebih besar pada daerah yang ditunjuk oleh jarum maka diperoleh nilai signifikannya 59 atau 59,5.
Gambar 7-2 Nilai
Dari gambar di atas, dengan nilai signifikan (kemungkinan) skala 10 -1 (0,1). Kesalahan numerik adalah kesalahan yang timbul karena adanya proses pendekatan. Hubungan kesalahan dan penyelesaian adalah:
̂= + ̂= ( ) = ℎ = ℎ () Kesalahan fraksional adalah prosentase antara kesalahan dan nilai sebenarnya
∈ = ̂ 100%
Banyak permasalahan kesalahan fraksional di atas sulit atau tidak bisa dihitung, karena nilai eksaknya tidak diketahui. Sehingga kesalahan fraksional dihitung berdasarkan nilai pendekatan yang diperoleh:
∈ = 100% 27
Dimana e pada waktu ke n adalah selisih nilai pendekatan ke n dan ke n-1
∈ = [ − − 1] 100%
Perhitungan kesalahan semacam ini dilakukan untuk mencapai keadaan konvergensi pada suatu proses iterasi. Definisi Konvergensi. Suatu barisan a1,a2,...dikatakan konvergen ke a jika dan hanya jika untuk semua e>0 terdapat bilangan bulat η 0( ). Sedemikian hingga untuk semua n≥η 0 terdapat |a−an |< .
∈
∈
Dari definisi ini, dapat dikatakan bahwa penyelesaian dalam metode numerik dicari berdasarkan selisih hasil saat ini dengan hasil sebelumnya. Metode ini dapat menghindari jumlah iterasi yang sangat besar tetapi terkadang tidak akurat. 7.3
Penyelesaian Menggunakan Metode Numerik
Persoalan matematika yang biasa menggunakan metode numerik dalam penyelesaiannya adalah:
Persamaan Non Linear
Persamaan Simultan atau Multi Variabel
Persamaan Differensial dan Integeral
Interpolasi dan Regresi
Persamaan Regresi
Pada bab berikutnya penulis akan menjelaskan metode-metode di atas dengan pendekatan algoritma dan pemrograman VBA. Pada setiap akhir pembahasan akan diberikan contoh kasus yang diharapkan dapat meningkatkan keahlian pembaca mengenai pemakaian metode numerik ini. 7.4
Solusi Numerik Dengan Analitik
Penyelesaian persamaan matematika yang masih terbilang mudah, bisa menggunakan metode analitik. Contoh persamaan yang mampu dikerjakan dengan metode analitik dapat dilihat pada contoh soal berikut ini.
Penyelesaian persamaan di atas juga bisa diselesaikan dengan menggunakan persamaan ABC.
28
BAB 8 MENCARI PERSAMAAN KUADRAT 8.1
Solusi Numerik Dengan Tabulasi Excel
Alat bantu perhitungan untuk menyelesaikan persamaan numerik dengan komputer (dalam hal ini menggunakan program Ms. Office Excel) yaitu dengan sistem Tabulasi.
Gambar 8-1 Metode Numerik Dengan Tabulasi
Penyelesaian persamaan di atas diselesaikan dengan membuat tabel persamaan dengan variabel “X” dan fungsi F(x) yang akan dicari hasilnya. Variabel X ditentukan secara sembarang kemudian dilihat hasilnya terhadap persamaan F(x) yang sudah dimasukkan sebelumnya. Lihat trend yang dibentuk oleh fungsi F(x), apakah mendekati nilai yang diinginkan atau sebaliknya. Apabila menjauhi atau melewati nilai yang diinginkan maka ganti nilai variabel “X” dengan angka-angka lainnya. Lihat kembali trend F(x) yang terbentuk. Lakukan analisa seperti penjelasan di atas, sampai ditemukan nilai yang sesuai. Untuk latihan silakan kerjakan soal berikut ini dengan metode tabulasi.
Gambar 8-2 Latihan Soal Dengan Tabulasi
Dengan metode yang sama pada Gambar 7-1, maka akan diperoleh hasil seperti Gambar 7-3 berikut ini.
Gambar 8-3 Jawaban Soal Latihan Dengan Tabulasi
Dengan metode tabulasi di atas, maka pembaca akan mengalami beberapa kesulitan, diantaranya:
Apabila hasil dibelakang koma terdapat angka yang banyak, maka pembaca akan mengulang cara yang sama beberapa kali 29
Kesulitan menentukan tebakan awal yang dimasukkan ke dalam kolom nilai X agar mendekati nilai yang diinginkan
Untuk mengatasi kesulitan menentukan tebakan awal, metode yang digunakan adalah dengan menggunakan grafik bantu. Yaitu grafik yang akan digunakan untuk melihat posisi tebakan kita apakah sudah mendekati nilai yang akan kita tuju, atau bahkan malah menjauhi. Contoh soal dari Gambar 7-3, persamaan 5x+2=3
Gambar 8-4 Grafik Bantu Nilai Tebakan Dari grafik di atas, hasil yang akan dicari nilai X yang memenuhi persamaan 5x+2=3 dan menghasilkan angka 3, sehingga hasil tebakan paling mendekati diantara angka 0,1 dan 0,4. Dan ketika dimasukkan nilai 0,2, maka hasilnya sesuai dengan yang kita inginkan. Persamaan kuadrat banyak ditemukan dalam perhitungan teknik kimia. Proses penyelesaian persamaannya juga memiliki banyak metode yang bisa digunakan untuk menyelesaikan persamaan kuadrat. Berikut ini adalah contoh metode-metode yang biasa digunakan dalam penyelesaian persamaan kuadrat:
Metode tabulasi (seperti sudah dibahas di atas)
Metode Biseksi
Metode Regula Falsi
Metode Secant
Metode Iterasi
Metode Newton Rapshon
Berdasarkan pengamatan penulis, dari beberapa metode tersebut, lebih simpel menggunakan metode Newton Rapshon. Karena metode ini lebih sederhana dan cepat menghasilkan nilai X dari persamaan tersebut. Tetapi penulis tidak membatasi pembaca untuk mencoba masingmasing metode tersebut. 8.2
Solusi Numerik Metode Bisection
Ide awal metode bisection, adalah metode tabulasi. Dimana suatu area grafik dibagi menjadi 2 bagian. Dari kedua bagian ini akan dipilih bagian yang mengandung akar persamaan. Dan bagian yang tidak memiliki akar dibuang. Hal ini dilakukan secara berulang-ulang hingga ditemukan akar persamaanya. Metode numerik menggunakan metode bisection dilakukan dengan prosedur seperti di bawah ini:
Tentukan persamaan yang akan dicari akar persamaannya. 30
Untuk membantu penentuan akar persamaan, gunakan tabel dan grafik
Untuk membuat grafik, tentukan besar sumbu X maksimum dan sumbu X minimum dari grafik / tabel tersebut
Bila data yang akan dibuat grafik dengan jumlah 100 data, maka pembagian yang digunakan adalah 100. Disesuaikan dengan kebutuhan anda.
Algoritma metode bisection (Disesuaikan Dengan Kode):
Pseducode Algoritma Bisection
1. Mulai 2. Baca nilai x1, x2, e * Nilai x1 dan x2 adalah nilai tebakan awal e adalah kesalahan absolut (ketelitian) 3. Hitung: f1 = f(x1) dan f2 = f(x2) -> fungsi dari f(x1) dan f(x2) 4. Jika hasil perkalian (f1*f2) > 0, tampilkan “nilai tebakan salah” dan lanjut ke kode nomor (11) Jika hasil perkalian (f1*f2) < 0, lanjutkan proses ke kode nomor (5) 5. x = (x1 + x2)/2
31
6. If ( [ (x1 – x2)/x ] < e ), kemudian tampilkan nilai x dan lanjut ke kode nomor (11). Else, f = f(x) 7. If ((f*f1) > 0), then x1 = x and f1 = f. 8. Else, x2 = x and f2 = f. 9. Goto (5). *Sekarang lanjutkan pengulangan dengan nilai yang baru* 10. Selesai Sehingga nilai-nilai dalam tabel tersebut akan mengikuti ketentuan-ketentuan seperti berikut:
X1 = Xmin
X2 = X1 + (Xmax – Xmin) / 100
X3 = X2 + (Xmax – Xmin) / 100
....
XN = XN-1 + (Xmax – Xmin) / 100
Nilai y atau f(x) adalah fungsi dari nilai X yang akan dibuat grafik. Bentuknya tergantung persamaan yang digunakan. Agar lebih jelas perhatikan contoh tabel dan grafik di bawah ini dengan parameter-parameter pendukungnya. Persamaan yang akan dicari akarnya : 2x 2 – 3x – 5 = 0
Gambar 8-5 Tabel, Grafik Persamaan 2X 2 – 3X – 5 = 0 Gambar 8-5 merupakan tabel dan grafik untuk menentukan akar persamaan yang akan dicari akar-akarnya. Dapat dilihat pada gambar 8-5 terdapat nilai X max dan Xmin serta hasil grafik yang terbentuk dari persamaan 2x 2 – 3x – 5 = 0 Tahap pembuatan tabel dan grafik bantu selesai. Untuk mencari akar persamaan dengan metode bisection pertama kali adalah menetapkan nilai batas bawah dan nilai batas atas secara sembarang (bila tabel dan grafik sudah dibuat, maka bisa ditentukan nilai X maksimum dan nilai X minimum dari grafik yang sudah terbentuk, contoh nilai X maksimum 3 dan nilai X minimum -2) Langkah selanjutnya adalah membuat kursor bantu (warna merah dan hijau). Guna kursor ini adalah untuk melihat posisi perpotongan grafik yang dihasilkan persamaan dengan sumbu X, selain itu untuk melihat iterasi yang terjadi selama proses perhitungan mendekati nilai yang dicari. Cara membuat garis potong bantu sebagai berikut: Kursor Batas Bawah (Merah)
X1 nilai batas bawah yang sudah ditentukan sebelumnya.
X2 nilai batas bawah yang sudah ditentukan sebelumnya 32
Sumbu Y1 adalah nilai minimum data fungsi f(x)
Sumbu Y2 adalah nilai maksimum data fungsi f(x)
Kursor Batas Atas (Hijau)
X3 nilai batas atas yang sudah ditentukan sebelumnya
X4 nilai batas atas yang sudah ditentukan sebelumnya
Sumbu Y3 adalah nilai minimum data fungsi f(x)
Sumbu Y4 adalah nilai maksimum data fungsi f(x)
8.3
Soulusi Numerik Metode Regula Falsi
8.4
Solusi Numerik Metode Secant
8.5
Solusi Numerik Metode Iterasi
8.6
Solusi Numerik Metode Newton Raphson
Metode Newton Rapshon memanfaatkan sifat turunan pertama suatu fungsi adalah merupakan gradien dari fungsi tersebut pada titik “X” .
Gambar 8-6 Gradien Titik X Pada Kurva f(x)
Dari persamaan f(x) = 2x2-3x-5 pada Gambar 7-5, turunan pertamanya adalah f’(x) = 4x-3. Dengan menggunakan metode Newton Rapshon, nilai X yang dihasilkan akan tampak seperti Gambar 7-6, berikut ini.
33
Gambar 8-7 Nilai X Metode Newton Rapshon
Adapun kode metode Newton Rapshon, bisa dilihat pada Gambar 7-7 berikut ini.
Gambar 8-8 Kode Metode Newton Rapshon
Untuk mengetahui nilai akar X 1 dan X2 ganti X tebakan menggunakan nilai lebih besar dari 1 dan atau
34
BAB 9 DIFERENSIASI NUMERIS 9.1
Penyelesaian Diferensial
Suatu persamaan diferensial (dy/dt) dinyatakan dalam fungsi f(t,y), dimana y (t) diperoleh dari persamaan: dy/dt = f (t,y) a ≤ t ≤ b, y (a) = α Nilai t dibatasi dari a hingga ke b. Sementara, syarat awal yang telah diketahui yaitu pada saat t 0 = a maka, y bernilai α. Akan tetapi kita sama sekali tidak tahu bentuk formulasi persamaan asalnya y(t). Tantangannya adalah bagaimana kita bisa mendapatkan solusi persamaan diferensial untuk setiap nilai y(t) yang t-nya terletak diantara nilai a dan b. Tahap awal penyelesaian dengan pendekatan numerik adalah dengan menentukan point-point dalam jarak yang sama di dalam interval [a, b] yang diberi tanda (h) dengan persamaan: h = (b-a) / N Keterangan: h = Jarak antar point (Step Size) a = Batas bawah point yang sedang dihitung b = Batas atas point yang sedang dihitung N = Jumlah langkah (Iterasi ke-N) nilainya bilangan bulat positif Selanjutnya, nilai t diantara a dan b ditentukan berdasarkan persamaan: ti = a + ih,
i = 0,1,2,3,....,N
Untuk memahami keterangan - keterangan di atas, perhatikan Gambar dua kurva berikut ini:
Gambar 9-1 Kurva Diferensial (dy/dt)
Kurva Kiri: Kurva y(t) dengan pasangan titik absis dan ordinat, dimana jarak titik absis sebesar h. Pasangan t1 adalah y(t 1), pasangan t2 adalah y(t2), begitu sterusnya. Kurva Kanan: Garis singgung yang mengenai kurva y(t) pada t=a, kemudian berdasarkan garis singgung tersebut ditentukan pasangan t 1 dengan w1. Dari titik persinggungan antara t 1 dan w1 dapat dilihat hasilnya tidak persis berpotongan pada kurva y(t). Dari kedua kurva di atas, disitulah perbedaan hasil perhitungan menggunakan metode analitis dan metode pendekatan numerik. Dimana hasil perhitungan analitis memiliki error = 0 sedangkan hasil perhitungan dengan numerik memiliki error ≠ 0.
35
9.2
Penyelesaian Diferensial Metode Euler
Metode Euler diturunkan dari deret Taylor. Misalnya suatu fungsi y (t ), adalah fungsi yang kontinyu dan memiliki turunan dalam interval [a,b]. Dalam deret Taylor, fungsi y(t) dirumuskan sebagai:
Dengan memasukkan h = (t i+1 – ti), maka
dan, karena y(t) memenuhi persamaan diferensial, dimana y′(t i) adalah fungsi turunan f(t i,y(ti)), maka
Metode Euler dibangun dengan pendekatan bahwa suku terakhir dari persamaan di atas, yang memuat turunan kedua, dapat diabaikan. Disamping itu, pada umumnya notasi penulisan y(t i) diganti dengan wi. Sehingga metode Euler diformulasikan sebagai : dengan syarat awal w 0 = α, dimana i = 0,1,2,3,4,...,N-1. Contoh Soal y’ = y – t2 + 1 batas interval: 0 ≤ t ≤ 2 syarat awal: y(0) = 0,5 nilai N = 10. Langkah penyelesaian dengan metode Euler adalah:
Hitung nilai h ( step size ) H = (b – a ) / N = (2 – 0) / 10 = 0,2
Tentukan posisi titik-titik t i ti = a + ih = 0 + i (0,2), t i = 0,2i
Tetapkan nilai w0 yang diambil dari syarat y(0) = 0,5
Buat persamaan Euler dari soal
Wi+1 = wi + 0,2(wi – 0,04i2 + 1) Wi+1 = 1,2wi – 0,008i2 + 0,2 Dengan i = 0,1,2,3,...,N-1, maka N = 10, nilai i = 0,1,2,...,9. Ketika i = 0, maka w 0 = 0,5 W1 = 1,2w0 – 0,008(0)2 + 0,2 = 0,800000 Ketika i = 1 W2 = 1,2w1 – 0,008(1)2 + 0,2 = 1,152000 Ketika i = 2
36
W3 = 1,2w2 – 0,008(2)2 + 0,2 = 1,550000 Dan seterusnya hingga i = 10 Ketika i = 1 W10 = 1,2w9 – 0,008(9)2 + 0,2 = 4,8657845 Berikut adalah script VBA Excel untuk menghitung w1,w2,.., sampai w10. 9.3
Penyelesaian Diferensial Metode Runge Kutta
Dengan metode Euler, penyelesaian persamaan diferensial nilai error terus membesar seiring bertambahnya iterasi. Oleh karena itu metode Runge Kutta Orde-4 menawarkan penyelesaian persamaan diferensial dengan pertumbuhan error jauh lebih kecil. Persamaan-persamaan yang menyusun metode Runge-Kutta Orde-4.
Fungsi f(t,w) adalah fungsi turunan. Untuk memahami penerapan perhitungan dengan metode Runge Kutta penulis menggunakan contoh soal : y’ = y – t2 + 1 batas interval: 0 ≤ t ≤ 2 syarat awal: y(0) = 0,5 nilai N = 10. Jika N = 10, maka step-size bisa dihitung menggunakan persamaan:
Sekarangmari kita terapkanmetode Runge-KuttaOrde-4 ini. Untuk menghitung w 1, tahap-tahap perhitungannya dimulai dari menghitung k 1
Menghitung k2
37
Menghitung k3
Menghitung k4
Hitung W 1
Dengan menggunakan metode yang sama, maka w 2, w3, w4, dan seterusnya dapat dihitung dengan program VBA sebagai berikut.
38
BAB 10 INTEGRASI NUMERIS 10.1
Integrasi Numeris Metode Simpson
10.2
Integrasi Numeris Metode Runge Kutta
10.3
39