BAB II LANDASAN TEORI
2.1 Definisi Penjadwalan Pengertian jadwal menurut kamus besar bahasa Indonesia adalah pembagian waktu berdasarkan rencana pengaturan urutan kerja, daftar atau tabel kegiatan atau rencana kegiatan dengan pembagian waktu pelaksanaan yang terperinci. Sedangkan pengertian penjadwalan adalah proses, cara, perbuatan menjadwalkan atau memasukkan ke dalam jadwal. Menurut (Baker, 1974) mengatakan bahwa penjadwalan merupakan alokasi sumber daya terhadap waktu untuk menghasilkan sebuah kumpulan pekerjaan.
Penjadwalan
dibutuhkan
untuk
memproduksi
order
dengan
pengalokasian sumber daya yang tepat seperti mesin yang digunakan, jumlah operator bekerja, urutan pengerjaan part, dan kebutuhan material. Dengan peraturan penjadwalan yang efektif dan effisien, perusahaan akan dapat memenuhi order terdapat pada due date serta kualitas yang telah ditentukan. 2.1.1 FCFS (First Come First Serve) Algoritma ini merupakan algoritma penjadwalan yang paling sederhana yang digunakan CPU. Dengan menggunakan algoritma ini setiap proses yang berada pada status ready dimasukkan kedalam FIFO queue atau antrian dengan prinsip first in first out, sesuai dengan waktu kedatangannya. Proses yang tiba terlebih dahulu yang akan dieksekusi. (Uniera et al. 2013) Proses yang pertama kali meminta jatah waktu untuk menggunakan CPU akan dilayani terlebih dahulu. Dan rata-rata waktu tunggu (Average waiting time) cukup tinggi. Algoritma penjadwalan FCFS merupakan salah satu strategi penjadwalan non-Preemptive karena sekali CPU dialokasikan pada suatu proses, maka proses tersebut akan tetap memakai CPU sampai proses tersebut melepaskannya, yaitu jika proses berhenti atau meminta I/O. Kelemahan dari Algoritma penjadwalan ini adalah adanya convoy effect. Skema proses yang meminta CPU mendapat prioritas. Implementasi dari FCFS mudah diatasi dengan FIFO queue.
5 http://digilib.mercubuana.ac.id/
2.2 SMS (Short Message Service) Menurut (Komputer, 2005) mengartikan, SMS (Short Message Service) adalah merupakan salah satu layanan pesan teks yang dikembangkan dan distandardisasi oleh suatu badan bernama ETSI (European Telecommunication Standards
Institute)
sebagian
dari
pengembangan GSM (Global System
for Mobile Communication) Phase 2, yang terdapat pada dokumentasi GSM 03.40 dan GSM 03.38. Fitur SMS ini memungkinkan perangkat Stasiun Seluler Digital (Digital Cellular Terminal, seperti Ponsel) untuk dapat mengirim dan menerima pesan-pesan teks dengan panjang sampai dengan 160 karakter melalui jaringan GSM. Karakter yang dimaksud adalah alphabet A sampai Z, angka 0 sampai 9 dan spasi. Untuk karakter non-Latin, seperti Arab, Kanji atau Mandarin dengan panjang sampai dengan 70 karakter. SMS
dapat
dikirimkan
ke
perangkat stasiun seluler digital lainnya hanya dalam beberapa detik selama berada pada jangkauan pelayanan GSM. Lebih dari sekedar pengiriman pesan biasa, layanan SMS memberikan garansi SMS
akan
sampai
pada
tujuan
meskipun perangkat yang dituju sedang tidak aktif yang dapat disebabkan karena sedang dalam kondisi mati atau berada di luar jangkauan layanan GSM. Dengan adanya feature seperti ini maka layanan SMS juga cocok untuk dikembangkan sebagai
aplikasi-aplikasi
seperti : pager,e-mail, dan notifikasi
voice mail, serta layanan pesan banyak pemakai (multiple
user).
Namun
pengembangan aplikasi tersebut masih bergantung pada tingkat layanan yang disediakan oleh operator jaringan. 2.2.1 Karakteristik SMS Ada beberapa karakteristik pesan SMS menurut (Komputer, 2005) yang penting yaitu : 1. Sebuah pesan singkat yang terdiri dari 160 karakter. 2. Pesan SMS dijamin sampai atau tidak sama sekali selayaknya email, sehingga jika terjadi kegagalan sistem atau hal lain yang menyebabkan SMS tidak diterima akan diberikan informasi (delivery report) yang menyatakan SMS gagal dikirim.
6 http://digilib.mercubuana.ac.id/
3. Berbeda dengan fungsi call (panggilan), sekalipun saat mengirimkan SMS tetapi handphone tujuan tidak aktif bukan berarti pengiriman SMS akan gagal. Namun SMS akan masuk ke antrian dahulu selama waktu belum time out. SMS akan segera dikirimkan jika handphone sudah aktif. 4. Bandwith yang digunakan rendah. 2.2.2 Keuntungan SMS Adapun keuntungan dari SMS menurut (Komputer, 2005) yaitu : 1. Pengiriman notifikasi dan peringatan (alert). 2. Penyampain pesan
yang terjamin, handal dan komunikasi dengan
biaya rendah. 3. Kemampuan untuk menyaring pesan dan menanggapi panggilan secara selektif. 4. Tingkat
kegagal
kirim
yang
sangat
kecil
sehingga
pesan
kemungkinan besar akan sampai pada tujuan. 5. Pengiriman pesan ke nomor tujuan yang banyak dan berbeda dapat dilakukan pada waktu yang relatif singkat. 2.2.3 Cara kerja SMS Mekanisme dari sistem SMS ialah store and forward, dimana sistem dapat melakukan pengiriman short message dari satu terminal ke terminal lainnya. Hal ini dapat dilakukan berkat adanya sebuah entitas dalam sistem SMS
yang
juga Message
bernama Short Center (MC).
Message SMSC
Service
merupakan
Center(SMSC), sebuah
disebut
perangkat
yang
melakukan tugas store and forward traffic short message seperti pada Gambar 2.1 tersebut:
Gambar 2.1 Mekanisme pengiriman SMS (Store and Forward ) Sumber : (Muslih & Purnama 2013) 7 http://digilib.mercubuana.ac.id/
Pengiriman pesan SMS secara store and forward yaitu pengirim SMS memasukkan pesan SMS dan nomor tujuan dan kemudian mengirimkannya (store)
ke server SMS (SMS Center)
yang
kemudian bertanggung
jawab
mengirimkan pesan SMS tersebut (forward) ke nomor telepon tujuan. Hal ini berarti
bahwa
pengirim
dan penerima SMS
tidak berada
dalam status
berhubungan (connected) satu sama lain, ketika akan saling bertukar pesan SMS. Pesan yang dikirim oleh pengirim ke SMSC yang kemudian menunggu untuk dapat meneruskan pesan tersebut ke penerima. Ketika status penerima dalam keadaan aktif pesan segera dikirim oleh SMSC ke nomor tujuan beserta isi pesan pengirim. Pengirim akan menerima delivery report bahwa pesan telah terkirim (message sent). 2.2.4 Sistem Kerja SMS Semua SMS yang kita kirim atau terima sebenarnya telah mengalami pengolahan sebelumnya. Kumpulan pesan yang berupa teks telah mengalami proses yang cukup rumit, tidak semudah kita mengetikkan dan mengirim SMS tersebut. Seperti halnya teks yang kita ketikkan dirubah kedalam format PDU (Protocol Data Unit) dimana pada tahap ini teks diolah sedemikian rupa sehingga akhirnya dapat diterima dan di baca oleh penerima. Semua hal ini dilakukan oleh sebuah perintah yang dikenal dengan perintah AT (AT COMMAND). Untuk uraian lengkap akan dijelaskan secara rinci sebagai berikut proses pengolahan SMS. 1. AT Command Menurut Cahyo, Setiyo (2006), dalam panduan praktis pemrograman database menggunakan mysql dan java, perintah AT (Hayes ATCommand) digunakan untuk berkomunikasi dengan terminal (handphone/modem GSM) melalui gerbang serial port pada komputer. Dengan penggunaan perintah AT, dapat diketahui atau dibaca kondisi dari terminal, seperti mengirim pesan, membaca pesan, menambah item pada daftar telepon, mengetahui suatu vendor dari handphone yang di gunakan, mengecek kekuatan sinyal, mengecek kekuatan battery dan sebagainya.
8 http://digilib.mercubuana.ac.id/
Dalam kasus yang diangkat, penulis hanya menggunakan beberapa perintah AT yang diperlukan untuk mendukung program. Pada tabel 2.1 diperlihatkan beberapa jenis
perintah
AT
yang
berhubungan
dengan
penanganan pesan-pesan SMS. Tabel 2.1 Beberapa AT- Command Command
Fungsi
AT
Mengecek apakah handphone telah terhubung
AT+CMGF
Menetapkan format mode dari terminal
AT+CSCS
Menetapkan jenis encoding
AT+CNMI
Mendeteksi pesan SMS baru masuk secara otomatis
AT+CMGL
Membuka daftar SMS yang ada pada SIM Card
AT+CMGS
Mengirim pesan SMS
AT+CMGR
Membaca pesan SMS
AT+CMGD
Menghapus pesan SMS
Perintah AT Command digunakan untuk pengecekan pada sistem operasi Windows
dapat
dilakukan
melalui Hyper
Terminal. Pada Hyper
Terminal ini kita dapat memasukkan perintah-perintah AT yang dibutuhkan, seperti perintah untuk mengetahui apakah terminal sudah siap (AT). Jika hasilnya OK berarti terminal sudah siap untuk digunakan, tetapi jika hasilnya ERROR berarti
terminal
belum
siap untuk digunakan
oleh sistem
yang
lain.
Selanjutnya untuk melakukan perintah lainnya harus diawali dengan kata AT lalu diikuti oleh karakter lainnya. 2.2.5 Jenis –Jenis Aplikasi SMS Jenis – jenis aplikasi SMS memilik tiga macam, yaitu: 1. SMS Premium: jenis aplikasi SMS dua arah dengan menggunakan 4 (empat) digit nomor unik seperti 9688. Contoh SMS Quiz dan SmS Polling. 2. SMS Broadcast: jenis aplikasi satu arah berupa pengiriman pesan ke banyak nomor sekaligus. Contoh SMS promo dan SMS kampanye.
9 http://digilib.mercubuana.ac.id/
3. SMS Gateway: jenis aplikasi SMS dua arah, dengan keunikan bahwa semua tarif yang diberlakukan adalah tarif SMS normal sesuai dengan apa yang diberlakukan oleh operator. Karena sifatnya yang dua arah, maka jenis SMS ini sangat cocok dijadikan sebagai SMS Center organisasi, perusahaan atau instansi. 2.3 SMS Gateway Pada prinsipnya, SMS Gateway adalah sebuah perangkat lunak yang menggunakan bantuan komputer dan memanfaatkan teknologi seluler yang diintegrasikan guna mendistnbusikan pesan-pesan yang di-generate lewat sistem informasi melalui media SMS yang di-handle oleh jaringan seluler . SMS Gateway ini memanfaatkan modem untuk server pengiriman SMS. SMS memanfaatkan jaringan operator seluler untuk penginman sms, service gammu sebagai software sms gateway, dan database mysql yang di integrasikan dengan database (Ardy et al. 2013). Berikut gambar 2.2 skema SMS Gateway.
Gambar 2.2 Skema SMS Gateway Sumber : (Afrina et al. 2015) Mekanisme kerja pengiriman SMS dibagi menjadi 3 bagian yaitu: a. Intra-operator SMS: pengiriman SMS dalam satu operator; b. Inter-operator SMS: pengiriman SMS antar operator yang berbeda; c. SMS Internasional: pengirim SMS dari operator suatu negara ke Negara lain.
10 http://digilib.mercubuana.ac.id/
Mekanisme kerja SMS Gateway dapat dilihat pada gambar 2.3
Gambar 2.3 Cara Kerja SMS Gateway Sumber : (Afrina et al. 2015)
2.4 UML (Unified Modelling Language) Diagram 2.4.1 Pengenalan UML Unified Modeling Language atau biasa disebut dengan (UML) adalah sebuah standarisasi bahasa pemodelan untuk pembangunan perangkat lunak yang dibangun dengan menggunakan teknik pemrograman berorientasi objek. UML muncul karena adanya kebutuhan pemodelan visual untuk memspesifikasikan menggambarkan, membangun dan dokumentasi dari sistem perangkat lunak. UML merupakan bahasa visual untuk pemodelan dan komunikasi mengenai sebuah sistem dengan menggunakan diagram dan teks-teks pendukung. (Rosa dan Shalahuddin, 2014). Simbol-simbol yang terdapat pada Tabel 2.2 UML: Tabel 2.2 Simbol-simbol pada Use Case Diagram Simbol
Nama
Deskripsi Fungsionalitas
yang
disediakan sistem sebagai unit-unit
yang
saling
bertukar pesan antar unit atau
11 http://digilib.mercubuana.ac.id/
aktor,
biasanya
dinyatakan
dengan
menggunakan kata kerja Use case
diawal frase nama use case. Orang,
proses,
atau
sistem
lain
yang
berinteraksi sistem Aktor
dengan
informasi
yang
akan dibuat di luar sistem informasi
yang
akan
dibuat itu sendiri, jadi walaupun aktor
symbol
adalah
dari
gambar
orang, tapi aktor belum tentu merupakan orang, biasanya
dinyatakan
menggunakan kata benda di awal frase nama aktor. Komunikasi antara aktor dan
use
case
yang
berpartisipasi pada use Association
case
atau
use
case
memiliki interaksi dengan aktor Menspesifikasikan paket yang menampilkan sistem System Boundary Boxes
12 http://digilib.mercubuana.ac.id/
secara terbatas
2.4.2 Use Case Diagram Use case diagram merupakan pemodelan untuk sistem informasi yang akan dibuat. Use case mendeskripsikan sebuah interkasi antara satu atau lebih aktor dengan sistem informasi yang akan dibuat dan digunakan untuk mengetahui fungsi apa saja yang ada di dalam sebuah sistem informasi dan siapa saja yang berhak menggunakan fungsi-fungsi itu (Rosa dan Salahudin, 2014). Berikut adalah penjelasan dari istilah-istilah diatas: 1. Aktor Aktor merupakan orang, proses, atau sistem yang berinteraksi dengan sistem informasi yang akan dibuat itu sendiri.
Gambar 2.4 Aktor (Rosa dan Salahudin, 2014) 2. Use Case Use case menggambarkan fungsi tertentu dalam suatu sistem berupa komponen, kejadian yang memiliki urutan atau langkah-langkah yang saling terkait. (Widodo dan Herlawati, 2011).
Gambar 2.5 Use Case (Rosa dan Salahudin, 2014)
3 Relasi antar Use Case atau aktor Relasi antar use case atau aktor adalah suatu hubungan antara aktor dan use case atau antara use case dan use case. Relasi antara aktor dengan use case disebut relasi association. Relasi antara use case dengan use case dibagi 13 http://digilib.mercubuana.ac.id/
menjadi dua jenis, yaitu relasi include dan relasi extend. Relasi include memungkinkan suatu use case menggunakan fungsionalitas yang disediakan oleh use case lain. Sedangkan relasi extend memungkinkan suatu use case secara optional (jika diinginkan oleh aktor) untuk menggunakan fungsionalitas yang disediakan oleh use case lainnya. (Rosa dan Salahuin, 2014).
Gambar 2.6 Relasi (Rosa dan Salahuin, 2014) 2.4.3 Activity Diagram Activity diagram menggambarkan aliran fungsionalitas sistem pada tahap pemodelan bisnis. Diagram aktivitas dapat digunakan untuk menunjukan aliran kerja bisnis dan dapat juga digunakan untuk menggambarkan aliran kejadian dalam use case. Diagram aktivitas tidak perlu dibuat untuk setiap aliran kerja, tetapi diagram ini akan sangat berguna untuk aliran kerja yang kompleks dan melebar (Widodo, 2011). Activity diagram dibuat berdasarkan sebuah atau beberapa use case diagram. Digram aktivitas juga banyak digunakan untuk mendefinisikan hal-hal berikut: 1. Rancangan proses bisinis dimana setiap urutan aktivitas yang digambarkan merupakan proses bisnis dimana setiap urutan aktivitas yang digambarkan merupakan proses bisnis sistem yang didefinisikan. 2. Urutan atau pengelompokan tampilan dari sistem/user interface dimana setiap aktivitas dianggap memiliki sebuah rancangan antarmuka tampilan. 3. Rancangan pengujian dimana setiap aktivitas dianggap memerlukan sebuah pengujian yang perlu didefinisikan kasus ujinya.
14 http://digilib.mercubuana.ac.id/
Tabel 2.3 Simbol Activity Diagram Sumber: (Rosa dan Salahudin, 2014)
Simbol
Keterangan Start point Status awal aktivitas sistem, sebuah diagram aktivitas memiliki sebuah status awal End point Status akhir yang dilakukan sistem, sebuah diagram aktivitas memiliki sebuah status akhir Activities Aktivitas biasanya diawali dengan kata kerja. Decision Asosiasi percabangan dimana jika ada pilihan aktivitas lebih dari satu Swimlane Sebuah cara untuk mengelompokkan aktivitas berdasarkan aktor (pengelompokan activity dalam sebuah urutan yang sama)
2.4.4 Sequence Diagram Diagram sekuensial atau sequence diagram digunakan untuk menunjukan aliran fungsional dalam use case. Misalkan, dalam use case “menarik uang”, mempunyai beberapa kemungkinan, seperti penarikan uang secara normal, percobaan penarikan uangtanpa kecukupan ketersediaan dana, penarikan dengan penggunaan PIN yang salah, dan lainnya. Seperti pada tabel 2.3 dibawah ini. (Sholiq, 2006).
15 http://digilib.mercubuana.ac.id/
Tabel 2.3 Daftar Simbol Sequence Diagram No
Gambar
Nama
LifeLine
Message
Message
Keterangan Objek entity, antarmuka yang saling berinteraksi. Spesifikasi dari komunikasi antar objek yang memuat informasiinformasi tentang aktifitas yang terjadi Spesifikasi dari komunikasi antar objek yang memuat informasiinformasi tentang aktifitas yang terjadi
2.5 Entity Relationship Diagram (ERD) Entity Relationship Diagram (ERD) adalah sekumpulan cara atau peralatan untuk mendeskripsikan data-data atau objek-objek yang dibuat berdasarkan dan berasal dari dunia nyata yang disebut entitas (entity) serta hubungan (relationship) antar entitas-entitas tersebut dengan menggunakan beberapa notasi. (Edi & Betshani 2009) 2.6 Personal Home Page (PHP) PHP adalah pemrograman interpreter yaitu proses penerjemahan baris kode sumber menjadi kode mesin yang dimengerti oleh komputer secara langsung pada saat baris kode dijalankan. PHP disebut sebagai pemrograman Server Side Server Programming, hal ini dikarenakan proses dijalankan pada server. PHP adalah suatu bahasa dengan hak cipta terbuka atau yang juga dikenal dengan 16 http://digilib.mercubuana.ac.id/
istilah Open Source, yaitu pengguna dapat mengembangkan kode-kode fungsi PHP sesuai dengan kebutuhannya. (Alexander F. K. Sibero, 2011) 2.7 Framework YII Framework aplikasi adalah desain dan program kerangka aplikasi yang digunakan untuk membangun aplikasi-aplikasi yang sejenis. Framework memiliki banyak pustaka tingkat tinggi yang dapat digunakan secara berulang. Umumnya framework perangkat lunak didesain secara berorientasi objek sehingga desain dan programnya tersedia sebagai class-class abstract. Framework aplikasi mendefinisikan arsitektur aplikasi sehingga penambahan fungsi-fungsi lain dapat dilakukan dengan menambah modul-modul tanpa perlu memodifikasi kode program yang sudah ada (kecuali file-file konfigurasi). YII adalah sebuah framework aplikasi web berbasis PHP. Framework ini memungkinkan pengembang untuk membangun aplikasi dengan lebih cepat dengan cara menyediakan pustaka-pustaka yang umum digunakan dan struktur standar untuk membangun aplikasi. Dibandingkan dengan framework lain, YII menghasilkan aplikasi yang dapat bekerja dengan lebih cepat dan lebih kecil ukurannya. YII adalah salah satu framework yang menggunakan metode arsitektur Model, View, Controller (MVC),.yaitu metode pembangunan aplikasi dengan memisahkan data (Model) dari tampilan (View) dan cara bagaimana memprosesnya (Controller). Metode MVC memisahkan pengembangan aplikasi berdasarkan komponen utama yang membangun sebuah aplikasi seperti manipulasi data, antarmuka pengguna, dan bagian yang menjadi kontrol dalam sebuah aplikasi web. Dengan menggunakan metode MVC maka aplikasi akan lebih mudah untuk dirawat dan dikembangkan. Untuk memahami metode pengembangan aplikasi menggunakan MVC diperlukan pengetahuan tentang pemrograman berorientasi objek (Object Oriented Programming) (Susanto et al. 2015).
17 http://digilib.mercubuana.ac.id/
2.8 Hypertext Markup Language (HTML) Hypertext Markup Language (HTML) adalah bahasa yang digunakan pada dokumen web sebagai bahasa untuk pertukaran dokumen web. Struktur dokumen HTML terdiri dari tag pembuka dan tag penutup. HTML versi 1.0 dibangun oleh World Wide Web Consortium (W3C), kemudian mengalami perkembangan sampai saat ini HTML terakhir versi 5.0. Tag adalah tanda awal < dan tanda akhir > yang digunakan sebagai pengapit suatu elemen. Tag pada elemen pembuka diawali dengan tanda < dan diakhir dengan tanda >. Sedangkan untuk elemen penutup diawali dengan tanda < dan diakhiri dengan tanda / kemudian diakhiri dengan tanda >. Untuk penulisan tag elemen tunggal cukup menuliskan tanda < dan sebelum tanda > ditambahkan dengan tanda /. (Alexander F. K. Sibero, 2011). 2.9 Cascade Style Sheet (CSS) Mengacu dari arti bahasa, Cascading Style Sheet (CSS) memiliki arti gaya menata halaman bertingkat, yang berati satu elemen yang telah diformat dan memiliki anak dan telah diformat, maka anak dari elemen tersebut otomatis mengikuti format induknya (Alexander F. K. Sibero, 2011) 2.10 Xampp Xampp merupakan salah satu paket web server yang umumnya digunakan oleh web developer. Xampp berisi antara lain server web Apache, intrepreter PHP, dan database MySQL. 2.11 Model Waterfall Rekayasa Perangkat Lunak adalah disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari tahap awal spesifikasi sistem sampai pemeliharaan sistem setelah digunakan. (Sommerville 2011). Menurut Pressman (2010:39) waterfall model terbagi dalam tahapan sebagai berikut :
18 http://digilib.mercubuana.ac.id/
1. Communication Pada tahap ini dilakukan analisis terhadap masalah yang ada dan mengusahakan solusi yang berpotensial untuk mengatasi permasalahan tersebut. 2. Planning Pada tahap ini dilakukan perkiraan mengenai kebutuhan yang diperlukan dan scheduling untuk menentukan proses pengerjaan dan tracking. 3. Modeling Pada tahap ini dilakukan analisis dan desain yang akan diimplementasikan pada tahap selanjutnya. 4. Construction Pada tahap ini dilakukan penerjemahan pada desain sehingga desain dapat dimengerti oleh mesin melalui proses coding dalam bahasa pemrograman. 5. Deployment Pada tahap ini setelah coding dan testing selesai maka dilakukan delivery yang untuk pengembangan operasional software, ditambah dengan adanya support, feedback, maintenance, dan development agar sistem dapat berjalan dengan baik.
Gambar 2.7 Contoh Waterfall Model Sumber : (Roger S. Pressman 2010)
19 http://digilib.mercubuana.ac.id/
2.12 Metode Pengujian Blackbox Pengujian black-box berfokus pada persyaratan fungsional perangkat lunak. Dengan demikian, pengujian black-box memungkinkan perekayasa perangkat lunak mendapatkan serangkaian kondisi input yang sepenuhnya menggunakan semua persyaratan fungsional untuk suatu program. Pengujian black-box bukan merupakan alternatif dari teknik white-box, tetepi merupakan pendekatan komplementer yang kemungkinan besar mampu mengungkap kelas kesalahan dari pada metode white-box (Khan Ehmer Mohd, 2010). Black-box itu sendiri dapat menemukan beberapa kesalahan dalam kategori seperti berikut : 1. Kesalahan dalam struktur data atau akses basis data eksternal. 2. Inisialisasi dari kesalahan transmisi. 3. Validitas fungsional. 4. Kesensitifan sistem terhadap nilai input tertentu. 5. Batasan dari suatu data . 6. Fungsi-fungsi yang tidak benar atau hilang. 7. Kesalahan interface.
20 http://digilib.mercubuana.ac.id/