Posts Tagged ‘ Metode Iterasi ’

Solusi Persamaan Diskrit

Persamaan – persamaan hasil diskritisasi volume untuk perhitungan numeric, seperti pada gambar 1, dapat diselesaikan dengan berbagai metode. Metode – metode apapun yang digunakan, pada prinsipnya, dapat menyelesaikan persamaan – persamaan ini untuk mencari solusi dari sistem persamaannya sendiri. Namun, untuk perhitungan – perhitungan yang rumit dengan jumlah persamaan dan variable yang banyak, dimana computer digunakan, algoritma kalkulasi yang efisien serta bersahabat dengan performa computer yang ekonomis perlu untuk dipahami.

Secara umum, metode yang digunakan adalah metode langsung (Direct) dan tidak langsung (Indirect atau Iterative). Yang dimaksud dengan metode langsung adalah suatu metode analitis yang digunakan langsung untuk mencari solusi dari sistem persamaan, contohnya adalah metode aturan cramer dan eliminasi Gauss. Pada metode ini, jumlah operasi perhitungan yang dilakukan dapat diketahui sebelumnya, yaitu, untuk menyelesaikan sebanyak N persamaan dengan N variable yang tidak diketahui, diperlukan N3 operasi dimana sebanyak N2 koefisien harus disimpan pada memori computer.

Gambar 1. Contoh sistem persamaan linear

Tentunya, hal ini menjadi suatu hambatan tersendiri jika kemampuan computer yang akan digunakan mempunyai performa yang minim pada saat ingin dilakukan komputasi mengenai permasalahan, yang pada saat sudah didiskritisasi, membentuk suatu sistem persamaan dengan jumlah persamaan dan jumlah variable yang banyak sehingga akan diperlukan memori computer yang besar untuk menyimpan N2 koefisien.

Sedangkan metode tidak langsung atau iterative, merupakan metode yang berbasiskan terhadap aplikasi dari langkah – langkah/algoritma sederhana yang diulang – ulang pada sistem persamaan tersebut hingga sistem persamaan mencapai keadaan konvergen yang merepresentasikan solusi dari sistem persamaan tersebut. Pada metode iterative, banyaknya langkah – langkah perhitungan yang dilakukan tidak dapat diprediksi, dimana tipikalnya adalah sebanyak N perhitungan per satu kali iterasi. Kekurangan lainnya adalah, jika sistem persamaan tidak berada pada kondisi yang kondusif, maka konvergensi dari suatu sistem persamaan tidak dapat terjamin. Satu – satunya kelebihan dari penggunaan metode iterative adalah sedikitnya memori computer yang digunakan sebagai akibat dari algoritma yang mendesain agar computer hanya menyimpan koefisien – koefisien yang tidak nol. Simulasi – simulasi aliran fluida dapat memiliki jumlah persamaan dan variabel yang sangat banyak, mulai dari 1000 – 2 juta persamaan, yang tentunya dari sistem persamaan tersebut akan terdapat koefisien – koefisien nol, yang jika tidak disimpan pada memori computer, akan menghemat banyak ruang untuk performa computer.

Dikarenakan sistem persamaan Jacobi dan Gauss – Siedel yang lambat mencapai konvergensi pada saat sistem persamaan yang ditinjau mempunyai jumlah persamaan dan variable yang banyak, maka metode ini tidak digunakan pada prosedur kalkulasi CFD. Metode iterative selain Jacobi dan Gauss – Siedel, metode lain yang dapat digunakan adalah kalkulasi dengan menggunakan algoritma matrix tri – diagonal (TDMA) yang diperkenalkan oleh Thomas pada tahun 1949.

Tri – Diagonal Matrix Algorithm (TDMA)

TDMA merupakan metode kalkulasi iterative untuk komputasi CFD dua atau tiga dimensi dan merupakan algoritma standar untuk kalkulasi solusi persamaan aliran pada koordinat cartesius. Dapat diperhatikan salah satu contoh matriks tri – diagonal pada gambar 2.

Gambar 2. Contoh sistem persamaan yang membentuk matriks tri – diagonal

Pada gambar di atas, ϕ1 dan ϕn+1 adalah merupakan nilai batas yang diketahui. Bentuk umum dari setiap persamaan adalah seperti berikut,

Persamaan – persamaan pada gambar 2 dapat di atur ulang seperti berikut,

