Rabu, 20 Mei 2020

Algoritma Struktur Data

ALGORITMA STRUKTUR DATA

Modul 1 STRUKTUR DATA, ARRAY, POINTER, DAN STRUKTUR
  1. Konsep Dasar Struktur Data
Struktur data adalah sebuah bagian dari ilmu pemrograman dasar yang mempunyai karakteristik yang terkait dengan sifat dan cara penyimpanan sekaligus penggunaan atau pengaksesan data.
Struktur data bertujuan agar cara mempresentasikan datadalam membuat program dapat dilakukan secara efisien dalam pengolahan di memori dan pengolahan penyimpanan dari program ke storage juga lebih mudah dilakukan.
  1. Konsep Dasar Array
Array adalah kumpulan elemen-elemen data. Kumpulaan elemen tersebut mempunyai suusnan tertentu yang teratur. Jumlah elemen terbatas, dan semua elemen mempunyai tipe data yang sama. Jenis-jenis array:
Array Satu Dimensi
Struktur array satu dimensi dapat dideklarasikan dengan bentuk umum berupa : tipe_var nama_var[ukuran];
Dengan :
-          Tipe_var : untuk menyatakan jenis elemen array (misalnya int, char, unsigned).
-          Nama_var : untuk menyatakan nama variabel yag dipakai.
-          Ukuran : untuk menyatakan jumlah maksimal elemen array.
Contoh : float nilai_ujian[5];
Array Dua Dimensi
Tipe data array dua dimensi biasa digunakan untuk menyimpan, mengolah maupun menampilkan suatu data dalam bentuk table atau matriks. Untuk mendeklarasikan array agar dapat menyimpan data adalah :
Tipe_var nama_var[ukuran1][ukuran2];
Dimana :
-          Ukuran 1 menunjukkan jumalah/nomor baris.
-          Ukuran 2 menunjukkan jumlah/nomor kolom.
Jumlah elemen yang dimiliki array dua dimensi dapat ditentukan dari hasil perkalian :
Ukuran1 x ukuran2.
Seperti halnya pada array satu dimensi, data array dua dimensi akan ditempatkan pada memori secara berurutan.
Array Multidimensi / Dimensi Banyak
Array berdimensi banyak atau multidimensi terdiri array yang tidak terbatas hanya dua dimensi saja. Bentuk umum pendeklarasian array multidimesni adalah : tipe_var nama_var[ukuran1][ukuran2]…[ukurann];
Contoh : int data_angaka[3][6][6];
Yang merupakan array tiga dimensi

Modul 2 LINKED LIST (SENARAI)
Linked list adalah sejumlah objek atau elemen yang dihubungkan satu dengan lainnya sehingga membentuk suatu list. Sdangkan objek atau elemen itu sendiri adalah merupakan gabungan beberapa data (variabel) yang dijadikan satu kelompok atau structure atau record yang dibentuk dengan perintah struct. Untuk menggabungkan objek satu dengan lainnya, diperlukan paling tidak sebuah variabel yang bertipe pointer. Syarat linked list adalah harus adapat diketahui alamat simpul pertama atau biasa dipakai variabel First/Start/Header.

Istilah – istilah dalam linked list :
-          Simpul
Simpul terdiri dari dua bagian yaitu :
a.       Bagian data
b.      Bagian pointer yang menunjuk ke simpul berikutnya
-          First/Header
Variabel First/Header berisis alamat (pointer)/acuan (reference) yag menunjuk lokasi simpul pertama linked list, digunakan sebagai awal penelusuran linked list.
-          Nil/Null
Tidak bernilai, digunakan untuk menyatakan tidak mengacu ke manapun.
-          Simpul Terakhr (Last)

Simpul terakhir linked list berari tidak menunjuk simpul berikutnya. Tidak terdapat alamat disimpan di field pointer (bagian kedua dari simpul). Nilai null atau nil disimpan di field pointer di simpul terakhir.

Modul 3 STACK (TUMPUKAN)
Stack adalah kumpula elemen-elemen yang tersimpan dalam suatu tumpukan. Aturan penyisispan dan penghapusan elemennya tertentu :
-          Penyisispan selalu dilakukan “di atas “ TOP
-          Penghapusan selalu dilakukan pada TOP
Karena aturan penyisipan dan penghapusan semacam itu, TOP adalah satu-satunya alamat tempat terjadi operasi, elemen yang ditambahkan paling akhir akan menjadi elemen yang akan dihapus. Dikatakan bahwa elemen Stack tersususn secara LIFO (Last In First Out).
Seperti halnya jika kita mempunyai sebuah tumpukan buku, agar tumpukan buku itu tidak ambruk ketika kita mengambil sebuah buku di dalam tumpukan itu amaka harus diambil satu per satu dari tumpukan yang paling atas dari tumpukan.
Gambar 3.1 Ilustrasi Stack
Perhatikan bahwa dengan definsi semacam ini, representasi tabel sangat tepat untuk mewakili stack, karena operasi penambahan dan pengurangan hanya dilakukan disalah satu ujung tabel.
Beberapa contoh penggunaan stack adalah pemanggilan prosedur, perhitugan ekspresi aritmatika, rekursifitas, backtracking, peaganan interupsi, dan lain-lain. Karakteristik penting stack sebagai berikut :
  1. Elemen stack yaitu item-item data di elemen stack
  2. TOP (elemen puncak dari stack)
  3. Jumlah elemen pada stack
  4. Status/kondisi stack,
