MAKALAH PEMROGAMAN

download MAKALAH PEMROGAMAN

of 19

Transcript of MAKALAH PEMROGAMAN

MAKALAH PEMROGAMAN KALKULATOR TRIGONOMETRIDISUSUN OLEH :

BRYAN GUMELAR

10450007

JURUSAN TEKNIK ELEKTRO UNIVERSITAS MERDEKA MALANG 2011

KATA PENGANTARPuji dan Syukur penulis panjatkan ke hadirat Tuhan Yang Maha Esa yang telah melimpahkan rahmat dan karunia NYA sehingga penyusun dapat menyelesaikan pembuatan laporan Pratikum Fisika Dasar Ayunan Puntir dengan baik. Dalam membuat dan menyusun Laporan Pratikum Fisika Dasar Ayunan Puntir ini tidak terlepas dari bantuan berbagai pihak. Oleh karena itu kami mengucapkan banyak terima kasih kepada:

1. Bapak dan Ibu yang telah memberi dukungan dan kasih sayang selama ini. 2. Ibu dosen yang telah membimbing kami dalam penyelesaian laporan pratikum fisika ini. 3. Teman teman yang telah banyak membantu dalam penyelesaian laporan pratikum fisika ini.

Penulis mengharapkan

segala

kritik dan

saran

yang

bersifat

membangun dari semua pihak. Dengan adanya saran dan kritik tersebut semoga dapat digunakan untuk kesempurnaan laporan ini di kemudian hari.

Dan kami berharap agar laporan fisika ini dapat menambah wawasan kita alam perhitungan matematis maupun percobaan fisis.

Penyusun

DAFTAR ISI

KATA PENGANTAR .................................................................... DAFTAR ISI ................................................................................. 1. PENDAHULUAN ...................................................................... 2. DASAR MATERI ......................................................................

i ii 1 2

1. PENDAHULUANIlmu komputer secara umum diartikan sebagai ilmu yang mempelajari baik tentang komputasi, perangkat keras (hardware) maupun perangkat lunak (software). Ilmu komputer mencakup beragam topik yang berkaitan dengan komputer, mulai dari analisa abstrak algoritma sampai subyek yang lebih konkret seperti bahasa pemrograman, perangkat lunak, termasuk perangkat keras. Sebagai suatu disiplin ilmu, Ilmu Komputer lebih menekankan pada pemrograman komputer, dan rekayasa perangkat lunak (software), sementara teknik komputer lebih cenderung berkaitan dengan hal-hal seperti perangkat keras komputer (hardware). Namun demikian, kedua istilah tersebut sering disalah-artikan oleh banyak orang. Ilmu Komputer mempelajari apa yang bisa dilakukan oleh beberapa program, dan apa yang tidak (komputabilitas dan intelegensia buatan), bagaimana program itu harus mengevaluasi suatu hasil (algoritma ), bagaimana program harus menyimpan dan mengambil bit tertentu dari suatu informasi (struktur data), dan bagaimana program dan pengguna berkomunikasi (antarmuka pengguna dan bahasa pemrograman ). Ilmu komputer berakar dari elektronika, matematika dan linguistik. Dalam tiga dekade terakhir dari abad 20, ilmu komputer telah menjadi suatu disiplin ilmu baru dan telah mengembangkan metode dan istilah sendiri. Dalam matematika dan komputasi, algoritma merupakan kumpulan perintah untuk menyelesaikan suatu masalah. Perintah-perintah ini dapat

diterjemahkan secara bertahap dari awal hingga akhir. Masalah tersebut dapat berupa apa saja, dengan catatan untuk setiap masalah, ada kriteria kondisi awal yang harus dipenuhi sebelum menjalankan algoritma. Algoritma akan dapat selalu berakhir untuk semua kondisi awal yang memenuhi kriteria, dalam hal ini berbeda dengan heuristik. Algoritma sering mempunyai langkah pengulangan (iterasi) atau memerlukan keputusan (logika Boolean dan perbandingan) sampai tugasnya selesai. Desain dan analisis algoritma adalah suatu cabang khusus dalam ilmu komputer yang mempelajari karakteristik dan performa dari suatu algoritma dalam menyelesaikan masalah, terlepas dari implementasi algoritma tersebut. Dalam cabang disiplin ini algoritma dipelajari secara abstrak, terlepas dari sistem komputer atau bahasa

