Apa itu Struktur Data? Struktur data adalah suatu penyusunan, hierarki, atau mudahnya bagaimana kita mengemas dan menyimpan suatu data yang dibutuhkan untuk diolah oleh suatu algoritma pemrograman. Mengapa kita membutuhkan struktur data? Tentunya untuk menyederhanakan dan mengklasifikasikannya agar lebih mudah diatur dan gunakan sesuai dengan kebutuhan algoritma yang akan kita buat dalam suatu kode program atau aplikasi.

Misalnya, struktur data dapat sesederhana variabel. Variabel adalah suatu placeholder atau tempat untuk menampung suatu data. Saat kita membuat aplikasi pendaftaran mahasiswa online, maka kita dapat menampung nama mahasiswa bukan? Kita dapat membuat variabel nama_mahasiswa untuk menampung nama mahasiswa tersebut. Jadi, terdapat struktur data berupa variabel yang bernama nama_mahasiswa untuk menampung nama mahasiswa yang harus diinput pada aplikasi, misalnya:

nama_mahasiswa = “Gamal Thabroni”;

Lalu bagaimana jika data yang ditampung bukan hanyalah nama saja? Kita dapat membuat struktur data lain yang lebih kompleks, misalnya membuat himpuan, larik, atau array. Berbeda dengan variabel yang hanya menampung satu jenis data, array dapat menampung beberapa data sekaligus. Misalnya, kita dapat membuat array:

data_mahasiswa[
“nama_mahasiswa” => “Gamal Thabroni”,
“nik_mahasiswa” => “18210572”
];

Tentunya dalam praktiknya, format penulisan dan pendefinisian variabel, array, atau struktur data yang lainnya amatlah bergantung pada jenis Bahasa pemrograman yang kita gunakan. Namun demikian, biasanya format tersebut tidaklah memiliki perbedaan yang signifikan. Terdapat pula beberapa jenis struktur data lainnya yang dapat digunakan untuk menampung dan menyusun suatu data untuk kemudian diolah atau digunakan oleh algoritma pemrograman.

Oleh karena itu, berikut adalah berbagai uraian mengenai dasar-dasar struktur data sebagai pengantar awal yang dapat digunakan untuk memahami lebih lanjut mengenai struktur data.

Pengertian Struktur Data

Struktur data adalah cara penyimpanan, pengorganisasian, dan pengaturan data di dalam media penyimpanan komputer sehingga data tersebut dapat digunakan secara efisien (Sjukani, 2012). Sementara itu data sendiri merupakan representasi dari fakta dunia nyata yang disimpan, direkam atau direpresentasikan dalam bentuk tulisan, suara, gambar, sinyal atau simbol. Contoh data ini sendiri dapat sesederhana nama seseorang, hingga pendapatnya mengenai suatu pernyataan atau pertanyaan dari survei.

Sementara itu, menurut Hidayati (2016, hlm. 1) struktur data ialah suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Artinya, struktur data adalah suatu koleksi data yang diorganisasikan sedemikian rupa agar dapat dapat digunakan (dioperasikan) berdasarkan definisi yang diberikan pada struktru tersebut. Misalnya, kita dapat mendefinisikan struktur data bernama “informasi_mahasiswa” yang berisi kumpulan data-data personal mahasiswa meliputi nama, NIM, alamat, dsb.

Dapat disimpulkan bahwa struktur data adalah cara penyimpanan, pengorganisasian, serta pengaturan data atau representasi dari fakta dunia nyata agar dapat digunakan atau dioperasikan secara efisien. Selain strukturnya, kita juga perlu mengetahui tipe dan mekanisme untuk memanipulasi data tersebut dalam rangka mengefisiensikannya.

Tipe Data

Sebelum membahas seperti apa saja struktur data yang ada, kita harus mengetahui tipe data itu sendiri. Data memiliki tipe atau jenis yang berbeda satu sama lain. Jenis atau tipe data dalam bahasa pemrograman adalah sekumpulan data dengan nilai suatu jenis yang telah ditetapkan. Misalnya, tipe data tersebut adalah bilangan bulat (tidak menerima desimal), bilangan desimal (menerima koma), atau karakter/string (tidak menerima angka, hanya menerima huruf), dsb.

Sejatinya, memori komputer hanya dapat diisi dengan 0 dan 1. Jika kita memiliki masalah dan kita ingin kode itu, sangat sulit untuk memberikan solusi dalam hal 0 dan 1. Untuk membantu pengguna, bahasa pemrograman dan kompiler memberikan jenis data. Sebagai contoh, integer mengambil 2 byte , Float mengambil 4 byte, dll. Ini menyatakan bahwa dalam memori kita menggabungkan 2 byte (16 bit) dan menyebutnya integer. Demikian pula, menggabungkan 4 byte (32 bit) dan menyebutnya Float. Jenis data mengurangi upaya pengkodean.

