• Tidak ada hasil yang ditemukan

MODUL 6 APLIKASI FUNGSI SEDERHANA. inversi matriks dengan metode Lavenberg-Marquardt pada C++ dan Octave.

N/A
N/A
Protected

Academic year: 2021

Membagikan "MODUL 6 APLIKASI FUNGSI SEDERHANA. inversi matriks dengan metode Lavenberg-Marquardt pada C++ dan Octave."

Copied!
9
0
0

Teks penuh

(1)

Modul Praktikum GP2103 Metode Komputasi, Semester I Tahun 2017

DOI: 10.17605/OSF.IO/5TFVQ

49 minimum dan maksimum dari sebuah array pada C++ dan Octave.

• Mahasiswa mampu membuat dan menggunakan fungsi sederhana berupa fungsi inversi matriks dengan metode Lavenberg-Marquardt pada C++ dan Octave.

II. Teori Dasar

Fungsi (function) adalah sekumpulan operasi program yang membutukan inputan untuk menjalankan program dan menghasilkan output dari hasil program tersebut. Fungsi biasa digunakan untuk menyederhanakan script pada program utama. Fungsi merupakan salah satu teknik pemrograman untuk meningkatkan modularitas program yang dibuat, sehingga program yang ukurannya besar dan banyak baris dapat dipecah menjadi modul-modul yang lebih kecil sehingga lebih efisien dan mudahkan untuk debugging. Parameter yang penting dalam fungsi adalah parameter masukan (input), program (proses) dan parameter keluaran (output).

Fungsi dalam C++ ada dua jenis yaitu fungsi void dan non-void. Fungsi void merupakan fungsi yang tidak mengembalikan nilai, biasanya tidak ada keyword return diakhir program dan ada keyword void diawal program. Sedangkan fungsi non-void adalah fungsi yang mengembalikan nilai kembalian yang berasal dari hasil proses program, biasanya ada keyword return pada akhir program dan tidak ada keyword void pada awal program. Berdasarkan letak penulisan fungsinya, fungsi pada C++ dibagi menjadi tiga yaitu fungsi overload, fungsi prototype dan fungsi inline. Format penulisan fungsi tersebut bisa sebagai berikut:

(2)

Modul Praktikum GP2103 Metode Komputasi, Semester I Tahun 2017

DOI: 10.17605/OSF.IO/5TFVQ

50

Gambar 6.1. Fungsi overload [4]

Gambar 6.2. Fungsi prototype [4]

Secara umum format penulisan fungsi pada Octave ada dua tipe yaitu yang pertama fungsi dan program utama dipisah (private function), yang kedua antara fungsi dan program utama digabung jadi satu script (subfunctions dan nested functions).

Gambar 6.3. Format fungsi sederhana di Octave [5]

(3)

Modul Praktikum GP2103 Metode Komputasi, Semester I Tahun 2017

DOI: 10.17605/OSF.IO/5TFVQ

51

Gambar 6.5. Pola fungsi subfunctions [6]

Gambar 6.6. Pola fungsi nested [6]

Mencari nilai minimum dan maksimum dari array 1D bisa dilakukan dengan terlebih dahulu mengetahui algoritma atau flowchart penyelesain masalah tersebut. Untuk latihan modul ini maka gunakan array 1D berikut ini x = [5,9,4,2,9,7,1,8,10,5].

Metode atau algoritma Levenberg-Marquardt (LM) atau bisa disebut sebagai damped least-squares (DLS) biasa digunakan untuk menyelesaikan masalah persamaan non-linier khususnya pada fitting kurva. Misalkan terdapat data yang dibentuk dari persamaan yang diberi noise 5% dari data sebagai berikut.

