Tugas Struktur Data
1. Seorang
progammer yang baik harus mengetahui cara pembuatan program yang bagus. Berikan
penjelasan tentang program yang bagus itu seperti apa!
Jawab:
Tujuan dari
pembuatan program tentu saja adalah merancang program yang bagus, dimana
program dikatakan bagus berdasarkan buku jika:
a.
Program berjalan secara benar
b.
Program mudah dibaca dan dimengerti
c.
Program mudah di debug
d.
Program mudah dilakukan modifikasi
Selain itu,
sebuah program juga harus menghasilkan output yang benar serta berjalan secara efisien.
Dikatakan efisien jika dalam menjalankan eksekusi program memiliki durasi waktu
yang singkat dan hanya memerlukan ruang memory yang kecil. Untuk menulis
program yang efisien maka perlu mengaplikasikan konsep manajemen data yang
pasti.
2. Struktur
data merupakan suatu cara untuk menyimpan dan mengatur sebuah data supaya dapat
digunakan secara efektif dan efisien. Sebutkan dan jelaskan jenis-jenis
struktur data secara umum.
Jawab:
a.
Struktur data primitif atau sederhana
Struktur data primitif adalah tipe data dasar yang
didukung oleh bahasa pemrograman, misalnya tipe integer, real, char, boolean,
dll.
b.
Struktur data non-primitif atau majemuk
Struktur data non-primitf adalah struktur data yang
dibuat menggunakan struktur data primitif. Struktur data non-primitif lebih
lanjut dapat diklasifikasikan kedalam dua kategori, yaitu:
·
Linier
-
Array (Larik)
Array dalah struktur data statik yang menyimpan
sekumpulan elemen yang bertipe sama, misalnya tipe sederhana, tipe terstruktur
dan lain-lain. Setiap elemen dapat diakses langsung melalui indeksnya. Indeks
array harus berupa tipe data yang berurutan dan banyaknya elemen larik harus
diketahui dahulu sebelum program dieksekusi. Larik dapat diakses berdasarkan
indeksnya. Tipe elemen larik dapat berupa tipe sederhana, tipe terstruktur,
atau tipe larik lain.
-
Stack(tumpukan)
Tumpukan merupakan jenis senarai berantai yang
menerapkan konsep LIFO(Last In first Out). Hal ini berarti elemen struktur yang
dimasukkan ke dalam rangkain terakhir kali adalah yang pertama kali akan diproses.
Tumpuka (stack) mempunya 2 operasi dasar yang dapat dilakukan yaitu, push() dan
pop().
-
Queue(Antrian)
Prinsip utama dalam konsep queue adalah FIFO yang
merupakan singkatan dari First In First Out, artinya adalah data yang pertama
kali dimasukkan atau disimpan, maka data tersebut adalah yang pertama kali akan
diakses atau dikeluarkan. Sebuah queue di dalam program komputer dideklarasikan
sebagi sebuah tipe bentukan baru, di dalam bahasa C, biasa disebut struct.
Sebuah struktur data dari sebuah queue setidaknya harus mengandung dua tiga
variabel, yakni variabel HEAD yang akan berguna sebagai penanda bagian depan
antrian, variabel TAIL yang akan berguna sebagai penanda bagian belakang
antrian dan ARRAY DATA yang akan menyimpan data-data yang dimasukkan ke dalam
queue tersebut.
-
Linked List(Senarai brantai)
Penggunaan struktur data linked list dimana penambahan
data mengguakan jenis ini dapat dilakukan dari depan maupun belakang sehingga
flesibilitasnya menjadi lebih tinggi. Terdapat bebebrap jenis senarai berantai,
yaitu single linked list, double linked
list, circular linked list, dan multiple linked list.
·
Non Linier
-
Binary Tree(Pohon Biner)
Sebuah pohon (tree) pada dunia pemrograman terdiri
dari elemen-elemen yang dinamakan node atau simpul, yang mana hubungan antar
simpul bersifat hirarki. Simpul paling atas dari sebuah hirarki (one to many)
dinamakan root. Simpul yang berda di bawah root secara langsung dinamakn
anak(chield) dari root, yang biasnay jiga memiliki anak di bawahnya lagi.
Sehingga bisa disimpulkan, kecuali root, masing-masing simpul dalam hirarki
mempunayi satu induk(parent). Tree dapat juga didefinisikan sebagai kumpulan
simpul (node) dengan satu elemen khusus yang disebut sebagai root. Node lain
dalam tree ini terpisah kedalam himpunan yang tak salaing berhubungan satu sama
lainnya, yang kemudian disebut sebagi subtree.
-
Graph
Struktur data jenis graph ini berbentuk
network/jaringan dengan hubungan antar elemennya adalah many-to-many. Definisi
dari graph sendiri adalah himpunan atau kumpulan node(simpul) dalam bidang dua
dimensi yang dihubungkan dengan sekumpulan garis(sisi). Graph dapat digunakan
untuk menggambarkan objek diskrit dan hubungan antara objek tersebut.
Representasi visual dari graph yaitu dengan menytakan objek sebagai node atau
bulatan atau titik(vertex), sedangkan relasi anatara objek tersebut dinyatakan
dengan garis(edge).
3. Jelaskan
beberapa aplikasi perangkat lunak komputer yang menggunakan struktur data
sebagai dasar pengembangannya.
Jawab:
a.
DBMS (Database Management System) adalah
perangkat lunak yang menangani semua pengaksesan database. Mempunyai fasilitas
membuat, mengakses, memanipulasi dan memelihara basis data. Atau merupakan
sisitem softwere yang memungkinkan seorang user dapat mendefinisikan, membuat,
dan memelihara serta mendapatkan akses terkontrol terhadap data.DBMS dilengkapi
dengan bahasa yang berorientasi pada data (High Level Data Language) yang
sering disebut juga sebagai bahasa generasi ke 4 (fourth generation language).Dimana
model aplikasi jaringan antar data dilakukan menggunakan graph dan hierarki
model menggunakan tree.
b.
RDMS(Relational Database Mangement System)
merupakan database yang didalamnya dapat terdiri dari banyak tabel, dimana
masing-masing tabel memepunyai fungsi dan kegunaan tersendiri dan antara
masing-masing table tersebut dapat dihubungkan dengan relationship pada field
primary key dan foreign key nya. RDMS sendiri adalah sebuah array.Contoh
database yang menganut RDMS adalah microsoft Acces, SQL, Server, MySQL,
OpenOffice Base, dan Oracle.
4. Abstract
Data Type(ADT) merupakan cara untuk melihat struktur data, dengan fokus pada
apa yang dilakukan dan mengabaikan proses yang terdapat didalamnya saat
menjalankan ekseskusi. Buatlah algoritma yang menganalogikan abstraksi
perangkat elektronik.
Jawab:
Analogi sebuah
perangkat elektronik misalnya TV, yang bisa dinyalakn dan dimatikan dari jarak
jauh, memindah saluran, mengatur volume, dan menambahkan komponen eksternal
misalnya speaker, VCD player, flashdisk atau hardisk eksternal, tetapi pemilik
Tv tidak menegetahui detail internel operasi yang berjalan. Dengan demikian
dapat dikatakan bahwa TV tersebut memisahkan implementasi internalnya dari
interface external seperti tombol matikan, pemindah saluran, dan pengatur
volume, tanpa mengetahui operasi didalamnya.
Algoritma :
Langkah 1: Masukkan
ujung kabel TV ke stopkontak
Langkah 2:
Nyalakan TV dengan menekan Tombol on patau power
Langkah 3:
Mengganti saluran TV sesuai keinginan dengan menggunakan remote tv
Langkah 4: Untuk
mengatur besar kecilnya suara tekan tombol volume
Langkah 5: Jika
ingim mematikan TV tekan tombol off atau power
5. Berikan
penjelasan dan bandingkan beberapa pendekatan yang dapat digunakan untuk
merancang sebuah algoritma.
Jawab:
Terdapat dua
pendekatan umum yang bisa digunakan dalam merancang algoritma, yaitu :
a.
Pendekatan perancangan secara top-down
Pendekatan perancangan secara top-down dimulai dengan
cara membagi algoritma yang kompleks menjadi satu atau lebih dari satu modul.
Modul yang terbagi ini masih bisa diuraikan lagi menjadi beberapa sub-modul,
dan proses ini dilakukan berulang-ulanag hingga kompleksitas modul yang
diinginkan terpenuhi. Metode perancanagn top-down merupakan bentuk perbaikan
secara bertahap yang dimulai dengan modul paling atas kemudian secara bertahap
menambah modul lain yang dipanggil.
b.
Pendekatan perancangan secara bottom-up
Dalam pendekatan ini dimulai dengan pembuatan modul paling
dasar, kemudian dilanjutkan ke perancangan modul tingkat yang lebih tinggi.
Modul yang memiliki tingkat lebih tinggi diimplementasikan menggunakan operasi
yang dilakukan oleh modul tingkat lebih rendah. Dengn demikian, sub-modul pada
pendekatan ini dikelompokkan secara bersama untuk membentuk tingkat modul yang
lebih tinggi. Proses ini diulang hingga desain algoritma yang lengkap
terpenuhi.
Perbandingan kedua pendekatan
diatas adalah jika pendekatan top-down mengikuti perbaikan secara bertahap
dengan menguraikan algoritma ke dalam modul secara terkelola, sementara
pendekatan bottom-up mendefinisikan modul terlebih dahulu baru kemudian
mengelompokkan beberapa modul secara bersama untuk memebentuk modul baru pada
tingkat yang lebih tinggi.
6. Sebuah
program dapat memiliki lebih dari satu algoritma. Rancang algoritma untuk
program kalkulator yang dapat melakukan operasi penjumlahan dan pengurangan.
Jawab:
Start program
Masukkan angka
pertama sebagai variabel b
Masukkan angka
kedua sebagai variabel c
Masukan pilihan
operasi sebagai berikut,
“1” untuk
penjumlahan
“2” untuk
pengurangan
Jika input 1
maka hitung hasil = b + c dan cetak hasilnya
Jika input 2
maka hitung hasil = b – c dan cetak hasilnya
Program end
7. Ukurlah
kompleksitas algoritma yang anda rancang
menggunakan notasi Big O.
Jawab:
Algoritma pada
no.6
Hasil = b+c
Hasil = b-c
Memiliki kompleksitas
algoritma O(1) yang artinya Waktu pelaksanaan tetap, tidak tergantung pada
ukuran masukan. Biasanya waktu dihitung dari berapa banyak jumlah operasi yang
dilakukan algoritma itu. Untuk operasi sederhana seperti penjumlahan, pengurangan,
dsb. dianggap satu operasi. Jumlah langkah untuk menghitung b + c dan b – c sama,
hal tersebut yang menyebabkan algoritma ini dikatakan memiliki kompleksitas
konstan.
sumber:
https://jeneptewisudawati.wordpress.com/2015/10/09/kompleksitas-algoritma/amp/
sumber:
https://jeneptewisudawati.wordpress.com/2015/10/09/kompleksitas-algoritma/amp/
Komentar
Posting Komentar