BAB 2 TINJAUAN REFERENSI software. software yang...

29
11 1 BAB 2 TINJAUAN REFERENSI 1.1 Metodologi scrum Scrum adalah metode pengembangan software bersifat agile yang mana prinsipnya konsisten dengan manifesto agile dan digunakan sebagai panduan kegiatan pengembangan software. Kegiatan pengembangan software yang dimaksud adalah requirements, analysis, design, evolution, dan delivery. Penyelesaian tiap kegiatan tersebut termasuk dalam sebuah proses yang disebut sprint (Pressman & Maxim, 2014, p. 78). Gambar 1.1 Proses Kegiatan Scrum (Sumber: Software Engineering. A Practitioner's Approach (Pressman & Maxim, 2014))

Transcript of BAB 2 TINJAUAN REFERENSI software. software yang...

Page 1: BAB 2 TINJAUAN REFERENSI software. software yang ...library.binus.ac.id/eColls/eThesisdoc/Bab2/RS1_2019_1...11 1 BAB 2 TINJAUAN REFERENSI 1.1 Metodologi scrum Scrum adalah metode pengembangan

11

1 BAB 2

TINJAUAN REFERENSI

1.1 Metodologi scrum

Scrum adalah metode pengembangan software bersifat agile yang mana prinsipnya

konsisten dengan manifesto agile dan digunakan sebagai panduan kegiatan

pengembangan software. Kegiatan pengembangan software yang dimaksud adalah

requirements, analysis, design, evolution, dan delivery. Penyelesaian tiap kegiatan

tersebut termasuk dalam sebuah proses yang disebut sprint (Pressman & Maxim, 2014,

p. 78).

Gambar 1.1 Proses Kegiatan Scrum

(Sumber: Software Engineering. A Practitioner's Approach (Pressman & Maxim, 2014))

Page 2: BAB 2 TINJAUAN REFERENSI software. software yang ...library.binus.ac.id/eColls/eThesisdoc/Bab2/RS1_2019_1...11 1 BAB 2 TINJAUAN REFERENSI 1.1 Metodologi scrum Scrum adalah metode pengembangan

12

Gambar di atas menunjukan alur proses kegiatan scrum beserta batasan waktu yang

sudah ditentukan pada tiap kegiatan scrum (Pressman & Maxim, 2014, p. 78). Penjelasan

mengenai proses scrum, baik tim dan kegiatannya adalah sebagai berikut:

1.1.1 Scrum team

Berdasarkan informasi yang didapat dari halaman web scrum, Ken Schwaber

dan Jeff Sutherland tim scrum terdiri dari:

1. Product owner

Dalam tim, product owner bertanggungjawab dalam mengelola

product backlog atau daftar seluruh hal yang dibutuhkan dalam produk.

Pengelolaan tersebut termasuk mendeskripsikan dengan jelas product

backlog, menyusun urutan product backlog untuk mencapai tujuan sprint,

dan memastikan product backlog transparan dan jelas untuk semua, dan

menunjukan apa yang akan dikerjakan berikutnya oleh tim scrum.

2. Development team

Development team terdiri dari sekumpulan profesional yang

mengerjakan product backlog hingga produk tersebut dapat diberikan.

Karakteristik dari development team adalah mereka menentukan sendiri

bagaimana product backlog diselesaikan, tidak ada gelar ataupun jabatan

pada development team karena semua anggota berkedudukan yang sama,

dan meskipun tiap anggota memiliki kemampuan dan area fokus yang

berbeda-beda tapi akuntabilitas adalah milik tim secara utuh.

3. Scrum master

Dalam tim scrum, terdapat satu peran yang berfungsi untuk

mendukung kegiatan scrum dengan cara membantu semua orang baik yang

berada dalam tim scrum maupun yang tidak memahami teori, aturan, dan

nilai scrum, yaitu scrum master. Scrum master dapat membantu product

owner dalam memastikan product backlog dipahami dengan benar oleh

seluruh anggota tim scrum, scrum master juga dapat membantu development

team dengan melatih development team dalam pengaturan mandiri dan lintas

fungsi dalam pengembangan produk.

Page 3: BAB 2 TINJAUAN REFERENSI software. software yang ...library.binus.ac.id/eColls/eThesisdoc/Bab2/RS1_2019_1...11 1 BAB 2 TINJAUAN REFERENSI 1.1 Metodologi scrum Scrum adalah metode pengembangan

13

1.1.2 Scrum events

Ken Schwaber dan Jeff Sutherland juga mengatakan dalam penerapan scrum,

salah satu aspek yang perlu dilakukan adalah scrum events. Serangkaian kegiatan yang

sudah ditentukan dibatasi oleh waktu yang sudah ditentukan juga rentang waktunya,

kegiatan-kegiatan tersebut digunakan dalam scrum untuk membuat keteraturan dalam

proses pengembangan (Pressman & Maxim, 2014). Kegiatan-kegiatan yang termasuk

dalam scrum events adalah:

1. Sprint

Sprint adalah kegiatan dengan rentang waktu sebulan atau kurang, di

mana proses penyelesaian product backlog terjadi. Terdapat beberapa aturan

saat sprint sedang berjalan, antara lain tidak boleh adanya perubahan saat

sprint yang akan membahayakan atau berpotensi memberikan dampak

buruk pada sprint goal, kualitas tujuan sprint tidak berkurang, dan cakupan

penyelesaian product backlog dapat dinegosiasi ulang antara product owner

dan development team.

2. Sprint planning

Sebelum memasuki kegiatan sprint, seluruh anggota tim scrum perlu

melakukan perencanaan kegiatan yang akan dilakukan pada sprint secara

kolaboratif, kegiatan tersebut dinamakan sprint planning. Dalam kegiatan

tersebut, hal-hal yang perlu ditetapkan adalah apa yang dapat diberikan

dalam peningkatan yang dihasilkan oleh sprint dan bagaimana penyelesaian

tugas yang dilakukan untuk mendapatkan peningkatan yang sudah dijadikan

sprint goal.

3. Daily scrum

Daily scrum adalah kegiatan yang dikhususkan untuk development

team yang dibatasi waktu 15 menit. Dalam kegiatan tersebut, tiap anggota

development team memberitahu kepada tim hal apa yang sudah dilakukan

kemarin dan apa yang akan dikerjakan hari ini. Tujuan dari daily scrum

adalah untuk memeriksa kemajuan menuju sprint goal.

4. Sprint review

Page 4: BAB 2 TINJAUAN REFERENSI software. software yang ...library.binus.ac.id/eColls/eThesisdoc/Bab2/RS1_2019_1...11 1 BAB 2 TINJAUAN REFERENSI 1.1 Metodologi scrum Scrum adalah metode pengembangan

14

Sprint review merupakan kegiatan yang dilakukan di akhir sprint. Saat

sprint review, scrum team dan stakeholder berkolaborasi mengenai apa yang

telah selesai dalam sprint tersebut. Product owner akan mengundang baik

scrum team maupun stakeholder untuk menghadiri sprint review, yang

kemudian akan menjelaskan tugas-tugas mana yang telah selesai dan mana

yang tidak. Development team akan menjelaskan mengenai tugas yang

sudah selesai dan memberikan demo kepada stakeholder. Pada sprint review

tersebut, seluruh tim akan berkolaborasi mengenai hal-hal apa saja yang

harus dilakukan sehingga sprint review memberikan masukan untuk sprint

planning berikutnya.

5. Sprint retrospective

Kegiatan sprint retrospective adalah kesempatan bagi seluruh anggota tim

scrum untuk menginspeksi tim itu sendiri dan membuat perencanaan

peningkatan yang akan diberlakukan pada sprint berikutnya. Penginspeksian

pada tim meliputi anggota tim atau yang bersangkutan, hubungan antar

anggota tim, proses, dan alat yang digunakan dalam sprint.

1.2 UML

UML atau Unified Modeling Language adalah serangkaian model konstruksi dan notasi

yang telah distandardisasikan dan ditetapkan oleh OMG atau Object Management Group,

yaitu sebuah organisasi untuk pengembangan system (Satzinger, Jackson, & Burd, 2015, p.

59).

Model grafis dalam pengembangan sistem Digambar berdasarkan notasi yang

ditentukan oleh UML. Model grafis dari UML terdiri dari use case diagram, class diagram,

activity diagram, sequence diagram, communication diagram, dan state machine diagram

(Satzinger, Jackson, & Burd, 2015, p. 59).

Dalam perancangan sistem untuk design system yang dibuat penulis, penulis

menggunakan dua macam model grafis UML, yaitu use case diagram dan activity diagram.

Page 5: BAB 2 TINJAUAN REFERENSI software. software yang ...library.binus.ac.id/eColls/eThesisdoc/Bab2/RS1_2019_1...11 1 BAB 2 TINJAUAN REFERENSI 1.1 Metodologi scrum Scrum adalah metode pengembangan

15

2.2.1. Use case diagram

Use case adalah sebuah aktivitas yang dijalankan sistem sebagai respon dari

request yang didapat dari user. Sedangkan use case diagram digunakan untuk

menggambarkan secara grafis hubungan antar use case dan user yang bersangkutan

pada sistem dan macam-macam kegiatan yang dapat dilakukan oleh user pada sistem

(Satzinger, Jackson, & Burd, 2015, p. 19).

Elemen yang terdapat pada use case diagram antara lain adalah:

1. Stick figure

Gambar stick figure pada use case diagram digunakan untuk

menggambarkan actor atau orang sebenarnya yang menggunakan sistem.

2. Connecting line

Gari penghubung atau connecting line digunakan untuk menunjukkan actor

mana yang berpartisipasi pada use case.

3. Automation boundary

Automation boundary berbentuk persegi panjang yang mana fungsinya

adalah untuk memberi batas antara use case dan actor.

4. Use case

Use case adalah aktivitas yang dijalankan dan pada use case diagram, use

case digambarkan dengan bentuk oval dan diisi keterangan aktifitas

tersebut.

Untuk memberikan informasi lebih rinci yang berkaitan dengan use case

diagram yang telah dibuat, use case description dapat dibuat (Satzinger, Jackson, &

Burd, 2015, p. 133). Komponen yang termasuk dalam use case description adalah:

1. Use case name yaitu nama dari use case tersebut.

2. Scenario yaitu scenario atau aktivitas pada use case tersebut.

3. Triggering event yaitu aktivitas yang memicu berjalannya use case

tersebut.

4. Brief description yaitu penjelasan singkat mengenai use case tersebut.

Page 6: BAB 2 TINJAUAN REFERENSI software. software yang ...library.binus.ac.id/eColls/eThesisdoc/Bab2/RS1_2019_1...11 1 BAB 2 TINJAUAN REFERENSI 1.1 Metodologi scrum Scrum adalah metode pengembangan

16

5. Actors yaitu daftar actor yang bersangkutan dengan use case tersebut,

dapat berupa user atau system.

6. Related use case yaitu use case yang bersangkutan dengan use case

tersebut.

7. Stakeholders yaitu pihak yang berkepentingan pada use case tersebut

namun bukan actor yang dituliskan sebelumnya.

8. Preconditions yaitu kondisi sistem yang harus sudah terjadi sebelum use

case berjalan.

9. Postconditions yaitu kondisi yang terjadi setelah use case dijalankan.

10. Flow of activities yaitu tahapan rinci dari aktivitas-aktivitas pada use case

tersebut.

11. Exception condition yaitu aktivitas yang dapat mempengaruhi use case

tidak berjalan dengan semestinya.

2.2.2. Activity diagram

Cara lain untuk mendokumentasikan use case diagram adalah dengan membuat

activity diagram. Activity diagram mendeskripsikan berbagai aktivitas dari user

maupun system, orang atau komponen yang menyelesaikan masing-masing

aktivitasnya, dan urutan kegiatan dari masing-masing aktivitas (Satzinger, Jackson, &

Burd, 2015, p. 60).

Simbol-simbol dasar yang digunakan dalam pembuatan activity diagram

adalah:

1. Swimlane heading yaitu bentuk kotak yang berada di bagian atas diagram

yang digunakan untuk menunjukkan agent yang melakukan aktivitas-

aktivitas.

2. Starting activity yaitu gambar lingkaran terisi penuh yang menandakan

awal dari alur aktivitas.

3. Transition arrow yaitu garis penghubung antar aktivitas untuk

menunjukkan alur aktivitas-aktivitas.

4. Activity yaitu gambar oval yang diisikan aktivitas-aktivitas pada activity

diagram.

Page 7: BAB 2 TINJAUAN REFERENSI software. software yang ...library.binus.ac.id/eColls/eThesisdoc/Bab2/RS1_2019_1...11 1 BAB 2 TINJAUAN REFERENSI 1.1 Metodologi scrum Scrum adalah metode pengembangan

17

5. Ending activity yaitu gambar lingkaran terisi penuh dengan garis lingkaran

lain di luarnya, symbol ini menggambarkan bahwa alur aktivitas telah

selesai.

1.3 Pseudocode

Tiap bahasa pemrograman memiliki peraturan yang harus diikuti atau biasa lebih

dikenal dengan syntax, yaitu adalah aturan penulisan yang harus diikuti oleh seorang

programmer. Jika salah satu dari aturan tersebut dilanggar, maka program tidak bisa di-

compile atau dieksekusi karena menghasilkan syntax error. Apabila hal ini terjadi,

programmer harus menemukan error tersebut dan segera memperbaikinya. Maka dari itu,

programmer biasanya menulis program yang akan mereka buat menggunakan pseudocode

sebelum mereka menuliskannya menjadi suatu bahasa pemrograman.

Kata pseudo berarti palsu, maka pseudocode berarti kode palsu. Pseudocode adalah

bahasa informal yang tidak memiliki aturan syntax dan tidak dibuat untuk di-compile atau

dieksekusi (Gaddis, 2016, p. 30). Programmer membuat pseudocode untuk membuat model

atau ‘mock-up’ suatu program. Programmer tidak perlu memusingkan syntax error ketika

menulis pseudocode sehingga mereka bisa lebih fokus kepada desain program. Ketika suatu

desain program telah selesai dibuat dengan pseudocode, programmer dapat mengubahnya

menjadi kode dengan bahasa pemrograman sesungguhnya.

1.4 User interface dan user experience

User interface atau antarmuka sebuah software adalah titik kontak antara pengguna dan

software. User interface pada software terdiri dari tampilan yang interaktif secara visual yang

berkomunikasi dengan sistem back-end yang sudah diprogram (Wood, 2014).

Microsoft mengatakan bahwa user interface adalah objek-objek pada layar yang dilihat

langsung dan menimbulkan suatu interaksi dengan pengguna software tersebut. Objek-objek

tersebut dapat terdiri dari button, animation, menu, dan dialog box (Microsoft, 2018).

Perancangan UI yang sukses adalah perancangan yang menggabungkan kegunaan atau

usability yang baik, fungsionalitas yang jelas, dan estetika yang baik untuk memberikan hasil

tampilan yang sesuai dengan kebutuhan dan ekspektasi pengguna. Dapat disimpulkan bahwa

Page 8: BAB 2 TINJAUAN REFERENSI software. software yang ...library.binus.ac.id/eColls/eThesisdoc/Bab2/RS1_2019_1...11 1 BAB 2 TINJAUAN REFERENSI 1.1 Metodologi scrum Scrum adalah metode pengembangan

18

perancangan UI harus difokuskan untuk pengguna dan bukan untuk designer maupun

developer (Wood, 2014, p. 38).

Wood juga mengatakan bahwa sebuah user interface akan terlihat sama bagi tiap

pengguna. UI tersebut akan terlihat memiliki susunan atau tata letak yang sama yang terdiri

dari berbagai komponen seperti gambar, teks, dan media, dan pemicu sebuah tindakan

pengguna seperti button, navigation, dan icon. Namun saat menggunakan UI tersebut, tidak

semua pengguna akan memiliki pengetahuan yang sama dalam mengakses UI tersebut dan

penilaian estetika yang sama, hal tersebut berhubungan langsung dengan user experience

atau pengalaman pengguna.

User experience adalah hal yang dirasakan oleh pengguna saat mengakses software

(Wood, 2014, p. 38). Menurut Microsoft, UI adalah salah satu aspek dari user experience.

Aspek-aspek user experience lainnya yang tidak terlihat namun menjadi bagian yang penting

dari sebuah software adalah start up time atau waktu mulai software, error handling atau

penanganan kesalahan pada software, dan kegiatan yang otomatis dilakukan tanpa adanya

tindakan dari pengguna.

1.5 Wireframe

Wireframe adalah sebuah blueprint dasar yang digunakan untuk menggambarkan

bentuk inti dan fungsi yang ditemukan dalam satu layar sebuah halaman web atau aplikasi.

Versi pertama dari sebuah wireframe menggunakan garis hitam biasa, dasar putih, dan

berbagai bentuk untuk memberi tanda di mana elemen navigate, teks, dan media akan

diletakkan pada suatu layar. Sejumlah wireframe yang telah dibuat harus memberikan

gambaran kerangka dari aplikasi yang akan dibuat (Hamm & J, 2014, p. 15).

Proses pembuatan wireframe sebuah website adalah mengevolusi sebuah ide dari

sebuah daftar sederhana berisikan fitur-fitur, menjadi daftar halaman-halaman, dan pada

akhirnya menentukan konten apa saja yang akan diletakkan pada halaman tersebut. Tiap

revisi dari proses pembuatan wireframe harus menghasilkan penambahan detail dan struktur

pada halaman web (Hamm & J, 2014, p. 46).

Page 9: BAB 2 TINJAUAN REFERENSI software. software yang ...library.binus.ac.id/eColls/eThesisdoc/Bab2/RS1_2019_1...11 1 BAB 2 TINJAUAN REFERENSI 1.1 Metodologi scrum Scrum adalah metode pengembangan

19

1.6 Component driven development

Component driven development atau component based development adalah proses

pengembangan sebuah software yang menekankan perancangan dan pembuatan sistem

menggunakan komponen yang dapat digunakan kembali (Pressman & Maxim, 2014, p. 308).

Konsep pengembangan software berikut dapat menjadi solusi untuk pengembangan software

yang kompleks dan berkualitas tinggi yang dituntut untuk dibuat dalam waktu yang singkat.

Untuk mencapai tujuan utama sebuah software, pembuatan sistem dari awal akan

memakan waktu dan biaya yang besar. Solusi yang dapat mengatasi masalah tersebut adalah

dengan menggunakan kembali fungsionalitas yang sudah dibuat. Hal ini dapat dicapai

dengan menerapkan konsep component driven development atau component based

development, di mana proses pengembangan software dikerjakan dari pembuatan komponen

terkecil. Komponen tersebut masing-masing memiliki fungsi dan keberadaan yang berbeda-

beda. Ketika komponen-komponen tersebut dibuat, masing-masing komponen akan diuji

untuk melihat apakah komponen tersebut telah memenuhi kriteria yang sudah ditentukan, hal

ini akan mengurangi biaya dan waktu ketika komponen tersebut digunakan pada sistem baru

dan akan meningkatkan kualitas dan tuntutan software (Tahir, Khan, Babar, & Khan, 2016,

p. 77).

Tahir mengatakan bahwa tujuan dari component based development adalah untuk

mendukung beberapa hal, yaitu mengumpulkan komponen, pembuatan komponen yang

dipastikan dapat digunakan kembali pada sistem yang berbeda, dan pemeliharaan dan

peningkatan sistem dengan menyediakan penyesuaian dan penggantian komponen

berdasarkan kebutuhan sistem (Tahir, Khan, Babar, & Khan, 2016, p. 77).

Dalam pembuatan sistem yang kompleks, untuk mencegah resiko kecacatan pada

sistem, sistem dibuat dari komponen terkecilnya (Tahir, Khan, Babar, & Khan, 2016, p. 78).

Komponen-komponen terkecil tersebut lalu diintegrasi untuk menghasil sebuah sistem yang

besar dan kompleks. Terdapat dua teknik dalam mengembangkan software dengan konsep

component based development, yaitu :

1. Reuse technique atau membuat sebuah sistem baru yang kompleks dengan

menggunakan kembali komponen yang sudah ada.

Page 10: BAB 2 TINJAUAN REFERENSI software. software yang ...library.binus.ac.id/eColls/eThesisdoc/Bab2/RS1_2019_1...11 1 BAB 2 TINJAUAN REFERENSI 1.1 Metodologi scrum Scrum adalah metode pengembangan

20

2. Evaluation technique atau mengevaluasi sistem yang ada dan mengubahnya agar

menjadi lebih mudah untuk dipelihara dengan membuat sistem tersebut dari

komponen-komponen.

Sistem yang dirancang dengan baik memberikan kemudahan bagi developer untuk

memperbaikinya ketika terjadi masalah dan melakukan peningkatan kualitas pada sistem

tersebut.

Dengan mengaplikasikan konsep pengembangan software tersebut ke dalam proses

pengembangan user interface, pengembangan user interface dapat dilakukan dengan

memulai pengembangan dari komponen terkecil yang ada pada user interface tersebut,

seperti button, input, dan text.

Yigitbas mengatakan bahwa bagian-bagian dari user interface dan fungsionalitas yang

berkaitan dienkapsulasi oleh komponen. Dengan membuat komponen terkecil terlebih dahulu

lalu menggabungkannya menjadi sebuah user interface, pengembangan user interface dari

bawah ke atas atau bottom-up development telah tercapai (Yigitbas, Jovanovikj, Josifovska,

& Kalinci, 2019, p. 2).

1.7 Design system

Design system adalah representasi bahasa visual yang sudah dirancang untuk sebuah

website. Bahasa visual yang telah dibuat oleh desainer ini mengekspresikan bagaimana

sebuah website akan memberikan pesannya secara visual kepada user baik melalui warna,

font, button, image dan lain sebagainya (Godbolt, 2016, p. 27).

Seperti layaknya bahasa sehari-hari yang dapat dikategorikan menjadi kata benda, kata

kerja, kata sifat, front-end developer dapat memecah suatu bahasa visual menjadi komponen

yang terkecil. Dengan begitu, developer bebas menyusunnya kembali sesuai dengan

kebutuhan. Tujuan dari pemecahan komponen ini adalah untuk menciptakan codebase yang

mudah dipelihara.

Page 11: BAB 2 TINJAUAN REFERENSI software. software yang ...library.binus.ac.id/eColls/eThesisdoc/Bab2/RS1_2019_1...11 1 BAB 2 TINJAUAN REFERENSI 1.1 Metodologi scrum Scrum adalah metode pengembangan

21

1.8 Static web page

Halaman web statis adalah web yang menyajikan kepada pengguna konten web yang

tidak berubah, yaitu file HTML tanpa gangguan yang disebabkan oleh bahasa dari sisi server,

database atau segala jenis render yang bersifat dinamis (Camden & Rinaldi, 2017).

Keuntungan dari membuat web statis antara lain (Camden & Rinaldi, 2017):

1. Web statis cepat, hal ini dikarenakan file statis mudah untuk di-cache dan mudah

ditampilkan melalui content delivery network atau CDN sehingga pengguna dapat

mengakses web dengan cepat. Dengan mengeliminasi render dinamis dari

database, beberapa titik kegagalan yang biasanya menyebabkan web menjadi tidak

responsif menjadi hilang.

2. Web statis aman karena web statis tidak memiliki database untuk diterobos.

3. Web statis bersifat fleksibel karena web statis tidak dibuat di dalam framework

CMS sehingga tidak ada limitasi dalam bagaimana developer mengembangkan web

statis.

4. Web statis mudah untuk di-hosting karena tidak ada database, sehingga banyak

wadah untuk hosting web statis dari yang murah sampai yang gratis.

5. Perubahan-perubahan pada web statis mudah dilacak dikarenakan web statis terdiri

dari file statis.

Camden juga mengatakan terdapat beberapa situs yang dapat dibuat sebagai web statis,

yaitu blog, documentation, dan e-brochure.

1.9 HTML

Dalam proses pembuatan halaman web, dibutuhkan bahasa markah yang berguna untuk

menampilkan konten halaman web tersebut, yaitu HTML atau Hypertext Markup Language.

HTML bukan merupakan bahasa pemrograman melainkan bahasa markah, yang mana berarti

bahwa HTML mengindikasi struktur dasar dari halaman web, seperti heading, paragraph,

label, dan lain-lain (Robbins, 2012).

Untuk mengindikasi struktur dasar tersebut, HTML menggunakan tag yang memiliki

nama spesifik yang berbeda tiap tag-nya untuk menandakan konten yang berbeda dalam

struktur halaman web. Ketika dokumen HTML di-render ke dalam browser seperti Google

Page 12: BAB 2 TINJAUAN REFERENSI software. software yang ...library.binus.ac.id/eColls/eThesisdoc/Bab2/RS1_2019_1...11 1 BAB 2 TINJAUAN REFERENSI 1.1 Metodologi scrum Scrum adalah metode pengembangan

22

Chrome, Firefox, dan lain-lain, browser tersebut kemudian menafsirkan tag HTML yang ada

pada dokumen lalu menampilkannya. Tiap browser memiliki spesifikasi tampilan yang sudah

distandardisasi terkait tag HTML tertentu, namun pada browser tertentu yang berjalan pada

platform berbeda, tampilan dari tafsiran tag HTML dapat berbeda, sebagai contoh adalah

beberapa browser tidak menunjang font tertentu (Lemay, Colburn, & Kyrnin, 2016).

Dapat disimpulkan bahwa HTML adalah sebuah bahasa yang digunakan untuk

mendeskripsikan struktur dari sebuah halaman web dan tidak digunakan untuk

mendeskripsikan tata letak halaman web atau layout.

1.10 CSS

CSS atau Cascading Style Sheet digunakan dalam pengembangan front-end halaman

web sebagai alat untuk menentukan bagaimana sebuah browser me-render elemen HTML

atau bagaimana sebuah halaman web terlihat. Elemen-elemen yang dapat dikontrol

menggunakan CSS, antara lain seperti fonts, line spacing, background color, dan lain-lain

(Robbins, 2012)

Keuntungan menggunakan CSS adalah CSS dapat digunakan dalam berbagai cara.

Terdapat tiga cara menggunakan CSS, yaitu:

1. External CSS atau membuat satu file sendiri khusus untuk CSS dan

menghubungkan file HTML dengan file CSS tersebut, sehingga ketika ingin

mengubah suatu tampilan beberapa halaman dengan file CSS yang sama, developer

hanya perlu mengganti elemen style di file CSS tersebut.

2. Internal CSS, yang berarti penulisan elemen style CSS ditulis di file yang sama

dengan elemen HTML untuk halaman web tertentu. Hal ini berguna ketika elemen

style CSS hanya diperuntukan untuk elemen HTML tersebut.

3. Inline CSS atau penulisan CSS pada tag HTML tertentu yang ingin diberikan

elemen style.

Penulisan elemen style CSS untuk elemen HTML menggunakan atribut yang

dinamakan id dan class. Tag HTML yang sudah ditulis diberikan nama id atau class yang

sesuai, lalu id maupun class tersebut dipanggil di dalam penulisan CSS untuk diberikan

elemen style yang diinginkan (Lemay, Colburn, & Kyrnin, 2016).

Page 13: BAB 2 TINJAUAN REFERENSI software. software yang ...library.binus.ac.id/eColls/eThesisdoc/Bab2/RS1_2019_1...11 1 BAB 2 TINJAUAN REFERENSI 1.1 Metodologi scrum Scrum adalah metode pengembangan

23

1.11 JavaScript

JavaScript adalah sebuah bahasa pemrograman yang digunakan untuk memanipulasi

konten dari halaman web dan memberikan interaktivitas kepada halaman web (Lemay,

Colburn, & Kyrnin, 2016). JavaScript terintegrasi dengan browser, integrasi tersebut

memperkenankan developer untuk memanipulasi sejumlah aspek pada behaviour browser

tersebut, termasuk objek pada halaman web tersebut. Tipe events yang dapat dibuat dengan

menggunakan JavaScript, antara lain loading halaman web, memberikan validasi pada form,

scrolling halaman web, dan lain-lain. Dengan JavaScript, developer dapat memanipulasi

konten halaman web tanpa mengirim permintaan ke server untuk menerima informasi baru,

sehingga pengguna web tidak perlu meninggalkan halaman tersebut atau menunggu halaman

tersebut loading ulang. Kemampuan tersebut membantu developer untuk mengubah

tampilan, mengubah isi konten, dan memodifikasi behaviour dari browser dengan

menggunakan script yang sudah dihubungkan dengan halaman web.

Gambar 1.2 Penulisan Tag <script>

Page 14: BAB 2 TINJAUAN REFERENSI software. software yang ...library.binus.ac.id/eColls/eThesisdoc/Bab2/RS1_2019_1...11 1 BAB 2 TINJAUAN REFERENSI 1.1 Metodologi scrum Scrum adalah metode pengembangan

24

Penulisan JavaScript pada file HTML berada di dalam tag <script>. Tag <script> dapat

diletakkan baik pada head maupun body dari file HTML, namun berdasarkan buku HTML,

CSS, & JavaScript Web Publishing in One Hour a Day, dikarenakan JavaScript memaksa

browser untuk loading <script> tersebut dalam single thread, halaman web akan loading

dengan lebih cepat jika tag <script> diletakkan pada bagian terbawah dalam tag <body>.

1.12 Git

Dalam proses pengembangan software yang kompleks dan besar dibutuhkan sejumlah

developer untuk mengerjakan produk tersebut. Untuk memudahkan pengerjaan produk

bersama, developer dapat menggunakan git. Git adalah distributed version control system

atau sistem kontrol terdistribusi yang gratis yang dapat digunakan oleh developer (Westby,

2015, p. 10) .

Westby mengatakan bahwa penggunaan git pada proyek software berarti tiap developer

yang terlibat pada proyek tersebut memiliki salinan lokal repository proyek tersebut. Untuk

membagi kode yang telah dituliskan oleh developer, developer hanya perlu menerbitkan

salinan dari repository ke hosting system git yang telah ditentukan, misalnya GitHub

(Westby, 2015, p. 10) .

Melalui tata kelola proyek, ditentukan satu repository yang paling penting yang

digunakan sebagai sumber utama (Westby, 2015, p. 10). Hal ini dikarenakan setiap

repository dapat menerima perubahan dan dapat membagikan perubahannya dengan yang

lain.

1.13 JSX

JSX adalah JavaScript extension yang menyediakan syntactic sugar untuk pemanggilan

function dan pembuatan objek, terutama React.createElement() (Mardan, 2017). JSX terlihat

seperti sebuah template atau HTML, tetapi sesungguhnya JSX adalah syntax yang

menghasilkan React elements dengan kemampuan JavaScript tanpa harus menulisnya dalam

tag script (<script></script>). Kelebihan dari JSX antara lain:

1. Improved developer experience (DX)

Kode lebih mudah dibaca karena penulisan yang jelas seperti halnya membaca

syntax XML (Extensible Markup Language)

Page 15: BAB 2 TINJAUAN REFERENSI software. software yang ...library.binus.ac.id/eColls/eThesisdoc/Bab2/RS1_2019_1...11 1 BAB 2 TINJAUAN REFERENSI 1.1 Metodologi scrum Scrum adalah metode pengembangan

25

2. More productive team members

Developer dapat dengan mudah mengubah kode karena JSX memiliki kemiripan

dengan HTML.

3. Fewer wrist injuries and syntax errors

Mengurangi kode yang harus diketik oleh developer, sehingga mengurangi

kemungkinan error dan kesalahan yang repetitif.

JSX adalah sebuah bahasa kecil yang mempunyai syntax seperti XML dan bertujuan

untuk merubah cara developer membuat sebuah komponen UI. Sebelumnya developer harus

menulis HTML dan JavaScript secara terpisah untuk Controller dan View seperti pada

konsep MVC. Tetapi dengan adanya JSX, logika JavaScript dan deskripsi UI digabungkan

sehingga menciptakan kode yang menyerupai HTML agar lebih mudah dibaca dan diketik.

Gambar 1.3 Proses Transpiling

(Sumber: React Quickly (Mardan, 2017))

Gambar di atas menunjukkan cara JSX di-compile. JSX di-compile menjadi

ECMAScript menggunakan transpiler. Transpiler adalah sebuah compiler yang mengambil

source code suatu program yang ditulis dalam suatu bahasa pemrograman menjadi sebuah

input dan menghasilkan source code yang sama namun dalam bahasa pemrograman yang

berbeda.

Berikut adalah contoh perbedaan penulisan JavaScript menggunakan JSX dan tanpa

JSX:

Page 16: BAB 2 TINJAUAN REFERENSI software. software yang ...library.binus.ac.id/eColls/eThesisdoc/Bab2/RS1_2019_1...11 1 BAB 2 TINJAUAN REFERENSI 1.1 Metodologi scrum Scrum adalah metode pengembangan

26

Gambar 1.4 Penulisan JavaScript tanpa JSX

Gambar di atas menunjukkan penulisan JavaScript tanpa menggunakan JSX, namun

syntax tersebut akan memperoleh hasil yang sama dengan representasi JSX sebagai berikut:

Gambar 1.5 Penulisan menggunakan JSX

Apabila dibandingkan, penulisan menggunakan JSX akan menghasilkan syntax yang

lebih mudah dibaca (Accomazzo, et al., 2017).

1.14 ReactJS

React pertama kali dirilis oleh Facebook pada tahun 2013 (Wieruch, 2017). ReactJS

adalah library terbuka untuk JavaScript yang bertujuan untuk mempermudah pemrograman

reaktif pada pembuatan website atau web aplikasi dan mempermudah pembuatan single-page

application. Prinsip utama dari React adalah declarative code, efficiency, flexibility, dan

improved developer experience (M & Sonpatki, 2016).

Page 17: BAB 2 TINJAUAN REFERENSI software. software yang ...library.binus.ac.id/eColls/eThesisdoc/Bab2/RS1_2019_1...11 1 BAB 2 TINJAUAN REFERENSI 1.1 Metodologi scrum Scrum adalah metode pengembangan

27

Gambar 1.6 Logo ReactJS

React adalah View pada MVC (Model, View, Controller). React menyelesaikan

masalah dari layer View dengan cara memecah bagian yang ada pada View menjadi sebuah

potongan kode yang disebut Component. Komponen-komponen ini berisi logika

pemrograman yang mengendalikan bagaimana View pada komponen tersebut akan

ditampilkan, dan bagaimana hasil dari komponen itu sendiri.

React awalnya dibuat berdasarkan ide bahwa memanipulasi DOM (Document Object

Model) adalah suatu hal yang sulit dilakukan dan harus diminimalisasi. Memanipulasi DOM

tanpa ReactJS juga mengharuskan developer untuk membuat banyak boilerplate code, yang

mana hal tersebut adalah hal yang repetitif dan juga rentan terhadap error.

React adalah sebuah library yang deklaratif. Apabila ada perubahan data, React akan

langsung me-refresh halaman tersebut hanya untuk meng-update- dan me-render bagian

tertentu yang berubah (ReactJS, 2019).

Rendering elements Elemen adalah hasil yang ingin ditampilkan di layar. Tidak seperti DOM

elemen pada browser umumnya, elemen React berisi objek biasa yang mudah dibuat.

React DOM akan meng-update DOM agar selaras dengan elemen React. React hanya

meng-update elemen yang mengalami perubahan dengan cara membandingkan elemen

beserta children nya ke elemen sebelumnya.

Page 18: BAB 2 TINJAUAN REFERENSI software. software yang ...library.binus.ac.id/eColls/eThesisdoc/Bab2/RS1_2019_1...11 1 BAB 2 TINJAUAN REFERENSI 1.1 Metodologi scrum Scrum adalah metode pengembangan

28

Umpamakan ada sebuah tag <div> yang berisi <div id=”root”></div>. Tag

tersebut otomatis menjadi sebuah node “root” DOM yang isinya akan diatur oleh React

DOM. Berikut cara me-render element React ke node root DOM:

Gambar 1.7 Contoh me-render heading (h1)

Kode di atas akan menampilkan halaman yang berisi tulisan “Hello, world”.

Components and props React memecah UI menjadi bagian-bagian kecil yang disebut Components.

Komponen-komponen kecil ini dapat digunakan berulang kali dengan logika yang

berbeda-beda. Komponen mirip seperti fungsi JavaScript pada umumnya. Komponen

menerima input yang disebut ‘props’ dan mengembalikan elemen React sesuai dengan

apa yang ingin ditampilkan.

Gambar 1.8 Contoh komponen

Page 19: BAB 2 TINJAUAN REFERENSI software. software yang ...library.binus.ac.id/eColls/eThesisdoc/Bab2/RS1_2019_1...11 1 BAB 2 TINJAUAN REFERENSI 1.1 Metodologi scrum Scrum adalah metode pengembangan

29

Berdasarkan gambar di atas, dapat dilihat bahwa ShoppingList adalah sebuah

komponen. Sebuah komponen menerima parameter yang disebut props (disingkat dari

“properties”) dan mempunyai return yang kemudian di-render oleh metode render dan

menghasilkan sebuah tampilan View. Metode render menampilkan apa yang ingin

ditampilkan kepada user.

1.15 GatsbyJS

GatsbyJS adalah generator static site berbasis ReactJs. Static site adalah sebuah

halaman web yang memiliki konten statis. Goal utama dari GatsbyJS adalah untuk membuat

website yang sangat cepat (GatsbyJS, 2019). Gatsby mempunyai empat visi yaitu:

1. Construct new, higher-level building blocks

Seperti yang kita ketahui, building blocks sebuah website terdiri dari HTML, CSS,

dan JavaScript. Gatsby percaya bahwa building blocks ini akan ditinggalkan dalam

lima sampai sepuluh tahun kedepan dan akan tergantikan dengan adanya React

component.

2. Create a cohesive “content mesh system”

3. Make building websites fun

Salah satu visi Gatsby adalah membuat proses membangun website menyenangkan

dengan cara yang sederhana. Dengan adanya building blocks yang tepat,

membangun website akan terasa ringan dwan menyenangkan walaupun website

tersebut terus berkembang luas dan besar.

4. Build a better web

Gatsby menggabungkan kualitas performa dan keamanan menjadi suatu framework,

sehingga mempermudah developer untuk membangun suatu website tanpa harus

banyak mengkhawatirkan implementasi fitur-fitur tertentu untuk membangun

website yang aman dan cepat.

Berikut struktur folder pada inisialisasi pembuatan project menggunakan GatsbyJS:

Page 20: BAB 2 TINJAUAN REFERENSI software. software yang ...library.binus.ac.id/eColls/eThesisdoc/Bab2/RS1_2019_1...11 1 BAB 2 TINJAUAN REFERENSI 1.1 Metodologi scrum Scrum adalah metode pengembangan

30

Gambar 1.9 Struktur folder GatsbyJS

Dapat dilihat dari gambar di atas bahwa Gatsby menyediakan beberapa folder dan file

dengan fungsi yang berbeda-beda.

1. /.cache

Folder ini merupakan hasil cache yang dibuat secara otomatis oleh Gatsby. File di

dalamnya tidak untuk dimodifikasi. Folder ini perlu ditambahkan ke dalam

.gitignore.

2. /public

Folder yang berisi semua hasil build website.

3. /plugins

4. /src

Folder ini berisi semua hal yang akan ditampilkan di bagian frontend. File yang

berada di dalam folder ini antara lain:

● /pages

Komponen yang berada dalam src/pages akan otomatis membentuk sebuah

website dengan path yang sama dengan nama file tersebut

● /templates

Berisi template yang sudah dibuat untuk membuat halaman web baru.

● html.js

File yang berguna apabila developer ingin membuat custom HTML.

5. /static

Page 21: BAB 2 TINJAUAN REFERENSI software. software yang ...library.binus.ac.id/eColls/eThesisdoc/Bab2/RS1_2019_1...11 1 BAB 2 TINJAUAN REFERENSI 1.1 Metodologi scrum Scrum adalah metode pengembangan

31

Semua file yang ada di dalam folder ini tidak akan diproses Webpack.

6. gatsby-browser.js

File ini memungkinkan customization atau extension yang akan mempengaruhi

browser.

7. gatsby-config.js

Konfigurasi utama untuk website Gatsby. File ini berisi informasi spesifik seperti

metadata seperti site title dan description, serta apa saja plugins yang dibutuhkan.

8. gatsby-node.js

File ini memungkinkan customization atau extension yang akan mempengaruhi

building process.

9. gatsby-ssr.js

File ini memungkinkan customization atau extension yang akan mempengaruhi

server-side rendering.

Apabila tidak memerlukan customization, developer tidak perlu mengubah isi file

gatsby-browser.js, gatsby-node.js, dan gatsby-ssr.js.

1.16 Emotion

Emotion adalah sebuah library CSS-in-JS yang dirancang untuk menulis CSS di dalam

JavaScript. Emotion terinspirasi dari library CSS-in-JS lainnya seperti glam, glamor, styled-

components, dan glamorous. Emotion mempermudah styling menggunakan string styles atau

object styles (Emotion, 2019).

Page 22: BAB 2 TINJAUAN REFERENSI software. software yang ...library.binus.ac.id/eColls/eThesisdoc/Bab2/RS1_2019_1...11 1 BAB 2 TINJAUAN REFERENSI 1.1 Metodologi scrum Scrum adalah metode pengembangan

32

Gambar 1.10 Logo Emotion

Cara utama dalam menggunakan emotion adalah dengan mengimport ‘css’ dari library

Emotion. Css menerima template literals yaitu sebuah string yang bisa menerima embedded

expression. Template literals biasanya dimulai dan diakhiri dengan backtick (` `). Berikut

contoh penggunaan css Emotion di dalam template literals:

Gambar 1.11 Contoh penggunaan css Emotion dalam template literals

Page 23: BAB 2 TINJAUAN REFERENSI software. software yang ...library.binus.ac.id/eColls/eThesisdoc/Bab2/RS1_2019_1...11 1 BAB 2 TINJAUAN REFERENSI 1.1 Metodologi scrum Scrum adalah metode pengembangan

33

Css juga menerima object styles. Penulisan css properties pada object styles

menggunakan camel case, bukan kebab case seperti penulisan css properties pada umumnya.

Berikut contoh penggunaan css Emotion di dalam object styles:

Gambar 1.12 Contoh penggunaan css Emotion dalam object styles

Cara lain selain css adalah dengan mengimport ‘styled’ dari Emotion. Styled dan css

memiliki perbedaan dari segi pemanggilan. Styled dipanggil dengan cara menulis html tag

atau React component. Contohnya:

Gambar 1.13 Contoh penggunaan 'styled' Emotion

Page 24: BAB 2 TINJAUAN REFERENSI software. software yang ...library.binus.ac.id/eColls/eThesisdoc/Bab2/RS1_2019_1...11 1 BAB 2 TINJAUAN REFERENSI 1.1 Metodologi scrum Scrum adalah metode pengembangan

34

Styled juga dapat disisipkan dengan sebuah props yang mana akan memungkinkan

developer untuk mengganti styling sebuah komponen berdasarkan props yang dipanggil.

Contohnya:

Gambar 1.14 Contoh penggunaan props dalam komponen

1.17 ZEIT Now

ZEIT Now adalah sebuah cloud platform untuk aplikasi web yang bersifat statis.

Platform tersebut memungkinkan developer untuk meng-host web yang dapat dengan cepat

deploy atau menyebarkan web tanpa perlu pengawasan ataupun konfigurasi lainnya (ZEIT,

2019).

Proses deployment adalah hasil pembangunan proyek software yang disebarkan agar

dapat diakses oleh umum melalui URL aktif. Proses deployment pada ZEIT Now yang

digunakan pada pembuatan website dokumentasi pada penelitian ini adalah dengan metode

git integration atau integrasi dengan git. Dengan menggunakan Now untuk GitHub, penulis

menyambungkan Now dengan branch utama proyek untuk website dokumentasi, setiap kali

ada perubahan pada branch utama tersebut, halaman web yang sudah terpublikasi dengan

Now akan secara langsung terintegrasi dengan hasil branch tersebut.

Penggunaan ZEIT Now untuk website dokumentasi didasari pada kebutuhan untuk

mempublikasikan website dokumentasi tersebut secara gratis dan otomatis berubah sesuai

Page 25: BAB 2 TINJAUAN REFERENSI software. software yang ...library.binus.ac.id/eColls/eThesisdoc/Bab2/RS1_2019_1...11 1 BAB 2 TINJAUAN REFERENSI 1.1 Metodologi scrum Scrum adalah metode pengembangan

35

dengan perubahan yang ada pada branch utama tanpa harus melakukan proses deployment

ulang.

1.18 NPM

Npm adalah package manager untuk Node.js yang pertama kali dibuat pada tahun 2009

sebagai proyek open source. Npm mempermudah JavaScript developer untuk membagikan

kode yang telah mereka buat untuk memecahkan suatu masalah dan juga mempermudah

developer lainnya untuk me-reuse atau mengimplementasi kode tersebut di proyek mereka

sendiri. Apabila developer bergantung pada suatu kode yang dibagikan developer lain

(dependency), npm akan mempermudah pengecekan update terbaru dari kode tersebut dan

men-download tiap update ketika ada perubahan (Npm, 2019).

Kode yang reusable ini disebut package atau modules. Package adalah sebuah direktori

yang menyimpan satu atau lebih file di dalamnya yang mempunyai file bernama

package.json dengan metadata mengenai package tersebut.

Npm terdiri dari tiga komponen, yaitu:

1. Website npm, digunakan untuk mencari package yang sesuai dengan kebutuhan

developer.

2. Npm CLI (Command Line Interface), digunakan ketika developer ingin

mempublikasikan kode yang telah mereka buat ke npm atau digunakan untuk meng-

install sebuah package dari npm registry.

3. Npm registry, sebuah database besar yang menampung metadata atau informasi

mengenai package yang dibagikan oleh developer.

1.19 Usability testing

Testing adalah tahapan yang penting dalam pengembangan halaman web. Salah satu

cara untuk menguji kesiapan halaman web adalah dengan usability testing. Tahap pertama

dari usability testing adalah untuk mengumpulkan kategori usability dan menentukan objektif

Page 26: BAB 2 TINJAUAN REFERENSI software. software yang ...library.binus.ac.id/eColls/eThesisdoc/Bab2/RS1_2019_1...11 1 BAB 2 TINJAUAN REFERENSI 1.1 Metodologi scrum Scrum adalah metode pengembangan

36

dari masing2 kategori testing. Berikut adalah kategori yang harus di tes dan objektif dari

testing tersebut (Pressman & Maxim, 2014):

1. Interactivity – apakah interaksi dari menu-menu yang ada mudah dipahami dan

mudah digunakan?

2. Layout – apakah navigasi, konten, dan fungsi yang ada ditempatkan di tempat yang

mudah ditemukan oleh user?

3. Readability – apakah teks yang ada mudah dipahami dan ditulis dengan jelas?

Apakah ilustrasi yang ada mudah dipahami?

4. Aesthetics – apakah user merasa nyaman dengan layout, pilihan warna, pilihan font

yang ditampilkan? (look and feel)

5. Display characteristics - apakah web bisa menampilkan hasil yang optimal sesuai

dengan resolusi layar?

6. Time sensitivity - apakah fitur-fitur penting, fungsi, dan konten yang penting dapat

diakses dengan cepat?

7. Personalization – apakah tampilan web dapat berubah sesuai dengan kebutuhan

user atau kategori user?

8. Accessibility – apakah web dapat diakses oleh orang penyandang disabilitas?

Salah satu contoh usability testing adalah dengan melakukan wawancara terhadap user

untuk menilai pengalaman yang didapat ketika mengakses suatu halaman website atau

aplikasi dan juga sebagai salah satu cara mencari potensi isu yang ada. Setelah wawancara

dilakukan, barulah dikumpulkan sejumlah ide yang dapat membantu perkembangan website

untuk menghasilkan website yang lebih baik dari sebelumnya (Chandler & Unger, 2012).

Page 27: BAB 2 TINJAUAN REFERENSI software. software yang ...library.binus.ac.id/eColls/eThesisdoc/Bab2/RS1_2019_1...11 1 BAB 2 TINJAUAN REFERENSI 1.1 Metodologi scrum Scrum adalah metode pengembangan

37

Page 28: BAB 2 TINJAUAN REFERENSI software. software yang ...library.binus.ac.id/eColls/eThesisdoc/Bab2/RS1_2019_1...11 1 BAB 2 TINJAUAN REFERENSI 1.1 Metodologi scrum Scrum adalah metode pengembangan
Page 29: BAB 2 TINJAUAN REFERENSI software. software yang ...library.binus.ac.id/eColls/eThesisdoc/Bab2/RS1_2019_1...11 1 BAB 2 TINJAUAN REFERENSI 1.1 Metodologi scrum Scrum adalah metode pengembangan

L33