Anda di halaman 1dari 9

STRUKTUR DATA MENGENAI ARRAY STACK & TUMPUKAN

EKA ROUF AL HALIM, YUSUF HANAFIE HASIBUAN,

FAUZY AL FITRA, MELIA SARI

DOSEN PENGAMPU:

INDRA GUNAWAN M.KOM

ABSTRAK

Dalam teknik pemrograman, struktur data berarti tata letak data yang berisi kolom-kolom data,
baik itu kolom yang tampak oleh pengguna (user) atau pun kolom yang hanya digunakan untuk keperluan
pemrograman yang tidak tampak oleh pengguna. Setiap baris dari kumpulan kolom-kolom tersebut
dinamakan catatan (record). Lebar kolom untuk data dapat berubah dan bervariasi.

Ada kolom yang lebarnya berubah secara dinamis sesuai masukan dari pengguna, dan juga ada
kolom yang lebarnya tetap. Dengan sifatnya ini, sebuah struktur data dapat diterapkan untuk pengolahan
database (misalnya untuk keperluan data keuangan) atau untuk pengolah kata (word processor) yang
kolomnya berubah secara dinamis. Contoh struktur data dapat dilihat pada berkas-berkas lembar-sebar
(spreadsheet), pangkal-data (database), pengolahan kata, citra yang dipampat (dikompres), juga
pemampatan berkas dengan teknik tertentu yang memanfaatkan struktur data.

PENDAHULUAN

Salah satu hal penting yang tidak dapat Dalam istilah ilmu komputer, struktur
ditinggalkan dalam pemakaian komputer adalah data adalah cara penyimpanan ,
data. Data dapat diperoleh dari berbagai sumber, pengorganisasian , dan pengaturan data di dalam
misalkan hasil pengukuran laboratorium, hasil media penyimpanan komputer sehingga data
survei, hasil angket dan lain sebagainya. tersebut dapat digunakan secara efisien.
Komposisi data dan logika dari algoritma yang Pemakaian struktur data yang tepat di
memanfaatkan data tersebut berhubungan sangat dalam proses pemrograman akan menghasilkan
erat. Data sederhana dapat kita himpun ke dalam algoritma yang lebih jelas dan tepat, sehingga
suatu struktur data yang memuat informasi menjadikan program secara keseluruhan lebih
tentang hubungan antara item yang terdapat di efisien dan sederhana.
dalamnya.
TINJAUAN PUSTAKA

Struktur Data adalah suatu koleksi atau a. Linier


kelompok data yang dapat dikarakteristikkan Misalnya : Stack, Queue dan Linear Linked List.
oleh organisasi serta operasi yang di defenisikan b. Non Linier
terhadapnya. Misalnya : Pohon (Tree), Pohon Biner (Binary
Pemakaian Struktur Data yang tepat didalam Tree), Pohon Cari Biner (Binary Search Tree),
proses pemrograman, akan menghasilkan General Tree serta Graph.
Algoritma yang lebih jelas dan tepat sehingga
menjadikan program secara keseluruhan lebih
sederhana. PEMBAHASAN
Maka definisi struktur data adalah komposisi
Pada garis besarnya, Data dapat dikategorikan dan susunan teratur dari data, Struktur Data
menjadi : adalah cara penyimpanan, penyusunan dan
A. Type Data Sederhana / Data Sederhana pengaturan data di dalam media penyimpanan
Terdiri dari : komputer sehingga data tersebut dapat
1. Data Sederhana Tunggal digunakan secara efisien.
Misalnya : Integer, Real/Float, Boolean dan Integer
Character Dalam bahasa pemrograman, tipe data integer
2. Data Sederhana Majemuk Misalnya : String adalah tipe data yang terdiri dari angka bulat
B. Struktur Data (tidak mengandung nilai pecahan atau nilai
Terdiri dari : desimal). Nilai ini bisa berbentuk angka positif
1. Struktur Data SederhanaMisalnya Array dan maupun negatif, contohnya 1, 2, 6, -44, 20000,
Record atau 128730123.
2. Struktur Data Majemuk Terdiri dari :

