Kamis, 25 November 2010

STRUKTUR DATA I

Fibonacci search
Fibonacci search adalah metode pencarian yang diurutkan array menggunakan memecah belah dan menguasai algoritma yang menyempit di lokasi dengan bantuan angka Fibonacci.

Algoritma

  1. mulai;
  2. integer fibonacci;
  3. integer i, max;
  4. cetak masukkan data maksimum:;
  5. selagi (max > 0)
  6. selama ((i = 1; i <= max; i++) maka
  7. cetak hasil :;
  8. cetak ("%d ",fibonacci(i));
  9.  selama (i = 1; i <= max; i++)
  10.     return 0;
  11. integer n;
  12. jika ((n == 0) atau (n == 1))
  13. kembali(n);
  14. maka
  15. return(fibonacci(n-2) + fibonacci(n-1));
  16.  integer i, len = strlen(pesan);
  17.        selama (i = 0; i < len; ++i)
  18.  cetak ("%c",pesan[i]);
  19. delay();
  20.  char *pesan = "Terima Kasih";
  21.  integer i, len = strlen(pesan);
  22. cetak("\n\t      ");
  23. selama(i = 0; i < len; ++i)
  24. cetak("%c",pesan[i]);
  25. Delay();
  26.  cetak("\n");
  27. DisplayLine1();
  28.     cetak("\n");
  29.     integer i;
  30. selama (i = 0; i < 40; ++i)
  31.  cetak("=");
  32. Delay();
  33. integer i;
  34. for(i = 0; i < 40; ++i)
  35.  printf("-");
  36. Delay()
  37.  integer delay = 0;
  38. selagi (delay < 10000000)
  39. ++delay;
  40. selesai;


Source code


#include <stdio.h>
#include <windows.h>

unsigned int fibonacci(int);
void PesanJudul(void);
void PesanFooter(void);
void DisplayLine1(void);
void DisplayLine2(void);
void Delay(void);

int main(int argc, char *argv[]) {
    int i, max;
    PesanJudul();
    printf("\n-> Masukkan batas maksimum : ");
    scanf("%d",&max);
    while(max > 0) {
        DisplayLine2();
        printf("\n-> Hasil :\n");
        for(i = 1; i <= max; i++) {
            printf("%d ",fibonacci(i));
            Delay();
        }
        printf("\n");
        break;
    }
    PesanFooter();
    system("PAUSE");
    return 0;
}

unsigned int fibonacci(int n) {
    if((n == 0) || (n == 1)) {
        return(n);
    } else {
        return(fibonacci(n-2) + fibonacci(n-1));
    }
}

void PesanJudul(void) {
    char *pesan = "Program Deret Bilangan Fibonacci";
    int i, len = strlen(pesan);

    }


void PesanFooter(void) {
    char *pesan = "Terima Kasih";
    int i, len = strlen(pesan);
    DisplayLine1();

}
void DisplayLine1(void) {
    int i;
    for(i = 0; i < 40; ++i) {
        printf("=");
        Delay();
    }
}

void DisplayLine2(void) {
    int i;
    for(i = 0; i < 40; ++i) {
        printf("-");
        Delay();
    }
}

void Delay(void) {
    int delay = 0;
    while(delay < 10000000) {
        ++delay;
    }
}


Capture Aplikasi

 Fibonacci search
Fibonacci search adalah metode pencarian yang diurutkan array menggunakan memecah belah dan menguasai algoritma yang menyempit di lokasi dengan bantuan angka Fibonacci.

Algoritma

  1. mulai;
  2. integer fibonacci;
  3. integer i, max;
  4. cetak masukkan data maksimum:;
  5. selagi (max > 0)
  6. selama ((i = 1; i <= max; i++) maka
  7. cetak hasil :;
  8. cetak ("%d ",fibonacci(i));
  9.  selama (i = 1; i <= max; i++)
  10.     return 0;
  11. integer n;
  12. jika ((n == 0) atau (n == 1))
  13. kembali(n);
  14. maka
  15. return(fibonacci(n-2) + fibonacci(n-1));
  16.  integer i, len = strlen(pesan);
  17.        selama (i = 0; i < len; ++i)
  18.  cetak ("%c",pesan[i]);
  19. delay();
  20.  char *pesan = "Terima Kasih";
  21.  integer i, len = strlen(pesan);
  22. cetak("\n\t      ");
  23. selama(i = 0; i < len; ++i)
  24. cetak("%c",pesan[i]);
  25. Delay();
  26.  cetak("\n");
  27. DisplayLine1();
  28.     cetak("\n");
  29.     integer i;
  30. selama (i = 0; i < 40; ++i)
  31.  cetak("=");
  32. Delay();
  33. integer i;
  34. for(i = 0; i < 40; ++i)
  35.  printf("-");
  36. Delay()
  37.  integer delay = 0;
  38. selagi (delay < 10000000)
  39. ++delay;
  40. selesai;


Source code


#include <stdio.h>
#include <windows.h>

unsigned int fibonacci(int);
void PesanJudul(void);
void PesanFooter(void);
void DisplayLine1(void);
void DisplayLine2(void);
void Delay(void);

int main(int argc, char *argv[]) {
    int i, max;
    PesanJudul();
    printf("\n-> Masukkan batas maksimum : ");
    scanf("%d",&max);
    while(max > 0) {
        DisplayLine2();
        printf("\n-> Hasil :\n");
        for(i = 1; i <= max; i++) {
            printf("%d ",fibonacci(i));
            Delay();
        }
        printf("\n");
        break;
    }
    PesanFooter();
    system("PAUSE");
    return 0;
}

unsigned int fibonacci(int n) {
    if((n == 0) || (n == 1)) {
        return(n);
    } else {
        return(fibonacci(n-2) + fibonacci(n-1));
    }
}

void PesanJudul(void) {
    char *pesan = "Program Deret Bilangan Fibonacci";
    int i, len = strlen(pesan);

    }


void PesanFooter(void) {
    char *pesan = "Terima Kasih";
    int i, len = strlen(pesan);
    DisplayLine1();

}
void DisplayLine1(void) {
    int i;
    for(i = 0; i < 40; ++i) {
        printf("=");
        Delay();
    }
}

void DisplayLine2(void) {
    int i;
    for(i = 0; i < 40; ++i) {
        printf("-");
        Delay();
    }
}

void Delay(void) {
    int delay = 0;
    while(delay < 10000000) {
        ++delay;
    }
}


Capture Aplikasi

 Fibonacci search
Fibonacci search adalah metode pencarian yang diurutkan array menggunakan memecah belah dan menguasai algoritma yang menyempit di lokasi dengan bantuan angka Fibonacci.

Algoritma

  1. mulai;
  2. integer fibonacci;
  3. integer i, max;
  4. cetak masukkan data maksimum:;
  5. selagi (max > 0)
  6. selama ((i = 1; i <= max; i++) maka
  7. cetak hasil :;
  8. cetak ("%d ",fibonacci(i));
  9.  selama (i = 1; i <= max; i++)
  10.     return 0;
  11. integer n;
  12. jika ((n == 0) atau (n == 1))
  13. kembali(n);
  14. maka
  15. return(fibonacci(n-2) + fibonacci(n-1));
  16.  integer i, len = strlen(pesan);
  17.        selama (i = 0; i < len; ++i)
  18.  cetak ("%c",pesan[i]);
  19. delay();
  20.  char *pesan = "Terima Kasih";
  21.  integer i, len = strlen(pesan);
  22. cetak("\n\t      ");
  23. selama(i = 0; i < len; ++i)
  24. cetak("%c",pesan[i]);
  25. Delay();
  26.  cetak("\n");
  27. DisplayLine1();
  28.     cetak("\n");
  29.     integer i;
  30. selama (i = 0; i < 40; ++i)
  31.  cetak("=");
  32. Delay();
  33. integer i;
  34. for(i = 0; i < 40; ++i)
  35.  printf("-");
  36. Delay()
  37.  integer delay = 0;
  38. selagi (delay < 10000000)
  39. ++delay;
  40. selesai;


Source code


#include <stdio.h>
#include <windows.h>

unsigned int fibonacci(int);
void PesanJudul(void);
void PesanFooter(void);
void DisplayLine1(void);
void DisplayLine2(void);
void Delay(void);

int main(int argc, char *argv[]) {
    int i, max;
    PesanJudul();
    printf("\n-> Masukkan batas maksimum : ");
    scanf("%d",&max);
    while(max > 0) {
        DisplayLine2();
        printf("\n-> Hasil :\n");
        for(i = 1; i <= max; i++) {
            printf("%d ",fibonacci(i));
            Delay();
        }
        printf("\n");
        break;
    }
    PesanFooter();
    system("PAUSE");
    return 0;
}

unsigned int fibonacci(int n) {
    if((n == 0) || (n == 1)) {
        return(n);
    } else {
        return(fibonacci(n-2) + fibonacci(n-1));
    }
}

void PesanJudul(void) {
    char *pesan = "Program Deret Bilangan Fibonacci";
    int i, len = strlen(pesan);

    }


void PesanFooter(void) {
    char *pesan = "Terima Kasih";
    int i, len = strlen(pesan);
    DisplayLine1();

}
void DisplayLine1(void) {
    int i;
    for(i = 0; i < 40; ++i) {
        printf("=");
        Delay();
    }
}

void DisplayLine2(void) {
    int i;
    for(i = 0; i < 40; ++i) {
        printf("-");
        Delay();
    }
}

void Delay(void) {
    int delay = 0;
    while(delay < 10000000) {
        ++delay;
    }
}


Capture Aplikasi


STRUKTUR DATA

SOAL A
1. Jelaskan pengertian dari Struktur Data
2. Terangkan bagaimana hubungan antara Algoritma & Struktur Data
3. Karakteristik Kekurangan dan Kelebihan Dari Struktur data:
– A. Array
– B. Ordered Array
– C. Stack
– D. Queue
4. Jelaskan perbedaan antara metode pengurutan data Buble sort dan Exchange sort
Jawab :
1.      Struktur data adalah cara penyimpanan, penyusunan, dan pengaturan data didalam media penyimpanan computer sehinggga data tersebut dapat digunakan  secara efisien,  struktur data juga bisa berarti tata letak data yang berisi kolom-kolom data, baik itu kolom yang tampak oleh pengguna (user) ataupun kolom yang hanya digunakan untuk keperluan pemrograman yang tidak tampak oleh pengguna.
2.      Hubungan antara Algoritma dan Struktur data ; program adalah kumpulan instruksi computer, sedangkan metode dan tahapan sistematis dalam program adalah Algorima. Program ditulis dengan menggunakan bahasa pemrograman. Jadi bisa kita sebut bahwa program adalah suatu implementasi bahasa pemrograman. Beberapa pakar memberi formula bahwa :
Program = struktur data + Algoritma
Algoritma yang baik tanpa pemilihan struktur data yang tepat akan membuat program menjadi kurang baik, demikian juga sebaliknya.
3.      Kelebihan dan kekurangan dari struktur data :
a.       Array :
-          Kelebihan :
1.      Struktur data paling mudah
2.      Memori ekonomis, bila semua elemen terisi
3.      Waktu akses sama kesetiap elemen
-          Kekurangan :
1.      Boros memori jika banyak elemen yang tidak digunakan
2.      Struktur data statis.
b.      Ordered Array
-          Kelebihan :  lebih cepat dalam urusan pencarian data jika dibandingkan dengan array biasa.
-          Kekurangan : lambat dalam pengisian data dan penghapusan data, selain itu ukurannya tetap, walaupun array tidak terisi penuh.
c.       Stack
-          Kelebihan :
1.      Penambahan dan penghapusan data dapat dilakukan dengan cepat, yaitu O (1)
2.      Selama memori masih tersedia, penambahan data bias terus dilakukan. Dengan demikian tidak ada kekhawatiran terjadinya stack overflow.
-          Kekurangan :
1.      Setiap sel tidak hanya menyimpan value saja, melainkan juga pointer ke sel berikutnya. Hal ini menyebabkan implementasi stack memakai linked list akan memerlukan memori yang lebih banyak dari pada kalau di implementasikan dengan Array.
2.      Tiap elemen pada linked list hanya bisa diakses dengan cara sekuensial, sehingga lambat, yaitu O (n).
d.      Queue
-          Kelebihan :
1.      Data yang pertama masuk maka akan pertama dilayani.

-          Kekurangan :
1.      Data yang terakhir masuk, bila waktu pelayanan habis kemungkinan bisa tidak dilayani.
4.               a.  Metode  pengurutan data Bubble sort membandingkan elemen pertama / terakhir dengan elemen sebelumnya  / sesudahnya, kemudian elemen tersebut akan menjadi pusat (pivot) untuk dibandingkan dengan elemen sebelumnya / sesudahnya lagi, begitu seterusnya .
b.       Exchange sort membandingkan suatu elemen dengan elemen elemen lainya dalam Array tersebut, dan melakukan pertukaran elemen bila perlu. Jadi ada elemen yang selalu menjadi elemen pusat (pivot).
SOAL B
Definisikan sebuah type terstruktur untuk menyatakan data karyawan di sebuah perusahaan. Data Perusahaan terdiri atas field :
- Nomor Induk Karyawan (NIK)
- Nama Karyawan
- Alamat Karyawan
- Gaji Pokok
- Jumlah Anak
[1]Definisikan type data yang cocok untuk tiap fieldnya
[2] Definisikan type terstruktur tersebut untuk menampung 100 data karyawan.

Jawab :
1.      Type data
-          Int NIK
-          Char Nama_Karyawan
-          Char Alamat_Karyawan
-          Long Gaji_Pokok
-          Int Jumlah_Anak
2.      Type terstruktur untuk menampung data 100 karyawan
#Include <conio.h>
#Include <iostream.h>
Void main() {
Struct Karyawan{
Int NIK;
Char Nama_Karyawan[30][30];
Char Alamat_Karyawan;
Long Gaji_Pokok;
Int Jumlah_Anak;
};

Karyawan kry[100];

getch();
};
SOAL C
Diketahui suatu data array dengan element sebagai berikut data = {15,3,8,2 }
Buatlah algoritma dari pengurutan data array tersebut secara ascending
Jawab :
Proses 1 :
15    3     8    2
15    3     2    8
15    2     3    8
2    15     3    8
Proses 2 :
2   15     3    8
2    3     15   8
Proses 3 :
Pengurutan berhenti disini
 
2   3   15   8
2   3   8   15

Maka hasil pengurutannya menjadi [2.3.8.15];


SOAL D:

·         Misal terdapat data sebagai berikut:

Kode
Judul Buku
Pengarang
025
The C++ Programming
James Wood
034
Mastering Delphi 6
Marcopolo
041
Professional C#
Simon Webe
056
Pure JavaScript v2
Michael Bolton

·         Buatlah Algoritma untuk mencari Kunci Kode 041 dengan Metode Interpolation Search.
Jawab :
Posisi = kunci – data (low) / data(high) – data(low) * (high - low) + low
 Diketahui :
Kunci : 041
Low : 0
High : 3
Penyelesaian :
Posisi = 041 – 025 / 056 – 025 * (3 - 0) + 0
            = 16 / 31 * 3
            = 2
Kunci [2] =  kunci pencarian data ditemukan : Profesional C#


 
Powered by Blogger