Selasa, 06 Maret 2018

Soal Dan Jawaban Algoritma & Struktur Data dalam Bahasa C/C++





1.      Seorang programer yang baik harus mengetahui cara pembuatan program yang bagus. Berikan penjelasan tentang program yang bagus itu seperti apa!
Jawaban :

Sebuah program dapat dikatakan program yang bagus apabila program tersebut ketika dijalankan dapat dijalankan dengan benar, program mudah bicara dan dimengerti, program mudah didebug, dan program mudah dilakukan modifikasi. Selain itu, ketika dijalankan program harus menghasilkan out[ut yang benar serta berjanan dengan efisien.

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!
Jawaban :

Secara umum struktur data dapat dikelompokkan menjadi dua jenis, yaitu struktur data sederhana ( primitive ) dan struktur data majemuk ( non-primitive ). Struktur data sederhana adalah tipe data dasar yang didukung oleh bahasa pemrograman, misalnya tipe integer, real, char, dan boolean. Sedangkan struktur data majemuk adalah struktur data yang dibuat menggunakan struktur data primitive. Contoh struktur data majemuk tersebut antara lain linked list, stack, tree, dan graph. Struktur data majemuk lebih lanjut dapat diklasifikasikan menjadi dua kategori, yaitu linier dan non linier.

3.       Jelaskan beberapa aplikasi perangkat lunak komputer yang menggunakan struktur data sebagai dasar pengembangannya.
Jawaban :

Penggunaan aplikasi perangkat lunak komputer yang menggunakan struktur data sebagai dasar pengembangannya sebagi contoh adalah dengan pengaplikasian struktur data sistem queue pada antrian printer job dalam sebuah jaringan. Queue  sendiri adalah barisan elemen yang apabila ditambah maka bertambah nya berada pada diposisi belakang  dan jika dilakukan pengambilan elemen dilakukan di elemen paling depan, oleh karena itu queue bersifat FIFO (first in first out).

Queue merupakan salah satu contoh aplikasi dari double linked list yang sering kita temui dalam kehidupan sehari-hari, misalnya saat kita melakukan print data pada printer dalam sebuah jaringan dimana terdapat banyak pengguna dalam suatu jaringan itu, maka akan di lakukan proses antrian data untuk proses print. Istilah yang sering dipakai, data masuk dalam sebuah antrian adalah enqueue. Dalam suatu antrian, yang datang terlebih dahulu akan dikerjakan lebih dahulu (first-in, first-out), maka dalam system print dalam job printer jaringan yang melakukan print terlebih dulu ,itulah yang akan dikerjakan oleh printer jaringan itu terlebih dulu.
Istilah yang sering dipakai bila data keluar dari antrian adalah dequeue.

4.       Abstract Data Tipe ( ADT ) merupakan cara untuk melihat struktur data, dengan fokus pada apa yang akan dilakukan dan mengabaikan proses yang terdapat didalamnya saat menjalankan eksekusi. Buatlah algoritma yang menganalogikan abstraksi perangkat elektronik.
Jawaban :

Algoritma cara menghidupkan komputer
1.       Colokan kabel ke stopkontak
2.       Tekan tombol ON ( stabilizer ), CPU, dan monitor
3.       Tunggu beberapa saat sampai komputer selesai booting
4.       Setelah booting selesai jika terdapat perintah “masukan password” isi dengan password yang pernah anda buat di komputer tersebut.
5.       Setelah selesai maka akan muncul layar dekstop dan komputer siap digunakan.

5.       Berikan penjelasan dan bandingkan beberapa pendekatan yang dapat digunakan untuk merancang sebuah algoritma.
Jawaban :

Terdapat dua pendekatan umum yang bisa digunakan untuk merancang sebuah algoritma, yaitu dengan pendekatan perancangan top-down dan juga pendekatan perancangan secara bottom-up. Pendekatan perancangan secara top-down merupakan perancangan yang dimulai dari desain abstrak, dan disain ini disempurnakan menjadi lebih kongkret disetiap langkah hingga tercapai suatu level yang tidak memerlukan perbaikan yang lebih lanjut. Sedangkan pendekatan perancangan secara bottom-up merupakan kebalikan dari pendekatan perancangan secara top-down, dimana dalam pendekatan ini dimulai dari modul paling dasar, kemudian dilanjutkan ke perancangan modul ke tingkat yang lebih tinggi. Modul yang mempunyai tingkat lebih tinggi diimplementasikan menggunakan modul yang mempunyai tingkat lebih rendah.

6.       Sebuah program dapat memiliki lebih dari satu algoritma. Rancang algoritma untuk program kalkulator yang dapat melakukan operasi penjumlahan dan pengurangan.
Jawaban :

1.       Mulai
2.       Definisi variabel angka1, angka2
3.       Definisi operator jumlah
4.       Masukan angka1
5.       Masukan angka2
6.       Tampilkan hasil jumlah
7.       Definis operator kurang
8.       Masukan angka1
9.       Masukan angka2
10.   Tampilkan hasil kurang
11.   End

7.       Ukurlah kompleksitas algoritma yang anda rancang menggunakan notasi Big O!
Jawaban:

i:=0;
while i<N do
begin
  i:=i+1;
  j:=0;
  while j<N do
  begin
     j:=j+1;
     k:=0;
     while k<N do
     begin
        k:=k+1;
        //statement;
     end;
  end;
end;

code diatas mempunyai kompleksitas O(N3) karena program diatas memiliki triple looping.

Daftar Pustaka:
http://thoat-thoat.blogspot.co.id/2012/03/program-c-untuk-hasil.html
http://gilang11018035.blogspot.co.id/2012/03/cara-menghidupkan-komputer-pasangkan.html
http://kurakuraprogrammer.blogspot.co.id/2010/08/big-o-notation-notasi-big-o.html
http://belajar-ilmu-informatik.blogspot.co.id/
http://aguzadytekaje.blogspot.co.id/2015/03/pengaplikasian-struktur-data-dengan.html
Sukirman, dan Wantoro, Jan. 2017. Algoritma & Struktur Data dalam Bahasa C/C++. Surakarta: Muhammadiyah University Press
Load disqus comments

0 komentar