pemrograman yang digunakan. Algoritma yang berbeda dapat diterapkan pada suatu masalah dengan kriteria yang sama. Kompleksitas dari suatu algoritma merupakan ukuran seberapa banyak komputasi yang dibutuhkan algoritma tersebut untuk menyelesaikan masalah. Secara informal, algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang singkat memiliki kompleksitas yang rendah, sementara algoritma yang membutuhkan waktu lama untuk menyelesaikan masalahnya mempunyai kompleksitas yang tinggi. I.1 Latar Belakang Kalkulator dapat dikatakan sebagai salah satu aplikasi komputer yang merupakan suatu teknik penghitungan angka dengan cara memasukkan data pada suatu fungsi tertentu. Melalui program ini akan didapatkan suatu hasil yang mempunyai nilai kebenaran. Melalui kalkulator, dengan melakukan visualisasi dari suatu fungsi matematis akan didapati hasil yang kita inginkan. Dalam Tugas Akhir ini, akan dibahas pembuatan prograk kalkulator menggunakan pemrograman GUI dengan Matlab. 1.1.1 Tujuan Tujuan dari pembuatan Tugas Akhir ini adalah untuk membuat kalkulator yang lebih simple dengan pemrograman GUI menggunakan Matlab. 1.1.2 Batasan Masalah Hal-hal yang dibahas pada penulisan Tugas Akhir ini, dibatasi pada: 1. Menggunakan metode penghitungan. 2. Bahasa pemrograman yang digunakan adalah Matlab 7.6.0

2. DASAR MATERI2.1 MATLAB MATLAB (Matrix Laboratory) adalah sebuah program untuk analisis dan komputasi numerik dan merupakan suatu bahasa pemrograman matematika lanjutan yang dibentuk dengan dasar pemikiran menggunkan sifat dan bentuk matriks. Pada awalnya, program ini merupakan interface untuk koleksi rutinrutin numeric dari proyek LINPACK dan EISPACK, dan dikembangkan menggunkan bahasa FORTRAN namun sekarang merupakan produk komersial dari perusahaan Mathworks, Inc.yang dalam perkembangan selanjutnya dikembangkan menggunakan bahasa C++ dan assembler (utamanya untuk fungsi-fungsi dasar MATLAB). MATLAB telah berkembang menjadi sebuah environment pemrograman yang canggih yang berisi fungsi-fungsi built-in untuk melakukan tugas pengolahan sinyal, aljabar linier, dan kalkulasi matematis lainnya. MATLAB juga berisi toolbox yang berisi fungsifungsi tambahan untuk aplikasi khusus . MATLAB bersifat extensible, dalam arti bahwa seorang pengguna dapat menulis fungsi baru untuk ditambahkan pada library ketika fungsi-fungsi builtin yang tersedia tidak dapat melakukan tugas tertentu. Kemampuan pemrograman yang dibutuhkan tidak terlalu sulit bila Anda telah memiliki pengalaman dalam pemrograman bahasa lain seperti C, PASCAL, atau FORTRAN. MATLAB merupakan merk software yang dikembangkan oleh

