• Tidak ada hasil yang ditemukan

Laporan Praktikum 14 (3) ( ) Metode Komputasi Matematika. Catatan Video, Bahan Relevan dan Buku Syaifudin. Syarif Abdullah (G )

N/A
N/A
Protected

Academic year: 2021

Membagikan "Laporan Praktikum 14 (3) ( ) Metode Komputasi Matematika. Catatan Video, Bahan Relevan dan Buku Syaifudin. Syarif Abdullah (G )"

Copied!
9
0
0

Teks penuh

(1)

Laporan Praktikum 14 (3) (19-01-2015) Metode Komputasi Matematika Catatan Video, Bahan Relevan dan Buku Syaifudin

Syarif Abdullah (G551150381)

Matematika Terapan FMIPA Institut Pertanian Bogor

e-mail: syarif_abdullah@apps.ipb.ac.id 19 Januari 2016

Perulangan dan Kondisional

Scilab menyediakan beberapa statemen yang dapat digunakan untuk mengontrol alur eksekusi terhadap serangkaian statemen. Statemen-statemen tersebut yaitu for, while, if–else dan select– case, break dan continue.

For

Statemen for digunakan untuk melakukan eksekusi secara berulang (iterasi) dalam jumlah tertentu terhadap suatu blok-statemen. Bentuk umum statemen ini adalah sebagai berikut: for var = exp

blok-statemen end

Dimana var adalah variabel perulangan dan exp adalah ekspresi yang digunakan untuk mengontrol suatu perulangan for. Ekspesi perulangan biasanya berupa sebuah vektor inkremental, j:k atau j:d:k.

Statemen perulangan for juga dapat diletakkan di dalam sebuah statemen perulangan yang lain, seperti pada contoh di bawah ini.

-->for i=1:3 -->for j=1:3 -->H(i,j) = 1/(i+j-1); -->end -->end -->H

(2)

H =

1. 0.5 0.3333333 0.5 0.3333333 0.25 0.3333333 0.25 0.2

While

Statemen perulangan while digunakan untuk menangani suatu proses perulangan yang jumlah perulangannya tidak dapat ditentukan secara pasti. Bentuk umum dari statemen perulangan while adalah sebagai berikut:

while ekspresi then blok-statemen end

Blok statemen yang terdapat di dalam sebuah blok perulangan while akan dieksekusi secara berulang selama ekspresi yang diuji masih bernilai benar, proses perulangan akan dihentikan jika ekspresi yang diuji bernilai salah. Kata-kunci then dapat diganti dengan ENTER, do, simbol koma (,) atau simbol titik-koma (;).

Berikut ini sebuah contoh operasi perulangan dengan statemen while. -->eps = 1; -->while (eps + 1) > 1 --> eps = eps/2; -->end -->eps = 2*eps eps = 2.220D-16 Break

Statemen break digunakan untuk menghentikan suatu proses perulangan secara paksa. Pada suatu perulangan yang bersarang, statemen break hanya akan menghentikan proses perulangan dimana statemen break berada.

Berikut ini contoh penggunaan statemen break:

-->function y=my_sqrt(x)

-->// Penentuan akar kuadrat suatu bilangan x

--> y = x/2; // nilai awal --> while %t

--> y = (y + x/y)/2;

--> if abs(x - y^2) < 1e-6 then break end

(3)

-->endfunction -->my_sqrt(12.34) ans =

3.5128336 Continue

Di dalam suatu blok perulangan, penggunaan statemen continue akan menyebabkan statemen-statemen yang terletak di bawahnya tidak akan dieksekusi dan prosesnya dilanjutkan ke langkah perulangan berikutnya. Statemen continue yang terletak di dalam suatu perulangan yang bertingkat hanya akan berpengaruh terhadap blok perulangan yang melingkupinya saja. Contoh penggunaan statemen continue adalah sebagai berikut.

-->n = 5; -->x_even = []; -->while (length(x_even) < n) --> x = round(rand()*100); --> if (modulo (x, 2) ~= 0) --> continue --> end --> x_even($+1) = x; -->end

-->x_even' // 5 bilangan acak genap ans =

26. 12. 68. 52. 24. If-Else

Statemen if–else digunakan untuk mengontrol apakah suatu blok statemen akan dieksekusi atau tidak. Apabila ekspresi yang diuji dalam suatu blok kondisional yang mempunyai lebih dari dua macam pilihan maka bentuk kondisional yang sesuai adalah if-elseif-else yang mempunyai bentuk umum sebagai berikut:

if ekspresi_1 then

blok-statemen pertama elseif ekspresi_2 then blok-statemen kedua . . .

else

blok-statemen ke-n end

Statemen kondisional juga dapat dibuat bersarang atau berada di dalam statemen kondisional yang lainnya, seperti yang ditunjukkan pada contoh di bawah ini.

-->function uji(x, y)

-->// Fungsi untuk membandingkan nilai dari argumen x dan y

-->

--> if x == y

--> disp(string(x) + " dan " + string(y) + " adalah sama")

--> else --> if x < y

(4)

--> disp(string(x) + " lebih kecil daripada " + string(y))

--> else

--> disp(string(x) + " lebih besar daripada " + string(y))

--> end --> end

-->endfunction -->uji(%pi, %e)

3.1415927 lebih besar daripada 2.7182818 Select-Case

Statemen kondisional select-case cocok untuk digunakan jika ekspresi yang diuji dalam blok kondisional mempunyai nilai diskrit, baik berupa suatu data integer maupun string. Bentuk umum dari statemen select-case adalah sebagai berikut:

select ekspresi case ekspresi_1 then blok-statemen pertama case ekspresi_2 blok-statemen kedua . . . else blok-statemen ke-n end

Contoh penggunaan statemen select–case adalah sebagai berikut.

-->function n=nilai(z) --> select convstr(z,"u") --> case "A" then n = 4 --> case "B" then n = 3 --> case "C" then n = 2 --> case "D" then n= 1 --> else n = 0 --> end -->endfunction -->nilai("c") ans = 2.

Dalam suatu operasi kondisional, jika ekspresi yang diuji mempunyai nilai diskrit maka penggunaan statemen select-case adalah lebih cocok dibandingkan dengan statemen if-elseif-else. Hal ini karena blok statemen kondisional yang dibuat dengan statemen select-case lebih mudah untuk dibaca dan mempunyai bentuk yang lebih elegan.

Skrip

Skrip adalah sebuah file teks yang di dalamnya terdapat statemen-statemen Scilab. Pada saat suatu skrip dijalankan maka statemen-statemen yang terdapat di dalamnya akan dieksekusi seolah-olah statemen-statemen tersebut diketikkan pada Jendela Scilab.

(5)

Penyelesaian suatu perhitungan yang relatif panjang melalui sebuah file skrip merupakan cara yang lebih baik dan efektif dibandingkan penyelesaiannya melalui jendela Scilab. Hal ini karena jika ditemukan kesalahan dalam perhitungan atau dalam penulisan statemen dalam file skrip maka perbaikan kesalahannya hanya dilakukan terhadap statemen-statemen yang salah saja. Seandainya perhitungannya dilakukan melalui jendela Scilab maka semua statemennya harus ditulis ulang kembali disertai dengan perbaikan pada statemen-statemen yang salah. Keuntungan lainnya yaitu sebuah file skrip dapat digunakan sebagai dokumentasi dari suatu perhitungan yang telah dilakukan.

Fungsi/Functions

Suatu fungsi adalah sekumpulan statemen yang merepresentasikan sebuah komputasi tertentu. Suatu fungsi dapat dibuat dalam bentuk sebuah file teks (file-fungsi) atau dibuat secara langsung pada jendela Scilab.

File-Fungsi

File-fungsi adalah sebuah file teks yang di dalamnya terdapat statemen-statemen Scilab dimana statemen-statemen tersebut harus diitulis dengan sintaks sebagai berikut.

function [out1, out2, ...]=func_name(in1, in2, ...) statemen-statemen

endfunction

Dimana func_name adalah nama fungsi, in1, in2 adalah argumen-argumen input kemudian out1, out2 adalah argumen-argumen output. Pada fungsi yang tidak mempunyai argumen input penggunaan tanda kurung kiri dan kurung kanan, ( ), bersifat opsional. Pada fungsi-fungsi yang mempunyai argumen output tunggal penggunaan kurung-siku kiri dan kurung-siku kanan, [ ], bersifat opsional. Aturan penamaan fungsi adalah sama seperti aturan penamaan suatu variabel. Berikut ini beberapa hal yang sebaiknya dilakukan pada saat pembuatan sebuah fungsi.

 Pada bagian awal sebuah fungsi, dimasukkan beberapa baris komentar yang berisi tentang tujuan komputasi dari fungsi.

 Variabel-variabel yang terdapat di dalam suatu fungsi harus mudah dimengerti.  Terdapat penjelasan singkat tentang variabel-variabel yang digunakan.

 Menuliskan baris komentar pada bagian awal dari suatu blok statemen yang cukup panjang maupun pada blok-statemen untuk perhitungan yang cukup sulit.

 Menggunakan baris kosong untuk memisahkan suatu statemen dengan blok-statemen lainnya.

 Menggunakan indentasi pada blok-statemen perulangan dan kondisional.

 Menggunakan spasi dan tanda kurung dalam penulisan suatu ekspresi matematika sehingga ekspresinya mudah dibaca dan dipahami.

