Page 1
Ripai, S.Pd., M.SiWebMail :[email protected] WebBlok :www.ripaimat.wordpress.com
BAHAN AJARKOMPUTER PEMOGRAMAN BASIC
BERBASIS MATRIK LABARATORIUM
Matematika merupakan kosep fikir atau ide rasional yang bersifat abestrak, terkontruksi dari fenomena alam sebagai upaya untuk menyelesaikan berbagai permasalahan alam kehidupan. Permasalahan kehidupan yang lebih kompleks tidak dapat diselesaikan hanya dengan metode analitik matematik.Diperlukan metode numerik dan simulasi.Untuk itu Matematika komputasi merupakan solusi bagaimana menyelesaikan permasalahan matematika dan alam kehidupan menggunakan teknologi komputer.Hal ini penting dikuasai oleh pencinta matematika agar matematika yang abestrak dapat menjadi lebih konkrit.
Untuk tujuan tersebut, KOMPUTER DAN PEMOGRAMAN BASIC menjadi pondasibagaimana memahami bahasa dasar komputer untuk membuat suatu program komputasi matematika
Page 2
Kompter Pemograman BasicBerbasis Matrik Laboratorium
KATA PENGANTAR
Bismillahirrahmanirrahim.
Puji syukur kehadirat Allah SWT yang telah memberikan limpahan rahmat,
taufik dan hidayah-Nya sedemikian sehingga buku bahan ajar Mahasiswa
dalam mata kuliah Komputer Pemograman Basic ini dapat terselesaikan.
Bahan ajar ini disajikan dalam bentuk yang sederhana dengan pendekatan
proses pembuatanprogram komputasi yang digunakan sebagai pegangan atau
accuan dalam pelaksanaan perkuliahan Komputer Pemograman Basic.
Penulis menyadari bahan ajar ini masih jauh dari kesempurnan, Oleh karena itu
saran dan kritik yang bersifat membangun daripembaca sangat kami harapkan
guna penyempurnaan buku bahan ajar ini .
Akhirnya penulis berharap semoga buku bahan ajar ini dapat memberikan andil
dalam rangka ikut mencerdaskan kehidupan bangsa sebagaimana yang
diamanatkan dalam pembukaan UUD 1945.
Mataram, 2012
Penulis
Ripai, S.Pd., M.Si
Ripai, S.Pd., M.Si
143
Page 3
Kompter Pemograman BasicBerbasis Matrik Laboratorium
SILABUS MATA KULIAH
Mata Kuliah : Komputer Pemograman BasicSKS : 3Kode :Standar Kompetensi : Mahasiswa dapat membuat program
komputasi matematika untuk mensimulasikan dan menyelesaikan permasalahan matematika.
Kompetensi Dasar : 1. Mahasiswa dapat membuat suatu Algoritma program pada topik-topik matematika dan pembelajaran matematika.
2. Mahasiswa dapat membuat suatu algoritma komputasi pada topik-topik matematika dan pembelajaran matematika.
3. Mahasiswa dapat menguasai bahasa dasar komputasi matematika untuk menyelesaikan permasalahan matematika pada topik-topik kalkulus dasar, aljabar matriks, Statistika matematika, pengantar dasar matematika, matematika diskrit dan teori bilangan.
4. Mahasiswa dapat membuat pemograman dengan strukutr if, for, while dan switch
5. Mahasiswa dapat melakukan pemograman komputasi matematika berbasis GUI (grafik User InterfaceI).
Topik : 1. Pengantar Pemograman Komputer Basic2. Algoritma Pemograman Komputasi
Matematika.3. Pemograman Comand Window pada topik
Kalkulus Dasar, Matriks, Statsitika Matematika, Matematika Diskrit, Pengantar Dasar Matematika dan Teori Bilangan
4. Pemograman M-file dengan struktur if, for, while, switch
5. Pemograman GUI dalam membuat aplikasi matematika.
INTRUKSIONAL PELAKSANAAN PERKULIAHANRipai, S.Pd., M.Si
143
Page 4
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Prt Topik Intruksional
1 Pengantar perkuliahan
1. Dapat memahami ruang lingkup computer pemograman Basic
2. Dapat mengetahui sasaran belajar unutk tiap pertemuan2 1. Algoritma
Program2. Flow Chat
3. Akumulator dan Konter
3. Dapat menjelaskan pengertian algoritma program4. Dapat membuat algoritma program
5. Dapat menuliskan output suatu program jika flow Chat diberikan
6. Dapat menentukan variabel akumulator dan konter dalam suatu program
3 Pemograman Comand Window pada topik Kalkulus Dasar
1. Dapat mendefiniiskan fungsi dan mengambar grafiknya berdasarkan
2. Dapat mengevaluasi nilai suatu fungsi3. Menneukan aitmatika fungsi4. Dapat menentukan komposisi fungsi
4 Pemograman Comand Window pada topik kalkulus Dasar
1. Dapat menentukn limit, turunan inetral suatu fungsi2. Dapat menenukan asimtot tegak dan datar suatu fungsi3. Dapat menentukan gradient dan garis singgung suat
kurva4. Dapat menentukan luas daerah di bawah kurva
5 1.Pemograman Comand Window pada topik Aljabar Matriks
1. Dapata mendefinsikan matriks 2. Dapat mengakses elemen matriks3. Dapat menentukan invers, determinan, kofaktor suatu
matriks4. Dapat mengunakan metode invers untuk
menyelesaikan SPL multi variabel5. Dapat melakukan aritmatika matriks6. Dapat menentukan eigen vector, value suatu matriks7. Dapat mendefinsikan matriks graph dan menetukan
lintasan terpendek6 Pemograman
Coman Windows Pada topik Statistika Matematika
1. Dapat mendefinsikan data dan mengambarkan graiknya
2. Dapat menentukan parameter statistic seperti rataan, modus, median, standar deviasi, varians
3. Dapat menentukan nilai t tabel, z tabel, chi tabel, dan f tabel
4. Dapat mengambar grfaik distribusi student, normal, chi-kuadrat dan fhiser
7 Pemograman Comand windows pada topik matematika
1. Dapat mengambar fungsi floor, ceiling, round dan absoulut
2. Dapat menenukan bilangan prima, komposit, bulat positif dan bulat negative
3. Dapat menentukan FPB dan KPK dua buah bilanganRipai, S.Pd., M.Si
143
Page 5
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Prt Topik Intruksional
diskrit, teori bilangan dan pengantar dasar matematika
4. Dapat melakukan komputasiuntuk memeriksa kebenaran beradasrkan logika matematika
8 UJIAN TENGAH SEMESTER
9 Pemograman M file dengan strukutr if
Dapat merancnag pemograman dengan struktur if untuk menyekesaikan masalah trikotoomi bilangan real, akar persamaan kuadrat dan penilaian hasil belajar
10 Pemograman dengan strukutr for
Dapat merancang pemograman dengan strukutr for untuk mensimulasikan definisi factorial, permutasi dan limit fungsi
11 Pemograman dengan strukiut while
Dapat merancang pemograman dengan strukutr while untuk mensimulasikan definisi pembagian dan algoritma Eucliden
12 Pemograman dengan strkutr switch
Dapat merancang pemograman dengan struktur switch untuk megabungkan program-program komputasi yang telah dibuat sebelumnya
Dapat merancang program unutk menghitung luas dan keliling bangun datar
13 Pemograman GUI
Dapat membangun pemograman berbasis GUI untuk mensimulasikan algoritma Eucliden dan factorial
14 Pemograman GUI
Dapat membangun program unutk mensimulasikan garis singgung pada kurva dan deret mascluarin dan tayor
15 Pemograman GUI
Dapat membangun program unutk menganalisis hasil belajar siswa .
16 UAS Ujian Akhir Semester
Ripai, S.Pd., M.Si
143
Page 6
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Bismillahirrahmanirrahim.
Komputer berasal dari kata count yang bebarti menghitung. Komputer
merupakan teknologi yang lahir sebagai jawaban atas tantangan berbagai
permasalahan kehidupan yang membutuhkan solusi perhitungan matematis
yang cepat, tepat dan benar. Leluhur komputer adalah kalkulator, akan tetapi
karena kalkulator tidak bisa menyelesiikan masalah yang kompleks maka
komputer diciptakan yang pada awalnya diperuntukkan khusus untuk
membantu proses perhitungan matematis. Akan tetapi, saat ini komputer
telah dikembangkan menjadi yang lebih luas dalam aplikasinya.
Pemograman berarti membuat suatu perencanaan perhitungan matematis
menggunakan computer (komputasi matematika). Sedangkan Basic berarti
dasar yang terkait dengan bahasa dasar computer untuk melakukan
perhitungan matematis. Sebagai contoh bahasa dasar untuk menuliskan
matriks
adalah A=[5 9 8;6 7 8;8 9 9] dan untuk menghitung
inversnya adalah inv(A) dengan hasil komputasinya adalah
ans =
-0.3103 -0.3103 0.5517
0.3448 -0.6552 0.2759
Ripai, S.Pd., M.Si
1 Pengantar Komputer Pemograman Basic
143
Page 7
Kompter Pemograman BasicBerbasis Matrik Laboratorium
-0.0690 0.9310 -0.6552
Contoh lainnya adalah bagaimana mengambar grafik fungsi .
Bahasa dasar computer yang dapat diterapkan adalah sebagai berikut:
syms x
f=sin(x)/x;
ezplot(f)
dengan output grafik fungsi adalah
-6 -4 -2 0 2 4 6
-0.2
0
0.2
0.4
0.6
0.8
1
x
sin(x)/x
Selaian mengetahui bahasa dasar tersebut, mahasiswa juga harus memiliki
kemampuan untuk membangun suatu program perhitungan komputasi
matematika. Terdapat empat strukutr dasar pemograman computer, yaitu
struktur if, for, while dan switch. Berikut diberikan contoh bentuk program
komputasi struktur for untuk mensimulasikan pengertian secara intuitif
limit kanan fungsi.
syms x f=input('f(x)= ');c=input('c = ');
Ripai, S.Pd., M.Si
143
Page 8
Kompter Pemograman BasicBerbasis Matrik Laboratorium
X=[c-10:0.25:c+10];ezplot(f,X)d=[c+10:-0.25:c];n=length(d);for i=1:n hold on plot(d(i),0,'.r') hold on plot(d(i),subs(f,d(i)),'.r') pause(0.2)endL=double(limit(f,c));text(c,subs(f,c),['<--- Limit = ',num2str(L)])
Output dari eksekusi program tersebut adalah sebagai berikut
-8 -6 -4 -2 0 2 4 6 8 10 12
0
50
100
150
200
x
x2+5 x+6
<--- Limit = 20
Semua bahasa dasar program komputasi menjadi harus di kuasai mahasiswa
setelah mengikuti perkuliahan ini. Khususnya untuk mahasiswa pendidikan
matematika, kemampuan komputer menjadi penting untuk mensimulasikan
berbagai konsepp matematika sehingga dalam pengajaran matematika di
sekolah, dapat mengembangkan berbagai aplikasi untuk mensimulasikan
materi-materi matematika sehingga materi matematika yang umumnya
Ripai, S.Pd., M.Si
143
Page 9
Kompter Pemograman BasicBerbasis Matrik Laboratorium
dianggap sulit dan abestrak akan terasa lebih konkrit dan rasional Terdapat
beberapa hal modal dasar untukk bisa menguasai teknik pemograman
komputer, yaitu menguasai Algoritma program, Menguasai Bahasa dasar/basic
komputer dan menguasai teorii matematika yang akan dikomputasikan. Jika
salah satunya tidak terpenuhi, maka pemograman komputer tidak akan dapat
tercapai. Dalam kuliah komputer pemograman Basic ini, akan diberikan uraian
dasar-dasar teknik pemograman. Intruksional yang harus dikuasai mahasiswa
tiap pertemuan sebagaimana yang terdapat pada halaman sebelum topic ini.
Ripai, S.Pd., M.Si
143
Page 10
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Bismillahirrahmanirahim.
Algoritma berasal dari kata Algorithm (Ingris) yang diambil dari kata Al-
Khawarizmi (Arab) merupakan nama seorang ilmuan matematika islam Abu
Musa Al-khawarizmi. Al-Khawarizmi merupakan ilmuan yang mendefinisikan
bilangan hidu arab 1, 2, 3, 4, 5, 6, 7, 8, 9, 0. Dimana dalam komputer bilangan
yang dioperasikan merupakan bilangan hindu arab tersebut. Disebut bilangan
hidu arab, karena Al-kharizmi yang merupakan bangsa Arab mendefinisikan
bilangan tersebut dari beberapa simbol yang ada pada peradaban umat Hindu
dimana pada masa tersebut, Al-Khawarimi banyak berdiskusi dengan ilmuan
matematika hindu.
Algoritma program adalah suatu prosedur logis yang memuat tahapan-
tahapan penyelesaian suatu masalah (Suryadi, 1994). Suatu algoritma
yang diuraikan secara tepat akan memerikan proses penyelesaian
masalah berjalan sesuai harapan. Sebagai contoh algoritma program
seseorang akan berangkat sekolah. Maka prosedur logis yang bisa
diterapkan adalah sebagai berikut:
Algoritma 2.11. Bangun tidur2. Pergi mandi3. Berpakaian4. Berkemas5. Sarapan6. Berangkat
Ripai, S.Pd., M.Si
2 Algoritma Program
143
Page 11
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Dari uraian algoritma di atas, merupakan urutan logis yang didasarkan
atas kebiasaan seseorang berangkat sekolah. Jika step ke-2 ditukar
posisinya dengan step ke-3., tentunya akan menjadi tidak logis
sehingga urutan tersebut tidak dapat disebut sebagai suatu algoritma
program. Contoh lainnya suatu algoritma program jika seseorang akan
menghitung nilai dari akar-akar persamaan kuadrat sebagai berikut:
Algoritma 2.2 : Menghitung akar real persamaan kuadrat Step 1. Tentukan nilai a, b, cStep 2. Hitung nilai dari D = b2 – 4 a cStep 3. Periksa apakah D ≥ 0, jika benar, maka
Step 4. Hitung
Step 5. Tulis akar persamaan sebagai x1 dan x2
Step 6. Kondisi lainnya yakni ingkaran dari step 3 yaitu D < 0 Step 8. Tulis akar-akar persamaan imajinerStep 9. Akhiri program
Algoritma di atas merupakan urutan logis dalam menentukan akar persamaan
kuadrat. Jika step 1 ditukar posisinya dengan step 2, tentunya tata cara kerja
tersebut tidak logis, karena mustahil dpat ditentukan nilai D jika a, b dan c
belum diketahui. Step 4, 5 dan 6 tertulis sejajar dan lebih maju dari step 3. Hal
ini menunjukkan bahwa step 4, 5 dan 6 hanya akan dikerjakan jika kondisi step
3 terpenuhi. Jika kondisi step 3 tidak terpenuhi, maka pengerjaan akan
berlanjut ke step 8. Karena step 8 merupakan perintah yang berada di bawah
step 7 dimana kondisi step 3 tidak berlaku.
Contoh:
Misalkan dimiliki persamaan kuadrat f(x) = x2 – x + 4 maka penyelesaian
akar persamaan kuadrat dengan mengunakan algoritma di atas adalah
sebagai berikut:
Ripai, S.Pd., M.Si
143
Page 12
Kompter Pemograman BasicBerbasis Matrik Laboratorium
a = 1; b = -1; c = 4
D = (-1)2 – (4)(1) (4) = 1-16 = -15
Akar persamaan kuadrat imajiner
Sesuai dengan algoritma di atas, pertama-tama nilai a = 1, b = -1 dan c = 4
didefinisikan kemudian dihitung nilai dari D = -15. Karena kondisi pada step 3
tidak terpenuhi yakni D < 0, maka step 4, 5 dan 6 diabaikan dan pengerjaan
langsung loncat ke step 8. Hal ini disebabkan karena step step 8 merupakan
pengerjaan selanjutnya jika step 3 tidak terpenuhi dan step 7 terpenuhi.
Contoh
Buatlah algoritma program untuk mengimplementasikan sifat trikotomi
bilangan real.
Solusi:
Sifat trikotomi bilangan real menyatakan bahwa, jika x dan y adalah
sembarang bilangan real, maka terdapat 3 kemungkinan hubungan
yang terjadi anatar x dan y, yaitu x = y, x > y dan x < y. Untuk itu bentuk
algoritma yang dapat kita terapkan adalah sebagai berikut:
Algoritma 2.3. Trikotomi Bilangan Real
Step 1. Definisikan sembarang bilangan real, sebut sebagai x dan y
Step 2. Periksa apakah x = y, jika benar
Step 3. Tulis “ x sama dengan y”
Step 4. Jika step 2 salah, periksa apakah x > y, jika benar
Step 5. Tulis “ x lebih besar dari y”
Step 5. Kondisi lainnya, yakni step 2 dan 4 salah
Step 6. Tulis “ x kurang dari y”
Step 6. Akhiri Program
Ripai, S.Pd., M.Si
143
Page 13
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Algoritma di atas merupakan suatu urutan pengerjaan logis dan insyaAllah
akan menjamin output hasil pengerjaan sesuai dengan sifat trikotomi bilangan
real sebagaimana yang terdapat dalam kalkulus maupun analisis real.Misalkan
pada step 1 didefinisikan x = 5 dan y = 6 maka pengerjaan berdasarkan
algoritma di atas adalah dilakukan pemeriksaan apakah x = y sebagaimana
pada step 2, karena bernilai salah maka step 3 di abaikan dan program akan
loncat ke step 4 dan memeriksa apakah x> y, dan diperoleh kenyataan x>y
bernilai salah, program meloncati step 5 dan mengerjakan step 7. Hal ini
disebabkan karena step 7 berada di bawah kontrol step 6. Jika algoritma
tersebut diterapkan dalam pemograman komputer, maka akan diperoleh
hasil sebagai berikut:
x = 5;
y = 6;
x lebih kecil dari y
TOPIK DISKUSITentukan output program berikut jika di berikan nilai Tugas/U1 = 45; Mid/U2 =
76 dan UAS/U3 = 70.
Algoritma 2.4. Konversi nilai
Step 1. Masukkan nilai U1, U2 dan U3
Step 2. Hitung NA = 0.2 x U1 + 0.3 x U2 + 0.5 x U3
Step 3. Seleksi apakah NA > =80, jika benar
Step 4. Tulis “ Nilai Akhir = NA dengan grade A
Step 5. Jika tidak, seleksi apakah NA >= 65, jika benar
Step 6. Tulis “ Nilai akhir = NA dengan grade B”
Step 7. Jika tidak, seleksi apakah NA >=55, jika benar
Step 8. Tulis “Nilai Akhir = NA dengan grade C”
Step 9. Jika tidak, seleksi apakah NA>=40, jika benar
Ripai, S.Pd., M.Si
143
Page 14
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Step 10. Tulis “ Nilai Akhir = NA dengan grade D”
Step 11. Dalam kondisi lainnya tulis “ Nilai akhir = NA dengan grade E”
Flow ChatFlow Chat adalah suatu diagaram alur yang menggambarkan suatu algoritma
program. Dalam flow chat digunakan simbol-simbol sebagai berikut:
Algoritma penentuan akar persamaan kuadrat di atas, jika dituliskan dalam
bentuk flow chat adalah sebagai berikut:
Ripai, S.Pd., M.Si
143
Page 15
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Gambar 1.1 Flow Chat Program penentuan akar persamaanContohKontruksilah bentuk flow chat dari lagoritma trikotomi bilangan real.
Solusi:
Mencermati bentuk algortima tersebut, maka bentuk flow chat yang dapat
diterapkan adalah sebagai berikut:
Ripai, S.Pd., M.Si
143
Page 16
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Gambar 1.2 Flow Chat Trikotomi bilangan real
Contoh:
Buatlah flow chat untuk jumlah 10 bilangan asli pertama
Solusi:
Untuk dapat menyelesaikan permasalahan ini, diperlukan pengetahuan
tentang definisi bilangan Asli, operasi biner, variable akumulator dan variable
konter. Bilangan asli didefinisikan sebagai N = {1, 2, 3, . . .}. Konsep
pendefinisian sebagai bilangan Asli tersebut, bukan berarti ada bilangan tidak
Ripai, S.Pd., M.Si
143
Page 17
Kompter Pemograman BasicBerbasis Matrik Laboratorium
asli atau palsu. Akan tetapi didasari dari kenyataan bahwa dalam peradaban
manusia dibidang sosial dan budaya, himpunan bilangan {1, 2, 3, . . .}
merupakan himpunan bilangan yang pertama kali dirumuskan atau dikenal
manusia. Konsep asli disini sejalan dengan pemahaman pernyataan suku sasak
asli, yang berarti bahwa leluhur orang tersebut adalah orang yang pertama kali
mendiami atau tinggal dan mengembangkan budaya dan social di bumi
Lombok Nusa tenggara Barat.
Operasi biner merupakan operasi yang dilakukan dengan mengoperasikan dua
buah bilangan. Misalkan dalam penjumlahan bilangan asli tersebut, setiap kita
akan melakukan operasi biner untuk dapat menentukan dengan proses 1 + 2 =
3, kemudian 3 + 3 = 6, kemudian 6 + 4 = 10, 10 + 5 = 15 dan seterusnya.
Selanjutnya Akumulator merupakan variabel yang nilainya terus bertambah
sesuai dengan banykanya proses pengulangan dari proses yang berlangsung
Misalnya seorang anak yang menabung sisa uang jajan sekolahnya, maka
tabungannya tersebut dinamakan akumulator. Konter adalah akumulator yang
penambahan nilainya tetap satu. Misalnya seorang pengangkut pasir yang
memasukkan kerikil pada suatu kaleng untuk mengetahui banyaknya kali
mengangkut pasir, maka kaleng tersebut dinamakan konter.
Berdasarkan uraian di atas, maka dapat dikontruksi algoritma program
menghitung 10 bilangan asli pertama dengan variabel program sebagai berikut:
A = Himpunan bilangan asli
J = Variabel akumulator sebagai tempat menyimpan hasil penjumlahan biner
i = Variabel konter sebagai pengalamatan elemen himpunan bilangan Asli
Ripai, S.Pd., M.Si
143
Page 18
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Flow Chat di pada gambar 1.3 merupakan suatu prosedur logis penyelesaian
jumlah 10 bilangan asli berdasarkan konsep operasi biner sebagaimana
biasanya seseorang melakukan proses penjumlahan. Jika disimulasikan, maka
proses perhitungan dan perubahan nilai variabel adalah sebagai berikut:
Gambar 1.3 Flow Chat program menghitung 10 bilangan asli pertama
A = 1
J = 0
J = J + A = 0 + 1 = 1
A≠ 10
A = A + 1 = 1 + 1 = 2
J = J + A = 1 + 2 = 3
Ripai, S.Pd., M.Si
143
Page 19
Kompter Pemograman BasicBerbasis Matrik Laboratorium
A≠ 10
A = A + 1 = 2 + 1 = 3
J = J + A = 3 + 3 = 6
A≠ 10
A = A + 1 = 3 + 1 = 4
J = J + A = 6 + 4 = 10
A ≠ 10
A = A + 1 = 4 + 1 = 5
J = J + A = 10 + 5 = 15
A ≠ 10
A = A + 1 = 5 + 1 = 6
J = J + A = 15 + 6 = 21
A ≠ 10
A = A + 1 = 6 + 1 = 7
J = J + A = 21 + 7 = 28
A ≠ 10
A = A + 1 = 7 + 1 = 8
J = J + A = 28 + 8 = 36
A ≠ 10
A = A + 1 =8+ 1 = 9
J = J + A = 36 + 9 = 45
A ≠ 10
A = A + 1 =9+ 1 = 10
J = J + A = 45 + 10 = 55
A = 10
Ripai, S.Pd., M.Si
143
Page 20
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Jumlah = J = 55
Contoh
Tentukan konsep matematika yang diterapkan dalam flow chat berikut ini jika
variabel BS = Bilangan sembarang; n = banyaknya bilangan sembarang; J =
Jumlah.
Solusi dari permasalahan tersebut diberikan sebagai latihan mahasiswa dan
lakukanlah simulasi dengan memilih n= 10.
Contoh:
Ripai, S.Pd., M.Si
143
Page 21
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Perhatikan flow Chat berikut, kemudian tentukan output program jika diberikan
data x = 5, 3, 0, 6, 6, 4, 7.
Solusi:
Memperhatikan diagram tersebut dan x = 5, 3, 0, 6, 6, 4, 7 maka analisis output
sebagai berikut:
Ripai, S.Pd., M.Si
143
Page 22
Kompter Pemograman BasicBerbasis Matrik Laboratorium
x = 5 3 0 6 6 4 7
T = 0
n = 7
karena x(1) > x(2) benar T = 5
x = 3 3 0 6 6 4 7
x = 3 5 0 6 6 4 7
karena x(1) > x(3) benar T = 3;
x =0 5 0 6 6 4 7;
x = 0 5 3 6 6 4 7
karena x(1) > x(4) salah tidak ada proses
karena x(1) > x(5) salah tidak ada proses
karena x(1) > x(6) salah tidak ada proses
karena x(1) > x(7) salah tidak ada proses
karena x(2) > x(3) benar T = 5 ;
x = 0 3 3 6 6 4 7;
x = 0 3 5 6 6 4 7
karena x(2) > x(4) salah tidak ada proses
karenax(2) > x(5) salah tidak ada proses
karena x(2) > x(6) salah tidak ada proses
Ripai, S.Pd., M.Si
143
Page 23
Kompter Pemograman BasicBerbasis Matrik Laboratorium
karena x(2) > x(7) salah tidak ada proses
karena x(3) > x(4) salah tidak ada proses
karena x(3) > x(5) salah tidak ada proses
karena x(3) > x(6) benar T = 5;
x = 0 3 4 6 6 4 7;
x = 0 3 4 6 6 5 7
karena x(3)> x(7) salah tidak ada proses
karena x(4) > x(5) salah tidak ada proses
karena x(4) > x(6) benar T = 6;
x = 0 3 4 5 6 5 7;
x = 0 3 4 5 6 6 7
karena x(5) > x(6) salah tidak ada proses
karena x(5) > x(7) salah tidak ada proses
karena x(6) > x(7) salah tidak ada proses
menampilkan data x x = 0 3 4 5 6 6 7
Ripai, S.Pd., M.Si
143
Page 24
Kompter Pemograman BasicBerbasis Matrik Laboratorium
berdasarkan analisis di atas, maka jika algoritma tersebut diterapkan dalam
komputer, insyaAllah output eksekusi program adalah sebagai berikut:
TUGAS 2
Buatlah suatu algoritma program dan plow chat untuk menghitung
1. Keliling dan luas semua jenis bangun datar
2. Luas permukaan dan volume semua jenis bangun ruang
3. Luas daerah di bawah kurva dengan menggunakan integral
reimant
Ripai, S.Pd., M.Si
143
Page 25
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Bismillahirrahmanirrahim.
Matrik Laboratorium (MATLAB) merupakan bahasa basic pemograman
komputer dengan bahasa program paling tinggi, yang berarti bahwa dalam
pengunaanya perististilahan bahasa basic/dasar yang digunakan paling
mudah. Pemograman komputer basic berbasis MATLAB memiliki 3 ruang
pemograman, yaitu Comand Windows, M File dan GUI. Pada bagian ini akan di
bahas tentang pemograman pada command windows.
Comand window merupakan tempat memberikan skrip perintah dan tempat
melihat output program. Contoh sebagai berikut:
Ripai, S.Pd., M.Si
3 Pemograman Fungsi Matematika Pada Comand Window MATLAB
143
Page 26
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Gambar 2.1 Tamplan command window MATLAB
Pada command window, perintah >> A=[3 4 5 6;6 5 4 8;8 9 6 5;6 8 5 4] adalah
pendefinisian matriks berordo 4 x 4 dan diperoleh output sebagai berikut
A =
3 4 5 6
6 5 4 8
8 9 6 5
6 8 5 4
Yang berarti bahwa, pada komputer telah terdefinisi suatu matriks A dengan
elemen-elemen sebagaimana di atas.
Selanjutnya terlihat perinta mencari invers matriks A dengan perintah inv(A)
dengan ouput sebagai berikut
ans =
-0.1215 0.0187 0.7664 -0.8131
-0.1682 0.1028 -0.7850 1.0280
0.4299 -0.3738 0.6729 -0.7383
-0.0187 0.2336 -0.4206 0.3364
Berikut kemudian terlihat ada perintah det(A) yang berarti meminta komputer
memberikan output determinan matriks A dan diperoleh hasi
>> det(A)
ans =
107.0000
Berikut adalah beberapa bahasa dasar dalam pemograman fungsi matematika
yang dapat di bangun pada comand window. Mahasiswa diminta mencobanya Ripai, S.Pd., M.Si
143
Page 27
Kompter Pemograman BasicBerbasis Matrik Laboratorium
pada command window dengan cara menuliskan skrip komputasinya pada
command window. Output yang diperoleh dipastikan sama dengan output
pada tabel kolom output sebagaimana yang diberikan. Penjelasan konsep
matematikanya disesuaikan pada kolom konsep matematika yang diberikan.
3.1 Pendefinisian Fungsi Dengan Perintah syms x
Pendefinisian fungsi aljabar yang memuat variable x diawali dengan
memberikan perintah syms x. syms merupakan singkatan dari sy = simbol, m =
matematika dan s merupakan bentuk jamak sedangkan x adalah variabel
simbolnya.
No Konsep Matematika Perintah Pada Comand Window
Output
1 Pendefinisian x sebagai simbol Matematika
syms x
2 Pendefinisian fungsi f(x) = x2-5x+6
f=x^2-5*x+6 f =x^2-5*x+6
3 Mengambar contoh grafik fungsi f(x) = x2-5x+6
ezplot(f)
-6 -4 -2 0 2 4 6
0
10
20
30
40
50
60
70
80
x
x2-5 x+6
4 Membuat garis-garis koordinat grafik fungsif(x) = x2-5x+6
grid on
-6 -4 -2 0 2 4 6
0
10
20
30
40
50
60
70
80
x
x2-5 x+6
Ripai, S.Pd., M.Si
143
Page 28
Kompter Pemograman BasicBerbasis Matrik Laboratorium
No Konsep Matematika Perintah Pada Comand Window
Output
5 Mengambar grafik fungsi f(x) = x2-5x+6 pada domain 0≤x≤5 dengan ∆x = 0.25
ezplot(f, [0:0.25:5])
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
0
1
2
3
4
5
6
x
x2-5 x+6
Menghitung nilai dari f(-3) dari fungsi f(x) = x2-5x+6
subs(f,-3) ans = 30
7 Bentuk faktor dari fungsi f(x) = x2-5x+6
factor(f) ans = (x-2)*(x-3)
8 Menentukan titik potong fungsi f(x) = x2-5x+6 pada sumbu x
akar=solve(f) akar = 3 2
9 Melukiskan posisi titik potong fungsi f(x) = x2-5x+6 pada sumbu x
hold on plot(3,0,'or') hold on plot(2,0,'or')
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
0
1
2
3
4
5
6
x
x2-5 x+6
9 Menentukan koefesien dari fungsi polynomial f(x) = x2-5x+6
sym2poly(f) ans = 1 -5 6
10 Mendefinisikan fungsi g=(x^2-5*x+6)/(x-2) g = (x^2-5*x+6)/(x-2)
11 Menuliskan dalam bentuk yang lebih baik fungi
pretty(g)
12 Menyederhanakan bentuk fungsi
simplify(g)
ans = x-3
Ripai, S.Pd., M.Si
143
Page 29
Kompter Pemograman BasicBerbasis Matrik Laboratorium
No Konsep Matematika Perintah Pada Comand Window
Output
13 Mengambar grafik fungsi
dengan warna merah pada domain 0≤x 5 dengan ∆x=0.25 bersamaan dengan gambar grafik fungsi f(x) = x2-5x+6 sebelumnya.
hold ond=[0:0.25:5];plot(d,subs(g,d),'r')
Warning: Divide by zero.In sym.subs at 155
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
0
1
2
3
4
5
6
x
x2-5 x+6
14 Menuliskan keterangan grafik
legend('Grafik f(x)','Grafik g(x)')
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
0
1
2
3
4
5
6
x
x2-5 x+6
f(x)=x2-5*x+6g(x)=x-3
15 Penjumlahan f(x)+g(x)
f+gpretty(f+g)simplify(f+g)
16 Penguranganf(x)-g(x)
f-gpretty(f-g)simplify(f-g)pretty(simplify(f-g))
ans =x^2-5*x+6-(x^2-5*x+6)/(x-2)
ans =x^2-6*x+9
17 Pembagianf(x):g(x)
f/g ans = x-2
18 Perkalianf(x)g(x)
f*gpretty(f*g)simplify(f*g)pretty(simplify(f*g))
ans =(x^2-5*x+6)^2/(x-2)
Ripai, S.Pd., M.Si
143
Page 30
Kompter Pemograman BasicBerbasis Matrik Laboratorium
No Konsep Matematika Perintah Pada Comand Window
Output
ans =(x-3)*(x^2-5*x+6)
19 Ivers fungsi f(x)1/f(x)Catatan: bukan fungsi invers dari fungsi f(x)
Inv(f)pretty(inv(f))
ans =1/(x^2-5*x+6)
20 Invers fungsi g(x)1/g(x)Catatan: bukan fungsi invers dari fungsi g(x)
Inv(g)pretty(inv(g))
ans =1/(x^2-5*x+6)*(x-2)
21 Komposisi fungsigof =g(f(x))
subs(g,f)pretty(subs(g,f))
ans =((x^2-5*x+6)^2-5*x^2+25*x-24)/(x^2-5*x+4)
22 Komposisi fungsifog=f(g(x))
subs(f,g)pretty(subs(f,g))
ans =(x^2-5*x+6)^2/(x-2)^2-5*(x^2-5*x+6)/(x-2)+6
22 Mengammbar fungsi g(x) dalam bentuk system koordinat polar
ezpolar(g)
1
2
3
4
30
210
60
240
90
270
120
300
150
330
180 0
r = (x2-5 x+6)/(x-2)
Ripai, S.Pd., M.Si
143
Page 31
Kompter Pemograman BasicBerbasis Matrik Laboratorium
No Konsep Matematika Perintah Pada Comand Window
Output
23 Mendefinisikan fungsi inplisit x2+y2=4
syms x yh=x^2+y^2-4pretty(h)
h= x^2+y^2-4
24 Mengambar fungsi inplisit x2+y2=4
ezplot(h)grid on
x
y
x2+y2-4 = 0
-6 -4 -2 0 2 4 6-6
-4
-2
0
2
4
6
3.2. Pendefinisian fungsi dengan perintah inlineSelain dengan perintah syms x, kita juga dapat medefinisikan fungsi dengan
perintah inline. Berikut diberikan contoh penggunaanya.
NO KOSEP KALKULUS PERINTAH PADA Command Window MATLAB
OUTPUT
1 Pendefinisian persamaan fungsi f(x)=x2-5x+6
f=inline('x.^2-5.*x+6','x') f = Inline function: f(x) = x^2-5*x+6
2 Pendefinisian fungsi g(x) = xe-x + 1
g=inline('x.*exp(-x)+1','x') g = Inline function: g(x) = x.*exp(-x)+1
3 Membuat domain fungsi pada selang 0≤x≤5 dengan ∆x = 0.25
x=[0:0.25:5] x = Columns 1 through 11 0 0.25 0.50 0.75 1.00 1.25 1.50 1.75 2.00 2.25 2.50 Columns 12 through 21 2.75 3.00 3.25 3.50 3.75 4.00 4.25 4.50 4.75 5.00
4 Mengambar grafik fungsi f(x)
Mengabungkan Grafik
Mengambar grafik fungsi g(x) dengan warna merah
Membuat garis-garis koordinat
plot(x,f(x))
hold on plot(x,g(x),'r') grid on 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
-1
0
1
2
3
4
5
6
Domain fungsi
Ran
ge fu
ngsi
Belajar membuat grafik fungsi
f(x)g(x)
Ripai, S.Pd., M.Si
143
Page 32
Kompter Pemograman BasicBerbasis Matrik Laboratorium
NO KOSEP KALKULUS PERINTAH PADA Command Window MATLAB
OUTPUT
Membuat keterangan absis
Membuat keterangan ordinat
Membuat judul grafik fungsi
Membuat keterangan grafik
xlabel('Domain fungsi') ylabel('Range fungsi')
title('Belajar membuat grafik fungsi')legend('f(x)','g(x)')
5 Menentukan nilai x sehingga f(x) = 0 dengan mengambil nilai awal pencarian x0 = -1 dan x0 = 5
fzero(f,-1)fzero(f,5)
ans = 2.0000ans = 3.0000
6 Menghitung nilai f(5)
f(5) ans = 6
7 Mendefinisikan fungih(x,y)=x2 + y2
h=inline('x.^2+y.^2','x','y') h =
Inline function: h(x,y) = x.^2+y.^2
8 Menghitung nilai h untuk x= 1 dan y =2
h(1,2) h(1,2)ans = 5
9 Membuat domain fungsi x dan y pada interval 0 ≤ x ≤ 20dan o ≤ y ≤ 20 dengan ∆x = 0.1
x=[0:0.1:20];y=[0:0.1:20];
Tidak ada utput, karena tanda “ ;” yang diberikan merupakan perintah untuk tidak menampilkan hasil dari perintah yang diberikan.
10 Mengambar grafik fungsi h(x,y) pada domain x dan y yang telah didefinisikan sebelumnya
z=h(x,y);plot3(x,y,z)
05
1015
20
0
5
10
15200
200
400
600
800
3.3 Mendefinisikan fungsi berdasarkan dataSelain dengan menggunakan bentuk syms dan inline, maka teknik
komptasi untuk membangun fungsi dan grafik berdasarkan suatu data
yang diketahui dapat dilakukan dengan cara sebagai berikut:
NO KOSEP KALKULUS PERINTAH PADA Command Window MATLAB
OUTPUT
1 Mendefinsikan x=[3 3 4 6 7 8 5 7 9 10 11 9 x =
Ripai, S.Pd., M.Si
143
Page 33
Kompter Pemograman BasicBerbasis Matrik Laboratorium
NO KOSEP KALKULUS PERINTAH PADA Command Window MATLAB
OUTPUT
domain fungsi x = {3, 3, 4, 6, 7, 8, 5, 7, 9, 10, 11, 9, 12, 8, 7, 12, 13, 8, 13 15}
12 8 7 12 13 8 13 15] 3 3 4 6 7 8 5 7 9 10 11 9 12 8 7 12 13 8 13 15
2 Mendefinisikan range fungsi f={6, 5, 8, 7, 7, 9, 4, 8, 15, 12, 9, 8, 8, 14, 15, 12, 10, 12, 9, 11}
f=[6 5 8 7 7 9 4 8 15 12 9 8 8 14 15 12 10 12 9 11]
f = Columns 1 through 19 6 5 8 7 7 9 4 8 15 12 9 8 8 14 15 12 10 12 9 Column 20 11
Mengambar grafik fungsi dengan tanda *
Membuat keterangan absis
Membuat keterangan ordinat
Membuat judul grafik
plot(x,f,'*')
xlabel('domain fungsi')
ylabel('Range fungsi')
title('Latihan membuat grafik')
2 4 6 8 10 12 14 164
6
8
10
12
14
16
domain fungsi
Ran
ge fu
ngsi
Latihan membuat grafik
4 Melukiskan grafik dalam bentuk batang garis
bar(x,f,'r')
2 4 6 8 10 12 14 160
5
10
15
domain fungsi
Ran
ge fu
ngsi
Latihan membuat grafik
5 Mengambar grafik f pada domain x dengan bentuk diagram lingkaran
pie(x,y) 2%2%2%4%
4%
5%
3%
4%
5%
6%
6%
5% 7%5%
4%
7%
8%
5%
8%
9%
3.4 Mendefinisikan Fungsi Polynomial Berdasarkan Koefesien Persamaan
Ripai, S.Pd., M.Si
143
Page 34
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Apabila dalam fungsi polynomial, diketahui koefesien fungsinya, maka kita dapat
mendefinisikan persaman fungsi dan mengambar grafik serata teknik komputasi
matematika lainnya dengan cara sebagai berikut:
NO KOSEP KALKULUS PERINTAH PADA Command Window MATLAB
OUTPUT
1 Pendefinisian fungsi f(x)=x2 -5x+6
f=[1 -5 6] f = 1 -5 6
2 Menghitung nilai f(0)
polyval(f,0) ans =6
3 Mengambar grafik f pada domain 0≤x≤5 dengan ∆x = 0.25
x=0:0.25:5;y=polyval(f,x);plot(x,y)
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5-1
0
1
2
3
4
5
6
4 Menentukan akar persamaan dari f(x)
roots(f) ans = 3.0000 2.0000
5 Menuliskan persamaan fungsi
poly2sym(f) ans = x^2-5*x+6
3.4 Mendefinisikan Fungsi Trigonometri
Pendefinisian fungsi trigonometri dapat dilakukan dengan cara sebagai berikut:
Tabel 2.5 Komputasi fungsi trigonometri
NO KOSEP KALKULUS PERINTAH PADA Command Window MATLAB
OUTPUT
1 Mendefinisikan domain fungsi sinus
syms x f=sin(x)
f = sin(x)
2 Menghitung nilai dari sin 30
subs(f,30) ans = -0.9880
3 Menghitung nilai dari sin 300
subs(f,30.*pi./180) ans = 0.5000
4 Mengambar contoh grfaik fungsi sinus
ezplot(f)
-6 -4 -2 0 2 4 6
-1
-0.5
0
0.5
1
x
sin(x)
Ripai, S.Pd., M.Si
143
Page 35
Kompter Pemograman BasicBerbasis Matrik Laboratorium
NO KOSEP KALKULUS PERINTAH PADA Command Window MATLAB
OUTPUT
5 Menggambar grafik fungsi f pada domain [0:60]
x=[0:60];ezplot(f,x)
0 10 20 30 40 50 60
-1
-0.5
0
0.5
1
x
sin(x)
6 Bentuk jumlah sinus syms x yexpand(sin(x+y))
ans =cos(x)*sin(y) + cos(y)*sin(x)
7 Bentuk selisih sinus expand(sin(x-y)) ans =cos(y)*sin(x) - cos(x)*sin(y)
8 Bentuk jumlah kosinus
expand(cos(x+y)) ans = cos(x)*cos(y) - sin(x)*sin(y)
9 Bentuk selisih sinus expand(cos(x-y)) ans=cos(x)*cos(y) + sin(x)*sin(y)
10 Bentuk jumlah tangent
pretty(expand(tan(x+y)))
11 Bentuk selisih tangent
pretty(expand(tan(x-y)))
12 Bentuk perkalian scalar
expand([sin(2*x),cos(2*y)])
ans = [ 2*cos(x)*sin(x), cos(y)^2 - sin(y)^2]
13 Bentuk sederhana dari sin x2 + cos x2
simplify(sin(x)^2 + cos(x)^2)
ans=1
Dengan cara yang sama, dapat dikontruksi untuk fungsi-fungsi trigonometri lainnya. Berikut
diberikan tabel perintah dasar pendefinisian fungsi trigonometri.
No Fungsi Deskripsi Pendefinisian komputasi
1 acos Inves kosinus acos (x)
2 acosh Invers hiperbola kosinus acosh(x)
3 acot Invers kotangen acot(x)
4 acoth Invers hiperbola kotangen acoth(x)
5 acsc Invers Kosekan acsc(x)
6 acsch Invers hiperbola kosekan acsch(x)
7 asec Invers Sekan asec(x)
8 asech Invers hiperbola sekan asech(x)
Ripai, S.Pd., M.Si
143
Page 36
Kompter Pemograman BasicBerbasis Matrik Laboratorium
No Fungsi Deskripsi Pendefinisian komputasi
9 asin Invers Sinus asin(x)
10 asinh Invers hiperbila sinus asinh(x)
11 atan Invers hiperbola tangent atan(x)
12 atanh Inver hiperbola tangent atanh(x)
13 cos Kosinus cos(x)
14 cosh Kosinus hiperbola cosh(x)
15 cot Kotangen cot(x)
16 coth Kotangen hiperbola coth(x)
17 csc Kosekan csc(x)
18 csch Kosekan hiperbola csch(x)
19 sec Sekan sec(x)
20 sech Sekan hiperbola sech(x)
21 sin Sinus sin(x)
22 sinh Sinus hiperbola sinh(x)
23 tan Tangent tan(x)
24 tanh Tangent hiperbola tanh(x)
TUGAS 2Kerjakan intruksi berikut ini dengan benar, dan dikumpulkan pada pertemuan
berikutnya!
Intruksi:
1. Buatlah masing-masing minimal 5 buah fungsi polynomial dan fungsi
rasional kemudian lakukan komputasi sebagaimana pada kegiatan 1.1
dan 1.2
2. Buatlah data fungsi sekurang-kurangnya 3 dengan banyaknya data
minimal 30 dan lakukan komptasi sebagaimana pada kegiatan 1.3
Ripai, S.Pd., M.Si
143
Page 37
Kompter Pemograman BasicBerbasis Matrik Laboratorium
3. Batlah minimal 5 buah fungsi polynomial yang diketahui koefesien
fungsinya dan lakukan komputasi sebagaimana pada kegiatan 2.4
4. Buatlah minimal 3 buah fungsi untuk masing-masing dari 24 jenis fungsi
trigonometri sebagaimana yang terdapat pada tabel sebelumnya
kemudiab lakukan komputasi untuk menentukan grafik, dan
mengevaluasi suatu nilai tertentu.
Bismillahirrahmanirraim.
Pada pertemuan sebelumnya, telah di bahas pemograman command windows
untuk mendefinisikan fungsi matematika. Setiap mahasiswa harus dapat
memastikan dirinya bahwa materi sebelumnya tersebut telah tuntas di kuasai.
Pada pertemuan kali ini akan dibahasa tentang bagaimana pemograman
komputasi untuk kalkulus dasar pada comad window. Perkualiahan ini
diselenggarakan dengan asumsi mahasiswa telah menguasai konsep kalkulus
dasar yang meliputi, limit fungsi, Asismtot kurva, Maksimum dan minimum
fungsi, diperensial dan garis singgung pada kurva serta integral dan luas
daerah di bahwah kurva. Bagi mahasiswa yang belum tuntas materi tersebut,
diharapkan untuk belajar individu atau berdiskusi dengan mahasiswa lainnya.
4.1 Pemograman Limit Fungsi
NO KOSEP MATEMATIKA
KOMPUTASI MATEMATIKA OUTPUT
1 Pendefinisian fungsi rasional
syms xf1=3*x^2 + 6*x -1; f2= x^2 + x - 3;f=f1/f2
f =(3*x^2+6*x-1)/(x^2+x-3)
Ripai, S.Pd., M.Si
4 Pemograman Kalkulus Dasar Pada Comand Window MATLAB
143
Page 38
Kompter Pemograman BasicBerbasis Matrik Laboratorium
NO KOSEP MATEMATIKA
KOMPUTASI MATEMATIKA OUTPUT
pretty(f)
2 Gambar grafik fungsi f(x)
ezplot(f)
-6 -4 -2 0 2 4 6-4
-2
0
2
4
6
8
x
(3 x2+6 x-1)/(x2+x-3)
3 Menghitung nilai limit(f,x,-3,'left') ans =8/3
4 Menghitung nilai limit(f,x,-3,'right') ans =
8/3
5 Menghitung nilai limit(f,-3) ans =8/3
6 Menghitung nilai limit(f,x,inf) ans =3
7 Menghitung nilai limit(f,x,-inf) ans =3
8 Simulasi double(limit(f,x,-2.3799,'left'))
ans = 6.0290
9 Hitung double(limit(f,x,-2.7399,'right'))
ans =
2.8757
10 Simulasi x=[-10:0.25:-2.7399];ezplot(f,[-10 10]) hold onplot(x,subs(f,x),'.r')
-10 -8 -6 -4 -2 0 2 4 6 8 10
-1
0
1
2
3
4
5
6
7
x
(3 x2+6 x-1)/(x2+x-3)
X: -9.75Y: 2.742
Ripai, S.Pd., M.Si
143
Page 39
Kompter Pemograman BasicBerbasis Matrik Laboratorium
NO KOSEP MATEMATIKA
KOMPUTASI MATEMATIKA OUTPUT
11 Simulasi x1=[-10:0.25:-2.7399];x2=[-2.7399:0.25:0.5]; x=[-10:0.001:10];ezplot(f1/f2,x)hold onplot(x1,subs(f,x1),'.r')hold onplot(x2,subs(f,x2),'*y') -10 -8 -6 -4 -2 0 2 4 6 8 10
-1
0
1
2
3
4
5
6
7
X: -6.5Y: 2.649
x
(3 x2+6 x-1)/(x2+x-3)
4.2 Menentukan Asimtot Kurva
NO KOSEP MATEMATIKA
KOMPUTASI MATEMATIKA OUTPUT
1 Definisikan fungsi syms xf1=3*x^2 + 6*x -1; f2= x^2 + x - 3;f=f1/f2pretty(f)
f =(3*x^2+6*x-1)/(x^2+x-3)
2 Gambar grafik fungsi f(x)
ezplot(f)
-6 -4 -2 0 2 4 6-4
-2
0
2
4
6
8
x
(3 x2+6 x-1)/(x2+x-3)
3 Menentukan asimtot Horizontal kurva
y=limit(f, inf) y =3
4 Menentukan asimtot vertical kurva
x=solve(f2) x = -1/2+1/2*13^(1/2) -1/2-1/2*13^(1/2)
5 Mengambar garis asimtot horizontal
hold onplot([-2*pi 2*pi], [3 3],'g')
Ripai, S.Pd., M.Si
143
Page 40
Kompter Pemograman BasicBerbasis Matrik Laboratorium
NO KOSEP MATEMATIKA
KOMPUTASI MATEMATIKA OUTPUT
6 Mengambar garis asimtoto Vertikal
plot(double(x(1))*[1 1], [-5 10],'r')plot(double(x(2))*[1 1], [-5 10],'r')
-6 -4 -2 0 2 4 6-4
-2
0
2
4
6
8
x
(3 x2+6 x-1)/(x2+x-3)
4.3 Menentukan Nilai Maksimum dan Minimum Kurva
NO KOSEP MATEMATIKA
KOMPUTASI MATEMATIKA OUTPUT
1 Definisikanfungsi syms xf1=3*x^2 + 6*x -1; f2= x^2 + x - 3;f=f1/f2pretty(f)
f =(3*x^2+6*x-1)/(x^2+x-3)
2 Gambar grafik fungsi f(x)
ezplot(f)
-6 -4 -2 0 2 4 6-4
-2
0
2
4
6
8
x
(3 x2+6 x-1)/(x2+x-3)
3 Mencari turunan pertama dari f
df=diff(f) df =(6*x+6)/(x^2+x-3)-(3*x^2+6*x-1)/(x^2+x-3)^2*(2*x+1)
4 Bentuk sederhana dari df
df= simplify(df) df =-(3*x^2+16*x+17)/(x^2+x-3)^2
5 Mempercantik fungsi df
pretty(df)
6 Mencari nilai x sehingga df(x)=0
x=solve(df) x = -8/3-1/3*13^(1/2) -8/3+1/3*13^(1/2)
Ripai, S.Pd., M.Si
143
Page 41
Kompter Pemograman BasicBerbasis Matrik Laboratorium
NO KOSEP MATEMATIKA
KOMPUTASI MATEMATIKA OUTPUT
7 Menggambar koordinat titik ekstrikMenuliskan keterangan posisi Minimum LokalMenuliskan keterangan posisi Maksimum Lokal
plot(double(x), double(subs(f,x)),'ro') text(-5.5,3.2,'Minimum Lokal' text(-2.5,2,'Maksimum Lokal')
-6 -4 -2 0 2 4 6-4
-2
0
2
4
6
8
x
(3 x2+6 x-1)/(x2+x-3)
Local minimumMinimum Lokal
Maksimum Lokal
4.4 Pemograman Turunan fungsi dan Garis Singgung Pada Kurva
NO KOSEP MATEMATIKA
KOMPUTASI MATEMATIKA OUTPUT
1 Definisikan x dan h sebagai symbol matematika
syms x h
2 Menentukan nilai limit((sin(x+h)-sin(x))/h,h,0) ans =cos(x)
3 Pendefinisian fungsi f(x)=x2 -5x+6
f=x^2-5*x+6 f =x^2-5*x+6
4 Mengambar grafik fungsi f pada domain -10≤x≤10
ezplot(f,[-10 10])
-10 -8 -6 -4 -2 0 2 4 6 8 10
0
20
40
60
80
100
120
140
160
x
x2-5 x+6
5 Turunan pertama dari fungsi f dan sebut hasilnya sebagai fungsi df
df=diff(f) df =2*x-5
6 Turunan ke-2 dari fungsi f
diff(f,2) ans =2
7 Menentukan nilai x sehingga f(x) minimum
x=solve(df) x =5/2
8 Menulsikan dalam bentuk decimal dari x
x=double(x) x = 2.5000
Ripai, S.Pd., M.Si
143
Page 42
Kompter Pemograman BasicBerbasis Matrik Laboratorium
NO KOSEP MATEMATIKA
KOMPUTASI MATEMATIKA OUTPUT
9 Menghitung nilai minimum fungsi
fmin=subs(f,x) fmin = -0.2500
10 Menentukan kemiringan kurva pada titik x = 3.5
m=subs( df,3.5) m =2
9 Persamaan garis singgung kurva pada titik (1.5,f(1.5)) dan disebut sebagai g
a=1.5;b=subs(f,a);m=subs(df,a);g=m*(x-a)+b
g =-2*x+15/4
10 Mengambar garis singgung kerva f(x) pada titik (1.5,f(1.5))
ezplot(f,[-4:8])hold onezplot(g,[-4:8])
-4 -2 0 2 4 6 8
-10
-5
0
5
10
x
-2 x+15/4
10 Mendefinsikan fungsi inplisit x2 + y2=4
syms x yh=x^2+y^2-4pretty(h)
h =x^2+y^2-4
11 Turunan inplisit dari x2+y2=4 terhadap x
diff(h,x) ans =2*x
12 Turunan inplisit dari x2+y2=4 terhadap y
diff(h,y) ans =2*y
4.5 Pemograman Integral Fungsi dan Luas Daerah di Bawah Kurva
NO KOSEP MATEMATIKA
KOMPUTASI MATEMATIKA OUTPUT
1 Pendefinisian fungsi f(x)=x2 -5x+6
syms x f=x^2-5*x+6
f =x^2-5*x+6
2 Integrat fungsi f(x) int(f) ans =1/3*x^3-5/2*x^2+6*x
3 Mendefinsikan hasil integral dari f sebagai fungsi dalam g
g=int(f) g =1/3*x^3-5/2*x^2+6*x
Ripai, S.Pd., M.Si
143
Page 43
Kompter Pemograman BasicBerbasis Matrik Laboratorium
NO KOSEP MATEMATIKA
KOMPUTASI MATEMATIKA OUTPUT
4 Menuliskan dalam bentuk yang lebih bagus formula fungsi g
pretty(g)
5 Menghitung nilai int(f,0,5) ans =55/6
6 Menuliskan bentuk 55/6 ke dalam bentuk decimal
double(55/6) ans = 9.1667
7 Membuat domain fungsi pada interval 0≤x≤5 dengan ∆x = 0.25
x=[0:0.25:5] x = Columns 1 through 11 0 0.2500 0.5000 0.7500 1.0000 1.2500 1.5000 1.7500 2.0000 2.2500 2.5000 Columns 12 through 21 2.7500 3.0000 3.2500 3.5000 3.7500 4.0000 4.2500 4.5000 4.7500 5.0000
8 Membuat Range fungsi f(x)
y=subs(f,x); y = Columns 1 through 11 6.0000 4.8125 3.7500 2.8125 2.0000 1.3125 0.7500 0.3125 0 -0.1875 -0.2500 Columns 12 through 21 -0.1875 0 0.3125 0.7500 1.3125 2.0000 2.8125 3.7500 4.8125 6.0000
9 Menggmbar grafik fungsi f(x) pada domain x dengan dibawah kurvanya diarsir
area(y)
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5-1
0
1
2
3
4
5
6
10 Menghitung Luas di bawah kurva f(x) pada domain 0≤x≤5 dengan ∆x = 0.25
L=double(int(f,0,2)+abs(int(f,2,3))+int(f,3,5))
L =9.5000
Ripai, S.Pd., M.Si
143
Page 44
Kompter Pemograman BasicBerbasis Matrik Laboratorium
NO KOSEP MATEMATIKA
KOMPUTASI MATEMATIKA OUTPUT
11 Menuliskan keterangan luas daerah pada kurva pada koordinat (2,2)
text(2,2,(['Luas = ',num2str(double(L))]))
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5-1
0
1
2
3
4
5
6
Luas = Luas = Luas = Luas = 9.5
12 Menuliskan keterangan pada sumbu x (absis)
Menuliskan keterangan pada sumbu y (ordinat)
Menuliskan judul fungsi
Melukiskan garis koordinat
Membuat keterangan
xlabel('Domain Fungsi')
ylabel('Range Fungsi')
title('Grafik fungsi f(x) = x^2-5x+6')grid on
legend('Simulasi luas di bawah kurva')
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5-1
0
1
2
3
4
5
6
Luas = Luas = Luas = Luas = 9.5
Domain Fungsi
Ran
ge F
ungs
i
Grafik fungsi f(x) = x2-5x+6
Simulasi luas di bawah kurva
10 Mendefinsikan fungsi inplisit x2 + y2=4
syms x yh=x^2+y^2-4pretty(h)
h =x^2+y^2-4
11 Integral dari fungsi inplisit x2+y2=4 terhadap x
int(f,x)pretty(int(f,x))
ans =1/3*x^3+y^2*x-4*x
12 Integral dari fungsi fungsi inplisit x2+y2=4 terhadap y
int(f,y)pretty(int(f,y))
ans =x^2*y+1/3*y^3-4*y
TUGAS 4Intruksi tugas individu 4
1. Mahasiswa membuat makalah terkait
a. Limit fungsi
b. Asimtot horizontal dan vertical
c. Nilai maksimum dan minimum fungsi
Ripai, S.Pd., M.Si
143
Page 45
Kompter Pemograman BasicBerbasis Matrik Laboratorium
d. Diferensial dan garis singgung pada kurva serta
e. Integral dan luas di bawah kurva
f. Integral dan Volume benda putar
2. Pada makalah tersebut, setiap materi diberikan penyelesaian dengan
komputasi matematika sebagaimana uraian pada materi sebelumnya
Ripai, S.Pd., M.Si
143
Page 46
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Bismillahirrahmanirrahim.
Matriks merupakan susunan data yang disajikan dalam bentuk baris dan
kolom. Dalam bernagai bidang keilmuan, konsep matriks umumnya selalu
dipergunakan. Seperti tabulasi data, jadwal kegiatan, graph, system
persamaan linier dan lain sebagainya. Matematika sebagai konsep fikir,
memberikan berbagai metode ilmiah yang rasional untuk memudahkan
penyelesaian masalah kehidupan dengan matriks. Matlab sebagai
pemograman dengan bahasa dasar berbasis matriks, memberikan berbagai
teknik komputasi. Berikut diberikan teknik komputasi Matriks dengan Matlab.
Mahasiswa diharapkan sudah memiliki pengetahuan dasar-dasar matriks
sebagaimana yang diuraikan dalam aljabar linie dan mata kuliah lainnya.
5.1 Operasi Uner (tunggal) pada Matriks
NO
KOSEP MATEMATIKA
KOMPUTASI MATEMATIKA OUTPUT
1 Pendefinisian matriks dalam bentuk satu baris
A=[13 54 23 78 21] A = 13 54 23 78 21
2 Transpose Matriks A
A' ans = 13 54 23 78 21
3 Pendefinisian matriks dalam bentuk satu kolom
B=[13;45;63;78;98;76] B = 13 45 63 78 98 76
Ripai, S.Pd., M.Si
5 Pemograman Matrik Pada Comand Window MATLAB
143
Page 47
Kompter Pemograman BasicBerbasis Matrik Laboratorium
NO
KOSEP MATEMATIKA
KOMPUTASI MATEMATIKA OUTPUT
4 Transpose Matriks B
B' ans = 13 45 63 78 98 76
5 Mendefinisikan matriks dalam bentuk 3 baris dan 4 kolom
C=[3 4 2 6;5 8 9 2;4 5 6 7] C =3 4 2 65 8 9 24 5 6 7
6 Transpose Matriks C
C' ans = 3 5 4 4 8 5 2 9 6 6 2 7
7 Mengambil elemen baris ke-2 kolom ke-3 matriks C
C(2,3) ans =
9
8 Mengambil elemen matriks pada baris ke-3 dari matriks C
C(3,:) ans = 4 5 6 7
9 Mengambil elemen matriks pada kolom ke-2 dari matrikc C
C(:,2) ans = 4 8 5
10 Mengambil elemen matrik C pada baris terakhir
C(end,:) ans = 4 5 6 7
11 Mengambil elemen matrik C pada kolom terakhir
C(:,end) ans =
6 2 7
12 Mengambil elemen matriks C dari baris ke-1 sampai baris ke-2
C(1:2,:) ans = 3 4 2 6 5 8 9 2
13 Mengambil elemen matriks C dari kolom ke-2 sampai kolom ke-3
C(:,2:3) ans = 4 2 8 9 5 6
14 Mengambil C(2:3,3:4) ans =
Ripai, S.Pd., M.Si
143
Page 48
Kompter Pemograman BasicBerbasis Matrik Laboratorium
NO
KOSEP MATEMATIKA
KOMPUTASI MATEMATIKA OUTPUT
elemen matriks C dari baris ke-2 sd baris ke 3 dan kolom ke-3 sd kolom ke-4
9 2 6 7
15 Menghapus Elemen matriks C pada kolom ke-2
C(:,2)=[] C = 3 2 6 5 9 2 4 6 7
16 Menjumlahkan elemen pada kolom matriks C
sum(C) ans =
12 17 1517 Menjumlahkan
elemen pada kolom matriks C
sum(C’) ans = 11 16 17
18 Menghitung determinan matriks C
det(C) ans = 63
19 Menentukan inver matriks C
inv(C) ans =
0.8095 0.3492 -0.7937 -0.4286 -0.0476 0.3810 -0.0952 -0.1587 0.2698
20 Menghitung eigen value matriks C
eig(C) ans =
14.9286 2.0357 + 0.2758i 2.0357 - 0.2758i
21 Menentukan eigen value dan vector eigen dari matriks C
[v e]=eig(C)
Ripai, S.Pd., M.Si
143
Page 49
Kompter Pemograman BasicBerbasis Matrik Laboratorium
NO
KOSEP MATEMATIKA
KOMPUTASI MATEMATIKA OUTPUT
22 Menyimpan eigen value dan vector eigen ke dalam bentuk excel
xlswrite('Coba simpan',[v u])
23 Melihat hasil simpanan tersebut
24 Mengambil data matriks dari excel untuk dimasukkan ke dalam Matlab
xlsread('Coba simpan','sheet1')
25 Membentuk matriks nol satu baris 5 kolom
zeros(1,5) ans = 0 0 0 0 0
26 Membentuk matriks nol 4 baris 1 kolom
zeros(4,1) ans = 0 0 0 0
27 Membentuk matriks nol dengan 4 baris dan 5 kolom
c(4,5) ans =
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Ripai, S.Pd., M.Si
143
Page 50
Kompter Pemograman BasicBerbasis Matrik Laboratorium
NO
KOSEP MATEMATIKA
KOMPUTASI MATEMATIKA OUTPUT
28 Membentuk matriks satuan dengan 1 baris dan 5 kolom
ones(1,5) ans =
1 1 1 1 1
29 Membentuk matriks satuan dengan 4 baris dan 1 kolom
ones(4,1) ans =
1 1 1 1
30 Membentuk matriks satuan dengan empat baris dan 5 kolom
ones(4,5) ans = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
31 Menentukan rank matriks A
rank(C) ans = 3
12 Membuat matriks identitas berukuran 3 baris dan 3 kolom
eye(3,3) ans = 1 0 0 0 1 0 0 0 1
33 Menentukan elemen diagonal dari matriks C
diag(C) ans = 3 9 7
5.2 Operasi Biner Pada Matriks
NO KOSEP MATEMATIKA
KOMPUTASI MATEMATIKA OUTPUT
1 Mendefinisikan matriks A dan B
A=[1 2 3;5 4 3;6 7 4]B=[5 4 3;8 6 2;0 9 8]
A =
1 2 3 5 4 3 6 7 4B = 5 4 3 8 6 2 0 9 8
2 Menentukan nilai C=A+B C =
Ripai, S.Pd., M.Si
143
Page 51
Kompter Pemograman BasicBerbasis Matrik Laboratorium
NO KOSEP MATEMATIKA
KOMPUTASI MATEMATIKA OUTPUT
dari C=A+B 6 6 6 13 10 5 6 16 12
3 Menentukan nilai dari D=A-B
D=A-B D =
-4 -2 0 -3 -2 1 6 -2 -4
4 Menentukan hasil dari perkalian skalar konstanta dengan matriks
2*A ans =
2 4 6 10 8 6 12 14 8
5 Menentukan hasil perkalian sklar dua buah matriks
A.*B ans =
5 8 9 40 24 6 0 63 32
6 Menentukan hasil perkalian dua buah matriks
A*B ans =
21 43 31 57 71 47 86 102 64
7 Mengabungkan matriks A dan B berdasarkan kolom
[A B] ans =
1 2 3 5 4 3 5 4 3 8 6 2 6 7 4 0 9 8
8 Mengabungkan matriks A dan B berdasarkan Baris
[A;B] ans =
1 2 3 5 4 3 6 7 4 5 4 3 8 6 2 0 9 8
Ripai, S.Pd., M.Si
143
Page 52
Kompter Pemograman BasicBerbasis Matrik Laboratorium
NO KOSEP MATEMATIKA
KOMPUTASI MATEMATIKA OUTPUT
9 Menyajikan Koefesien SPLX1 + x2-3x3 = 52x1-4x2-x3 = 8X1 – 5x2 + x3 = 12
Ke dalam bentuk matriks
A=[1 1 -3;2 -4 -1;1 -5 1]B=[5;8;12]
A = 1 1 -3 2 -4 -1 1 -5 1
B = 5 8 12
10 Menentukan Solusi SPL dengan mengunakan metode invers matriks
X=inv(A)*B X =
-14.8333 -7.1667 -9.0000
12 Menentukan solusi SPL dengan metode pembagian matriks
X=A\B =
-14.8333 -7.1667 -9.0000
13 Memeriksa kesamaan dua buah matrks
isequal(A,B) ans = 0
isequal(A,A) ans = 1
14 Bentuk matriks dekomposisi LU dari matriks A
[L U P]=lu(A) L = 1.0000 0 0 -0.1111 1.0000 0 0.2222 -0.6056 1.0000
U = 9 -1 2.0000 0 7.8889 -4.7778 0 0 3.6620
P = 0 1 0 1 0 0 0 0 1
15 Memeriksa L*U L*U ans = 9 -1 2 -1 8 -5
Ripai, S.Pd., M.Si
143
Page 53
Kompter Pemograman BasicBerbasis Matrik Laboratorium
NO KOSEP MATEMATIKA
KOMPUTASI MATEMATIKA OUTPUT
2 -5 716 Memeriksa P*A P*A ans =
9 -1 2 -1 8 -5 2 -5 7
17 Menuliskan matriks jarak dari suatu graph berarah
Asl Tjn Jarak
4 1 456 2 412 3 515 3 326 3 293 4 155 4 361 5 212 5 321 6 994 6 38
Asl=[4 6 2 5 6 3 5 1 2 1 4];Tjn=[1 2 3 3 3 4 4 5 5 6 6];Jrk=[45 41 51 32 29 15 36 21 32 99 38];G=sparse(Asl,Tjn,Jrk)
G =
(4,1) 45 (6,2) 41 (2,3) 51 (5,3) 32 (6,3) 29 (3,4) 15 (5,4) 36 (1,5) 21 (2,5) 32 (1,6) 99 (4,6) 38
18 Membuat gambar graph berarah dari titik asal ke titik tujuan
view(biograph(G,[],'ShowWeights','on'))
19 Menuliskan matriks lintasan jarak terpendek
graphallshortestpaths(G)
ans = 0 136 53 57 21 95 111 0 51 66 32 104 60 94 0 15 81 53 45 79 67 0 66 38 81 115 32 36 0 74
Ripai, S.Pd., M.Si
143
Page 54
Kompter Pemograman BasicBerbasis Matrik Laboratorium
NO KOSEP MATEMATIKA
KOMPUTASI MATEMATIKA OUTPUT
89 41 29 44 73 020 Menentukan
matriks jacobian dari SPNL berikut2x2-3y+z3 = 54x+3y3 + 2sin(z) = 12xy-y2 + 5z = 9.5
syms x y z M=[2*x^2-3*y+z^3-5;4*x+3*y^3+2*sin(z)-12;x*y-y^2+5*z-9.5] J=jacobian(M)
M = 2*x^2-3*y+z^3-5 4*x+3*y^3+2*sin(z)-12 x*y-y^2+5*z-19/2
J =[ 4*x, -3, 3*z^2][ 4, 9*y^2, 2*cos(z)][ y, x-2*y, 5]
21 Mensubtitusikan nilai x= 0
Jx=subs(J,0) Jx = [ 0, -3, 3*z^2][ 4, 9*y^2, 2*cos(z)][ y, -2*y, 5]
22 Mensubtitusikan nilai y=0
Jxy=subs(Jx,0) Jxy =[ 0, -3, 3*z^2][ 4, 0, 2*cos(z)][ 0, 0, 5]
23 Mensubtirusikan nilai dari z=0
Jxyz=subs(Jxy,0) Jxyz = 0 -3 0 4 0 2 0 0 5
TUGAS 5
Intruksi Tugas
1. Buatlah suatu matriks dari Koefesien SPL dengan minimal 50 Variabel
pada excel kemudian :
a. Masukkan data tersebut ke dalam matlab
b. Tentukan Determina dan inversnya
c. Tentukan Solusi SPL
d. Simpan Hasilnya ke dalam Matlab
Ripai, S.Pd., M.Si
143
Page 55
Kompter Pemograman BasicBerbasis Matrik Laboratorium
2. Cari contoh kasus suatu graph berarah kemudian
a. Definisikan matriks graph berarah tersebut
b. Tentukan Matriks lintasan terpendek
c. Buatkan model grafik dari graph berarah tersebut
Ripai, S.Pd., M.Si
143
Page 56
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Bismillahirrahmanirrahim
Data merupakan kumpulan dari fakta-fakta kejadian yang tercatat, dan suatu
ukuran yang menyatakan karakteristik dari data disebut statistic. Misalnya
dimiliki fakta kejadian hasil tes belajar x = [56 30 25 67 97 56 78 45 67 90],
maka suatu bilangan yang dapat dipakai untuk menyatakan wakil dari data
tersebut adalah 61,1 yang selanjutnya disebut dengan rataan data x. Rataan
ini merupakan statistic dari data x. Terdapat banyak jenis statistic yang dapat
dikaji dari data tersebut. Beberapa teknik komputasi yang dapat digunakan
untuk menentukan parameter statistika akan diuraikan di bawah ini.
Mahasiswa dituntut untuk dapat menguasai konsep dasar teori statistika
tersebut. Karena tanpa memahami konsep dasar dengan benar, maka roh
komputasinya tidak akan dirasakan oleh mahasiswa dan tentunya hal tersebut
menjadi tidak dapat dimengerti. Oleh karena itu, mahasiswa dituntut untuk
memiliki penguasaan awal yang baik tentang statistic. Berdiskusi, dengan
teman dan dosen serta banyak membaca buku adalah alternative solusi yang
baik.
4.1. Bahasa Dasar Komputasi Statistika Matematika
NO KOSEP MATEMATIKA
KOMPUTASI MATEMATIKA OUTPUT
1.1
Mendefinisikan data x=[56 30 25 67 97 56 78 45 67 90]
x = 56 30 25 67 97 56 78 45 67 90
2.2
Rataan data mean(x) ans = 61.1000
Ripai, S.Pd., M.Si
6 Pemograman Statistika Matematika Pada Comand Window MATLAB
PETENSI I
143
Page 57
Kompter Pemograman BasicBerbasis Matrik Laboratorium
NO KOSEP MATEMATIKA
KOMPUTASI MATEMATIKA OUTPUT
3.3
Median data x Median(x) ans = 61.5000
4. Standar Deviasi std(x) ans = 23.7133
5. Varians var(x) ans = 562.3222
6.4
Mengurutkan data x dari terkecil
sort(x) ans = 25 30 45 56 56 67 67 78 90 97
7.5
Menghitung nilai dari
Misal ambil: dan
Dengan variabel
random x
sebagaimana nomor
1
f=pdf('normal',x,mean(x),std(x))
atauf=normpdf(x,mean(x),std(x))
f = Columns 1 through 7
0.0164 0.0071 0.0053 0.0163 0.0053 0.0164 0.0131
Columns 8 through 10
0.0134 0.0163 0.0080
8.6
Mengambar kurva normal baku pada domain -5≤x≤5 dengan ∆x=0.1
x=[-5:0.1:5];f=pdf('normal',x,0,1)plot(x,y)
Catatan: f tersebut dapat didefinisikan dengan cara yang lain sebagai berikut:f=normpdf(x,0,1)
-5 -4 -3 -2 -1 0 1 2 3 4 50
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
9.7
Menghitung luas di bawah kurva normal baku pada domain x≤2
L=cdf('normal',2,0,1)Atau dengan cara berikut:L=normcdf(2,0,1)
L = 0.9772
10.8
Menghitung luas di bawah kurva normal baku pada domain 0≤x≤2
L=cdf('normal',2,0,1)-0.5Atau dengan cara berikut:L=normcdf(2,0,1)-0.5
L = 0.4772
Ripai, S.Pd., M.Si
143
Page 58
Kompter Pemograman BasicBerbasis Matrik Laboratorium
NO KOSEP MATEMATIKA
KOMPUTASI MATEMATIKA OUTPUT
11.9
Menggambar luas grafik di bawah kurva normal pada domain 0≤x≤2 dengan domain simulasi dari -5≤x≤5
X=[-5:0.01:5];x=[0:0.01:2];F=pdf('normal',X,0,1);f=pdf('normal',x,0,1);plot(X,F,'r')hold onarea(x,f)text(mean(x),mean(f),(['L=',num2str(L*100),'%']))
-5 -4 -3 -2 -1 0 1 2 3 4 50
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
L=47.725%
12.10
Menentukan nilai Z sehingga luas di bawah ujung kiri kurva normal baku 2.5%
Z=norminv(0.025) Z = -1.96
13.11
Menentukan nilai Z sehingga luas daerah di bawah ujung kanan kurva normal baku 2.5%
Z=norminv(0.975) Z = 1.96
14.12
Menghitung P(x=6.5) untuk X~N(x,µ, ) dengan µ = 7.25 dan
= 1.13
P=normpdf(6.5,7.25,1.13) P = 0.28
15.13
Menghitung P(x≤6.5) untuk X~N(x,µ, ) dengan µ = 7.25 dan
= 1.13
P=normcdf(6.5,7.25,1.13) P = 0.25
16.14
Menghitung P(x≥8.5) untuk X~N(x,µ, ) dengan µ = 7.25 dan
= 1.13
P=1-normcdf(8.5,7.25,1.13) P = 0.13
17.15
Menghitung P(6.5≤x≤8.5) untuk X~N(x,µ, ) dengan µ
= 7.25 dan = 1.13
x=[6.5:0.0001:8.5]; f=normpdf(x,7.25,1.13);P=sum(f*0.0001) AtauP=normcdf(8.5,7.25,1.13)-normcdf(6.5,7.25,1.13)
P = 0.61
18.16
Menghitung P(=6.5) untuk X~N(x,µ,
) dengan µ = 7.25,
= 1.13 dan n = 3
z=(6.5-7.25)/(1.13/sqrt(3))P=normpdf(z,0,1)
z = -1.15P = 0.21
19.17
Menghitung P( P=normcdf(z,0,1) P = 0.13
Ripai, S.Pd., M.Si
143
Page 59
Kompter Pemograman BasicBerbasis Matrik Laboratorium
NO KOSEP MATEMATIKA
KOMPUTASI MATEMATIKA OUTPUT
≤6.5) untuk X~N(x,µ,) dengan µ = 7.25,
= 1.13 dan n = 320.18
Menghitung P(≥8.5) untuk X~N(x,µ,
) dengan µ = 7.25,
= 1.13 dan n = 3
z=(8.5-7.25)/(1.13/sqrt(3))P=1-norcdf(z,0,1)
z = 1.92P = 0.03
21.19
Menghitung P(6.5≤≤8.5) untuk
X~N(x,µ, ) dengan µ
= 7.25, = 1.13 dan n = 3
z1=(6.5-7.25)/(1.13/sqrt(3))z2=(8.5-7.25)/(1.13/sqrt(3))P=normcdf(z2,0,1)-normcdf(z1,0,1)
z1 = -1.15z2 = 1.92P = 0.85
22.2
Menghitung
P( =6.5)
untuk X1 dan X2
terdistribusi Normal dengan µ1 = 7.25, 1= 1.13, n1 = 3 dan µ2
= 6.25, 2= 1.5, n2 = 3
u1=7.25;s1=1.13;n1=3;u2=6.25;s2=1.5;n2=3;z=(6.5-(u1-u2))/sqrt(s1/n1+s2/n2)P=normpdf(z,0,1)format longP=normpdf(z,0,1)
z = 5.87P = 0.00
P = 2.578964960253331e-009
23.2
Menghitung
P( 6.5)
untuk X1 dan X2
terdistribusi Normal dengan µ1 = 7.25, 1= 1.13, n1 = 3 dan µ2
= 6.25, 2= 1.5, n2 = 3
P=normcdf(z,0,1) P = 0.99999999959040
24.2
Menghitung
P( ≥8.5)
untuk X1 dan X2
terdistribusi Normal dengan µ1 = 7.25, 1= 1.13, n1 = 3 dan µ2
= 6.25, 2= 1.5, n2 = 3
z=(8.5-(u1-u2))/sqrt(s1/n1+s2/n2)P=1-normcdf(z,0,1)
z = 8.27721918366601P = 1.110223024625157e-016
25.2
Menghitung
P(6.5≤ ≤8.
5) untuk X1 dan X2
terdistribusi Normal
z1=(6.5-(u1-u2))/sqrt(s1/n1+s2/n2)z2=(8.5-(u1-u2))/sqrt(s1/n1+s2/n2)
z1 = 6.14116262013930z2 = 8.27721918366601
Ripai, S.Pd., M.Si
143
Page 60
Kompter Pemograman BasicBerbasis Matrik Laboratorium
NO KOSEP MATEMATIKA
KOMPUTASI MATEMATIKA OUTPUT
dengan µ1 = 7.25, 1= 1.13, n1 = 3 dan µ2
= 6.25, 2= 1.5, n2 = 3
P=normcdf(z2,0,1)-normcdf(z1,0,1)
P = 4.095982442109403e-010
26.2
Mengambar kurva distribusi Chi-Kuadrat pada domain 0≤chi≤20 dengan ∆x = 0.001 dan dk = 5
x=[0:0.001:20]; f=chi2pdf(x,5); plot(x,f)
0 2 4 6 8 10 12 14 16 18 200
0.02
0.04
0.06
0.08
0.1
0.12
0.14
0.16
27.2
Mengarsir daerah di bawah kurva chi-kuadarat pada domain 0≤chi≤8 dengan ∆x = 0.01 dan dk = 5
X=[0:0.001:8];F=chi2pdf(X,5);hold onarea(X,F)
0 2 4 6 8 10 12 14 16 18 200
0.02
0.04
0.06
0.08
0.1
0.12
0.14
0.16
28.2
Menghitung Luas daerah di bawah kurva chi-kuadarat pada domain 0≤chi≤8 dengan ∆x = 0.001 dan dk = 5
L=sum(F*0.001) L = 0.8438
29.2
Menuliskan luas daerah pada koordinat (4,0.06)
text(4,0.06,(['L=',num2str(L*100),'%']))
0 2 4 6 8 10 12 14 16 18 200
0.02
0.04
0.06
0.08
0.1
0.12
0.14
0.16
L=84.3792%
30.2
Menentukan nilai chi (chi tabel) sehingga luas dibawah kurva ujung kanan 5%
chi2inv(0.95,5) ans = 11.0705
31.2
Menentukan nilai chi (chi tabel) sehingga luas dibawah kurva ujung kiri 5%
chi2inv(0.05,5) ans = 1.1455
32.3
Menentukan nilai z (z table) sehingga luas dibawah kurva ujung kanan 5/2%
norminv(0.975,0,1) ans = 1.9600
33. Menentukan nilai t table dengan dk = 41
tinv(0.975,41) ans = 2.0195
Ripai, S.Pd., M.Si
143
Page 61
Kompter Pemograman BasicBerbasis Matrik Laboratorium
NO KOSEP MATEMATIKA
KOMPUTASI MATEMATIKA OUTPUT
sehingga luas dibawah kurva t ujung kanan 5/2%
34. Menentukan nilai f table dengan dk1=11 dan dk2 = 13 sehingga luas dibwah kurva f ujung kanan 5%
finv(0.95,11,13) ans = 2.6347
Selanjuntanya, untuk mensimulasikan definisi beberapa distribusi peluang
data, maupun kumulatif peluang seperti, distribusi normal, distribusi student,
distribusi fhiser, distribusi chi-kuadrat, distribusi binomial, distribusi
hipergeometris, distribusi geometris, distribusi poissen dan lainnya. Perintah
yang diberikan adalah
>> disttool
dan akan diperoleh output sebagai berikut:
TUGAS
Intruksi Tugas1. Buat suatu data minimal terdiri dari 150 fakta2. Lakukan komputasi sebagaimana uraian pada table diskusi
tersebut di atas3. Buatkan laporan dengan menyertai teori statistika dan bentuk
komputasi serta out[utnya.Tugas dikumpulkan minggu depan
Ripai, S.Pd., M.Si
143
Page 62
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Bismillahirrahmanirrahim
Pada bagian ini, akan diuraikan beberapa bahasa dasar komputasi untuk topic-topik khusus matematika yang umumnya digunakan dalam penyelesaian matematik.
6.1 Matematika Diskrit
NO KOSEP MATEMATIKA
KOMPUTASI MATEMATIKA OUTPUT
1.1
= bilangan bulat terbesar yang nilainya ≤ x
floor(3.9) ans = 3
2.Mengambar grafik
fungsi floor
x=[0:0.1:10]; f=floor(x); plot(x,f)
0 1 2 3 4 5 6 7 8 9 100
1
2
3
4
5
6
7
8
9
10
3. = bilangan bulat terkecil yang nilainya ≥ x
ceil(3.9) ans = 4
4. Mengambar grafik fungsi ceiling bersaamndengan grafik fungsi floor dengan warna merah
hold on g=ceil(x);plot(x,g,'r')
0 1 2 3 4 5 6 7 8 9 100
1
2
3
4
5
6
7
8
9
10
5.3
Pembulatan bilangan
round(3.9) ans = 4
round(3.3) ans = 3
Ripai, S.Pd., M.Si
7 Komputasi Topik-Topik Khusus Matematika
143
Page 63
Kompter Pemograman BasicBerbasis Matrik Laboratorium
NO KOSEP MATEMATIKA
KOMPUTASI MATEMATIKA OUTPUT
6. Menggambar grafik fungsi round bersamaan dengan grfaik fungsi floor dan ceiling dengan warna hitam
hold on h=round(x); plot(x,h,'k')
0 1 2 3 4 5 6 7 8 9 100
1
2
3
4
5
6
7
8
9
10
7.4
n! = nx(n-1)x(n-2)x. . .x2x1 untuk n bilangan Asli dan 0! = 1
factorial(5) ans = 120
8.5
Permutasi r unsur dari n unsure adalah
factorial(5)/factorial(5-2) ans = 20
9. Kombinasi r unsure dari n unsure
factorial(5)/(factorial(5-2)*factorial(2))
ans =
10
10.3
Memeriksa apakah 11 sebuah bilangan prima
isprime(11) ans = 1
isprime(12) ans= 0
11. Membentuk barisan bilangan prima hingga nilainya <10
primes(10) ans =
2 3 5 712. Memeriksa apakah
11 bilngan realisreal(11) ans=
1
Memeriksa apakah √-4 bilanganreal
isreal(sqrt(-4)) ans=0
13.4
FPB(4,12) gcd(4,12) ans = 4
14.5
Sisa hasil bagi dari 11 oleh 2 (11:2)
mod(11,2) ans = 1
Ripai, S.Pd., M.Si
143
Page 64
Kompter Pemograman BasicBerbasis Matrik Laboratorium
NO KOSEP MATEMATIKA
KOMPUTASI MATEMATIKA OUTPUT
15. Segitiga pascal untuk 6 tingkatan
pascal(6)
6.2 Pengantar Dasar Matematika
NO KOSEP MATEMATIKA
KOMPUTASI MATEMATIKA OUTPUT
1.1
Jiak dimiliki dua buah pernyataan, missal p dan q, maka terdapat empat kemungkinan, yakni
p qB BB SS BS S
p=[1 1 0 0]'
q=[1 0 1 0]'
p = 1 1 0q= 1 0 1 0
2. Negasi p (~p) ~p ans = 0 0 1 1
not(p) ans = 0 0 1 1
3. Konjungsi p dan q (p^q)
p&q ans = 1 0 0 0
and(p,q) ans = 1 0 0 0
Ripai, S.Pd., M.Si
143
Page 65
Kompter Pemograman BasicBerbasis Matrik Laboratorium
NO KOSEP MATEMATIKA
KOMPUTASI MATEMATIKA OUTPUT
4. Disjungsi (p atau q) p|q ans = 1 1 1 0
or(p,q) ans = 1 1 1 0
KEGIATAN PENGEMBANGAN
1. Dosen dan Mahasiswa berdiskusi membahas sejumlah topic-topik bahasan sebelumnya yang masih kurang dimengerti mahasiswa.
2. Dosen dan mahasiswa berdiskusi membahas mater-materi tugas yang belum di pahami atau belum tuntas oleh mahasiswa.
3. Dosen memberikan kisi-kisi soal ujian tengah semester
Ripai, S.Pd., M.Si
143
Page 66
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Bismillahirrahmanirrahim.
Uji Kompetensi I bertujuan untuk mengukur tingkat penguasaan bahasa dasar komputasi dengan Matlab sebagaimana yang telah diuraikan pada 3 pertemuan berikutnya. Adapaun kisi-kisi uji kompetensi diberikan sebagai berikut sebagai dasar unutuk mempersiapkan diri dan mengukur kemampuan mahasiswa sendiri dalam mempersiapkan diri mengikuti uji kompetensi I.
Kisi-Kisi Soal Uji Kompetensi
NO Indikator Keterangan1 Mahasiswa dapat mendefinisikan fungsi dengan
perintah syms x, inline dan berdasarkan data.
2 Mahasiswa dapat mengevaluasi nilai suatu fungsi dan mengambar grafiknya
3 Mahasiswa dapat menentukan limit, turunan dan integral suatu fungsi
4 Mahasiswa dapat memberikan perintah komputasi untuk menentukan asimtoto vertical dan horizontal.
5 Mahasiswa dapat menentukan garis singgung pada kurva
6 Mahasiswa dapat menenukan fungsi komposisis
7 Mahasiswa dapat mengarsir daerah di bawah suatu fungsi
8 Mahasiswa dapat menentukan luas daerah di Ripai, S.Pd., M.Si
8 UJIAN TENGAH SEMESTER
143
Page 67
Kompter Pemograman BasicBerbasis Matrik Laboratorium
bawah kurva
9 Mahasiswa dapat mendefinsiikan suatu matriks10 Mahasiswa dapat menyelesaikan SPL dengan
metode Invers Matriks11 Mahasiswa dapat mengakses elemen matriks12 Mahasiswa dapat melakukan perhitungan
aritmatik matriks13 Mahasiswa dapat menentukan mean, standar
deviasi, varianms suatu data14 Mahasiswa dapat menentukan nilai t table, chi-
tabel, f table, z table dan f table 15 Mahasiswa dapat mnuliskan perintah untuk
menentukan lintasan terpendek suatu graph
Contoh Soal Ujian Tengah Semester
NO
SOAL JAWABAN
Fungsi f(x) = x2 - 5x + 6 dan g(x) = 3x -2 diberikan untuk menyelesaaikan soal nomor 1 sampai dengan nomor 12
1 Tuliskan perintah untuk mendefinisikan f(x) dan g(x) pada Matlab
2 Tuliskan perintah untuk mendapatkan nilai f(3) + 2g(-1)
3 Tuiskan perintah untuk mengambar grafik f(x) dengan warna biru dan g(x)warna merah pada domain -10 < x < 10 dengan
4 Tuliskan perintah untuk mendapatkan (gof)(x)
Ripai, S.Pd., M.Si
143
Page 68
Kompter Pemograman BasicBerbasis Matrik Laboratorium
NO
SOAL JAWABAN
5Tuliskan perintah untuk mendapatkan
6 Tentukan output dari perintah berikut limit(f,x,2)
7 Tuliskan output dari pretty(subs(subs(f,g)))
8 Tuliskan perintah untuk mendapatkan nilai dari
9 Tuliskan perintah untuk mendapatkan kemiringan garis singgung pada kurva f(x) pada titik x = 2
10 Tuliskan perintah untuk mendapatkan nilai x sehingga f(x) = 0
11 Tuliskan perintah agar diperoleh output
-10 -8 -6 -4 -2 0 2 4 6 8 10
0
20
40
60
80
100
120
140
160
x
x2 - 5 x + 6
12 Tuliskan perintah untuk menuliskan f(-6) pada koordinat (-6,f(-6))
Ripai, S.Pd., M.Si
143
Page 69
Kompter Pemograman BasicBerbasis Matrik Laboratorium
NO
SOAL JAWABAN
13 Tuliskan perintah untuk mendapatkan nilai dari f(1) + f’(1) + F(1) dimana f’ = turunan f(x) dan F = integral f(x)
Matriks berikut digunakan untuk menjawab soal nomor 13-16
dan
14 Tuliskan perintah untuk menentukana). Ordo matriks Bb). determinan Matriks Ac). invers dari matriks A d). A x Be). Transpose matriks B
15 Jika diketahui suatu graph berarah sebagai berikut:(1) (4) : 15 km(2) (3): 16 km(3) (4) : 37 km(4) (2) : 42 km(3) (1): 72 kmtuliskan comnd untuk mendapatkan lintasan terpendek dan gambar graph berarah tersebut.
Ripai, S.Pd., M.Si
143
Page 70
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Bismillahirrahmnirrahim.
Dalam bahasa inggris, if berarti jika yang dalam bahasa pemograman
komputer digunakan untuk mengontrol suatu kondisi. Sintak dasar struktur if
adalah sebagai berikut:
if eksperi logika
perintah
elseif eksperi logika
perintah
else
perintah
end
Logika yang digunakan disini adalah sebagai berikut:
Simbol Makna Logika== Sama dengan<= Kurang dari atau sama dengan>= Lebih dari atau sama dengan< Kurang dari> Lebih besar dari& Dan (konjungsi)| Atau (Disjungsi)~ Tidak (Negasi)
~= Tidak sama dengan
Ripai, S.Pd., M.Si
9 Pemograman Struktur if-elseif-else-end pada M-File
143
Page 71
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Contoh:
Buatlah algoritma komputasi menggunakan bahasa MatLab untuk
mensimulasikan sifat Trikotomi[1,4] Bilangan Real pada algoritma 1.2 di atas
Solusi:
Bersesuaian dengan algoritma program 1.2 di atas, maka kontruksi algoritma
program dengan bahasa Matlab adalah sebagai berikut:
Step Comand1 x=input('x = ');2 y=input('y = ');3 if x==y4 disp('x lebih besar dari y')5 elseif x>y6 disp('x kurang dari y ')7 else8 disp('x lebih besar dari y')9 end
Jika program ini di jalankan, maka diperoleh hasil eksekusi atau output
program adalah sebagai berikut:
x = 4y = 6x kurang dari y>> trikotomix = 6y = 4x lebih besar dari y>> trikotomix = 4
Ripai, S.Pd., M.Si
143
Page 72
Kompter Pemograman BasicBerbasis Matrik Laboratorium
y = 4x sama dengan y>> trikotomix = -4y = 6x kurang dari y>> trikotomix = 5y = -8x lebih besar dari y
Jika menghendaki output program, tertulis tidak sebagai x dan y, tetapi
langsung bilangannya, maka printah disp sebagaimana pada step 4, 6 dan 8
sebagai berikut:
Step
Comand
1 x=input('x = ');2 y=input('y = ');3 if x==y4 disp([num2str(x),' sama dengan ', num2str(y)])5 elseif x>y6 disp([num2str(x),' lebih besar dari ', num2str(y)])7 else8 disp([num2str(x),' kurang dari ', num2str(y)])9 end
Output programnya adalah sebagai berikut:
x = 5y = 75 kurang dari 7>> trikotomix = 7
Ripai, S.Pd., M.Si
143
Page 73
Kompter Pemograman BasicBerbasis Matrik Laboratorium
y = 57 lebih besar dari 5>> trikotomix = 8y = 88 sama dengan 8
penulisan disp('x kurang dari y ') berarti bahwa, komputer
diperintahkan unutk menulis (disp = display) suatu kata-kata atau string
yang tertulis diantara tanda petik. Penulisan ini dapat disempurnakan
dengan disp([num2str(x),' sama dengan ', num2str(y)]). num2str(x)
terbaca sebagai numerik to string yang berarti bahwa dilakukan
konversi dari x yang berekstensi numeric pada imputan diubah menjadi
string. Hal ini dilakukan karena penulisan disp merupakan suatu
perintah unutk menuliskan suatu ekstensi data string atau kata-kata.
Contoh:
Buatlah algoritma komputasiuntuk menentukan akar-akar persamaan kuadrat
sebagaimana algoritma program di atas.
Solusi:
Berdasarkan algoritma program tersebut di atas, maka dikontruksi algoritma
komputasi sebagai berikut:
Step Comand1 a=input('a = ');2 b=input('b = ');3 c=input('c = ');4 D=b^2-4*a*c;
Ripai, S.Pd., M.Si
143
Page 74
Kompter Pemograman BasicBerbasis Matrik Laboratorium
5 x(1)=(-b+sqrt(D))/2*a; x(2) =( -b-sqrt(D))/2*a;6 if D>=07 disp(['Akar Bil. Real = ',num2str(x')])8 else9 disp(['Akar Bil. Kompleks =',num2str(x')])
10 end
Jiak program tersebut di jalankan, maka akan diperoleh hasil sebagai berikut:
>> akarkuadrata = 1b = 5c = 6Akar Bil. Real = -3 -2>> akarkuadrata = 5b = 1c = 6Akar Bil. Kompleks =-0.1-1.0909i -0.1+1.0909i >>a = 1b = -4c = 3Akar persamaan = {1 3}
Jika ingin menggambarkan grfaiknya, maka skrip program komputasinya di
tambah setelah proses menghitung akar-akar persamaan sebagai berikut:
Step Comand1 a=input('a = ');2 b=input('b = ');3 c=input('c = ');4 D=b^2-4*a*c;5 x(1)=(-b+sqrt(D))/2*a; x(2) =( -b-sqrt(D))/2*a;6 if D>=07 disp(['Akar Bil. Real = ',num2str(x')])
Ripai, S.Pd., M.Si
143
Page 75
Kompter Pemograman BasicBerbasis Matrik Laboratorium
8 else9 disp(['Akar Bil. Kompleks =',num2str(x')])
10 end11 X=[x(1)-5:0.1:x(2)+5];12 f=a.*(X.^2)+b.*X+c;13 plot(X,f)14 xlabel('Domain fungsi')15 ylabel('Range fungsi')16 title(['f(x) = ',num2str(a),'x^2 + ',num2str(b),'x + ',num2str(c)])17 text(mean(X),mean(f),['Akar = ',num2str(x')])
X=[x(1)-5:0.1:x(2)+5] pada skrip program tersebut merupakan perintah
membangun domain fungsi pada interval [x1-5 x2+5] dengan ∆x = 0.1.
f=a.*(X.^2)+b.*X+c merupakan perintah menentukan range dari fungsi f(x) =
ax2 + bx + c. plot(X,f) merupakan perintah menggambar grafik dengan domain
X dan range f.xlabel('Domain fungsi') berfungsi untuk menuliskan judul pada
absis (sumbu x) grafik fungsi dengan kata-kata “domain fungsi”, sedangkan
ylabel('Range fungsi')berfungsi untuk menuliskan judul pada ordinat (sumbu
y) dengan kata-kata “Range Fungsi”. title(['f(x) = ',num2str(a),'x^2 +
',num2str(b),'x + ',num2str(c)]) berfungsi untuk menuliskan judul dari grafik,
dengan menuliskan bentuk fungsi grafik kuadrat dengan mengambil koefesian
a, b, dan c. text(mean(X),mean(f),['Akar = ',num2str(x')]) merupakan perintah
untuk menuliskan akar-akar persamaan pada grafik fungsi pada koordinat di
tengah sumbu x dan tengah sumbu y. Pembaca harus dapat memahami
Ripai, S.Pd., M.Si
143
Page 76
Kompter Pemograman BasicBerbasis Matrik Laboratorium
bahasa penulisan atau kode program, karena kesalahan titik saja akan
membuat eksekusi program error. Penulisan kata-kata atau string diulis dalam
tanda petik, sedangkan bilangan untuk dikonversi dulu menjadi string dengan
perintah num2str. Tanda kurung siku “[]”digunakan jika dalam penulisan string
atau kata-kata akan memuat bilangan yang terkonversikan dengan num2str
tersebut. Jika program tersebut dijalankan maka akan diperoleh hasil sebagai
berikut:
>> akarkuadrata = 1b = 5c = 6Akar Bil. Real = -3 -2
-8 -6 -4 -2 0 2 4-5
0
5
10
15
20
25
30
Domain fungsi
Ran
ge fu
ngsi
f(x) = 1x2 + 5x + 6
Akar = -3 -2
Ripai, S.Pd., M.Si
143
Page 77
Kompter Pemograman BasicBerbasis Matrik Laboratorium
TUGAS
Intuksi tugas!
1. Buatlah program untuk menghitung nilai Akhir siswa berdasarkan nilai
tugas, mid dan semester dengan bobot masing-masing 15%, 35% dan
50%
2. Buatlah program untuk menyeleskai suatu bilangan, apakah termasuk
bilangan bulat positif atau tidak, dan bilangan prima atau tidak.
3. Buatah program untuk menentukan nilai kebenaran berdasarkan logika
negasi, konjungsi disjungsi, impilkasi, biimplikasi, konvers, invers dan
kontra posisi.
Ripai, S.Pd., M.Si
143
Page 78
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Bismillahirrahmanirrahim.
Dalam penyelesaian masalah matematika terdapat banyak kasusyang
membutuhkan proses perhitungan berulang. Misalnya dalam menghitung nilai
n!yang terdefinisi sebagai perkalian bilangan asli dari 1 sampai dengan n.
Secara matematis hal tersebut ditulis sebagai n! = n x (n-1) x (n-2) x … x 2 x 1.
Lebih lanjut n! digunakan sebagai dasar untuk menghitung nilai permutasi dan
kombinasi dimana dalam penerapannya untuk menentukan banyaknya titik
sampel dalam suatu pengamatan data statistik peluang. Dalam kasus tersebut,
parameter berhentinya proses perhitungan ditentukan dari banyaknya proses
pengulangan. Misalnya untuk mendapatkan perhitungan 5!dilakukan proses
pengulangan sebanyak 4 kali, yaitu 5 x 4 = 20, 20 x 3 = 60, 60 x 2 = 120 dan
120 x 1 = 120, sehingga 5! =120. Dalam bahasa pemograman komputer,
apabila parameter berhentinya proses pengulangan ditentukan dari banyaknya
proses pengulangan, maka bahasa program yang dapat digunakan adalah
struktur for dengan struktur
for i=awal: akhir perintahend
Berikut dalam kegiatan di bawah ini, diberikan petunjuk algoritma komputasi
untuk membangun bahasa pemograman perhitungan nilai faktorial, permutasi,
kombinasi serta barisan dan deret Fibonacci dengan inputan bilangan asli
menggunakan struktur for.
Ripai, S.Pd., M.Si
10 Pemograman Dengan Struktur for-end pada M-File MatLab
143
Page 79
Kompter Pemograman BasicBerbasis Matrik Laboratorium
10.1 Pemograman Faktorial
Membangun algoritma komputasi untuk mensimulasikan definisi factorial
dalam pembelajaran matematika dasar..
Teori: n! = n x (n-1) x (n-2) x … x 2 x 1 dengan n bilangan asli dan 0!=1.
Algoritma Program
Step 1:Masukan nilai n
Step 2: Untuk i = (n-1), (n-2), … , 3, 2, 1
Step 3: Hitung nilai n = n x i
Step 4: Akhiri Step 2
Step 5: Cetak nilai n
Bersesuain dengan tiap step di atas, berikut bahasa Matlab yang dapat
dibangun
Step Comand1 n=input('n = ');2 for i=n-1:-1:13 n=n*i4 end5 disp(['n! = ',num2str(n)])
Untuk menjalankan program tersebut, pada menu file, pilih Debug Save and
Run.Selanjutnya simpan dengan nama faktorial pada folder kerja anda. Setelah
itu, anda menuju command window untuk memberikan inputan dari program
yang telah dijalankan sebagai berikut
Ripai, S.Pd., M.Si
143
Page 80
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Setelah muncul permintaan inputan pada comad windows di atas, anda
kemudian memasukkan bilangan yang hendak dicari nilai faktorialnnya,
misalnya akan dihitung nilai dari 5!, maka inputan n= 5 diberikan dan diperoleh
hasil sebagai berikut.
Setelah itu kemudian enter dan akan diperoleh hasil sebagai berikut
n = 5n = 20n = 60n = 120n = 120n! = 120
Mula-mula n bernilai 5, kemudian n diganti dengan n yang baru dengan nilai
dari hasil perkalian 5 x 4 = 20, Selanjutnya n =20 diganti dengan n yang baru
yang diperoleh dari hasil kali antara 20 x 3 = 60. Begitu seterusnya hingga nilai
terakhir n = 120 x 1 = 120. Jika proses perhitungan tidak ingin di tampilkan,
maka pada ujung step ke-3 anta akhiri dengan tanda titi koma (;), maka akan
diperoleh eksekusi program sebagai berikut:
Program factorial tersebut masih belum memenuhi definisi, karena untuk n
bukan bilangan asli, komputer akan memberikan hasil perhitungan sesuai
algoritma tersebut, sementara apapun hasilnya tentunya didak benar. Hal ini
disebabkan karena n! terdefinisi utuk n bilangan Asli dan 0!= 1.
Ripai, S.Pd., M.Si
143
Page 81
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Berikut diberikan ilustrasi bentuk kesalahannya dari program sebelumnya
>> faktorial
n = 5.5
n ! = 324.8438
>>faktorial
n = -6
n ! = -6
>> faktorial
n = 0
n ! = 0
Oleh karena itu perlu dilakukan penyempurnaan program dengan memberikan
kontrol ntuk n dengan ketetntuan bahwa n harus bilangan bulat positif dan 0! =
1 sebagai berikut:
Step Comand1 n=input('n = ');2 if n>0&round(n)==n3 for i=n-1:-1:14 n=n*i;5 end6 disp(['n ! = ',num2str(n)])7 elseif n==08 disp('0! = 1')9 else10 disp('Maaf tidak terdefinisi');11 end
Hasil eksekusi dari program tersebut adalah sebagai berikut:
>> faktorial
n = 0
0! = 1
>> faktorial
Ripai, S.Pd., M.Si
143
Page 82
Kompter Pemograman BasicBerbasis Matrik Laboratorium
n = 5
n ! = 120
>> faktorial
n = -5
Maaf tidak terdefinisi
>> faktorial
n = 5.5
Maaf tidak terdefini
Dari eksekusi program tersebut, terlihat bahwa ouput komputasi yang
diberikan telah sesuai dengan definisi factorial. Penyempurnaan program
lebih lanjut yang harus dilakukan adalah Bagaimana agar output dapat
memberikan simulasi proses perhitungan. Hal ini penting untuk mahasiswa
calon guru agar roh matematika tidak hilang dalam mengajarkan kepada
peserat didik. Bentuk simulasi yang yang dapat didesain adalah sebagai
berikut.
Gambar 7.1 Desain system program simulasi definisi factorial
Bentuk komputasi yang dapat dibangun agar dapat menghasilkan output
tersebut berdasarkan inputan yang diberikan adalah sebagai berikut:
Step Comand1 disp('Program: Simulasi Definisi
Faktorial')2 disp('------------------------------------'
)3 n=input('n = ');
Ripai, S.Pd., M.Si
143
Page 83
Kompter Pemograman BasicBerbasis Matrik Laboratorium
4 if n>0&round(n)==n5 t=['Jadi ',num2str(n),'!=',num2str(n)];6 for i=n-1:-1:17 h=['x',num2str(i)];8 t=[t h];9 s=n;10 n=n*i;11 disp([num2str(s),'x',num2str(i),'=
',num2str(n)])12 end13 disp([t '=',num2str(n)]);14 elseif n==015 disp('0! = 1')16 else17 disp('Maaf tidak terdefinisi');18 end
Output Eksekusi program tersebut adalah sebagai berikut:
Program : Simulasi Definisi Faktorial
------------------------------------------------
n = 5
5x4=20
20x3=60
60x2=120
120x1=120
Jadi 5!=5x4x3x2x1=120
Dengan demikian, program tersebut dapat digunakan untuk simulasi dalam
pembelajaran tentang factorial kepada peserat didik sehingga memungkinkan
kajian matematika tersebut lebih konkrit.
Pemograman Simulasi Pengertian Limit Fungsi
Pada kegiatan ini akan didiskusikan tentang bagaimana membuat simulasi
pengertian secara intuitif limit kanan suatu fungsi.
Ripai, S.Pd., M.Si
143
Page 84
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Teori Matematika : berate bahwa, apabila x mendekati c dari
kanan, maka f(x) akan mendekati nilai L.
Algoritma Program:
Step 1. Definisikan fungsi f(x)
Step 2. Inputkan nilai c
Step 3. Buat domain fungsi d
Step 4. Gambar grafik fungsi f(x)
Step 5. Muai dari nilai batas atas domain,sampai batas bawah domain
Step 6. Gambar titik domain dan titik f(x)
Step 7. Berikan jeda
Step 8. Akhiri loop step 5
Step 9 Tuliskan nilai limit
Algoritma Komputasi Limit Kanan fungsi
Step Comand1 clc;2 clear all;3 disp('Program simulasi Limit Kanan Fungsi')4 disp('-----------------------------------')5 syms x 6 f=input('f(x)= ');7 c=input('c = ');8 d=[c-10:0.25:c+10];9 ezplot(f,d)10 d=[c+10:-0.25:c];11 n=length(d);12 fprintf('%5s %10s \n','x','f(x)')13 for i=1:n14 hold on15 plot(d(i),0,'.r')16 hold on17 plot(d(i),subs(f,d(i)),'.r')18 pause(0.2)
Ripai, S.Pd., M.Si
143
Page 85
Kompter Pemograman BasicBerbasis Matrik Laboratorium
19 fprintf('%8.2f %8.2f\n',d(i),subs(f,d(i)));
20 end21 L=double(limit(f,c));22 text(c,subs(f,c),['<--- Limit =
',num2str(L)])
Output dari eksekusi program tersebut adalah
f(x)= x^2+5*x+6
c = 3
x f(x)
13.00 240.00
12.75 232.31
12.50 224.75
12.25 217.31
12.00 210.00
11.75 202.81
11.50 195.75
11.25 188.81
11.00 182.00
10.75 175.31
10.50 168.75
10.25 162.31
10.00 156.00
9.75 149.81
9.50 143.75
9.25 137.81
9.00 132.00
8.75 126.31
8.50 120.75
Ripai, S.Pd., M.Si
143
Page 86
Kompter Pemograman BasicBerbasis Matrik Laboratorium
8.25 115.31
8.00 110.00
7.75 104.81
7.50 99.75
7.25 94.81
7.00 90.00
6.75 85.31
6.50 80.75
6.25 76.31
6.00 72.00
5.75 67.81
5.50 63.75
5.25 59.81
5.00 56.00
4.75 52.31
4.50 48.75
4.25 45.31
4.00 42.00
3.75 38.81
3.50 35.75
3.25 32.81
3.00 30.00
Ripai, S.Pd., M.Si
143
Page 87
Kompter Pemograman BasicBerbasis Matrik Laboratorium
-6 -4 -2 0 2 4 6 8 10 12
0
50
100
150
200
250
x
x2 + 5 x + 6
<--- Limit = 30
Gambar 7.2 Output simulasi definisi limit kanan fungsi
TOPIK DISKUSI MAHASISWA
Topik 1: Membangun algoritma komputasi untuk menentukan nilai permutasi
Teori:
Kontruksilah program Kombinasi berdasarkan algoritma berikut:
Algoritma program Permutasi
Step 1. Definisikan n
Step 2. Definisikan r
Step 3. Hitung nilai n-r, misal sebut sebagai m
Step 4 Hitung nilai dari n!
Step 5. Hitung nilai dari m!
Step 10. Hitung nilai P=(n/m)
Step 11. Cetak nilai P
Konversilah bahasa tersebut ke dalam bahasa Matlab, untuk mendapatkan
output sebagai berikut:
n=5
Ripai, S.Pd., M.Si
143
Page 88
Kompter Pemograman BasicBerbasis Matrik Laboratorium
r=3
P(5,3)=20
Setelah iru, lakukan penyempurnaan program untuk mensimulasikan
proses perolehan nilai P(5,3)=20 tersebut sebagai berikut:
Step
Comand
1 n=input('n = ');2 r=input('r = ');3 if n>1&round(n)==n&r>1&round(r)==r4 s=[n r];m=n-r;5 t=[num2str(n),'! = (',num2str(n),')'];6 for i=n-1:-1:17 h=['(',num2str(i),')'];8 t=[t h];9 n=n*i;10 end11 disp([t ' = ',num2str(n)]);12 t=[num2str(m),'! = (',num2str(m),')'];13 for i=m-1:-1:114 h=['(',num2str(i),')'];15 t=[t h];16 m=m*i;17 end18 disp([t ' = ',num2str(m)]);19
disp(['P(',num2str(s(1)),',',num2str(s(2)),')=',num2str(s(1)),'!/(',...
20 num2str(s(1)),'-',num2str(r),')!=',num2str(s(1)),'!/(',...
21 num2str(s(1)-s(2)),')!=',num2str(n/m)])22 endBentuk output dari program tersebut adalah sebagai beikut:
n = 5
r = 2
5! = (5)(4)(3)(2)(1) = 120
3! = (3)(2)(1) = 6
Ripai, S.Pd., M.Si
143
Page 89
Kompter Pemograman BasicBerbasis Matrik Laboratorium
P(5,2)=5!/(5-2)!=5!/(3)!=20
Topik 2: Membuat program untuk menghitung nilai suatu Combinasi
Teori:
Algoritma program:
Step 1: Definisikan n
Step 2. Definisikan nilai r
Step 3: Hitung nilai dari n-r, misal sebut sebagai m
Step 4: Hitung nilai dari n!
Step 5: Hitung nilai dari r!
Step 6: Hitung nilai m!,
Step 7: Hitung nilai dari C=n/(m.*r);
Step 8: Cetak nilai dari C
Setelah algortima tersebut dikonversi ke dalam bahasa matlab, maka dapatkan
output program sebagai berikut
n=5
r=2
C(5,2)=10.
Dan kontruksi penyempurnaan program agar memperoleh output sebagai
berikut:
n=5
r=2
5!=(5)(4)(3)(2)(1)=120
(5-2)!=3!=(3)(2)(1)=6
2!=(2)(1)=2
C(5,2)=5!/3!2!=120/(6x2)=120/(6x2)=10
TUGAS 7Jawablah soal di bawah ini dengan benar!
Ripai, S.Pd., M.Si
143
Page 90
Kompter Pemograman BasicBerbasis Matrik Laboratorium
1. Buatlah algoritma program dalam bahasa Matlab untuk membentuk dan
menghitung (a). Barisan dan deret aritmatika, (b) Barisan dan deret
geometri d an (c) Barisan dan deret Fibonacci.
2. Buatlah program untuk mensimulasikan garis singghung pada
kurva.Tuliskan output dari program berikut, kemudian jelaskan konsep
matematika dan arti dari tiap step perintahnya.
Ripai, S.Pd., M.Si
143
Page 91
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Bismillahirrahmanirrahim
Struktur while merupakan perintah pengulangan dengan parameter berhenti
pengulangan berdasarkan suatu kriteria logika, tidak berdasarkan banyaknya
kali pengulangan sebagaimana pada struktur for. Berikut diberikan contoh
aplikasinya pada program simulasi pengurangan bilangan bulat dan Algoritma
Eucliden.
11.1 Pemograman komputasi untuk mensimulasikan definisi pembagian
Definisi pembagian: Pembagian adalah pengurang berulang hingga
mengasilkan sisa 0 atau kurang dari pembagi.
Sebagai contoh
10:2 artinya bahwa berapa kali kita melakukan proses pengurangan bilangan 10
oleh 2 hingga sisanya 0 atau kurang dari 2. Solusi dari permasalahn ini ada;ah
sebagai berikut
Proses ke-1 10-2 = 8
Proses ke-2 8-2=6
Proses ke-3 6-2=4
Proses ke-4 4-2=2
Proses ke-5 2-2=0
Jadi terjadi 5 kali proses,
Untuk membangun algoritma komputasinya, mula-mula dikontruksi dengan
algoritma dasarnya sebagai berikut:
Ripai, S.Pd., M.Si
11 Pemograman Dengan Struktur while-and pada M-File MatLab
143
Page 92
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Step
Command
1 a=input('a = '); 2 b=input('b = ');3 while b>=a4 b=b-a5 end
6 a=input('a = ');
Program tersebut, mula-mula di awali dengan inputan bilangan bulat a dan b dengan ketentuan b>a. Kemudian dilakukan pemeriksaan kondisi oleh perintah while. Perintah while b>a dalam bahasa sehari-hari adalah, “ulangi terus perintah b=b-a jika b>a”. Jika diberikan nilai a=2 dan b=10, maka computer akan bekerja sebagai berikut:a = 2b = 10b = 8b = 6b = 4b = 2a = 0
Mula –mula b=10, kemuidan direplace/diganti dengan nilai b yang baru yakni b=8 yang diperoleh dari perhitungan b=10-2 = 8. Karena nilai b=10-2=8 > 2 = a, maka proses penentuan bbaru = blama – a terus dikerjakan hingga diperoleh nilai b <a. Ripai, S.Pd., M.Si
143
Page 93
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Kondisi ini dicapai setelah proses perhitungan di lakukan hingga 5 kali perulangan. Banyaknya perulangan ini merupakan nilai dari pembagian sebagaimana definisinya. Untuk mengetahui nilai tersebut, perlu dibuatkan variabel akumulator yang mecatat banyaknya proses perulangan. Misalkan variabel terbut adalah c, maka kita perlu definisikan c=0 sebelum muai proses perintah while dan menambahkan setiap kali proses while dengan c=c+1 yang berarti proses pencatatan tiap kali proses pengurangan. Bentuk penyempurnaan programnya adalah sebagai berikut:Step
Comand
1 a=input('a = '); 2 b=input('b = ');3 c=0;4 while b>=a5 c=c+16 b=b-a7 end
Output dari eksekusi program tersebut adalah sebagai berikut:
a = 2b = 10c = 1b = 8c =
Ripai, S.Pd., M.Si
143
Page 94
Kompter Pemograman BasicBerbasis Matrik Laboratorium
2b = 6c = 3b = 4c = 4b = 2c = 5b = 0
Terlihat bahwa, nilai c yang terakhir adalah c=5 yang berarati bawah proses dilaksanakan hingga 5 kali. Hal ini berarti bahwa 10:2 = 5. Agar output komputasi memperlihatkan proses pengurangan secara baik sehingga definisi pembagian tersebut menjadi jelas, maka perlu dikembangkan penyempurnaan program agar diperoleh output sebagai berikut
Proses ke-1 10-2 = 8
Proses ke-2 8-2=6
Proses ke-3 6-2=4
Proses ke-4 4-2=2
Proses ke-5 2-2=0
Jadi 10:2 = 5
Bentuk penyempurnaan yang dapat diberikan sebagai berikut:
Ripai, S.Pd., M.Si
143
Page 95
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Step
Comand
1. clc;2. clear all;3. disp('Program : Simulasi definisi pembagian')4. disp('----------------------------------------------------')5. a=input('a = '); 6. b=input('b = ');7. if a==round(a)&b==round(b)&b>a8. s=b;9. c=0;10. while b>a11. c=c+1;12. t=b;13. b=b-a;14. disp(['Proses ke-',num2str(c),'--> ',num2str(t),' - ',...15. num2str(a),' = ',num2str(b)])16. end17. disp(['Jadi ',num2str(s),':',num2str(a),'=',num2str(c),...18. ' dengan sisa ',num2str(b)])19. else20. disp('Maaf, tidak diprogramkan')21. end
11.1 Pemograman komputasi untuk mensimulasikan definJika program tersebut dieksekusi, maka diperoleh sebagai berikut:
Program : Simulasi definisi pembagian---------------------------------------------------a = 2b = 10Proses ke-1--> 10 - 2 = 8Proses ke-2--> 8 - 2 = 6Proses ke-3--> 6 - 2 = 4Proses ke-4--> 4 - 2 = 2Proses ke-5--> 2 - 2 = 0Jadi 10:2=5 dengan sisa 0
Diskusikanlah dengan teman-teman anda, beberapa penambahan dari
step program tersebut.
11.2 Pemograman komputasi untuk mensimulasikan definisi Ripai, S.Pd., M.Si
143
Page 96
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Algortima Eucliden
Misalkan dimiliki bilangan bulat a dan b dengan b>a, maka akan terdapat
bilangn bulat x sehingga b=ax+r dengan r adalah sisa.
Jika dilakukan proses pengulangan dengan ketentuan b=a dan a=r, maka akan
terdapat nilai r =0 sehingga FPB dari a dan b adalah a terakhir. Sebagai contoh
adalah berikut ini untuk kasus a=12 dan b=80.
a = 12
b = 80
80= (6)(12)+8
12= (1)(8)+4
8= (2)(4)+0
Jadi FPB(12,80) = 4
Ada bentuk 80= (6)(12)+8, 80 adalah bilangan yang dibagi (b), 12 adalah
bilangan pembagi (12), 6 adalah hasil bagi (x) dan 8 adalah sisa hasil bagi (r).
Algoritma program yang diperoleh sebagai berikut:
Algoritma Dasar Ecliden
Step 1. Definisikan bilangan bulat a dan b dengan b>a
Step 2. Kerjakan step berikutnya, jika sisa hasil bagi tidak bernilai 0
Step 3. Hitung sisa hasil bagi, tulis sebagai r
Step 4. Tukarkan nilai b dengan a (b=a)
Step 5; Tukarkan a dengan r (a=r)
Step5. Akhiri Program
Konversi algoritma program tersebut menjadi algoritma komputasi
berbasis Matlab adalah sebagai berikut:
Ripai, S.Pd., M.Si
143
Page 97
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Step Command
1 a=input('a = '); b=input('b = ');2 while mod(b,a)~=03 r=mod(b,a)4 b=a 5 a=r6 end
Output dari eksekusi program tersebut adalah sebagai berikut:
a = 12
b = 80
r =
8
b =
12
a =
8
r =
4
b =
8
a =
4
Dari oputput program tersbut, mula-mula a=12 dan b= 80. Kemudian
ditentukan sisa hasil bagi 80 oleh 12 dengan perintah mod(b,a) dengan nilai
sisanya adalah 8 yang ditulis dalam variabel r. Karena r ≠0, maka dilakukan
pertukaran nilai yakni, b=a=12 dan a=r=8. Kemudian kembali lagi memntukan
sisa hasil bagi dan proses pertukaran nilai b=a dan a=r. Proses ini berulang Ripai, S.Pd., M.Si
143
Page 98
Kompter Pemograman BasicBerbasis Matrik Laboratorium
terus hingga sisa hasil bangi b oleh a yang terakhir yakni r = 0. Kondisi ini
tercapai saat nilai bterakhir = 8 dan aterakhir = 4 dimana kita ketahui bahwa sisa hasil
bagi 8 dengan 4 adalah 0.Sebagaimana teoram ecliden, maka kita telah peroleh
nilai FPB dari a=12 dan b=80 adalah aterakhir = 4.
Sebagai mahasiswa jurusan pendidikan yang lebih mengedepankan proses
berfikir ketmbang hasil akhir didalam belajar dan mengajarkan konsep teorema
Eucliden tersebut perlu dikembangkan algoritma komputasinya agar output
simulasi yang diberikan dapat menyajikan proses tersebut lebih nyata, misalnya
dengan bentuk output sebagai berikut
Program : Simulasi Teorema Eucliden
---------------------------------------------
a = 12
b = 80
80= (6)(12)+8
12= (1)(8)+4
8= (2)(4)+0
Jadi FPB(12,80) = 4
Kontruksi alhoritma komputasi yang dapat diterapkan adalah sebagai berikut:
Suatubentuk kontruksi algoritma program yang dapat dibangun agar outputnya
seperti tersebut di atas adalah sebagai berikut:
Step Command
1 clc;2 clear all;3 disp('Program : Simulasi Teorema Eucliden')4 disp('-----------------------------------')5 a=input('a = '); 6 b=input('b = ');
Ripai, S.Pd., M.Si
143
Page 99
Kompter Pemograman BasicBerbasis Matrik Laboratorium
7 t=[a b];8 while a~=0
r=mod(b,a);10 h=(b-r)/a;11 disp([num2str(b),'= (',num2str(h),')(',num2str(a),')
+',num2str(r)])12 b=a; a=r;13 end14 disp(['Jadi FPB(',num2str(t(1)),',',num2str(t(2)),') =
',num2str(b)])TUGAS 8
Kerjakan soal di bawah ini dengan benar
1. Pada program eucliden tersebut di atas akan memberikan output yang
bernilai salah manakala diberikan inputan b<a dan a B+ dan b B+.Oleh
karena itu sempurnakanlah program tersebut sehingga dapat meberikan
output yang sesuai dengan definisi teorema eucliden tersebut.
2. Dimiliki matriks sebagai berikut:
Buatlah suatu program dengan kombinasi struktur for, if dan while untuk
membetuk agar elemen Vipot matrik A tersebut tidak bernilai 0 dengan
cara jika elem pipotnya bernilai nol, maka dicari elemen di baris
bawahnya pada kolom pipot tersebut yang bernilai tidak nol, kemudian
tukarkan baris tersebut dengan barispipotnya. Ripai, S.Pd., M.Si
143
Page 100
Kompter Pemograman BasicBerbasis Matrik Laboratorium
3. Diketahui data dan rank data sebagai berikut:
Data1 3 3 4 5 5 5 7 7 12
Rank 1.5 1.5 3 5 5 5 7.5 7.5 9
Data2
4 4 7 3
Rank ? ? ? ?
Buatlah suatu program dengan inputan data 1, data 2 dan rank data
tersebut sehingga dapat menghasilkan output rank data 2 yang diambil
dari rank data 1 sebagai berikut
Data 4 4 7 3Rank 3 3 7.5 1.5
Ripai, S.Pd., M.Si
143
Page 101
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Bismillahirrahmanirrahim.
Pada perkuliahan sebelumnya, telah dibuat program faktorial, permutasi,
kombinasi, barisan dan deret fibonacci,algoritma eucliden dan sejumlah tugas-
tugas. Program-program tersebut dapat digabung menjadi sebuah program
tunggal dalam sebuah nama file yang terkontruksi dalam beberapa kasus,
dimana tiap kasus memuat tiap program. Untuk keperluan itu, bahasa
pemograman yang dapat digunakan adalah switch case. Berikut prosedur kerja
untuk menggabungkan program-program yang sudah dibuat pada kegiatan
sebelumnya menjadi sebuah program tunggal menggunakan struktur switch.
12.1 Penggabungan Program Trikotomi Bilangan Real, Simulasi
Faktorial, Limit Fungsi, Simulasi Pembagian dan Algoritma Eucliden
Algoritma Program:
Step 1. Inputkan Pilihan
Step 2. Definisikan perintah switch
Step 3. Untuk kasus I, masukkan algoritma komputasi Trikotomi
Step 4. Untuk kasus II, masukkan algoritma komputasi Faktorial
Step 5. Untuk kasus III, masukkan algoritma komputasi Limit Fungsi
Step 6.Untuk kasus IV, masukkan algoritma komputasi simulasi
Pembagian
Step 7. Untuk kasus V, masukkan algoritma komputasi Eucliden
Step 8. Akhiri program
Ripai, S.Pd., M.Si
12 Pemograman Komputasi Matematika Dengan Struktur switch-case-and
143
Page 102
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Berdasarkan algoritma program tersebut, maka dapat dibangun
algoritma komputasi sebagai berikut:
Step Comand1 clc;2 clear all;3 disp('Program: Trikotomi, Akar Kuadrat,
Faktorial')4 disp('Permutasi, Limit Kanan, Pembagian,
Eucliden')5 disp('----------------------------------------
---')6 p=input('Pilihan anda --> ');7 switch p8 case 'Trikotomi'9 x=input('x = ');10 y=input('y = ');11 if x==y12 disp([num2str(x),' sama dengan ',
num2str(y)])13 elseif x>y14 disp([num2str(x),' lebih besar
dari ', num2str(y)])15 else16 disp([num2str(x),' kurang dari ',
num2str(y)])17 end18 case 'Akar Kuadrat'19 a=input('a = ');20 b=input('b = ');21 c=input('c = ');22 D=b^2-4*a*c;23 x(1)=(-b+sqrt(D))/2*a; x(2) =( -b-
sqrt(D))/2*a;24 if D>=025 disp(['Akar Bil. Real =
',num2str(x)])26 else
Ripai, S.Pd., M.Si
143
Page 103
Kompter Pemograman BasicBerbasis Matrik Laboratorium
27 disp(['Akar Bil. Kompleks =',num2str(x)])
28 end29 X=[x(1)-5:0.1:x(2)+5];30 f=a.*(X.^2)+b.*X+c;31 plot(X,f)32 xlabel('Domain fungsi')33 ylabel('Range fungsi')34 title(['f(x) = ',num2str(a),'x^2 +
',...35 num2str(b),'x + ',num2str(c)])36 text(mean(X),mean(f),['Akar =
',num2str(x)])37 case 'Faktorial'38 n=input('n = ');39 if n>0&round(n)==n40 t=['Jadi ',num2str(n),'!
=',num2str(n)];41 for i=n-1:-1:142 h=['x',num2str(i)];43 t=[t h];44 s=n;45 n=n*i;46
disp([num2str(s),'x',num2str(i),...47 '=',num2str(n)])48 end49 disp([t '=',num2str(n)]);50 elseif n==051 disp('0! = 1')52 else53 disp('Maaf tidak terdefinisi');54 end55 case 'Permutasi'56 n=input('n = ');57 r=input('r = ');58 if n>1&round(n)==n&r>1&round(r)==r
Ripai, S.Pd., M.Si
143
Page 104
Kompter Pemograman BasicBerbasis Matrik Laboratorium
59 s=[n r];m=n-r;60 t=[num2str(n),'! =
(',num2str(n),')'];61 for i=n-1:-1:162 h=['(',num2str(i),')'];63 t=[t h];64 n=n*i;65 end66 disp([t ' = ',num2str(n)]);67 t=[num2str(m),'! =
(',num2str(m),')'];68 for i=m-1:-1:169 h=['(',num2str(i),')'];70 t=[t h];71 m=m*i;72 end73 disp([t ' = ',num2str(m)]);74
disp(['P(',num2str(s(1)),',',num2str(s(2)),...75
')=',num2str(s(1)),'!/(',num2str(s(1)),...76 '-',num2str(r),')!
=',num2str(s(1)),'!/(',...77 num2str(s(1)-s(2)),')!
=',num2str(n/m)])78 end79 case 'Limit Kanan'80 syms x 81 f=input('f(x)= ');82 c=input('c = ');83 d=[c-10:0.25:c+10];84 ezplot(f,d)85 d=[c+10:-0.25:c];86 n=length(d);87 fprintf('%5s %10s \n','x','f(x)')88 for i=1:n89 hold on
Ripai, S.Pd., M.Si
143
Page 105
Kompter Pemograman BasicBerbasis Matrik Laboratorium
90 plot(d(i),0,'.r')91 hold on92 plot(d(i),subs(f,d(i)),'.r')93 pause(0.2)94 fprintf('%8.2f %8.2f\
n',d(i),subs(f,d(i)));95 end96 L=double(limit(f,c));97 text(c,subs(f,c),['<--- Limit =
',num2str(L)])98 case 'Pembagian'99 a=input('a = '); 100 b=input('b = ');101 if a==round(a)&b==round(b)&b>a102 s=b;103 c=0;104 while b>a105 c=c+1;106 t=b;107 b=b-a;108 disp(['Proses
ke-',num2str(c),'--> ',...109 num2str(t),' -
',num2str(a),' = ',num2str(b)])110 end111 disp(['Jadi
',num2str(s),':',num2str(a),'=',num2str(c),...112 ' dengan sisa ',num2str(b)])113 else114 disp('Maaf, tidak diprogramkan')115 end116 case 'Eucliden'117 a=input('a = '); 118 b=input('b = ');119 t=[a b];120 while a~=0121 r=mod(b,a);
Ripai, S.Pd., M.Si
143
Page 106
Kompter Pemograman BasicBerbasis Matrik Laboratorium
122 h=(b-r)/a;123 disp([num2str(b),'=
(',num2str(h),...124 ')(',num2str(a),')
+',num2str(r)])125 b=a; a=r;126 end127 disp(['Jadi
FPB(',num2str(t(1)),',',...128 num2str(t(2)),') = ',num2str(b)])129 otherwise130 disp('Maaf pilihan Salah, Silahkan
diperiksa, ok!')131 end
Jika program tersebut di jalankan, maka akan diperoleh sebagai berikut:
Program: Trikotomi, Akar Kuadrat, Faktorial
Permutasi, Limit Kanan, Pembagian, Eucliden
-------------------------------------------
Pilihan anda --> 'Trikotomi'
x = 5
y = 8
5 kurang dari 8
Output tersebut adalah hasil eksekusi program untuk pilihan trikotomi bilangan
real. Jika kita menginginkan menjalankan program Akar Kuadrat, maka
dilakukan sebagai berikut:
Program: Trikotomi, Akar Kuadrat, Faktorial
Permutasi, Limit Kanan, Pembagian, Eucliden
-------------------------------------------
Ripai, S.Pd., M.Si
143
Page 107
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Pilihan anda --> 'Akar Kuadrat'
a = 1
b = 5
c = 6
Akar Bil. Real = -2 -3
Selanjutnya, untuk pilihan Faktorial sebagai berikut:
Program: Trikotomi, Akar Kuadrat, Faktorial
Permutasi, Limit Kanan, Pembagian, Eucliden
-------------------------------------------
Pilihan anda --> 'Faktorial'
n = 5
5x4=20
20x3=60
60x2=120
120x1=120
Jadi 5!=5x4x3x2x1=120
Selanjutnya bentuk output untuk pilihan permutasi
Program: Trikotomi, Akar Kuadrat, Faktorial
Permutasi, Limit Kanan, Pembagian, Eucliden
-------------------------------------------
Pilihan anda --> 'Permutasi'
n = 5
r = 2
5! = (5)(4)(3)(2)(1) = 120
3! = (3)(2)(1) = 6
P(5,2)=5!/(5-2)!=5!/(3)!=20
Ripai, S.Pd., M.Si
143
Page 108
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Selanjutnya output untuk pilihan limit kanan sebagai berikut
Program: Trikotomi, Akar Kuadrat, Faktorial
Permutasi, Limit Kanan, Pembagian, Eucliden
-------------------------------------------
Pilihan anda --> 'Limit Kanan'
f(x)= x^2+5*x+6
c = 2
x f(x)
12.00 210.00
11.75 202.81
11.50 195.75
11.25 188.81
11.00 182.00
10.75 175.31
10.50 168.75
10.25 162.31
10.00 156.00
9.75 149.81
9.50 143.75
9.25 137.81
9.00 132.00
8.75 126.31
8.50 120.75
8.25 115.31
8.00 110.00
7.75 104.81
7.50 99.75
7.25 94.81
Ripai, S.Pd., M.Si
143
Page 109
Kompter Pemograman BasicBerbasis Matrik Laboratorium
7.00 90.00
6.75 85.31
6.50 80.75
6.25 76.31
6.00 72.00
5.75 67.81
5.50 63.75
5.25 59.81
5.00 56.00
4.75 52.31
4.50 48.75
4.25 45.31
4.00 42.00
3.75 38.81
3.50 35.75
3.25 32.81
3.00 30.00
2.75 27.31
2.50 24.75
2.25 22.31
2.00 20.00
Dan grafik fungsi
Ripai, S.Pd., M.Si
143
Page 110
Kompter Pemograman BasicBerbasis Matrik Laboratorium
-8 -6 -4 -2 0 2 4 6 8 10 12
0
50
100
150
200
x
x2+5 x+6
<--- Limit = 20
Selanjutnya untuk pilihan Pembagian sebagai berikut:
Program: Trikotomi, Akar Kuadrat, Faktorial
Permutasi, Limit Kanan, Pembagian, Eucliden
-------------------------------------------
Pilihan anda --> 'Pembagian'
a = 3
b = 23
Proses ke-1--> 23 - 3 = 20
Proses ke-2--> 20 - 3 = 17
Proses ke-3--> 17 - 3 = 14
Proses ke-4--> 14 - 3 = 11
Proses ke-5--> 11 - 3 = 8
Proses ke-6--> 8 - 3 = 5
Proses ke-7--> 5 - 3 = 2
Jadi 23:3=7 dengan sisa 2
Berikutnya contoh output untuk pilihan program Algoritma Eucliden
Ripai, S.Pd., M.Si
143
Page 111
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Program: Trikotomi, Akar Kuadrat, Faktorial
Permutasi, Limit Kanan, Pembagian, Eucliden
-------------------------------------------
Pilihan anda --> 'Eucliden'
a = 12
b = 80
80= (6)(12)+8
12= (1)(8)+4
8= (2)(4)+0
Jadi FPB(12,80) = 4
Kemudian untuk bentuk output jika pilihan diluar yang terprogram
Program: Trikotomi, Akar Kuadrat, Faktorial
Permutasi, Limit Kanan, Pembagian, Eucliden
-------------------------------------------
Pilihan anda --> 'eliminasi Gauss Jordan'
Maaf pilihan Salah, Silahkan diperiksa, ok!
Output tersebut merupakan hasil dari perintah otherwise pada program yang
telah di rancang:
12.2 TOPIK DISKUSI KELAS
Untuk meningkatkan pemahaman tentang pemograman struktur switch-case-
end, Kontruksilah program untuk menghitung luas dan keliling bangun datar
Ripai, S.Pd., M.Si
143
Page 112
Kompter Pemograman BasicBerbasis Matrik Laboratorium
dengan melengkapi program berikut ini dengan rumus-rumus luas dan keliling
bangun datar yang diberikan.
disp('Program Luas dan Keliling Bangun Datar')
disp('-------------------------------------------------')
P=input('Pilihan -->');
switch P
case 'Persegi'
case 'Persegi Panjang'
p=input( 'Panjang = ');
l=input( 'lebar = ');
K=2*(p+l);
L=p*l;
disp(['Keliling = ',num2str(K)])
disp(['Luas = ',num2str(L)])
case 'Segitiga'
case 'Jajaran Genjang'
case 'Belah Ketupat'
case 'Trapesium'
case 'Layang-layang'
case 'lingkaran'
otherwise
disp('Maaf, pilihan tidak ada, ok...!')
end
Bentuk output yang diharapkan diperoleh, misalnya untuk kasus Persegi
Panjang adalah sebagai berikut!
Ripai, S.Pd., M.Si
143
Page 113
Kompter Pemograman BasicBerbasis Matrik Laboratorium
TUGAS 9
Setelah mengikuti kegiatan di atas, maka untuk lebih mendalami materi
tersebut, silahkan dikerjakan tugas berikut:
1. Buat program untuk mengabungkan keseluruhan program tugas yang telah
diberikan sebelumnya.
2. Buatlah program komputasi dengan struktur switch untuk menghitung
volume dan luas permukaan bangun ruang.
3. Buatlah program untuk menghitung volume benda putar dengan kasus,
mengelilingi sumbu x dan mengelili sumbu y.
Bismillahirrahmanirrahim
Pada pertemuan sebelumnya telah di bahas pemograman dengan M-file, Pada
pertemuan kali ini, akan di bahas pemograman GUI (Grafical User Interface)
yang dapat memberikan kemudahan pengguna dalam menggunakan program
yang dibangun yang bersifat lebih efektif dan efesien. Contoh bentuk GUI
adalah sebagai berikut:
Ripai, S.Pd., M.Si
13 Pemograman GUI (Grafical User Interface)
143
Page 114
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Program ini lebih bersifat pleksibel dan intraktif, artinya kita dalam
menggunakannya sangat mudah dengan hanya menganti variabel inputan dan
menekan tombol proses. Bagaimana cara membuatnya, berikut diberikan
tutorial . Haraop mahasiswa langsung menanyakan ke dosen Pembina jika
terdapat hal-hal yang kurang jelas.
13.1 Pemograman GUI Algoritma Eucliden
Prosedur kerja pembuatan program tersebut adalah sebagai berikut:
1. Membuka handles GUI yaitu suatu editor tempat membuatnya dengan
cara menuliskan perintah guide pada command windows matlab maka
akan muncul kotak dialog sebagai berikut:
Ripai, S.Pd., M.Si
143
Page 115
Kompter Pemograman BasicBerbasis Matrik Laboratorium
2. Kemudian klik ok dan akan muncul editor handles tempat membuat
tampilan program sebagai berikut:
3. Kemudian pilih statistic text, sebagai berikut
4. Kemudian klik dan drag pada handles sehingga diperoleh sebagai berikut:
Ripai, S.Pd., M.Si
143
Page 116
Kompter Pemograman BasicBerbasis Matrik Laboratorium
5. Kemudian lakukan editing statistic text tersebut dengan cara double klik
pada statistis tex tersebut, kemudian cari string dan tuliskan kalimat
sebagai berikut:
Ripai, S.Pd., M.Si
143
Page 117
Kompter Pemograman BasicBerbasis Matrik Laboratorium
6. Deengan medouble klik lagi, dan pilih ukuran hurup dan warna sehingga
diperoleh tampilan sebagai berikut:
7. Dengan cara yang sama memilih statistic tex buat text sebagai berikut:
Ripai, S.Pd., M.Si
143
Page 118
Kompter Pemograman BasicBerbasis Matrik Laboratorium
8. Kemudian pilih property edit dan alkukan editing pada property inspector
sehingga diperoleh hasil sebagai berikut:
9. Selanjutnya pilih pushbutton dan lakukan editing sehingga diperoleh
sebagai berikut:
Ripai, S.Pd., M.Si
143
Page 119
Kompter Pemograman BasicBerbasis Matrik Laboratorium
10. Selanjutnya pilih lisbox dan buat agar memperoleh tampilan sebagai
berikut:
11. Selanjutnya berikan property tambahan sehingga memperoleh tampilan
GUI sebagai berikut:
12. Selanjutnya klik kanan pada tombol keluar dan pilih call back dan
krtikkan perintah close;
13. Pada tombol Hitung, buatkan skrip program dengan langkah-langkah
sebagai
a=str2double(get(handles.edit1,'String'));
Ripai, S.Pd., M.Si
143
Page 120
Kompter Pemograman BasicBerbasis Matrik Laboratorium
b=str2double(get(handles.edit2,'String'));
H=[];
if a==round(a) & b==round(b) & a>0 & b>0
if a>b
T=a;a=b;b=T;
end
t=[a b]; c=0;
while a~=0
c=c+1;
r=mod(b,a);
h=(b-r)/a;
h={(['Proses ke-',num2str(c),' --> ',num2str(b),...
'= (',num2str(h),')(',num2str(a),')+',num2str(r)])};
H=[H;h];
set(handles.listbox1,'String',H);
pause(0.5);
b=a;a=r;
end
h={(['Jadi FPB(',num2str(t(1)),',',num2str(t(2)),') =
',num2str(b)])};
H=[H;h];
set(handles.listbox1,'String',H);
else
H={(['Maaf tidak dapat memproses'])};
h={(['a dan b harus bilangan bulat positif'])};
H=[H;h];
set(handles.listbox1,'String',H);
end
Ripai, S.Pd., M.Si
143
Page 121
Kompter Pemograman BasicBerbasis Matrik Laboratorium
10. Kemudian simpan program anda dan jalankan, maka akan diperoleh hasil
sebagai berikut jika diberikan iputan a = 172 dan b= 324.
Bentuk output lainya adalah sebagai berikut:
13.2 Pemograman Kalkulator Logika Matematika
Pada kegiatan berikut ini, akan didesain kalkultor logika yang mensimulasikan
atau yang dapat digunakan untuk menentukan nilai kebenaran berdasarkan
logika negasi, disjungsi, konjungsi, implikasi, biimplikasi, konvers, inver dan
kontraposisi. Untuk mendapatkan hal tersebut, diawali dengan merancang
desain GUI sebagai berikut:
Ripai, S.Pd., M.Si
143
Page 122
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Kemudian pada button ~ p dimasukkan skrip program sebagai berikut:
p=get(handles.edit2,'String');for i=1:length(p) if p(i)=='B' h(i)='S'; else h(i)='B'; endendset(handles.edit5,'String',h)s=get(handles.edit1,'String');set(handles.text1,'String',['~(',s,')'])
Dan pada button ~q, dimasukan skrip program unutk menentukan nilai
kebenaran untuk ~q. Konsep algoritma komputasinya sama dengan
algoritma komputasi pada ~q di atas. Cobalah mahasiswa berfikir
mendisain program komputasinya dan tuliskan dalam kotak berikut:
Ripai, S.Pd., M.Si
143
Page 123
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Kemudian pada listbox1, buatkan program sebagai beikut:
pilih=get(handles.listbox1,'Value');s1=get(handles.edit1,'String');p=get(handles.edit2,'String');s2=get(handles.edit3,'String');q=get(handles.edit4,'String');n=length(p);switch pilih case 1 for i=1:n if p(i)=='B'&q(i)=='B' h(i)='B'; else h(i)='S'; end end s=['(',s1,'^',s2,')']; case 2 for i=1:n if p(i)=='S'&q(i)=='S' h(i)='S'; else h(i)='B'; end end s=['(',s1,'v',s2,')']; case 3 for i=1:n if p(i)=='B'&q(i)=='S' h(i)='S'; else h(i)='B'; end end s=['(',s1,'==>',s2,')']; case 4 for i=1:n if (p(i)=='B'&q(i)=='B')|(p(i)=='S'&q(i)=='S')
Ripai, S.Pd., M.Si
143
Page 124
Kompter Pemograman BasicBerbasis Matrik Laboratorium
h(i)='B'; else h(i)='S'; end end s=['(',s1,'<==>',s2,')'];endset(handles.edit5,'String',h);set(handles.text1,'String',s);
Selanjutnya pada button cpy ke-q, dibuatkan skrip program sebagai berikut:
h=get(handles.edit5,'String');set(handles.edit4,'string',h);s=get(handles.text1,'string');set(handles.edit3,'String',s);
Dengan konsep algoritma program yang sama, buatkan skrip program untuk
copy ke-p dan tuliskan pada kotak berikut:
Setelah semuanya selesai di desain, maka simpanlah program anda dan
jalankan, dan insya Allah anda akan memperoleh hasil sebagai berikut:
Ripai, S.Pd., M.Si
143
Page 125
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Pada kondisi default seperti di atas, kondisi awalnya diberikan kemungkinan
nilai kebenaran unutk pernyataan p adalah BBSS dan q BSBS. Jika tombol ~
pada p anda tekan, maka akn diperoleh output sebagai berikut:
Jika pada listbox yang tersedia anda klik pilihan impilasi, maka akan diperoleh
output program sebagai berikut:
Ripai, S.Pd., M.Si
143
Page 126
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Jika anda ingin menyimpan hasil p==>q ke kolom inputan pertama, maka
tombol copy ke-p di klik, dan insyaAllah akan diperoleh hasil sebagai berikut:
Jika pilihan disjungsi anda klik pada listbox, maka akan diperoleh hasil sebagai
berikut:
Ripai, S.Pd., M.Si
143
Page 127
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Dalam hal ini anda telah melakukan komputasi untuk menghitung nilai
kebenaran dari (p==>q)vq dengan nilai kebenaran BSBB.
Program tersebut masih harus disempurnakan dengan memasukkan komputasi
teori invers, konvers dan kontraposisi. Hal tersebut menjadi tugas mahasiswa.
TUGAS 11
Buatlah program GUI untuk mensimulasikan
a. Definisi Faktorial
b. Definisi semua jenis permutasi
c. Definisi Kombinasi dan
d. Definisi Pembagian.
Ripai, S.Pd., M.Si
143
Page 128
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Bismillahirrahmanirahim.
Pada pertemuan sebelumnya telah di bahas membuat GUI untuk algoritma
Eucilden, faktorial, permutasi, kombinasi dan simulasi pembagian. Pada
pertemuan sekarang akan di bahas bagaimana membuat GUI untuk
mensimulasikan berbagai konsep matematika yang berkaitan dengan grafik
fungsi. Diantaranya adalah kurva dengan kemiringan garis singgungnya, limit
kanan fungsi, limit kiri dan lainnya.
Pemograman GUI untuk Mensimulasikan Garis Singgung Pada Kurva
Dengan tujuan mendapatkan program unutk mensimulasikan garis singgung
pada kurva, maka buatlah tampilan GUI sebagai berikut:
Pada tampilan di atas, property yang dipilih unutk membuat tempat mengambar
grafik fungsi adalah axes. Sedangkan pada popupmenu, isiskan dengan string
sebagai berikut:Ripai, S.Pd., M.Si
14 Pemograman Komputasi dengan GUI (Grafical User Interface) Lanjutan
143
Page 129
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Setelah membuat tampilan seperti tersebut di atas, maka selanjutnya, pada
tombol Mulai, anda masukkan skrip program berikut:
syms xf=get(handles.edit1,'String')df=diff(f,x)c=str2double(get(handles.edit2,'String'));x1=str2double(get(handles.edit7,'String'));dx=str2double(get(handles.edit8,'String'));x2=str2double(get(handles.edit9,'String'));x=[x1:dx:x2];konversi=get(handles.radiobutton1,'Value');if konversi==1 c=c*pi./180 x=x.*pi./180endt=str2double(get(handles.edit6,'String'));p=get(handles.popupmenu1,'Value');H=[];switch p case 1 for i=1:length(x) a=x(i);b=subs(f,a);m=subs(df,a);g=m.*x+b-m.*a; hold off; ezplot(f,x);hold on; plot(x,g,'r');hold on;plot(a,b,'*r') if m>0 title(['Garis singung f(x) = ',num2str(m),'x +',... num2str(b-m*a)]) h1={(['x = ',num2str(a)])}; h2={([' m = ',num2str(m)])}; h3={(['g(x)=',num2str(m),'x + ',num2str(b-m*a)])}; h4={(['--------------------------------------- '])}; H=[H;h1;h2;h3;h4]; else title(['g(x)=',num2str(b-
Ripai, S.Pd., M.Si
143
Page 130
Kompter Pemograman BasicBerbasis Matrik Laboratorium
m*a),num2str(m),'x']) h1={(['x = ',num2str(a)])}; h2={(['m = ',num2str(m)])}; h3={(['g(x)=',num2str(b-m*a),num2str(m),'x'])}; h4={(['--------------------------------------- '])}; H=[H;h1;h2;h3;h4]; end set(handles.listbox1,'String',H); text(a,b,(['<-(',num2str(a),',',num2str(b),');m = ',... num2str(m)])) pause(t); end case 2 a=c;b=subs(f,a);m=subs(df,a);g=m.*x+b-m.*a; hold off;ezplot(f,x);hold on; plot(x,g,'r');hold on;plot(a,b,'*r'); if m>0 title(['g(x) = ',num2str(m),'x +',num2str(b-m*a)]) h1={(['x = ',num2str(a)])}; h2={(['m = ',num2str(m)])}; h3={(['g(x)=',num2str(m),'x +',num2str(b-m*a)])}; H=[H;h1;h2;h3]; else title(['Garis singung f(x)=',num2str(b-m*a),... num2str(m),'x']) h1={(['x = ',num2str(a)])}; h2={(['m = ',num2str(m)])}; h3={(['g(x)=',num2str(b-m*a),num2str(m),'x'])}; H=[H;h1;h2;h3]; end text(a,b,(['<-(',num2str(a),',',num2str(b),');m = ',... num2str(m)])) pause(t); set(handles.listbox1,'String',H);
Ripai, S.Pd., M.Si
143
Page 131
Kompter Pemograman BasicBerbasis Matrik Laboratorium
endProgram tersebut di atas adalah modifikasi program persamaan garis singgung yang telah di bahas pada perkuliahan sebelumnya.
Catatan:Mahasiswa bersama dosen pembina berdiskusi membahas kontruksi algoritma program tersebut di atas.
Setelah skrip program dimasukkan, selanjutnya disimpan dan ijalankan, maka insya Allah akan memperoleh hasil sebagai berikut:
Pilihan konversi ke-radians pada radio button tersebut, digunakan pada
saat jenis fungsi yang dimasukkan merupakan fungsi trigonometri. Hal
ini disebbakan karena domain dari fungsi trigonometri adalah dalam
bentuk derajat. Contoh simulasinya adalah sebagai berikut:
Ripai, S.Pd., M.Si
143
Page 132
Kompter Pemograman BasicBerbasis Matrik Laboratorium
PEMOGRAMAN SIMULASI APROKSIMASI DERET TAYLOR
Dengan tujuan membuat program untuk mensimulasikan aproksimasi fungsi
non polinomial dengan fungsi polinomial menggunakan teorema deret taylor,
maka dibuat rancangan program sebagau berikut:
Setelah desain program tersebut selesaai dibuat, maka pada tombol proses,
dimasukkan skrip program berikut ini:
Ripai, S.Pd., M.Si
143
Page 133
Kompter Pemograman BasicBerbasis Matrik Laboratorium
clc;
disp('--------------------------------------')
disp('Aproksimasi fungsi dengan deret Taylor')
syms x
f=get(handles.edit1,'String');
disp(f)
c=str2double(get(handles.edit2,'String'));
disp(['Titik pusat x = ',num2str(c)])
disp('--------------------------------------')
disp('Hasil')
n=str2double(get(handles.edit3,'String'));
d=str2num(get(handles.edit4,'String'));
konversi=get(handles.radiobutton1,'Value');
if konversi==0
d=d.*pi./180;
end
konversi=get(handles.radiobutton1,'Value');
if konversi==0
d=d.*pi./180;
end
hold off
ezplot(f,d)
r=get(handles.radiobutton2,'Value');
for i=1:n
if r==1
hold off
ezplot(f,d)
end
Ripai, S.Pd., M.Si
143
Page 134
Kompter Pemograman BasicBerbasis Matrik Laboratorium
hold on
t=taylor(f,i,c,x);
y=subs(t,d);
plot(d,y,'r');
pause(0.1)
disp(' ')
disp(['Untuk n = ',num2str(i)])
pretty(t)
legend(['n = ',num2str(i)])
end
Catatan: Mahasiswa beriskusi dengan dosen pembina dalam upaya
mengkontruksi program tersebut:
Output program jika di eksekusi berdasarkan perintah tersebut adalah sebagai
berikut:
Jika tombol replace diaktifkan, maka akn diperoleh output sebagi berikut:
Ripai, S.Pd., M.Si
143
Page 135
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Selanjutnya pada tombol ezplot dan lihat output, berfikirlah bersma teman-
teman anda untuk mengkontruksi program yang harus dimasukkan dengan
meminta arahan dari dosen pembina. Sebagai gambaran, pada tombol lihat
outpun, diharapan memperoleh output proses pembuatan fungsi aproksimasi
dengan deret taylor sehingga hasil yang diharapkan tersimulasikan adalah
sebagai berikut:
Ripai, S.Pd., M.Si
143
Page 136
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Ripai, S.Pd., M.Si
143
Page 137
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Pada output tersebut, terlihat proses pembentukan fungsi polinomial dari fungsi
f(x)=sin(x)/x mengunakan metode deret taylor. Pada hasil akhir yang diperoleh
terlihat bahwa fungsi yang diberikan adalah fungsi polinomial berderajat 8. Hal
ini memberikan hampiran fungsi f(x)=sin(x)/x dengan ke cocokan kurva sekitar
berada pada domain -3<x<3. Hal ini dapat dilihat dari output grafik sebagi,
yakni
TUGAS 14
1. Buatlah suatu program GUI untuk mensimulasikan pengertian limit
kanan suatu fungsi, limit kiri suatu fungsi dan limit suatu fungsi.
2. Buatlah program GUI untuk mensimulasikan perhitungan luas dan
keliling bangun datar dan luas permukaan dan volume bangun ruang.
Sebagai referensi, desain aplikasi untuk bangun datar sebagai berikut:
Ripai, S.Pd., M.Si
143
Page 138
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Ripai, S.Pd., M.Si
143
Page 139
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Bismillahirrahmanirahim.
Pada pertemuan sebelumnya, telah dibahas pemograman pada topik-topik kalkulus dan matematika diskrit. Pada perkuliahan hari ini, akan dibahas pemograman GUI untuk evaluasi ketuntasan hasil belajar. Berikut adalah bentuk desain GUI yang harus dibuat sebagai berikut:
Selanjutnya bersama dosen pembina berdiskusi membahas algoritma komputasi yang dimasukkan pada edit tempat entrian data sebagai berikut:
x=str2num(get(handles.edit1,'string'));set(handles.edit1,'UserData',x);H={(['Data Hasil Belajar'])};H=[H;num2str(x')];set(handles.listbox1,'string',H);bar(x);
Ripai, S.Pd., M.Si
15 Pemograman GUI Lanjutan
143
Page 140
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Apabila program di jalankan, insya Allah akan diperoleh output sebagai berikut:
Jika pada kotak edit (tempat inputan data) di enter (klik dan enter),
maka akan diperoleh output sebagai berikut:
Ripai, S.Pd., M.Si
143
Page 141
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Kemudian jika pada tombol proses diberikan skrip program sebagai
berikut:
x=get(handles.edit1,'UserData');k=str2double(get(handles.edit2,'String'));n=length(x);tdk=[];for i=1:n; if x(i)>=k t(i)=1; else t(i)=0; tdk=[tdk i]; endendT=sum(t);P=T/n*100;H={(['Hasil analisis'])};h={(['Banyaknya Siswa = ',num2str(n)])};H=[H;h];h={(['Banyaknya Tuntas = ',num2str(T)])};H=[H;h];h={(['Ketuntasan Klasikal = ',num2str(P),'%'])};H=[H;h];h={(['No. Siswa tidak Tuntas = ',num2str(tdk)])};H=[H;h]; H=[H;'No N K';num2str([[1:n];x;t]')];set(handles.listbox1,'String',H)hold offplot(x,'-*');hold onplot([1 n],[k k],'-r')grid ontext(0,k,'KKM')xlabel('Nomor Urut Siswa')ylabel('Nilai Siswa')title('Grafik Analisis Ketuntasan Hasil Belajar');legend(['Klasikal = ',num2str(P),'%'])
Maka akan diperoleh output program sebagai berikut:
Ripai, S.Pd., M.Si
143
Page 142
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Output program memerikan tafsiran geometris hasil belajar siswa
sebagaimana pada gambar yang diberikan. Terlihat bahwa terdapat 6 siswa
yang nilainya berada di bawah garis merah yakni garis batas nilai KKM yang
harus dicapai siswa. Dalam teori belajar mengajar, dalam kondisi seperti ini,
maka guru harus memperbaiki secara individu siswa tersebut dan perlu
melakukan refleksi untuk perbaikan cara mengajar agar siswa dapat mencapai
nilai KKM. Pada kotak listbox memberikan informasi tentang banyaknya siswa
peserta tes, banyaknya yang tuntas dan tidak tuntas serta nomor absen siswa
yang tidak tuntas untuk kemudian diberikan bimbingan individu.
Dalam kondisi lain, dimana data hasil belajar sangat banyak atau sudah dientri
pada excel, maka perlu dibuatkan link antara excel dengan matlab agar dalam
analisis menghemat biaya dan waktu analisis dengan memberikan suatu
program untuk upload data excel ke Matlab. Program yang dapat diberikan
unutk aplikasi di atas adalah sebagai berikut:
Ripai, S.Pd., M.Si
143
Page 143
Kompter Pemograman BasicBerbasis Matrik Laboratorium
[file direktori]=uigetfile({'*.xlsx'},'ambil Data Excel');x=xlsread(file,-1);set(handles.edit1,'string',num2str(x'));set(handles.edit1,'UserData',x');H={(['Data Hasil Belajar'])};H=[H;num2str(x)];set(handles.listbox1,'String',H)hold offbar(x);
Skrip program tersebut dimasukkan pada tombol excel, dan jika dijalankan
akan memperoleh hasil sebagai berikut:
Output di atas merupakan hasil eksekusi dari command [file direktori]=uigetfile({'*.xlsx'},'ambil Data Excel');Yang merupakan perintah unutk membuka kotak dialog open file. Pada forlder
kerja, kita simpan hasil tes belajar siswa sehingga pada kotak dialog terlihat Ripai, S.Pd., M.Si
143
Page 144
Kompter Pemograman BasicBerbasis Matrik Laboratorium
nama file excel. Selanjutnya file excel tersebut kita pilih dan tekan open,
hasilnya akan terbuka file excel sebagai berikut:
File yang akan diupload adalah nilai siswa, maka untuk itu nilai siswa diblok
dan klik ok pada kotak dialog upload data excel, yakni
Ripai, S.Pd., M.Si
143
Page 145
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Dan hasilnya kan diperoleh sebagai berikut:
Data nilai pada excel, akan masuk pada kotak inputan data yakni edit dan akan
tergambar grafik diagram batangnya serta pada listbox tertulis data nilai yang
dimasukkan. Selanjutnya unutk melakukan analisis ketuntasan hasil belajar,
maka diklik tombol proses dan insyaAllah akan diperoleh hasil sebagai berikut:
Ripai, S.Pd., M.Si
143
Page 146
Kompter Pemograman BasicBerbasis Matrik Laboratorium
TUGAS 15Kerjan tugas berikut secara individu:
1. Buatlah program untuk membuat tabel distribusi frekuensi dengan aturan struges sehingga diperoleh output program seperti berikut ini:
2. Desain program distribusi frekuensi tersebut sehingga dapat menjadi program uji distribusi normal dengan mengunakan distribusi chi-kuadrat dengan desain program sebagai berikut:
Catatan: Referensi yang bias dirujuk adalah Teori Peluang dan Statistika
Untuk Insiyur dan Ilmuan penerbit ITB. Mahasiswa mempelajari teorinya
dan diskusikan dengan dosen Pembina.
Ripai, S.Pd., M.Si
143
Page 147
Kompter Pemograman BasicBerbasis Matrik Laboratorium
Bismillahirrahmanirahim:
Ujian akhir semester ditempuh mahasiswa untuk diketahui tingkat
penguasaan pemograman komputer basic dengan kisi-kisi soal sebagai
berikut:
No Indikator Ket1 Mahasiswa dapat merancang algoritma komputasi
dengan strukutr if, for, while dan switch dari suatu permasalahan matematika
2 Mahasiswa dapat menentukan output dari suatu algoritma komputasi yang diberikan
3 Mahasiswa dapat mengidentifikasi konsep matematika dari suatu algoritma komputasi yang diberikan
4 Mahasiswa dapat menentukan letak kesalahan suatu algoritma program dan menentukan perbaikanya
5 Mahasiswa dapat memberikan perintah untuk mengambil data dari excel
6 Mahasiswa dapat menuliskan perintah untuk mengambil suatu nilai dari property dan menempatkan nilai pada suatu property dalam pemograman GUI
Soal didesain dengan bentuk isisan singkat, artinya dalam menjawab soal
tersebut, mahasiswa mengisi jawaban yang benar secara singkat pada kolom
jawaban yang telah disediakan. Berikut beberapa contoh soal yang
dimaksudkan.
Ripai, S.Pd., M.Si
16 Ujian Akhir Semester
143
Page 148
Kompter Pemograman BasicBerbasis Matrik Laboratorium
No Soal Jawaban1 M=[0 2 3 4;5 0 3 2;5 6 7 3];
tuiskan matriks m yang diperoleh berdasarkan perintahm=M(1,:);for i=2:3 m=[m M(i,:)];
end3 Tuliskan output dari matriks M jika dikenai perintah
berikutn=length(M);for i=1:n-1 for j=i+1:n if M(i)<M(j) T=M(i); M(i)=M(j); M(j)=T; end endend
4 Jika variabel p = [0 1 1 0] dan function lala terdefinisi dengann=length(p);for i=1:n if p(i)==1 h(i)=0 else h(i)=1; endend a.Tuliskan bentuk kekurangan program dan lengkapib. Tuliskan konsep matematika yang di programkanc. Tuliskan cara penggunaan function tersebut pada pd. tuliskan outputnya
5 Perhatikan skrip berikut:a=input('a = '); b=input('b = ');while a~=0 r=mod(b,a);
Ripai, S.Pd., M.Si
143
Page 149
Kompter Pemograman BasicBerbasis Matrik Laboratorium
No Soal Jawaban h=(b-r)/a; b=a;a=r;endTuliskan konsep matematika yang dikontruksiSelidiki apakah terdapat kekurangan kontruksi program tersebut ditinjau dari konsep matematika.Jika b=80 dan a = 12, maka tentukan nilai a dan b yang terakhir.
6 Pada command window di berikan perintah dan mendapatkan outpus sbb:factorial(5)ans = 120Gunakan function tersebut untuk membangun komputasi kombinasi
7 Buatlah skrip M file membuat perhitungan nilai mahasiswa dengan Inputan U1= Nilai Tugas; U2 = Nilai Mid dan U3 = Nilai UASDan output OutputNilai Akhir (NA) = 20%U1 + 30%U2 + 50% U3Dan grade dengan ketentuanNilai A jika NA≥80Nilai B jika 70<NA ≤80Nilai C jika 55< NA ≤65Nilai D jika 40<NA≤55Nilai E jika 0≤NA≤40
Ripai, S.Pd., M.Si
143