Mathworks.Inc.(lihat http://www.mathworks.com) merupakan software yang paling efisien untuk perhitungan numeric berbasis matriks. Dengan demikian jika di dalam perhitungan kita dapat menformulasikan masalah ke dalam format matriks maka MATLAB merupakan software terbaik untuk

penyelesaian numericnya. MATLAB (MATrix LABoratory) yang merupakan bahasa pemrograman tingkat tinggi berbasis pada matriks sering digunakan untuk teknik komputasi numerik, yang digunakan untuk menyelesaikan masalah-masalah yang melibatkan operasi matematika elemen, matrik, optimasi, aproksimasi dll. Sehingga Matlab banyak digunakan pada :

Matematika dan Komputansi Pengembangan dan Algoritma Pemrograman modeling, simulasi, dan pembuatan Prototype Analisa Data , eksplorasi dan visualisasi Analisis numerik dan statistic Pengembangan aplikasi teknik

2.1.1 WINDOW-WINDOW PADA MATLAB Ada beberapa macam window yang tersedia dalam MATLAB, yang dapat dijelaskan sebagai berikut: a. MATLAB Command window/editor MATLAB Command window/editor merupakan window yang dibuka pertama kali setiap kali MATLAB dijalankan. Jika perintah-perintah yang sudah diketikkan dan hasil yang ditampilkan pada layar command window akan disimpan maka dapat dilakukan dengan menggunkan command diary. Command windows juga digunakan untuk memanggil tool Matlab seperti editor, debugger atau fungsi. Ciri dari window ini adalah adanya prompt (>>) yang menyatakan matlab siap menerima perintah. Perintah dapat berupa fungsi-fungsi pengaturan file (seperti perintah DOS/UNIX) maupun fungsi-fungsi bawaan/toolbox MATLAB sendiri. Berikut ini beberapa fungsi pengaturan file dalam MATLAB : dir / ls : Digunakan untuk melihat isi dari sebuah direktoriaktif. Cd : Digunakan untuk melakukan perpindahan dari direktori aktif. Pwd : Digunakan untuk melihat direktori yang sedang aktif

mkdir : Digunakan untuk membuat sebuah direktori what : Digunakan untuk melihat nama file m dalam direktori aktif who : Digunakan untuk melihat variabel yang sedang aktif

whos : Digunakan untuk menampilkan nama setiap variabel delete : Digunakan untuk menghapus file clear : Digunakan untuk menghapus variabel

clc doc

: Digunakan untuk membersihkan layar : Digunakan untuk melihat dokumentasi The MathWorks, Inc. dalam format html secara online.

demo : Digunakan untuk mencoba beberapa tampilan demo yang disediakan oleh Matlab b. MATLAB Editor/Debugger (Editor M-File/Pencarian Kesalahan) Window ini merupakan tool yang disediakan oleh Matlab 5 keatas. Berfungsi sebagai editor script Matlab (M-file). Walaupun sebenarnya script ini untuk pemrograman Matlab dapat saja menggunakan editor yang lain seperi notepad, wordpad bahkan word. Untuk mengakses window m-file ini dapat dilakukan dengan cara : 1. Memilih File kemudian pilih New 2. Pilih m-file, maka MATLAB akan menampilkan editor window

c. Figure Windows Window ini adalah hasil visualisasi dari script Matlab. Namun Matlab memberi kemudahan bagi programer untuk mengedit window ini sekaligus memberikan program khusus untuk itu. Sehingga window ini selain berfungsi sebagai visualisasi output dapat juga sekaligus menjadi media input yang interaktif. d. MATLAB help window MATLAB menyediakan sistem help yang dapat diakses dengan perintah help. Misalnya, untuk memperoleh informasi mengenai fungsi elfun yaitu fungsi untuk trigonometri, eksponensial, complex dan lain-lain, maka hanya perlu mengetikkan perintah berikut : help elfun dan kemudian menekan enter maka di layar akan muncul informasi dalam bentuk teks pada layar MATLAB yaitu : Elementary math functions. Trigonometric. sin sinh asin - Sine. - Hyperbolic sine. - Inverse sine.

asinh - Inverse hyperbolic sine.

cos cosh acos

- Cosine. - Hyperbolic cosine. - Inverse cosine.

acosh - Inverse hyperbolic cosine. tan tanh atan - Tangent. - Hyperbolic tangent. - Inverse tangent.

atan2 - Four quadrant inverse tangent. atanh - Inverse hyperbolic tangent. sec sech asec - Secant. - Hyperbolic secant. - Inverse secant.

asech - Inverse hyperbolic secant. csc csch acsc - Cosecant. - Hyperbolic cosecant. - Inverse cosecant.

acsch - Inverse hyperbolic cosecant. cot coth acot - Cotangent. - Hyperbolic cotangent. - Inverse cotangent.

acoth - Inverse hyperbolic cotangent. Exponential. exp log - Exponential. - Natural logarithm.

log10 - Common (base 10) logarithm. log2 - Base 2 logarithm and dissect floating point number. pow2 - Base 2 power and scale floating point number. sqrt - Square root. nextpow2 - Next higher power of 2. Complex. abs - Absolute value.

angle - Phase angle.

complex - Construct complex data from real andimaginary parts. conj imag real - Complex conjugate. - Complex imaginary part. - Complex real part.

unwrap - Unwrap phase angle. isreal - True for real array. cplxpair - Sort numbers into complex conjugate pairs.

Rounding and remainder. fix - Round towards zero.

floor - Round towards minus infinity. ceil - Round towards plus infinity.

round - Round towards nearest integer. mod - Modulus (signed remainder after division). rem sign - Remainder after division. - Signum.

2.2 GUI atau GUIDE GUIDE atau GUI builder merupakan sebuah graphical user interface (GUI) yang dibangun dengan obyek grafik seperti tombol (button), kotak teks, slider, menu dan lain-lain. Aplikasi yang menggunakan GUI umumnya lebih mudah dipelajari dan digunakan karena orang yang menjalankannya tidak perlu mengetahui perintah yang ada dan bagaimana kerjanya. Sampai saat ini, jika kita membicarakan pemrograman berorientasi visual, yang ada di benak kita adalah sederetan bahasa pemrograman, seperti visual basic, Delphi, visual C++, visual Fox Pro, dan lainnya yang memang didesai secara khusus untuk itu. Matlab merintis ke arah pemrograman yang menggunakan GUI dimulai dari versi 5, yang terus disempurnkan sampai sekarang (Matlab 7). GUIDE Matlab mempunyai kelebihan tersendiri dibandingkan dengan bahasa pemrogram lainnya, diantaranya:

1) GUIDE Matlab banyak digunakan dan cocok untuk aplikasi-aplikasi berorientasi sains, sehingga banyak peneliti dan mahasiswa menggunakan GUIDE Matlab untuk menyelesaikan riset atau tugas akhirnya. 2) GUIDE Matlab mempunyai fungsi built-in yang siap digunakan dan pemakai tidak perlu repot membuatnya sendiri. 3) Ukuran file, baik FIG-file maupun M-file, yang dihasilkan relatif kecil. 4) Kemampuan grafisnya cukup andal dan tidak kalah dibandingkan dengan bahasa pemrograman lainnya. 2.2.1 Memulai GUIDE MATLAB Memulai GUIDE Matlab dapat dilakukan dengan dua cara, yaitu: 1. Melalui command matlab dengan mengetikkan: >> guide 2. Klik tombol Start Matlab dan pilihlah MATLAB, lalu pilih GUIDE (GUI Bulder) GUIDE Quick Start memiliki dua buah pilihan, yaitu Create New GUI dan Open Existing GUI. Create New GUI digunakan jika kita memang belum pernah membuat aplikasi GUI Matlab atau jika kita memang ingin membuat sebuah figure baru, sedangkan Open Existing GUI digunakan jika kita sudah memiliki file figure matlab atau akan memodifikasi file figure yang telah kita simpan. Pada pilihan Create New GUI terdapat menu GUIDE templates yang memiliki beberapa tipe dasar dari GUI, sehingga kita dapat melakukan modifikasi pada template agar menjadi GUI seperti yang kita harapkan. Sebagai pemula, kita gunakan Blank GUI (Default) yang merupakan sebuah GUI dengan figure kosong dan merupakan kondisi default dari GUIDE dan diplih jika kita memang akan membuat sebuah aplikasi dengan komponen yang layout-nya tidak terdapat pada GUI template yang lain. Setelah kita memilih Blank GUI templates, maka akan muncul tampilan Menu Utama GUIDE. Komponen palet pada GUIDE Matlab terdiri dari beberapa uicontrol (kontrol user interface), seperti pada bahasa pemrograman visual lainnya, yaitu: pushbutton, togglebutton, radiobutton, chexkboxes, edit text, static text, slider, frames, listboxes, popup menu, dan axes. Kita dapat meletakkan

semua kontrol pada layout editor dan selanjutnya hanya tinggal mengaturnya melalui property inspector. Semua kontrol pada GUIDE dapat dimunculkan pada layout/figure dengan cara mendrag kiri kontrol yang diinginkan ke figure. Adapun penjelasan fungsi masing-masing kontrol adalah sebagai berikut: 1) Pushbutton Pushbutton merupakan jenis kontrol berupa tombol tekan yang akan menghasilkan1 tindakan jika diklik, misanya tombol OK, Cancel, Hitung, Hapus, dan sebagainya. Untuk menampilkan tulisan pada pushbutton kita dapat mengaturnya melalui property inspector dengan mengklik obeyek pushbutton pada figure, lalu mengklik toolbar property inspector atau menggunakan klik kanan lalu pilih property inspector. Selanjutnya isilaha tab string dengan label yang diinginkan, misalnya Hitung. 2) Toggle Button Toggle button memiliki fungsi yang sama dengan pushbutton. Perbedaanya adalah saat pushbutton ditekan, maka tombol akan kembali pada posisi semula jika tombol mouse dilepas, sedangkan pada toggle button, tombol tidak akan kembali ke posisi semula, kecuali kita menekannya kembali.

3) Radio Button Radio button digunakan untuk memilih atau menandai satu pilihan dari beberapa pilihan yang ada. Misalnya, sewaktu kita membuat aplikasi operasi Matematika (penjumlahan, pengurangan, perkalian, dan pembagian). 4) Edit Text dan Static Text Edit text digunakan untuk memasukkan atau memodifikasi suatu text yang diinputkan dari keyboard, sedangkan static text hanya berguna untuk menampilkan text/tulisan, sehingga kita tidak bisa