Gambar 3.

Untuk mendapatkan solusi terhadap ϕ, langkah kalkulasi yang pertama dilakukan adalah forward elimination dengan kemudian dilakukan back substitution untuk mendapatkan nilai – nilai ϕ. Inti dari forward elimination adalah mengatur ulang persamaan – persamaan pada gambar di atas. Dapat diperhatikan urutannya seperti pada gambar 4 untuk contoh forward elimination untuk ϕ3. Untuk langkah pertama, ϕ2 disubtitusi dari persamaan pertama seperti pada gambar 3 di atas.

Gambar 4. Forward Elimination  pada ϕ3

Setelah langkah pada gambar 4 diteruskan sampai ϕn, langkah back substitution dilakukan untuk kalkulasi solusi terhadap nilai – nilai ϕ. Dengan Back Substitution adalah langkah yang mencari solusi variable dari persamaan yang terakhir, dengan kemudian mensubtitusi persamaan terakhir tersebut ke persamaan sebelumnya, langkah ini terus dilakukan hingga nilai semua variable diperoleh.

Aplikasi TDMA

Pada kasus dua dimensi (lihat gambar 5), TDMA akan dilakukan dengan mengkalkulasi sistem persamaan pada satu arah dengan kemudian berpindah ke garis lainnya. Untuk lebih jelasnya, misal akan dilakukan suatu kalkulasi pada bidang dua dimensi seperti pada gambar 5, maka perlu dibuat sistem persamaan dari 1 sampai titik n. Setelah kalkulasi dari titik satu sampai titik n selesai, kalkulasi berpindah ke samping dengan arah yang sama dengan kalkulasi sebelumnya.

Gambar 5. Bidang dua dimensi

Misal, pada titik 2, persamaan yang terbentuk dapat berupa seperti pada gambar di bawah ini.

Gambar 6.

Untuk menyesuaikannya seperti persamaan pada gambar 2, maka persamaan di atas diatur seperti di bawah ini.

Gambar 7.

Dengan subskrip S, N, W, E, P adalah masing – masing koefisien dan variable sebelah selatan titik, koefisien dan variable sebelah utara titik, koefisien dan variable sebelah barat titik, koefisien dan variable sebelah timur titik, dan titik yang bersangkutan, serta b yang adalah suku sumber atau factor yang berkontribusi terhadap perubahan nilai – nilai atau distribusi variable ϕ pada daerah komputasi. Karena perhitungan bergerak dari selatan ke utara, maka nilai – nilai yang bersangkutan dengan titik sebelah barat dan sebelah timur titik yang bersangkutan dianggap diketahui (biasanya diberikan nilai nol). Begitu terus perhitungan dilakukan hingga variable – variable ϕ di setiap titik pada bidang diperoleh. Setelah itu, perhitungan dilakukan lagi (diulang/iterasi) hingga error terhadap solusi dari sistem persamaan mencapai toleransi yang telah ditetapkan sebelumnya.

Sedangkan untuk kasus tiga dimensi, perhitungan pada dasarnya sama seperti pada kasus dua dimensi. Namun, sebelum kalkulasi sistem persamaan diiterasi, pergerakan perhitungan bergerak ke atas/ bawah terlebih dahulu untuk mendapatkan variable pada semua daerah komputasi. Berikut contoh gambar untuk memperjelas aplikasi TDMA pada kasus tiga dimensi.

Gambar 8. Daerah komputasi tiga dimensi

Serta berikut contoh persamaan pada setiap titik di kasus komputasi tiga dimensi.

Untuk contoh kalkulasi pada model fisikanya, referensi versteeg [1] dapat menjadi bahan acuan. Sedangkan beberapa contoh – contoh kalkulasi iterasi dapat diperhatikan pada Metoda Iterative Bisection dalam kalkulasi solusi persamaan polynomial orde tiga, Kalkulasi ketinggian cairan pada tanki horizontal dengan menggunakan Microsoft Visual Basic. Serta berikut pembahasan  – pembahasan singkat mengenai kalkulasi solusi sistem persamaan, Kalkulasi solusi persamaan aljabar simultan, Metoda Iterasi.

Referensi:

[1] HK Versteeg. Malalasekera W. An Introduction to Computational Fluid Dynamic : Chapter 7. Longman Scientific and Technical. 1995.

Iklan

