Struktur Data

STRUKTUR DATA

Struktur Data adalah cara penyimpanan dan pengorganisasian data-data pada memori komputer maupun file secara efektif sehingga dapat digunakan secara efisien, termasuk operasi-operasi di dalamnya. Stuktur data bias juga didefinisikan Kelompok item data yang terorganisasi yang dianggap sebagai suatu unit. Disebut juga sebagai jenis data kompleks (complex data type) atau data aggregates

Struktur data dibagi menjadi 2, yaitu:
1. Sederhana : Array, Record
2. Majemuk :
- Linier : Linier Linked List, Stack, Queue
- Non Linier : Binary Tree, Binary Search Tree, General Tree, Tree, Graf
Pemakaian struktur data yang tepat di dalam proses pemrograman akan menghasilkan algoritma yang lebih jelas dan tepat, sehingga menjadikan program secara keseluruhan lebih efisien dan sederhana.

Array (Larik)
Ø  Set item data yang disusun secara baik menjadi rangkaian dan diacu atau ditunjuk oleh satu identifier
Contoh : Nilai = (56 42 89 65 48)
Ø  Item data individual dalam array bisa ditunjuk secara terpisah dengan menyatakan posisinya dalam array itu
·         Nilai(1) menunjuk 56
·         Nilai(2) menunjuk 42
Ø  Bilangan yang ditulis dalam tanda kurung menandakan posisi item individual dalam array (disebut juga subscript / indeks)
Ø  Variabel bisa digunakan sebagai subscript, misalnya
Nilai(i).
·         Jika i = 2 maka menunjuk ke Nilai(2) yaitu 42
·         Jika i = 4 maka menunjuk ke Nilai(4) yaitu 65
Ø  Item data individual dalam suatu array sering disebut elemen
Ø  Matriks
·         Array yang hanya berisi bilangan dan tidak ada data alfabetisnya
Ø  Klasifikasi Array
·         Array 1 dimensi
·         Array multi dimensi
Array Multi Dimensi
Ø  Mempunyai elemen-elemen yang disusun ke dalam baris dan kolom dan digunakan sebagai tabel data
Contoh : Nilai ujian dari mahasiswa satu kelas untuk beberapa mata kuliah bisa ditempatkan dalam array 2 dimensi











Penanganan Array
Metode dasar penanganan array :
·         Mencari nilai terbesar
·         Mencari nilai terkecil
·         Menghitung nilai rata-rata
·         Menghitung nilai total
·         Menghitung jumlah nilai di bawah rata-rata
Menyortir Array (Sort)
·         Buble sort
·         Straight selection sort
Mencari/Meneliti Array (Search)
·         Linear search

String
Ø  Rangkaian karakter yang ditangani sebagai unit data tunggal
Ø  Contoh (string literal) :
“ABC, 32fl2. 3h”
“Kucing dalam karung”
Ø  Contoh (variabel string) :
A = “Universitas”
B = “Gunadarma”
Ø  Berada dalam bentuk array karakter 1 dimensi
Ø  Fixed-length string (String yang panjangnya tetap)
Mempunyai jumlah tempat karakter yang tetap yang tersedia (bisa digunakan) untuk penyimpanan data
Ø  Variable-length string (String yang panjangnya berubah-ubah)
Memberi data sejumlah spasi (ruang) sesuai yang ia perlukan












Operasi pada String
Ø  Concatenation
Penggabungan dua atau lebih string
Contoh :
A = “Universitas”
B = “Gunadarma”
C = A + B
maka
C = “UniversitasGunadarma”
Ø  Substring
Mengambil bagian dari suatu stringContoh A = “Universitas”
B = “Gunadarma”
C = Left(A, 3)
D = Right(B, 5)
E = Substr(A, 4, 5)
Maka
C = “Uni”
D = “darma”
E = “versi”

Record
Ø  Seperti array 1 dimensi
Ø  Terdiri dari serangkaian item data yang terkait
Ø  Item data berurutan yang ada dalam record bisa mempunyai jenis yang berbeda
Ø  Contoh : Mengorganisasikan 3 item data yang berbeda ke dalam struktur data tunggal
NIP : string(8)
Nilai : real
Lulus : Boolean
Ø  Setiap elemen memiliki identifier sendiri
Ø  Elemen dari suatu record disebut field
Ø  Array Record (Tabel)
·         Kumpulan dua atau lebih record
·         Deklarasi Array Record
Variable
Mahasiswa : Array [1..5] of record
NIP : string(8)
Nilai : real
Lulus : boolean
End record

List
Memberikan cara yang fleksibel untuk penanganan item data secara urut
Perubahan terhadap urutan tersebut dapat dicapai (dilakukan) dengan perpindahan data yang minimal dan kehilangan ruang penyimpanan yang sedikit
Contoh : Kalimat "Ahmad does not like cake" dituliskan sebagai suatu list, seperti berikut :