Type Range Ukuran(Byte)

Integer - 32768..32767 2

Long - 2147483648..2147483647 4
Float Type data yang hanya mempunyai dua bentuk
keluaran yaitu nilai True dan False (Benar dan
Tipe data float (disebut juga tipe data floating
point, atau real number) adalah tipe data angka Salah) yang dinyatakan dengan 1 dan 0,
yang memiliki bagian desimal di akhir angka, Sehingga satuan data yang terpakai cukup satu
atau memiliki floating point (floating point
bit saja. Operator yang digunakan adalah : And,
adalah istilah dalam bahasa inggris untuk
menyebut tanda “titik” yang menandakan Or dan Not.
bilangan desimal). Contoh angka float adalah
seperti: 0,9 atau 3,14.  ARRAY DIMENSI 1 & 2

Tipe data float cocok digunakan untuk variabel Array / Larik : Struktur Data
yang akan berisi angka pecahan, seperti nilai Sederhana yang dapat didefinisikan sebagai
IPK, hasil pembagian, atau hasil komputasi pemesanan alokasi memory sementara pada
numerik yang angkanya tidak bisa ditampung komputer.Array dapat didefinisikan sebagai
oleh data integer.
suatu himpunan hingga elemen yang terurut
Type Real dapat juga ditulis dengan Rumus : dan homogen.Terurut : Dapat diartikan
bahwa elemen tersebut dapat diidentifikasi
M * Re = X sebagai elemen pertama, elemen kedua dan
M = Pecahan, R = Radix, seterusnya sampai elemen ke-n.Homogen :
Adalah bahwa setiap elemen dari sebuah
e = Exponen, X = Hasil Bilangan, Array tertentu haruslah mempunyai type
Misalnya : 3.2 * 10-1 = 0.32
data yang sama.

4.35 * 102 = 435 Sebuah Array dapat mempunyai elemen


yang seluruhnya berupa integer atau
character atau String bahkan dapat pula
terjadi suatu Array mempunyai elemen
berupa Array.

BOOL ATAU LOGICAL

Ukuran
Type Range
(Byte)

Float 3.4 x 10 -38 s/d 3.4 x10 +38 4


Double 1.7 x 10 -308 s/d 1.7x10 +308 8
Long Double 3.4 x 10 -4932 s/d 1.1x10 + 4932 10
Karakteristik Array : PENGERTIAN STACK
Stack adalah salah satu komponen yang biasanya
1. Mempunyai batasan dari pemesanan
alokasi memory (Bersifat Statis) digunakan dalam pemrograman ataupun
penyimpanan komputer. Sesuai namanya yaitu
2. Mempunyai Type Data Sama (Bersifat
Homogen) stack, tidak heran apabila objek yang terkumpul
terlihat seperti tumpukan.
3. Dapat Diakses Secara Acak
karakteristik stack sendiri bersifat LIFO (last in
 3 Hal yang harus diketahui dalam first out). Artinya, data yang terakhir masuk
Mendeklarasikan Array :
merupakan data yang akan keluar terlebih
a. Type data array dahulu, Seperti tumpukan pada umumnya,

b. Nama variabel array misalnya tumpukan buku, yang di atas atau yang
terakhir masuk harus dikeluarkan terlebih dahulu
c. Subskrip / index array
untuk mendapatkan buku yang berada di
Jenis Array (yang akan dipelajari) adalah : tumpukan bawah.
a. Array Dimensi Satu (One Dimensional
Array) Operasi stack

b. Array Dimensi Dua (Two Dimensional 1. Pop


Array) Dilansir dari After Academy, operasi Pop pada

