Selasa, 19 Mei 2020

Algoritma dan Struktur Data

Halo, nama saya Qitfirul Dwi Cahyono
Saya kuliah di Universitas Muhammadiyah Sidoarjo
Fakultas Sains dan Teknologi Prodi Informatika

Saya disini akan membagikan hasil rangkuman saya yang sudah saya dapatkan dari praktikum Algostruk.

Pokok bahasan 1
(Struktur Data, Array,Pointer, dan Struktur)

A.  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.
B.  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
-Array Dua Dimensi
-Array Multidimensi / Dimensi Banyak
C.  Konsep Dasar Pointer
Pointer adalah sebuah variabel yang berisi lamat variabel yang lain. Suatu ponter dimaksudkan untuk meunjuk koperatore suatu alamat memori sehingga alamat dari suatu variabel dapat diketahui dengan mudah.
D.  Konsep Dasar Struktur
Struktur  adalah  koleksi  dari  variabel  yang  dinyatakan  dengan  sebuah nama, dengan sifat setiap variabel dapat memiliki tipe yang berlain


Struktur biasa dipakai untuk mengelompokkan beberapa informasi yang berkaitanmenjadi  sebuah satu  kesatuan.  Contoh  sebuah  struktur  adalah informasi data tanggal, yang berisi tanggal, bulan, dan tahun.

Pokok Bahasan 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.

Operasi Dasar pada Linked List :
IsEmpty : Fungsi ini menentukan apakan linked list kosong atau tidak.
Size : operasi untuk mengirim jumlah elemen di linked list.
Create : operasi untuk penciptaan list baru yang kosong



Insertfirst : operasi penyisipan simpul sebagai simpul pertama.
Insertafter : operasi untu penyisispan simpul setelah simpul tertentu.
Insertlast : operasi untuk penyisipan simpul sebagai simpul terakhir.
Insertbefore : operasi untuk penyisipan simpul sebelum simpul tertentu.
Deletefirst : operasi penghapusan simpul pertama.
Deleteafter : operasi penghapusan setelah simpul tertentu.
Deletelast : operasi penghapusan simpul terakhir.

Pokok Bahasan 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.

Pokok Bahasan 4
(Queue / Antrian)

Antrian adalah suatu kumpulan data yang penambahan elemennya 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 lain simulasi antrian didunia nyata (antrian pembelian tiket),sistem  jaringan  komputer  (pemrosesan  banyak  paket  yang  datang  dari banyak koneksi pada suatu host,bridge,gateway),dan lain-lain.

Elemen Karakteristik penting antrian sebagai berikut :
a.   Elemen antrian yaitu item-item data yang terdapat dalam antri
b.   Head/front (elemen terdepan antrian).
c.   Tail/rear (elemen terakhir antrian).
d.   Jumlah antrian pada antrian (count).
 e.   Status/kondisi antrian,ada dua yaitu:
-Penuh                                    
Bila elemen diantrian mencapai kapasitas maksimum antrian.Pada kondisi ini,tidak   mungkin  dilakukan  penambahan  ke  antrian.Penambahan  di elemen menyebabkan kondisi Overflow.
-Kosong
Bila tidak ada elemen antrian.Pada kondisi ini,tidak mungkin dilakukan pengambilan elemen antrian.Pengambilan elemen menyebabkan kondisi kesalahan Underflow.
Operasi-operasi pokok pada antrian diantaranya adalah :
1.   Create             Membuat antrian baru.
2.   IsEmpty          Untuk memeriksa apakah Antrian sudah penuh atau belum.
3.   IsFull              mengecek apakan Antrian sudan penuh atau belum.
4.   Enqueue/Insert           menambahkan           elemen           kedalam antrian,penambahan elemen selalu


Pokok Bahasan 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 sangan  memudahkan untuk  memecahkan permasalahan  yang kompleks.Sifat-Sifat rekursif :
Dapat digunakan ketika inti dari masalah terjadi berulang kali
Sedikit lebih efisien 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 pemanggilnya diselesaikan.


Pokok Bahasan 6
(sorting / Pengurutan)

Pengurutan data (sorting) didefinisikan sebagai suatu proses untuk menyusun kembali himpunan obyek menggunakan aturan tertantu.Ada dua macam urutan yang biasa 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.

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.Kalau 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.
2.   Selection Sort
Metode selesi melakukan pengurutan dengan cara mencari data yang terkecil kemudian  menukarkanya  dengan  data  yang  digunakan  sebagai acuan  atau  sering  dinamakan  pivot.Selama  proses,pembandingan  dapengubahan  hanya  dilakukan  pada  indeks  pembanding  saja,pertukaran data  secara  fisik  terjadi  pada  akhir  proses.
3.   Merge Sort
Algoritma Merge Sort ialah algoritma pengurutan yang berdasarkan pada strategi divide atau conquer.Algoritma ini terdiri dari dua bagian utama,pambagian list yang diberikan untuk di-sort ke dalam beberapa sublist yang lebih kecil,dan sort (mengurutkan) dan merge (menggabungkan) sublist-sublist yang lebih kecil ke dalam list hasil yang sudah diurutkan.
Berikut Contoh program Ascending dengan menggunakan bubble sort :