UAS METODE KOMPUTASI 1. Jawablah pertanyaan dengan menulis Betul atau Salah pada lembar jawab yang diberikan. Tulislah Betul, bila pernyataan yang sesuai betul, atau tulis Salah bila salah. a. RAM adalah memory primer yang diakses secara sekuential. (SALAH) b. Bilangan, bilangan real atau integer , disimpan pada mesin computer dalam bentuk bilangan berbasis 2 (biner). (BENAR) c. Mesin komputer hanya mengenal perintah dalam bentuk bahasa mesin sehingga perintah atau program yang ditulis dalam bahasa lain, misalnya Bahasa C atau Java, perlu ditranslasi (diterjemahkan) ke bahasa mesin oleh Compiler. (SALAH) d. Tree adalah bentuk khusus graph, sehingga dalam tree mungkin saja dijumpai cyclic. (SALAH) e. Binary tree adalah bentuk khusus Tree, dimana setiap node dalam binary tree memiliki anak 2 yaitu anak kiri dan anak kanan. (BENAR) 2. Jawablah pertanyaan berikut a) Jelaskan apa yang dimaksud dengan istilah “Open Source” open source adalah program komputer yang lisensinya memberi kebebasan kepada pengguna dalam menjalankan program tersebut untuk apa saja, mempelajari dan memodifikasi program tersebut, dan mendistribusikan penggandaan program asli atau yang sudah dimodifikasi tanpa harus membayar royalti kepada pembuat sebelumnya. SUMBER: http://www.filmpelajar.com/tutorial/apa-itu-open-source b) Elaborasi kelebihan dan kekurangan menggunakan program atau paket “Open Source”? 1.
Keuntungan menggunakan open source software, antara lain :
a. Pengurangan Pembajakan Open source software dengan berbagai kelebihannya, juga legal, penggunaan open source software di seluruh Indonesia akan menyebabkan tingkat pembajakan software di Indonesia menjadi turun drastic, dari 88% menjadi 0%. b. Penyelamatan devisa Negara Dengan menggunakan OSS ini, maka dapat dilakukan penghematan devisa Negara secarasignifikan. Kemudian dana tersebut dapat dialokasikan ke usahausaha yang bertujuan untuk kesejahteraan rakyat.
c. Keamanan Negara/Perusahaan Open source softwar ini bebas dari bahaya, karena bisa dilakukan audit terhadap kode programnya, maka keamanan Negara atau perusahaan dapat terjaga dengan baik. d. Keamanan sistem Dalam setiap pengoperasian komputer banyak terdapat berbagai masalah keamanan sepertiadanya virus, spyware, trojan namun dengan menggunakan open source software inipermasalahan-permasalahan yang terdapat pada komputer dapat diketahui karena penanganannya pun lebih transparan. e. Bebas memodifikasi sesuai keperluan. Open source software ini dikarenakan kode programnya lebih mudah dibuka dan diakses olehsiapa saja, serta bisa dimodifikasi sesuai dengan kebutuhan penggunanya. f. Bebas disebarluaskan Customer bebas untuk menggandakan software open source sebanyak mungkan sesuai yang diperlukan tanpa perlu mereka cemas akan pembajakan software tanpa disengaja. g. Ekonomis Jika customer memiliki akses internet, maka berbagai open source software tinggal diambil saja dari internet. h. Menyejahterakan industri dalam negeri. Industri dalam negeri non-IT turut menikmati, karena mendapat akses ke software yangekonomis dan berkualitas sehingga bisa menjadi lebih kompetitif dengan pesaing-pesaing dari luar negeri. 2. Kerugian dalam penggunaan open source software, antara lain : a. Tidak ada garansi dari pengembangsn open source software. b. Masalah yang berhubungan dengan intelektual property. c. Kesulitan dalam mengetahui status project. d. Masih terus dalam pengembangan dan penyempurnaan. SUMBER: http://catatan-magangku.blogspot.co.id/2014/08/kelebihan-dankekurangan-menggunakan.html 3. Perhatikan fungsi berikut: function res = jk(n) res = 0 for i = 1:n res = res+i^2 end endfunction
a. Bila fungsi jk dipanggil dengan parameter bernilai 5 atau dipanggil sbb : disp(jk(5)) Berapa nilai yang akan ditampilkan? NILAI AWAL : res = 0 Perulangan(Looping) dengan for: for i = 1:n res = res+i^2 i = 1, res = res+1^2=0+1=1 i =2, res = 1+2^2=1+4=5 i=3, res = 5+3^2=5+9=14 i=4, res = 14+4^2=14+16=30 i=5, res = 30+5^2=30+25=55 n=5, maka iterasi BERHENTI. Jadi, output yang keluar adalah 55. b. Buatlah fungsi jkrec, yaitu fungsi yang melakukan hal yang sama dengan fungsi jk, tetapi dilakukan secara rekursif. function res = jkrec(n) if (n==1) then res=1 else res = n^2*jkrec(n-1) end endfunction
4. 4. Misalkan 100 bilangan integer disimpan pada peubah array A secara berurutan, dari nilai yang terkecil ke nilai terbesar. Bila x menyimpan suatu nilai yang akan dicari pada array A. a. Tulislah dalam kata-kata, bagaimana mencari nilai x pada array A yang terbaik atau tercepat menurut saudara? Untuk mencari nilai x yang akan dicari untuk array dengan data yang sudah terurut itu lebih mudah dilakukan. Kita lakukan perbandingan untuk isi array pada indeks pertama. Jika x kita sudah lebih kecil dari isi array yang pertama maka sudah bisa dipastikan x yang kita cari tidak ada dalam array. Namun jika tidak maka ada kemungkinan x yang kita cari itu ada dalam array. Lalu kita lakukan looping dan membandingkan tiap isi array dengan x yang kita cari. b. Misalkan fungsi Cari dengan parameter x dan A, sehingga dipanggil di main program sbb : k=Cari(x,A)dimana k adalah indeks posisi nilai yang disimpan pada variabel x dalam array A. Tulislah fungsi Cari dalam Scilab. Misalnya, bila A=[10,12,13,14,15], dan x=14 maka eksekusi perintah berikut k=Cari(x,A) akan menghasil k bernilai 4 function k=Cari(x,A) if x
else n=length(A) for i=1:n do if a[i]==x then k=i; else disp(“angka yang dicari tidak ada dalam array”) end end end 5. Ordered linked list adalah linked list yang selalu terurut (dari kecil ke terbesar). Ordered linked list menggunakan struktur SCILAB sbb : node=struct(“info”,0,”next”,[]) dimana field “info” menyimpan bilangan integer, sedangkan field “next” menyimpan link ke node berikutnya atau field “next” berisikan [] (address nol) bila node sedang dikunjungi merupakan node yang terakhir yang dikunjungi dalam linked list. Bila variabel head merupakan header dari ordered linked list, node=struct(“info”,0,”next”,[]);head=node; maka fungsi berikut mencetak informasi: function printlist() x=head.next; while(x<>[]) disp(x.info) x=x.next; end
endfunction a) Bila fungsi insertlist (x) adalah fungsi yang menginsert node x ke ordered linked list, seperti perintah berikut (misal k adalah nilai info yang akan diinsert) node = struct(“info”,0,”next”,[]); head = node; x = node; x.info = k; x.next = []; p = head; function insertlist(x) while(p.next <> []) && (x.info > p.next.info) p.next = p.next.next; end if (p.next <> []) then x.next = p.next; p.next = x; else p.next = x; end endfunction b) Lengkapilah fungsi deletelist(k) yaitu fungsi untuk menghapus sebuah node dengan info yang bernilai k pada linked list. node = struct(“info”,0,”next”,[]); head = node;
k = 5; p = head; found = false; function deletelist(k) while (p.next <> []) if (p.next.info == k) then found = T; break else p = p.next; end end if (found == T) then p.next = p.next.next; else disp(“node yang akan dihapus tidak ditemukan”) end endfunction