Assalamualaikum wr wb.
Soal Dan Jawaban Algoritma & Struktur Data dalam Bahasa C/C++
(1).Seorang progammer yang baik harus mengetahui cara membuat program yang bagus.Berikan penjelasan tentang program yang bagus itu seperti apa?
Jawaban:
Jawaban:
program berjalan
dengan baik
Program mudah dibaca
dan mudah dimengerti
Program mudah
didebug
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 memori yang kecil.dengan demikian, untuk menulis program yang
efisien maka perlu mengaplikasikan konsep manajemen data yang pasti.
Suatu program yang baik
dibutuhkan suatu standar sehingga akan memudahkan pemrogram dalam merancang
dan merawat program, yaitu ;
1. Pemecahan Masalah, terdiri dari :
a. Teknik TOP-DOWN
Suatu masalah yang besar
atau komplek akan dibagi-bagi ke dalam beberapa kelompok masalah yang lebih
kecil dan dianalisa sehingga apabila masih memungkinkan untuk dibagi lagi akan
dijadikan subbagian lalu disusun langkah-langkah untuk menyelesaikan masalah
secara detail
b. Teknik BOTTOM-UP
Pemecahan masalah dilakukan dengan menggabungkan prosedur-prosedur yang menjadi suatu kesatuan program guna menyelesaikan masalah tersebut
Pemecahan masalah dilakukan dengan menggabungkan prosedur-prosedur yang menjadi suatu kesatuan program guna menyelesaikan masalah tersebut
2. Penyusunan Program, kriteria yang harus diperhatikan
yaitu :
a. Kebenaran Logika dan Penyusunan
Program yang disusun harus memiliki kebenaran logika dalam pemecahan masalah dan penulisan. Program harus memiliki ketepatan, ketelitian dan kebenaran sehingga hasilnya dapat dipercaya.
Program yang disusun harus memiliki kebenaran logika dalam pemecahan masalah dan penulisan. Program harus memiliki ketepatan, ketelitian dan kebenaran sehingga hasilnya dapat dipercaya.
b. Waktu Penulisan dan Eksekusi
Program
Program harus menentukan batas waktu minimum dalam penulisan program, dari awal hingga siap dioperasikan. Yg harus diperhatikan adalah bahasa pemrograman yang dipilih, algoritma yang disusun dan perangkat keras yang digunakan.
Program harus menentukan batas waktu minimum dalam penulisan program, dari awal hingga siap dioperasikan. Yg harus diperhatikan adalah bahasa pemrograman yang dipilih, algoritma yang disusun dan perangkat keras yang digunakan.
c. Perawatan dan Pengembangan Program
Penyusunan program harus mempunyai sifat dasar yaitu kesederhanaan dan kejelasan dari program yang nantinya akan dikembangkan.
Penyusunan program harus mempunyai sifat dasar yaitu kesederhanaan dan kejelasan dari program yang nantinya akan dikembangkan.
d. Portabilitas
Bahasa pemrograman yang baik haruslah bisa dipakai pada berbagai tipe komputer yang berbeda-beda dan berbagai jenis sistem operasi
Bahasa pemrograman yang baik haruslah bisa dipakai pada berbagai tipe komputer yang berbeda-beda dan berbagai jenis sistem operasi
3.Algoritma Pemrograman yang baik, dengan ciri-ciri :
a. Memiliki logika perhitungan atau metode yang tepat
dalam memecahkan masalah
b. Menghasilkan output yang tepat dan
benar dalam waktu yang singkat
c. Ditulis dengan bahasa yang standar secara sistematis dan rapi
sehingga tidak memiliki arti ganda
d. Ditulis dengan format yang mudah
dipahami dan diimplementasikan ke dalam bahasa pemrograman
e. Semua operasi yang dibutuhkan
terdefinisi dengan jelas
f. Semua proses harus selalu berakhir
setelah sejumlah langkah dilakukan
Untuk membuat suatu program yang besar dan
kompleks, pemrogram membutuhkan beberapa
tahapan-tahapan yang sistematis dan terpadu, yaitu :
1. Definisi Masalah
2. Analisis Kebutuhan
3. Desain Algoritma
4. Pengkodean
5. Bahasa Pemrograman
6. Testing dan Debugging
7. Dokumentasi
8. Pemeliharaan
Keterangan :
1.
Definisi Masalah
Pendefinisian masalah untuk mendapatkan
pemahaman tentang permasalahan yang ada, sehingga akan diperoleh asumsi yang
benar untuk memecahkan masalah dan menentukan batasan agar masalah menjadi tak
terbatas.
2. Analisis Kebutuhan
Digunakan untuk menentukan spesifikasi
fungsi, kemampuan dan fasilitas program dari program yang akan dibuat, yang
bermanfaat sebagai dasar dari evaluasi setelah pembuatan program selesai.
3. Desain Algoritma
Desain algoritma dibuat dengan tujuan
untuk menyelesaikan permasalahan. Algoritma yang
dibuat tidak
langsung jadi dan harus dikaji terus menerus sehingga diperoleh algoritma yang
paling
lengkap, tepat, benar dan relevan. Algoritma harus memiliki kebenaran secara
logika
sebelum siap
untuk diimplementasikan dalam bentuk program
4. Pengkodean
Pengkodean
menekan pada kesederhanaan dan kejelasan, meliputi :
a. Dokumentasi Kode
b. Deklarasi Data
c. Penyusunan Perintah
d. Input atau Output
e. Efisiensi
5. Bahasa pemrograman
Dalam menterjemahkan desain ke dalam bahasa
pemrograman aktual, sebagian besar kesulitan
telah harus sudah terpecahkan pada tahap sebelumnya sehingga pemrogram
bebasuntuk mencurahkan perhatian penuh pada pembuatan program.
Karakteristik dari bahasa pemrograman
mempunyai pengaruh yang penting terhadap berhasil tidaknya suatu program yang
akan di buat. Tahap selanjutnya adalah pemilihan bahasa pemrograman yang
berfungsi sebagai media untuk membuat program dan memahami serta sebagai alat
komunikasi antara pemrogram dan komputer.
Kriteria
yang digunakan untuk mengevaluasi pemilihannya adalah :
a. Bidang aplikasi yang sedang
dikerjakan
b. Kekomplekskan algoritma dan
perhitungan
c. Lingkungan dimana perangkat lunak
akan diterapkan
d. Pengetahuan staf akan bahasa
pemrograman
e. Ketersediaan kompiler yang baik
6. Testing dan
Debugging
Testing adalah menguji program sampai
dipenuhi bebas error lewat bermacam-macam kondisi atau dengan input yang
hasilnya dapat diprediksi. Testing tidak dapat secara absolut bisa yakin bahwa
program adalah benar karena untuk program besar bisa jadi setelah dipakai
sekian lama baru ditemukan error.
Debugging adalah mengoreksi error yang
terdeteksi meliputi menetapkan lokasi kode yang error dan mengoreksinya.
7. Dokumentasi
Merupakan
informasi dan gambaran tambahan yang sangat membantu untuk memahami sebuah kode
yang diberikan dengan tujuan untuk menjadi pedoman dan penjelasan bagi pemakai.
Dokumentasi
terbagi menjadi :
a. Dokumentasi internal, merupakan
bagian kode dan merupakan sebuah eksplanasi dari berbagai
aspek lewat komentar
aspek lewat komentar
b. Dokumentasi eksternal, dalam bentuk
manual dan catatan-catatan penting tentang program
Sebuah
perangkat lunak yang akan digunakan diharapkan mempunyai jangka hidup yang
panjang dan benar-benar memerlukan dokumentasi yang intensif jika perangkat
lunak berubah maka dokumentasi juga harus direvisi agar dapat merefleksikan
modifikasi yang dibuat.
8. Pemeliharaan
Digunakan
untuk menjabarkan aktivitas dan analisis sistem pada saat perangkat lunak telah
dipergunakan oleh pemakai.
Aktivitas yang terjadi pada fase pemeliharaan antara lain :
a. Penambahan atau
peningkatan atau juga perbaikan untuk perangkat lunak
b.Adaptasi perangkat lunak dengan lingkungan mesin
yang baru
c. Perbaikan permasalahan yang timbul,
meliputi aktivitas pembenaran kesalahan yang timbul setelah perangkat lunak
digunakan oleh pemakai.
Aktivitas
pemeliharaan biasanya akan menghabiskan biaya yang besar dari seluruh anggaran
pengembangan atau pembuatan perangkat lunak sehingga perangkat lunak yang
dihasilkan dapat diandalkan dan mudah dalam pemeliharaannya.
Pemeliharaan
perangkat lunak dapat dibedakan menjadi :
a.Corrective
Maintenance
Terjadi pada saat perangkat lunak dipakai
dan hasil yang didapat oleh pemakai tidak sesuai,
biasanya timbul pada saat keluaran yang
tidak sesuai
b.Adaptive
Maintenance
Terjadi karena adanya perkembangan dari
perangkat lunak atau perangkat keras sehingga
memerlukan modifikasi dari perangkat lunak
yang telah dibuat
c.Prefective
Maintenance
Terjadi pada saat perangkat lunak yang
telah dibuat, dilakukan pengujian dan kemudian
digunakan oleh pemakai lalu timbul
permintaan tambahan fungsi sesuai dengan keinginan
pemakai
d.Preventive
Maintenance
Terjadi seiring dengan perkembangan dari
perangkat lunak atau perangkat keras di masa
mendatang, misalnya saja penambahan
fungsi-fungsi atau melengkapi fungsi yang ada
(2).Struktur data merupakan suatu cara menyimpan dan mengatur sebuah data supaya dapat digunakan secara efektif dan efesien.Sebutkan dan jelaskan jenis-jenis struktur data secara umum?
Jawaban:
1. Struktur
Data Sederhana
a. Array (Larik).
adalah struktur data statik yang menyimpan sekumpulan elemen bertipe sama.
Setiap elemen diakses secara langsung melalui indeksnya. Indeks larik harus tipe data yang menyatakan keterurutan, misalnya: integer atau karakter. Banyaknya elemen larik harus sudah diketahui sebelum program dieksekusi. Tipe elemen larik dapat berupa tipe sederhana, tipe terstruktur atau tipe larik lain. Nama lain dari Array adalah Larik, tabel, atau vektor.
b. Record (catatan)
adalah kumpulan data yang terdiri dari beberapa field(isian) dengan berbagai macam tipe data.
2. Struktur Data Majemuk
a. Linier.
Stack(tumpukan)
adalah list linier yang dikenali berupa elemen puncaknya(top), aturan penyisipan dan penghapusan elemennya tertentu (penyisipan selalu dilakukan "diatas"(top) dan penghapusan selalu dilakukan pada "top").
Karena aturan penyisipan dan penghapusan semacam itu, "top" adalah satu- satunya alamat tempat terjadinya operasi. Elemen yang paling akhir ditambahkan akan menjadi elemen yang akan dihapus. Dapat dikatakan elemen stack akan tersusun secara LIFO(last in first out).
Queue(antrian)
adalah list linier yang dikenali berupa elemen pertama(head) dan elemen terakhir(tail), dimana aturan penyisipan dan penghapusan elemennya didefinisikan sebagai penyisipan selalu dilakukan setelah elemen terakhir, penghapusan selalu dilakukan pada elemen pertama dengan kondisi satu elemen dengan elemen lainnya dapat diakses melalui informasi "next".
List dan Multi-List(Daftar)
adalah sekumpulan list linier yang dengan elemen yang bertype sama, yang memiliki keterurutan tertentu, yang setiap elemennya terdiri dari 2 bagian.
b. Non-Linier.
Binary-Tree(Pohon biner)
adalah himpunan terbatas yang mungkin kosong atau terdiri dari sebuah simpul yang disebut sebagai akar dan dua buah himpunan lain yang disjoint yang merupakan pohon biner yang disebut sebagai sub-pohon kiri(left) dan sub-pohon kanan(right) dari pohon biner tersebut.
Pohon biner merupakan type yang sangat penting dari struktur data dan banyak dijumpai dalam berbagai terapan. Karakteristik yang dimiliki oleh pohon biner adalah bahwa setiap simpul yang paling banyak hanya memiliki dua buah anak, dan mungkin tidak punya anak.
Istilah- istilah yang digunakan sama dengan istilah pada pohon secara umum.
Graph(graf)
merupakan struktur data yang paling umum. Jika struktur linier memungkinkan pendefinisian keterhubungan sekuensial antar entitas data, struktur data tree memungkinkan pendefinisian keterhubungan hirarkis, maka struktur graph memungkinkan pendefinisian keterhubungan tak terbatas antara entitas data.
Banyak entitas- entitas data dalam masalah- masalah nyata secara alamiah memiliki keterhubungan langsung(adjacency) secara tak terbatas.
a. Array (Larik).
adalah struktur data statik yang menyimpan sekumpulan elemen bertipe sama.
Setiap elemen diakses secara langsung melalui indeksnya. Indeks larik harus tipe data yang menyatakan keterurutan, misalnya: integer atau karakter. Banyaknya elemen larik harus sudah diketahui sebelum program dieksekusi. Tipe elemen larik dapat berupa tipe sederhana, tipe terstruktur atau tipe larik lain. Nama lain dari Array adalah Larik, tabel, atau vektor.
b. Record (catatan)
adalah kumpulan data yang terdiri dari beberapa field(isian) dengan berbagai macam tipe data.
2. Struktur Data Majemuk
a. Linier.
Stack(tumpukan)
adalah list linier yang dikenali berupa elemen puncaknya(top), aturan penyisipan dan penghapusan elemennya tertentu (penyisipan selalu dilakukan "diatas"(top) dan penghapusan selalu dilakukan pada "top").
Karena aturan penyisipan dan penghapusan semacam itu, "top" adalah satu- satunya alamat tempat terjadinya operasi. Elemen yang paling akhir ditambahkan akan menjadi elemen yang akan dihapus. Dapat dikatakan elemen stack akan tersusun secara LIFO(last in first out).
Queue(antrian)
adalah list linier yang dikenali berupa elemen pertama(head) dan elemen terakhir(tail), dimana aturan penyisipan dan penghapusan elemennya didefinisikan sebagai penyisipan selalu dilakukan setelah elemen terakhir, penghapusan selalu dilakukan pada elemen pertama dengan kondisi satu elemen dengan elemen lainnya dapat diakses melalui informasi "next".
List dan Multi-List(Daftar)
adalah sekumpulan list linier yang dengan elemen yang bertype sama, yang memiliki keterurutan tertentu, yang setiap elemennya terdiri dari 2 bagian.
b. Non-Linier.
Binary-Tree(Pohon biner)
adalah himpunan terbatas yang mungkin kosong atau terdiri dari sebuah simpul yang disebut sebagai akar dan dua buah himpunan lain yang disjoint yang merupakan pohon biner yang disebut sebagai sub-pohon kiri(left) dan sub-pohon kanan(right) dari pohon biner tersebut.
Pohon biner merupakan type yang sangat penting dari struktur data dan banyak dijumpai dalam berbagai terapan. Karakteristik yang dimiliki oleh pohon biner adalah bahwa setiap simpul yang paling banyak hanya memiliki dua buah anak, dan mungkin tidak punya anak.
Istilah- istilah yang digunakan sama dengan istilah pada pohon secara umum.
Graph(graf)
merupakan struktur data yang paling umum. Jika struktur linier memungkinkan pendefinisian keterhubungan sekuensial antar entitas data, struktur data tree memungkinkan pendefinisian keterhubungan hirarkis, maka struktur graph memungkinkan pendefinisian keterhubungan tak terbatas antara entitas data.
Banyak entitas- entitas data dalam masalah- masalah nyata secara alamiah memiliki keterhubungan langsung(adjacency) secara tak terbatas.
(3).Jelaskan beberapa aplikasi perangkat lunak komputer yang menggunakan struktur data sebagai pengembangannya?
Jawaban:
Proses pengembangan perangkat
lunak (Software development process) adalah suatu struktur yang diterapkan
pada pengembangan suatu produk perangkat lunak yang bertujuan untuk mengembangkan
sistem dan memberikan panduan yang bertujuan untuk menyukseskan proyek
pengembangan sistem melalui tahap demi tahap.
Proses ini memiliki beberapa model yang
masing-masing menjelaskan pendekatan terhadap berbagai tugas atau aktivitas
yang terjadi selama proses. Contoh model proses pengembangan perangkat lunak
antara lain adalah proses iteratif, extream programming, waterfall serta
agile.
Pengembangan perangkat lunak (juga
disebut pengembangan aplikasi, desain perangkat lunak, merancang
perangkat lunak, pengembangan aplikasi perangkat lunak,pengembangan
aplikasi perusahaan, atau pengembangan platform) adalah pengembangan
suatu produk perangkat lunak. Istilah “pengembangan perangkat lunak” bisa
dipakai untuk menyebut aktivitas pemrograman komputer, yaitu proses menulis dan
mengelola kode sumber, namun dalam artian luas istilah ini mencakup semua hal yang
terlibat antara penciptaan perangkat lunak yang diinginkan melalui pewujudan
akhir perangkat lunak, idealnya dalam proses yang terencana dan
terstruktur. Karena itu, pengembangan perangkat lunak bisa mencakup
penelitian, pengembangan baru, purwarupa, modifikasi, pemakaian kembali,
rekayasa ulang, pengelolaan, atau aktivitas lain yang menghasilkan produk
perangkat lunak.
Berikut penjelasan lebih detail dari model pengembangan
perangkar lunak.
1. Linear Sequential Model

