Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010eddie Ismantoe
Modul pratikum algoritma dan pemrograman dalam bahasa visual C++ ini membahas mengenai Teknik pengimplementasian algoritma dalam Bahasa Visual C++ 2010
BAB I
PENDAHULUAN
Latar Belakang
Salah satu pendekatan yang dapat dilakukan untuk menyelesaikan masalah manajemen sains adalah pemrograman linear. Pemrograman linear merupakan kelompok teknik analisis kuantitatif yang mengandalkan model matematika atau model simbolik sebagai wadahnya. Artinya, setiap masalah yang kita hadapi dalam suatu sistem permasalahan tertentu perlu dirumuskan dulu dalam simbol-simbol matematika tertentu, jika kita inginkan bantuan pemrograman linear sebagai alat analisisnya.
Metode grafik merupakan salah satu metode yang dapat digunakan untuk menyelesaikan masalah pemrograman linear yang melibatkan dua peubah keputusan. Membahas mengenai masalah meminimumkan fungsi kendala bertanda ≥, fungsi kendala bertanda = tidak ada penyelesaian layak, tidak ada penyelesaian optimal, beberapa alternatif optimal, dan wilayah kelayakan yang tidak terikat dapat terjadi saat menyelesaikan masalah pemrograman linear dengan menggunakan prosedur penyelesaian grafik. Kasus-kasus ini juga dapat terjadi saat menggunakan metode simpleks.
Metode simplek untuk linier programming dikembangkan pertama kali oleh George Dantzing pada tahun 1947, kemudian digunakan juga pada penugasan di Angkatan Udara Amerika Serikat. Dia mendemonstrasikan bagaimana menggunakan fungsi tujuan (iso-profit) dalam upaya menemukan solosi diantara beberapa kemungkinan solosi sebuah persoalan linier programming.
Proses penyelesaiaanya dalam metode simplek, dilakukan secara berulang-ulang (iterative) sedemikian rupa dengan menggunakan pola tertentu (standart) sehingga solusi optimal tercapai.
Ciri lain dari metode simplek adalah bahwa setiap solusi yang baru akan menghasilkan sebuah nilai fungsi tujuan yang lebih besar daripada solosi sebelumnya.
Rumusan Masalah
Adapun rumusan masalah yang akan dibahas dalam makalah ini adalah sebagai berikut:
Bagaimana cara mencari nilai maksimum dengan menggunakan metode simpleks?
Bagaimana cara menyelesaikan masalah/kendala (syarat) bertanda “=”?
Bagaimana cara mencari nilai minimum dengan menggunakan metode simpleks?
Bagaimana cara membedakan antara asalah primal dan dual dalam program linear?
Kapan pemrograman linear dikatakan mengalami degenerasi?
Tujuan
Adapun tujuan dari penulisan makalah ini antara lain :
Dapat menyelesaikan masalah maksimasi dalam program linear
Dapat menyelesaikan masalah / kendala (syarat) bertanda “=” pada program linear
Dapat menyelesaikan masalah minimasi dalam program linear
Dapat mengetahui dan membedakan antara masalah primal dan dual dalam program linear
Dapat menyelesaikan masalah degeneracy / kemerosotan dalam program linear
BAB II
PEMBAHASAN
Masalah Maksimasi
Untuk menyelesaikan masalah maksimasi maka programasi linear harus lebih dahulu ditulis dalam bentuk standar. Dengan bentuk standar dimaksudkan adalah permasalahan programasi linear yang berwujud permasalahan maksimasi dengan batasan-batasan (kendala) yang bertanda kurang dari
Matriks eselon dan eselon tereduksi.. serta operasi eliminasi gauss dan gauss-jordan
gunakanlah presentasi berikut dg bijak dan sebagai sumber inspirasi.
^_^ saya mahasiswa madura yang sekarang kuliah di UNIVERSITAS MADURA jurusan FKIP MATEMATIKA
Jl. Raya Panglegur KM 3,5 pamekasan
Come join us..
Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010eddie Ismantoe
Modul pratikum algoritma dan pemrograman dalam bahasa visual C++ ini membahas mengenai Teknik pengimplementasian algoritma dalam Bahasa Visual C++ 2010
BAB I
PENDAHULUAN
Latar Belakang
Salah satu pendekatan yang dapat dilakukan untuk menyelesaikan masalah manajemen sains adalah pemrograman linear. Pemrograman linear merupakan kelompok teknik analisis kuantitatif yang mengandalkan model matematika atau model simbolik sebagai wadahnya. Artinya, setiap masalah yang kita hadapi dalam suatu sistem permasalahan tertentu perlu dirumuskan dulu dalam simbol-simbol matematika tertentu, jika kita inginkan bantuan pemrograman linear sebagai alat analisisnya.
Metode grafik merupakan salah satu metode yang dapat digunakan untuk menyelesaikan masalah pemrograman linear yang melibatkan dua peubah keputusan. Membahas mengenai masalah meminimumkan fungsi kendala bertanda ≥, fungsi kendala bertanda = tidak ada penyelesaian layak, tidak ada penyelesaian optimal, beberapa alternatif optimal, dan wilayah kelayakan yang tidak terikat dapat terjadi saat menyelesaikan masalah pemrograman linear dengan menggunakan prosedur penyelesaian grafik. Kasus-kasus ini juga dapat terjadi saat menggunakan metode simpleks.
Metode simplek untuk linier programming dikembangkan pertama kali oleh George Dantzing pada tahun 1947, kemudian digunakan juga pada penugasan di Angkatan Udara Amerika Serikat. Dia mendemonstrasikan bagaimana menggunakan fungsi tujuan (iso-profit) dalam upaya menemukan solosi diantara beberapa kemungkinan solosi sebuah persoalan linier programming.
Proses penyelesaiaanya dalam metode simplek, dilakukan secara berulang-ulang (iterative) sedemikian rupa dengan menggunakan pola tertentu (standart) sehingga solusi optimal tercapai.
Ciri lain dari metode simplek adalah bahwa setiap solusi yang baru akan menghasilkan sebuah nilai fungsi tujuan yang lebih besar daripada solosi sebelumnya.
Rumusan Masalah
Adapun rumusan masalah yang akan dibahas dalam makalah ini adalah sebagai berikut:
Bagaimana cara mencari nilai maksimum dengan menggunakan metode simpleks?
Bagaimana cara menyelesaikan masalah/kendala (syarat) bertanda “=”?
Bagaimana cara mencari nilai minimum dengan menggunakan metode simpleks?
Bagaimana cara membedakan antara asalah primal dan dual dalam program linear?
Kapan pemrograman linear dikatakan mengalami degenerasi?
Tujuan
Adapun tujuan dari penulisan makalah ini antara lain :
Dapat menyelesaikan masalah maksimasi dalam program linear
Dapat menyelesaikan masalah / kendala (syarat) bertanda “=” pada program linear
Dapat menyelesaikan masalah minimasi dalam program linear
Dapat mengetahui dan membedakan antara masalah primal dan dual dalam program linear
Dapat menyelesaikan masalah degeneracy / kemerosotan dalam program linear
BAB II
PEMBAHASAN
Masalah Maksimasi
Untuk menyelesaikan masalah maksimasi maka programasi linear harus lebih dahulu ditulis dalam bentuk standar. Dengan bentuk standar dimaksudkan adalah permasalahan programasi linear yang berwujud permasalahan maksimasi dengan batasan-batasan (kendala) yang bertanda kurang dari
Matriks eselon dan eselon tereduksi.. serta operasi eliminasi gauss dan gauss-jordan
gunakanlah presentasi berikut dg bijak dan sebagai sumber inspirasi.
^_^ saya mahasiswa madura yang sekarang kuliah di UNIVERSITAS MADURA jurusan FKIP MATEMATIKA
Jl. Raya Panglegur KM 3,5 pamekasan
Come join us..
Project Studi Kasus Toko Langganan Sistem Informasi AkuntansiRaysha md
Sistem Informasi Akuntansi (Revenue Cycle) yang mengangkat tema tentang proses penjualan pada toko perhiasan. terdapat analisa kelemahan serta dilengkapi diagram Docflow, Sysflow dan DFD
Leave comment untuk kemajuan saya :)
Mata kuliah Struktur Diskrit merupakan salah satu mata kuliah fundamental dalam bidang ilmu komputer dan matematika. Mata kuliah ini membahas tentang konsep-konsep dasar dalam matematika diskrit yang penting untuk memahami dan menganalisis algoritma, struktur data, dan berbagai masalah komputasi lainnya. Berikut adalah penjelasan mengenai topik-topik yang biasanya dicakup dalam mata kuliah Struktur Diskrit:
1. **Logika Matematika**:
- Logika proposisional dan logika predikat adalah bagian penting dari mata kuliah Struktur Diskrit. Mahasiswa akan mempelajari tentang konsep proposisi, tabel kebenaran, hukum logika, argumen logis, dan bukti matematika.
2. **Kombinatorika**:
- Kombinatorika mencakup studi tentang penghitungan, permutasi, kombinasi, dan ruang sampel. Mahasiswa akan mempelajari teknik-teknik perhitungan, seperti aturan perkalian, aturan penjumlahan, dan prinsip inklusi-eksklusi.
3. **Teori Graf**:
- Teori Graf mempelajari tentang struktur matematika yang terdiri dari simpul-simpul yang terhubung oleh sisi-sisi. Mata kuliah ini mencakup topik-topik seperti jenis-jenis graf, representasi graf, lintasan dan sirkuit, serta algoritma terkait seperti algoritma pencarian lintasan terpendek.
4. **Aljabar Boolean**:
- Aljabar Boolean membahas tentang struktur aljabar yang mendasari logika digital. Mahasiswa akan mempelajari tentang fungsi Boolean, operator logika, ekspresi Boolean, dan penjelmaan rangkaian logika menggunakan aljabar Boolean.
5. **Teori Bilangan**:
- Teori Bilangan mencakup studi tentang sifat-sifat dan struktur bilangan bulat. Mahasiswa akan mempelajari tentang bilangan prima, pembagian, teorema dasar aritmatika, teorema Euklides, serta masalah-masalah terkait seperti faktorisasi dan kongruensi.
6. **Analisis Kombinatorial**:
- Analisis Kombinatorial membahas tentang penghitungan yang lebih dalam terkait dengan struktur diskrit, seperti permutasi berulang, kombinasi dengan pengulangan, dan berbagai teknik penghitungan yang kompleks.
7. **Rekursi dan Induksi Matematika**:
- Rekursi dan induksi matematika adalah teknik penting dalam pembuktian matematika dan desain algoritma. Mahasiswa akan mempelajari tentang definisi rekursif, metode induksi matematika, serta penerapannya dalam analisis algoritma.
Mata kuliah Struktur Diskrit sangat penting dalam pembelajaran ilmu komputer karena memberikan dasar matematika yang kuat untuk memahami dan menganalisis algoritma, struktur data, dan masalah-masalah komputasi lainnya. Pemahaman yang baik tentang konsep-konsep dalam Struktur Diskrit akan membantu mahasiswa dalam memecahkan masalah, merancang algoritma yang efisien, dan memahami prinsip-prinsip dasar dalam ilmu komputer.
Algoritma Dijkstra merupakan salah satu varian bentuk algoritma populer dalam pemecahan persoalan yang terkait dengan masalah optimisasi dan bersifat sederhana.
Algoritma ini menyelesaikan masalah sebuah lintasan terpendek (panjang minimum) dari vortex A ke vortex Z dalam graph berbobot, bobot tersebut adalah bilangan bernilai non-negatif yang dalam simbol matematikanya adalah [0, Infinity).
SETISI 2015 : Perbandingan Biaya Transportasi Barang Dengan Metode Vogel Appr...Teddy Marcus
Seminar Teknik Informatika dan Sistem Informasi 2015 (SeTISI 2015). Seminar Nasional yang diadakan oleh Fakultas Teknologi Informasi, Universitas Kristen Maranatha pada hari Kamis 9 April 2015 di UK.Maranatha Jl. Suria Sumantri 65 Bandung.
Web:
http://setisi.itmaranatha.org/
https://www.facebook.com/setisi.maranatha
1. ALGORITMA MENCARI LINTASAN TERPENDEK
DIJKSTRA, FLOYD-WARSHALL, dan BELLMAN-
FORD
oleh :
Cut Agusniar (371994)
Husna Gemasih (371982)
Laili Wahyunita (371985)
2. Point of overview
Introduction of each algorithms
Detail and complexity
Sample case studi for each algorithms
3. Permasalahan Pencarian Rute
Terpendek
Masalah rute terpendek berkaitan dengan
penentuan busur-busur yang hubungkan dalam
sebuah jaringan yang secara bersama-sama
membentuk jarak terdekat diantara sumber dan
tujuan. Sehingga ada beberapa macam
persoalan rute terpendek yang dapat dicari:
1.Lintasan terpendek antara dua buah simpul
tertentu (a pair shortest path).
2.Lintasan terpendek antara semua pasangan
simpul (all pairs shortest path).
3.Lintasan terpendek dari simpul tertentu ke
semua simpul yang lain (single-source shortest
path).
4.Lintasan terpendek antara dua buah simpul
yang melalui beberapa simpul tertentu
(intermediate shortest path).
5. Introduction Dijkstra’s Algorithm
Ditemukan oleh Edger Dikstra.
Algoritma pencarian dimulai dari titik
awak ke titik lainnya pada sebuah
directed graph dengan bobot-bobot sisi
yang bernilai positif.
Menurut Chamero, 2006:
“algoritma Dijkstra merupakan alogoritma
yang paling sering digunakan dalam
pencarian rute terpendek, dengan
menggunakan simpul-simpul sederhana
pada jaringan jalan yang tidak rumit.
6. Cont..
Algoritma Dijkstra menggunakan prinsip
greedy dalam mencari solusi yaitu
mencari solusi optimum pada setiap
langkah yang dilalui.
Cara kerja algoritma ini hampir sama
dengan algoritma BFS dengan antrian
priority queue, jadi hanya simpul prioritas
tinggi yang ditelusuri.
Algoritma ini membandingkan setiap nilai
dari simpul pada satu level, dan akan
dibandingkan lagi untuk rute yang baru.
7. Detail and complexity of Dijkstra
Algorithm
Secara umum urutan logika algoritma ini adalah sebagai
berikut:
1. Beri nilai bobot (jarak) untuk setiap titik ke titik lainnya, lalu
set nilai 0 pada node awal dan nilai tak hingga terhadap
node lain (yang belum terisi).
2. Set semua node “Belum terjamah” dan set node awal
sebagai “Node keberangkatan”.
3. Dari node keberangkatan, pertimbangkan node tetangga
yang belum terjamah dan hitung jaraknya dari titik
keberangkatan.
4. Setelah selesai mempertimbangkan setiap jarak terhadap
node tetangga, tandai node yang telah terjamah sebagai
“Node terjamah”. Node terjamah tidak akan pernah di cek
kembali, jarak yang disimpan adalah jarak terakhir dan
yang paling minimal bobotnya.
5. Set “Node belum terjamah” dengan jarak terkecil (dari node
keberangkatan) sebagai “Node Keberangkatan” selanjutnya
dan lanjutkan dengan kembali ke step 3
8. Cont..
Kompleksitas algoritma Dijkstra
adalah O(n2), dengan n adalah jumlah
simpul pada graf. Kompleksitas ini
bisa diperbaiki dengan penggunaan
struktur data senarai ketetanggaan
(adjacency list) atau antrian prioritas
(priority queue) untuk memperoleh
kompleksitas O((m+n) log n
9. Sample case studi with Dijkstra
Algorithm
Menentukan rute terpendek untuk perjalanan
antar kota. Pada graph di bawah dengan
menggunakan Dijkstra dapat dicari rute
terpendek antara kota A ke kota C:
10. Cont..
Tahapan penulusuran jalur dengan Dijkstra
Tahap 1:
Dari kota A, orang tersebut akan memilih kota F dengan bobot
minimum dari kota A (30 km).
Tahap 2:
Dari kota F, orang tersebut kemudian memilih kota E
yang memiliki bobot minimum dari kota F (26 km).
Tahap 3:
Dari kota E, orang tersebut akan melanjutkan
perjalanan ke kota D (satu-satunya simpul yang
terhubung)
Tahap 4:
Dari kota D, orang tersebut lalu melanjutkan
perjalanan dan sampai ke kota C.
11. Cont..
Total jarak yang ditempuh oleh orang tersebut adalah = 97 km
dengan jalur (A – F – E – D – C). Dalam
representasi graf, warna merah pada sisi graf menunjuk ke jalur
terpendekmenurut algoritma Dijkstra.
Kelemahan algoritma ini adalah semakin banyak titik akan semakin
memakan waktu proses.
Jumlah titik menentukan tingkat efektifitas dari algoritma djikstra.
13. INTRODUCTION FLOYD-WARSHALL
ALGORITHM
• Algoritma Floyd Warshall adalah
salah satu cabang dari ilmu
matematika yang salah satu
fungsinya adalah untuk
menyelesaikan masalah lintasan
terpendek.
• Dalam Algoritma Floyd terdapat
fungsi (G=V,E) dengan G = graf yang
merupakan kumpulan simpul (nodes)
yang dihubungkan satu sama lain
melalui sisi/busur (edges).
14. • Suatu Graf G terdiri dari dua
himpunan yaitu himpunan V dan
himpunan E.
Verteks (simpul) : V = himpunan
simpul yang terbatas dan tidak
kosong.
Edge (sisi/busur): E = himpunan
busur yang menghubungkan
sepasang simpul.
• Notasi graf: G(V,E) artinya graf G
memiliki V simpul dan E busur.
CONT..
15. CONT..
• Algoritma Floyd membandingkan
semua kemungkinan lintasan pada
graf untuk setiap sisi dari semua
simpul.
• Hal tersebut bisa terjadi karena
adanya perkiraan pengambilan
keputusan (pemilihan jalur
terpendek) pada setiap tahap antara
dua simpul, hingga perkiraan
tersebut diketahui sebagai nilai
optimal.
• Algoritma Floyd yang menerapkan
pemrograman dinamis lebih
menjamin keberhasilan penemuan
solusi optimum untuk kasus
penentuan lintasan terpendek (single
pair shortest path)
• Algoritma ini berjalan dengan waktu
Θ(V3).
16. SAMPLE CASE STUDI WITH
FLOYD-WARSHALL
ALGORITHM
Misalkan terdapat suatu graf berbobot
yang merepresentasikan kondisi
keterhubungan antarkota di suatu
daerah, dengan ilustrasi sebagai
berikut. Misalkan seseorang akan
melakukan perjalanan dari kota A ke
kota C.
19. CONT..
Dari hasil pencarian jalur terpendek dari
A ke C menggunakan algoritma Floyd-
Warshall (pemrograman dinamis),
ditemukan bahwa jarak terpendek dari
A ke C adalah 74km dengan jalur (A – B
– C).
21. Introduction Of Bellman-Ford
Algorithm
Dikembangkan Oleh Richard Bellman
dan Lester Ford
Algoritma ini mirip dengan algoritma
Djikstra tetapi Algoritma ini mampu
menghitung path yang memiliki bobot
negatif, namun waktu yang dibutuhkan
oleh algoritma ini lebih lama dari pada
algoritma Djikstra.
22. Bellman-Ford Algorithm
Algoritma Belman-Ford Yaitu
Algoritma yang digunakan untuk
menghitung jarak terpendek (shortest
path) dari suatu graf berarah.
Algoritma Bellman-ford sangat efisien
digunakan jika ada sisi yang berbobot
negatif.
23. Bellman-Ford Algorithm
Cara kerja algoritma ini dalam mencari jarak
terpendek adalah dengan menghitung setiap
kemungkinan node yang mengarah ke node
tujuan tersebut.
algoritma Bellman-Ford mengembalikan sebuah
nilai Boolean yang mengindikasikan apakah
terdapat siklus berbobot negatif yang dapat
dilalui oleh simpul awal atau tidak. Jika terdapat
siklus negatif algoritma akam mengindikasikan
bahwa tidak terdapat solusi shortest path dan
jika tidak, maka algoritma akan menghasilkan
shortest path beserta bobotnya.
Algoritma ini melakukan iterasi dalam setiap
langkahnya sebanyak n-1, dimana adalah n
jumlah node yang terdapat dalam graf. Dengan
demikian kompleksitas algoritma ini cukup tinggi.
24. Bellman-Ford Algorithm
Kompleksitas waktu dari Algoritma
Bellman-Ford ini dapat dinyatakan
dengan notasi Big O(V.E), V adalah
banyaknya sisi dan E adalah
banyaknya titik.
27. Menghitung Algoritma Bellman-
Ford
Langkah Pertama :
terdapat tiga pilihan
yaitu jalur 6, 4 dan 8.
disini meskipun yang
terkecil adalah 4,
tetapi dalam Bellman-
Ford memperhatikan
juga solusi totalnya
dan memperhatikan
jalur negatif yang
akan dilalui, jalur 6
dipilih karena
kemudian hasilnya
akan lebih sedikit
dibandingkan jalur 4.
29. Menghitung Algoritma Bellman-
Ford
Langkah ketiga :
kita pilih jalur -4,
sehingga sampai
saat ini hasilnya -1,
paling sedikit
dibanding kita
memilih jalur-jalur
yang lain.
31. Menghitung Algoritma Bellman-
Ford
Disini terdapat dua pilihan
jalur yaitu -2 dan -4,
meskipun -4 lebih sedikit dan
akan menghasilkan hasil
yang lebih kecil dibanding
kita memilih -2, namun
harus kita perhatikan
langkah selanjutnya, pada
jalur -4 yang akan kita lewati
akan terjadapat penjumlahan
dengan 4, sehingga
menghasilkan hasil akhir
yaitu -6. sedangakan pada
jalur -2, setelah kita melewati
akan terdapat penjumlahan
dengan 1, sehingga hasilnya
-7, Ini jelas lebih kecil dari
pada jalur lain.
33. References:
Aprian, Raden.2007. 1 Perbandingan Algoritma Dijkstra dan Algoritma Floyd-
Warshall dalam Penentuan Lintasan Terpendek (Single Pair Shortest Path),
Bandung.
Ramadhan, Fahmi, “Algoritma Bellman-Ford dan Floyd-Warshall”, Institute
Teknologi Telkom.
Fauzi, Imam, 2011. “Penggunaan Algoritma Djikstra Dalam Pencarian Rute
Tercepat dan Ruter Terpendek”. Teknik Informatika, UIN Syarif Hidayatullah,
Jakarta.
Khairurrazi Budiarsyah, Dibi, 2010. “Algoritma Djikstra, Bellman-Ford, dan
Floyd-Warshall Untuk Mencari Rute Terpendek dari suatu Graf”. Teknik
Elektro dan Informatika, ITB. Bandung.