Jun 14

04 PLT

Kelompok 11 :     

Arvin Darmawan Pena          (1601218230)

Handy Wijaya                               (1601218325)

Kevin Gabrielle Jason            (1601220020)

Iqbal A. Ramadhan                  (1601225684)

Stevanus Fanius                        (1601223205)

  1. Pendahuluan

A.   Latar Belakang

Di jaman modern ini semakin banyak alat-alat elektronik yang kita gunakan. Banyak juga aplikasi yang menjual alat-alat elektronik tapi dengan harga yang cukup tinggi. Oleh karena itu kelompok kami membuat aplikasi MechAnize. Di MechAnize ini harga-harga barangnya termasuk murah, berkualitas tinggi, beragam merk, dan promo-promo yang besar. Berhubungan dengan yang diajarkan oleh mata kuliah sistem multimedia mengenai adobe flash, kami membuat sebuah aplikasi yang berbasis flash dengan menggunakan berbagai aspek dari sisi design UI yang akan memudahkan user dalam mengakses atau menggunakan apliksai yang kami buat.

B.   Tujuan

Tujuan kami membuat aplikasi ini agar user bisa mencari informasi-informasi mengenai alat-alat elektronik yang kami jual dan memiliki harga yang terjangkau serta berkualitas dari berbagai merk alat-alat elektronik yang ada. Dan untuk mempermudah pelanggan untuk membeli alat-alat elektronik yang di jual di MechAnize melalui aplikasi ini.

C.   Manfaat

  •   Mendapatkan barang elektronik dengan harga murah.
  •   Cara pemesanannya yang mudah.
  •  Memberikan pemahaman lebih mengenai cara mengembangkan aplikasi berbasis flash.
  • Memberikan pemahaman mengenai pembuatan sebuah laporan akhir aplikasi.
  • Melatih koordinasi dan kerjasama sesama kelompok.
  • Meningkatkan kreatifitas masing – masing individu.

2. Isi 
A.   Deskripsi

Aplikasi kami adalah aplikasi yang sengaja dibuat untuk membantu penjualan alat-alat elektronik di toko kami. Dan oleh karena itu nama aplikasi kamipun di ambil dari nama toko kami. Aplikasi kami dibuat dengan program Adobe Flash CS3. Di dalam aplikasi kami terdapat penawaran-penawaran yang bisa dilihat di halaman awal. Pada aplikasi kami terdapat halaman Catalog yang berisi tentang informasi barang-barang elektronik yang kami jual. Di halaman Order berisi cara-cara pemesanan dan langkah-langkah untuk membeli barang-barang elektronik yang kami jual. Dan di halaman About Us berisi latar belakang tentang toko kami dan aplikasi kami.

B.   Timeline

Minggu ke-1 Merancang design aplikasi
Minggu ke-2 Membuat design awal dan prototype
Minggu ke-3 Mencari bug dan error pada aplikasi
Minggu ke-4 Menyempurnakan aplikasi

 

C.   Screenshot MechAnize

Awal mulai

awal

Halaman depan

home

Halaman Catalog

catalog

Halaman catalog video

halaman catalog video

Halaman order

order

Halaman About Us

about us

3.   Penutup

Demikian laporan MechAnize yang telah kami susun. Semoga apa yang telah kami hasilkan bermanfaat bagi kami dan pihak-pihak lainnya. Ucapan terima kasih kami ucapkan kepada Bu Yanfi yang telah membimbing kami dalam pelajaran Sistem Multimedia ini, kepada Asisten Lab yang telah mengajarkan kami cara membuat aplikasi dengan flash dan juga kepada pihak-pihak yang telah membantu selama proses pembuatan aplikasi hingga penyusunan laporan ini berlangsung. Tidak lupa kami ucapkan terima kasih dan suka cita karena telah mencoba aplikasi kami.

 

Jun 2

1. Text Classification

adalah tugas menetapkan kategori yang telah ditetapkan untuk dokumen teks bebas. Hal ini dapat memberikan pandangan konseptual koleksi dokumen dan memiliki aplikasi penting dalam dunia nyata.

