Anda di halaman 1dari 23

RANGKUMAN MATERI QUIZ LOGIKA & ALGORITMA

Pertemuan 1
Logika diperkenalkan oleh Aristoteles (384-322 SM)
Algoritma diperkenalkan oleh Abu Ja’far Muhammad ibnu Musa Al
Khawarizmi, ilmuan Persia yang menulis kitab al jabr w’al muqbala (rules of
restoration and reduction) sekitar tahun 825 M
Definisi Logika : Ilmu dalam lingkungan filsafat yang membahas prinsip-
prinsip dan hukum penalaran dengan tepat (Rakmat, 2013)
Ilmu yang memberikan prinsip-prinsip yang harus diikuti agar dapat berpikir
valid menurut aturan yang berlaku (Mustofa, 2016)
Definisi Algoritma: Urutan Langkah untuk menyelesaikan masalah matematika
dan logika (Zaman & Wicaksono, 2020)
Deretan intruksi yang jelas untuk memecahkan masalah (Rinaldi munir, 2016)
Sekumpulan intruksi yang jumlahnya terbatas, yang apabila dilaksanakan akan
menyelesaikan suatu tugas tertentu (Sjukani, 2013)
Karakter Algoritma
1. Algoritma harus berhenti setelah mengerjakan sejumlah Langkah terbatas
2. Setiap Langkah harus didefinisikan dengan tepat dan tidak berarti dua
(ambiguous)
3. Algoritma memiliki nol atau lebih masukan (input)
4. Algoritma mempunyai nol atau lebih keluaran (output)
5. Algortima harus sangkil (effective), setiap Langkah harus sederhana sehingga
dapat dikerjakan dalam sejumlah waktu yang masuk akal

Program adalah Kumpulan intruksi-intruksi yang diberikan kepada komputer


untuk melaksanakan suatu tugas atau pekerjaan.
Bahasa pemrograman adalah Bahasa komputer yang digunakan dalam
menulis program. Contoh Bahasa program: Bahasa rakitan (assembly), Fortran,
Cobol, Pascal, C, C++, Basic, Prolog, PHP, Java, Python.
Berdasarkan kedekatan Bahasa pemrograman dikelompokkan menjadi 2 macam
yaitu:
1. Bahasa Tingkat rendah
Bahasa yang dirancang agar setiap intruksinya langsung dikerjakan oleh
komputer, tanpa harus melalui penerjemah. Contoh: Bahasa mesin (sekumpulan
kode biner (0 dan 1))
2. Bahasa Tingkat tinggi
Bahasa jenis ini membuat program menjadi lebih mudah dipahami. Contoh:
Pascal, Cobol, Fortran, Basic, Prolog, C, C++, PHP, Java, Python
Pyhton adalah Bahasa pemrograman Tingkat tinggi.
Dirancang oleh Guido Van Rossum
Python merupakan Bahasa pemrograman yang mudah dipahami karena struktur
sintaknya rapu dan mudah dipelajari. Python banyak digunkaan untuk membuat
aplikasi program seperti: Program GUI (desktop), Aplikasi mobile web, Game,
Hacking dan internet of thing (loT). Python dianjurkan untuk pemula yang
belum pernah coding.
Tahapan Analsisa Algoritma
1. Bagaimana merencanakan suatu algoritma
Dengan menentukan model atau desain untuk menyelesaikan suatu masalah
sebagai sebuah Solusi, sehingga akan banyak terdapat variasi model yang
diambil yang terbaik.
2. Bagaimana menyatakan suatu algoritma
Menentukan model algortima yang digunakan untuk membuat barisan secara
urut agar mendapatkan Solusi masalah. Model algoritma tersebut dapat
dinyatakan dengan pseudocode atau flowchart.
a. Pseudocode (Bahasa semu)
merupakan bentuk informal untuk mendeskripsikan algoritma yang megikuti
struktur Bahasa pemrograman tertentu.
b. Flowchart (Diagram alir)
Penggambaran algoritma secara diagram yang menggambarkan alur susunan
logika dari suatu masalah.
Tujuan pseudocode adalah: Lebih mudah dibaca oleh manusia, lebih mudah
dipahami dan lebih mudah dalam menuangkan ide atau hasil pemikiran.
3. Bagaimana validitas suatu algoritma
Validitassuatu algoritma dengan didapatkan Solusi sebaga penyelesaian dari
masalah
4. Bagaimana menganalisa suatu algoritma
Analisa algoritma dengan melihat waktu tempuh dan jumlah memori yang
digunakan
5. Bagaimana menguji program dari suatu algoritma
Algoritma tersebut diimplementasikan kedalam Bahasa pemrograman missal:
Python. Proses uji algoritma tersebut dengan dua tahap yaitu:
a. Fase debugging
Yaitu fase dari proses program eksekusi yang akan melakukan koreksi terhadap
kesalahan
b. Fase profiling
Yaitu fase yang akan bekerja jika program tersebut sudah benar (telah melewait
fase debugging).
Pertemuan 2