Metoda Iterasi

Post kali ini, mengenai metode – metode iterasi yang sering digunakan pada metode numerik untuk kalkulasi solusi suatu persamaan atau sistem persamaan. Jadi, inti dari Iterasi adalah, menyelesaikan atau mencari solusi dari suatu persamaan atau sistem persamaan tertentu dengan:

– mengestimasi nilai awal salah satu variabel

– menentukan toleransi error untuk solusi akhir

– Memulai perhitungan pada persamaan atau sistem persamaan dengan algoritma metode iterative

– Kemudian mengulang lagi perhitungan dengan adanya variabel yang digantikan oleh variable baru hasil perhitungan dari perhitungan sebelumnya sesuai dengan kondisi algoritma metode iterative yang digunakan

– Perhitungan terus berulang hingga error dari variabel hasil perhitungan, relatif terhadap suatu variabel lainnya, mencapai nilai yang sudah ditetapkan

Pengulangan – pengulangan perhitungan yang terjadi, berdasarkan error, adalah yang disebut dengan iterasi, dan dilakukan terus sampai error mengecil, yang mengartikan bahwa nilai variabel solusi sudah mulai menuju satu titik (Konvergen)

Berikut beberapa metode iterative yang sering digunakan untuk mencari solusi dari persamaan atau sistem persamaan:

1. Metode Bisection

2. Metode “False Position”

3. Metode Newton – Raphson

4. Metode Secant

5. Metode Aproksimasi “Succesive”

Berikut sedikit penjelasan mengenai metode – metode iterative yang disebutkan di atas:

1. Metode Bisection

Metode bisection merupakan metode yang digunakan untuk mencari solusi dari persamaan tertentu. Filosofi yang digunakan pada metode bisection adalah memperkecil rentang nilai variabel bebas yang di dalamnya terdapat solusi ingin dicari. Jadi, seni yang terdapat pada metode bisection ini adalah mencari rentangan nilai variabel bebas yang di dalamnya terdapat solusi yang diinginkan. Mungkin dapat diperhatikan pada gambar di bawah ini untuk lebih jelasnya.

Jadi, pada gambar di atas, dapat diperhatikan bahwa untuk menemukan solusi persamaan (akar persamaan), yang sesuai dengan persamaan yang ditunjukkan pada grafik tersebut, dipilih dua nilai a dan b yang merupakan nilai dari sumbu x. Salah satu ketetapan yang perlu untuk dijelaskan terlebih dahulu pada metode Bisection adalah, pada perkiraan nilai yang akan menjadi interval estimasi penentuan solusi akar persamaan (pada kasus gambar di atas, merupakan nilai a dan b), perlu agar nilai a dan b untuk menghasilkan nilai persamaan (f(a) dan f(b)) yang mempunyai tanda yang berlainan (+ atau -).

Setelah interval awal ditetapkan, maka iterasi dengan metode bisection dapat dilakukan, hal ini dilakukan dengan pertama – tama menentukan nilai x (pada gambar di atas, merupakan nilai x1) di tengah – tengah nilai a dan b. Setelah itu, dicari nilai persamaan untuk terhadap nilai x dan nilai a (f(x) dan f(a)). Kemudian, jika tanda pada nilai persamaan f(x) dan f(a) sama, maka pada kalkulasi berikutnya, x1 akan berperan menjadi a pada perhitungan selanjutnya. Namun, jika tidak, maka nilai x1 akan berperan sebagai nilai b pada perhitungan selanjutnya.

Selanjutnya kalkulasi dihitung kembali dengan interval baru yang dimana salah satu dari nilai intervalnya digantikan oleh nilai x1, sesuai dengan ketetapan tanda pada nilai persamaan di perhitungan sebelumnya. Setelah itu, dicari kembali nilai tengah antara interval yang baru, dan perhitungan diulang lagi (iterasi) sampai pada tingkat keakuratan tertentu (e). Dimana e < (b – a)/b. Untuk lebih jelasnya, dapat diperhatikan gambar di bawah ini yang mengilustrasikan langkah iterative pada metode Bisection, atau dengan memperhatikan posting saya sebelumnya, Metoda Iterative Bisection dalam kalkulasi solusi persamaan polynomial orde tiga.

2. Metode “False Position”