Sebagai contoh, berita biasanya diselenggarakan oleh kategori subjek (topik) atau kode geografis; makalah akademis sering diklasifikasikan berdasarkan domain teknis dan sub-domain; laporan pasien dalam organisasi kesehatan sering diindeks dari beberapa aspek, menggunakan taksonomi kategori penyakit, jenis prosedur bedah, kode penggantian asuransi dan sebagainya. Aplikasi lain yang luas dari teks kategorisasi adalah spam filtering, di mana pesan email diklasifikasikan ke dalam dua kategori spam dan non-spam, masing-masing.

2. Information Retrieval

Information Retrieval adalah “studi tentang sistem pengindeksan, pencarian, dan mengingat data, khususnya teks atau bentuk tidak terstruktur lainnya.”

[virtechseo.com]

“Information Retrieval adalah seni dan ilmu mencari informasi dalam dokumen, mencari dokumen itu sendiri, mencari metadata yang menjelaskan dokumen, atau mencari dalam database, apakah relasional database itu berdiri sendiri atau database hypertext jaringan seperti Internet atau intranet, untuk teks , suara, gambar, atau data “

[Wikipedia]

Information Retrieval adalah “bidang di persimpangan ilmu informasi dan ilmu komputer.  Berkutat dengan pengindeksan dan pengambilan informasi dari sumber informasi heterogen dan sebagian besar-tekstual. Istilah ini diciptakan oleh Mooers pada tahun 1951, yang menganjurkan bahwa diterapkan ke “aspek intelektual” deskripsi informasi dan sistem untuk pencarian (Mooers, 1951). “

 

Cara Kerja Information Retrieval (IR)

Untuk menemukan informasi relevan yang kita cari, maka kata kunci (Keyword, Kueri) yang dimasukan sebaiknya sesuai dengan informasi yang ingin didapat, lebih baik lagi jika kita memahami penggunaan kata kunci yang tepat. Mengapa demikian ?, karena dengan keyword yang seusai maka proses pencarian dalam index di mesin IR akan cepat, sehingga korpus yang sesuai dengan katakunci yang dimasukan akan ditampilkan kembali kepada si enduser.

  • Keyword, Kueri : adalah inputan kata kunci pencarian yang diberikan pengguna kepada Mesin Pencari (Google, Yahoo, Being, Ask dll);
  • Indexing : proses penyusunan index dari seluruh dokumen pada korpus, yang terdiri dari kata-kata (token)
  • Korpus : adalah kumpulan dokumen yang disalin ke mesin IRMisalnya Google “menjepret” seluruh halaman website yang bisa diakses umum (tanpa login terlebih dahulu) kemudian menyalinnya ke mesin IR di ruang servernya google.

Bagaimana mesin IR menyalin dokumen-dokumen yang berada di dunia maya ?. mesin IR memiliki robot (BOT) sejenis program yang bisa disebut juga dengan crawler, program tersebutlah yang kemudian berfungsi untuk menyalin dokumen / informasi yang berada disalasatu sumber misal website/blog kepada server IR tersebut. Selain melakukan crawling BOT tersebut juga melakukan indexing (pemberian index atau pembaharuan index), index bersisi kata – kata (token) yang terdapat dalam suatu web/blog, lebih simplenya ketika kita akan memposting suatu informasi melualui blog kita selalu di minta memasukan TAG dalam artikel yang akan kita posting, begitulah gambaran indexing dalam google, jadi index yang berada di mesin pencari merupakan kumpulan miliyaran tag tag informasi.

  • Tokenisasi : proses pembentukan token dari suatu dokumen, dengan memecah dokumen menjadi kata-kata, dapat berupa array kata.
  • Retrieving : proses menemukan dokumen dari koleksi sesuai dengan kata kunci (kueri) user

3. HITS Algorithm (Hypertext Induced Topic Search)