1. Algoritma PE-UBAH
Adalah variable yang nilainya BUKAN konstanta (selalu berubah-ubah sesuai
dengan kondisi variabel terKINI)
2. Algoritma PERTUKARAN
Berfungsi mempertukarkan masing-masing isi variabel sedemikian sehingga
nilai dari tiap variabel akan berubah atau bertukar

Tipe Data pada Python

Boolean : Mempunyai dua nilai yaitu true berniali 1 dan false bernilai 0
String : Terdiri dari karakter/kalimat berupa huruf, angka, dll (diapit tanda
“ atau ‘)
Integer : Menyatakan bilangan bulat
Float : Menyatakan bilangan yang mempunya koma
Complex : Menyatakan pasangan angka real dan imajiner
List :Adalah sebuah array yang berisi kumpulan tipe yang tidak sejenis,
Data untaian yang menyimpan berbagai tipe data, tapi isinya tidak dapat
berubah-ubah
Hexadecimal: Menyatakan bilangan dalam format heksa
Dictionary : Data untaian yang menyimpan berbagai tipe data berupa pasangan
penunjuk dan nilai

Operator Aritmatika & Matematika


1. Penjumlahan (+)
2. Pengurangan (-)
3. Perkalian (*)
4. Pembagian (/)
5. Modulus (sisa bagi) (%)
6. Pemangkatan (**)
7. Pembagian Dimana hasilnya bilangan bulat (//)
Operator Perbandingan
1. Lebih besar dari (>)
2. Lebih kecil dari (<)
3. Sama dengan (==)
4. Tidak sama dengan (!=)
5. Lebih kecil sama dengan (<=)
6. Lebih besar sama dengan (>=)
Operator Bitwise
& = AND
| = OR
~ = NOT
^ = XOR
<< = Gese bit ke kiri
>> = Geser bit ke kanan
Operator AND
Operator AND akan bernilai fasle (0) apabila nilai semua operandnya atau salah
satu bernilai false (0), dan akan bernilai true (1) apabila kedua operandnya true
(1).
Operator OR
Operator Or akan menghasilkan output:
Jika salah satu operand atau kedua operand bernilai true (1) akan menghasilkan
output true (1), jika kedua operand bernilai false (0) maka akan menghasilkan
output false (0).
Operator XOR
Hasil operasi menggunakan operator XOR, yaitu:
 Apabila bit yang dibandingkan nilainya berbeda misalnya 1 (true) dan 0
(false) maka outputnya adalah 1 (true).
 Apabila bit yang dibandingkan nilainya sama misalnya 1 (true) dan 1
(true) atau 0 (false) dan 0 (false) maka outputnya adalah 0 (false)
Fungsi len = untuk menghitung jumlah karakter digunakan fungsi len()
Fungsi index = Untuk mengetahui posisi karakter dalam kalimat
Membuat dokumentasi kode program
Dokumentasi kode program adalah:
Bentuk hard copy dari modul program yang telah ditulis termasuk property
dari kode program tersebut (tanggal dibuat, versi, nama modul, pembuat,
nomor dsb).
Tahapan membuat dikumentasi kode program:
1. Mengidentifikasi kode program
2. Membuat dokumentasi program dengan memberikan penjelasan pada
setiap bari program
3. Melakukan generate dokumentasi
Pertemuan 3

Diagram Alur (Flowchart) adalah suatu diagram yang menggambarkan


susunan logika suatu program.
Simbol-simbol yang digunakan sebagai berikut:
1. Terminal
Sebagai awal (berisi ‘Start’/’Mulai’) dan sebagai akhir (berisi ‘End’/’Stop’)

2. Input/Output
Mmebaca masukan (input) atau menampilkan keluaran (Ouput).

3. Proses/Prosessing
Mengolah data melalui operasi aritmatika dan logika.

4. Decision/(kotak Keputusan)
Befungsi untuk memutuskan arah/percabangan yang diambil sesuai dengan
kondisi yang dipenuhi, yaitu benar/salah.
5. Subroutine/subrutin
Untuk menjalankan proses suatu bagian (sub program) atau prosedur.

6. Onpage Connector
Untuk menghubungkan diagram alur yang terputus Dimana bagian tersebut
masih berada pada halaman yang sama.

7. Flowline/Arus data
Bagian arah intruksi yang dijalankan

8. Offpage Connector
Menghubungkan sambungan dari bagian flowchart yang terputus Dimana
sambungannya berada pada halaman lain.

9. Preparation
Digunakan untuk pemberian harga awal.
Diagram Alir Program Komputer
Suatu program komputer terdiri atas:
1. Pembacaan/pemauskan data kedalam komputer
2. Melakukan komputasi/perhitungan terhadap data tersebut
3. Mengeluarkan/mencetak/menampilkan hasilnya.

Flowchart terdiri dari 3 Struktur


1. STruktur Sequence/Struktur sederhana
Digunakan untuk program yang intruksinya sequential atau urutan
2. Struktur Branching
Digunakan untuk program yang menggunakan pemilihan atau penyeleksian
kondisi (contoh menentukan bilangan genap/ganjil)
3. Struktur Looping
Digunakan untuk program yang intruksinya akan dieksekusi berulang-ulang.
Pertemuan 4

Struktur Branching
1. Struktur Percabangan if
STruktur percabangan if digunakan untuk satu pilihan Keputusan.
Jika kondisi true/benar maka statement dikerjakan.
Jika kondisi false/salah maka statement tidak dikerjakan.
2. Struktur Percabangan if…else
Percabangan if…else akan menyeleksi kondisi jika bernilai true/benar maka
statement1 dijalankan, jika kondisi bernilai false/salah make statement2
dijalankan.
3. Struktur Percabangan if…elif…else
Digunakan untuk menguji lebih dari 2 kondisi, bila ondisi 1 benar maka
statement1 dikerjakan, bila salah menuju ke kondisi 2, bila konidis 2 benar
maka statement2 dikerjakan, jika salah maka statement3 dikerjakan.
4. Struktur Percabangan Nested if (Bersarang)
Kondisi nested if adalah sautu kondisi if didalam kondisi if.
Pertemuan 5

Looping
Instruksi pengulangan (repetition) adalah intruksi yang dapat mengulangi
pelaksanaan sederetan intruksi lain berulang kali sesuai dengan persyaratan
yang ditentukan.
Struktur intruksi perulangan pada dasarnya terdiri atas:
1. Kondisi perulangan. Suatu kondisi yang harus dipenuhi agar perulangan
dapat terjadi.
2. Badan (body) perulangan. Deretan intruksi yang akan diulang-ulang
pelaksaannya.
3. Pemecah (counter) perulangan. Suatu variabel yang nilainya harus berubah
agar perulangan dapat terjadi dan pada akhirnya membatasi jumlah perulangan
yang dapat dilaksanakan.

Bentuk Perulangan pada python


1. Perulangan For
Perulangan yang mengerjakan “bagian pernyataan yang sama” secara berulang-
ulang berdasarkan syarat atau kondisi yang ditentukan.
2. Perulangan While
Perulangan yang mengerjakan perintah selama kondisinya bernilai benar.
3. Loop bersarang (Nested Loop)
Perulangan didalam perulangan.

Perintah BREAK
Berfungsi untuk keluar dari suatu loop for atau while, Looping akan terus
dikerjakan terus sampai dipaksa keluar oleh intruksi break;
Perintah CONTINUE
Fungsi continue akan melakukan pengulangan ulai dari awal lagi
Pertemuan 6

Struktur Rekursif
Rekursif adalah suatu proses yang bisa memanggil dirinya sendiri.
Contoh konsep penggunaan Rekursif:
Masalah : Memotong Roti tawar tipis-tipis sampai habis
Algoritma :
1. Jika roti sudah habis atau pemotongannya sudah paling tipis maka
pemotongan roti selesai.
2. Jika roti masih bisa dipotong, potong tipis dari tepi roti tersebut, lalu lakukan
prosedur 1 dan 2 untuk sisa potongannya.

Contoh Fungsi Rekursif


1. Fungsi Pangkat
Menghitung pangkat n dengan menggunakna konsep rekursif
Secara notasi pemrograman dapat ditulis:
10 0 = 1
10 n = 10 * 10 n-1
> Fungsi pangkat akan memanggil dirinya sendiri, yaitu setiap nilai x dan y di
input akan dikirim ke fungsi pangkat() melalui parameter variabel x dan y.
> Selama nilai y bukan 0 maka fungsi pangkat() akan terus memanggil dirinya
sendiri, dan nilai y akan selalu berkurang 1 (y-1) sampai kondisi terpenuhi dan
perulangan dihentikan.

2. Fungsi Faktorial
0! = 1
N! = N x (N-1) untuk N > 0
Secara notasi pemrograman dapat ditulis sebagai:
FAKT (0) = 1
FAKT (N) = N * FAKT (N-1)

 Fungsi Faktorial adalah fungsi rekursid karena memanggil fungsinya


sendiri.
 Pada saat dijalankan program akan meminta “memasukkan bilangan”
pada variabel bil, kemudian bilangan tersebut akan dikirim ke fungsi
factorial() lewat parameter a.
 Selama nilai a tidak sama dengan 1 maka fungsi factorial akan terus
memanggil dirinya sendiri. Perulangan akan berhenti ketika nilai = 1

3. Fibonancy
Deret Fibonancy: 0,1,1,2,3,5,8,13…
Secara notasi pemrograman dapat ditulis sebagai:
Fibo (1) = 0 & Fibo (2) = 1
Fibo (N) = Fibo (N-1) + Fibo (N-2)

 Merupakan fungsi rekursif yang memanggil dirinya sendiri.


 Bilangan fibonancy adalah bilangan yang memiliki suku awal 0 dan 1,
dan suku berikutnya adalah penjumlahan dari dua suku sebelumnya.
 Fungsi fibonancy akan terus memanggil dirinya ketika (nilai N) bukan
bernilai 0 atau 1 dengan melakukan proses penjumlahan (fibonancy(n-1)
+ fibonancy(n-2)).
Pertemuan 9
Array adalah jenis variabel yang dapat digunakan untuk menyimpan sejumlah
data dengan tipe yang sama
Array disebut juga table, vector, atau larik

Dapat melakukan loop atau pengulangan melalui elemen didalam array dengan
mudah dan mengambil nilai yang diperlukan hanya dengan menntukan nomor
indeks.

Dimensi Array terdiri dari:


1. Array Dimensi Satu
Sebuah variabel yang menyimpan sekumpulan data yang memiliki tipe sama
dan elemen yang akan diakses hanya melalui 1 indeks atau subskrip
2. Array Dimensi Dua
Array dimensi duat atau diebsut sebagai array bersarang atau nested list, array
dimensi dua terdiri dari baris dan kolom.

Pertemuan 10
Metode D dan C
Metode D and C menggunakan Teknik rekursif yang membagi masalah menjadi
dua atau lebih submasalah dengan ukuran yang sama. Masalah umum untuk
Teknik ini seperti pengurutan, perkalian. (Merge sorting, Quick sorting, Binary
Search, Teknik D & C)

Divide
Memilah data nilai elemen-elemen dari rangkaian data menjadi dua bagian dan
mengulangi pemilahan hingga satu elemen terdiri maksimal dua nilai.
Conquer
Mengurutkan masing-masing data nilai elemen

Merge sort
Menggabungkan dua array yang sudah terurut, metode merge sort merupakan
metode yang membutuhkan fungsi rekursif untuk penyelesaiannya.

Quick sorting
Merupakan metode yang tercepat, Quicksort diperkenalkan oleh C.A.R. Hoare.
Konsepnya membuat bagian-bagian, dan sort dilakukan perbagian, pada
algoritma Quicksort, pemilihan pivot merupakan hal yang menentukan apakah
algoritma Quicksort tersebut akan memberikan performa terbaik atau terburuk.

Binary search
Digunakan untuk mencari sebuah data pada himpunan data-data yang tersusun
secara urut, yaitu data yang telah diurutkan dari besar ke kecil/sebaliknya.
Proses dilaksanakan pertama kali pada bagian Tengah dari elemen himpunan,
jika data yang dicari ternyata < elemen bagian atasnya, maka pencarian
dilakukan bagian Tengah ke bawah.

Teknik D & C
Dengan prinsip dasar metode Divide & Conquer akan dapat dipecahkan suatu
permasalahn proses searching elemen max & min dengan Teknik D and C,
menghasilkan Solusi optimal menemukan nilai Maximum dan Minimum.
Lalu proses tree cal dari setiap elemen yang dituunjuk pada bagan tree tersebut
diatas. Dengan cara, membalik terlebih dahulu posisi tree dari bawah ke atas.
Lalu mengisinya dengan elemen-elemennya sesuai dnegan bagan tree.

Pertemuan 11
Pengertian Sorting (Selection sort, Bubble sort, Insection sort)
Sorting adalah proses pengaturan sederetan data ke dalam suatu urutan atau
susunan urutan tertentu. Data yang diurutkan dapat berupa data bilangan, data
karakter maupun data string.
Hal yang mempengaruhi kecepatan algoritma sorting:
Jumlah operasi perbandingan dan jumlah operasi pemindahan data.

Selection Sort
Teknik pengurutan dengan cara pemilihan elemen atau proses kerja dengan
memilih elemen data terkecil untuk kemudian dibandingkan dan ditukarkan
dengan elemen pada data awal dst s/d seluruh elemen sehingga menghasilkan
pola data yang telah disorting.
1. Pengecekan dimulai dari data ke-1 sampai dengan data ke-n
2. Tentukan index bilangan dengan nilai terkecil dari data bilangan tersebut.
3. Tukar bilangan pada index tersebut dengan bilangan pada posisi awal iterasi
(I = 0 untuk bilangan pertama) dari data bilangan tersebut.
4. Ulangi Langkah diatas untuk bilangan berikutnya (I – I+1) sampai n-1 kali.

Bubble Sort
Metode pengurutan dengan membandingkan data nilai elemen yang sekarang
dengan data nilai elemen-elemen berikutnya.
Pembandingan elemen dapat dimulai dari awal atau mulai dari paling akhir.
Apabila elemen yang sekarang lebih besar (untuk urut menurun) atau lebih kecil
(untuk urut menurun) dari elemen berikutnya, maka posisinya ditukar, tapi jika
tidak maka posisinya tetap
1. Pengecekan mulai dari data ke-1 sampai data ke-n.
2. Bandingkan data ke-1 dengan data sebelahnya (ke-2).
3. Jika lebih besar maka pindahkan bilangan tersebut dengan bilangan yang ada
didepannya.
4. Jika lebih kecil maka tidak terjadi pemindahan.
5. Ulangi Langkah 1 s/d sebanyak n-1 kali dengan jumlah data dikurang 1 setiap
iterasi.

Insertion Sort
Pengurutan data yang membandingkan data dengan dua elemen data pertama,
kemudian membandingkan elemen-elemen data yang sudah diurutkan,
kemudian perbandingan antara data tersebut akan terus diulang hingga tidak ada
elemen data yang tersisa.
Mirip dengan cara mengurutkan kartu, perlembar yang diambil dan disisipkan
(insert) ke tempat yang seharusnya.
1. Index awal adalah data ke-2
2. Pengecekan mulai dari data ke-1 sampai data ke-(index 1).
3. Bandingkan data pada posisi index dengan data pengecekan.
4. Jika data pada posisi index lebih kecil maka data tersebut dapat disisipkan
sesuai dengan posisi saat pengecekan kemudian geser data sisanya.
5. Ulangi Langkah diatas untuk index berikutnya (I = I+1) sampai n-1 kali.

Kesimpulan
Bubble sorting membutuhkan waktu komputasi paling lama, Insertion dan
selection sort memiliki komplesitas yang sama dengan Bubble sort, tetapi
waktunya lebih cepat.

Pertemuan 11
Teknik Searching
Ialah Teknik dalam memilih dan menyeleksi sebuah elemen dari beberapa
elemen yang ada.
a. Teknik Linear/Sequential Search
Pencarian yang dimulai dari record-1 diteruskan ke record selanjutnya yaitu
record-2, ke-3…, sampai diperoleh isi record sama dengan informasi yang
dicari (nilai x).
Kecepatan waktu pencarian tergantung pada: Jumlah elemen data dan posisi
data yang dicari
b. Teknik StraitMAXMIN
Menentukan atau mencari elemen max dan min. pada himpunan yang berbentuk
array linear.
Analisis waktu tempuh/time complexity yang digunakan untuk menyelesaikan
pencarian hingga mendapatkan Tingkat kompleksitas yang terbagi atas best
case, worst case dan average case.
Best Case
- Pada kasus ini keadaan tercapai jika elemen pada himpunan A disusun
secara increasing (menaik).
- Dengan perbandingan waktu n-1 kali satuan operasi.
- Kondisi pencarian yang tercepat atau terbaik.
Worst Case
- Pada kasus ini terjadi jika elemen dalam himpunan nilai yang terbesar
berada di paling depan atau disusun secara decreasing (menurun).
- Dengan operasi perbandingan sebanya 2(n-1) kali satuan operasi.
- Kondisi pencarian terlama atau terburuk.
Average Case
- Digunakan untuk memprediksi jumllah Langkah atau operasi jika
pencarian elemen MaxMin dilakukan pada elemen dalam himpunan yang
tersusun secara acak (tidak decreasing atau tidak increasing).
- Kondisi pencarian acak
*note
Penggunaan average case digunakan untuk membandingkan algoritma Dimana
jika terjadi perbedaan nilai yang lebih baik antara best case dan worst case
seperti merge sort dan quick sort. Dimana best case lebih baik quick sort namun
worst case lebih baik merge sort sehingga untuk menentukan algoritma terbaik
dilakukan perbandingan average case (tidak dibahas karena merupakan analisis
algoritma yang lebih mendalam).

Kesimpulan
- Setiap algoritma bisa dianalisis Langkah operasi yang dilakukan untuk
menentukan kompleksitasnya.
- Untuk menyatakan suatu algoritma lebih baik bisa dilakuka dengan
membandingkan kompleksitas algoritma tersebut secara menyeluruh.
- Jika terjadi perbedaan nilai yang lebih baik antara Best Case dan Worst
Case, maka untuk menentukan algoritma terbaik bisa dilakukan
perbandingan Average Case.

Pertemuan 13
- Greedy diambil dari Bahasa inggris berarti rakus, tamak, loba, serakah.
- Prinsip greedy: “Take what you can get now!”.
- Algoritma greedy membentuk Solusi Langkah-perlangkah.

Strategi pencarian untuk masalah optimasi berbasis prinsip: pada setiap tahap,
pilih Solusi paling baik. Dengan harapan, semua tahapan ini akan menemukan
Solusi terbaik untuk masalah tersebut. Algoritma greedy termasuk sederhana
dan tidak rumit.
Untuk mendapatkan Solusi optimal dari permasalah yang mempunya dua
kriteria, yaitu:
1. Fungsi tujuan/utama.
2. Nilai pembatas (constrain).

Proses Kerja Metode Greedy:


Untuk menyelesaikan suatu permasalahan dengan n input data yang terdiri dari
beberapa fungsi pembatas dan 1 fungsi tujuan yang diselesaikan dengan
memilih beberapa Solusi yang mungkin (feasible solution/feasible sets), yaitu
bila telah memnuhi fungsi tujuan/obyektif.

1. Optimal On Tape Storage Problem


Permasalahan bagaimana mengoptimalisasi storage/memory dalam komputer
agar data yang disimpan dapat termuat dengan optimal.
2. KNAPSACK Problem
Knapsack adalah tas atau karung, Karung digunakan memuat objek. Tentunya
tidak semua objek dapat ditampung didalam karung.

Pertemuan 15
Graph merupakan cabang matematika yang dapat diterapkan dalam kehidupan
sehari-hari, teori graph dapat memecahkan banyakk masalah yang ada.
Graph digunakan untuk bermacam-macam disiplin ilmu dan kehidupannya
sehari-hari. Graph digunakan di berbagai bidang (kimia, ekologi, genetika,
olahraga, transportasi, kartografi, dan jaringan komputer) untuk memodelkan
masalah.

1. Travelling Salesman
Untuk menentukan waktu perjalanan seorang salesman seminimal mungkin.
2. Minimun Spanning Tree
Mencari minimum biaya (cost) spanning tree dari setiap ruas (edge) graph yang
membentuk pohon (tree).

Solusi dari permasalahan ini:


a. Dengan memilih ruas suatu graph yang memnuhi kriteria dari optimisasi yang
menghasilkan biaya minimum
b. Penambahan dari setiap ruas pada seluruh ruas yang membentuk graph akan
menghasilkan nilai/biaya yang kecil (minimum cost).

Kriteria dari minimum spanning tree, yaitu:


1. Setiap ruas pada graph harus terhubung (connected).
2. Setiap ruas pada graph harus mempunya nilai (label graph).
3. Setiap ruas pada graph tidak mempunya arah (graph tidak berarah).

Shortest Path Problem


Kriteria untuk permaslaahan Shortest Path Problem tersebut:
1. Setiap ruas pada graph harus mempunya nila (label graph).
2. Setiap ruas pada graph tidak harus terhubung (unconnected).
3. Setiap ruas pada graph tersebut harus mempunya arah (graph berarah).
Coloring (PEWARNAAN)
- Problema pemberian warna kepada semua simpul, sedemikian sehingga
2(dua) simpul yang berdampingan (ada ruas menghubungkan ke dua
simpul tersebut) mempunyai warna yang berbeda.
- Banyak warna yang dipergunakan, diminta seminimal mungkin.

Anda mungkin juga menyukai