BAB II LANDASAN TEORI 2.1
Pengertian Istilah yang berkembang seperti sekarang ini didefinisikan sebagai wadah pelatihan
siswa / peserta didik baik untuk menghadapi ujian semester ataupun ujian nasional. sendiri merupakan tes tertulis atau ujian percobaan yang dilakukan untuk mengukur sejauh mana tingkat kesiapan. Selain
yang umumnya dilakukan pada lembaga pendidikan formal, banyak juga
lembaga pendidikan non formal melakukan ini sebagai suatu tolak ukur yang efektif. Contoh materi Pelajaran yang akan diujikan dalam adalah: -
Mata pelajaran Bahasa Indonesia:
1. “Demikian surat lamaran ini saya sampaikan. Atas diterimanya surat ini oleh Bapak, tidak lupa saya ucapkan terima kasih” Perbaikan kalimat penutup surat lamaran tersebut yang tepat adalah… a. Dengan diterimanya saya, saya ucapkan terima kasih. b. Atas perhatian Bapak, saya mengucapkan terima kasih. c. Atas perhatian Bapak, saya ucapkan terima kasih. d. Dengan diterimanya oleh Bapak, saya ucapkan terima kasih. e. Saya mengucapkan terima kasih, atas kebijaksanaan Bapak menerima saya. -
Mata pelajaran Matematika:
1. Jika m>0 dan grafik f(x)=𝑥 2 -mx+5 menyinggung garis y=2x+1, maka nilai m = … a. -6 -
b. 6
c. 8
d. -2
e. 2
Mata pelajaran Bahasa Inggris:
1. Forest are very important to keep the soil fertile and to prevent flood. The fallen leaves and decayed plants become humus which makes the soil rich and holds the rainwater. For many years, people have not been obeying the government’s regulations. They have been cutting down the trees carelessly. As a result, thousands of hectares of land have become worse
1
and the rivers will be full of mud. In the wet season there will be erosion and floods which will destroy the farm lands and villages. What is the main idea of paragraph 2? a. rivers are full of mud
d. erosions have caused floods
b. land becomes infertile
e. deforestation has caused a lot of destruction
c. floods destroy villages 2.2
Metodologi Rekayasa Perangkat Lunak Perangkat Lunak adalah suatu aplikasi ilmu komputer untuk membangun sistem
perangkat lunak yang mencakup semua aspek produksi perangkat lunak, mulai dari tahap analisa kebutuhan pengguna, menentukan spesifikasi, desain, pengkodean, sampai pengujian sistem yang akan digunakan, yang bertujuan agar menghasilkan suatu perangkat lunak yang berkualitas. Menurut Janner Simarmata (2010: 10) Rekayasa Perangkat Lunak adalah sebuah bidang profesi yang mendalami cara-cara pengembangan perangkat lunak termasuk pembuatan, pemeliharaan, manajemen organisasi pengembangan perangkat lunak, dan sebagainya. Pada tahun 2004, istilah rekayasa perangkat lunak secara umum digunakan dalam 3 arti, yaitu: 1. Sebagai istilah umum untuk berbagai kegiatan yang dulunya bernama pemrograman atau analisis sistem. 2. Sebagai istilah yang luas untuk analisis teknis dari semua aspek-aspek praktis yang bertentangan dengan teori pemrograman komputer. 3. Sebagai istilah yang mewujudkan advokasi suatu pendekatan spesifik ke pemrograman computer, satu hal yang mendesak yang diperlakukan sebagai profesi rekayasa daripada sebuah seni atau kerajinan, dan advokasi dari kodifikasi praktis yang disarankan dalam bentuk metodologi rekayasa perangkat lunak.
2
2.2.1. Metode Waterfall Proses tradisional untuk melakukan pengembangan sistem informasi dinamakan siklus hidup pengembangan sistem (Systems Development Life Cycle/SDLC) yang memuat langkahlangkah yang semestinya diikuti oleh profesional di bidang sistem informasi, untuk menspesifikasikan, mengembangkan serta memelihara sistem informasi. Proses ini sering digambarkan secara bertingkat. Proses yang bertingkat atau air terjun (waterfall) digunakan untuk menggambarkan bahwa keluaran dari suatu tahap merupakan masukan untuk tahap berikutnya. Metode Waterfall merupakan bagian dari metode SDLC (System Development Life Cycle). Metode waterfall ini bisa dibilang kuno karena umurnya yang cukup lama. Namun pada kenyataannya metode ini paling banyak dipakai dalam rekayasa perangkat lunak karena modelnya yang terurut dan terjadwal. Metode ini sudah bertahun-tahun diterapkan dalam industri software. Dalam metodologi ini, kita berusaha membuat spesifikasi yang sesempurna mungkin sebelum proyek dijalankan. Karena dibuat di awal, maka hampir bisa dipastikan apabila ada perubahan perrencanaan di tengah jalan akan menyebabkan proyek mundur atau menyebabkan biaya (cost) yang tinggi. Namun meskipun begitu, metodologi ini masih tetap populer karena mudah dijalankan. Waterfall model juga sering disebut System Development Life Cycle (SDLC). Waterfall model banyak memiliki varian yang secara detail berbeda dalam tahapan-tahapan pengermbangan sistem. Secara umum tahapan dalam waterfall model atau SDLC meliputi tahap analisa, perancangan, uji coba, dan implementasi. (Samiaji Sarosa, 2009)
Pengembangan Sistem/Informasi Analisis
Desain
Pengkodean
Pengujian
Gambar 2.1. Fase Model Waterfall [Rosa A.S – M Shalahuddin, 2011] 3
Kebutuhan Sistem
Spesifikasi Kebutuhan Perangkat Lunak Desain Perangkat Lunak Implementasi Perangkat Lunak Uji Mesin Formal Integrasi Perangkat Lunak Operasi dan Perawatan
Gambar 2.2. Pengembangan Sistem Model Air Terjun (Waterfall Model) [Janner Simarmata, 2010]
2.3
Pengertian Metode Fisher-Yates Shuffle Fisher-Yates Shuffle (diambil dari nama Ronald Fisher dan Frank Yates) atau juga
dikenal dengan nama Knuth Shuffle (diambil dari nama Donald Knuth), adalah sebuah algoritma untuk menghasilkan suatu permutasi acak dari suatu himpunan terhingga, dengan kata lain untuk mengacak suatu himpunan tersebut. Jika diimplementasikan dengan benar, maka hasil dari algoritma ini tidak akan berat sebelah, sehingga setiap permutasi memiliki kemungkinan yang sama. (Susanto Anthony, 2013) Proses dasar dari Fisher-Yates menyeret mirip dengan memilih secara acak tiket bernomor keluar dari cab, atau kartu dari setumpuk, satu demi satu sampai tidak ada yang lebih kiri. Apa algoritma tertentu adalah menyediakan cara untuk melakukan ini secara numerik dengan cara yang efisien dan ketat itu, benar dilakukan, menjamin hasil yang bias.
4
2.4.
Unified Modeling Language (UML) “UML is a standard set of diagramming techniques that provide a graphical
representation rich enough to model any systems development project, from analysis through implementation. Typically, today most object-oriented analysis and design approaches use the UML to depict an evolving system. As such, objectoriented analysis and design using UML allows the analyst to interact with the user, employing objects from the user’s environment instead of a set of separate processes and data.” (Satzinger, Robert, & Burd, 2011) UML adalah satu set standar teknik yang menyediakan gambaran grafis cukup kaya untuk model setiap proyek pengembangan sistem, dari analisis melalui implementasi diagram. Biasanya, saat ini sebagian besar analisis berorientasi objek dan desain pendekatan menggunakan UML untuk menggambarkan sistem berkembang. Dengan demikian, analisis berorientasi objek dan desain menggunakan UML memungkinkan analis untuk berinteraksi dengan pengguna, menggunakan benda-benda dari lingkungan pengguna bukannya serangkaian proses yang terpisah dan data. UML disebut sebagai bahasa pemodelan bukan metode. Bahasa pemodelan (sebagaian besar grafik) merupakan notasi dari metode yang digunakan untuk mendesain secara cepat. Bahasa pemodelan merupakan bagian terpenting dari metode. Tujuan UML diantaranya adalah : 1. Memberikan model yang siap pakai, bahasa pemodelan visual yang ekspresif untuk mengembangkan sistem dan yang dapat saling menukar model dengan mudah dan dimengerti secara umum. 2. Memberikan bahasa pemodelan yang bebas dari berbagai bahasa pemrograman dan proses rekayasa. 3. Menyatukan praktek-praktek terbaik yang terdapat dalam pemodelan. 2.4.1. Use Case Diagram Use Case Diagram adalah model diagram UML yang digunakan untuk menggambarkan requirement fungsional yang diharapkan dari sebuah sistem. Use Case Diagram lebih
5
memfokuskan pada “siapa” melakukan “apa” dalam ruang lingkup sistem perangkat lunak yang akan dibangun. “Use cases are the primary drivers for all of the UML diagramming techniques. The use case communicates at a high level what the system needs to do, and each of the UML diagramming techniques build upon this by presenting the functionality in different ways. In the early stages of analysis, the analyst first identifies one use case for each major part of the system and creates accompanying documentation, the use case report, to describe each function in detail.” (Dennis, Wixom, & Roth, 2012, hal. 517) Use Case merupakan
driver utama untuk semua teknik diagram UML. Use case
berkomunikasi pada tingkat tinggi sistem apa yang perlu dilakukan, dan masing-masing UML teknik diagram membangun ini menyajikan fungsi dalam cara yang berbeda, masing-masing pandangan memiliki tujuan yang berbeda. Pada tahap awal analisis, analis pertama mengidentifikasi satu use case untuk setiap utama
bagian dari sistem dan menciptakan
dokumentasi yang menyertainya, laporan kasus penggunaan untuk menjelaskan fungsi masingmasing secara rinci.
Berikut adalah simbol-simbol yang ada pada diagram use case : Tabel 2.1 Simbol Use Case (Dennis, Wixom, & Roth, 2012, hal. 518) Simbol Keterangan “a person or system that derives benefit from and is external to the subject.” Seseorang atau sesuatu yang berinteraksi dengan sistem.
Actor Role Name “Represents a major piece of system functionality. Can extend another use case. Can use another use case. Is placed inside the system boundary. Is labeled with a descriptive verb–noun phrase.” Merupakan bagian utama dari sistem fungsionalitas. Dapat 6
Use Case name
memperpanjang kasus penggunaan lain. Dapat menggunakan use case lain. Ditempatkan di dalam batas sistem. Diberi label dengan deskriptif verba-noun frase. “Includes the name of the system inside or on top.
System name
Represents the scope of the system.” Merupakan lingkup subjek , misalnya , sistem atau individu proses bisnis ’Links an actor with the use case(s) with *
which it interacts.’
*
Untuk mendokumentasikan aliran-aliran logika
Gambar 2.3 Contoh Use Case Diagram (Dennis, Wixom, & Roth, 2012, hal. 516)
7
2.4.2. Activity Diagram “Activity diagrams are used to model the behavior in a business process independent ofobjects. In many ways, activity diagrams can be viewed as sophisticated data flow diagrams that are used in conjunction with structured analysis.However, unlike data flow diagrams, activity diagrams include notation that addresses the modeling of parallel, concurrent activities and complex decision processes”. (Dennis, Wixom, & Roth, 2012) Activity Diagram digunakan untuk model perilaku dalam independen proses bisnis benda. Dalam banyak hal, diagram aktivitas dapat dipandang sebagai diagram aliran data yang canggih yang digunakan dalam hubungannya dengan analysis terstruktur. Namun, tidak seperti aliran data diagram, diagram aktivitas termasuk notasi yang membahas pemodelan paralel, kegiatan bersamaan dan proses. Yang perlu diperhatikan disini adalah bahwa diagram aktivitas menggambarkan aktivitas sistem bukan apa yang dilakukan aktor, jadi aktivitas yang dapat dilakukan oleh sistem. Diagram aktivitas juga banyak digunakan untuk mendefinisikan hal-hal berikut: 1.
Rancangan proses bisnis dimana setiap urutan aktivitas yang digambarkan merupakan proses bisnis sistem yang didefinisikan
2.
Urutan atau pengelompokan tampilan dari sistem / user interface dimana setiap aktivitas dianggap memiliki sebuah rancangan antarmuka tampilan
3.
Rancangan pengujian dimana setiap aktivitas dianggap memerlukan sebuah pengujian yang perlu didefinisikan kasus ujinya
4.
Rancangan menu yang akan ditampilkan pada perangkat lunak
Berikut adalah simbol-simbol yang ada pada Activity Diagram : Tabel 2.2 Simbol Pada Activity Diagram (Alan Dennis, 2012) Nama Simbol
Keterangan
Simbol Initial Node
“Is used to represent a set of actions.”
8
merupakan tanda awal dari sebuah aktivitas. Final-Activity Node
“Is used to stop all control flows and object flows in an activity (or action).”
merupakan
tanda
berakhirnya
sebuah
aktivitas. Activity
“Is used to represent a set of actions.”
merupakan sebuah gambaran aktivitas yang terjadi. Decision Node
“Is used to represent a test condition to ensure that the control flow or object flow
(Decission Criteria)
only goes down one path.”
(Decission Criteria)
Pilihan untuk pengambilan keputusan Merge Node
“Is used to represent a test condition to ensure that the control flow or object flow only goes down one path.”
membawa kembali jalur keputusan bersama yang
berbeda
yang
dibuat
dengan
menggunakan keputusan simpul Swimlane Name
Swimlane
“Separate business organization that is responsible for the activity that occurs.”
memisahkan
organisasi
bisnis
yang
bertanggung jawab terhadap aktifitas yang terjadi. Control Flow
“Shows the sequence of execution.”
Menunjukkan urutan eksekusi
9
Lanjutan tabel 2.2
Object Flow
“Shows the flow of an object from one activity (or action) to another activity (or action).”
Menunjukkan aliran objek dari satu kegiatan (atau tindakan) untuk kegiatan lain (atau tindakan).
Gambar 2. 4 Contoh Activity Diagram (Alan dennis, 2012) 2.4.3. Sequence Diagram “A sequence diagram is a dynamic model that supports a dynamic view of the volving systems. It shows the explicit sequence of messages that are passed between objects in a defined 10
interaction. Since sequence diagrams emphasize the time-based ordering of the activity that takes place among a set of objects, they are very helpful for understanding real-time specifications and complex use cases.” (Dennis, Wixom, & Roth, 2012, hal. 531) Diagram sequence adalah model dinamis yang menunjukkan urutan eksplisit pesan yang lewat di antara objek dalam interaksi didefinisikan. karena urutan diagram menekankan pemesanan berbasis waktu kegiatan yang terjadi di antara set benda, mereka sangat membantu untuk memahami spesifikasi real-time dan kompleks menggunakan kasus. Berikut simbol yang ada pada Sequence Diagram: Tabel 2.3 Simbol Sequence Diagram (Dennis, Wixom, & Roth, 2012, hal. 532)
Keterangan
Symbol
“Is a person or system that derives benefit from and is external to the system.” orang atau sistem yang berasal dari manfaat dan eksternal ke sistem yang berpartisipasi secara berurutan dengan mengirim dan / atau menerima pesan anActor “Participates in a sequence by sending and/or receiving messages.” Berpartisipasi secara berurutan dengan mengirim dan/atau menerima pesan
anObject : a Class
yang ditempatkan diatas diagram ” Denotes the life of an object during a sequence.” Menandakan kehidupan obyek selama berurutan. “Is a long narrow rectangle placed atop a lifeline.” Menyatakan objek dalam keadaan aktif dan berinteraksi pesan.
A message:
aMessage()
“Conveys information from one object to another one.” Menyampaikan informasi dari satu objek ke satu sama lain.
11
Object destruction:
X
“An X is placed at the end of an object’s lifeline to show that it is going out of existence.” ditempatkan pada akhir dari suatu objek Lifeline untuk menunjukkan bahwa itu akan keluar dari eksistensi.
Gambar 2.5 Contoh Sequence Diagram (Dennis, Wixom, & Roth, 2012, hal. 531) Sequence diagram menjelaskan secara detil urutan proses yang dilakukan dalam sistem untuk mencapai tujuan dari use case. Pembuatan sequence diagram ini merupakan aktivitas yang paling kritikal dari proses desain karena inilah yang menjadi pedoman dalam proses pemrograman nantinya dan berisi aliran control dari program. Sequence diagram biasanya tersusun dari elemen Obyek, Interaction dan Message. Interaction menghubungkan 2 obyek dengan pesannya. Diagram ini menjelaskan aspek dinamis dari sistem yang sedang dibangun.
12
2.4.4. Class Diagram “The class diagram isa static model that supports the static view of the evolving system. It shows the classes and the relationships among the classes that remain constant in the system over time. The class diagram is very similar to the entity relationship diagram (ERD)” (Dennis, Wixom, & Roth, 2012, hal. 522) Diagram kelas adalah Model statis yang mendukung pandangan statis dari sistem berkembang. Ini menunjukkan kelas dan hubungan antar kelas yang tetap konstan dalam sistem dari waktu ke waktu. Diagram kelas sangat mirip dengan diagram hubungan entitas (ERD). Berikut simbol-simbol yang ada pada diagram kelas: Tabel 2. 4 Simbol Class Diagram (Dennis, Wixom, & Roth, 2012, hal. 524)
Keterangan
Symbol
A class: Class name
Represents a kind of person, place, or thing about which the system must
- Attribute name -/derived attribute name
capture and store information.
+Operation name ()
Kelas pada struktur sistem. An attribute :
Attribute name
Represents properties that describe the state
/derived attribute
of an object.
name
Memiliki daftar atribut dalam kompartemen tengahnya . Operation name ()
A method : Represents the actions or functions that a class can perform.
menunjukkan operasi yang tersedia untuk sebuah kelas
13
An association: Represents a relationship between multiple classes, or a class and itsel. 1..* verb phrase 0..1
Asosiasi yang menghubungkan classdengan class Multiplycity.
Gambar 2. 6 Contoh Class Diagram (Dennis, Wixom, & Roth, 2012, hal. 523)
14