Anda di halaman 1dari 8

LAPORAN TUGAS PERKULIAHAN

JAMINAN KUALITAS PERANGKAT LUNAK [4616432]

Kelas : B
Daftar Kelompok :

Senja Febrianto 1461600226


M Alfani dwi AC 1461700104
M. Syafrie Firmansyah 1461800144
Achmad Rizki Firdaus 1461800147
M. Nabil Adi Nugroho 1461800173

Dosen Pengampu
Agus Hermanto, S.Kom, M.MT, ITIL, COBIT, SFC

PROGRAM STUDI TEKNIK INFORMATIKA


OKTOBER 2020

i
1. Teori / Literatur Tentang Ieee Standard & Knapsack Problem

Menurut IEEE (1991), software engineering didefinisikan sebagai berikut:

a. Aplikasi dari sistematik, disiplin, pendekatan kuantifitas untuk pengembangan,


pengoperasian dan perawatan software; adalah penerapan dari engineering ke
software
b. Studi pendekatan seperti poin sebelumnya.

Karakteristik dari software engineering, khususnya sistematik, disiplin dan pendekatan


kuantitatif pada intinya, membuat lingkungan software engineering menjadi baik dalam
mencapai tujuan utama SQA. Metodologi dan alat yang diterapkan oleh software engineering
menentukan, pada tingkat tertentu, tingkat kualitas yang diharapkan dari proses perangkat
lunak dan layanan pemeliharaan. Oleh karena itu, sangat diharapkan ketika membuat
keputusan tentang metodologi dan alat perangkat lunak, pertimbangan SQA ditambahkan ke
pertimbangan efisiensi dan ekonomi yang terkait dengan rekayasa perangkat lunak.

Secara umum diterima bahwa kerja sama antara insinyur perangkat lunak dan tim SQA
adalah cara yang tepat untuk mencapai kegiatan pengembangan dan pemeliharaan yang
efisien dan ekonomis yang, pada saat yang sama, menjamin kualitas produk dari kegiatan ini.

IEEE Standards dapat dialokasikan menjadi 3 kelas utama:

1). Standar Konseptual


a. IEEE 610.12 – Glosarium dari Terminologi Software engineering
b. IEEE 1061 – Metodology metrik kualitas software
c. IEEE 1320.0 – Bahasa model konseptual. Sintaks, dan semantic untuk
IDEF1X97
d. IEEE 1420.1a – Penggunaan ulang software, data mode untuk library
interoperability: Framework sertifikasi asset.
e. IEEE/EIA 12207.0 – Teknologi informasi proses siklus hidup software.
2). Prescriptive Standards of conformance
a. IEEE 828 – Perencanaan konfigurasi software
b. IEEE 829 – Dokumentasi uji coba software
c. IEEE 1012 – Verifikasi dan validasi software
d. IEEE 1028 – Ulasan software

1
e. IEEE 1042.1 – Penggunaan ulang software – Model untuk menggunakan
ulang library Interoperability: Basic Interoperability Data Model (BIDM)
3). Standar panduan
a. IEEE 1233 – Petunjuk untuk persyaratan spesifikasi pengembangan sistem
b. IEEE/EIA 12207.1 – Petunjuk, Informasi teknologi – Proses siklus hidup
software – Siklus hidup data
c. IEEE/EIZ 12207.2 – Petunjuk, Informasi teknologi – Proses siklus hidup
software – Implementasi teknologi (Galin, 2004)

Knapsack Problem (KP) adalah salah satu studi berbagai permasalahan. Ada banyak
variasi permasalahan pada penerapan di kehidupan nyata. KP memilih beberapa yang ada
dengan maksimal berat total yang tidak melebihi batas maksimal L. Knapsack problem sudah
digunakan untuk menyelesaikan masalah dikehidupan yang berkaitan dengan berbagai bidang
termasuk kriptografi dan matematika terapan. The links between requirements and the
artifacts of a project

Knapsack Problem adalah sekumpulan dari item n, tiap item diasosiasikan dengan berat
dan profit. Tujuannya ialah untuk memilih subset dari item n yang mampu memaksimalkan
profit yang dalam bersamaan cocok engan knapsack. Masalah yang sama ialah diambil dari
siuasi dimana pendaki gunung harus memilih beberapa item yang harus disertakan dalam
ransel (knapsack) yang berguna selama pejalanan. Kesulitannya ialah sang pendaki harus
memilih benda yang lebih menguntungkan namun tidak boleh melebihi batas kapasitas
ransel. Saintis telah menunjukkan ketertarikannya pada masalah ini karena merepresentasikan
praktek kehidupan dengan situasi yang berbeda-beda.

Knapsack problem merupakan masalah optimasi kombinatorial. Sebagai contoh adalah


suatu kumpulan barang masing masing memiliki berat dan nilai, kemudian akan ditentukan
jumlah tiap barang untuk dimasukkan dalam koleksi sehingga total berat kurang dari batas
yang diberikan dan nilai total seluas mungkin. (Assi & Haraty, 2019)

Knapsack problem merupakan masalah optimasi klasik berupa pengapakan barang yang
didefinisikan sebagai berikut:

1. Di berikan sebuah knapsack (wadah) dan n objek (setiap objek bisa terdiri daribanyak
barang);

2. Objek i memiliki berat > 0 dan nilai > 0;

2
3. Knapsack berkapasitas W;

4. Tujuan: tentukan jumlah barang dari setiap objek yang harus dimasukkan ke dalam
knapsack sehingga total nilainya semaksimal mungkin. Knapsack problem dapat di
formulasikan menggunakan notasi matematika sebagai berikut:

Dengan batasan

Dimana

n adalah jumlah objek

w² adalah berat objek ∀ ∈ {1, … , }

v² adalahprofitobjek ∀ ∈ {1, … , }

x² adalah0/1(3)

Didunia nyata, masalah pengepakan barang bisa memilikikarakteristik

yang berbeda-beda dan dapat dikelompokkan knapsack problem menjadi tiga variasi,
yaitu:

1. Unbounded knapsack problem: tidak ada batasan jumlah barang untuk setiap objek;

2. 0/1 knapsack problem: jumlah barang untuk setiap objek hanya boleh 0 atau 1;

3. Fractional knapsack problem: jumlah barang untuk setiap objek boleh pecahan
(seperempat, setengah dansebagainya).

Pada penelitian ini hanya fokus pada 0/1 knapsack problem. Sebagai contoh, di sini
dibahas studi kasus tentang pengepakan barang ke dalam sebuah koper. Misalkan, si A akan
pergi ke suatu Negara di Eropa untuk melanjutkan studi S3. Maskapai penerbangan hanya

3
memperbolehkan setiap penumpang membawa bagasi maksimal 20 kilogram. Jika si A
ternyata mempunyai tujuh macam barang yang berat seluruhnya adalah 37 kilogram,
bagaimana memilih sejumlah barang yang total nilainya paling besar tetapi beratnya tidak
melebihi 20 kilogram? Nilai barang di sini bisa berupa tingkat kepentingannya, harganya,
nilai histori dan sebagainya. Nilai barang didefinisikan sebagai tingkat kepentingan barang
tersebut untuk dibawa. Agar lebih sederhana, semua objek diasumsikan berjumlah 1 paket
atau unit dantidak bisa dipecah dengan demikian, masalah itu tergolong kedalam 0/1
knapsack. Pada kasus ini, souvenir (satu paket dengan berat 13 kg) memiliki tingkat
kepentingan paling tinggi, yaitu sebesar 500. (Setemen, 2010)

2. Scenario Pengujian (Testing Scenario)


White Box Testing adalah salah satu cara untuk menguji suatu aplikasi atau software
dengan melihat modul untuk memeriksa dan menganalisis kode program ada yang salah atau
tidak. Jika modul ini dan telah diproduksi dalam output yang tidak memenuhi persyaratan,
kode akan dikompilasi ulang dan diperiksa lagi sampai mencapai apa yang diharapkan
singkatnya White Box Testing ini menguji dengan cara melihat Pure Code dari suatu
aplikai/software yang diuji tanpa memperdulikan Tampilan atau UI dari aplikasi
tersebut..Teknik yang umum digunakan untuk pengujian structural :
- Control flow / Coverage testing
o Statement coverage
Teknik pengujian whitebox di mana semua statement yang dapat dieksekusi dalam
source code akan dieksekusi setidaknya sekali, digunakan untuk menghitung
jumlah statement dalam source code yang telah dieksekusi. Tujuan utama
statement coverage adalah untuk mengetahui semua kemungkinan paths, lines,
dan statement dalam source code
o Branch coverage
Digunakan untuk mengungkap semua cabang dari control flow graph. Ini
mencakup semua hasil yang mungkin (true dan false) dari setiap kondisi titik
keputusan setidaknya sekali. Teknik branch coverage adalah teknik pengujian
kotak putih yang memastikan bahwa setiap cabang dari setiap titik keputusan
harus dijalankan.
o Decision/Condition Coverage
Metode pengujian yang digunakan untuk menguji dan mengevaluasi variabel atau
sub-ekspresi dalam conditional statement. Tujuan condition coverage adalah
untuk memeriksa hasil individu untuk setiap kondisi logis.

- Basic path testing


o Flow Graph Notation
Notasi sederhana yang digunakan untuk mewakili control flow disebut flow
graph. Flow graph Mewakili arus control logis yang digunakan untuk
menggambarkan struktur pengendalian program

4
o Cyclomatic Complexity
Kompleksitas Siklomatis adalah metrics perangkat lunak yang memberikan
pengukuran kuantitatif terhadap kompleksitas logis suatu program, nilai yang
didapatakan menentukan jumlah jalur independent dalam himpunan path, Jalur
independent adalah jalur yang terdapat dalam program yang mengintroduksi
sedikitnya satu rangkaian statement proses atau kondisi baru.

o Graph Matrices
Graph matrix adalah matriks dua dimensi yang membantu dalam menentukan
himpunan dasar. Ini memiliki kolom dan baris masing – masing sama dengan
jumlah simpul dalam flow graph. Untuk membedakan satu sama lain setiap simpul
diwakili oleh beberapa huruf. Setiap tepi dilengkapi dengan beberapa bobotlink
(0-tanpa koneksi, 1-jika adakoneksi).

o Deriving Test Cases


Basis path testing dapat langsung diterapkan pada source code atau dapat
diterapkan pada desain prosedural untuk mendapatkan kasus pengujian. Mari kita
lihat prosedur langkah demi langkah basis path testing:

Langkah 1: Langkah pertama adalah menggambar diagram alur dengan meninjau


kode sumber program atau desain proseduralnya.
Langkah 2: Meninjau flow graph, kemudian menghitung cyclomatic complexity.
Langkah 3: Nilai yang dihitung oleh cyclomatic complexity memberikan jumlah
di mana jalur independen dapat diturunkan untuk menentukan basis set.
Langkah 4: Meninjau basis set, penguji merancang kasus uji yang akan melatih
setiap statement dalam program dan setiap sisi conditional statement dalam
program.

- Loop testing
Pengujian Loop didefinisikan sebagai jenis pengujian perangkat lunak, yang sepenuhnya
berfokus pada validitas konstruksi loop. Ini adalah salah satu bagian dari Pengujian
Struktur Kontrol (pengujian jalur, pengujian validasi data, pengujian kondisi).
o Simple Loops
o Nested loops
o Concatenated loops
o Unstructured loop

- Data flow testing


Pengujian Arus Data adalah jenis pengujian struktural. Ini adalah metode yang digunakan
untuk menemukan jalur pengujian suatu program sesuai dengan lokasi definisi dan
penggunaan variabel dalam program. Ini tidak ada hubungannya dengan diagram aliran
data. Ini berkaitan dengan:
o Statement dimana variabel menerima nilai,
o Statement dimana nilai-nilai ini digunakan atau dirujuk.

5
3. Alat Uji (Testing Tools)
Dalam setiap proses pengembangan perangkat lunak (SDLC), ada proses yang dinamakan
tahapan testing. Tahapan testing digunakan untuk menguji sebuah sistem perangkat lunak,
apakah sistem tersebut mampu berjalan sesuai yang diharapkan atau tidak. Testing sangat
sulit dilakukan jika menggunakan cara manual, misalnya performance testing / load testing
yang membutuhkan ribuan parallel hit dalam jangka waktu tertentu. Untuk itulah dibutuhkan
sebuah software testing tools untuk membantu meringankan beban kerja tadi. Nama lain dari
software testing tools ini adalah Automation Testing Tools.
Pada pengujian program knapsack ini, diberlakukan standar internasional perangkat lunak
(IEEE Standard) agar bisa mengetahui seberapa layak program tersebut bisa diterapkan.
Sementara untuk alat uji nya / testing tools nya bisa menggunakan aplikasi unit testing seperti
PHPUnit, Katalon Studio, Cypress.io, dan Appium. Nantinya pengujian akan menggunakan
salah satu atau lebih dari aplikasi tersebut, karena tiap aplikasi unit testing diatas masing-
masing memiliki kelebihan dan kekurangan sehingga penggunaanya patut dipertimbangkan
terlebih dahulu.

6
Daftar Pustaka
Nidhra, S. (2012). Black Box and White Box Testing Techniques - A Literature Review.
International Journal of Embedded Systems and Applications.
https://doi.org/10.5121/ijesa.2012.2204
Nurshanty, A. O., Saputra, A., Hardjanto, F. R., Franklyn, M. B., & Yudanegara, D. (n.d.).
Teknik Dalam White-box dan Black-box Testing. Retrieved October 28, 2020, from
https://socs.binus.ac.id/2020/07/02/teknik-dalam-white-box-dan-black-box-testing/
Chronologium. December 25, 2015. [WORK] Tools untuk Pengujian Software
https://chronologium.wordpress.com/2015/12/25/work-tools-untuk-pengujian-software/
[Accessed 27 October 2020]
Ryanditha, Pietro. September 27, 2018. Automation Testing tools yang wajib untuk di coba
https://medium.com/skyshidigital/automation-testing-tools-yang-wajib-untuk-di-coba-
36430ddddda9
[Accessed 27 October 2020]
Setyati, Noni. June 26, 2015. Tools Testing
https://www.kompasiana.com/thephplovers/55002df58133119a17fa7360/tools-testing
[Accessed 27 October 2020]
Assi, M., & Haraty, R. A. (2019, March 21). A Survey of the Knapsack Problem. ACIT 2018
- 19th International Arab Conference on Information Technology.
https://doi.org/10.1109/ACIT.2018.8672677

Galin, D. (2004). Software quality assurance: from theory to implementation. In Pearson


Education Limited.

Setemen, K. (2010). IMPLEMENTASI ALGORITMA GENETIKA PADA KNAPSACK


PROBLEM UNTUK OPTIMASI PEMILIHAN BUAH KEMASAN KOTAK. In
Seminar Nasional Aplikasi Teknologi Informasi.
https://journal.uii.ac.id/Snati/article/download/1921/1696

Anda mungkin juga menyukai