Hyperlink-Induced Topic Search (HITS, juga dikenal sebagai hub dan otoritas) adalah algoritma analisis link yang tarif halaman Web, yang dikembangkan oleh Jon Kleinberg. Itu adalah pendahulu untuk PageRank. Ide di balik Hub dan Otoritas berasal dari wawasan tertentu ke dalam penciptaan halaman web ketika Internet awalnya membentuk; yaitu, halaman web tertentu, yang dikenal sebagai hub, menjabat sebagai direktori besar yang tidak benar-benar berwibawa dalam informasi yang diadakan, tetapi digunakan sebagai kompilasi dari katalog yang luas dari informasi yang menyebabkan pengguna langsung ke halaman otoritatif lainnya. Dengan kata lain, sebuah hub baik mewakili halaman yang menunjuk ke halaman lain, dan otoritas yang baik mewakili halaman yang dihubungkan oleh banyak hub berbeda. Dalam algoritma HITS , langkah pertama adalah untuk mengambil halaman yang paling relevan dengan permintaan pencarian . Set ini disebut set akar dan dapat diperoleh dengan mengambil halaman n top dikembalikan oleh algoritma pencarian berbasis teks . Satu set dasar yang dihasilkan dengan menambah set akar dengan semua halaman web yang terhubung dari itu dan beberapa halaman yang memiliki pranala ke itu . Halaman-halaman web di set dasar dan semua hyperlink di antara halaman tersebut membentuk subgraf terfokus . The HITS perhitungan dilakukan hanya pada subgraf terfokus ini . Menurut Kleinberg alasan untuk membangun satu set dasar adalah untuk memastikan bahwa sebagian besar ( atau banyak ) dari otoritas terkuat disertakan . Nilai otoritas dan hub didefinisikan dalam hal satu sama lain dalam rekursi bersama. Nilai otoritas dihitung sebagai jumlah dari nilai-nilai hub skala yang mengarah ke halaman tersebut. Nilai hub adalah jumlah dari nilai-nilai otoritas skala dari halaman ini menunjuk ke . Beberapa implementasi juga mempertimbangkan relevansi dari halaman yang terhubung . Algoritma ini melakukan serangkaian iterasi , masing-masing terdiri dari dua langkah dasar :

  • Pembaruan Authority : Perbarui skor Authority setiap node untuk menjadi sama dengan jumlah dari Hub Skor dari setiap node yang menunjuk ke itu . Artinya , node diberi skor otoritas tinggi dengan menjadi terhubung ke halaman yang dikenali sebagai hub untuk informasi.
  • Hub Update: Perbarui setiap node Hub Skor menjadi sama dengan jumlah dari Otoritas Skor dari setiap node yang menunjuk ke . Artinya , node diberi skor tinggi hub dengan menghubungkan ke node yang dianggap otoritas pada subjek .

The Hub skor dan skor Authority untuk node dihitung dengan algoritma berikut :

  • Mulailah dengan setiap node memiliki skor hub dan skor kewenangan.
  • Jalankan Aturan Authority Pembaruan
  • Jalankan Aturan Hub Pembaruan
  • Menormalkan nilai-nilai dengan membagi masing-masing nilai Hub dengan akar kuadrat dari jumlah kuadrat dari semua nilai Hub , dan membagi setiap skor Authority dengan akar kuadrat dari jumlah kuadrat dari semua nilai Authority .
  • Ulangi dari langkah kedua yang diperlukan .

HITS , seperti Page dan Brin PageRank , merupakan algoritma iteratif didasarkan pada keterkaitan dokumen di web . Namun itu memang memiliki beberapa perbedaan utama :

  • Ini adalah permintaan tergantung , yaitu, ( Hub dan Authority ) skor yang dihasilkan dari analisis link dipengaruhi oleh istilah pencarian ;
  • Sebagai sebuah konsekuensi , dieksekusi pada saat permintaan , bukan pada saat pengindeksan , dengan hit terkait kinerja yang menyertai pemrosesan query – waktu .
  • Ini menghitung dua nilai per dokumen , hub dan otoritas , sebagai lawan dari skor tunggal ;
  • Hal ini diproses pada subset kecil dari dokumen ‘ relevan’ (a ‘ subgraph fokus ‘ atau dasar set) , tidak semua dokumen seperti yang terjadi dengan PageRank .