2 2 ) ( b bx a x y   (1)

dimana a dan b adalah parameter yang akan dicari sedangkan x adalah variabel pengukuran. Parameter a dan b dicari dengan menggunakan metode Levenberg-Marquardt. Berikut ini data yang dihasilkan dari persamaan (1) dengan x =1:1:20. Data pada gambar 6.7 disimpan pada file data.txt.

(4)

Modul Praktikum GP2103 Metode Komputasi, Semester I Tahun 2017

DOI: 10.17605/OSF.IO/5TFVQ

52

Gambar 6.7. Data yang akan dicari nilai a dan b dengan metode Levenberg-Marquardt

III. Tugas Pendahuluan

1. Apakah yang dimaksud dengan fungsi? Sebutkan tujuan dan keuntungan memakai fungsi (minimal 2)!

2. Jelaskan perbedaan antara fungsi void (void bla-bla()), fungsi non-void (tipe bla-bla()) dan fungsi utama (tipe main())?

Bisakah tipe fungsi utama berupa void (void main())?

3. Jelaskan mengenai fungsi private, subfunctions dan nested functions! Tuliskan contoh program singkatnya (jangan sama dengan modul)!

4. Buatlah flowchart mencari nilai minimum dan maksimum dari array 1D (buat dalam satu flowchart)!

5. Jelaskan apa yang Anda ketahui tentang metode/algoritma Levenberg-Marquardt!

(5)

Modul Praktikum GP2103 Metode Komputasi, Semester I Tahun 2017

DOI: 10.17605/OSF.IO/5TFVQ

53 2. Buatlah fungsi dengan memakai fungsi prototype pada C++ yang didalamnya ada input dan output dengan cara menyalin kode berikut! Simpan dengan nama p6cb.cpp.

(6)

Modul Praktikum GP2103 Metode Komputasi, Semester I Tahun 2017

DOI: 10.17605/OSF.IO/5TFVQ

54 3. Contoh fungsi inline yang mempercepat proses dan ekskusi pemograman terutama untuk program yang sering digunakan. Fungsi ini mempercepat pemanggilan blok fungsi karena fungsi tidak akan disimpan ke dalam memori melainkan hanya akan membuat salinan kode dari fungsi tersebut. Contoh penuilisan fungsi inline. Simpan dengan nama p6cc.cpp.

4. Salinlah fungsi private berikut di Octave dan beri nama p6oa_fungsi.m!

Kemudian buatlah fungsi utama dan beri nama dengan p6oa.m!

(7)

Modul Praktikum GP2103 Metode Komputasi, Semester I Tahun 2017

DOI: 10.17605/OSF.IO/5TFVQ

55 7. Mencari nilai minimum dari array 1D dengan fungsi overload mengunakan C++.

Simpan dengan nama p6cd.cpp.

Sedangkan kode Octave untuk pencarian nilai minimumnya sebagai berikut, berilah nama program dengan p6od.m.

(8)

Modul Praktikum GP2103 Metode Komputasi, Semester I Tahun 2017

DOI: 10.17605/OSF.IO/5TFVQ

56 Kemudian coba buatlah program pencarian nilai maksimum dari suatu array 1D dengan menggunakan fungsi prototype (C++) dan private (Octave).

8. Mencari nilai inversi dari matriks dengan menggunakan metode Lavenberg-Marquardt pada Octave dengan memanfaatkan fungsi fungsiLM.m di artikel ilmiah Fajriani dan Srigutomo (2016).

V. Laporan dan Analisis

Tugas yang harus dilampirakan pada laporan berupa:

1. Program pencarian nilai maksimum dan minimum dalam satu program pada C++ dengan memanfaatkan fungsi overload dan prototype! Buatlah sesingkat dan seefisien mungkin!

2. Buatlah fungsi perhitungan volume limas dan bola seperti pada modul 1 dengan Octave! Manfaatkan fungsi subfunctions dan nested!

3. Manfaatkan fungsi metode Lavenberg-Marquardt untuk pencarian parameter a dan b dari datalaporan.txt! Screenshot plot data mentah, plot history iterasi dan plot akhir perbandingan data mentah vs data kalkulasi!

(9)

Modul Praktikum GP2103 Metode Komputasi, Semester I Tahun 2017

DOI: 10.17605/OSF.IO/5TFVQ

57 [4] C++ Functions. Tersedia: https://www.programiz.com/cpp-programming/function

[2017/10/13]

[5] Functions and Scripts. Tersedia:

https://www.gnu.org/software/octave/doc/v4.0.1/Functions-and-Scripts.html [2017/10/13]

[6] Function Files. Tersedia: https://www.gnu.org/software/octave/doc/v4.0.1/Function-Files.html#Function-Files [2017/10/13]

[7] Fajriani dan W. Srigutomo. 2016. Perbandingan Inversi Non-Linier Untuk

Interpretasi Anomali Self-Potential Model Fixed Geomtery: Metode Least-Square, Gauss-Newton, dan Levenberg-Marquardt. Prosiding SNIPS 2016 hal. 313-321. ISBN: 978-602-61045-0-2.

Gambar

Gambar 6.2. Fungsi prototype [4]
Gambar 6.6. Pola fungsi nested [6]

Referensi

Dokumen terkait

Berdasarkan hasil uji statistik hubungan antara fekunditas dengan karakter morfometrik (panjang rongga perut, tinggi linea lateralis, dan luas rongga perut) serta bobot badan

Berdasarkan observasi tindakan I tersebut, peneliti dan kolaborator melakukan analisis dan refleksi sebagai berikut: (1) jumlah dan frekuensi pertemuan pada siklus atau tindakan

Penggunaan modal kerja ini harus ditentukan dan direncanakan dengan matang karena apabila terdapat modal kerja yang tidak produktif atau kelebihan modal kerja

Sebagaimana permasalahan mengenai bentuk kata ragam bahasa gaul yang telah dijabarkan pada bagian sebelumnya, peneliti memaparkan hasil analisis data yang ditemukan dalam

Susut pengeringan adalah banyaknya bagian zat yang mudah menguap termasuk air, ditetapkan dengan cara pengeringan, kecuali dinyatakan lain, dilakukan pada suhu 105° hingga

sense, feel , think, act, dan relate tidak mempunyai pengaruh yang signifikan secara bersama-sama terhadap variabel terikatnya yaitu customer loyalty. Ha : Variabel-variabel

Menurut Budi Anna Keliat (2005) tujuan dilaksanakannya TAKS pada sesi ke-7 yaitu klien mampu menyampaikan pendapat tentang manfaat kegiatan TAKS yang telah

Pada praktikum, proses deasetilasi kitin dilakukan dengan cara mula-mula serbuk kitin yang sudah dihasilkan dari proses sebelumnya dilarutkan dalam larutan NaOH dengan