5 2.1. Konsep Dasar Program
2.1.1. Program
Menurut Sitorus (2015:2) menerangkan bahwa:
Sebuah program pada dasarnya berisi rangkaian instruksi yang saling terkait satu dengan lainnya (membentuk alur proses) dan tersusun secara terstruktur sedemikian hingga apabila program tersebut dijalankan akan dapat menghasilkan output seperti yang diharapkan.
Membangun sebuah program pada dasarnya adalah membuat alat bantu untuk menyelesaikan suatu masalah. Sebelum dapat menghasilkan program yang mampu membantu menyelesaikan masalah tersebut, dihadapkan pada 3 (tiga) tahapan pokok, yaitu:
1. Memahami permasalahan dan tujuan sebuah program dibuat. Pada tahap ini harus mampu mengidentifikasi jenis, bentuk dan karakteristik input serta output yang diharapkan. Tetapi untuk skala permasalahan yang besar, selain, jenis, bentuk dan karakteristik, juga perlu mengetahui dengan pasti asal, frekuensi dan volume data input serta tujuan, frekuensi dan volume data output yang diharapkan.
2. Mampu menyusun konsep atau rancangan atau desain penyelesaian dari masalah yang akan selesaikan. Dari hasil pemahaman terhadap permasalahan di atas, harus mampu merancang sebuah alur proses untuk mengolah data
input dan menghasilkan data output dengan jenis, bentuk dan karakteristik seperti yag diharapkan.
3. Mampu mengimplementasikan hasil rancangan dalam bentuk program yang terstruktur. Program tersebut dapat dibuat dengan menggunakan sembarang bahasa pemrograman. Untuk itulah diharuskan memahami dan menguasai komponen bahasa pemrograman dan teknik pemrograman dengan baik.
2.1.2. Pemrograman
Menurut Kowi (2016:21) memberikan batasan bahwa:
Pemrograman dalam pengertian luas meliputi seluruh kegiatan yang tercakup dalam pembuatan program, termasuk analisis kebutuhan (requirement’s analysis) dan keseluruhan tahapan dalam perencanaan (planning), perancangan (design) dan pewujudannya (implementation).
Dalam pengertian yang lebih sempit, pemrograman merupakan pengkodean (coding atau program writing = penulisan program) dan pengujian (testing) berdasarkan rancangan tertentu. Pemahaman yang lebih sempit ini sering digunakan dalam pembuatan program-program terapan komersial yang membedakan antara system analyst yang bertanggung jawab dalam menganalisa kebutuhan, perencanaan dan perancangan program dengan pemrograman (programmer) yang bertugas membuat kode program dan menguji kebenaran program.
2.1.3. Bahasa Pemrograman Java
Menurut Nofriadi (2015:1) menerangkan bahwa “Bahasa pemrograman Java merupakan salah satu dari sekian banyak bahasa pemrograman yang dapat dijalankan di berbagai sistem operasi termasuk telepon genggam“. Bahasa pemrograman ini pertama kali dibuat oleh James Gosling saat masih bergabung Sun Microsystem. Bahasa pemrograman ini merupakan pengembangan dari bahasa pemrograman C++ karena banyak mengadopsi sintak C dan C++. Saat ini Java merupakan bahasa pemrograman yang paling populer digunakan, dan secara luas dimanfaatkan dalam pengembangan berbagai jenis perangkat lunak aplikasi atau pun aplikasi berbasis web.
Kelebihan Java dari bahasa pemrograman yang lain adalah bisa dijalankan di berbagai jenis sistem operasi sehingga dikenal juga bahasa pemrograman multiplatform, bersifat pemrograman berorientasi object (PBO), memiliki library yang lengkap.
Java memiliki dua komponen, yaitu: 1. JVM (Java Virtual Machine)
Supaya bahasa pemrograman Java dapat berjalan di sebuah sistem operasi, maka suatu komponen yang nama Java Virtual Machine (JVM). JVM juga mempunyai dua buah pembagian, yaitu Java Runtime Environment (JRE) dan
Java Development Kit (JDK).
2. IDE (Integrated Development Environment)
IDE merupakan sebuah teks editor untuk menuliskan script bahasa pemrograman Java.
2.1.4. Sistem
Menurut Davis dalam Sutabri (2012:6) dalam bukunya menyatakan bahwa:
Sistem bisa merupakan abstrak atau fisik. Sistem abstrak adalah susunan gagasan-gagasan atau konsepsi yang teratur yang saling bergantung. Misalnya, Sistem Teologi adalah susunan yang teratur dari gagasan-gagasan tentang tuhan, manusia, dan lain sebagainya, sedangkan sistem bersifat fisik adalah serangkaian unsur yang bekerja sama untuk mencapai suatu tujuan.
Menurut Sutabri (2012:6) menyimpulkan bahwa “suatu sistem pada dasarnya adalah sekelompok unsur yang erat hubungannya satu dengan yang lain, yang berfungsi bersama-sama untuk mencapai tujuan tertentu“. Dari definisi ini dapat dirinci lebih lanjut pengertian sistem secara umum, yaitu sebagai berikut:
1. Setiap sistem terdiri dari berbagai unsur.
2. Unsur-unsur tersebut merupakan bagian yang tak terpisahkan dari sistem yang bersangkutan.
3. Unsur-unsur di dalam sistem tersebut bekerja sama untuk mencapai tujuan sistem.
4. Suatu sistem merupakan bagian dari sistem lain yang lebih besar.
Sedangkan menurut Jogiyanto dalam Yakub (2012:1) “Terdapat dua kelompok pendekatan sistem dalam mendefinisikan sistem yaitu pendekatan pada prosedur, dan pendekatan pada komponen-komponen atau elemen-elemen.”
1. Pendekatan Prosedur
Prosedur adalah urutan-urutan operasi klerikal atau tulis menulis yang melibatkan orang didalam suatu departemen untuk menjamin penanganan yang seragam. Prosedur juga disebut dari tahapan-tahapan instruksi yang menerangkan (what) yang harus dikerjakan, siapa (who) yang mengerjakan, kapan (when) dikerjakan, dan bagaimana (how) mengerjakannya. Contohnya adalah untuk menjelaskan sebuah mobil, pendekatan prosedur didefinisikan sebagai kumpulan dari prosedur- prosedur untuk menghidupkan mesin, memasukkan gigi persneling, menjalankan, dan lain sebagainya
2. Pendekatan Komponen
Pendekatan komponen akan lebih mudah dalam mempelajari sistem untuk tujuan analisis dan pernacangan sistem dibandingkan pendekatan prosedur. Karena untuk menganalisis dan merencanakan suatu sistem seharusnya analisis sistem mengerti dahulu komponen-komponennya atau subsistem-subsistemnya. Contohnya sebuah mobil dapat didefinisikan sebagai kumpulan dari komponen kerangka mobil, bodi mobil, tempat duduk, mesin, kemudi, dan lain lain yang bekerja bersama-sama untuk mencapai tujuan, dan jika memahami komponen-komponen mobil maka akan lebih mudah merangkai bersama-sama untuk membentuk suatu mobil.
2.1.5. Pakar
Menurut Kusrini (2008:3) memberikan batasan bahwa “pakar adalah orang yang mempunyai keahlian khusus yang dapat menyelesaikan masalah yang tidak
dapat diselesaikan oleh orang awam”. Sebagai contoh, dokter adalah seorang pakar yang mampu mendiagnosis penyakit yang diderita pasien serta dapat memberikan penatalaksanaan terhadap penyakit tersebut. Tidak semua orang dapat mengambil keputusan mengenai diagnosis dan memberikan penatalaksanaan suatu penyakit.
2.1.6. Sistem Pakar
Menurut Kusrini (2008:3) mengemukakan bahwa “Sistem pakar adalah aplikasi berbasis komputer yang digunakan untuk menyelesaikan masalah sebagaimana yang dipikirkan oleh pakar“. Sistem pakar mencoba memecahkan masalah yang biasanya hanya bisa dipecahkan oleh seorang pakar, dipandang berhasil ketika mampu mengambil keputusan seperti yang dilakukan oleh pakar aslinya baik dari sisi proses pengambilan keputusan maupun hasil keputusan yang diperoleh. Sebuah sistem pakar memiliki dua komponen utama yaitu basis pengetahuan dan mesin inferensi. Basis pengetahuan merupakan tempat penyimpanan pengetahuan dalam memori komputer, di mana pengetahuan ini diambil dari pengetahuan pakar.
Menurut Hayadi (2016:1) menyimpulkan bahwa “Sistem pakar atau expert system disebut juga dengan knowledge based system yaitu suatu aplikasi komputer yang ditujukan untuk membantu pengambilan keputusan atau pemecahan persoalan dalam bidang yang spesifik“. Sistem ini bekerja dengan menggunakan pengetahuan dan metode analisis yang telah didefinisikan terlebih dahulu oleh pakar yang sesuai dengan bidang keahliannya. Sistem ini disebut sistem pakar karena fungsi dan perannya sama seperti seorang ahli yang harus memiliki
pengetahuan, pengalaman dalam memecahkan suatu persoalan. Sistem biasanya berfungsi sebagai kunci penting yang akan membantu suatu sistem pendukung keputusan atau sistem pendukung eksekutif.
A. Manfaat Sistem Pakar
1. Meningkatkan produktifitas.
2. Membantu seorang awam mampu bekerja layaknya seorang pakar.
3. Meningkatkan kualitas, dengan memberikan nasehat yang konsisten dan mengurangi kesalahan.
4. Mampu menangkap pengetahuan dan kepakaran seseorang. 5. Memudahkan akses pengetahuan seorang pakar.
6. Bisa digunakan sebagai media pelengkap dalam pelatihan.
B. Ciri-ciri Sistem Pakar
1. Terbatas pada domain keahlian tertentu.
2. Dapat memberikan penalaran untuk data yang tidak pasti.
3. Dapat mengemukakan rangkaian alasan yang diberikannya dengan cara yang dapat dipahami.
4. Berdasarkan pada kaidah atau aturan tertentu.
5. Dirancang untuk dapat dikembangkan secara bertahap.
2.1.7. Android
Menurut Stephanus (2011:1) ”Android merupakan Operating System Mobile yang tumbuh ditengah Operating System lainnya yang berkembang dewasa ini”
Operating System lainnya seperti Windows Mobile, I-Phone Operating System, Symbian dan masih banyak lagi juga menawarkan kekayaan isi dan keoptimalan berjalan diatas perangkat hardware yang ada. Akan tetapi, Operating System yang ada ini berjalan dengan memprioritaskan apalikasi inti yang dibangun sendiri tanpa melihat potensi yang cukup besar dari aplikasi pihak ketiga. Oleh karena itu, adanya keterbatasan dari aplikasi pihak ketiga untuk mendapatkan data asli ponsel, berkomunikasi antar proses serta keterbatasan distribusi aplikasi pihak ketiga untuk flatform mereka.
Berikut tabel perbandingan Sistem Pakar dan Sistem Konvensional: Tabel II.1 Sistem Pakar vs Sistem Konvensional
No Sistem Pakar Sistem Konvensional
1 Perubahan pada rules dapat dilakukan dengan mudah
Perubahan pada program merepotkan
2 Sistem dapat beroperasi hanya dengan beberapa aturan
Sistem hanya akan beroperasi jika system tersebut sudah lengkap 3 Tujuan utamanya adalah efektivitas Tujuan utamanya adalah efisiensi 4 Penjelasan adalah bagian terpenting
dari sistem pakar
Tidak menjelaskan mengapa suatu input data itu dibutuhkan atau bagaimana output itu diperoleh 5 Manipulasi efektif pada
knowledge-base yang besar
Manipulasi aktif pada database yang besar
6 Eksekusi dilakukan pada keseluruhan basis pengetahuan
Eksekusi dilakukan langkah demi langkah
2.2.Peralatan Pendukung (Tools System) 2.2.1. Android Studio
Android Studio adalah sebuah IDE (Integrated Development Environment) untuk Android Development yang diperkenalkan google pada acara Google I/O 2013. Android Studio merupakan pengembangkan dari Eclipse IDE (Integrated Development Environment) dan dibuat berdasarkan IDE Java populer, yaitu IntelliJ IDEA.
Sebagai pengembangan dari Eclipse, Android Studio mempunyai banyak fitur-fitur baru dibandingkan dengan Eclipse IDE (Integrated Development Environment). Berbeda dengan Eclipse yang menggunakan Ant, Android Studio menggunakan Gradle sebagai build environment.
Fitur-fitur lainnya adalah sebagai berikut :
1. Menggunakan Gradle-based build system yang fleksibel. 2. Bisa mem-build multiple APK .
3. Template support untuk Google Services dan berbagai macam tipe perangkat. 4. Layout editor yang lebih bagus.
5. Built-in support untuk Google Cloud Platform, sehingga mudah untuk integrasi dengan Google Cloud Messaging dan App Engine.
Gambar II.1 Interface Android Studio 2.0
Untuk mengembangkan aplikasi android menggunakan Android Studio 2.0, terlebih dahulu adalah mengenal IDE (Integrated Development Environment) atau workspace dari Android Studio 2.0. Pada waktu Android Studio dijalankan, maka akan tampil sebuah tampilan awal atau start page dari Android Studio sebagai berikut.
Pada tampilan awal terdapat fitur disebelah kiri untuk membuka file recent places atau file yang telah dibuka sebelumnya. Kemudian ada juga beberapa menu lain yang disediakan di Android Studio yaitu :
1. Start a new Android Studio project, menu ini berfungsi untuk membuat project baru.
2. Open an existing Android Studio project, menu ini berfungsi untuk membuka suatu project dari Android Studio.
3. Check out project from version control, menu ini berfungsi untuk mengecek project dari beberpa pilihan yaitu GitHub,Google,CVS dan Git.
4. Import project (Eclipse ADT,Gradle,etc), menu ini berfungsi untuk mengimport project dari software Eclipse,Gradle dan lain-lain.
5. Import an android code sample, menu ini berfungsi untuk mengimport project dari contoh atau sample yang disediakan Android Studio.
Pada IDE (Integrated Development Environment) Android studio terdapat Main Menu Bar, Toolbar, Navigation Bar, Editor Tabs, Editor windows, Tools Windows, Status Bar, Marker Bar, Project Structure dan Gutter. (https://developer.android.com/studio/intro/index.html?hl=ko#project-structure, diakses tanggal 22 Juni 2016)
1. Main Menu Bar
Main Menu Bar berfungsi untuk melakukan perintah mengatur, mengembangkan, memelihara dan menjalankan aplikasi dengan android tool.
2. Toolbar
Toolbar fungsinya sama seperti main menu bar, hanya saja pada toolbar pilihan-pilihan perintah berbentuk icon. Untuk memilih perintah salah satu toolbar yang akan dilakukan, tinggal mengklik icon yang ada di toolbar. Icon-icon pada toolbar adalah piihan-pilihan pada main menu bar yang sering digunakan dalam membuat program aplikasi. Sehingga dengan adanya toolbar dapat mempermudah dalam memilih perintah menu tanpa harus membuak main menu bar.
Gambar II.4 Toolbar
3. Navigation Bar
Navigation Bar berfungsi untuk menampilkan dan mengedit urutan navigasi suatu project atau file. Sehingga memberikan kemudahan dalam memahami struktur project yang terlihat di jendela.
Gambar II.5 Navigation Bar
4. Editor Tabs
Editor Tabs berfungsi untuk menampilkan dan memodifikasi dari suatu file.
5. Editor Windows
Menu ini berfungsi untuk membuat dan memodifikasi coding. Tergantung dari jenis file yang akan dimodifikasi. Misalnya yang sedang aktif dijendela file layout, maka editor windows akan menampilkan layout editor dan menawarkan pilihan untuk melihat dan mengedit file XML.
Gambar II.7 Editor Windows
6. Tool Windows
Tool Windows berfungsi untuk mengakses perintah-perintah tertentu seperti project management, search, version control dan lain sebagainya secara detail.
Gambar II.8 Tools Windows 7. Status Bar
Status Bar berfungsi untuk menampilkan status atau pesan peringatan dari suatu project dan IDE (Integrated Development Environment) itu sendiri.
Gambar II.9 Status Bar 8. Marker Bar
Marker Bar digunakan untuk menunjukkan lokasi baris perintah penting dalam source files.
Gambar II.10 Marker Bar 9. Project Structure
Project Structure digunakan untuk menampilkan struktur project dari suatu file secara detail.
10. Gutter
Gutter berfungsi untuk menampilkan tentang informasi coding yang ada dalam project.
Gambar II.12 Gutter 2.2.2. DB Browser for SQLite
DB Browser for SQLite adalah sebuah program visual kualitas tinggi dan bersifat open source yang berfungsi untuk membuat, mendesain dan mengedit file database yang bersifat kompatibel dengan SQLite.
Program tersebut ditujukan untuk pengguna dan pengembang dalam membuat database, mencari dan mengedit data. Program DB Browser for SQLite menggunakan interface atau tampilan seperti halnya spreadsheet dan anda tidak perlu belajar perintah SQL yang rumit.
Beberapa fungsi atau fitur yang tersedia untuk pengguna diantaranya: 1. Membuat dan compact file database
2. Membuat, mendefinisikan dan menghapus tabel 3. Membuat, mendefinisikan dan menghapus indeks 4. Mengisi, mengedit, menambah dan menghapus record
2.2.3. HIPO (Hierarchy Input Process Output)
Menurut Al Fatta (2007:147) mengemukakan bahwa “HIPO merupakan teknik untuk mendokumentasikan pengembangan suatu sistem yang dikembangkan oleh IBM”.
HIPO dapat digunakan untuk memenuhi kebutuhan beberapa pengguna untuk kepentingan berbeda-beda, antara lain :
1. Seorang manajer dapat menggunakan dokumentasi HIPO untuk memperoleh gambaran umum sistem.
2. Seorang programer menggunakan HIPO untuk menentukan fungsi-fungsi dalam program yang dibuatnya.
Paket HIPO terdiri dari 3 jenis diagram, yaitu diagram daftar isi visual (visual table of content), diagram ringkas (overview diagram), dan diagram rinci (detail diagram).
1. Diagram Daftar Isi Visual (DIV)
Diagram ini memuat semua modul yang ada dalam sistem berikut nama dan nomornya, yang nantinya akan diperinci dalam diagram ringkas dan diagram rinci. Dalam DIV juga bisa dilihat fungsi-fungsi utama yang menyusun sebuah sistem dan hubungan antar fungsi tersebut.
2. Diagram Ringkas
Diagram ringkas menerangkan input, proses, dan output dari sistem. Diagram ringkas menggambarkan input dan output dari fungsi-fungsi yang telah didefinisikan dalam daftar isi visual.
3. Diagram Rinci
Diagram rinci HIPO digunakan untuk memperinci input, proses, dan output yang telah digambarkan dalam diagram ringkas. Input data dijelaskan field-field datanya secara detail. Untuk fungsi, juga dideskripsikan proses apa yang dilakukan oleh fungsi-fungsi tersebut. Rincian field-field data output juga dijelaskan dengan lebih detail.
2.2.4. Flowchart
Menurut Rahmat (2010:15) mengemukakan bahwa Flowchart merupakan alur pemikiran yang dituangkan kedalam bentuk gambar/simbol. Dengan demikian perlu dipelajari terlebih dahulu bentuk gambar/simbol standar beserta kegunaan masing-masing.
Dari penjelasan diatas dapat diartikan bahwa flowchart berguna untuk dua keperluan, yaitu :
1. Sebelum program selesai dibuat
Pada tahap ini flowchart digunakan untuk menuangkan ide/pemikiran programmer kedalam bentuk gambar yang sudah standar secara internasional. Flowchart dapat digambar secara manual pada tahap desain algoritma, terutama untuk algoritma yang sangat kompleks. Dengan menuangkan ide ini ke dalam bentuk gambar, maka akan diperoleh beberapa keuntungan, seperti programmer tidak lupa idenya, karena sudah mendokumentasikannya secara otomatis. Sedangkan keuntungan kedua adalah desain algoritma tersebut dapat digunakan untuk menyampaikan alur program yang akan dibuat kepada klien.
Karena programmer menggunakan flowchart, klien dapat membacanya dengan mudah, terutama karena flowchart sudah standar.
2. Setelah program selesai dibuat
Setelah program dibuat, flowchart yang dibuat akan membantu programmer untuk menjelaskan alur program secara tidak langsung. Jika suatu saat nanti ada programmer lain hendak mengubah program, atau menambah kemampuannya, atau memperbaiki bug (kesalahan) yang mungkin ditemukan, programmer lain itu akan dibantu oleh flowchart tersebut.
Flowchart disusun dengan simbol-simbol. Simbol ini dipakai sebagai alat bantu menggambarkan proses di dalam program. Simbol-simbol yang dipakai antara lain :
Tabel II.2. Simbol Bagan Alir Sistem (System Flowchart)
No Simbol Nama Fungsi
1 Terminal
Menyatakan permulaan atau akhir suatu program
2
Input atau Output
Menyatakan proses input atau output tanpa tergantung jenis peralatannya
3 Process
Menyatakan suatu tindakan (proses) yang dilakukan oleh komputer
4 Decision
Menunjukan suatu kondisi tertentu yang akan menghasilkan dua kemungkinan jawaban : ya atau tidak
5 Connector
Menyatakan sambunagan dari proses ke prosess lainnya dalam halaman yang sama
6
Offline Connector
Menyatakan sambungan dari proses lainnya dalam halaman yang berbeda
7
Predefined Process
Menyatakan penyediaan tempat penyimpanan suatu pengolahan untuk memberi harga awal
8
Punched Card
Menyatakan input berasal dari kartu atau output ditulis ke kartu
9 Punch Tape
Menyatakan input atau output yang menggunakan pita kertas berlubang
10 Document
Mencetak keluaran dalam bentuk dokumen (melalui printer)
11 Flow
Menyatakan jalannya arus suatu proses
Sumber : Sitorus (2015:15)
2.2.5. SQLite Database
Menurut Hermawan (2011:119) mengemukakan bahwa “SQLite Database merupakan interface yang ada pada sistem operasi Android yang digunakan untuk membuat relational database“. SQLite menyokong implementasi dari SQL yang
kaya untuk apa pun yang dibutuhkan oleh aplikasi mobile. Setiap aplikasi dapat memiliki databasenya sendiri dengan pengaturan lengkap.
Dengan menggunakan SQLite, dapat dibuat database untuk aplikasi yang digunakan untuk menyimpan dan mengatur data aplikasi terstruktur. Database android tersimpan di folder /data/data/<package_name>/database device/emulator. Secara default, semua database bersifat private yang hanya dapat diakses oleh aplikasi yang membuatnya. Desain database dengan baik termasuk normalisasi cukup penting untuk mengurangi redundancy.
Database atau sering juga disebut basis data adalah sekumpulan informasi yang disimpan dalam komputer secara sistematik dan merupakan sumber informasi yang dapat diperiksa menggunakan suatu program komputer. (Madcoms, 2011:12).