Beberapa istilah
·         DATUM : item data dalam list
·         POINTER : penunjuk yang menyambungkan item data satu dengan yang lain
·         NODE / elemen : elemen dari suatu list yang terbentuk dari datum dan pointer
·         TERMINATOR : pointer terakhir dari list
·         START POINTER : menyatakan tempat datum pertama
·         FREE STORAGE POINTER : menyatakan di mana datum berikutnya bisa mengarah atau menuju

Deklarasi List
List dapat dideklarasikan sebagai sebuah array record
Variable
kalimat : Array [1..7] of record
Datum : string
Next : integer
End record












Operasi pada List
ü  Deletion : penghapusan elemen suatu list
Ketika elemen suatu list dihapus, tempat penyimpanan yang telah dikosongkan dapat digunakan lagi
ü  Insertion : penyisipan elemen ke dalam suatu list
ü  Search : pencarian elemen dalam suatu list

Tree
Struktur data hirarki
Dikonstruksi menggunakan aturan preseden untuk item data, misal : menggunakan rangkaian alphabet atau numerik
Beberapa Istilah :
ü  NODE : elemen dari suatu tree. Setiap node memiliki (sedikitnya) dua pointer yaitu left pointer dan right pointer
ü  ROOT NODE : datum pertama yang ditempatkan dalam tree
ü  PARENT NODE : node yang memiliki node di bawahnya (sub-node)
ü  CHILD NODE : node yang berada di bawah parent
ü  LEAF NODE : node yang tidak mempunyai child
Contoh : bilangan-bilangan ini (56 42 89 65 48) ditempatkan ke dalam tree












Catatan :
·         Node paling kiri berisi bilangan terkecil
·         Node paling kanan berisi bilangan terbesar











Sumber :
http://maranugraha.staff.gunadarma.ac.id/Downloads/files/30783/Struktur+Data+1.pdf
TIPE DATA

Setiap variabel mempunyai tipe data yang berbeda-beda untuk disimpan, ada bilangan bulat, bilangan real, barisan karakter (string), dan sebagainya. Tipe data adalah jenis data yang akan diolah oleh algoritma atau program komputer yang diharapkan. Secara garis besar ada 3 macam tipe data yaitu tipe data sederhana, tipe data terstruktur dan tipe data pointer.
Contoh :
TC (TemperaturCelcius) adalah bilangan real, seperti 37,50C, atau 98,35 0C
Nama=“Agus Sucipto”, atau “Adrian Nugroho”, “Cindy harahap”
Status bisa mempunyai nilai “Lulus” atau “Belum Lulus”


A.    Tipe Data Sederhana

Tipe data sederhana adalah tipe data yang hanya memuat data tunggal saja.
Yang termasuk tipe data ini adalah :
1.      Bilangan integer
2.      Bilangan real
3.      Karakter
4.      String
5.      Boolean

Bilangan Integer

Integer adalah tipe data berupa bilangan bulat, termasuk bilangan bulat negatif, nol ataupun bulat positif, contohnya adalah 1, 488, -22, 0, 456, dan sebagainya. Beberapa bahasa pemrograman membagi lagi tipe data integer ini menjadi beberapa tipe data lagi sesuai dengan jangkauannya. sebagai contoh variabel bertipe byte akan bernilai mulai 0 hingga 255, sedangkan integer bernilai antara -32768 hingga 32768.
Contoh variabel yang dapat menggunakan tipe data ini misalkan, banyaknya data, tinggi badan, panjang kata, suku ke-n dari sebuah barisan, jumlah anak, tahun, bulan (dalam angka), dan sebagainya

Bilangan real

Tipe data ini juga merupakan tipe data berupa bilangan, namun berbeda dengan tipe data integer, yang termasuk tipe data ini adalah bilangan rasional pecahan atau irrasional, atau bilangan yang disajikan dalam bentuk koma. Sebagai contoh: 1.5, 458.543, -0.569, 22/7, Phi (π), √2 dan sebagainya.
Contoh variabel yang menggunakan tipe data ini, LuasLingkaran, Rerata, VolumeTabung, suhu, dan sebagainya.

Karakter

Data karakter adalah data sebuah tipe data berupa digits, huruf atau simbol tunggal. Yang membedakan tipe data ini dengan tipe data lainnya adalah biasanya nilai tipe data ini diapit oleh tanda petik.
Contoh: “a”, “H”, “6”, “^”, “>” dan sebagainya.
Meskipun terdapat angka 6, tapi karena diapit oleh tanda petik, maka dia bukan lagi suatu nilai bilngan tapi berupa karakter. Contoh variabel yang menggunakan tipe data ini adalah JenisKelamin, bisa “L” atau “P”, persetujuan bisa “Y” atau “N”, HurufDepanNama, dan sebagainya.



String

Tipe data string merupakan susunan dari satu atau lebih karakter. Sebagai contoh: “abc”, “HAPPY”, “100102001”. Biasanya untuk mendefinisikan tipe data string ini harus diberikan batasan maksimal berapa ukuran atau panjang maksimal string yang bisa dialokasikan. Sebagai contoh: variabel nama bertipe data String[30], artinya maksimal panjang nama adalah 30. Variabel lain yang menggunakan tipe data ini adalah Alamat, TempatLahir, NomorHP, Sekolah, dan sebagainya.

