Sabtu, 29 Maret 2014

binary tree

saya akan menjelaskan tentang jenis2 binary tree;

Ada 3 jenis tree yaitu :
skewed tree (masing2 punya satu anak di tap turunannya)
perfect tree (masing2 punya 2 anak di setiap turunannya)
complete tree(sebuah bynari tree yang tidak sempurna)

dalam pengaplikasiannya tree juga bisa digunakan dalam oprasi perhitungan seperti:
infix(perhitungan biasa)
=> A + B x C
prefix(perhitungan yang memposisikan tanda oprasi hitungan di depan angka)
=> + A x B C
postfix(perhitungan yang memposisikan tanda oprasi hitungan di belakang angka)
=>A B C x +


Jumat, 21 Maret 2014

linked list part 3


link list
: singgle(next), double(next, prev), multi(left, right, parent, child);
implementasi
: stack(enstack(nambah), destack(ngurang)) , queue(front(depan) , rear(belakang)) ;

berikut saya berikan contoh kodingan program push dalam link list yang nantinya bisa menentukan pisisi pushnya secara manual:

int jumlahData=0

void push(char vegeName[], int qty, int posisi)
{
struct grocery *curr=(struct grocery*)malloc(sizeof(struct grocery));
strcpy(curr->vegeName,vegeName);
curr->qty=qty;

if(head==NULL)
{
head=tail=curr;
tail->next=NULL;
head->prev=NULL;
}
else
{
if(posisi==1)
{

curr->next=head;
head->prev=curr;
head=curr;
head->prev=NULL;
}
else if(posisi==jumlahData+1)
{
tail->next=curr;
curr->prev=tail;
tail=curr;
tail->next=NULL;
}
else
{
temp=head;
int i=1;
while(temp!=tail && i!=posisi-1)
{
temp=temp->next;
i++;
}
curr->next=temp->next;
temp->next->prev=curr;
temp->next=curr;
curr->prev=temp;
}
}
jumlahData++;
}



berikut adalah kodingan program yang inngin menghapus (pop) suatu spesifik data:


void pop(char vegeName[])
{
if(head==NULL)
{
printf("not found");
}
else
{
if(strcmpi(head->vegeName,vegeName)==0)
{
if(head==tail)
{
free(head);
head=tail=NULL;
}
else
{
head=head->next;
free(head->prev);
head->prev=NULL;
}
}
else if(strcmpi(tail->vegeName,vegeName)==0)
{

tail=tail->prev;
free(tail->next);
tail->next=NULL;
}
else
{
temp=head;
int isFound=0;
while(temp!=NULL )
{
if(strcmpi(vegeName,temp->vegeName)==0)
{
isFound=1;
break;
}
temp=temp->next;
}
if(isFound==1)
{
temp->next->prev=temp->prev;
temp->prev->next=temp->next;
free(temp);
}
else
{
printf("\nnot found ");
getch();
}
}
}
}





Jumat, 14 Maret 2014

link list part 2

QUEUE:
adalah sebuah system linked list system yang  menganut system FIFO (first in first out);
queue menggunakan system pushHead dengan popTail selain itu bisa juga menggunakan system pushTail dengan  popHead;
queue menggunakan system priority queue jadi dalam sytem ini kita bisa langsung mensorting node yang di masukan , contoh kodingnya adalah:

void priority(char nama[], int usia){
struct Facebook *curr = (struct Facebook*) malloc(sizeof(struct Facebook));
strcpy(curr->nama,nama);
curr->usia = usia;
if(head == NULL){
head = tail = curr;
head->prev = NULL;
tail->next = NULL;
}else{
if(curr->usia > head->usia){
//pushHead
curr->next = head;
head->prev = curr;
head = curr;
head->prev = NULL;
}else if(curr->usia < tail->usia  ){
//pushTail
tail->next = curr;
curr->prev = tail;
tail = curr;
tail->next = NULL;
}else{
//push mid
struct Facebook *temp=head;
while(temp->next->usia > curr->usia){
temp = temp->next;
}
curr->next = temp->next;
temp->next->prev = curr;
temp->next = curr;
curr->prev = temp;
}
}
}