4.Prolog

Prolog adalah bahasa pemrograman logika atau di sebut juga sebagai bahasa non-procedural. Namanya diambil dari bahsa perancis programmation en logique (pemrograman logika). Bahasa ini diciptakan oleh ALAIN COLMERAUER dan ROBERT KOWALSKI sekitar tahun 1972 dalam upaya untuk menciptakan suatu bahasa pemrograman yang memungkinkan pernyataan logika alih-alih rangkaian perintah untuk dijalankan komputer. Berbeda dengan bahasa pemrograman yang lain, yang menggunakan algoritma konvensionl sebagai teknik pencariannya seperti pada Delphi, Pascal, BASIC, COBOL dan bahasa pemrograman yang sejenisnya, maka prolog menggunakan teknik pencarian yang di sebut heuristik (heutistic) dengan menggunakan pohon logika.

 

May 13
  1. Apa yang dimaksud supervised learning, unsupervised learning dan reinforcement learning?berikan contoh masing-masing?

 

  • Supervised Learning adalah proses suatu system mempelajari labeled data sebagai training set yang terdiri dari fitur dan label. Tujuan akhir dari supervised learning adalah untuk mengidentifikasi label input yang baru dengan fitur yang ada pada data baru tersebut.

Contoh : Perceptron, Adaline, Hebbian, Hapfield, Boltzman.

 

  • Unsupervised Learning adalah proses suatu system mempelajari unlabeled data berdasarkan fitur-fitur dari data tersebut, Tujuan akhir dari Unsupervised Learning adalah mengelompok data-data ke dalam suatu grup yang berupa cluster terdiri dari data yang memiliki kemiripan yang sama untuk satu cluster dan apabilan ditemukan perbedaan dapat dikelompokkan ke dalam cluster yang lain atau dapat dianggap sebagai outlier.

Contoh : Hebbian, Competitive, Kohonen, Neocognitron, Learning Vector Quantization (LVQ)

 

  • Reinforcement Learning Pembelajaran mesin metode reinforcement learning menjadi suatu pilihan dalam penentuan pengendalian robot. Metode ini mengasumsikan bahwa lingkungan terdefinisi sebagai himpunan keadaan (states) S dengan agen (robot) memiliki pilihan aksi A dengan jumlah tertentu. Untuk setiap langkah, yang didefinisikan sebagai pembagian waktu secara diskrit, agen melakukan pengamatan terhadap keadaan lingkungan, st ,dan memberikan keluaran berupa aksi, at. Agen mendapatkan suatu reward, R yang menunjukkan kualitas aksi yang diberikan agen berdasarkan ekspektasi pemrogram. Agen kemudian melakukan observasi ulang terhadap lingkungannya, . Keadaan yang dituju dari metode pembelajaran ini ialah mendapatkan experience tuples (st, , , ), dan mendapatkan pembelajaran atas suatu pemetaan keadaan-keadaan untuk mengukur nilai jangka panjang pada keadaan tersebut. Pemetaan tersebut didefinisikan sebagai optimal value function.

Contoh Algoritma : Q-Learnin

 

  1. Apa yang dimaksud dengan Learning Decision Tree dan berikan contohnya?

 

Learning Decision Tree adalah pemetaan mengenai alternatif-alternatif pemecahan masalah yang dapat diambil dari masalah tersebut. Pohon tersebut juga memperlihatkan faktor-faktor kemungkinan/probablitas yang akan mempengaruhi alternatifalternatif keputusan tersebut, disertai dengan estimasi hasil akhir yang akan didapat bila kitamengambil alternatif keputusan tersebut.

 

Contoh :

contoh graf

Beberapa contoh graf

 

conoth graf lengkap

Contoh Graf Lengkap

contoh pohon

Contoh pohon

Mar 27

LAPORAN SISTEM MULTIMEDIA

I.       Pendahuluan

A.   Latar Belakang