Linear sequential model (atau disebut juga “classic
life cycle” atau “waterfall model”) adalah metode pengembangan
perangkat lunak dengan pendekatan sekuensial dengan cakupan aktivitas :
1. Rekayasa
sistem dan Analisis (Sistem Engineering and Analysis)
Karena perangkat lunak adalah
bagian dari sistem yang lebih besar, pekerjaan dimulai dari pembentukan
kebutuhan-kebutuhan untuk seluruh elemen sistem dan kemudian memilah mana yang
untuk pengembangan perangkat lunak. Hal ini penting, ketika perangkat lunak
harus berkomunikasi dengan hardware, orang dan basis data
2. Analisis
kebutuhan perangkat lunak (Software Requirements Analysis)
Pengumpulan kebutuhan dengan
fokus pada perangkat lunak, yang meliputi:
Domain informasi, fungsi yang
dibutuhkan, unjuk kerja/performansi dan antarmuka. Hasilnya harus didokumentasi
dan direview ke pelanggan
3. Perancangan
(Design)
Ada 4 atribut untuk program yaitu
: Struktur Data, Arsitektur perangkat lunak, Prosedur detil dan Karakteristik
Antarmuka. Proses desain mengubah kebutuhan-kebutuhan menjadi bentuk
karakteristik yang dimengerti perangkat lunak sebelum dimulai penulisan
program. Desain ini harus terdokumentasi dengan baik dan menjadi bagian
konfigurasi perangkat lunak.
4. Pembuatan
kode (Coding)
Penterjemahan perancangan ke
bentuk yang dapat dimengerti oleh mesin, dengan menggunakan bahasa pemrograman
5. Pengujian
(Testing)
Setelah kode program selesai
testing dapat dilakukan. Testing memfokuskan pada logika internal dari
perangkat lunak, fungsi eksternal dan mencari segala kemungkinan kesalahan dan
memriksa apakah sesuai dengan hasil yang diinginkan.
6. Pemeliharaan
(Maintenance)
Merupakan bagian paling akhir
dari siklus pengembangan dan dilakukan setelah perangkat lunak dipergunakan.
Kegiatan :
• Corrective
Maintenance : Mengoreksi kesalahan pada perangkat lunak, yang baru
terdeteksi pada saat perangkat lunak dipergunakan
• Adaptive
Maintenance : Penyesuaian dengan lingkungan baru, misalnya sistem
operasi atau sebagai tuntutan atas perkembangan sistem komputer, misalnya
penambahanprinter driver
• Perfektive
Maintenance : Bila perangkat lunak sukses dipergunakan oleh
pemakai. Pemeliharaan ditujukan untuk menambah kemampuannya seperti memberikan
fungsi-fungsi tambahan, peningkatan kinerja dan sebagainya.
Berikut merupakan keuntungan dan kerugian penggunaan
model water fall :
Keuntungan:
· Terstruktur
· Tiap tahap memiliki metode untuk menghasilkan suatu
dokumen yang bisa diserahkan ke pemakai
· Dokumen yang dihasilkan tiap tahap bisa di
spesifikasikan secara jelas dan mendetail
Kerugian:
· Linear, tidak ada umpan balik (feedback)
· Sumber daya dan penjadwalan harus di perkirakan pada
awal proyek
· Tahap terisolasi, kurang terjalin transisi ke tahap
berikutnya. Akibat paling besar terasa pada tahap requirement
· Pemakai tidak bisa melihat produk perangkat lunak
sampai akhir proyek
· Penekanan terbesar pada dokumen
Model waterfall ini cocok untuk produksi suatu aplikasi
tunggal yang biayanya rendah dengan menggunakan:
· Dekomposisi fungsi top-down
· 3GL konvensional untuk implementasinya
2. Agile Process Model
Agile Processmerupakan sekelompok aktifitas
pembangunan perangkat lunak secara iteratif yang menekankan pada aktifitas
konstruksi (desain dan koding). Agile Process mengeliminasi
sebagian besar waktu untuk melakukan perencanaan sistem dan berusaha sebisa
mungkin mematuhi jadwal deliver sistem yang telah dijanjikan.Requirements yang
dibutuhkan secara langsung di-drive oleh pelanggan itu sendiri, dan
apabila terjadi perubahan terhadaprequirements tersebut, pengembang
dituntut mampu beradaptasi dengan perubahan yang terjadi.
Secara mendasar, aktifitas-aktifitas umum dalam
kerangka kerja agile antara lain: komunikasi dengan pelanggan,
perencanaan, pemodelan, konstruksi, pengiriman (delivery), dan melakukan
evaluasi. Kemudian aktifitas akan berulang, terutama untuk perencanaan deliver berikutnya.
Semua aktifitas tersebut di buat seminimal mungkin, lebih memfokuskan dan
konsentrasi pada konstruksi serta delivery.
Kemudian, seperti apa saja sih bentuk dari
pendekatan Agile ini ? Terdapat banyak model pendekatan yang tergolong
dalam Agile Process, namun tidak semua model saya bahas pada tulisan
ini, saya hanya menjelaskan dua model yaitu: Extreme Programming(XP),
dan Adaptive Software Development (ASD).
Extreme Programming (XP)
XP merupakan suatu model yang tergolong
dalam pendekatanagile yang diusulkan oleh Kent Back. Menurut
penjelasan dia, definisi XP adalah sebagai berikut: “Extreme Programming
(XP) is a lightweight, efficient, low-risk, flexible, predictable, scientific,
and fun way to develop software“. Model ini cenderung menggunakan
pendekatan Object-Oriented. Tahapan-tahapan yang harus dilalui
antara lain: Planning, Design, Coding, danTesting.
Pada saat perencanaan, dimulai dengan
membuat semacam “user strories” yang ditempatkan index card. User
Story (cerita) merupakan deskripsi fitur-fitur fungsional yang akan
disediakan perangkat lunak yang akan dibuat. Dari cerita-cerita yang telah
dibuat, pelanggan memberikan semacam nilai (misalnya: prioritas). Kemudian tim
XP mengkaji semua cerita tadi dan menentukan rincian biaya serta memperkirakan
waktu yang dibutuhkan untuk membangun sistem.
Apabila waktu yang dibutuhkan untuk
mengimplementasikan cerita tersebut lebih dari tiga minggu, maka tim XP meminta
pelanggan memecah cerita tersebut menjadi cakupan yang lebih kecil.
Cerita-cerita yang telah dibuat dikelompokkan, sehingga dapat diperkirakan
untuk melakukan deliverable increments. Meskipun telah
dikelompokkan dan proses pembangunan perangkat lunak telah dimulai, pelanggan
masih bisa menambah, merubah, memecah dan menghapus cerita-cerita tersebut,
namun tentunya harus sesuai dengan persetujuan bersama.Keuntungan dari model XP
antara lain adalah:
Pertama, dapat
merepresentasikan situasi nyata yang sering terjadi, sehingga sistem yang akan
dibuat mendukung sebagian besar operasional pengguna.
Kedua, memudahkan pengguna
memahami dan memberikan masukan terhadap cerita tersebut.
Ketiga, dapat
merepresentasikan fitur-fitur fungsional secara bertahap (incremental).