jadi secara logika bisa disimpulkan sebagai berikut:

//if(strcmp(curr->nama,head->nama) < 0){
// //push head
//}else if(strcmp(curr->nama,tail->nama) > 0){
// //push tail
//}else{
// //push mid

//}

STACK:

adalah sebuah system linked list system yang  menganut system LIFO (last in first out);
stack menggunakan system pushHead dengan popHead selain itu bisa juga menggunakan system pushTail dengan  popTail;

DOUBLE LINKED LIST:
adalah system linked list yang cara menyambungnya mempunyai 2 cara dengan next dan prev;
ini contoh kodingnya:


struct Facebook{
char nama[25];
int usia;
struct Facebook *next,*prev;
}*head,*tail , *curr;






Jumat, 07 Maret 2014

LINKED LIST DI STRUTUR DATA 7-3-2014

linked list : suatu cara membuat kumpulan data yang berisi bermacam-macam data dan bersifat dinamis yang artinya jumlah kumpulan data di dalam memory akan berubah-ubah sesuai jumlah inputan data user;

data- data yang dimasukan dalam linked list di sebut node

example:
struct Mahasiswa{
    char nama[25];
    int usia;
    struct Mahasiswa *next;
}*head, *tail;


linked list dibagi jadi banyak:

1) pushHead/ pushDepan
menambahkan node(data) di awal, jadi setiap node yang ditambah node itu akan di masukan ke awal node;
example:
 void pushDepan(char nama[],int usia){
    struct Mahasiswa *curr = (struct Mahasiswa*) malloc(sizeof(struct Mahasiswa));
    strcpy(curr->nama,nama);
    curr->usia = usia;
    if(head == NULL){
        head = tail = curr;
        tail->next = NULL;
    }else{
        curr->next = head;
        head = curr;
    }
}



2)pushTail/pushBelakang
menambahkan node(data) di akhir, jadi setiap node yang ditambah node itu akan di masukan ke akhir node ;
void pushBelakang(char nama[], int usia){
    struct Mahasiswa *curr = (struct Mahasiswa*) malloc(sizeof(struct Mahasiswa));
    strcpy(curr->nama,nama);
    curr->usia = usia;
    if(head == NULL){
        head = tail = curr;
    }else{
        tail->next = curr;
        tail = curr;      
    }
    tail->next = NULL;
}


3)print/cetak
fungsi ini hanya untuk mencetak linked list;
example:
void print(){
    struct Mahasiswa *curr;
    printf("=====================================================\n");
    printf("| %-23s | %-23s |\n","Nama Mahasiswa","Usia");
    printf("=====================================================\n");




//menggunakan for
    for(curr=head;curr!=NULL;curr=curr->next){
        printf("| %-23s | %-23d |\n",curr->nama,curr->usia);
    }

//menggunakan while
        curr = head;
        while(curr){
            printf("| %-23s | %-23d |\n",curr->nama,curr->usia);
            curr=curr->next;
        }
    printf("=====================================================\n");
}










4)popDepan/popHead
menghapus node yang ada di paling depan;
example:
void popDepan(){
    if(head){
        struct Mahasiswa *curr = head;
        if(head == tail){
            //1
            head = tail = NULL;
            free(curr);
        }else{
            //>1
            head = head->next;
            free(curr);
        }
    }else{
        printf("No more data to be deleted..\n\n");
    }
}



5)popBelakang/popTail
menghapus node yang ada di paling belakang;
void popBelakang(){
    if(head){
        struct Mahasiswa *curr = head;
        if(head == tail){
            //1
            head = tail = NULL;
            free(curr);
        }else{
            //>1
            while(curr->next != tail){
                curr=curr->next;
            }
            tail = curr;
            free(curr->next);
            tail->next = NULL;
        }
    }else{
        printf("No more data to be deleted..\n\n");
    }
}



6)popAll
menghapus semua node yang ada
example:
void popAll()
{
    curr=head;
    while(curr)
    {
        head=head->next;
        free(curr);
        curr=head;
    }
    head=tail=NULL;
}

berikut cara menukar data tanpa menggunakan temporary:
example:
void tukar(int *a, int *b){
    *a ^= *b ^= *a ^= *b;
}
void main()
{
    int angka = 20;
    int angka2 = 30;

    tukar(&angka,&angka2);
    printf("%d %d",angka, angka2);
}

