Thursday, May 22, 2014

berbagi bersama

hari jumat, bangun kesiangan mungkin gara gara malem tidur larut, padahal ngga terlalu larut sih. cuma mendekati subuh :-). pas hp jam udah jam 08.00,  sementara praktikum itu 08.30. aduh !! langsung mikir(mau pulang dulu ngga ya ? ). ah ga usah pulang aja deh ahahaha.. langsung nyari sabun mandi di lab. trus mandi deh 
udah mandi langsung nyebrang lab sebelah dan pas masuk baru ada asdos dan beberapa teman, tanpa pikir panjang langsung duduk di belakang, soalnya koneksi nya kurang sehat wal afiat, di depan gak ada LAN juga, kalo di belakang sih ada lah beberapa , lumayan buat online sama cek mesin soalnya praktikum yang satu ini pengecekannya lewat mesin, tau sendiri kan mesin itu perfectionist, salah titik atau koma aja bermasalah . selang 10 menit lab praktikum langsung penuh dan praktikumnya langsung di buka tuh sama asdos. tanpa basa basi langsung buka notepad dan asdos nerangin materi beserta isinya(kodingannya maksudnya ). yang di depan ngejelasin yang di belakang pada diem,, awalnya ngerti makin lama ko agak pusing ya ? haha mungkin efek sampingnya tapi, telen dulu aja deh soalnya kata dosen itu "materi kuiah itu telen dulu aja, telen bulet bulet, ntar juga ngerti "lama lama makin pusing , udah ah tanya temen aja. nanya temen samping dan ternyata ada pencerahan tuh.... yang di depan terus aja nerangin sambil nanya "sampai sini ada yang ditanyakan ?" pas yang di depan nanya yang di belakang pada  diem. entahlah apa yang mereka pikirkan, ngerti atau ngga ya ? hahaha.... manusiawi

inilah yang d tunggu tunggu, mungkin ahaha  buka cspc ,log in ,buka juga notepad , mulai ngoding deh ....
tapi ngga di koding semua juga deh soalnya mesin udah di jelasin kemarin sama dosen di kelas, beres ngoding langsung cek di cmd tapi masih gagal juga, aduh..... ok lah cek kodingan lagi (ngotak ngatik lama , nanya temen , liat punya temen tapi makin pusing). ah ya udah lah....  mulai cek kodingan lagi. cek lagi di cmd dan outputnya bener, waktu itu
langsung di upload ke cspc... kirim 3 file tersebut, terus klik f5... dan sukses,,, 

deiem dulu bentar ah, ini nih yang ga ada di lingkungan lain kayanya.... bercanda tingkat dewa dan satgu lagi khas dari lingkungan kelas ini awalnya ngomong kemana mana akhir akhirnya masuk ke .A  ahahah
oh iya, hari ini ngebahas graph., graph juga udah di post sih di postingan sebelumnya, ini sorce graph nya

kodingan nya di bagi 3 file. ada header, main, sama mesin.... kalo bingung googling aja atau tanya penulis :-)
------buat main--------
#include "header.h"

int main(){
char abaikan[100];
scanf("%s",&abaikan);
graph G;

createEmpty(&G);
addSimpul('A', &G);  
addSimpul('B', &G); 
addSimpul('C', &G); 
addSimpul('D', &G); 
addSimpul('E', &G);
simpul* begin = findSimpul('A',G);
simpul* end = findSimpul('C',G);
if((begin != NULL)&&(end != NULL)){
addJalur(begin,0,end);
}
end = findSimpul('D',G);
if((begin != NULL)&&(end != NULL)){
addJalur(begin,0,end);
}
begin = findSimpul('B',G);
end = findSimpul('A',G);
if((begin != NULL)&&(end != NULL)){
addJalur(begin,0,end);
}
end = findSimpul('E',G);
if((begin != NULL)&&(end != NULL)){
addJalur(begin,0,end);
}
begin = findSimpul('D',G);
end = findSimpul('B',G);
if((begin != NULL)&&(end != NULL)){
addJalur(begin,0,end);
}
printGraph(G);
// begin = findSimpul('A',G);
// end = findSimpul('C',G);
// if((begin != NULL)&&(end != NULL)){
// addJalur(begin,0,end);
// }
// end = findSimpul('D',G);
// if((begin != NULL)&&(end != NULL)){
// addJalur(begin,0,end);
// }
delSimpul('B', &G);
// begin = findSimpul('D',G);
// end = findSimpul('B',G);
// if((begin != NULL)&&(end != NULL)){
// addJalur(begin,0,end);
// }
printGraph(G);
return 0;
}

-----buat mesin------

#include "header.h"

void createEmpty(graph *G){
(*G).first = NULL;
}

void addSimpul(char kota, graph *G){
simpul* baru = (simpul*)malloc(sizeof(simpul));
baru -> kota = kota;
baru -> next = NULL;
baru -> arc = NULL;
if((*G).first == NULL){
(*G).first = baru;
}else{
/* int status = 0;
simpul* tunjuk = (*G).first;
simpul* akhir = NULL;
while((status == 0)&&(tunjuk != NULL)){
if(tunjuk -> kota = kota){
status = 1;
}else{
akhir = tunjuk;
tunjuk = tunjuk -> next;
}
}
if(status == 0){
akhir -> next = baru;
} */
simpul* akhir = (*G).first;
while(akhir -> next != NULL){
akhir = akhir -> next;
}
akhir -> next = baru;
}
}