Adaptive Software Development (ASD)
ASD merupakan suatu model yang
tergolong dalam pendekatanagile yang diusulkan oleh Jim Highsmith.
ASD menekankan pada pengorganisasian tim secara mandiri, kolaborasi
antar-perseorangan, dan terus belajar, baik secara individu maupun secara tim.
ASD menggunakan tools yang disebut “time-boxing” –
yaitu berupa aktifitas yang menentukan jangka waktu tertentu yang dialokasikan
untuk menyelesaikan berbagai macam tugas. Apabila waktu yang ditentukan
tersebut selesai, maka pembangunan sistem akan pindah ke tugas berikutnya,
dengan harapan bahwa sebagian besar dari critical work telah
berhasil diselesaikan sebelum waktu keseluruhan tugas berakhir. Terdapat tiga
tahapan pada model ASD, yaitu: Speculation, Collaboration,
dan Learning.
Pada tahap Speculation,
proyek dimulai dan adaptive cycle planning diselenggarakan.
Pada tahapan ini, didefinisikan visi dan misi pengguna terhadap sistem yang
akan dibuat, selanjutnya mendefinisikan project constraints, misalnya:
waktu deliver. dan selanjutnya mendefinisikan satu set dari
requirements yang akan dikerjakan dalam suatu cycle. Pada
tahap Collaboration, pada tahap ini diorganisasikan tim kerja untuk
membangun sistem. Direkomendasikan menggunakan model Joint Application
Development (JAD). Pada tahap Learning, terdapat tiga
aktifitas yaitu: pelanggan atau end-user menyediakan feedback terhadap hasil
incremental delivery, tim ASD melakukan review terhadap komponen
perangkat lunak untuk memperbaiki dan meningkatkan kualitas perangkat lunak
yang sedang dibuat.

(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 eksekusi.Buatlah program algoritma yang menganalogikan abstraksi perangkat elektronik?
Jawaban:
Cara menghidupkan komputer
•Pasangkan kabel ke stopkontak.
•Tekan tombol ON (Stabilizer),CPU,dan monitor.
•Tunggulah beberapa saat hingga komputer melakukan proses booting.
•Setelah proses Booting selesai, di layar muncul kotak dialog untuk mengisi Username dan Password. (jika menggunakan password).
•Setelah selesai muncul desktop, komputer siap digunakan.
•Tekan tombol ON (Stabilizer),CPU,dan monitor.
•Tunggulah beberapa saat hingga komputer melakukan proses booting.
•Setelah proses Booting selesai, di layar muncul kotak dialog untuk mengisi Username dan Password. (jika menggunakan password).
•Setelah selesai muncul desktop, komputer siap digunakan.
Cara mematikan komputer
•Pastikan semua aplikasi yang telah anda gunakan sudah ditutup.
•Pada menu start, klik shutdown-Ok atau Turn Off.
•Tekan tombol Off pada monitor dan stabilizer.
(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,pengurangan,perkalian dan pembagian?
Jawaban:
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
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;
1.http://rizky-rafsamjani.blogspot.co.id/2014/11/standar-program-yang-baik.html
2.http://s1tik.blogspot.co.id/2015/07/jenis-struktur-data.html
3.https://wisnuramadhaniway.wordpress.com/2013/09/27/proses-pengembangan-perangkat-lunak/
4.http://darczwing.blogspot.co.id/2014/03/merancang-dan-mendesain-program-dengan.html?m=1
5.https://bayubayyz.blogspot.co.id/2014/03/program-kalkulator-sederhana.html
6.http://gilang11018035.blogspot.co.id/2012/03/cara-menghidupkan-komputer-pasangkan.html
6.http://gilang11018035.blogspot.co.id/2012/03/cara-menghidupkan-komputer-pasangkan.html
Tidak ada komentar:
Posting Komentar