KONSEP STRUKTUR DATA & ARRAY

Pengertian Struktur Data

Struktur Data adalah suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Pemakaian Struktur Data yang tepat didalam proses pemrograman, akan menghasilkan Algoritma yang lebih jelas dan tepat sehingga menjadikan program secara keseluruhan lebih sederhana.

Konsep Dasar Tipe Data

Pada garis besarnya, Data dapat dikategorikan menjadi :

Type Data Sederhana / Data Sederhana

Data Sederhana Tunggal

  • Integer

Integer merupakan bilangan bulat dan tidak mengandung pecahan. seperti -3,-2,-1,0,1,2,3, dst.

  • Real/Float

Type data yang merupakan bilangan pecahan. Jenis Data float ditulis dgn menggunakan titik(koma) desimal. Misalnya : 0.32 4,35 -131.128. Type Real dapat juga ditulis dengan Rumus :

M = Pecahan, R = Radix,

e = Exponen, X = Hasil Bilangan,

Misalnya :     

3.2 * 10-1 = 0.32

4.35 * 102 = 435

  • Boolean

Type data yang hanya mempunyai dua bentuk keluaran yaitu nilai True dan False (Benar dan Salah) yang dinyatakan dengan 1 dan 0, Sehingga satuan data yang terpakai cukup satu bit saja. Operator yang digunakan adalah : And, Or dan Not.

  • Character

Type data yang terdiri dari aksara (simbol) yang meliputi digit numerik, character alfabetik dan special character. Untuk menuliskan tipe char, karakter perlu ditulis di dalam tanda petik tunggal ( ‘ ). Contoh :

‘A’ _ karakter berupa huruf A

‘1’ _ karakter berupa angka 1

‘*’ _ karakter Symbol *

Data Sederhana Majemuk

Misalnya : String

String merupakan type data majemuk yang terbentuk dari kumpulan character sebanyak 256 (default) dengan jangkauan niai 0 – 255. Kumpulan character yang digunakan untuk membentuk String dinamakan alfabet. Pemberian nilai String diapit dengan tanda petik ganda (“). Bentuk umum penulisan tipe data ini adalah : tipe_data pengenal [panjang] ;

Baca juga :  #1 Sistem Basis Data : Model Data

pengenal = nama variabel

panjang = bilangan bulat yg menunjukan jumlah karakter Contoh : char nama[15] ;

Fungsi pada Operasi STRING
  • Strcpy()

Digunakan untuk menyalin nilai string. Contoh menggunakan program C++:

#include <iostream.h> 
#include <conio.h> 
#include <string.h> 
#include <stdio.h> 

main() {
char asal[100]; 
char hasil[100]; 
clrscr();
cout<<"Masukan kalimat : "; 
gets(asal); 
strcpy(hasil,asal);
cout<<endl; 
cout<<"Kalimat asal : "<<asal<<endl; 
cout<<"Kalimat hasil : "<<hasil<<endl; 
getch(); 
}
  • Strcat()

Digunakan untuk menggabungkan nilai string. Contoh menggunakan program c++:

int main() {
char string1 [] ="Belajar";
char string2 [] ="Logika Algortima"; 
cout<<"Menggabungkan String"<<endl; 
cout<<"	"<<endl;
cout<<"string1 : "<<string1<<endl; 
cout<<"string2 : "<<string2<<endl; 
strcat(string1, string2);
cout<<"\nSetelah digabung, string1 sekarang menjadi: "<<string1<<endl;
getche(); 
}
  • Strcmp()

Digunakan untuk membandingkan 2 nilai string. Contoh dalam penggalan program c++:

#include <iostream.h> 
#include <stdio.h> 
#include <conio.h> 

main()
{
char sa[]="Logika";
char sb[]="Logika Algoritma";
char sc[]="Logika Algoritma & Pemprograman";
/*Melakukan perbandingan terhadap dua string dan penampilan nilainya*/
printf("Nilai Yang dibandingkan sa,sb : %d\n",strcmp(sa,sb)); 
printf("Nilai Yang dibandingkan sa,sc : %d\n",strcmp(sa,sc)); 
printf("Nilai Yang dibandingkan sb,sa : %d\n",strcmp(sb,sa)); 
getch();
return 0;
}
  • Strlen()

Digunakan untuk mengetahui panjang nilai string. Contoh dalam penggalan program c++:

#include <iostream.h> 
#include <conio.h> 
#include <string.h> 
main()
{
char nama[50] = "Logika Algoritma"; 
char kosong[50] = "";
clrscr();
cout << "jumlah karakter dari nama adalah " << strlen(nama) << endl; 
cout << "jumlah karakter dari kosong adalah " << strlen(kosong) << endl;
getch();
}
  • Strchr()

Digunakan untuk mencari nilai karakter dalam string. Contoh dalam penggalan program C++:

#include <stdio.h> 
#include <conio.h> 
#include <string.h> 
int main(void){
char str [100]="Ahmad Zipur"; 
char karakter='Z';
char *hasil; 
hasil=strchr(str,karakter); 
printf("Hasil Peubah :%s\n",hasil);
printf("Karakter %c ditemukan pada indeks ke-%d",karakter,(hasil- str));
getch(); return 0; 
}

Struktur Data

Struktur Data Sederhana

Misalnya Array dan Record

  • Array

Adalah tipe terstruktur yang terdiri dari sejumah komponen yang mempunyai tipe yang sama. Jenis Array dibedakan menjadi 3 jenis: array 1 dimensi, 2 dimensi dan multidimensi

  • Record

Sebuah record merupakan koleksi satuan data yang heterogen, yakni terdiri dari berbagai type. Satuan data sering disebut sebagai field dari record. Field dipanggil dengan namanya masing-masing.

Baca juga :  #7 Pengantar Teknologi Informasi : Pengertian, Fungsi dan Contoh Teknologi Informasi

Struktur Data Majemuk

  • Linier

Misalnya : Stack, Queue dan Linear Linked List.

  • Non Linier

Misalnya : Pohon (Tree), Pohon Biner (Binary Tree), Pohon Cari Biner (Binary Search Tree), General Tree serta Graph.

Konversi Bilangan

  1. Decimal adalah bilangan berbasis sepuluh yang terdiri dari 0, 1, 2, 3, 4, 5, 6, 7, 8, dan 9
  2. Hexadecimal adalah bilangan berbasis enam belas yang terdiri dari 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, dan F

Tabel di bawah adalah contoh konversi bilangan Decimal, dan Hexadecimal

Contoh KONVERSI ANTAR BILANGAN

Konversi Bilangan Decimal ke Hexadecimal

Contoh 254 (10) =……. (16)

Caranya dengan membagi bilangan tersebut dengan enam belas sampai bilangan tersebut tidak bisa lagi dibagi enam belas (kurang dari enam belas) dengan mencatat setiap sisa pembagian.

254 : 16 = 15 sisa 14 atau E (lihat tabel di atas)

15 : 16 = sisa 15 atau F (lihat tabel di atas)

Jadi 254 (10) = FE (16) diurutkan dari sisa pembagian terakhir.

Array

Pengertian Array

Array / Larik : Struktur Data Sederhana yang dapat didefinisikan sebagai pemesanan alokasi memory sementara pada komputer. Array dapat didefinisikan sebagai suatu himpunan hingga elemen yang terurut dan homogen. Terurut : Dapat diartikan bahwa elemen tersebut dapat diidentifikasi sebagai elemen pertama, elemen kedua dan seterusnya sampai elemen ke-n. Homogen : Adalah bahwa setiap elemen dari sebuah. Array tertentu haruslah mempunyai type data yang sama. Sebuah Array dapat mempunyai elemen yang seluruhnya berupa integer atau character atau String bahkan dapat pula terjadi suatu Array mempunyai elemen berupa Array.