memodifikasi/mengedit text tersebut kecuali memalui property inspector. 5) Frames

Frames merupakan kotak tertutup yang dapat digunakan untuk mengelompokkan kontrol-kontrol yang berhubungan. Tidak seperti kontrol lainnya, frames tidak memiliki rutin callback. 6) Checkboxes Kontrol checkboxes berguna jika kita menyediakan beberapa pilihan mandiri atau tidak bergantung dengan pilihan-pilihan lainnya. Contoh aplikasi penggunaan checkboxes adalah ketika kita diminta untuk memilih hobi. Karena hobi bisa lebih dari satu, maka kita dapat mengklik checkboxes lebih dari satu kali. 7) Slider Slider berguna jika kita menginginkan inputan nilai tidak

menggunakan keyboarad, tatapi hanya dengan cara menggeser slider secara vertical maupun horizontal ke nilai yang kita inginkan. Dengan menggunakan slider, kita lebih fleksibel dalam melakukan pemasukan nilai data karena kita dapat mengatur sendiri nilai max, nilai min, serta sliderstep. 8) Popup Menu Popop menu berguna menampilkan daftar pilihan yang didefinisikan pada String Propoerty ketika mengklik tanda panah pada aplikasi dan memiliki fungsi yang sama seperti radio button. Ketika tida dibukak, popup menu hanya menampilkan satu item yang menjadi pilihan pertama pada String Property. Popupmenu sangat bermanfaat ketika kita ingin memberi sebuah pilihan tanpa jarak, tidak seperti radiobutton. 9) Axes Axes berguna untuk menampilkan sebuah grafik atau gambar (image). Axes sebenarnya tidak masuk dalam UIControl, tetapi axes dapat deprogram agar pemakai dapat berinteraksi dengan axes dan obyek grafik yang ditampilkan melalui axes.

3. PEMBAHASANProgram yang kita pakai adalah matlab 7.6.0 (R2008) Pertama kita membuka program tersebut maka akan muncul sebagai berikut