Metode “false position” merupakan improvisasi dari metode Bisection. Jadi, pada metode “false position” tetap digunakan dua nilai interval (misal a dan b) di antara nilai solusi akar persamaan yang memiliki tanda berlainan pada masing – masing nilai persamaannya. Namun, yang berbeda dari iterasi “false position” dengan metode Bisection adalah pencarian nilai diantara interval pertama yang dicari dengan menarik garis lurus antara f(a) dan f(b) dan mengambil nilai x1 (nilai di antara a dan b) dari perpotongan garis f(a) -> f(b) dengan sumbu x. Jadi, dibandingkan dengan mengambil nilai x1 sebagai pertengahan nilai a dan b pada metode bisection, algoritma pada metode “false position” dapat diartikan memiliki jumlah pengulangan perhitungan yang lebih kecil (cepat) dibandingkan metode bisection karena dengan mengambil nilai x1 sebagai perpotongan garis f(a) -> f(b), maka nilai x1 lebih mendekati solusi akar persamaan dibandingkan metode bisection. Lebih jelasnya, dapat diperhatikan pada gambar di bawah ini (dengan berikut variabel – variabel pada gambar yang relevan dengan variabel – variabel pada penjelasan paragraf di atas, a = z1, b = z2, x1 = zs, f(x) = g(z), f(a) = g(z1), f(b) = g(z2), f(x1) = g(zs).

Persamaan untuk menentukan nilai zs (sesuai dengan gambar di atas) dapat diturunkan dari persamaan tangensial sudut. Singkatnya, nilai zs dapat ditentukan sesuai dengan persamaan sebagai berikut.

kemudian, dicari nilai fungsi persamaan berdasarkan nilai zs. Jika masih diluar toleransi keakuratan, maka kalkulasi diulang kembali (iterasi) dengan mengganti salah satu nilai z1 atau z2 dengan nilai zs sesuai dengan ketetapan tanda nilai fungsi z1 dan zs. Jadi, jika tanda g(z1) sama dengan tanda g(zs), maka nilai z1 pada perhitungan selanjutnya digantikan dengan nilai zs, namun jika tidak, maka z2 yang digantikan oleh zs. Jadi, perhitungan tetap beriterasi selama g(zs) belum mendekati nilai 0, tentunya sesuai dengan toleransi keakuratan yang sudah ditetapkan.

3. Metode Newton – Raphson

Metode Iterasi Newton – Raphson merupakan metode yang benar – benar berlainan dengan metode – metode iterasi sebelumnya yang sudah dijelaskan. Untuk lebih jelasnya, perlu untuk pertama – tama memperhatikan gambar di bawah ini.

Jadi, dipilih suatu nilai estimasi xo sembarang. Kemudian ditentukan titik x1 yang merupakan antara perpotongan garis singgung f(x0) dengan sumbu x. Dimana kemiringan garis singgung f(x0) adalah f'(x0). Persamaan untuk mendapatkan nilai x1 dapat diperoleh dengan meninjau persamaan tangensial sudut antara garis singgung f(x0) dengan sumbu x, yang adalah

yang sederhananya adalah sebagai berikut

Kemudian, kalkulasi diulang kembali dengan menggati nilai x0 dengan x1 untuk mencari nilai x2. Berikut bentuk umum persamaan di atas,

Jadi, perhitungan terus beriterasi sampai pada nilai f(x(i+1)) atau selisih antara xi dan x(i+1) mendekati nol atau sesuai dengan tingkat tolerasi keakuratan yang diinginkan. Dari algoritma perhitungan yang dijelaskan ataupun dari gambar ilustrasi metode newton – raphson di atas , dapat kita ambil kesimpulan bahwa iterasi pada metode Newton – Raphson jauh lebih cepat dibandingkan dengan iterasi pada metode Bisection dan “False Position”. Namun, kekurangan yang dimiliki oleh metode Newton – Raphson adalah perlunya ketepatan dalam pemilihan nilai estimasi awal, yang dengan demikian menyebabkan tidak terjaminnya konvergensi pada metode newton – Raphson. Untuk lebih mudahnya, dapat diperhatikan salah satu contoh divergensi pada gambar di bawah ini.

Gambar di atas mengilustrasikan salahnya estimasi nilai awal pada kalkulasi newton – raphson. Jadi, dengan menetapkan estimasi nilai x0 seperti pada gambar di atas, berakibat kepada kemiringan garis singgung yang nilainya mendekati nol (f'(x2) mendekati nol). Jadi, dapat juga dilihat pada persamaan umum newton – raphson di atas, yang perhitungannya memerlukan ketetapan awal yang dimana f'(xi) tidak boleh sama dengan nol atau mendekati nol. Karena, sesuai peninjauan grafis, jika kemiringan garis singgung fungsi sama dengan nol, maka garis singgung tidak akan pernah memotong sumbu x yang berakibat tidak diperolehnya estimasi lanjutan nilai x.

4. Metode Secant

Metode secant adalah metode yang menyederhanakan perhitungan yang akan dilakukan, relatif terhadap metode Newton – Rephson. Penyederhanaan yang dilakukan adalah dengan mengeliminasi kalkulasi f'(x) pada algoritma. Hal ini dikarenakan, sering suatu bentuk persamaan tertentu mempunyai bentuk persamaan yang kompleks, rumit, dan panjang sehingga memerlukan waktu komputasi yang lebih lama.

Pada metode iterative secant, diperlukan dua nilai estimasi awal, yang dimana nilai ini tidak perlu merupakan interval yang di dalamnya terdapat solusi akar persamaan. Jadi, jika merujuk dari gambar di atas, dengan z1 dan z2 adalah merupakan dua nilai estimasi awal, ditarik garis secant antara g(z1) dan g(z2). Perpotongan antara garis secant tersebut dengan sumbu x, menghasilkan nilai zs(1). Selanjutnya, ditarik kembali garis secant antara g(z2) dan g(zs(1)) yang akan berpotongan dengan sumbu x di zs(2). Kemudian berlanjut lagi dengan menarik garis secant antara g(zs(1)) dan g(zs(2)) yang akan berpotongan di nilai zs selanjutnya. Begitu seterusnya hingga nilai g(z) mendekati nol sesuai dengan toleransi keakuratan yang telah ditetapkan sebelumnya. Namun, estimasi nilai awal tetap merupakan faktor penting dalam konvergensitas iterasi. Oleh karena itu, sama halnya dengan metode newton – raphson, metode secant tidak menjamin suatu konvergensitas iterasi di semua nilai estimasi awal solusi.

Persamaan berikut ini, yang diturunkan dari persamaan tangensial dapat diperhatikan seperti berikut.

dengan g'(z2) dikalkulasi sesuai dengan perhitungan berikut.

setelah subtitusi persamaan g'(z) ke dalam persamaan zs(1) dan menyederhanakannya, diperoleh persamaan sebagai berikut.

Jadi, dari penjelasan di atas, ketidak – ikutsertaan kalkulasi derivasi dari fungsi persamaan yang ingin dicari solusinya, menyebabkan metode secan mempunyai waktu iterasi yang relatif lebih cepat dibandingkan metode Newton – Raphson. Namun, sama halnya juga dengan metode Newton – Raphson, metode secant tidak menjamin suatu konvergensitas iterasi di semua nilai estimasi awal solusi.

5. Metode Aproksimasi “Successive”

Metode aproksimasi suksesive adalah metode iterasi yang sangat mudah untuk diprogram di komputer. Jadi, inti dari algoritma metode iterasi ini adalah merubah bentuk dari suatu fungsi f(x) = 0 menjadi x = g(x). Dengan membayangkan bahwa terdapat garis y = x dan y = g(x), maka solusi akar persamaan untuk f(x) terletak pada perpotongan garis y = x dan kurva y = g(x). Berikut ilustrasinya,

Dimana yang dimaksud dengan phi(x) pada gambar di atas adalah g(x). Jadi, secara umum,

x1 = g(x0), x2 = g(x1), …, x( i+1) = g(xi), …, xn = g(x(n-1))

Jadi solusi akan diperoleh pada saat interval relative xi dan x(i+1) atau g(i) dan g(i+1) berada pada toleransi keakuratan yang sudah ditetapkan sebelumnya.

Metoda Iterative Bisection dalam kalkulasi solusi persamaan polynomial orde tiga

Pada posting kali ini, saya ingin menyampaikan algoritma kalkulasi solusi persamaan polynomial orde tiga dengan metode iterative bisection pada microsoft Visual Basic.

Dapat diperhatikan pada gambar – gambar dibawah ini, program yang sudah saya buat beserta algoritmanya.

Jadi, pertama – tama, untuk mencari akar persamaan yang koefisiennya sudah diinput,perlu untuk dilihat terlebih dahulu plot dari nilai x terhadap nilai y pada listbox “nilai x” dan “nilai y”. Setelah memasukkan rentang nilai x dan inklinasinya (“Interval”), maka dengan menekan tombol “hitung fungsi” maka plot nilai y pada rentang nilai x yang sudah ditentukan dapat diperhatikan. Seandainya terdapat dua nilai y yang memotong sumbu x, jika y pertama kurang dari nol, maka y kedua lebih dari nol, begitu pula sebaliknya, maka solusi persamaan polinomial terdapat di antara nilai x pertama dan kedua. Jika tidak terdapat kondisi seperti yang telah disebutkan di atas, maka tekan tombol “reset” dan definisikan rentang nilai x yang baru.

Setelah ditemukan rentang nilai x, x pertama dan x kedua, yang di dalamnya terdapat solusi persamaan, maka nilai x pertama tersebut akan diinput ke “textbox” “x1” dan x kedua ke “textbox” “x2”. Setelah diinput nilai keakuratan relatif, dengan menekan tombol “Hitung akar” maka nilai akar akar tercantum di “Listbox” “Akar” dengan jumlah iterasi yang dapat diperhatikan pada “Textbox” “Jumlah Iterasi”. Setelah itu, untuk mencari akar yang kedua dan ketiga, ulangi langkah pencarian rentang nilai x –> Reset x1 dan x2 –> input nilai x1 dan x2 yang baru, dan –> Hitung akar”, Begitu seterusnya sampai semua solusi akar persamaan polinomial ditemukan.

Berikut algoritma yang sudah disusun pada Microsoft Visual Basic.

Yang ditampilkan pada gambat di atas adalah, secara berurutan, algoritma untuk plot nilai x dan y (langkah pertama dalam mencari rentang nilai x yang di dalamnya terdapat solusi persamaan) dan algoritma untuk menghitung akar dengan metode bisection.

Dapat diperhatikan pada gambar pertama, algortitma untuk menghitung nilai x dan y dengan h sebagai nilai inklinasi. Dalam algoritma kali ini, fungsi loop digunakan untuk memplot nilai y selama nilai x masih di bawah batas atas rentang yang telah ditentukan.

Pada gambar kedua, ditampilkan algoritma untuk kalkulasi nilai solusi persamaan dengan metode iterasi bisection, dengan e adalah nilai keakuratan relative. Jadi setelah nilai x1 dan x2 (masing – masing merupakan nilai untuk x pertama dan kedua yang merupakan rentang nilai dimana di dalamnya terdapat solusi persamaan) dimasukkan, akan dikalkulasi nilai x3 yang merupakan nilai tengah x1 dan x2. Kemudian nilai persamaan berdasarkan x1 dan x3 dihitung. Kemudian digunakan fungsi “If” untuk mengkondisikan peran nilai x3 pada “loop” selanjutnya, akan menjadi nilai x1 atau x2. Jadi, jika tanda (+ atau -) nilai persamaan berdasarkan nilai x1 sama dengan tanda nilai persamaan berdasarkan x3, maka pada “loop” selanjutnya, x3 akan berperan sebagai x1. Namun, jika tidak, x3 akan berperan sebagai x2. Begitu seterusnya, “loop” berjalan, hingga keakuratan relatif (Abs((x2-x1)/x2)) kurang atau sama dengan nilai keakuratan relatif yang sudah ditetapkan.

Berikut contoh kalkulasi pada program yang sudah dijalankan untuk mencari solusi persamaan,

f(x) = (x^3) – 4x + 1

Pada ketiga gambar di atas, secara berurutan, adalah langkah – langkah dalam kalkulasi solusi akar persamaan pertama, kedua, dan ketiga. Dengan nilai – nilai akar dapat diperhatikan pada “Listbox” “Akar”.

Kiranya sekian yang dapat saya sampaikan kali ini. Semoga Bermanfaat.

Wassalam

 

Catatan: untuk identifikasi tanda pada suatu besaran numerik, pada microsoft Visual Basic, digunakan fungsi sgn (), jadi jika terdapat code sgn (-3), maka visual basic akan membacanya sebagai -1, dan jika terdapat code sgn (3), maka visual basic akan membacanya sebagai 1.