c. Array Dimensi Tiga (Thee Dimensional stack adalah operasi yang berfokus pada
Array) penghapusan elemen. dikarenakan dalam stack
programmer hanya memiliki akses pada bagian
atas, hanya ada satu elemen yang dapat dihapus.
2. Push sederhana dan menawarkan akses acak ke
Kebalikan dari pop, operasi Push justru lebih pengguna berdasarkan indeks.
berfokus pada memasukkan elemen ke dalam Menurut Geeks for Geeks, dalam implementasi
stack atau tumpukan. seperti halnya sistem stack menggunakan array, programmer dapat
LIFO, programmer atau pengguna hanya dapat menggunakan bahasa pemrograman seperti C,
memasukkan elemen baru di bagian atas C++, Java, Phyton, dan C#.
tumpukan. Geeks for Geeks juga menggambarkan
3. isFull bagaimana susunan dari kelima bahasa
Operasi stack yang satu ini adalah untuk pemrograman tersebut.
mengetahui apakah tumpukan sudah penuh atau Kelebihan dari implementasi stack
belum. menggunakan array adalah mudah untuk
4. isEmpty diimpelementasikan.
Kebalikan dari isFull, isEmpty merupakan Sementara itu, kekurangannya adalah bisa
operasi yang digunakan untuk memeriksa dibilang tidak terlalu dinamis. Pasalnya, hal itu
apakah tumpukan kosong atau tidak. tidak tumbuh dan menyusut, tergantung pada
5. Peek kebutuhan saat proses.
Seperti namanya, dilansir dari Tutorials Point,
operasi Peek atau mengintip adalah operasi yang Pengertian queue
dilakukan untuk mengetahui data teratas dari Queue / Antrian adalah suatu kumpulan data
tumpukan tanpa harus menghapusnya. yang mana penambahan elemen hanya bisa
dilakukan pada satu ujung (disebut dengan sisi
  belakang atau tail/rear) dan penghapusan atau
Stack Pada Array pengambilan elemen dilakukan lewat ujung lain
Mengutip After Academy, array adalah salah (disebut dengan sisi depan atau head/front).
satu implementasi dari stack yang paling
Fungsi fungsi operasi stack
Queue mempunyai beberapa fungsi operasi N
diantaranya yaitu : Σ I = N(N+1)/2
EnQueue untuk Memasukkan data kedalam
I=1
Antrian
DeQueue untuk Mengeluarkan data kedalam
B. Sparse array
Antrian.
A sparse array is an array of data in which
IsFull untuk memeriksa apakah antrian Penuh
IsEmpety untuk memeriksa apakah antrian
many elements have a value of zero. This is

Kosong in contrast to a dense array, where most of