Contoh 1. (Deret Fibonacci). N Suku-suku awal dari deret Fibonacci [Fibonacci.sci]

function f=fibonacci(n)

// Fungsi untuk menghasilkan n-suku deret Fibonacci f = ones(1,n);

for k = 3:n

(6)

end endfunction

Setelah dilakukan eksekusi terhadap file-fungsi, fungsi-fungsi yang terdapat di dalamnya dapat dijalankan seperti halnya fungsi-fungsi yang telah terpasang di dalam Scilab.

-->fibonacci(5) ans =

1. 1. 2. 3. 5.

Pembuatan Fungsi dengan Fungsi Deff

Pembuatan sebuah fungsi baru secara langsung pada jendela Scilab dengan fungsi deff dapat dilakukan dengan menggunakan sintaks sebagai berikut:

deff("[out1,out2,...] = fname(in1,in2,...)", [blok_statemen]) dimana out1,out2 adalah argumen-argumen output, in1,in2 adalah argumen-argumen-argumen-argumen input dan blok_statemen adalah statemen-statemen untuk fungsi fname.

-->deff('z=tambah(x,y)','z=x+y')

-->deff("x=mutlak(y)","if y>0, x=y; else, x=-y; end") -->tambah(2,4) ans = 6. -->c = mutlak(-12.34) c = 12.34

Variabel Lokal dan Variabel Global

Variabel-variabel yang terdapat di dalam suatu fungsi adalah variabel lokal. Variabel-variabel tersebut hanya akan ada selama proses eksekusi terhadap fungsi berlangsung dan tidak mempunyai pengaruh terhadap variabel-variabel yang telah tersimpan dalam ruang-kerja meskipun mempunyai nama yang sama.

Ilustrasi mengenai variabel lokal dapat dilihat pada contoh di bawah ini.

-->function f=foo(n) --> n1 = n-1

--> printf('nilai n1 di dalam fungsi foo %i\n',n1) --> n2 = n-2;

--> f = n1*n2; -->endfunction -->n1 = 11; -->foo(n1)

nilai n1 di dalam fungsi foo 10 ans =

90.

Apabila variabel n1 dipanggil kembali maka nilainya masih tetap dan tidak berubah karena variabel n1 yang terdapat dalam fungsi foo merupakan variabel lokal. -->n1

(7)

n1 = 11.

Naum jika variabel n2 dipanggil maka akan muncul pesan kesalahan "undefined variable", karena variabel n2 hanya terdapat di dalam fungsi foo saja.

-->n2 !--error 4

undefined variable : n2

Variabel global adalah variabel yang tersimpan baik di dalam fungsi maupun di dalam ruang

kerja. Sebuah variabel dapat dibuat sebagai variabel global dengan menggunakan fungsi global yang mempunyai sintaks sebagai berikut:

global('var1', 'var2', ..., 'varn') global var1 var2 ... varn

dimana var1, var2, varn adalah nama-nama variabel global. Untuk merubah nilai suatu variabel global dari dalam sebuah fungsi maka kita juga harus menambahkan fungsi global ke dalam fungsi. Berikut ini ilustrasi mengenai variabel global.

-->global k -->k = 10; -->function f=plus_k(x) --> f = x + k; -->endfunction -->function rubah_k(a) --> global k --> k = a -->endfunction -->plus_k(5) ans = 15. -->rubah_k(9.63) -->k k = 9.63 -->plus_k(80) ans = 89.63

Input dan Output

Memasukkan Data dengan Fungsi Input

Selain melalui baris perintah, suatu data juga dapat dimasukkan dengan fungsi input dengan sintaks sebagai berikut.

(8)

x = input("teks", "string")

Dimana teks adalah keterangan tentang data yang akan dimasukkan. Jika data yang dimasukkan berupa string maka "string" harus digunakan sebagai argumen kedua pada fungsi input. Argumen "string" dapat disingkat dengan karakter tunggal "s".