Lalu kita membuka file GUI baru dan kita memilih file> new> GUI. Maka akan muncul

Pada table tersebut kita memakai blank GUI untuk memulainya. Dan kita membuat Pertama disiapkan adalah tampilan dari kalkuator. Di sini saya merancang dengan GUI yang dari MATLAB. Desain kalkulator sederhana saya kurang lebih sepertigambar berikut.

Setelah desain dibuat, simpanlah desain tersebut dengan nama kalkulat1.fig, dan secara otomatis MATLAB juga akan menciptakan file kalkulat1.m yang berisi kode program dari kalkulator .fig tersebut. Agar latihan yang kita lakukan sama, maka kita beri nama pada masing-masing obyek. Mulai dari atas ke bawah: 1. Untuk menampilkan hasil digunakan Edit Text, beri nama txthasil pada kolom tag. 2. Untuk angka 0 s.d 9 gunakan Push Button, untuk tombol angka 0 beri nama tb0 pada kolom tag, angka 1 beri nama tb1, dst. sampai angka 9 beri nama tb9, dan pada tombol . (titik) beri nama tbcoma. 3. Untuk tombol operator + beri nama tbplus, operator beri nama tbmin, operator * beri nama tbkali, dan operator / beri nama tbbagi. 4. selanjutnya tombol CLEAR beri nama tbclear, dan tombol (=) yang besar beri nama tbenter. 5. selanjutnya membuat popupmenu dan kita isi dengan sin cos tan dan diberi nama trig 6. disebelahnya diberi Edit Text, dan diberi nama x pada kolom tag 7. pada pushbutton (=) diberi tag dengan htrig 8. lalu pada kolom sebelahnya diberi Edit text dan diberi nama hslsin. Lalu kita membuat kode programnya. Caranya adalah klik kanan pada obyek yang akan diberi kode program, selanjutnya nanti akan keluar menu pop-up, lalu pilih View Callbacks > Callback. Pada tombol angka, tuliskan kode seperti berikut: (contoh yang diberikan adalah kode untuk tombol angka 1) global jj textString = get(handles.txthasil,'String'); if(strcmp(textString,'0.')==1)&&(jj==0) set(handles.txthasil,'String','1') ; else textString =strcat(textString,'1'); set(handles.txthasil,'String',textString);

end jj=0; Lakukan keseluruh tombol angka, dengan mengubah angka yang tercetak warna merah dengan tombol angka yang bersesuaian dari 0 s.d. 9 dan (.) tanda titik yang berarti koma.

Kemudian kita lanjutkan ke tombol operator, berikut adalah kode program untuk tombol operator +. textString = get(handles.txthasil,'String'); textString =strcat(textString,'+'); set(handles.txthasil,'String',textString) untuk membuat kode program pada tombol operator yang lain, sama seperti pada tombol operator +, tinggal menggantikan tanda + ( yang berwana merah), dengan operator lain yang bersesuaian. Lanjut pada pushbutton (=) yang kecil atau htrig. Kita isi kode program % --- Executes on button press in htrig. function htrig_Callback(hObject, eventdata, handles) % hObject handle to htrig (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) x = get(handles.x,'string'); xx = str2num(x); if (get(handles.trig,'value') == 1) p = sin(xx); p = round(p*10000)/10000; set(handles.hsilsin,'string',p); end if (get(handles.trig,'value') == 2) p = cos(xx); p = round(p*10000)/10000; set(handles.hsilsin,'string',p); end if (get(handles.trig,'value') == 3) p = tan(xx); p = round(p*10000)/10000; set(handles.hsilsin,'string',p); end

untuk Lalu pada tombol = yang besar berikan kode berikut ini. textString = get(handles.txthasil,'String'); ans =eval(textString); set(handles.txthasil,'String',ans) sedangkan untuk tombol CLEAR berikan kode berikut. set(handles.txthasil,'String','0.') ;

Daftar pustakahttp://www.mathworks.com/matlabcentral/fileexchange/8616 http://202.91.15.14/upload/files/5361_Modul2.pdf