Tampilkan postingan dengan label Struktur Data. Tampilkan semua postingan
Tampilkan postingan dengan label Struktur Data. Tampilkan semua postingan

Selasa, 07 Januari 2020

Pohon Biner

00.52 1 Comments
  1. Jelaskan secara umum apa yang dimaksud dengan pohon (tree)!
  2. Jelaskan apa yang dimaksud dengan pohon biner!
  3. Berikan contoh implementasi dari pohon biner!

Jawaban : 
1. Tree atau pohon dalam struktur data merupakan salah satu bentuk struktur data tidak linear yang menggambarkan hubungan yang bersifat hirarkis (hubungan one to many) antara elemen-elemen. Tree bisa didefinisikan sebagai kumpulan simpul/node dengan satu elemen khusus yang disebut Root (akar) dan node lainnya terbagi menjadi himpunan-himpunan yang saling tak berhubungan satu sama lainnya (disebut subtree atau cabang).

2.  Pohon biner adalah himpunan simpul yang terdiri dari 2 subpohon (yang disjoint / saling lepas) yaitu subpohon kiri dan subpohon kanan. Setiap simpul dari pohon binar mempunyai derajat keluar maksimum = 2.
Pendefinisian pohon  binar bersifat rekursif. Pohon binar seringkali disajikan dalam bentuk diagram.

3. Dalam kehidupan sehari-hari : Silsilah Keluarga
Dalam pemrograman : Binary Search Tree

Contoh Kodingan :
#include <stdio.h>
#include <stdlib.h>

//inisialisasi struct
struct data{
 int number;
 //pointer untuk menampung percabangan kiri dan kanan
 data *left, *right;
}*root;

//fungsi push untuk menambah data
void push(data **current, int number){
 //jika pointer current kosong maka akan membuat blok data baru
 if((*current)==NULL){
  (*current) = (struct data *)malloc(sizeof data);
  //mengisi data
  (*current)->number=number;
  (*current)->left = (*current)->right = NULL;
 //jika tidak kosong, maka akan dibandingkan apakah angka yang 
 //ingin dimasukkan lebih kecil dari pada root
 //kalau iya, maka belok ke kiri dan lakukan rekursif 
 //terus menerus hingga kosong
 }else if(number < (*current)->number){
  push(&(*current)->left, number);
 //jika lebih besar, belok ke kanan
 }else if(number >= (*current)->number){
  push(&(*current)->right, number);
 }
}

//preOrder : cetak, kiri, kanan
void preOrder(data **current){
 if((*current)!=NULL){
  printf("%d -> ", (*current)->number);
  preOrder(&(*current)->left);
  preOrder(&(*current)->right);
 }
}

//inOrder : kiri, cetak, kanan
void inOrder(data **current){
 if((*current)!=NULL){
  inOrder(&(*current)->left);
  printf("%d -> ", (*current)->number);
  inOrder(&(*current)->right);
 }
}

//postOrder : kiri, kanan, cetak
void postOrder(data **current){
 if((*current)!=NULL){
  postOrder(&(*current)->left);
  postOrder(&(*current)->right);
  printf("%d -> ", (*current)->number);
 }
}

//searching data
void search(data **current, int number){
 //jika pointer current memiliki data
 if((*current)!=NULL){
  //cek, apakah datanya lebih kecil. Jika iya, belok ke kiri
  if(number<(*current)->number){
   search(&(*current)->left,number);
  //jika lebih besar, maka belok ke kanan
  }else if(number>(*current)->number){
   search(&(*current)->right,number);
  //jika sama dengan, maka angka ketemu
  }else{
   printf("Found : %d", (*current)->number);
  }
 //jika tidak ada data lagi (not found)
 }else{
  printf("Not Found.");
 }
}

void main(){
 push(&root, 11);
 push(&root, 22);
 push(&root, 13);
 push(&root, 15);
 push(&root, 9);
 inOrder(&root);
 printf("\n");
 preOrder(&root);
 printf("\n");
 postOrder(&root);
 printf("\n");
 search(&root,91);
 getchar();
}



Daftar Pustaka :

Implementasi Linked List & Sorting

00.37 0 Comments

1. Jelaskan apa kegunaan dari Linked List (diimplementasikan untuk apa)!
2. Jelaskan apa kegunaan dari sortir (diimplementasikan untuk apa)!

Jawaban : 
1. 
- Urutan angka pada keyboard komputer
- Urutan lagu pada playlist Mp3 player
- Penerapan pembelian tiket kereta api, tiket pesawat, tiket kapal laut, pembayaran tiket tol, pembayaran listrik, pembayaran air, dan lain sebagainya

2. 
- Absen Mahasiswa diurutkan berdasarkan NIM  
- Daftar Dosen diurutkan berdasarkan Kode Dosen
- Mengurutkan kartu remi (Insertion Sort)


Jumat, 13 Desember 2019

Penyortian dalam Struktur Data

06.26 0 Comments

  1. Jelaskan fungsi sortir dalam struktur data secara lengkap!
  2. Jelaskan fungsi linked list dalam struktur data secara lengkap!
Jawaban :