Berikut ini contoh penggunaan fungsi input. n = input("Jumlah iterasi ?")

s = input("Metode ?","s")

Apabila kedua perintah tersebut dijalankan maka akan muncul tampilan sebagai berikut: Jumlah iterasi ?

Metode ?

Input dan Output

Memasukkan Data dengan Fungsi Input

Selain melalui baris perintah, suatu data juga dapat dimasukkan dengan fungsi input dengan sintaks sebagai berikut.

x = input("teks")

x = input("teks", "string")

Dimana teks adalah keterangan tentang data yang akan dimasukkan. Jika data yang dimasukkan berupa string maka "string" harus digunakan sebagai argumen kedua pada fungsi input. Argumen "string" dapat disingkat dengan karakter tunggal "s".

Menampilkan Nilai Suatu Variabel dengan Fungsi Disp

Selain dengan cara menuliskan nama variabelnya pada baris perintah, nilai dari suatu variabel var juga dapat ditampilkan pada Jendela Scilab dengan fungsi disp(var), seperti yang ditunjukkan pada beberapa contoh di bawah ini.

-->n = 100;

Input dan Output - 201 -->x = [3 5 2];

-->str = "Scilab software untuk komputasi numerik"; -->disp(n)

100.

-->disp(x) 3. 5. 2. -->disp(str)

Scilab software untuk komputasi numerik Mencetak Nilai Variabel dengan Fungsi Print

(9)

Sebuah variabel juga dapat dicetak nama dan nilainya ke dalam suatu file dengan fungsi print yang mempunyai sintak sebagai berikut:

print(nama_file, x1, x2, ..., xn)

Contoh penggunaan fungsi print adalah sebagai berikut.

-->x = 123; y = 999;

-->//menampilkan nilai variabel x dan y pada jendela Scilab -->print(%io(2),x,y) y = 999. x = 123.

Membuka dan Menutup File Data

Pada beberapa proses input dan output dengan suatu file, kadang filenya harus dibuka terlebih dahulu sebelum dapat digunakan dan kemudian ditutup kembali jika telah selesai dipergunakan.

Sebuah file dapat dibuka dengan fungsi file yang mempunyai sintaks sebagai berikut:

fid = file('open', fname, status)

Sebuah file juga dapat dibuka dengan fungsi mopen yang mempunyai sebagai berikut:

fid = mopen(fname, mode)

Ilustrasi penggunaan fungsi mopen dapat dilihat pada statemen-statemen berikut.

-->fid = mopen('C:\Temp\data3.txt','w');

-->mfprintf(fid, 'Konstanta-konstanta Matematika: \n') -->mfprintf(fid, 'pi = %15.12f\n', %pi)

Referensi

Dokumen terkait

Tenaga kesehatan memberikan informasi tentang rujukan anak balita yang menderita gizi buruk, dengan tujuan agar keluarga mampu mencari rujukan manakala terjadi

Pengembangan basis data imunisasi dasar lengkap dan lanjutan batita di Puskesmas Blega Kabupaten Bangkalan merupakan upaya untuk meningkatkan kualitas data dan informasi

Oleh karena itu, dalam menetapkan prioritas pembangunan bukan saja diperlukan pemilihan sektor unggulan, namun juga diperlukan pemilihan lokasi yang potensial bagi pengembangan

Tabel 2.4 Ringkasan Penelitian Terdahulu N o Peneliti/ Tahun Judul Penelitian Variabel Penelitian Metode Analisis Hasil Penelitian 1 Joko Pramono (2014) Analisis Rasio

Pemerintah telah membuat suatu peraturan tentang tingkat kesiapterapan teknologi (TKT) yang dihasilkan dari sebuah penelitian dalam Peraturan Meneteri Riset,

Penelitian ini dilakukan berdasarkan penelitian Rasbrant (2011) dengan tujuan untuk menguji kembali apakah pengumuman informasi buy back mempengaruhi abnormal

Dari beberapa kegiatan kerja praktek yang penulis kerjakan dalam kaitannya dengan sistem pengereman , Maka, Penulis bermaksud membahas bagaimana Sistem Pengereman ini dapat

bahwa untuk melaksanakan ketentuan Pasal 184 ayat (1) Undang-Undang Nomor 32 Tahun 2004 tentang Pemerintahan Daerah sebagaimana telah diubah dengan Undang-Undang