Modul 4 QUEUE (ANTRIAN)
Antrian adalah suatu kumpulan data yang penambahan elemenya hanya bisa dilakukan pada suatu ujung (disebut sisi belakang atau REAR), dan penghapusan atau pengambilan elemen dilakukan lewat ujung yang lain (disebut sisi depan atau FRONT). Prinsip yang digunakan dalam antrian ini adalah FIFO (First In First Out) yaitu elemen yang pertama kali masuk akan keluar pertama kalinya.
Penggunaan antrian antara lain simulasi antrian di dunia nyata (antrian pembelian tiket), sistem jaringan computer (pemrosesan banyak paket yang dating dari banyak koneksi pada host, bridge, gateway), dan lain-lain.
Gambar 4.1 Ilustrasi Antrian dengan 8 Elemen
Karakteristrik penting antrian sebagai berikut :
  1. Elemen antrian yaitu item-item data yang terdapat dalam antrian.
  2. Head/front (elemen terdepan antrian).
  3. Tail/rear (elemen terakhir antrian).
  4. Jumlah antrian pada antrian (count).
  5. Status/kondisi antrian, ada dua yaitu :
-          Penuh
Bila elemen di antrian mencapai kapasitas maksimum antrian. Pada kondisi ini, tidak mungkin dilakukan penambahan ke antrian. Penambahan di elemen menyebabkan kondisi kesalahan Overflow.
-          Kosong
Bila tidak ada elemen antrian. Pada kondisi ini, tidak mungkin dilakukan pengambilan elemen antrian. Pengambilan elemen menyebabkan kondisi kesalahan Underflow.

Modul 5 REKURSIF
Fungsi rekursif adalah suatu fungsi yang memanggil dirinya sendiri, artinya fungsi tersebut dipanggil di dalam tubuh fungsi itu sendiri. Contoh menghitung nilai factorial. Rekursif sangat memudahkan untuk memecahkan permasalahan yang kompleks. Sifat- sifat rekursif :
-          Dapat digunakan ketika inti dari masalah terjadi berulang kali.
-          Sedikit lebih efisian dari iterasi tapi lebih elegan.
-          Method-methodnya dimungkinkan untuk memanggil dirinya sendiri.
Data yang berada dalam method tersebut seperti argument disimpan sementara ke dalam stack sampai method pemanggil diselesaikan.

Modul 6 SORTING (PENGURUTAN)
Pengurutan data (sorting)  didefinisikan sebagai suatu proses untuk menyusun kembali himpunan obyek menggunkan aturan tertentu. Ada dua macam urutan yang bisa digunakan dalam proses pengurutan yaitu :
  • Urutan naik (ascending) yaitu dari data yang mempunyai nilai paling kecil sampai paling besar.
  • Urutan turun (descending) yaitu dari data yang mempunyai nilai paling besar sampai paling kecil.
Contoh : data bilangan 5, 2, 6, dan 4 dapat diurutkan naik menjadi 2, 4, 5, 6 atau diurutkan menjadi 6, 5, 4, 2. Pada data yang bertipe char, nilai data dikatakan lebih kecil atau lebih besar dari yang lain didasarkan pada urutan relative (collating sequence) seperti dinyatakan dalam tabel ASCII. Keuntungan dari data yang sudah dalam keadaan terurut yaitu :
Data mudah dicari, mudah untuk dibetulkan, dihapus, disisipi atau digabungakan. Dalam keadaan terurutkan, kita mudah melakukan pengecekan apakah ada data yang hilang. Misalnya kamus Bahasa, buku telepon. Mempercepat proses pencarian data yang harus dilakukan berulang kali.
Beberapa factor yang berpengaruh pada efektifitas suatu algoritma pengurutan antara lain :
-          Banyak data yang diurutkan.
-          Kapasitas pengingat apakah mampu menyimpan semua data yang kita miliki.
-          Tempat penyimpanan data, misalnya piringan, pita tau kartu, dll.
Beberapa algoritma metode pengurutan dan prosedurnya sebagai berikut :
  1. Bubble Sort
Bubble Sort  adalah suatu metode pengurutan yang membandingkan elemen yang sekarang dengan elemen berikutnya. Apabila elemen sekarang > elemen berikutnya, maka posisinya ditukar. Kalua tidak, tidak perlu ditukar. Diberi nama “Bubble” karena proses pengurutan secara berangsur-angsur bergerak/berpindah ke posisinya yang tepat, seperti gelembung yang keluar dari sebuah gelas bersoda.
Proses Bubble Sort:
Data paling akhir dibandingkan dengan data di depanya, jika ternyata lebih kecil atau besar maka tukar sesuai dengan kekuatan ( descending atau ascending). Dan pengecekan yang sama dilakukan terhadap data yang selanjutnya sampai data yang paling awal.

umsida.ac.id | sim.umsida.ac.id

Tidak ada komentar:

Posting Komentar