tambahan istilah-istilah :
Queue = awal
Rear=belakang
Circular Queue= antrian yang berputar
FIFO(menganut sistem first in first out)

Stacks:
Top=data / node yang ada di paling atas
instacks=masuk
destacks=keluar
enqueue=Push
dequeue=Pop
LIFO(menganut sistem last in first out)

beda b.tree dan b.s.tree
binary tree: kita tentuin sendiri letaknya dimana
binary search tree memiliki ketentuan bahwa bilangan yang lebih kecil harus disebelah kiri dan mempunyai keuntungan membuat pencarian lebih cepat

Tipe data: float, int, char, long, double,void ,sign, unsign
int= bilangan riil;
long= kapasitasnya (2^32);
float = jumlah angka di belakang koma panjang
double =  jumlah angka di belakang koma dua kali float.
baris=row=record
kolom=field

sumber:
skyconnectiva dan binus

Rabu, 23 November 2011

evalusi materi blog

1.Media blog yang pertama kali di populerkan oleh blogger.com adalah Pyra Lab
2.Salah satu kegunaan blog adalah sebagai alamat website pribadi
3.Sebuah ikatan yang terbentuk dari para blogger berdasarkan kesamaan kesamaan tertentu disebut komunitas blogger 
4.Situs lain selain blogspot.com untuk membuat blog adalah situs http://www.wordpress.com/
5.Blog pertama yang dibuat oleh Marc Andersen tahun 1993 disebut what's new
6. Blog pengganggu di sebut Splogs
7.Blog yang membahas tentang berita, politik, aktivis dan lain sebagainya disebut blog politik. 
8.Blog yang membahas persoalan tentang akademis disebut blog riset.
9.Orang yang menggantungkan hidupnya hanya dari aktivitas ngeblog disebut problogger.
10.Informasi dan opini yang sangat besar dan berulang kali muncul dalam blogsphere disebut blogstorm. 
11.Situs-situs web yang saling berkaitan berkat blog, atau secara total merupakan kumpulan blog sering disebut sebagai blogsphere
12.Yang mencetuskan istilah blog pertama kali adalah Justin Hall
13.Bentuk aplikasi web menyerupai tulisan-tulisan disebut blog
14.Hacker merupakan salah satu ancaman bagi blogger. 
15.Blog yang membahas tentang sesuatu dan focus pada pembahasan tertentu disebut Blog Bertopik.
16.Fitur yang digunakan untuk menambah elemen-elemen halaman blog (html, polling, kalender, slide shoe, dll), pengatur font-color, edit html, dan mengganti template baru dinamakan dashboard.
17.Photobooth bukanlah situs layanan blog gratis. 
18.Pengatur account blog adalah fungsi dari fitur my account.
19.Orang yang menggunakan blog di sebut blogger
20.Aktivitas para blogger meninggalkan tautan di blog atau situs orang lain seraya memberikan komentar disebut blogwalking.
21. mencari musuh melalui blog  bukan keuntungan blog
22.Label di blog disebut juga kategori.
23.Blog yang berisi ratusan link halaman website disebut blog petunjuk. 
24.Blog game bukan lah salah satu dari jenis blog.
25.Aktivitas meng-update sebuah blog dinamakan blogging.
26.Blog dapat di update kapanpun kita mau.
27.Jika ingin menambah entri kita harus memilih menu posting.
28.Blog yang menceritakan tentang perjalanan/travelling disebut blog perjalanan.
29.Literary blog adalah nama untuk blog sastra.
30.Blog merupakan singkatan dari web log

Kamis, 27 Oktober 2011

apa itu Upload?

Mengunggah/Upload adalah proses mengirim data (umumnya berbentuk berkas) dari komputer pribadi ke suatu sistem seperti server web, server PTB atau sistem serupa lainnya yang kemudian akan dipublikasikan di internet baik secara pribadi atau umum (dapat di nikmati oleh semua pengguna internet).

apa itu Update?

 Perintah yang digunakan untuk mendapatkan pembaharuan ( update) terbaru