Sifat setiap orang sudah tentu berbeda satu sama lainnya. Karena hal tersebut tentu saja banyak tipe – tipe mahasiswa di berbagai kampus. Oleh karena itu kelompok kami akan men-sharing beberapa tipe mahasiswa yang berada di Binus University menurut kelompok kami.

B.   Tujuan

Tujuan kami membuat video ini hanyalah bersifat menghibur dan membagikan informasi kepada siapapun yang melihat video ini. Khususnya inforamasi tentang macam – macam tipe Binusian

C.   Manfaat

–          Membantu kita mempelajari  sistem multimedia khususnya video.

–          Memberikan pemahaman mengenai proses  membuat video

–          Melatih koordinasi dan kerjasama sesama kelompok

–          Meningkatkan kreatifitas masing – masing individu

II.    ISI

A.  Timeline

Minggu ke-1 Pengambilan video
Minggu ke-2 Pengeditan video
Minggu ke-3 Pembuatan laporan

 B.   Storyboard

img017img019img02110153603_10201103030732648_220686368_n10156982_10201103031732673_1149656595_n986793_10201103032772699_427834500_n   10168367_10201103033652721_869304663_n972834_10201103034532743_1328933162_n

C.   Deskripsi Video

Video ini menceritakan tentang tipe-tipe mahasiswa yang ada di Univeritas Bina Nusantara. Dalam kehidupan perkuliahan sehari – hari kelompok kami mendapati ada bermacam – macam kebiasaan mahasiswa Bina Nusantara yang menarik untuk diperhatikan. Untuk memvisualisasikan apa yang telah kelompok kami perhatikan maka dibuatlah video mengenai macam – macam tipe Binusian ini. Terdapat tujuh tipe Binusian yang kelompok kami visualisasikan dalam video ini. Masing – masing tipe akan digambarkan dalam scene yang berbeda – beda. Tipe – tipe Binusian tersebut antar lain :

  1. Binusian Taping Cabut
  2. Binusian Tukang Terlambat
  3. Binusian Titip Taping
  4. Binusian Penjilat
  5. Binusian SKS (sistem kebut sejam)
  6. Binusian Gadget Mania
  7. Binusian Tukang Tidur
  8. Binusian Barisan Belakang
  9. Binusian Rajin

III.  Penutup

Demikian laporan mengenai video tipe – tipe Binusian yang telah kami susun. Semoga apa yang kami telah hasilkan bermanfaat bagi kami dan pihak – pihak lainnya. Ucapan terima kasih kami ucapkan juga kepada pihak – pihak yang telah membantu selaa proses pembuatan video hingga penyusunan laporan ini berlangsung. Tidak lupa kami ucapkan terima kasih dan suka cita karena telah menyaksikan video kami.

 

Anggota Kelompok :

–         Arvin Darmawan Pena          (1601218230)

–         Handy Wijaya                           (1601218325)

–         Kevin Gabrielle Jason           (1601220020)

–         Iqbal A. Ramadhan                (1601225684)

–         Stevanus Fanius                      (1601223205)

Link Video : http://www.youtube.com/watch?v=jdCCiTTJnHM

Mar 18
  1. Apa yang dimaksud Adversarial Search & Constraint Satisfaction Problems? berikan contoh?

–          Adversarial Search

The search tree in adversarial games such as tic-tac-toe consist of alternating levels where the moving (MAX) player tries to maximize fitness and then the opposing (MIN) player tries to minimize it. To find the best move the system first generates all possible legal moves, and applies them to the current board. In a simple game like tic-tac-toe this process is repeated for each possible move until the game is won, lost, or drawn. The fitness of a top-level move is determined by whether it eventually leads to a win.

Contoh : Backgammon, Permainan kartu, Halma, Catur

 

–          Constraint Satifaction Problems

Search can be made easier in cases where the solution insted of corresponding to an optimal path, is only required to satisfy local consistency conditions. We call such problems Constraint Satisfaction (CS) Problems.

Contoh: teka teki silang

2.Apa itu Propositional Logic? berikan contoh?

Propositional (zeroth-order) logic is simply capable of making and verifying logical statements. First-order (and higher order) logics can represent proofs (or increasing hierarchial complexity) – true/false

