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/

Komentar

Postingan populer dari blog ini

Linked list

Pengertian struktur data dan jenis-jenisnya

program binary tree c++