Clear untuk Menghapus seluruh Antrian. the elements have non-zero values or are
“full” of numbers. A sparse array may be
A. Pengertian Tringular array ( Array treated differently than a dense array in
Segitiga) digital data handling.
TRINGULAR ARRAY (ARRAY
SEGITIGA) C. Konsep Pointer dan linked list
Akan kita tinjau beberapa aspek pelinearan KONSEP POINTER DAN LINKED LIST
suatu array yang khusus, yakni tringular Untuk mengolah data yang banyaknya tidak
array. Tringular array dapat merupakan bisa ditentukan sebelumnya, maka
upper tringular (seluruh elemen di bawah disediakan satu fasilitas yang memungkinan
diagonal utama = 0) ataupun lower tringular untuk menggunakan suatu perubah yang
(seluruh elemen di atas diagonal utama =0). disebut dengan perubah dinamis (Dinamic
variable) Perubah Dinamis (Dinamic
Dalam array lower triangular dengan N variable) Suatu perubah yang akan
baris, jumlah maksimum elemen <> 0 pada dialokasikan hanya pada saat diperlukan,
baris ke-I adalah 1, karenanya total elemen yaitu setelah program dieksekusi.
<> 0, tidak lebih dari :
Perbedaan Perubah Statis & Dinamis Pada
perubah statis, isi Memory pada lokasi Contoh penggunaan pointer dalam program
tertentu (nilai perubah) adalah data C++: Void main() { int x,y,*z; x = 75; //nilai
sesungguhnya yang akan diolah. Pada x = 75 y = x; //nilai y diambil dari nilai x z =
perubah dinamis, nilai perubah adalah &x; //nilai z menunjuk kealamat pointer dari
alamat lokasi lain yang menyimpan data nilai x getch(); }
sesungguhnya. Dengan demikian data yang
sesungguhnya dapat dimasukkan secara D. Perbedaan array dan limked list
langsung. Dalam hal cara pemasukkan data
dapat diilustrasikan seperti dibawahini. Setiap simpul dalam suatu Linked List
terbagi menjadi dua bagian,yaitu : 1. Medan
DEKLARASI POINTER Pointer digunakan Informasi Berisi informasi yang akan
sebagai penunjuk ke suatu alamat memori disimpan dan diolah. 2. Medan Penyambung
Dalam pemrograman C++, Type Data (Link Field) Berisi alamat berikutnya.
Pointer dideklarasikan dengan bentuk umum Bernilai 0, Jika Link tersebut tidak
: Type Data *Nama Variabel; Type Data menunjuk ke Data (Simpul) lainnya.
dapat berupa sembarang type data, misalnya Penunjuk ini disebut Penunjuk Nol.
char, int atau float. Sedangkan Nama
veriabel merupakan nama variabel pointer
Bentuk Node Single Linked List non • Setelah pembuatan struct, buat variabel
Circular • Single : field pointer-nya hanya head yang bertipe pointer dari TNode yang
satu dan satu arah,pada akhir node berguna sebagai kepala linked list. •
pointernya menunjuk NULL Digunakan perintah new untuk
mempersiapkan sebuah node baru berserta
Menempati alamat memori tertentu alokasi memorinya, kemudian node tersebut
diisi data dan pointer nextnya ditunjuk ke
• Linked List : node-node tersebut saling NULL. TNode *baru; baru = new TNode;
terhubung satu sama lain. baru->data = databaru; baru->next = NULL;

• Setiap node pada linked list mempunyai Single Linked List non Circular
field yang berisi pointer ke node berikutnya, Menggunakan Head • Dibutuhkan satu buah
dan juga memiliki field yang berisi data. • variabel pointer : head yang akan selalu
Node terakhir akan menunjuk ke NULL menunjuk pada node pertama
yang akan digunakan sebagai kondisi
berhenti pada saat pembacaan isi linked list. Deklarasi Pointer Penunjuk Head Single
Linked List • Manipulasi linked list tidak
Pembuatan Single Linked List non Circular dapat dilakukan langsung ke node yang
Deklarasi Node : typedef struct TNode{ int dituju, melainkan harus menggunakan suatu
data; TNode *next; }; pointer penunjuk ke node pertama (Head)
dalam linked list • Deklarasinya sebagai
Keterangan: • Pembuatan struct bernama berikut: TNode *head;
TNode yang berisi 2 field, yaitu field data
bertipe integer dan field next yang bertipe Fungsi Inisialisasi Single Linked List void
pointer dari TNode init() { head = NULL; }
KESIMPULAN
Array (larik) adalah sebuah variable yang dapat menyimpan lebih dari satu nilai sejenis (memiliki tipe
data yang sama). Bila akan didefinisikan sebagai tipe bentukan, maka array juga akan dideklarasikan di
bagian definisi tipe (dibawah kata kunci tipe). Dalam bahasa pascal, pendeklaraasian array dilakukan
dengan menggunakan kata kunci array dan tipe data yang akan disimpan di dalamnya, selain itu juga
harus disertai dengan batas-batas indeksnya yang diapit oleh tanda bracket([]).
Array digunakan untuk mempermudah dalam penulisan syntax program pascal, array dapat menyimpan
data sehingga bisa menyederhanakan dan mengefektifkan syntax pascal. Array dibedakan menjadi dua
yaitu, Array Satu Dimensi dan Array Dua Dimensi. Setiap jenis array mempunyai kegunaannya masing-
masing.

Anda mungkin juga menyukai