BAB 2 TINJAUAN PUSTAKA 2.1 Teori yang berkaitan dengan Rekayasa Pirangkat Lunak 2.1.1 Rekayasa Perangkat Lunak Rekayasa perangkat lunak merupakan proses penerapan dan penggunaan prinsip-prinsip perancangan yang dapat menghasilkan software yang ekonomis dan dapat bekerja secara efisien pada mesinmesin yang akan dipakai (Pressman, 2010 : 13). 2.1.1.1 Object Oriented Analysis Design (OOAD) OOADadalah kumpulan tools dan teknik yang digunakan dalam pengembangan sistem dengan memanfaatkan teknologi objek untuk membangun sistem dan perangkatlunak (Whitten & Bentley, 2007 : 25). 2.1.2 Metode Agile Metode agile adalah suatu metode yang digunakan dalam pengembangan rekayasa piranti lunak, yang dapat mengurangi biaya perubahan dikarenakan software dihasilkan secara bertahap. Ketika terjadi perubahan requirement, developer yang menerapkan metode agile dapat dengan cepat mengadaptasi requirement baru tersebut ke dalam proyek atau program yang sedang dikerjakannya(Pressman, 2010 : 68). 2.1.2.1 Scrum Scrum adalah salah satu pendekatan dari model pengembangan perangkat lunak agile. Prinsip pada scrum sesuai dengan prinsip agile yang digunakan untuk mengembangkan framework yang terdiri dari requirements, analysis, design, evolution, delivery(Pressman, 2010 : 82). 7 8 Gambar 2.1Scrum Process(Pressman, 2010 : 83) Menurut Pressman (2010 : 83-84), terdapat beberapa tahapan dalam metode scrum : 1. Backlog Daftar kebutuhan berisi fitur-fitur prioritas yang akan dibuat. Isi dari fitur tersebut dapat ditambahkan kapan saja. Pada kegiatan ini manajer produk dapat mengakses backlog dan dapat mengubah prioritas dari kebutuhan jika diperlukan. 2. Sprints Aktivitas kerja yang dilakukan untuk memenuhi kebutuhanyang didefinisikan pada backlog yang harus diselesaikan dalam kurun waktu yang sudah ditentukan. Didalam sprint tidak diizinkan terjadinya perubahan. 3. Scrum Meeting Pertemuan yang dilakukan secara teratur, untuk membahas apa saja yang sudah dikerjakan, membahas masalah yang ditemui dan merencanakan pekerjaan apa saja yang harus diselesaikan pada pertemuan selanjutnya. 4. Demos Memberikan demo fitur kepada pengguna untuk mendapatkan evaluasi dari pengguna. 9 2.2 Teori yang berkaitan dengan Tema Penelitian 2.2.1 Sistem Basis Data Sistem basis data adalah kumpulan dari program aplikasi dan Database Management System (DBMS) yang terhubung pada basis data (Connolly & Begg, 2015 : 52). 2.2.1.1 Pengertian Sistem Sistem adalah kumpulan komponen yang saling terkait yang memiliki fungsi untuk mencapai tujuan yang sama (Whitten & Bentley, 2007 : 6). 2.2.1.2 Pengertian Basis Data Basis data adalah kumpulan data yang berelasi dan sebuah deskripsi dari data yang dirancang untuk memenuhi kebutuhan informasi dari suatu organisasi (Connolly & Begg, 2015 : 63). 2.2.1.3 Database Management System (DBMS) DBMS adalah sebuah sistem perangkat lunak yang memungkinkan pengguna untuk mendefinisikan, membuat, memelihara, dan memiliki kontrol akses ke database(Connolly & Begg, 2015 : 64). DBMS memiliki beberapa kegunaan, yaitu (Connolly & Begg, 2015: 97-102): 1. Menyimpanan data, mencari, dan memperbarui DBMS mempunyai kemampuan menyimpan, mengambil, dan memperbarui data dalam database. 2. Mempunyai katalog DBMS menyimpan katalog berisi deskripsi data yang dapat diakses oleh pengguna. 3. Mendukung transaksi DBMS memastikan setiap transaksi yang ada didalam database diperbarui atau tidak. 10 4. Fitur kontrol konkurensi DBMS memastikan database diperbaharui ketika beberapa pengguna memperbarui database secara bersamaan. 5. Fitur recovery DBMS dapat mengembalikan database seperti semula jika terjadi kerusakan pada database. 6. Fitur otorisasi DBMS memastikan hanya pengguna yang memiliki hak akses dapat mengakses database. 7. Mendukung untuk komunikasi data DBMS dapat berintegrasi dengan software komunikasi. 8. Fitur integritas DBMS memastikan perubahan yang terjadi pada data sudah mengikuti aturan. 9. Fitur untuk mendukung independensi data DBMS mempunyai fitur yang mendukung program struktur aktual pada database. 10. Fitur utilitas DBMS menyediakan satu set fitur yang berisi kegunaan import dan export data, monitoring dan program analisis statistik. 2.2.2 Big Data Big data merupakan sebuah kondisi dimana sistem basis data konvensional yang memiliki ketidakmampuan untuk memperbesar kapasitas yang telah dibuat. Pada saat sekarang ini, pertambahan data pada sistem basis data konvensional sangat besar dan pertumbuhannya terlalu cepat, sehingga arsitektur sistem basis data konvensional tidak mampu untuk menghadapi kondisi tersebut (Dumbill, 2012 : 3). Big data dihasilkan dari segala sesuatu yang ada di sekitar pada setiap waktu. Setiap pemrosesan digital dan pertukaran media sosial menghasilkan data yang besar. Sistem, sensor, dan perangkat 11 mobile menghasilkan big data. Big data datang dari berbagai sumber pada kecepatan, ukuran, dan varietas yang mengganggu. Untuk menghasilkan nilai yang berarti pada big data, dibutuhkan kekuatan untuk pemrosesan dan kemampuan analitis yang optimal. Big data memiliki 3 (tiga) karakterisitik (Dumbill, 2012 : 4-7): 1. Volume Data yang masuk untuk diproses jumlahnya sangat besar. 2. Velocity Kecepatan untuk mendapatkan hasil analisa dari data tidak sebanding dengan kecepatan data yang masuk. 3. Variety Data yang masuk tidak terstruktur. Big data mengubah bagaimana manusia bekerja bersama di dalam sebuah organisasi. Big data membuat sebuah budaya dimana bisnis dan teknologi informasi harus bergabung untuk membuat nilai dari data menjadi nyata. Informasi yang didapat dari big data memungkinkan semua karyawan untuk membuat keputusan yang lebih baik, seperti memperdalam perjanjian dengan customer, mengoptimalkan operasi, mencegah ancaman dan penipuan, dan memanfaatkan sumber daya baru. Meningkatnya permintaan terhadap informasi tersebut memerlukan pendekatan fundamental baru untuk arsitektur, alat-alat dan praktik (IBM, What is Big Data?, 2015). Untuk mencapai keuntungan kompetitif pada big data, analisis harus dijalankan dimanapun, membuat kecepatan pembeda, dan mengeksploitasi nilai dari berbagai jenis data. Hal ini membutuhkan infrastruktur yang dapat mengatur dan memproses volume dari data baik terstruktur maupun yang tidak terstruktur yang banyak, serta melindungi privacy dan keamanan. Teknologi big data harus mendukung layanan pencarian, pengembangan, pengelolaan, dan penganalisaan untuk semua jenis 12 data dari data transaksi dan aplikasi sampai data mesin dan sensor untuk sosial, gambar, dan data spasial. Komponen-komponen penting dalam sebuah teknologi big data: 1. Sistem Infrastruktur pada teknologi big data harus memanfaatkan informasi real-time yang mengalir melalui organisasi atau perusahaan. Hal ini harus dioptimalkan untuk analisis untuk merespon secara dinamis, dengan proses bisnis otomatis, kelincahan yang lebih baik dan peningkatan ekonomi untuk meningkatkan permintaan dari big data. 2. Privacy Untuk melindungi reputasi, platform harus terdiri dari kebijakan dan praktek yang ketat di sekitar privasi dan perlindungan data, menjaga semua data dan informasi. 3. Tatakelola Teknologi big data harus dapat mengontrolbagaimana informasidibuat, dilindungi, bersama, dipelihara, dibersihkan, pensiun digabungkan, danterintegrasidalam perusahaanAnda. 4. Penyimpanan Untuk mencapai ekonomi dan efisiensi, analisis harus dijalankan berdekatan dengan data sementara data terus bergerak. Namun untuk data yang akan disimpan, infrastruktur harus mewujudkan strategi yang dipertahankan yang mengurangi tingkat menjalankan penyimpanan, biaya hukum dan risiko. 5. Keamanan Infrastruktur harus memiliki langkah-langkah keamanan yang kuat dibangun untuk menjaga organisasi terhadap ancaman baik internal maupun eksternal. 6. Cloud Untuk mengurangi tekanan bahwa big data ditempatkan pada infrastruktur teknologi informasi, big data dan solusi analitis 13 dapat disimpan secara online. Pencapaian skalabilitas, fleksibilitas, expandabilitas, dan ekonomi akan menyediakan keuntungan kompetitif di masa depan. (IBM, Big Data Technology, 2015). 2.2.3 Not Only SQL (NoSQL) NoSQL dirancang untuk mengatasi permasalahan relational database yang tidak dapat menampung pertumbuhan data dalam jumlah yang besar. NoSQL menggunakan dynamic schema yang memudahkan NoSQL untuk melakukan perubahan pada aplikasi secara real time tanpa khawatir terdapatnya gangguan (MongoDB Inc, NoSQL Databases Explained, 2014). 2.2.4 MongoDB Menurut Chodorow (2013 : 3), MongoDB adalah sebuah basis data yang berorientasi pada dokumen, yang dapat berjalan pada beberapa platform berbeda (cross-platform). MongoDB memiliki beberapa karakteristik, yaitu powerful, flexible, dan scalable. Berbeda dengan basis data relasional, basis data MongoDB bersifat document-oriented, yang menggantikan istilah row pada basis data relasional menjadi bentuk yang lebih sederhana yaitu document. Dengan adanya pendekatan ini, basis data akan lebih mudah dalam menampilkan hubungan hierarki yang kompleks menjadi satu record. MongoDB dirancang untuk dapat melakukan scale out, yaitu penambahan node baru pada sebuah sistem, seperti menambahkan komputer baru pada aplikasi perangkat lunak yang terdistribusi. Fitur-fitur MongoDB (MongoDB Inc, Agile and Scalable, 2013): 1. Document-Oriented Storage Data pada mongoDB disimpan dalam bentuk collections yang berisi dokumen. Collections tersebut tidak memaksakan harus adanya struktur dokumen yang 14 membuat data pada mongoDB memiliki skema yang fleksibel (MongoDB Inc, Data Models, 2014). 2. Full Index Support Index menyediakan peforma yang tinggi dalam membaca operasi query yang sering digunakan (MongoDB Inc, Indexes, 2014). 3. Replication & High Availability Kumpulan replika dalam mongoDB adalah kumpulan proses mongod yang mengatur kumpulan data yang sama. Kumpulan replika menyediakan redudansi dan ketersediaan yang tinggi, dan merupakan dasar untuk semua penyebaran produksi (MongoDB Inc, Replication, 2013). 4. Auto-Sharding Sharding adalah proses penyimpanan catatan data pada beberapa mesin memenuhin dan tuntutan pendekatan pertumbuhan mongoDB data. untuk Sharding memecahkan masalah dengan skala horisontal. Pada sharding mesin dapat ditambahkan lebih banyak untuk mendukung pertumbuhan data dan tuntutan operasi baca dan tulis (MongoDB Inc, Sharding, 2013). 5. Querying Dalam mongoDB, metode db.collection.find() digunakan untuk mengambil dokumen dari koleksi. Metode db.collection.find() mengembalikan kursor ke dokumen yang diambil (MongoDB Inc, Query Documents, 2014). 6. Fast In-Place Updates MongoDB menyediakan metode update() untuk memperbarui dokumen pada collection. Metode ini membutuhkan beberapa parameter: • Kondisi yang merupakan syarat dimana data akan diubah. • Operasi yang digunakan untuk memperbarui data. 15 Untuk menentukan kondisi update menggunakan struktur dan sintaks yang sama dengan kondisi query(MongoDB Inc, Modify Document, 2014). 7. Map Reduce Paradigma pemrosesan data untuk perubahan sejumlah data yang besar ke dalam hasil agregat yang berguna. Untuk operasi map reduce, mongoDB menyediakan perintah database mapReduce(MongoDB Inc, MapReduce, 2014). 8. GridFS Spesifikasi untuk menyimpan dan mengambil file yang melebihi ukuran BSON dokumen sebesar 16MB (MongoDB Inc, GridFS, 2014). 9. MongoDB Management Service (MMS) Layanan cloud yang memberikan kemudahan dalam penyediaan, memonitor, backup, dan scale mongoDB. MMS mendukung ribuan penyebaran, termasuk sistem dari satu sampai ratusan server(MongoDB Inc, MMS: The Easiest Way To Run MongoDB, 2015). 10. MongoDB Enterprise Ratusan organisasi di seluruh dunia menggunakan MongoDB Enterprise, termasuk 30 perusahaan dari Fortune 100. MongoDB Enterprise meliputi (MongoDB Inc, The Best Way To Run MongoDB In Production, Supported, Secure, Certified, 2015): • Support • MongoDB Management Service • Advanced Security • Commercial License • Platfrom Certification • On Demand Training 16 Berikut contoh code mongoDB: 1. Insert db.inventory.insert( { item: "ABC1", details: { model: "14Q3", manufacturer: "XYZ Company" }, stock: [ { size: "S", qty: 25 }, { size: "M", qty: 50 } ], category: "clothing" } ) 2. Find • Mengambil semua dokumen db.inventory.find( {} ) • Mengambil dokumen sesuai kriteria db.inventory.find( { qty: { $gt: 5 } } ) 3. Update db.inventory.update( { item: "MNO2" }, { $set: { category: "apparel", details: { model: "14Q3", manufacturer: "XYZ Company" } }, $currentDate: { lastModified: true } } ) 17 4. Remove db.inventory.remove({}) 2.2.5 Unified Modeling Language (UML) UML adalah sebuah kumpulan aturan permodelan yang digunakan untuk menggambarkan sebuah sistem perangkat lunak dalam bentuk objek (Whitten & Bentley, 2007 : 371). 2.2.5.1 Class Diagram Menurut Whitten & Bentley (2007 : 400-405), class diagram adalah gambaran dari sekumpulan objek yang terstruktur dan saling berelasi. Terdapat 4 (empat) relasi dalam class diagram, yaitu: 1. Asosiasi (Association) Digunakan untuk melihat apakah perubahan sebuah class berpengaruh pada class lain. 2. Multiplicity Menggambarkan jumlah minimum dan maksimum untuk hubungan antar class. Tabel 2.1 Tabel Multiplicity Multiplicity Arti 0 Nol 1 Tepat satu 0..1 Nol atau satu 0..* Nol atau lebih 1..* Satu atau lebih 3. Aggregation / composition Aggregation menggambarkan satu class merupakan bagian dari class lain, sedangkan composition memperlihatkan ketergantungan antar class yang erat. 18 4. Generalisasi Menggambarkan hubungan antara superclass dan subclass. Jika terjadi generalisasi dalam classdiagram maka terdapat inheritance. 2.2.5.2 Use Case Diagram Menurut Whitten & Bentley (2007 : 246-247), use case diagram adalah diagram yang menggambarkan interaksi antara sistem dan aktor. Gambar 2.2Use Case Diagram(Whitten & Bentley, 2007 : 246) Bagian-bagian yang terdapat di dalam sebuah use case diagram: 1. Use case Penggambaran urutan tindakan yang dilakukan oleh aktor. 2. Aktor Aktor adalah pengguna eksternal yang berinteraksi dengan use case didalam sistem. Terdapat 4 (empat) tipe aktor: a. Primary Business Actor Aktor yang mendapatkan keuntungan menerima hasil eksekusi dari use case. dengan 19 b. Primary System Actor Aktor yang berhubungan langsung dengan sistem. c. External Server Actor Aktor yang yang menanggapi permintaan dari use case. d. External Receiving Actor Aktor yang bukan merupakan aktor utama, tetapi mendapatkan hasil dari use case. 3. Boundary Berbentuk kotak yang menunjukkan ruang lingkup sistem. Menurut Whitten & Bentley (2007 : 248-250), terdapat 5 (lima) jenis hubungan pada use case diagram, yaitu : 1. Asosiasi (Associations) Hubungan antara aktor dan use case dimana interaksi terjadi diantara keduanya. Asosiasi yang digambarkan dengan anak panah menuju use case, menunjukkan aktor merupakan penggerak terjadinya use case. Sedangkan asosiasi yang digambarkan tanpa anak panah, hanya menunjukkan adanya interaksi antara use case dengan penerima. Gambar 2.3Associations(Whitten & Bentley, 2007 : 248) 2. Extends Extends digunakan untuk membuat use case yang kompleks menjadi sederhana dan mudah untuk dipahami. Use case yang dihasilkan disebut extension use case. 20 3. Uses (or includes) Digunakan untuk mengurangi pengulangan yang terjadi jika terdapat dua tau lebih langkah yang sama atau identik. Use case yang dihasilkan disebut abstract use case yang berfungi untuk mengurangi redundansi. 4. Depends on Digunakan ketika use case tidak dapat ditampilkan dikarenakan adanya sebuah proses yang belum dilakukan. 5. Inheritance Terdapat aktor yang digunakan untuk menyederhanakan rancangan diagram dan mencegah redundansi. Relasi ini digunakan pada saat 2 (dua) atau lebih aktor melakukan use case yang sama. 2.2.5.3 Sequence Diagram Menurut Whitten & Bentley (2007 : 394-395), sequence diagram adalah diagram yang menggambarkan interaksi antar objek dalam dalam urutan waktu tertentu. Gambar 2.4Sequence Diagram(Whitten & Bentley, 2007 : 395) 21 Notasi dari sequence diagram : 1. Actor Digunakan untuk mewakili user dalam berinteraksi dengan sistem. 2. System Kotak berwarna biru pada gambar 2.3 adalah sistem. Tanda titik dua (:) merupakan notasi sequence diagram untuk menunjukkan sistem yang berjalan. 3. Lifelines Menunjukkan keberadaan sebuah objek dan urutan proses dalam sebuah interaksi. 4. Activation bars Mengindikasikan objek akan melakukan sebuah interaksi. 5. Input messages Menunjukkan komunikasi antara objek. 6. Output messages Jawaban atas pesan yang dikirimkan. 2.2.5.4 Use Case Narative Menurut Whitten & Bentley (2007 : 246), use case narrative merupakan deskripsi tekstual dari kejadian dan bagaimana user akan berinteraksi dengan sistem untuk menyelesaikan tugas. Beberapa elemen yang dapat dideskripsikan pada bagian-bagian dari use case narrative: 1. Usecase name Use case name merepresentasikan tujuan yang akan dicapai. Kata awal dari use case name diawali dengan kata kerja. 2. Actor Merupakan stakeholder utama yang berinteraksi dengan sistem. 22 3. Description Ringkasan sekilas yang menjelaskan secara garis besar isi dari use case yang dibuat dan kegiatannya. 4. Precondition Merupakan batasan pada sistem sebelum use case dapat dieksekusi. Biasanya hal ini mengacu ke use case lain yang harus dieksekusi sebelumnya. 5. Flow of Events Merupakan kejadian yang bertahap dalam mengeksekusi use case. 6. Postcondition Merupakan batasan pada kejadian sistem setelah use case dieksekusi dengan baik. 2.2.5.5 Activity Diagram Menurut Whitten & Bentley (2007 : 390-392), activity diagram adalah diagram yang menggambarkan alur proses bisnis atau use case dan logika dari perilaku objek. Alur aktivitas yang terjadi digambarkan secara paralel. 23 Gambar 2.5Activity Diagram(Whitten & Bentley, 2007 : 392) Notasi dari activity diagram : 1. Initial node Menandakan awal dari proses. 2. Actions Menandakan terjadinya sebuah aktivitas. 3. Flow Menunjukkan jalur sebuah aktivitas ke aktivitas lain. 4. Decision Digunakan untuk memilih jalur aktivitas. 24 5. Merge Penggabungan jalur aktivitas yang terpisah karena decision. 6. Fork Terdapat dua atau lebih action yang terjadi bersamaan. 7. Join Akhir dari proses fork. 8. Activity final Menandakan akhir dari proses. 2.2.6 Interaksi Manusia Komputer Interaksi manusia dan komputer adalah ilmu yang mempelajari hubungan dan interaksi antara manusia dan komputer dalam perancangan dan evaluasi antarmuka pengguna (Shneirderman & Plaisant, 2010 : 22). 2.2.6.1 Delapan Aturan Emas Menurut Shneirderman & Plaisant (2010 : 88-89), terdapat 8 (delapan) aturan emas yang dapat dijadikan pedoman dalam melakukan rancangan tampilan antarmuka, yaitu: 1. Konsistensi Antarmuka yang ditampilkan harus konsisten dari aspek warna, font dan tata letak. Tidak hanya antarmuka tetapi tindakan yang dilakukan harus konsisten. 2. Memenuhi kebutuhan umum Terdapat beberapa tipe pengguna dari yang pemula sampai yang sudah ahli, sehingga harus mengenali kebutuhan pengguna. Contohnya pengguna yang sudah ahli memerlukan kecepatan interaksi, sehingga dibutuhkan tombol shortcut. 3. Memberikan umpan balik yang informatif Untuk setiap tindakan yang dilakukan oleh pengguna, sebaiknya diberikan umpan balik. Umpan balik yang 25 sederhana digunakan untuk tindakan yang sering dilakukan dan tindakan tidak penting, sedangkan tindakan substansial digunakan untuk setiap tindakan yang penting. Contoh penggunaan umpan balik dapat dilakukan ketika pengguna salah menekan tombol pada saat melakukan input data dan akan muncul suara atau pesan kesalahan. 4. Mendesain dialog untuk penutupan Urutan tindakan ketika melakukan suatu pekerjaan harus terorganisir dari bagian awal, tengah, dan akhir serta terdapat umpan balik yang informatif pada setiap tindakan yang dilakukan oleh pengguna. 5. Mencegah terjadinya kesalahan Sistem sebaiknya dirancang agar pengguna tidak melakukan kesalahan yang fatal. Jika kesalahan terjadi, sistem dapat mendeteksi kesalahan dengan cepat dan memberikan mekanisme penanganan yang sederhana. 6. Memudahkan kembali ke proses sebelumnya Pengguna dapat membatalkan proses yang telah dilakukan jika terjadi kesalahan. Sistem yang dapat kembali ke proses sebelumnya membuat pengguna tidak perlu merasa khawatir untuk mengeksplorasi pilihan-pilihan yang belum biasa digunakan. 7. Mendukung tempat pengendali internal (internal locus of control) Sistem yang dirancang harus dapat mendukung pengguna dalam melakukan pengontrolan sistem seperti sistem dapat dengan cepat menanggapi permintaan pengguna, sehingga pengguna tidak merasa bahwa mereka dikontrol oleh sistem melainkan mereka yang mengontrol sistem tersebut. 8. Mengurangi beban ingatan jangka pendek Manusia memiliki keterbatasan ingatan, sehingga dibutuhkan tampilan yang sederhana dan diberikan waktu yang cukup untuk berlatih. 26 2.2.6.2 Lima Faktor Manusia Terukur Menurut Shneirderman & Plaisant (2010 : 32), untuk merancang sistem yang membuat pengguna lebih nyaman harus memperhatikan 5 (lima) faktor berikut: 1. Waktu belajar Waktu yang dibutuhkan pengguna untuk mempelajari aksiaksi yang terdapat pada sistem dan cara relevan untuk melakukan suatu tugas. 2. Kecepatan kinerja Waktu yang dibutuhkan pengguna untuk menyelesaikan suatu tugas. 3. Tingkat kesalahan pengguna Banyaknya kesalahan yang terjadi dan kesalahan apa saja yang dilakukan pengguna dalam menyelesaikan tugas. 4. Daya ingat Kemampuan pengguna untuk mempertahankan pengetahuannya setelah jangka waktu tertentu. 5. Kepuasan subjektif Tingkat kepuasan dan ketertarikan pengguna terhadap aspek-aspek yang terdapat dalam sistem. 2.2.7 Web Web adalah sebuah teknologi yang bersifat platformindependent, dimana pengguna cukup mengakses alamat url dari website tersebut melalui browser, tanpa melakukan instalasi tambahan pada perangkat lunak (Connolly & Begg, 2015 : 1047). 2.2.8 Social Media Social media adalah komunitas online yang bersifat partisipatif dimana pengguna dapat menghasilkan sesuatu, mempublikasikan, memberi kritik, memberi peringkat, dan berinteraksi dengan sesama pengguna (Tuten, 2008 : 20). 27 Sedangkan menurut (Kaplan & Haenlein, 2010), Social Media merupakan sebuah kelompok aplikasi berbasis internet yang terbangun di atas dasar ideologi dan teknologi Web 2.0 yang memungkinkan pembuatan dan pertukaran user-generated content. Berikut ini merupakan jenis-jenis social media yang dikelompokan menjadi 6 (enam) jenis (Kaplan & Haenlein, 2010), diantaranya : 1. Collaborative Projects (Proyek Kolaborasi) Jenis social media yang memungkinkan pengguna untuk menambah, menghapus, dan mengubah konten berbasis teks dan aplikasi social bookmarking (social bookmarking applications) yang memungkinkan pengumpulan dan rating dari link internet atau konten media berbasis kelompok. 2. Blogs dan Microblog Jenis social media yang memungkinkan user untuk dapat menyampaikan pemikiran, gagasan, pendapat, atau memberi saran. 3. Content Communities Jenis social media ini memiliki tujuan utama adalah berbagi konten media antara pengguna seperti berbagi foto, video, dan presentasi PowerPoint. Contohnya : Flickr, YouTube, dan Slideshare. 4. Social Networking Sites (Situs Jejaring Sosial) Jenis social media yang memungkinkan penggunanya untuk terhubung dengan menciptakan profil informasi pribadi, mengundang teman-teman dan kolega untuk memiliki akses ke profil tersebut, dan mengirim e-mail dan pesan instan antara satu sama lain. 5. Virtual Game Worlds Dunia virtual yang meniru lingkungan tiga dimensi (3D) dimana pengguna dapat muncul dalam bentuk avatar pribadi dan berinteraksi satu sama lain sebagaimana mereka dalam kehidupan nyata. 28 6. Virtual Social Worlds Kelompok kedua dari dunia virtual, sering disebut sebagai dunia sosial virtual, memungkinkan penduduk untuk memilih perilaku mereka lebih bebas dan pada dasarnya menjalani kehidupan virtual yang mirip dengan kehidupan nyata mereka. Menurut Hadi Purnama (2011: 116) social media mempunyai beberapa karakteristik khusus diantaranya: 1. Jangkauan (reach) Daya jangkauan social media mencakup skala kecil hingga global. 2. Aksesibilitas (accessibility) Social media lebih mudah diakses oleh publik dengan biaya yang terjangkau baik dimanapun dan kapanpun. 3. Penggunaan (usability) Social media relatif mudah digunakan karena tidak memerlukan keterampilan dan pelatihan khusus. 4. Aktualitas (immediacy) Social media dapat memancing respon penguna lebih cepat. 5. Tetap (permancence) Social Media dapat menggantikan komentar secara instan atau mudah melakukan proses pengubahan. 2.2.9 E-Commerce E-commerce adalah proses membeli, menjual, mengirim produk, jasa, dan / atau informasi melalui jaringan komputer, yang sebagian besar adalah internet dan intranet(Turban, et al., 2012 : 38). E-commerce berdasarkan jenis transaksi nya (Turban, et al., 2012 : 42): 1. Business to Business (B2B) Partisipan pada B2B adalah perusahaan dengan perusahaan lainnya. 29 2. Business to Consumer (B2C) Merupakan transaksi retail produk dan jasa dari bisnis ke customer individu. E-tailing (electronic retailing) merupakan salah satu jenis B2C E-commerce. 3. Business to Business to Consumer (B2B2C) Pada B2B2C sebuah perusahaan menyediakan produk atau jasa pada perusahaan klien yang memiliki customer sendiri untuk didistribusikan produk atau jasa tersebut. 4. Consumer to Business (C2B) Merupakan kategori dimana individu yang menggunakan internet menjual produk atau jasa untuk perusahaan, atau individu yang mencari vendor untuk menawarkan produk atau jasa nya. 5. Intrabusiness EC Merupakan kategori yang mencakup semua aktivitas Ecommerce dalam suatu perusahaan yang menyangkut pertukaran barang, jasa, ataupun informasi antar unit, individu, ataupun bagian. 6. Business to Employees (B2E) Merupakan kategori bagian dari Intrabusiness EC dimana perusahaan membagikan jasa, informasi, atau produk pada tiap karyawan. 7. Consumer to Consumer Pada kategori ini, sesama customer saling bertransaksi. 8. Collaborative Commerce Terjadi saat komunikasi, individu kolaborasi, atau perusahaan ataupun melakukan kerjasama dengan memanfaatkan jaringan komputer. 9. E-Government Terdiri dari Government to Business (G2B), Government to Citizen (G2C), dan Government to Government (G2G). 30 Menurut Turban, et al. (2012 : 40) e-commerce framework terdiri dari : 1. People Penjual, perantara, system informasi, dan spesialis teknologi, dan karyawan lainnya. 2. Public Policy Hukum, kebijakan lainnya dan masalah regulasi seperti perlindungan privasi dan pajak yang ditentukan oleh pemerintah. 3. Marketing and Advertisement E-commerce biasanya membutuhkan bantuan pemasaran. Hal ini penting dalam jenis e-commerce B2C dimana penjual dan pembeli biasanya tidak mengenal satu sama lain. 4. Support Service Banyak pelayanan yang dibutuhkan untuk membantu ecommerce. 5. Business Partnership Usaha bersama, pertukaran dan kerjasama bisnis pada beberapa tipe e-commerce yang umum. Hal ini terjadi secara berkala. 2.2.9.1 Business-to-Business (B2B) B2B adalah salah satu tipe transaksi e-commerce yang dilakukan melalui internet, dimana individu atau perusahaan memproduksi barang dan jasa yang akan dijual kembali untuk memproduksi barang dan jasa lainnya (Nickels, McHugh, & McHugh, 2008 : 361). Terdapat 2 (dua) kerangka dimensi B2B (Cullen & Webster, 2007): 1. Connectivity of the transaction 31 Jumlah pembeli dan penjual dalam transaksi terdefinisi, yang dapat digambarkan dengan: a. Auction (One to many) Satu penjual dengan banyak pembeli. Penjual memulai transaksi dan banyak pembeli menawar untuk produk dengan harga yang semakin tinggi sampai angka akhir yang disepakati. b. Aggregator/exchange (Many to many) Terdapat banyak pembeli dan banyak penjual yang terhubung dalam berbagai jenis transaksi. c. Extranet (one-to-one) Interaksinya terbatas pada mitra dagang tertentu, tetapi belum tentu hanya antara 1 penjual dan 1 pembeli. Konektivitas extranet harus lebih akurat sehingga termasuk antara one dan many. d. Bid (many-to-one) Transaksi pembeliannya disebut juga lelang terbalik, di mana harga secara bertahap dikurangi dan yang terendah diterima. Bid digambarkan sebagai mekanisme untuk produk yang biasanya dibeli melalui permintaan pembelian. 2. Primary purpose of the transaction Berkaitan dengan tujuan utama dari penjual atau pembeli memulai transaksi. Interaksi yang terdapat dalam transaksi dapat melibatkan satu pembeli dan / atau penjual, semua pembeli dan / atau penjual. 2.2.10 Hypertext Markup Language (HTML) Menurut Larsen (2013 : 3), HTML adalah bahasa yang digunakan untuk membuat halaman web. Penulisan kode html diawali dengan tag<html> dan diakhiri dengan </html> yang didalamnya 32 terdapat dua bagian yaitu head yang diawali dengan tag<head> dan diakhiri dengan </head> serta body yang diawali dengan <body> dan diakhiri dengan </body>. Kode yang dituliskan di dalam head adalah kode yang pertama kali dijalankan pada saat halaman web diakses atau di refresh. <html> <head> </head> <body> </body> </html> 2.2.11 Cascading Style Sheets (CSS) Menurut Meloni & Morrison (2010 : 48), CSS adalah sebuah bahasa pemrograman yang digunakan untuk mengatur bentuk tampilan seperti jenis tulisan, warna, dan posisi suatu obyek pada sebuah web. Ada 3 (tiga) jenis CSS berdasarkan cara penyisipannya pada suatu HTML, yaitu: 1. External CSS Pada external CSS, seluruh kode CSS dimasukkan ke dalam file secara terpisah, dengan ekstensi file .css dan dipanggil pada setiap halaman HTML. Contoh: File style.css #body{ width:100px; } 2. Internal CSS Pada internal CSS, kode CSS disisipkan hanya pada file HTML yang diinginkan, kode CSS pada halaman HTML yang satu tidak berlaku pada halaman HTML yang lain. 33 Contoh: File test.html <style> #body{ width:100px; } </style> 3. Inline CSS Pada inline CSS, kode CSS langsung dituliskan pada bagian HTML yang diinginkan. Contoh: <div id="body" style="width:100px"></div> 2.2.12 Hypertext Preprocessor (PHP) PHP merupakan bahasa pemrograman scripting yang paling banyak digunakan pada bagian server dalam pengembangan aplikasi web, yang menampilkan informasi HTML secara dinamis (McIntyre, 2010 : 2). 2.2.13 jQuery jQuery adalah sebuah library dari JavaScript yang dirancang untuk memudahkan developer dalam membangun interaksi antarmuka yang menarik pada sebuah web (Chaffer & Swedberg, 2013 : 7). 2.2.14 JavaScript JavaScript adalah bahasa scripting dari sisi klien yang berjalan sepenuhnya di dalam browserweb. JavaScript memiliki fungsi yang dinamis, contoh penggunaan JavaScript adalah halaman pop up, fungsi validasi pada form sebelum data dikirimkan ke server, perubahan gambar ketika kursor melewati objek tertentu (Nixon, 2012 : 291) 34 2.2.15 JavaScript Object Notation (JSON) JSON adalah sebuah format standar yang digunakan untuk menukar dan mengirimkan data dalam bentuk yang mudah dibaca dan ditulis oleh manusia, serta mudah diterjemahkan oleh komputer (JSON, 2013). JSON terbuat dari 2 (dua) bagian: 1. Kumpulan pasangan nama atau nilai (a collection of name or value pairs) Pada beberapa bahasa pemrograman lain, hal ini dinyatakan sebagai object, record, struct, dictionary, hash table, keyed list, atau associative array. 2. Daftar nilai yang terurut (an ordered list of values) Pada kebanyakan bahasa pemrograman lain, hal ini dinyatakan sebagai array, vector, list, atau sequence. Bentuk-bentuk yang digunakan dalam JSON: 1. Object Objek diawali dengan kurung kurawal buka ({) dan diakhiri dengan kurung kurawal tutup (}). Setiap nama diikuti dengan titik dua (:) dan antara pasang nama atau nilai dipisakan oleh koma (,). Contoh: {“key”:”value”} Gambar 2.6 Object 2. Array Kumpulan value yang terurut. Sebuah array diawali dengan kurung kotak buka ([) dan diakhiri dengan kurung kotak tutup (]). Masing-masing value dipisahkan dengan koma (,). Contoh: [1, 2, 3] 35 Gambar 2.7Array 3. Value Nilai yang terdapat pada JSON, yang dapat berupa string, number, object, array, true, false, null. Gambar 2.8Value 4. String Kumpulan nol atau lebih karakter Unicode yang diawali dan diakhiri dengan tanda petik dan menggunakan backslash escape (\). Sebuah karakter ditampilkan sebagai satu karakter string. String pada JSON serupa dengan string pada bahasa C atau Java. Contoh: "Ini adalah string" 36 Gambar 2.9String 5. Number Number pada JSON serupa dengan number pada bahasa C atau Java, perbedaannya adalah JSON tidak menggunakan bilangan oktal dan heksadesimal. Gambar 2.10Number 2.2.16 CodeIgniter CodeIgniter adalah sebuah framework yang digunakan untuk aplikasi web berbasis PHP yang bersifat open-source. CodeIgniter menggunakan pola rancangan Model View Controller (MVC), yang bertujuan untuk mempermudah pengembangan aplikasi web dimana developer dapat mengatur sistem aplikasi menjadi tiga bagian yang berbeda. Selain itu, CodeIgniter juga menggunakan Singleton Design Pattern, dimana hanya ada satu instance yang aktif untuk dapat digunakan secara bersama (Griffiths, 2010 : 7). 37 2.3 Hasil Penelitian atau Produk Sebelumnya Aplikasi sebelumnya adalah portal business-to-business (B2B). Portal B2B adalah pemasaran online menggunakan internet sebagai akses ke sebuah situs yang efisien membantu perusahaan B2B untuk berhubungan dengan pembeli B2B secara global untuk memasarkan produk dan jasa mereka di seluruh dunia (Jacobs, 2014). Sebuah perusahaan dapat melakukan pemasaran menggunakan portal B2B dengan cara sebagai berikut: 1. Perusahaan harus mengidentifikasi portal dan pasar online yang paling relevan dengan industri, portofolio produk mereka, dan target pasar. 2. Perusahaan harus menyediakan informasi yang spesifik mengenai produk dan informasi umum mengenai perusahaan. Hal tersebut mempermudah pembeli B2B yang ingin membeli produk dan dapat langsung menghubungi perusahaan yang bersangkutan. 3. Selalu melakukan update tentang produk dan jika terdapat update tentang perusahaan harus dilakukan secepatnya. 4. Perusahaan harus menetapkan contact person, agar permintaan yang masuk dapat ditangani secara optimal dan cepat. Selain itu, partner baru juga dapat dengan mudah berintegrasi dalam proses penjualan. Terdapat 5 (lima) alasan perusahaan mengintegrasikan portal B2B ke dalam strategi pemasaran online (Jacobs, 2014): 1. Visibilitas untuk calon konsumen Pembeli B2B menggunakan portal untuk melakukan pencarian barang dan jasa secara khusus dikarenakan portal menghasilkan hasil pencarian yang lebih tepat dibandingkan dengan mesin pencarian pada umumnya. Hal tersebut membuat portal membantu perusahaan terhubung dengan calon konsumen yang potensial. 2. Biaya yang efisien untuk mendapatkan keuntungan Sebagian besar portal menawarkan akun standar dengan registrasi yang gratis untuk beberapa saat. Lalu portal akan menawarkan upgrade ke akun premium dengan harga terjangkau dan memiliki fungsi tambahan. Perusahaan yang menggunakan akun premium akan meningkatkan peringkat perusahaan dalam daftar pencarian. 38 3. Layanan verifikasi untuk akuisisi pelanggan internasional Portal B2B menawarkan layanan verifikasi untuk membuat akuisisi pelanggan internasional yang aman dan bermanfaat bagi semua pihak. 4. Meningkatkan peringkat mesin pencari dan peningakatan pada perdagangan Pemasaran barang di dalam portal B2B akan meningkatkan peringkat perusahaan pada hasil mesin pencarian. Hal tersebut membuat mesin pencarian seperti Google dan Yahoo akan mengarahakan pencarian ke portal B2B. 5. Target yang baik dan kerugian yang kecil Menggunakan portal B2B memungkinkan target pasar atau industri yang besar. Banyak portal yang fokus pada perusahaan yang menghubungkan industri tertentu di seluruh dunia. Dengan demikian, perusahaan mendapatkan manfaat dari penargetan tersebut dan kerugian yang didapatkan kecil.