Contoh :

–   Tanjung karang berada di provinsi Lampung  (Proposisi bernilai benar)

–     Susilo Bambang Yudhoyono adalah presiden AS (Proposisi bernilai salah)

–     1 + 1 =2 (Proposisi  bernilai benar)

–     2 + 2 = 3 (Proposisi bernilai salah)

 

3. Buat coding (Boleh C, C++ atau Java) untuk  Algoritma A & Algoritma A* (A Star)?

Contoh algoritma A dalam Java

package hitungratarata5bil;

import java.io.*;

public class HitungRataRata5Bil {

public static void main(String[] args) {
                                                              double x = 0;
                               int a = 0;
                               BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
                               String strbilangan = null;

                               while (a < 5) {
                                   System.out.print("Masukkan bilangan ke-" + a + " : ");
                                   try {
                                       strbilangan = br.readLine();
                                   } catch (IOException ioe) {
                                       System.out.println("Kesalahan IO, program berhenti");
                                       System.exit(1);
                                   }
                                   x = x + Double.parseDouble(strbilangan);
                                   a = a + 1;
                               }

                               x = x / 5;
                               System.out.println("Rata-rata bilangan yang dimasukkan adalah " + x);        
               }
}

 

Contoh algoritma A * dalam Java

import java.util.Iterator;

import java.util.LinkedList;

import java.util.PriorityQueue;

import java.util.Queue;

 

public class AStar {

private PriorityQueue<Node> openQ;

private Queue<Node> closedQ;

private int [][] map;

private int startX, startY, endX, endY;

private Node endNode;

 

public AStar(int[][]map, int startX, int startY, int endX, int endY) {

openQ = new PriorityQueue<Node>();

closedQ = new LinkedList<Node>();

this.map = map;

this.startX = startX;

this.startY = startY;

this.endX = endX;

this.endY = endY;

endNode = new Node(endX, endY, 0, null);

 

private int manhattanDist(Node curr, Node target) {

int cX, tX, cY, tY;

cX = curr.getX();

tX = target.getX();

cY = curr.getY();

tY = target.getY();

return 10*(Math.abs(cX – tX)+Math.abs(cY – tY));

}

private boolean onClosedList(Node node) {

if(closedQ.isEmpty() == true)

return false;

Iterator<Node> it = closedQ.iterator();

while(it.hasNext()) {

Node nodeCheck = it.next();

if(nodeCheck.getX() == node.getX() && nodeCheck.getY() == node.getY())

return true;

}

return false;

}

private boolean checkAndReplaceOpen(Node node, Node curr, boolean diag) { // true means replaced

Iterator<Node> it = openQ.iterator();

while(it.hasNext()) {

Node nodeCheck = it.next();

if(nodeCheck.getX() == node.getX() && nodeCheck.getY() == node.getY()) {

if(node.getG() < nodeCheck.getG()) {

if(diag == true)

node.setG(curr.getG()+14);

else

node.setG(curr.getG()+10);

node.setF(node.getG() + node.getH());

node.setParent(curr);

return true;

}

return false;

}

}

return false;

}

private void addNeighbors(Node node) {

int x = node.getX();

int y = node.getY();

if((x+1)< map[y].length && map[y][x+1] !=1) {

Node newNode = new Node(x+1, y, map[y][x+1], node);

if(onClosedList(newNode) == false) {

newNode.setG(node.getG()+10);

newNode.setH(manhattanDist(newNode, endNode));

newNode.setF(newNode.getG()+newNode.getH());

if(checkAndReplaceOpen(newNode, node, false) == false)

openQ.add(newNode);

}

}

if((x-1) >= 0 && map[y][x-1] !=1 ) {

Node newNode = new Node(x-1, y, map[y][x-1], node);

if(onClosedList(newNode) == false) {

newNode.setG(node.getG()+10);

newNode.setH(manhattanDist(newNode, endNode));

newNode.setF(newNode.getG()+newNode.getH());

if(checkAndReplaceOpen(newNode, node, false) == false)

openQ.add(newNode);

}

}

 

if((y+1) < map.length && map[y+1][x] !=1) {

Node newNode = new Node(x, y+1, map[y+1][x], node);

if(onClosedList(newNode) == false) {

newNode.setG(node.getG()+10);

newNode.setH(manhattanDist(newNode, endNode));

newNode.setF(newNode.getG()+newNode.getH());

if(checkAndReplaceOpen(newNode, node, false) == false)

openQ.add(newNode);

}

}

if((y-1) > 0 && map[y-1][x] !=1) {

Node newNode = new Node(x, y-1, map[y-1][x], node);

if(onClosedList(newNode) == false) {

newNode.setG(node.getG()+10);

newNode.setH(manhattanDist(newNode, endNode));

newNode.setF(newNode.getG()+newNode.getH());

if(checkAndReplaceOpen(newNode, node, false) == false)

openQ.add(newNode);

}

}

 

if((y+1) < map.length && (x+1) < map[y].length && map[y+1][x+1] !=1) {

Node newNode = new Node(x+1, y+1, map[y+1][x+1], node);

if(onClosedList(newNode) == false) {

newNode.setG(node.getG()+14);

newNode.setH(manhattanDist(newNode, endNode));

newNode.setF(newNode.getG()+newNode.getH());

if(checkAndReplaceOpen(newNode, node, true) == false)

openQ.add(newNode);

}

}

if((y+1) < map.length && (x-1) >= 0 && map[y+1][x-1] !=1) {

Node newNode = new Node(x-1, y+1, map[y+1][x-1], node);

if(onClosedList(newNode) == false) {

newNode.setG(node.getG()+14);

newNode.setH(manhattanDist(newNode, endNode));

newNode.setF(newNode.getG()+newNode.getH());

if(checkAndReplaceOpen(newNode, node, true) == false)

openQ.add(newNode);

}

}

if((y-1) > 0 && (x-1) >= 0 && map[y-1][x-1] !=1) {

Node newNode = new Node(x-1, y-1, map[y-1][x-1], node);

if(onClosedList(newNode) == false) {

newNode.setG(node.getG()+14);

newNode.setH(manhattanDist(newNode, endNode));

newNode.setF(newNode.getG()+newNode.getH());

if(checkAndReplaceOpen(newNode, node, true) == false)

openQ.add(newNode);

}

}

if((y-1) >= 0 && (x+1) < map[y].length && map[y-1][x+1] !=1) {

Node newNode = new Node(x+1, y-1, map[y-1][x+1], node);

if(onClosedList(newNode) == false) {

newNode.setG(node.getG()+14);

newNode.setH(manhattanDist(newNode, endNode));

newNode.setF(newNode.getG()+newNode.getH());

if(checkAndReplaceOpen(newNode, node, true) == false)

openQ.add(newNode);

}

}

}

private Node solve() {

Node startNode = new Node(startX, startY, 0, null);

startNode.setH(manhattanDist(startNode, endNode));

startNode.setF(startNode.getG() + startNode.getH());

openQ.add(startNode);

while(openQ.isEmpty() == false) {

Node currNode = openQ.remove();

closedQ.add(currNode);

if(currNode.getX() == endX && currNode.getY() == endY) {

return currNode;

}

addNeighbors(currNode);

}

System.out.println(“No solution found!”);

return startNode;

}

public LinkedList<Node> algorithm() {

LinkedList<Node> pathr = new LinkedList<Node>();

LinkedList<Node> path = new LinkedList<Node>();

Node addNode = solve();

while(addNode.getParent() != null) {

pathr.add(addNode);

addNode = addNode.getParent();

}

pathr.add(addNode);

while(pathr.isEmpty() == false)

path.add(pathr.removeLast());

return path;

}

public void printList(LinkedList<Node> list) {

Iterator<Node> it = list.iterator();

while(it.hasNext())

System.out.println(it.next());

}

}

Mar 14

Welcome to Binusian blog.
This is the first post of any blog.binusian.org member blog. Edit or delete it, then start blogging!
Happy Blogging 🙂