Secara umum, ada tiga tipe data, yakni data yang ditetapkan sistem, data turunan, dan data yang ditetapkan pengguna.

Tipe Data Utama

Tipe data utama merupakan tipe data yang didefinisikan oleh sistem. Tipe data utama yang disediakan oleh banyak bahasa pemrograman yaitu: int (bilangan bulat), float, karakter (char), boolean, dll. Jumlah bit yang dialokasikan untuk setiap jenis data dasar tergantung pada bahasa pemrograman, kompilator dan sistem operasi. Untuk jenis data dasar yang sama, bahasa yang berbeda.

Tergantung pada ukuran jenis data, total nilai yang tersedia (domain) juga akan berubah. Sebagai contoh, “int” mungkin mengambil 2 byte atau 4 byte. Jika dibutuhkan 2 byte (16 bit), maka total nilai yang mungkin adalah minus 32.768 untuk Plus 32.767 (-215 ke 215-1). Jika dibutuhkan 4 byte (32 bit), maka nilai yang mungkin adalah antara-2.147.483.648 dan + 2.147.483.647 (-231 untuk 231-1). Hal yang sama terjadi dengan jenis data lainnya.

Bilangan bulat (int)

Tipe data bilangan bulat atau int adalah tipe data yang dapat menampung bilangan bulat (tidak menerima bilangan desimal). Kata kunci yang digunakan untuk jenis data bilangan bulat biasanya adalah int. Tipe data bilangan bulat biasanya memerlukan 4 byte ruang memori dan berkisar dari -2147483648 hingga 2147483647.

Karakter

Tipe data karakter merupakan jenis tipe data yang digunakan untuk menyimpan karakter. Kata kunci yang digunakan untuk menentukan jenis tipe data karakter ini biasanya adalah char. Karakter biasanya membutuhkan 1 byte ruang memori dan berkisar dari -128 ke 127 atau 0 hingga 255.

Boolean

Jenis data boolean digunakan untuk menyimpan nilai boolean atau nilai logis, misalnya variabel boolean dapat menyimpan nilai true atau false (1 dan 0). Intinya, tipe data Boolean ini hanya dapat menampung 2 nilai utama, yakni true atau false (1 atau 0).

Floating Point

Tipe data floating point digunakan untuk menyimpan nilai floating point presisi tunggal atau nilai desimal. Berbeda dengan bilangan bulat (int) yang tidak menerima koma, tentunya float ini mampu menampungnya, karena memang diperuntukan untuk menerima bilangan desimal. Kata kunci pada jenis data floating point yatu float. Variabel float biasanya membutuhkan 4 byte ruang memori.

Double Floating Point

Tipe data Floating Point Ganda digunakan untuk menyimpan nilai floating point presisi ganda atau nilai desimal. Kata kunci yang digunakan untuk tipe data floating point ganda adalah dua kali lipat. Variabel ganda biasanya memerlukan 8 byte ruang memori.

Void

Void berarti tanpa nilai apa pun. Artinya, void mewakili entitas yang tidak bernilai. Jenis data void digunakan untuk fungsi tersebut yang tidak mengembalikan nilai.

Wide character

Tipe data karakter lebar juga merupakan tipe data karakter tetapi jenis data ini memiliki ukuran yang lebih besar daripada tipe data 8-bit normal. Diwakili oleh wchar_t. Wide character umumnya dapat menampung 2 atau 4 byte data.

Tipe Data Turunan

Tipe data turunan adalah tipe data yang berasal dari tipe data utama. Tipe data ini dibagi menjadi empat jenis yaitu: a) Fungsi b) Array c) Pointer d) Referensi.

Tipe Data Abstrak

Tipe data abstrak adalah tipe data yang ditentukan oleh pengguna. Contohnya, Pengguna (coder/programmer) dapat mendefinisikan kelas di C++ atau struktur. Biasanya C++ menyediakan tipe data ini yaitu: kelas, struktur, union, enumerasi, dan typedef.

Tipe Struktur Data

Sebelumnya telah kita ketahui bahwa struktur data merupakan suatu cara tertentu untuk mengatur dan menyimpan data di dalam komputer untuk memproses data lebih efisien. Struktur data mempunyai format khusus dalam mengatur dan menyimpan data. Jenis struktur data umum meliputi array, file, liked list, stack, queue, trees, graph dan sebagainya. Tergantung pada organisasi elemen, struktur data diklasifikasikan ke dalam dua jenis, yakni:

  1. Struktur data linear: elemen diakses dalam urutan berurutan tetapi tidak wajib untuk menyimpan semua elemen secara berurutan. Contoh: Linked list, Stack, dan Queue.
  2. Struktur data non-linear: elemen struktur data ini disimpan/diakses dalam urutan non-linear. Contoh: Trees dan Graph.