Karakteristik Array

  1. Mempunyai batasan dari pemesanan alokasi memory (Bersifat Statis)
  2. Mempunyai Type Data Sama (Bersifat Homogen)
  3. Dapat Diakses Secara Acak

Tiga hal yang harus diketahui dalam mendeklarasikan array :

  1. Type data array
  2. Nama variabel array
  3. Subskrip / index array

Jenis Array

Array Dimensi Satu (One Dimensional Array)

  • Deklarasi Array Dimensi Satu
Baca juga :  #1 Struktur Data : Pengenalan Struktur Data dan Algoritma dalam Pemrograman

Dapat disebut juga dengan istilah vektor yang menggambarkan data dalam suatu urutan.

Deklarasi : Type_Data Nama_Variabel [index] Misalnya : int A[5];

Penggambaran secara Logika :

Contoh :

void main() { 
int bil [5]; 
clrscr;
cout<<"Masukkan 5 bilangan genap : "<<endl; 
for (int i = 0; i < 5; i++) { 
cout<<"Bilangan "; 
cout<< i + 1 <<" : "; 
cin>> bil[i]; 
cout<<endl;
}

cout<<endl;

cout<<"5 bilangan genap yang dimasukkan “ <<endl; 
for (int i = 0; i < 5; i++)
cout<<" "<<bil[i]; getch();
}
  • Rumus untuk menentukan jumlah elemen dalam Array :

Π = Perkalian dari elemen sebelumnya (untuk array dimensi dua & tiga)

Contoh :

Suatu Array A dideklarasikan sbb : int A[10];

maka jumlah elemen Array dimensi satu tersebut adalah = 10

  • Pemetaan Array Dimensi 1

Dimana :

@A[i]      : Posisi Array yg dicari

B              : Posisi awal index di memory komputer

I               : Subkrip atau indeks array yg dicari

L              : Ukuran / Besar memory suatu type data

Contoh :

Suatu Array A dideklarasikan sebagai berikut :

int A[5]; dengan alamat awal index berada di 0011 (H) dan ukuran memory type data integer = 2. Tentukan berapa alamat array A[3]?

Array Dimensi Dua (Two Dimensional Array)

  • Deklarasi array Dimensi Dua

Sering digunakan dalam menterjemahkan matriks pada pemrograman.

Deklarasi : Type_Data Nama_Variabel [Index1] [index2];

Misal : int A[3][2];

Penggambaran secara Logika :

  • Menentukan jumlah elemen dalam Array dimensi dua:

Π = Perkalian dari elemen sebelumnya (untuk array dimensi dua & tiga)

Contoh :

Suatu Array X dideklarasikan sbb : int X[4][3], maka jumlah elemen Array dimensi dua tersebut adalah : (4) * (3) = 12

Terbagi Dua cara pandang (representasi) yang berbeda :

  • Secara Kolom Per Kolom (Coloumn Major Order/CMO)
  • Secara Baris Per Baris (Row Major Order / RMO)

Keterangan :

@M[i][j]: Posisi Array yg dicari,

M[0][0] : Posisi alamat awal index

array,I : Baris

j : kolom

L : Ukuran memory type data

K : Banyaknya elemen per kolom

N : Banyaknya elemen per baris

Penggambaran secara logika

Misal : int M[3][2]; (Array dengan 3 Baris & 2 Kolom)

  • Pemetaan Array Dimensi Dua

Contoh Pemetaan :

Suatu Array X dideklarasikan sebagai berikut : Float X[4][3], dengan alamat index X[0][0] berada di 0011(H) dan ukuran type data float = 4. Tentukan berapa alamat array X[3][2] berdasarkan cara pandang baris dan kolom?

Contoh Program Array Dimensi Dua :

#include<stdio.h> 
#include<conio.h> 

main() {

int a[3][5];

for (int i=0;i<3;i++) {

for (int j=0;j<5;j++) {

printf("%x ",&a[j][i]);

}

printf("\n");

}

getch();

}