void addJalur(simpul* awal, int bobot, simpul* tujuan){
if((awal != NULL)&&(tujuan != NULL)){
jalur* baru = (jalur*)malloc(sizeof(jalur));
baru -> bobot = bobot;
baru -> next = NULL;
baru -> tujuan = tujuan;
if(awal -> arc == NULL){
awal -> arc = baru;
}else{
int status = 0;
jalur* tunjuk = awal -> arc;
jalur* akhir = NULL;
while((status == 0)&&(tunjuk != NULL)){
if(tunjuk -> tujuan == tujuan){
status = 1;
}else{
akhir = tunjuk;
tunjuk = tunjuk -> next;
}
}
// if(status == 0){
// jalur* baru = (jalur*)malloc(sizeof(jalur));
// baru -> bobot = bobot;
// baru -> next = NULL;
// baru -> tujuan = tujuan;
// akhir -> next = baru;
// } 
akhir = awal -> arc;
while(akhir -> next != NULL){
akhir = akhir -> next;
}
akhir -> next = baru;
}
}
}

void delJalur(simpul* awal, simpul* tujuan){
if((awal != NULL)&&(tujuan != NULL)){
jalur* tunjuk = awal -> arc;
jalur* sebelum = NULL;
int status = 0;
while((status == 0)&&(tunjuk != NULL)){
if(tunjuk -> tujuan == tujuan){
status = 1;
}else{
sebelum = tunjuk;
tunjuk = tunjuk -> next;
}
}
if(status == 1){
if(tunjuk = awal -> arc){
if(tunjuk -> next == NULL){
awal -> arc = NULL;
tunjuk -> tujuan = NULL;
free(tunjuk);
}else{
awal -> arc = tunjuk -> next;
tunjuk -> tujuan = NULL;
tunjuk -> next = NULL;
free(tunjuk);
}
}else{
if(tunjuk -> next == NULL){
sebelum -> next = NULL;
tunjuk -> tujuan = NULL;
free(tunjuk);
}else{
sebelum -> next = tunjuk -> next;
tunjuk -> tujuan = NULL;
tunjuk -> next = NULL;
free(tunjuk);
}
}
}
}
}

void delSimpul(char kota, graph *G){
if((*G).first != NULL){
int status = 0;
simpul* cari = (*G).first;
simpul* sebelum = NULL;
while((status == 0)&&(cari != NULL)){
if(cari -> kota == kota){
status = 1;
}else{
sebelum = cari;
cari = cari -> next;
}
}
if(status == 1){
simpul* tunjuk = (*G).first;
while(tunjuk != NULL){
if(tunjuk != cari){
jalur* turun = tunjuk -> arc;
int status2 = 0;
while((status2 == 0)&&(turun != NULL)){
if(turun -> tujuan == cari){
delJalur(tunjuk,cari);
status2 = 1;
}else{
turun = turun -> next;
}
}
}
tunjuk = tunjuk -> next;
}
jalur* hapusaja = cari -> arc;
while(hapusaja != NULL){
delJalur(cari, hapusaja -> tujuan);
hapusaja = cari -> arc;
}
if(cari == (*G).first){
if(cari -> next == NULL){
(*G).first = NULL;
free(cari);
}else{
(*G).first = cari -> next;
cari -> next = NULL;
free(cari);
}
}else{
if(cari -> next == NULL){
sebelum -> next = NULL;
free(cari);
}else{
sebelum -> next = cari -> next;
cari -> next = NULL;
free(cari);
}
}
}
}
}

simpul* findSimpul(char kota, graph G){
simpul* hasil = NULL;
simpul* tunjuk = G.first;
int status = 0;
while((status == 0)&&(tunjuk != NULL)){
if(tunjuk -> kota == kota){
hasil = tunjuk;
status = 1;
}else{
tunjuk = tunjuk -> next;
}
}
return hasil;
}

void printGraph(graph G){
simpul* tunjuk = G.first;
if(tunjuk != NULL){
while(tunjuk != NULL){
printf("Node %c\n",tunjuk -> kota);
jalur *turun = tunjuk -> arc;
while(turun != NULL){
printf("Jalur %c ke %c\n",tunjuk -> kota, turun -> tujuan -> kota);
turun = turun -> next;
}
tunjuk = tunjuk -> next;
}
}else{
printf("Graph kosong");
}
}


----buat header----

#include<stdio.h>
#include<string.h>
#include<malloc.h>

typedef struct smp* alamatsimpul;
typedef struct jlr* alamatjalur;

typedef struct smp{
char kota;
alamatsimpul next;
alamatjalur arc;
}simpul;

typedef struct jlr{
int bobot;
alamatjalur next;
simpul* tujuan;
}jalur;

typedef struct{
simpul* first;
}graph;

simpul* findSimpul(char, graph);


bingung kan ? komenan di posting terpisah ahahah (lagi males ngomen).

ga kerasa udah jam 11. praktikum pun mau ga mau harus di tutup sama asdos, dan kayanya postingan hari ini sampai sini aja dulu deh, bentar lagi jam 12. 

sampai jumpa di postingan berikutnya :-)

keep fighting :-)

No comments:

Post a Comment