BAB 2 LANDASAN TEORI
2.1 Pengertian Website Website adalah kumpulan file dan sumber daya terkait yang dapat diakses melalui World Wide Web yang didaftarkan atas nama domain tertentu. (Encyclopædia Britannica, 2016) File yang biasa digunakan di situs Web adalah dokumen HTML dengan asosiasi file grafis mereka (GIF, JPEG, dll), naskah program (di Perl, CGI, Java, dll), dan sumber daya yang serupa. File situs biasanya diakses melalui hypertext atau hyperlink yang tertanam dalam file lain. Sebuah situs web dapat terdiri dari satu file HTML, atau mungkin terdiri ratusan atau ribuan file terkait. Sebuah situs Web biasa menggunakan halaman utama, yang disebut homepage, biasanya berfungsi sebagai daftar isi atau indeks, dengan link ke bagian lain dari situs. situs web yang di-host pada satu atau lebih web server, yang mentransfer file ke komputer klien atau server lain yang meminta mereka menggunakan protokol HTTP. Meskipun istilah "Website" menyiratkan lokasi fisik tunggal, file dan sumber daya dari sebuah situs Web sebenarnya bisa tersebar di antara beberapa server di lokasi geografis yang berbeda. File tertentu yang diinginkan oleh klien ditentukan oleh URL yang baik diketik ke dalam browser atau diakses dengan memilih situs hyperlink.
2.2 Pengertian Perancangan “Perancangan adalah proses merencanakan segala sesuatu terlebih dahulu.“ (Kamus Bahasa Indonesia - Edisi Kelima, 2016) “ Perancangan merupakan penggambaran, perencanaan, pembuatan sketsa dari beberapa elemen yang terpisah ke dalam satu kesatuan yang utuh dan berfungsi.” (Sardi, 2004, p. 27) Untuk menghasilkan perancangan yang baik, ada beberapa kriterianya, antara lain mudah dipahami dan digunakan, akurat, atraktif, menarik dan sederhana.
7 http://digilib.mercubuana.ac.id/
8
2.3 NodeJS, ExpressJS, KeystoneJS, MongoDB dan NginX 2.3.1 Sekilas tentang NodeJS Node.js adalah runtime JavaScript yang dibangun di atas mesin V8 JavaScript Chrome. Node.js menggunakan event-driven, non-blocking I / O model yang membuatnya ringan dan efisien. Ekosistem paket Node.js, NPM, adalah ekosistem terbesar dari pustaka open source di dunia. (Joyent, Inc, 2016) Node.js adalah platform perangkat lunak pada sisi-server dan aplikasi jaringan. Ditulis dengan bahasa javascript dan bisa dijalankan pada Windows, Mac OS X dan Linux tanpa perubahan kode program. Node.js memiliki pustaka server HTTP sendiri sehingga memungkinkan untuk menjalankan webserver tanpa menggunakan program webserver seperti Apache atau Lighttpd. Node.js pertama kali diciptakan dan diperkenalkan untuk Linux use pada tahun 2009. Node.js dikembangkan oleh Ryan Dahl yang di sponsori oleh Joyent, perusahaan dimana ia bekerja. Pada tahun 2009 Node.js datang. Node mengambil V8, mesin Javascript Google Chrome yang sangat kuat dari browser dan membuatnya mampu berjalan di server. Dalam browser, pengembang tidak mempunyai pilihan lain selain memilih JavaScript. Selain Ruby, Python, C #, Java, atau bahasa lainnya, pengembang sekarang bisa memilih JavaScript ketika mengembangkan aplikasi server-side. (Hahn, 2015) JavaScript mungkin bukan bahasa yang sempurna untuk semua orang, tapi Node.js memiliki beberapa manfaat yang nyata. Salah satunya adalah dengan mesin Javascript V8 yang cepat juga Node sangat mendukung gaya pengkodean asynchronous, membuat kode lebih sekaligus menghindari mimpi buruk multi-threaded. JavaScript juga memiliki kumpulan pustaka berguna karena popularitasnya. Tapi manfaat terbesar dari Node.js adalah kemampuan untuk berbagi kode antara browser dengan server.
http://digilib.mercubuana.ac.id/
9
Pengembang tidak perlu melakukan apapun apabila konteks beralih antara klien dan server. Sekarang mereka bisa menggunakan paradigma kode yang sama dan antara dua runtimes JavaScript yang berbeda, browser dan server.
Gambar 2.1 NodeJs Architecture Sumber: http://blog.zenika.com/2011/04/10/nodejs/
Salah satu alasannya adalah JavaScript. JavaScript adalah ibu dari banyak bahasa pemrograman yang digunakan di planet ini. Kebanyakan programmer web sudah terbiasa menulis JavaScript di browser, dan server adalah perpanjangan alami dari itu. (Teixeira, 2012) Alasan lainnya adalah kesederhanaan Node. Fungsionalitas inti node dibuat untuk tetap minimum dan semua API yang ada cukup elegan, menunjukan kompleksitas yang minimum kepada programmer. Bila Anda ingin membangun sesuatu yang lebih kompleks, Anda dapat dengan mudah memilih, menginstalasi, dan menggunakan beberapa modul pihak ketiga yang tersedia. Selain itu Node menarik karena betapa mudahnya untuk memulai menggunakannya. Anda dapat men-unduh dan menginstalasinya sangat mudah dan kemudian dan dapat berjalan dalam hitungan menit. Cara khas untuk menginstal Node pada mesin pengembangan Anda adalah dengan mengikuti langkah-langkah di situs
http://digilib.mercubuana.ac.id/
10
http://nodejs.org. Node dapat diinstalasi di Windows, Linux, Macintosh maupun Solaris. 2.3.2 Sekilas tentang ExpressJS Express.js adalah rangkai kerja server aplikasi web Node.js, diciptakan untuk membangun single-page, multi-page maupun aplikasi web Hybrid, dan menjadi sebuah standar rangkai kerja server untuk node.js. Diciptakan oleh TJ Holowaychuck, digambarkan sebagai server yang terinspirasi Sinatra, yang berarti bahwa itu adalah relatif minim dengan banyak fitur yang tersedia sebagai plugin. (Hahn, 2015)
Gambar 2.2 Express JS Middleware Stack Sumber: http://developeriq.in/articles/2015/feb/09/node-expressjs-and-mongoose-part-ii/
2.3.3 Sekilas tentang KeystoneJS KeystoneJS adalah rangkai kerja aplikasi web yang mengacu pada database dan API dalam NodeJS dibangun dengan ExpressJS dan MongoDB. KeystoneJS akan mengkonfigurasi ExpressJS sebagai web server NodeJS, dan menghubungkannya dengan MongoDB menggunakan pustaka Mongoose, KeystoneJS menggunakan metode yang terbaik untuk mengatur Model dan View yang dapat memudahkan. (Thinkmill, 2016)
http://digilib.mercubuana.ac.id/
11
2.3.4
Sekilas tentang MongoDB MongoDB (dari "humongous") adalah sistem basis data berorentasi dokumen
lintas platform. Diklasifikasikan sebagai basis data "NoSQL", MongoDB menghindari struktur basis data relasional tabel berbasis tradisional yang mendukung JSON seperti dokumen dengan skema dinamis (MongoDB menyebutnya sebagai format BSON), membuat integrasi data dalam beberapa jenis aplikasi lebih mudah dan lebih cepat. Dirilis di bawah kombinasi dari GNU Affero General Public License dan Lisensi Apache, MongoDB adalah perangkat lunak bebas dan sumber terbuka. (MongoDB, Inc, 2016) Pertama kali dikembangkan oleh perusahaan asal New York City, 10gen (sekarang MongoDB Inc.) pada bulan Oktober 2007 sebagai bagian dari platform yang direncanakan sebagai produk jasa, perusahaan bergeser ke model pembangunan sumber terbuka pada tahun 2009, dengan 10gen menawarkan dukungan komersial dan layanan lainnya. Sejak itu, MongoDB telah diadopsi sebagai perangkat lunak backend oleh sejumlah situs dan layanan, termasuk Craigslist, eBay, Foursquare, SourceForge, dan The New York Times. MongoDB adalah sistem basis data NoSQL yang paling populer.
Gambar 2.3 Perbandingan MongoDB dan Mysql Sumber: http://davidchang168.blogspot.co.id/2014/03/mysql-vs-mongodb.html
http://digilib.mercubuana.ac.id/
12
2.3.5 Sekilas tentang NginX Nginx (baca: engine x) adalah server HTTP dan Proxy dengan kode sumber terbuka yang bisa juga berfungsi sebagai proxy IMAP/POP3. Kode sumber nginx ditulis oleh seorang warga negara Rusia yang bernama Igor Sysoev pada tahun 2002 dan dirilis ke publik pada tahun 2004. Nginx terkenal karena stabil, memiliki tingkat performansi tinggi dan minim mengonsumsi sumber daya.Beberapa situs terkenal yang menggunakan Nginx adalah Wordpress, Fastmail, Ohloh, Sourceforge dan Github. (Nginx.inc, 2016)
Gambar 2.4 Apache vs nginx request/sec Sumber: http://www.slideshare.net/AndhyKoesnandar/scaling-node-js
2.3.6 Konektifitas NodeJS dan MongoDB Bagian ini membahas pengaturan hubungan antara NodeJS dan MongoDB, untuk membuka hubungan dengan MongoDB dilakukan dengan cara :
http://digilib.mercubuana.ac.id/
13
var mongoClient = require('mongodb').MongoClient; var connectionString = 'mongodb://localhost:27017/namaDB'; mongoClient.connect(connectionString, function(err, db) { if(!err) { console.log("We are connected"); } });
MongoClient adalah deklarasi instance dari klien mongoDB ConnectionString adalah string koneksi yang terdiri dari protokol
: mongodb
hostname : localhost port
: 27017 (Default MongoDB port)
database : namaDB MongoDB tidak menggunakan tabel seperti pada Mysql tetapi menggunakan metode Collection, Untuk melakukan query pada MongoDB dapat dilakukan seperti berikut: // Deklarasi klien mongodb dengan mengambil pustaka mongodb.MongoClient var mongoClient = require('mongodb').MongoClient; // Koneksi ke database mongoClient.connect("mongodb://localhost:27017/namaDB", function(err, db) { // Error check if(err) { return console.dir(err); }
http://digilib.mercubuana.ac.id/
14
// Mengambil semua data dari collection 'test' db.collection('test', function(err, collections) {});
// mengambil semua data dari collection 'test' yang memiliki field 'w' dengan nilai '1' db.collection('test', {w:1}, function(err, collections) {});
// fungsi ini memiliki kegunaan yang sama dengan query diatas mengunakan nama collection dengan tambahan plural 's' db.tests.find({w:1}, function(err, collections) {};
// fungsi ini memiliki kegunaan yang sama dengan query atas hanya mengambil collection item yang pertama db.tests.findOne({w:1}, function(err, collection) {};
//membuat collection 'test' db.createCollection('test', function(err, collections) {}); });
2.4 RequireJS, KendoUI, JQuery, JqueryUI 2.4.1. Sekilas tentang RequireJS RequireJS adalah sebuah pemuat modul dan file javascript. Yang dioptimalkan untuk digunakan di browser, tetapi juga dapat digunakan dalam environment JavaScript lainnya, seperti Rhino dan Node. Menggunakan modular script loader seperti RequireJS akan meningkatkan kecepatan dalam Development dan mempercepat proses javascript. (Requirejs.org, 2016)
http://digilib.mercubuana.ac.id/
15
Gambar 2.5 RequireJS module loading Sumber: https://www.sitepen.com/blog/2012/06/25/amd-the-definitive-source/
2.4.2. Sekilas tentang KendoUI Kendo UI adalah rangkai kerja antarmuka berbasis HTML5 untuk membangun website interaktif dan kinerja tinggi dan aplikasi. Kerangka ini dilengkapi dengan 70+ pustaka widget UI, gadget data visualisasi yang melimpah, client-side data source, pustaka MVVM (Model-View-ViewModel) yang dibangun tersendiri. Kendo UI juga menyediakan integrasi untuk AngularJS dan Bootstrap. (Telerik, 2016) 2.4.3. Sekilas tentang JQuery jQuery adalah pustaka JavaScript lintas-platform yang didesain untuk menyederhanakan client side scripting pada HTML. Dewasa ini, jQuery merupakan pustaka JavaScript yang paling populer, dengan 65% pemasangan dari 10 juta situs
http://digilib.mercubuana.ac.id/
16
Web dengan pengunjung tertinggi. jQuery adalah gratis, dan bersifat kode sumber terbuka dibawah lisensi MIT. (The JQuery Foundation, 2016) Sintaks pada jQuery didesain untuk memudahkan dalam navigasi sebuah dokumen, pemilihan elemen DOM, pembuatan animasi, penanganan event, dan pengembangan aplikasi berbasis Ajax. jQuery juga menyediakan kemampuan bagi para pengembang untuk dapat membuat plug-in pada pustaka JavaScript ini. Ini memungkinan mereka untuk membuat abstraksi pada interaksi dan animasi tingkatrendah, efek lanjutan, serta tampilan widget yang dapat dimodifikasi. Pendekatan modular pada jQuery memungkinkan kita dalam pembuatan halaman Web yang dinamis dan aplikasi berbasis Web yang ajib. Sekumpulan fitur inti jQuery yakni pemilihan elemen DOM, transferal dan manipulasi dimungkinkan berkat adanya selector engine yang bernama Sizzle (sejak versi 1.3), yang membuat sebuah "gaya pemrograman baru", memadukan antara algoritma dan data struktur DOM. Gaya ini dipengaruhi oleh arsitektur JavaScript lainnya seperti YUI v3 dan Dojo, yang nantinya menstimulasi pembuatan standar Selector API. 2.4.4. Sekilas tentang JQueryUI jQuery UI adalah kumpulan widget GUI, efek visual animasi, dan tema diimplementasikan dengan jQuery (pustaka JavaScript), Cascading Style Sheets, dan HTML. Menurut layanan JavaScript analisis Libscore, jQuery UI digunakan di lebih dari 197.000 dari total satu juta situs, sehingga menjadikannya sebagai pustaka JavaScript yang paling populer kedua. Pengguna yang terkenal termasuk diantaranya adalah Pinterest, PayPal, IMDb, The Huffington Post, dan Netflix. (The JQuery Foundation, 2016) Baik jQuery dan jQuery UI adalah perangkat lunak yang gratis dan sumber terbuka, didistribusikan oleh jQuery Foundation dengan Lisensi MIT, jQuery UI pertama kali diterbitkan pada bulan September 2007.
http://digilib.mercubuana.ac.id/
17
2.5 Pemodelan UML Unified Modelling Language (UML) adalah sebuah "bahasa" yg telah menjadi
standar
dalam
industri
untuk
visualisasi,
merancang
dan
mendokumentasikan sistem piranti lunak. UML menawarkan sebuah standar untuk merancang model sebuah sistem. (Dharwiyanti & Wahono, 2003) Dengan menggunakan UML kita dapat membuat model untuk semua jenis aplikasi piranti lunak, dimana aplikasi tersebut dapat berjalan pada piranti keras, sistem operasi dan jaringan apapun, serta ditulis dalam bahasa pemrograman apapun. Tetapi karena UML juga menggunakan class dan operation dalam konsep dasarnya, maka ia lebih cocok untuk penulisan piranti lunak dalam bahasa- bahasa berorientasi objek seperti C++, Java, C# atau VB.NET. Walaupun demikian, UML tetap dapat digunakan untuk modeling aplikasi prosedural dalam VB atau C. Seperti
bahasa-bahasa
lainnya,
UML
mendefinisikan
notasi
dan
syntax/semantik. Notasi UML merupakan sekumpulan bentuk khusus untuk menggambarkan berbagai diagram piranti lunak. Setiap bentuk memiliki makna tertentu, dan UML syntax mendefinisikan bagaimana bentuk-bentuk tersebut dapat dikombinasikan. Notasi UML terutama diturunkan dari 3 notasi yang telah ada sebelumnya: Grady Booch OOD (Object-Oriented Design), Jim Rumbaugh OMT (Object Modeling Technique), dan Ivar Jacobson OOSE (Object-Oriented Software Engineering). Sejarah UML sendiri cukup panjang. Sampai era tahun 1990 seperti kita ketahui puluhan metodologi pemodelan berorientasi objek telah bermunculan di dunia. Diantaranya adalah: metodologi booch, metodologi coad, metodologi OOSE, metodologi OMTss, metodologi shlaer-mellor, metodologi wirfs-brock, dsb. Masa itu terkenal dengan masa perang metodologi (method war) dalam pendesainan berorientasi objek. Masing-masing metodologi membawa notasi sendiri-sendiri, yang mengakibatkan
timbul
masalah
baru
apabila
kita
bekerjasama
group/perusahaan lain yang menggunakan metodologi yang berlainan.
http://digilib.mercubuana.ac.id/
dengan
18
Dimulai pada bulan Oktober 1994 Booch, Rumbaugh dan Jacobson, yang merupakan tiga tokoh yang boleh dikata metodologinya banyak digunakan mempelopori usaha untuk penyatuan metodologi pendesainan berorientasi objek. Pada tahun 1995 direlease draft pertama dari UML (versi 0.8). Sejak tahun 1996 pengembangan tersebut dikoordinasikan oleh Object Management Group (OMG – http://www.omg.org). Tahun 1997 UML versi 1.1 muncul, dan saat ini versi terbaru adalah versi 1.5 yang dirilis bulan Maret 2003. Booch, Rumbaugh dan Jacobson menyusun tiga buku serial tentang UML pada tahun 1999. Sejak saat itulah UML telah menjelma menjadi standar bahasa pemodelan untuk aplikasi berorientasi objek. 2.5.1. Konsepsi Dasar UML Dari berbagai penjelasan rumit yang terdapat di dokumen dan buku-buku UML.
Sebenarnya konsepsi dasar UML bisa kita rangkumkan dalam gambar
dibawah.
http://digilib.mercubuana.ac.id/
19
Gambar 2.6 Konsepsi dasar UML Sumber: http://slideplayer.info/slide/2775729/
Abstraksi konsep dasar UML yang terdiri dari structural classification, dynamic behavior, dan model management, bisa kita pahami dengan mudah apabila kita melihat gambar diatas dari Diagrams. Main concepts bisa kita pandang sebagai term yang akan muncul pada saat kita membuat diagram. Dan view adalah kategori dari diagaram tersebut. 2.5.2. Use Case Diagram Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”. Sebuah use case merepresentasikan sebuah interaksi antara aktor dengan sistem. Use case merupakan sebuah pekerjaan tertentu, misalnya login ke sistem, meng-create sebuah daftar belanja, dan sebagainya. Seorang/sebuah
http://digilib.mercubuana.ac.id/
20
aktor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk melakukan pekerjaan-pekerjaan tertentu. •
Use case diagram dapat sangat membantu bila kita sedang menyusun requirement sebuah sistem, mengkomunikasikan rancangan dengan klien, dan merancang test case untuk semua feature yang ada pada sistem.
•
Sebuah use case dapat meng-include fungsionalitas use case lain sebagai bagian dari proses dalam dirinya. Secara umum diasumsikan bahwa use case yang diinclude akan dipanggil setiap kali use case yang meng-include dieksekusi secara normal.
•
Sebuah use case dapat di-include oleh lebih dari satu use case lain, sehingga duplikasi
fungsionalitas dapat dihindari dengan cara menarik
keluar
fungsionalitas yang common. •
Sebuah use case juga dapat meng-extend use case lain dengan behaviour-nya sendiri. Sementara hubungan generalisasi antar use case menunjukkan bahwa use case
yang satu merupakan spesialisasi dari yang lain.:
http://digilib.mercubuana.ac.id/
21
Gambar 2.7 Contoh Use Case Diagram Sumber: http://ahmadfad89.blogspot.co.id/2011/01/uml.html
2.5.3. Class Diagram Class adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Class menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi). Class diagram menggambarkan struktur dan deskripsi class, package dan objek beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi, dan lain-lain. Class memiliki tiga area pokok : 1. Nama (dan stereotype) 2. Atribut 3. Metoda Atribut dan metoda dapat memiliki salah satu sifat berikut :
http://digilib.mercubuana.ac.id/
22
•
Private, tidak dapat dipanggil dari luar class yang bersangkutan
•
Protected, hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak yang mewarisinya
•
Public, dapat dipanggil oleh siapa saja
Gambar 2.8 Contoh Class Diagram Sumber: http://sedotgratis11.blogspot.co.id/2014_03_01_archive.html
Class dapat merupakan implementasi dari sebuah interface, yaitu class abstrak yang hanya memiliki metoda. Interface tidak dapat langsung diinstansiasikan, tetapi harus diimplementasikan dahulu menjadi sebuah class. Dengan demikian interface mendukung resolusi metoda pada saat run-time.
Gambar 2.9 Class Diagram Interface Sumber: http://sedotgratis11.blogspot.co.id/2014_03_01_archive.html
Sesuai dengan perkembangan class model, class dapat dikelompokkan menjadi package. Kita juga dapat membuat diagram yang terdiri atas package.
http://digilib.mercubuana.ac.id/
23
Gambar 2.10 Class Diagram Package Sumber: http://sedotgratis11.blogspot.co.id/2014_03_01_archive.html
2.5.4. Hubungan Antar Class 1. Asosiasi, yaitu hubungan statis antar class. Umumnya menggambarkan class yang memiliki atribut berupa class lain, atau class yang harus mengetahui eksistensi class lain. Panah navigability menunjukkan arah query antar class. 2. Agregasi, yaitu hubungan yang menyatakan bagian (“terdiri atas..”). 3. Pewarisan, yaitu hubungan hirarkis antar class. Class dapat diturunkan dari class lain dan mewarisi semua atribut dan metoda class asalnya dan menambahkan fungsionalitas baru, sehingga ia disebut anak dari class yang diwarisinya. Kebalikan dari pewarisan adalah generalisasi. 4. Hubungan dinamis, yaitu rangkaian pesan (message) yang di-passing dari satu class kepada class lain. Hubungan dinamis dapat digambarkan dengan menggunakan sequence diagram yang akan dijelaskan kemudian.
http://digilib.mercubuana.ac.id/
24
Gambar 2.11 Contoh class diagram Sumber: http://ahmadfad89.blogspot.co.id/2011/01/uml.html
2.5.5. Activity Diagram Activity diagrams menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Activity diagram merupakan state diagram khusus, di mana sebagian besar state adalah action dan sebagian besar transisi di-trigger oleh selesainya state sebelumnya
(internal
processing).
Oleh karena itu activity diagram tidak
menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum. Sebuah aktivitas dapat direalisasikan oleh satu use case atau lebih. Aktivitas menggambarkan proses yang berjalan, sementara use case menggambarkan bagaimana aktor menggunakan sistem untuk melakukan aktivitas
http://digilib.mercubuana.ac.id/
25
Sama seperti state, standar UML menggunakan segiempat dengan sudut membulat
untuk
menggambarkan
aktivitas.
Decision
digunakan
untuk
menggambarkan behaviour pada kondisi tertentu. Untuk mengilustrasikan prosesproses paralel (fork dan join) digunakan titik sinkronisasi yang dapat berupa titik, garis horizontal atau vertikal. Activity diagram dapat dibagi menjadi beberapa object swimlane untuk menggambarkan objek mana yang bertanggung jawab untuk aktivitas tertentu.
Gambar 2.12 Contoh activity diagram tanpa swimlane Sumber: http://ahmadfad89.blogspot.co.id/2011/01/uml.html 2.5.6. Sequence Diagram Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri atar dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait).
http://digilib.mercubuana.ac.id/
26
Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu. Diawali dari apa yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan. Masing-masing objek, termasuk aktor, memiliki lifeline vertikal.Message digambarkan sebagai garis berpanah dari satu objek ke objek lainnya. Pada fase desain berikutnya, message akan dipetakan menjadi operasi/metoda dari class. Activation bar menunjukkan lamanya eksekusi sebuah proses, biasanya diawali dengan diterimanya sebuah message. Untuk objek-objek yang memiliki sifat khusus, standar UML mendefinisikan icon khusus untuk objek boundary, controller dan persistent entity.
Gambar 2.13 Contoh sequence diagram Sumber: https://www.lucidchart.com/pages/uml/sequence-diagram
http://digilib.mercubuana.ac.id/
27
2.5.7. Component Diagram Component diagram menggambarkan struktur dan hubungan antar komponen piranti lunak, termasuk ketergantungan (dependency) di antaranya. Komponen piranti lunak adalah modul berisi code, baik berisi source code maupun binary code, baik library maupun executable, baik yang muncul pada compile time, link time, maupun run time. Umumnya komponen terbentuk dari beberapa class dan/atau package, tapi dapat juga dari komponen-komponen yang lebih kecil. Komponen dapat juga berupa interface, yaitu kumpulan layanan yang disediakan sebuah komponen untuk komponen lain.
Gambar 2.14 Contoh component diagram Sumber: http://ahmadfad89.blogspot.co.id/2011/01/uml.html
http://digilib.mercubuana.ac.id/
28
2.5.8. Deployment Diagram Deployment/physical diagram menggambarkan detail bagaimana komponen di-deploy dalam infrastruktur sistem, di mana komponen akan terletak (pada mesin, server atau piranti keras apa), bagaimana kemampuan jaringan pada lokasi tersebut, spesifikasi server, dan hal-hal lain yang bersifat fisikal Sebuah node adalah server, workstation, atau piranti keras lain yang digunakan untuk men-deploy komponen dalam lingkungan sebenarnya. Hubungan antar node (misalnya TCP/IP) dan requirement dapat juga didefinisikan dalam diagram ini.
Gambar 2.15 Contoh deployment diagram Sumber: http://ahmadfad89.blogspot.co.id/2011/01/uml.html
http://digilib.mercubuana.ac.id/