Variabel

Dalam pemrograman, variabel merupakan lokasi atau tempat di dalam memori yang mampu menyimpan data sementara pada suatu program, data tersebut dapat diubah, disimpan atau ditampilkan kapan pun pada saat dibutuhkan.

Oleh karena itu, variabel haruslah memiliki nama, di mana nama variabel tidak boleh sama dengan variable lainnya. Hal tersebut karena setiap variabel memiliki alamat sendiri pada memori komputer, kita hanya perlu meyebutkan nama variabel dimana data di simpan, maka komputer akan mampu menemukan alamat variabel tersebut tersimpan pada memori komputer.

Ada beberapa syarat yang diperlukan dalam pemberian nama variabel yang ditentukan oleh pembuat program seperti berikut ini.

  1. Penulisan nama variabel tidak boleh sama dengan nama keyword dan function.
  2. Penulisan nama variabel maksimum 32 karakter.
  3. Penulisan nama variabel harus diawali dengan huruf atau garis bawah (underscore _), karakter berikutnya boleh angka, huruf atau garis bawah.
  4. Penulisan nama variabel tidak boleh menggunakan spasi.

Perlu diketahui bahwa sebagian ahli informatika menolak variabel dikategorikan sebagai struktur data. Mengapa? Karena variabel hanya menampung data tunggal, sementara itu sesuatu yang disebut “struktru” seharusnya lebih dari satu bukan? Namun demikian variabel ini tetaplah penting untuk diketahui, karena merupakan dasar dari penampungan atau penyimpanan data dalam suatu pemrograman.

Array

Array atau larik merupakan bagian dasar pembentukan suatu struktur data yang lebih kompleks dari variabel. Hampir setiap jenis struktur data kompleks dapat disajikan secara logic oleh array. Array dapat didefinsikan sebagai suatu himpunan yang terurut dan homogen (Hidayati, 2016, hlm. 9). Terurut artinya elemen tersebut dapat diidentifikasi sebagai elemen pertama, kedua, dan seterusnya hingga elemen terakhir. Sementara itu homogen berarti setiap elemen dari suatu array haruslah memiliki tipe data yang sama.

Oleh karena itu, sebuah array dapat memiliki elemen yang seluruhnya berupa tipe data bilangan bulat (int), atau karakter, dan string. Bahkan, suatu array juga dapat memiliki elemen berupa array lainnya (multidimensional array).

Kita dapat menggunakan variabel normal (v1, v2, v3, ..) ketika kita memiliki sejumlah kecil objek, tetapi jika kita ingin menyimpan instance dalam jumlah besar, akan sulit untuk mengelolanya dengan variabel normal. Oleh karena itu, dde dari sebuah array adalah untuk merepresentasikan banyak nilai dalam satu “variabel” yang tentunya disebut sebagai array.

Karakteristik Array

Array memiliki beberapa karakteristik berikut ini.

  1. Mempunyai batasan dari pemesanan alokasi memory ( bersifat statis)
  2. Mempunyai type data sama ( bersifat Homogen)
  3. Dapat diakses secara acak.
  4. Berurutan (terstruktur).

Dimensi Array

Sebelumnya telah disampaikan bahwa array dapat memiliki elemen berupa array lainnya. Hal ini dapat terjadi karena array mempunyai dimensi, yakni: Array Dimensi Satu (Vektor), Array Dimensi Banyak, Array Dimensi Dua (Matriks/Tabel), dan Array Dimensi Tiga (Kubik).

  1. Array Dimensi Satu
    Array dimensi satu merupakan bentuk yang sangat sederhana dari array. Setiap elemen array mempunyai subskrip/indeks. Fungsi indeks/subskrip ini antara lain: a) menyatakan posisi elemen pada array tersebut; b) membedakan dengan elemen lain.
  2. Array Dimensi Dua
    Array dimensi dua adalah array yang membutuhkan dua subskrip/indeks. Indeks pertama untuk menyatakan posisi baris, Indeks kedua untuk menyatakan posisi kolom.
  3. Array Dimensi Tiga
    Array dimensi tiga adalah array yang memerlukan tiga indeks. Pada umumnya, suatu array berdimensi N memerlukan N indeks untuk setiap elemennya.
  4. Array Multi Dimensi
    Array multi dimensi adalah array yang dapat menampung array lain yang bisa jadi memiliki elemen array lainnya (berdimensi banyak).

Referensi

  1. Hidayati. 2016). Modul Struktur Data. Jakarta: BSI.
  2. Sjukani, M. (2012). Struktur Data. Jakarta: Mitra Wacana Media.

Tinggalkan Komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *