PERBANDINGAN DAN LOGIKA DALAM MATEMATIKA
NAMA: ELAN HUSAINI
NIM : 411421107
KELAS: B
TUGAS: KOMPUTASI DAN PEMOGRAMAN
OPERASI LOGIKA
Dasar operasi logika sangat penting jika kita ingin mahir dalam Aljabar Boolean. Dengan begitu kita bisa lebih mudah saat membuat pemrograman dengan tipe data Boolean yang hasilnya benar atau salah. Operasi logika yang dimaksudkan adalah sebuah kombinasi variable biner yang berupa masukan dan keluaran dari sebuah sistem rangkaian digital.
Operasi logika proses yang melibatkan beberapa operator logika seperti AND, OR, NOR, XOR dan operator logika lainnya yang menghasilkan nilai true dan false atau menghasilkan nilai benar dan salah. operasi logika ini sangat sering sekali digunakan di algoritma dan bahasa pemrograman dasar.
Operasi logika adalah operasi yang bersifat elemen dengan elemen. Objek-objek yang diuji dalam suatu operasi logika dapat berupa suatu eksperesi perbandingan maupun berupa suatu konstanta Boolean.
Operasi perbandingan biasanya digunakan sebagai ekspresi yang diuji dalam suatu statemen kondisional if-else atau sebagai ekspresi yang digunakan untuk mengontrol proses interaksi dalam suatu statemen perulangan while.
Berikut ini adalah contoh pengunaan operasi perbandingan yang terdapat di dalam suatu blok kondisional if-else.
Penggunaan operasi perbandingan pada suatu blok perulangan while dapat dilihat pada contoh dibawah ini.
suatu operasi logika juga dapat diterapkan terhadap objek-objek numerik. pada kasus ini, angka nol akan dianggap sebagai konstanta Boolean salah (F) dan sembarang angka lainnya selain angka nol akan dianggap sebagai konstanta Boolean benar (T). berikut ini contoh operasi logika terhadap objek-objek numerik.
FUNGSI-FUNGSI LOGIKA
1.) And
- and (A) atau and (A, '*') : fungsi logika and dioperasikan terhadap semua elemen matrik.
- and (A,1) atau and (A,'r') : fungsi and dioperasikan terhadap elemen-elemen setiap vektor kolom yang menyusun matrik A.
- and (A,2) atau and (A, 'c') : fungsi and dioperasikan terhadap elemen-elemen pada setiap vektor baris yang menyusun matrik A.
contoh penggunaan fungsi and yaitu :
2.) Or
- Or (A) atau or (A, '*') : fungsi logika or dioperasikan terhadap semua elemen matrik.
- Or (A,1) atau or (A,'r') : fungsi or dioperasikan terhadap elemen-elemen setiap vektor kolom yang menyusun matrik A.
- Or (A,2) atau or (A, 'c') : fungsi or dioperasikan terhadap elemen-elemen pada setiap vektor baris yang menyusun matrik A.
contoh penggunaan fungsi or yaitu :
FUNGSI-FUNGSI PENGUJIAN
isdef ("x") : Untuk mendapatkan informasi mengenai eksistensi variabel x.
isreal (x) : untuk memeriksa apakah semua elemen dari matriks x merupakan bilangan real.
isinf (x) : Untuk memeriksa apakah elemen-elemen matrik x merupakan konstranta takhingga.
isnan (x) : Untuk memeriksa apakah elemen-elemen matrik x merupakan konstranta takhingga.
isempty (x) : Untuk memeriksa apakah x merupakan matrik kosong.
isequal (x,y) : Untuk memeriksa apakah x dan y adalah matrik yang sama.
isvector (x) : Untuk memeriksa apakah x adalah sebuah vektor.
Contoh ilustrasi penggunaan dari fungsi-fungsi pengujian yaitu :
informasi yang dihasilkan oleh suatu fungsi pengujian kadang kala diperlukan sebagai kondisi yang diuji didalam sebuah statemen kondisional, seperti yang ditujukan pada contoh dibawah ini :
PENGULANGAN DAN KONDISIONAL
- WHILE
Fungsi-fungsi pengujian
Tabel 10.4 adalah daftar dari beberapa fungsi yang dapat digunakan untuk berbagai macam operasi seperti memeriksa eksistensi sebuah variabel, menguji tipe dan nilai dari elemen-elemen matrik dan lain sebagainya. Output yang dihasilkan oleh fungsi-fungsi tersebut adalah konstanta boolean T (true, benar) atau konstanta boolean F (false, salah) tergantung pada hasil pengujiannya.
Tabel 10.4 Fungsi-Fungsi Pengujian
Fungsi | Deskripsi |
isdef(''x'') | untuk mendapatkan informasi mengenai eksistensi variabel x |
isreal(x) | untuk memeriksa apakah semua elemen dari matrik x merupakan bilangan real |
isinf(x) | untuk memeriksa apakah elemen-elemen matrik x merupakan konstanta tak terhingga |
isnan(x) | untuk memeriksa apakah elemen-elemen matrik x merupakan konstanta tak terhingga |
isempty(x) | untuk memeriksa apakah x merupakan matrik kosong |
isequal(x,y) | untuk memeriksa apakah x dan y adalah matrik yang sama |
isvector(x) | untuk memeriksa apakah x adalah sebuah vektor |
Berikut ini ilustrasi penggunaan dari fungsi-fungsi pengujian
Informasi yang dihasilkan oleh suatu fungsi pengujian kadangkala diperlukan sebagai kondisi yang diuji di dalam sebuah statemen kondisional, seperti yang ditunjukkan pada contoh di bawah ini.
Fungsi my_abs pada contoh ini adalah emulasi dari fungsi abs yang telah terpasang di dalam Scilab.
BAB 11
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.
Contoh perulangan for yang menggunakan vektor inkremental i:j sebagai ekspresi yang digunakan untuk mengontrol suatu perulangannya adalah sebagai berikut :
Contoh perulangan for yang menggunakan vektor inkremental i:j:k sebagai ekspresi perulangannya adalah sebagai berikut :
Selain berupa suatu vektor inkremental, ekspresi yang digunakan untuk mengontrol suatu perulangan for juga dapat berupa sebuah vektor atau matrik sembarang. Misalkan V adalah sebuah vektor atau matrik yang digunakan sebagai ekspresi perulangan maka statemen perulangannya secara umum dapat dinyatakan sebagai berikut:
for var = V
blok-statemen
end
Pada sebuah perulangan yang menggunakan suatu vektor sebagai ekspresi perulangannya maka jumlah perulangannya adalah sebanyak jumlah elemen vektor dimana pada setiap langkah perulangan ke-i nilai variabel iterasinya adalah nilai elemen ke-i, seperti yang diperlihatkan pada contoh di bawah ini.
Kemudian pada suatu perulangan yang menggunakan suatu matrik sebagai ekspresi perulangannya maka jumlah perulangannya adalah sebanyak jumlah kolom matrik dan pada setiap langkah perulangan ke-i nilai variabel iterasinya adalah vektor kolom ke-i, seperti yang diperlihatkan pada contoh berikut ini.
Statemen perulangan for juga dapat diletakkan di dalam sebuah statemen perulangan yang lain, seperti pada contoh di bawah ini.
Penggunaan statemen for pada sebagian besar contoh-contoh yang telah diberikan hanya sebagai ilustrasi saja untuk memperjelas penggunaan statemen for. Pada beberapa contoh di atas, statemen for dapat diganti dengan statemen lain yang bebasis vektor.
Penggunaan statemen for sebaliknya hanya digunakan ketika statemen yang berbasis vektor sulit atau tidak dapat digunakan, seperti pada perhitungan dibawah ini,
pada perhitungan ini penggunaan statemen for tidak dapat dihindari dan digantikan dengan statemen lain yang berbasis vektor.
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-statemenakan
end
Blok statemen yang terdapat di dalam sebuah blok pengulangan 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.
Contoh berikutnya yang menggambarkan penggunaan statemen perulangan while adalah sebagai berikut.
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:
Pada contoh ini, ekspresi logika yang diuji pada statemen while nilainya selalu benar (%t) sehingga statemen break digunakan untuk menghentikan proses perulangannya jika suatu kondisi tertentu telah dipenuhi.
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.
Penggunaan statemen continue di dalam suatu blok perulangan kadang dapat dihindari dengan menggunakan statemen-statemen lain yang ekuivalen. Sebagai contoh, perhitungan di atas dapat diselesaikan tanpa harus menggunakan statemen continue dengan statemenstatemen sebagai berikut
Seperti yang terlihat pada contoh ini, blok statemen yang tidak menggunakan statemen continue lebih ringkas dan lebih mudah dibaca daripada blok statemen yang menggunakan statemen continue.
If-Else
Statemen if–else digunakan untuk mengontrol apakah suatu blok statemen akan dieksekusi atau tidak. Bentuk paling sederhana dari statemen ini adalah sebagai berikut:
If ekspresi then
Blok-statemen
End
Blok statemen yang terletak di dalam blok if hanya akan dieksekusi jika ekspresi yang diuji bernilai benar. Kata-kunci then dalam blok kondisional if-else dapat diganti dengan ENTER, tanda koma (,) atau tanda titik-koma (;).
Berikut ini adalah contoh penggunaan statemen if:
Contoh lain penggunaan statemen if adalah sebagai berikut:
Apabila terdapat dua alternatif pilihan untuk ekspresi yang diuji dalam blok kondisional maka blok kondisional if-else cocok untuk digunakan.
If ekspresi then
Blok-statemen pertama
Else
Blok-statemen kedua
End
Pada blok kondisional if-else jika ekspresi yang diuji mempunyai nilai benar maka blokstatemen pertama yang akan dieksekusi namun jika ekspresi yang diuji bernilai salah maka blok-statemen kedua yang akan dieksekusi.
Contoh penggunaan statemen if - else adalah sebagai berikut:
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
Pada blok kondisional if-elseif-else, suatu blok-statemen akan dieksekusi jika ekspresi yang diuji untuk blok-statemen tersebut mempunyai nilai benar. Apabila semua ekspresi yang diuji tidak ada yang mempunyai nilai logika benar maka blok-statemen yang terdapat pada blok else yang akan dieksekusi. Blok else bersifat opsional dan dapat diabaikan apabila tidak diperlukan.
Berikut ini adalah contoh penggunaan statemen if-elseif-else:
Statemen kondisional juga dapat dibuat bersarang atau berada di dalam statemen kondisional yang lainnya, seperti yang ditunjukkan pada contoh di bawah ini.
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
Pada blok kondisional select-case, jika ekspresi yang diuji mempunyai nilai yang sama dengan nilai ekspresi dari suatu case maka blok-statemen pada case tersebut yang akan dieksekusi. Namun jika nilai dari ekspresi yang diuji tidak ada yang sama dengan salah satu dari nilai ekspresi pada suatu case maka blok statemen yang terdapat pada blok else yang akan dieksekusi. Blok else bersifat opsional dan dapat tidak digunakan jika tidak diperlukan.
Berikut ini contoh penggunaan statemen select-case.
Contoh lain penggunaan statemen select-case adalah sebagai berikut.
Dalam suatu operasi kondisional, jika ekspresi yang diuji mempunyai nilai diskrit maka penggunaan statemen select-case adalah lebih cocok dibandingkan dengan statemen ifelseif-else. Hal ini karena blok statemen kondisional yang dibuat dengan statemen select-case lebih mudah untuk dibaca dan mempunyai bentuk yang lebih elegan.
BAB 12
EDITOR TEKS SCINOTES
SciNotes adalah sebuah program editor teks yang disediakan oleh Scilab untuk memudahkan pembuatan atau pengembangan sebuah file skrip atau fungsi.SciNotes dapat dijalankan melalui menu Application (SciNotes yang terdapat pada jendela konsol Scileb atau dengan menggunakan perintah editor atau scinotes. Gambar berikut ini adalah tampilan dari jendela editor taks SciNotes.
SciNotes menyediakan fitur-fitur menarik yang sangat berguna pada waktu pembuatan atau pengeditan suatu file skrip atau fungsi. Fitur-fitur tersebut antara lain sebagai berikut:
- Penggunaan warna-warna tertentu untuk memperjelas sintaksis suatu statemen.
- Identitas secara otomatis pada saat penulisan suatu blok statemen perulangan atau kondisional.
- Dapat memperbaiki indentitasi pada saat statemen-statemen yang diblok.
- Autocompletion terhadap operator atau kunci-kunci.
Pencarian dan penggantian terhadap suatu kata atau frasa yang terhadap suatu kata atau frasa yang terdapat didalam file yang sedang dibuka.
Berikut ini adalah sebuah ilustrasi pembuatan sebuah fungsi dalam SciNotes.
Gambar 12.1 Editor Teks SciNotes
File skrip atau fungsi yang telah selesai dibuat dalam SciNotes dapat dieksekusi kedalam konsol Scilab melalui menu Execute atau dengan menggunakan tombol klik kanan pada mouse.
BAB 13
SKRIP
Skrip adalah suatu file teks yang di dalamnya terdapat statemen-statemen Scilab. Pada saat suatu skrip dijalankan maka statemen-statemen yang terdapat didalamnya akan dieksekusi seolah-olah statemen-statemen tersebut diketikkan pada jendela Scilab.
Pembuatan Skrip
Pada dasarnya suatu file skrip dapat dibuat dengan menggunakan sembarang program editot teks,seperti notepad. Namun cara terbaik dalam pembuatan sebuah file skrip yaitu dengan program editor teks SciNotes karena program tersebut merupakan teks editor yang disediakan oleh Scilab untuk memudahkan pembuatan sebuah file skrip atau file funfgsi.
Sebuah skrip yang telah selesai dibuat dengan teks editpr Scilab dapat disimpan dengan menggunakan menu File (save). Meskipundapat digunakan sembarang eks tensi,namun sebuah file skrip sebaiknya disimpan dengan ekstensi sce.
Contoh 1. ( Deret Fibonacci). Berikut ini adalah sebuah skrip [fibo.sce] untuk menentukan sejumlah 10 suku awal dari deret Fibbonacci.
Cara Menjelaskan Suatu Skrip
Statemen - statemen yang terdapat di dalam sebuah skrip yang sedang dibuka pada jendela SciNotes dapat dijalankan melalui melalui menu Execute. Apabila skrip [fibo.sce] pada Contoh 1 dieksekusi melalui menu Excute (File with no Echo) maka tampilan berikut ini akan muncul pada jendela Scilab.
30 suku pertama deret Fibonacci :
Sebuah file skrip yang tersimpan pada sebuah direktory dapat dieksekusi dengan statemen exec(file_skrip) dimana file_skrip adalah nama filenya . apabila filenya tersimpan pada direktori kerja maka argumen file_skrip cukup dinyatakan dengan menggunakan nama filenya saja,seperti contoh dibawa ini
Namun jika filenya tidak tersimpan pada direktori kerja maka argumen file_skrip harus berupa nama file skrip dan nama direktorinya,seperti yang contoh dibawah ini:
Apabila dibelakang statemen exec(file_skrip) tidak ditambahkan tambahkan tanda titik-koma (;) maka statemen-statemen yang terdapat didalam skrip yang dieksekusi akan ditampilkan pada jendela Scilab.
Contoh 2. (Deret Bilangan Prima)
berikut ini adalah sebuah skrip untuk membuat skrip untuk membuat deret bilangan prima yang nilainya lebih kecil dari suatu bilangan n.
Anggap skrip ini bernama ["prima.sce"]. Eksekusi terhadap file skrip ini untuk mencari deret bilangan prima yang lebih kecil dari bilangan 30 akan menghasilkan tampilan seperti yang diperlihatkan dibawah ini.
Kelebihan dan Kelemahan Skrip
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 ditemukan kesalahan dalam perhitungan atau dalam penulisan sstastatemen-statemen dalam file skrip maka perbaikan kesalahannya hanya dilakukan terhadap statemen-statemen yang salah. Keuntungan lainnya yaitu sebuah file skrip dapat digunakan sebagai dokumentasi dari suatu perhitungan yang telah dilakukan.
Sayangnya untuk suatu perhitungan dengan data yang berbeda maka harus dilakukan pengeditan terlebih dahulu terhadap file skripnya dan setelah itu melakukan eksekusi untuk melihat hasil perhitungannyaperhitungannya. Untuk kondisi semacam ini penggunaan skrip menjadi tidak prektis dan sebaiknya digunakan file fungsi penjelasan rinci mengenai file fungsi.
Bab 14
FUNGSI
Suatu fungsi adalah sekumpulan statemen yang mempresentasikan sebuah komputasi tertentutertentu. Suatu fungsi dapat dibuat dalam bentuk sebuah file teks (file-fungsi) atau dibuat secara pada jendela Scilab.
File Fungsi
File-fungsi adalah sebuah file teks yang didalamnya terdapat statemen-statemen Scilab dimana statemen-statemen harus ditulis dengan sintaks sebagai berikut.
Dimana func_name adalah nama fungsifungsi, in1, in2, adalah argumen-argumen input Kemudian out1, out2, adalah argumen-argumen output. Pada fungsi yang tidak mempunyai argumen input penggunaan tanda kurung kanan ( ) bersifat opsional pada fungsi-fungsi yang mempunyai argumen output tunggal penggunaan kurung-siku kiri dan kurung siku kanan [ ], bersifat opsionalopsional. Pada fungsi argumen output tunggal penggunaan kurung siku kiri dan kurung siku kanan, [ ] bersifat opsional. Aturan penawaran 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 komentar yang berisi tentang tujuan komputasi dari fungsi.
- Variabel-variabel yang terdapat dalam suatu fungsi yang 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 blok-statemen dengan blok-statemen lainnya.
- Menggunakan indentitasi pada blok-statemen perulangan dan kondisional.
- Menggunakan spasi dan tanda kurung dalam penulisan suatu ekspresi matematika sehingga ekspresinya mudah dibaca dan dipahami.
Sebuah fungsi yang dituli dengan gaya penulisan yang baik akan mudah dibaca dan dimengerti. Manfaat lainnya yaitu proses pengecekan atau perbaikan jika ada kesalahan dalam fungsi yang telah dibuat dapat dilakukan dengan mudah.
Sebuah file-fungsi yang telah dibuat dengan teks editor SciNotes dapat disimpan dalam sebuah file tertentu melalui file (save). Meskipun dapat digunakan sembarang ekstensi namun sebaiknya suatu file fungsi disimpan dengan ekstensi sci.
Contoh 1 (Deret Fibonacci). N Suku-suku awal dari deret Fibonacci [Fibonacci.sci]
Contoh 2 (Beberapa fungsi trigonometri dengan argumen sudut dalam satuan derajat)
Pengunaan Fungsi-Fungsi Yang Tersimpan Pada Suatu File-Fungsi
Suatu fungsi yang terdapat dalam sebuah file-fungsi harus dieksekusi terlebih sebelum dapat digunakan.Untuk file fungsi yang terbuka pada jendela SciNotes, hal ini dapat dilakukan melalui menu Execute.
File-fungsi yang tersimpan pada suatu direktori tertentu dapat dieksekusi dengan statemen exec(nama_file), dimana nama_file adalah nama dari file-fungsi.
Jika file-fungsi tersimpan pada direktori kerja maka argumen nama_file cukup dengan nama filenya saja, seperti contoh dibawah ini.
Namun jika file-fungsi tidak tersimpan pada direktori kerja maka argumen nama_filer harus ditulis dengan nama file-fungsi beserta nama direktorinya.
Jika di belakang statemen exec(nama_file) tidak ditambahkan tanda titik-koma maka semua statemen yang terdapat di dalam file-fungsi akan ditampilkan pada jendela Scilab.
Sebuah file-fungsi juga dapat dieksekusi melalui menu File (Execute) yang terdapatp ada jendela Scilab.
Setelah dilakukan eksekusi terhadap file-fungsi, fungsi-fungsi yang terdapat di dalamnya dapat dijalankan seperti halnya fungsi-fungsi yang telah terpasang di dalam Scilab.
Membuat Suatu Fungsi Secara Langsung pada Jendela Scilab
Selain dalam bentuk file-fungsi, sebuah fungsi juga dapat dibuat secara langsung padaj endela Scilab dengan menggunakan blok statemen function-endfunction atau dengan menggunakan fungsi deff. Fungsi-fungsi yang dibuat dengan cara ini akan tersimpan secara otomatis di dalam ruang kerja sehingga dapat langsung digunakan tanpa perlu dipanggil terlebih dahulu seperti pada sebuah file-fungsi. Fungsi-fungsi yang dibuat secara langsung pada jendela Scilab hanya bersifat sementara dan akan hilang ketika program Scilab ditutup.
Pembuatan Fungsi dengan Blok Statemen Function-Endfunction
Sintaks pembuatan suatu fungsi baru secara langsung pada jendela Scilab dengan menggunakan blok statemen function-endfunction adalah sama seperti sintaks penulisan suatu fungsi dalam sebuah file-fungsi.
Pembuatan Fungsi dengan Fungsi Deff
Pembuatan sebuah fungsi baru secara langsung pada jendela Scilab dengan fungsi deff dapat dilakukan dengan menggunakan sintaks sebagai berikut:
dimana out1,out2 adalah argumen-argumen output, in1,in2 adalah argumen-argumen
input dan blok_statemen adalah statemen-statemen untuk fungsi fname.
Semua statemen yang terdapat di dalam blok_statemen harus ditulis diantara tanda kutip tunggal (') atau tanda kutip-ganda (") dan untuk memisahkan statemen yang berbeda dapat digunakan tanda koma (,) atau titik-koma (;).
Berikut ini contoh-contoh pembuatan suatu fungsi dengan menggunakan perintah deff.
Berikut ini ilustrasi penggunaan fungsi-fungsi yang telah dibuat dengan fungsi deff.
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.
FUNGSI REKURSI
Rekursi adalah proses pemanggilan sebuah fungsi terhadap dirinya sendiri. Suatu fungsi yang di dalamnya terdapat suatu proses rekursi disebut sebagai fungsi rekursif.
Contoh 5.
Formula untuk menghitung faktorial dari suatu bilangan bulat n yaitu:
faktorial(n)={1jika n<= 1
n(n-1)(n-2)...x2x1 jika n>1
Untuk n > 1, fungsi faktorial dapat dinyatakan dalam bentuk sebagiai berikut:
factorial(n) = n factorial(n – 1)
Berikut ini adalah implementasi statemen-statemen untuk fungsi faktorial.
Contoh 6. Suku ke-n dari deret Fibonacci dapat dinyatakan dengan formula berikut:
Pengontrolan Eksekusi Suatu Fungsi
Perintah resume, resume dan abort dapat digunakan untuk mengontrol eksekusi sebuah
fungsi. Penjelasan mengenai perintah-perintah tersebut adalah sebagai berikut.
- Perintah resume dan return adalah perintah yang ekuivalen. Perintah resume atau return digunakan untuk keluar dari suatu fungsi namun fungsi tetap menghasilkan suatu nilai keluaran. Namun jika sebuah fungsi dijalankan dalam mode pause maka penggunaan perintah resume atau return akan menghentikan mode pause dan proses eksekusi fungsi dilanjutkan kembali.
- Perintah abort dapat digunakan untuk menghentikan proses eksekusi yang sedang
Statemen return yang terdapat di dalam blok tersebut akan menyebabkan proses eksekusi terhadap fungsi fsecant dihentikan.
Selanjutnya jika fungsi fsecant dijalankan kembali dengan nilai awal berupa bilangan kompleks, seperti pada contoh di bawah ini, maka diperoleh hasil sebagai berikut:
Menyela Eksekusi Program dan Melakukan Debugging
Pause
Statemen pause akan menyela proses eksekusi yang sedang berlangsung di dalam sebuah fungsi atau skrip. Proses eksekusi akan dihentikan pada baris dimana statemen pause tersebut diletakkan. Statemen pause biasanya digunakan untuk dalam proses debugging terhadap suatu skrip atau fungsi. Berikut ini ilustrasi penggunaan perintah pause.
Selanjutnya kita panggil fungsi psecant.sci ke dalam ruang kerja dan kemudian digunakan untuk mencari akar dari fungsi f (x) = x -exp(-x).
Simbol -1-> yang muncul pada jendela Scilab merupakan efek dari penggunan statemen pause yang terdapat di dalam fungsi psecant. Penggunaan statemen pause akan menciptakan sebuah ruang kerja baru dimana semua variabel yang berada di atas statemen pause telah tersimpan di dalam ruang kerja baru tersebut. Setelah tanda -1-> kita dapat memberikan perintah-perintah seperti yang biasa dimasukkan pada baris perintah.
Untuk melanjutkan eksekusi terhadap fungsi psecant dapat digunakan perintah resumeatau return. Untuk membatalkan eksekusi terhadap file tersebut gunakan perintah abort
Setbpt
Berbeda dengan pause, statemen setbpt hanya dapat digunakan terhadap sebuah fungsi. Pada penggunaan statemen setbpt tidak perlukan adanya penyisipan statemen tersebut kedalam fungsi dan dijalankan pada jendela Scilab dengan sintaks sebagai berikut:
setbpt (nama-fungsi, [nomer-baris])
dimana nama-fungsi adalah nama fungsi dan nomer-baris adalah nomer-nomer baris yang akan dipasang titik sela.
Contoh 9.
Pada contoh ini fungsi [fsecant.sci] digunakan untuk menentukan akar dari
Namun pada saat eksekusi ditambahkan beberapa titik sela dengan menggunakan fungsi setbpt. Anggap pada fungsi fsecant kita tambahkan titik sela pada baris ke-27 dan ke-38 maka perintahnya adalah sebagai berikut.
Terlihat bahwa efek dari perintah setbpt adalah sama dengan perintah pause.
Setelah tanda -1-> kita dapat memberikan perintah-perintah seperti pada baris perintah biasa, seperti yang diperlihatkan di bawah ini.
Ketika perintah setbpt sedang dijalankan, proses eksekusi terhadap fungsi dapat dilanjutkan dengan digunakan perintah resume atau return. Jika digunakan perintah abortmaka eksekusinya akan dibatalkan dan tidak ada output yang dihasilkan oleh fungsi yang sedang dijalankan.Titik-titik sela yang terpasang pada suatu fungsi dapat dilihat dengan perintah dispbpt()
Menampilkan Baris Komentar yang Terdapat Pada Bagian Awal Suatu Fungsi
Pada bagian awal suatu fungsi biasanya terdapat beberapa baris komentar. Baris komentar tersebut dapat kita tampilkan dengan perintah sebagai berikut
head_comments("func")D
imana func adalah nama fungsi. Sebelum perintah tersebut dijalankan maka kita harus memanggil fungsinya terlebih dahulu ke dalam ruang kerja Scilab.
Berikut ini adalah contoh-contoh penggunaan perintah head_comments.
Kelebihan Fungsi
Dibandingkan dengan skrip, fungsi mempunyai kelebihan sebagai berikut.
- Fungsi mempunyai argumen input sehingga suatu fungsi dapat digunakan untuk melakukan perhitungan dengan berbagai macam data yang berbeda tanpa harus melakukan perubahan terhadap statemen-statemen yang terdapat di dalamnya. Jika skrip digunakan untuk melakukan perhitungan terhadap beberapa data yang berbeda maka harus dilakukan pengeditan terhadap file skripnya untuk merubah nilai inputnya
- Semua variabel yang terdapat di dalam suatu fungsi bersifat lokal dan tidak akantersimpan pada ruang kerja, kecuali untuk variabel-variabel yang dinyatakan sebagai variabel global. Di dalam skrip, semua variabel yang terdapat di dalamnya akan tersimpan pada ruang kerja sehingga secara tidak sengaja dapat merubah nilai dari variabel yang telah tersimpan sebelumnya apabila mempunyai nama yang sama.
BAB 15
INPUT DAN OUTPUT
Memasukkan Data dengan Fungsi Input
Selain melalui baris perintah, suatu data juga dapat dimasukkan dengan fungsi inputdengan sintaks sebagai berikut.
x = input("teks")x = input("teks", "string")
Dimana teks adalah keterangan tentang data yang akan dimasukkan. Jika data yangdimasukkan berupa string maka "string" harus digunakan sebagai argumen kedua padafungsi 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 ?
Fungsi input dapat digunakan di dalam sebuah skrip untuk proses pemasukan data secara interaktif.
Menampilkan Nilai Suatu Variabel dengan Fungsi Disp
Selain dengan cara menuliskan nama variabelnya pada baris perintah, nilai dari suatuvariabel var juga dapat ditampilkan pada Jendela Scilab dengan fungsi disp(var), sepertiyang ditunjukkan pada beberapa contoh di bawah ini.
Scilab software untuk komputasi numerik
Fungsi disp juga dapat digunakan untuk menampilkan nilai dari beberapa variabel sekaligus dengan menggunakan sintaks disp(var1, var2, ... varn), dimana var1, var2,varn adalah nama-nama variabel. Fungsi disp akan menampilkan nilai variabel-variabel dengan urutan yang terbalik dengan urutan daftar variabel pada argumen input.
disp(faktorial (10),'Nilai dari faktorial(10) adalah')
Nilai dari faktorial(10) adalah
3628800.
Untuk variabel numerik, perintah disp akan menampilkan nilainya sesuai dengan format yang sedang digunakan.
Penanda File
Penanda file adalah angka yang digunakan oleh Scilab sebagai unit file untuk file-file yang Input dan sedang digunakan pada proses pembacaan atau penulisan data. Namun terdapat sebuah perkecualian pada penanda file, yaitu untuk angka 5 dan 6. Kedua angka tersebut telah digunakan secara khusus oleh Scilab masing-masing sebagai penanda untuk papan-ketik (keyboard) dan Jendela Scilab (Konsol Scilab). Kedua nilai tersebut tersimpan dalam variabel khusus %io
.-->%io%io =
5. 6.
Seperti penanda file lainnya, angka 5 atau %io(1) dan angka 6 atau io(2) dapat digunakan pada proses pemasukan data maupun penulisan data.
Mencetak Nilai Variabel dengan Fungsi Print
Sebuah variabel juga dapat dicetak nama dan nilainya ke dalam suatu file dengan fungsiprint yang mempunyai sintak sebagai berikut:
print(nama_file, x1, x2, ..., xn)
Dimana nama_file adalah nama file untuk menyimpan variabel x1, x2, ..., xn. Nama file harus ditulis dengan nama direktorinya apabila filenya tidak berada pada direktori kerja, namun jika berada dalam direktori kerja maka cukup dengan nama filenya saja. Urutan dari tampilan variabel yang dihasilkan oleh fungsi print adalah terbalik dengan urutan variabel-variabel pada argumen inputnya. Fungsi print akan mencetak data numerik sesuai dengan format numerik yang sedang digunakan.Fungsi print juga dapat digunakan untuk menampilkan nilai sebuah variabel pada jendela Scilab dengan menggunakan angka 6 atau %io(2) sebagai argumen nama file.print(%io(2), x1, x2, ..., xn)
Contoh penggunaan fungsi print adalah sebagai berikut.
Isi dari file xy.txt adalah seperti yang diperlihatkan pada gambar berikut ini.
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 ('0pen",fname,status)
dimana fid adalah angka penanda file, fname adalah nama file data dan status adalah status file. Nama file harus ditulis dengan spesifikasi lengkap apabila filenya tidak berada pada direktori kerja dan jika berada dalam direktori kerja cukup dengan nama filenya saja.Argumen status pada fungsi file adalah string yang menunjukkan status file yang nilainya adalah salah satu dari beberapa string dibawah ini:
- 'new ' untuk file yang baru (default)
- 'old ' untuk file yang sudah ada,
- 'unknown ' untuk file yang statusnya tidak diketahui,
- 'scratch ' untuk file yang digunakan secara sementara dan akan dihapus pada akhir sesi Scilab.
Misalkan data-data yang akan disimpan ke dalam file adalah sebagai berikut:
-->FreeMathSoftware = ["Scilab" "Maxima" "R"]FreeMathSoftware =
!Scilab Maxima R !
Anggap data-data tersebut akan disimpan ke dalam file data1.txt dan data2.txt, makadibuat terlebih dahulu file-filenya dengan perintah sebagai berikut:
Nilai dari variabel FreeSoftware disimpan ke dalam file data 1.txt dengan perintah sebagai berikut.
Penjelasan mengenai perintah write akan diberikan pada subbab selanjutnya. Isi dari file data1.txt adalah seperti yang diperlihatkan pada gambar 15.2
Berikut adalah perintah-perintah untuk menyimpan nilai variabel R pada file data2.txt,dengan menambahkan sebuah keterangan tambahan pada baris pertama.
File-file yang telah dibuka dengan statemen file('open', ...) dapat ditutup dengan statemen file('close',fid), dimana fid adalah penanda file. Sebagai contoh, untuk menutup file data1.txt dapat digunakan salah satu dari statemen di bawah ini.
Daftar file-file yang sedang digunakan dapat dilihat dengan menggunakan fungsi file tanpa menggunakan argumen input, seperti pada contoh di bawah ini.
Angka 2 adalah penanda file untuk file, sedangkan angka 5 dan 6 adalah penanda untukpapan ketik dan jendela Scilab.Sebuah file juga dapat dibuka dengan fungsi mopen yang mempunyai sebagai berikut:fid = mopen(fname, mode)dimana fid adalah angka penanda file, fname adalah nama file data dan mode adalah stringyang menyatakan operasi pada file. Nama file harus ditulis dengan spesifikasi lengkapapabila tidak berada pada direktori kerja namun apabila berada dalam direktori kerjacukup dengan nama filenya saja.Berikut ini beberapa pilihan untuk argumen mode yang terdapat pada fungsi mopen:
- 'r' : untuk membaca dari file, filenya harus sudah ada apabila filenya tidak ada maka operasinya tidak dilakukan.
- 'w' : untuk menulis pada file baru, jika filenya sudah ada maka isinya akan dihapus dan diganti dengan data yang baru.
- 'a' : untuk menambahkan data pada file, jika filenya belum ada maka filenya akan dibuat Scilab.
Informasi Mengenai File-File yang Telah Dibuka
Informasi mengenai sebuah file yang sedang dibuka dapat diketahui dengan fungsi dispfiles(fid), dimana fid adalah penanda file. Jika fungsi dispfiles dijalankan tanpa argumen maka ditampilkan informasi dari semua file yang sedang dibuka. Berikut ini ilustrasi penggunaan fungsi dispfiles
Menyimpan dan Menbaca Data String dalam Format Teks ASCII
Suatu data string dapat disimpan ke dalam sebuah file teks dengan fungsi mputl yang mempunyai sebagai berikut:
mput1(str,nama_file)
dimana str adalah nama string yang akan ditulis dan nama_file adalah nama dari file yang digunakan untuk menyimpan string. Penggunaan fungsi mputl tidak memerlukan filenya untuk dibuka terlebih dahulu.Data string yang tersimpan suatu file teks dapat dibaca dengan menggunakan fungsi mgetl yang mempunyai sintak sebagai berikut:
mget1(nam_file,n)
dimana nama_file adalah nama dari file dimana staring tersimpan suatu file teks dapat diabaca. Argumen n bersifat opsional jika tidak digunakan makan semua baris staring akan dibaca.
contoh penggunaan fungsu mput1 dan mget1 adalah sebagai berikut:
dimana nama_file adalah nama dari file dimana string tersimpan, dan n adalah jumlah baris yang akan dibaca. Argumen n bersifat opsional jika tidak digunakan maka semua baris string akan dibaca.
Menyimpan dan Membaca data Dengan Format Fotran
Fungsi write dapat digunakan untuk menyimpan nilai suatu variabel ke dalam sebuah sebuah file atau untuk menampilkannya pada jendela Scilab. Sintaks dari fungsi write adalah sebagai berikut:
write(nama_file,var,ftm)
dimana nama_file adalah penanda file atau nama file, var adalah nama variabel dan fmt adalah format penulisan yang digunakan. Argumen fmt bersifat optional, apabila tidak dipergunakan maka data akan ditulis dengan format default.
Format penulisan data pada fungsi write adalah serupa dengan format pada bahasa Fortran. Berikut ini karakter-karakter yang dapat digunakan untuk format penulisan data:
/ baris baru
i[w] bilangan integer dengan lebar w karakter
f[w.d] bilangan desimal dengan lebar w karakter yang memiliki d digit stelah titik desimal,disarankan nilai w >=(d+7).
[n]x spasi banyak
t[n] meletakkan kursor pada posisi n
Berikut ini contoh format penulisan data.
'(5x,f5.2,5x,i2,f10.3)",(5x,2f10.2,5i5)",(10x,5(f10.3,2x))'
Contoh penggunaan fungsi write untuk menuliskan data pada sebuah file adalah sebagai berikut:
Isi dari file x.dat adalah seperti pada gambar dibawah ini
Berikut ini adalah contoh penulisan nilai variabel pada jendela Scilab dengan fungsi write.
pembacaan data dari suatu file maupun dari papan ketika dengan menggunakan fungsi read sebagai berikut:
x = read (nama_file,m,n,fmt)
dimana nama file adalah penanda file atau nama file data, m dan n adalah ukuran matrik data serta fmt adalah format penulisan yang digunakan. jika tidak diketahui jumlah baris data maka gunakan nilai m = -1.
Argumen fmt bersifat opsional dan apabila digunakan maka formatnya harus sesuai dengan format yang digunakan pada waktu penulisan data.
Contoh pembacaan dari sebuah subuah file dengan fungsi read adalah sebagai berikut.
Berikut ini contoh penggunaan fungsi read untuk membaca data dari papan ketik.
Menyimpan Dan Membaca Data Dengan Format C
Fungsi mfprintif juga dapat digunakan untuk menyimpan nilai suatu variabel kedalam sebuah file atau untuk menampilkan nilai suatu variabel pada jendela Scilab. Sintalk dari fungsi mfprintf adalah sebagai berikut.
mprintf(nama_file,fmt,var1,var2,...,varn)
dimana nama_ile adalah nama file data, fmt adalah format penulisan data,var1,var2,varn adalah nama-nama variabel yang dapat digunakan dalam penulisan format data:
\n baris baru
%[w] bilangan intenger yang mempunyai lebar w karakter
% [w.d]f bilangan dengan notasi desamal yang mempunyai lebar w >=(d +3).
%[w.d]e bilangan dengan notasi desimal yang mempunyai lebar w karakter dan d digit setelah ttitik desimal, disarankan nilai w>= (d+7).
%[w.d]g bilangan dengan notasi eksponensial e jika notasi desimal tidak mencukupi untuk menyatakan bilangan.
%s staring
%c karakter
\t tabulasi
dimana r adalah jumlah berapa kali format pembacaan data digunakan, nama_file adalah nama file data, fmt adalah format pembacaan data dalam sintaks bahasa C, n menyatakan jumlah data yang dibaca atau berupa -1 jika tidak ada data yang dibaca, v_1, ... v_n adalah nama-nama variabel yang dibaca, serta L adalah suatu matrik untuk data yang homogen atau suatu list untuk data yang tak homogen. Apabila argumen r tidak digunakan maka format pembacaan data hanya akan dipakai sekali. Sintaks format pembacaan data adalah sama dengan format penulisan data.
Berikut ini adalah contoh penggunaan perintah mfscanf dan mfprintf.
- MENCETAK NILAI VARIABEL DENGAN FUNGSI MPRINTF
nilai dari suatu variabel juga dapat ditampilkan pada jendela Scilab dengan fungsi mprintf.Fungsi ini serupa dengan fungsi disp namun mempunyai kelebihan yaitu format penulisan variabelnya dapat diatur sesuai dengan yang kita kehendaki. Sintaks dari fungsi mprintf adalah sebagai berikut.
mprintf(fmt,var1,var2,...,varn)
dimana fmt adalah format penulisn yang serupa dengan format bahasa C,serta var1,var2, varn adalah nama-nama variabel yang ingin ditampilkan pada jendela Scilab.
Berikut ini contoh penggunaan fungsi mprintf.
- MENYIMPAN DAN MEMBACA SUATU DATA MATRIK
Suatu data matrik dapat disimpan secara langsung pada suatu file tanpa harus membuka filenya terlebih dahulu dengan fungsi fprintfMat yang mempenyai sintak sebagai berrikut.
fprintMat(nfile, M,teks)
dimana nfile adalah nama file data,M adalah data matrik, fmt adalah format penulisan,teks adalah baris teks pertama yang akana dituliskan pada file data. Argumen format dan teks adalah argumen-argumen yang bersifat opsional.
Berikut ini adalah perintah fprintfMat.
Isi dari file dataR44a.txt dan dataR44b.txt masing-masing adalah seperti yang terlihat pada gambar-gambar dibawah ini.
suatu data matrik yang tersimpan pada suatu file dapat dibaca dengan mfungsi fscanfMat yang mempunyai sintaks sebagai berikut ini
[M,teks] = fscanfMat(nama_file)
dimana nama_file adalah nama file data, M adalah data matrik,dan teks adalah staring yang terdapat baris pertama dari file data.
Contoh-contoh penggunaan fungsi fscanMat adalah sebagai berikut.
- MENYIMPAN DAN MEMBACA DATA DENGAN FORMAT BINER
Semua variabel yang terdapat pada ruang kerja dapat disimpan pada suatu file dengan format biner dengan meggunakan fungsi save,
save("name_file")
dimana nama file ini adalah nama file data. Untuk mengambl nilai dari bebrapa variabel saja, misalnya variabel var1 dan var2, maka perintahnya adalah sebagai berikut.
load("nfile,"var1","var2").
Berikut ini contoh penggunaan perintah save dan load.
selain dengan menggunakan fungsi save dan load,penyimpanan variabel-varibel yang terdapat pada ruang kerja kedalam sebuah file dengan format biner dengan pembacaan file data dengan format biner juga dapat kita lakukan dengan menu file -> save enviroment dan file -> load endfiroment.