Boolean

Boolean adalah tipe data yang digunakan untuk menyatakan status Benar atau Salah dari suatu variabel. Jadi hanya dua nilai pada tipe data ini yaitu Benar dan Salah.
Sebagai contoh variabel yang dapat digunakan tipe data ini adalah:
1.      StatusKelulusan (bisa Benar atau Salah),
2.      StatusPrima, StatusMenikah (bisa benar atau salah)

B.     Tipe Data Terstruktur

Berbeda dengan tipe data sederhana, tipe data terstruktur adalah tipe data yang terdiri dari kumpulan data-data tunggal. Data-data tunggal ini diorganisasi oleh suatu tipe data terstrutur.
Contoh : data mengenai nilai ulangan 40 anak, apakah kita harus memecah menjadi 40
variabel? Atau data seorang siswa yang terdiri dari Nama, Nomor Induk Siswa, Alamat, Tempat Lahir, tanggal lahir, Nama Orang Tua, Kelas dan sebagainya.
Jenis-jenis tipe data terstruktur :
1.      Array
2.      Record

Array

Array dapat diartikan sebagai larik, atau barisan. Array digunakan untuk menyimpan banyak data dengan tipe data yang sama. Sebagai contoh, dalam sebuah algoritma diberikan input sejumlah data ulangan anak, misalkan 40 anak. Jika untuk menyimpan data itu salah satu alternatifnya adalah memberikan variabel Nilai1, Nilai2, dan seterusnya, hingga Nilai40. Bagaimna jika 100 anak? Maka car ini sangatlah tidak efisien. Data seperti ini dapat disimpan dalam satu wadah yang disebut dengan Array.
Tipe data array adalah tipe data yang menyimpan sejumlah data dengan tpe yang sama, misalkan integer semua atau real semua. Isi data dari variabel dngan tipe data ini dapat diakses dengan menggunakan indeks.
Perhatikan ilustarsi berikut :
Indeks
1
2
3
4
5
39
40
DaftarNilai
9
7
8
5
6
4
10

Contoh penggunaan tipe data array adalah sebagai berikut:
Input: DaftarNilai merupakan array[1..40] of integer.
Jadi DaftarNilai merupakan barisan 40 data yang bertipe integer. Untuk mengakses data tersebut cukup dituliskan DaftarNilai[i], artinya data ke-i pada DaftarNilai, DaftarNilai[1] memberikan nilai 9, daftarNilai[4] memberikan nilai 5 dan seterusnya.

Contoh 2 : DaftarNama

Untuk menampung data seperti ini dapat didefinisikan variabel sebagai berikut :
DaftarNama merupakan array[1..30] of string[30]
Artinya DaftarNama merupakan barisan 30 data yang bertipe string yang ukurannya maksimal 30. Jika dituliskan daftarNama[i], artinya isi dari daftarNama pada indeks/urutan ke-i.

No
Nama
1
Ali Mashuri
2
Johan Prasetyo
3
Ardan Budiman
4
Purnomo
5
Pandu
30
Zidan Pramoedya


Record

Jika Array hanya mampu menyimpan sejumlah data yang bertipe sama, record bisa menampung data-data dengan tipe yang berbeda. Sebagai contoh data seorang siswa, bisa terdiri dari Nama, Nomor Induk Siswa, Alamat, Tempat Lahir, Jenis Kelamin, Kelas Umur. Agar data tersebut menjadi satu kesatuan informasi maka perlu suatu wadah untuk menampung tipe data seperti itu, yaitu Record.
Berikut contoh tipe data Record
DataSiswa adalah RECORD yang terdiri dari
          Nama : String[25] {maksudnya Nama bertipe data String [25]}
          NIS:Integer
          Alamat:String[40]
         TempatLahir:String[20]
         JK:Karakter
         Kelas:Integer
         Umur:Integer
Isi dari tipe data record mempunyai tipe data yang boleh berbeda-beda. Pada contoh di atas bagian dari tipe data record, seperi nama, NIS, Alamat dan lain-lain disebut sebagai atribut.
Sebagai contoh,
Baca DataSiswa.nama {membaca inputan nama pada dataSiswa)
Cetak DataSiswa.Alamat {Mencetak alamat dari dataSiswa}

Jadi dapat disimpulkan bahwa :
1.      Tipe data adalah jenis-jenis data yang dapat disimpan oleh variabel
2.      Tipe data terdiri dari tipe data sederhana dan terstruktur
3.      Tipe data sederhana adalah tipe data yang hanya memuat data-data yang tunggal.
4.      Tipe data sederhana meliputi bilangan integer, bilangan real, karakter, string dan boolean.
5.      Tipe data terstrukur adalah kumpulan dari data-data tunggal.
6.      Tipe data terstruktur meliputi array, record, dan set

Sumber

Dwi Maryono, Dhidhi Pambudhi. 2014. Pemrograman Dasar

Standard Internasional ISO 27001 dan Manfaat Keamanan Informasi Informasi sebagai Aset Penting Informasi adalah salah satu aset pen...