Kamis, 17 Februari 2011

tugas UAS Struktur Data kemarin

Leave a Comment
Pas UAS Struktur Data kemarin dapet tugas bikin aplikasi menggunakan struktur data Depth First Search..(untuk lebih jelasnya tentang apa itu DFS, lihat disini: http://ifrozi.wordpress.com/2008/01/08/depth-first-search/ )kemudian saya dan rekan saya memutuskan untuk membuat aplikasi tentang pencarian kota karena kami pikir itu yang paling dekat dan bersangkutan langsung dengan materi.

deadline pengumpulan + presentasi tugasnya kurang dari seminggu (parah lah, lebih pendek seminggu daripada tugas UTS). Pontang-panting, grusa-grusu , dan rada ngawur ngerjainnya. Akhirnya pada hari Hnya inilah yang kami kumpulkan dan presentasikan:


source code untuk kelas DFS:

package dfc;
import javax.swing.*;
import java.util.*;
import java.io.*;
/**
*
* @author Nursih
*/
class TSP {
String from;
String to;
int distance;
boolean skip;

TSP(String f, String t, int d) {
from = f;
to = t;
distance = d;
skip = false;
}
}
public class Depth {
final int MAX = 100;
TSP jalur[] = new TSP[MAX];
int noJalur = 0;
Stack btStack = new Stack();

public class deklarasi{
}
public static void main(String args[]) {
String to, from;
Depth dn = new Depth();
System.out.println("silahkan pilih kota tujuan anda :");
System.out.println(" ");
System.out.println("Bogor ke Bandung ");
System.out.println("bandung ke cianjur");
System.out.println("bandung ke jakarta");
System.out.println("jakarta ke bogor");
System.out.println("jogja ke bandung");
System.out.println("jogja ke jakarta" );
System.out.println("cianjur ke jakarta");
System.out.println("jogja ke semarang");
System.out.println("bandung ke semarang");
System.out.println("jakarta ke semarang");
System.out.println("surabaya ke jakarta");
System.out.println("bandung ke surabaya");
System.out.println(" ");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
dn.setup();
try {
System.out.print("Kota Awal: ");
from = br.readLine();
System.out.print("Kota Tujuan: ");
to = br.readLine();
dn.isflight(from, to);
if (dn.btStack.size() != 0)
dn.route(to);
} catch (IOException exc) {
System.out.println("Error on input.");
}
}
void setup() {
addJalur("bogor", "bandung", 25);
addJalur("bandung", "cianjur", 50);
addJalur("bandung", "jakarta", 125);
addJalur("jakarta", "bogor", 150);
addJalur("jogja", "bandung", 200);
addJalur("jogja", "jakarta", 250);
addJalur("cianjur", "jakarta", 300);
addJalur("jogja", "semarang", 250);
addJalur("bandung", "semarang", 250);
addJalur("jakarta", "semarang", 500);
addJalur("surabaya", "jakarta", 1000);
addJalur("bandung", "surabaya", 900);
}
void addJalur(String from, String to, int dist) {
if (noJalur < MAX) { jalur[noJalur] = new TSP(from, to, dist); noJalur++; } else System.out.println("TSP database penuh.\n");} void route(String to) { Stack rev = new Stack(); int dist = 0; TSP t; int num = btStack.size(); for (int i = 0; i < num; i++) rev.push(btStack.pop()); for (int i = 0; i < num; i++) { t = (TSP) rev.pop(); System.out.print(t.from + " ke "); dist += t.distance; } System.out.println(to); System.out.println("Jaraknya adalah " + dist + " kilometer"); } int match(String from, String to) { for (int i= noJalur-1;i > -1; i--) {
if (jalur[i].from.equals(from) && jalur[i].to.equals(to)&& !jalur[i].skip)
{
jalur[i].skip = true;
return jalur[i].distance; }
}
return 0; }

TSP find(String from) {
for (int i = 0; i < noJalur; i++) { if (jalur[i].from.equals(from) && !jalur[i].skip) { TSP t = new TSP(jalur[i].from, jalur[i].to, jalur[i].distance); jalur[i].skip = true; return t; } } return null; } void isflight(String from, String to) { int dist; TSP t; dist = match(from, to); if (dist != 0) { btStack.push(new TSP(from, to, dist)); return; } t = find(from); if (t != null) { btStack.push(new TSP(from, to, t.distance)); isflight(t.to, to); } else if (btStack.size() > 0) {

t = (TSP) btStack.pop();
isflight(t.from, t.to); }
}
}


kalau di-run jadinya gini:


intinya, aplikasi ini hanya mencari dan memunculkan data yang telah dimasukkan sebelumnya. Sederhana banget. Tak apalah..Alhamdulillah, masih dikasih nilai B sama bapak dosen.

oiya, ni bikinnya pake NetBeans IDE 6.7.1
sebelumnya mau pake yang 6.8 tapi entah mengapa tiba2 aja ngadat..

0 komentar:

Posting Komentar