1. 
- Memudahkan data untuk dicari 
- Memudahkan data untuk diperiksa
- Memudahkan data untuk dibetulkan jika terdapat kesalahan
- Memudahkan data untuk dihapus jika sewaktu-waktu data tersebut tidak diperlukan lagi
- Memudahkan data untuk menyisipkan data atapun melakukan penggabungan data.

2.
- Memudahkan untuk mengolah data
- Memudahkan untuk melihat alur suatu proses

Senin, 09 Desember 2019

Record

05.54 0 Comments

1.       Jelaskan apa yang dimaksud dan apa fungsi dari record!
2.       Apa fungsi dari field maupun subfield?
3.       Berikan contoh record yang menjelaskan tentang data mahasiswa!

Jawaban
1. Record adalah kumpulan field yang sangat lengkap, dan biasanya dihitung dalam satuan baris atau bisa juga koleksi satuan data yang heterogen, yakni terdiri dari berbagai type

Fungsi :
- Penyimpanan data dengan properti dan karakteristik yang dibutuhkan
- Memudahkan akses suatu file

2. Menyimpan data record

3. 




Senin, 25 November 2019

Array

06.59 1 Comments

  1. Jelaskan tentang kegunaan dari array!
  2. Jelaskan perbedaan array satu dimensi dengan array dimensi banyak!
  3. Sebutkan dan jelaskan keuntungan menggunakan array!

Jawaban
1. Array memiliki kegunaan untuk menyimpan banyak data yang memiliki tipe sama dalam satu tempat/variabel. Sehingga dapat menghemat tempat, juga memudahkan pengaksesan dan pengoperasian data.

2. - Array 1 dimensi.
Elemen-elemen array dapat diakses oleh program menggunakan suatu indeks tertentu dan dapat dilakukan berurutan atau random berdasarkan indeks tertentu secara langsung.

-Array multidimensi
Array multi dimensi berarti array yang kita deklasaikan dapat dikembangkan ke array dimensi 2 dan seteruanya. Setiap dimensi dalam arraydirepresentasikan sebagai sub bagian dalam array.

3. - Array sangat  baik jika digunakan untuk mengakses secara acak(random). Karena secara acak index di array dapat secara langsung tanpa melalui index lain lain
- Jika berada di suatu lokasi index sangatlah mudah untuk mencari ke index yang sama
- Jika index array adalah nilai - nilai tersendiri dan semuanya harus terjaga, maka penggunaan penyimpanannya sangatlah tepat
- Tidak mudah crash
-Cepatnya mengeksekusi data
- Tidak banyak memakan memory

Tipe Data

06.59 1 Comments

  1. Jelaskan perbedaan tipe data integer, real, boolean dan karakter!
  2. Berikan contoh dari masing-masing tipe data tersebut!
  3. Jelaskan penggunaan tipe data tersebut untuk hal-hal apa saja!

Jawaban

1. Integer = tipe data yang berupa angka bilangan bulat, jika memasukkan bilangan desimal maka akan dibulatkan  
Real = tipe data yang berupa angka desimal
Boolean = tipe data yang digunakan untuk merepresentasikan dua kondisi (TRUE dan FALSE) atau (1 dan 0) atau (ON dan OFF)
Karakter = tipe data yang berupa single/ satu digit karakter (bisa berupa huruf, angka, ataupun symbol

2. Integer = 0, 1, 2, 3 dan seterusnya sampai tak hingga
Real = 1.4, 2.3, dll
Boolean = True, False 
Karakter = 'a', '1', '@', dll 

3. Integer = nomor antrian, nomor absen
Real = menghitung luas, menghitung volume, termometer
Boolean = menentukan keputusan : seperti save, exit
Karakter = untuk nama variabel

Selasa, 22 Oktober 2019

Struktur Data

07.35 1 Comments





  1. Jelaskan peranan struktur data dalam kehidupan sehari-hari!
  2. Berikan contoh penggunaan struktur data dalam bidang pendidikan!
  3. Jelaskan hal-hal apa saja yang menjadi kendala dalam penerapan struktur data!

Jawaban
 1. - Membantu mengorganisir banyak data sehingga mudah diakses
Contoh : Melihat stock barang suatu perusahaan
- Data yang keluar tidak sembarangan sehingga tidak terjadi kesalahan output
Contoh : Dalam nomor antrian, nomor pertama datang yang akan dipanggil terlebih dahulu dan nomor terakhir tidak akan dipanggil sebelum nomor sebelumnya dipanggil

2. Untuk mempermudah list absen mahasiswa dengan NIM, dan dapat diurutkan sehingga mempermudah pencarian dan juga pengelompokan

3. Kendala dalam struktur data :
  • Data Search : Semakin banyak data, pencarian akan semakin lambat dilakukan
  • Processor Speed : Semakin banyak data, kecepatan prosesor akan semakin menurun 
  • Multiple Requests : Permintaan pencarian data secara bersamaan terlalu banyak, bisa membuat server down 
  • Terkadang data yang sama tersimpan dengan nama yang berbeda sehingga menjadi double data
  • Kerahasian data terkadang tidak terjamin