5
LANDASAN TEORI
2.1. Konsep Dasar Program
Dalam penulisan Tugas Akhir ini penulis menggunakan teori-teori yang dapat mendukung kemudahan dalam mempelajari maupun merancang program aplikasi ini agar dapat berfungsi seoptimal mungkin. Berikut ini adalah beberapa teori yang digunakan dalam penulisan Tugas Akhir ini.
2.1.1. Program
Menurut Sutarman dalam (Maarif, Widodo, & Wibowo, 2017), “program adalah barisan perintah atau instruksi yang disusun sehingga dapat dipahami oleh komputer dan kemudian dijalankan sebagai barisan perhitungan numerik, dimana barisan perintah tersebut berhingga, berakhir, dan menghasilkan output”.
Menurut (Maarif et al., 2017), sebelum mengimplementasikan suatu permasalahan dalam program, programmer perlu memperhatikan beberapa langkah berikut:
1. Mendefinisikan masalah.
2. Mencari solusi masalah.
3. Memilih teknik pemecahan masalah dan algoritma.
4. Menulis program.
5. Melakukan testing debugging.
6. Melakukan Dokumentasi.
7. Melakukan Pemeliharaan.
2.1.2.Pemrograman Mobile
Pemrograman adalah aktivitas penulisan, pengujian dan pengembangan kode-kode instruksi dari bahasa pemrograman menjadi sebuah program (Gani &
Marlinda, 2017).
Sedangkan menurut (Salamah & Irawan, 2017), “mobile dapat diartikan sebagai perpindahan dari suatu tempat ke tempat yang lain”. Jadi dapat disimpulkan bahwa pemrograman mobile adalah penulisan kode-kode instruksi yang dikembangkan menjadi program yang dapat digunakan diperangkat mobile seperti PDA, smartphone, maupun tablet PC.
2.1.3. Aplikasi
Aplikasi menurut (Mintarsih, Bahawarez, & Fauziah, 2014), “program yang dirancang oleh pengembang perangkat lunak dalam bentuk perintah-perintah khusus untuk mengoptimalkan proses pengolahan data dalam melaksanakan tugas tertentu”. Sedangkan menurut Kristanto (Salamah & Irawan, 2017), “Aplikasi adalah proses dimana keperluan pengguna dirubah ke dalam bentuk paket perangkat lunak dan atau kedalam spesifikasi pada komputer yang berdasarkan pada sistem informasi”.
Aplikasi mobile adalah aplikasi yang dapat diunduh dan memiliki fungsi tertentu sehingga menambah fungsionalitas dari perangkat mobile itu sendiri (Irsan, 2015). Sedangkan menurut Turban (Walad, 2016), “Mobile application atau biasa disingkat mobile apps, yaitu istilah yang digunakan untuk medeskripsikan aplikasi internet yang berjalan pada smartphone atau piranti mobile lainnya”.
2.1.4. Obesitas
Menurut (Arismunandar, 2015), “Obesitas sering didefinisikan sebagai kondisi abnormal karena kelebihan lemak yang serius dalam jaringan adiposa sehingga mengganggu kesehatan”. Juga menurut (Arismunandar, 2015), “Obesitas merupakan akibat dari adanya ketidakseimbangan antara asupan energi (energy intake) yang melebihi energi yang digunakan (energy expenditure)”.
Sedangkan obesitas pada anak menurut (Aprilia, 2015), “Obesitas merupakan keadaan indeks massa tubuh (IMT) anak yang berada di atas persentil ke-95 pada grafik tumbuh kembang anak sesuai jenis kelaminnya”. Menurut (Setyoadi, Rini, & Novitasari, 2015), “Obesitas pada anak adalah kondisi medis pada anak yang memiliki Indeks Massa Tubuh (IMT) ≥ 2 standar deviasi”.
2.1.5. Bahasa Pemrograman
Menurut Suprapto dalam (Maarif et al., 2017), “Bahasa pemrograman adalah notasi yang digunakan untuk menulis program (komputer). Bahasa ini dibagi menjadi tiga tingkatan yaitu bahasa mesin, bahasa tingkat rendah dan bahasa tingkat tinggi”. Berikut ini adalah beberapa bahasa pemrograman yang digunakan penulis dalam perancangan aplikasi ini:
1. Java
Menurut (Lengkong, Sinsuw, & Lumenta, 2015), “Java adalah bahasa berorientasi objek yang dapat digunakan untuk pengembangan aplikasi mandiri, aplikasi berbasis internet, serta aplikasi untuk perangkat-perangkat cerdas yang dapat berkomunikasi lewat internet atau jaringan komunikasi”.
Java dibuat oleh James Gosling pada tahun 1995 saat masih tergabung dalam Sun Microsystems yang sekarang merupakan bagian dari Oracle.
Java banyak mengadopsi sintaks dari bahasa pemrograman C dan C++.
Kelebihan java dari bahasa pemrograman lain adalah sintaks model objek yang lebih sederhana.
2. Android
Menurut Safaat dalam (Gani & Marlinda, 2017), “android adalah sebuah operasi untuk perangkat mobile berbasis linux yang mencakup sistem operasi, middleware dan aplikasi”.
Menurut Wahadayo (Junanto & Zuhdi, 2018), “Android adalah sistem operasi disematkan pada gadget, baik itu handphone, tab, juga sekarang sudah merambah ke kamera digital dan jam tangan”.
a. Sejarah Android
Android didirikan oleh 4 orang pakar IT, Andi Rubin, Rich Minner, Nick Sears dan Chris White pada Oktober 2003 di California US.
Kemudian pada Agustus 2005 Google mulai mengakusisi Android.
Sistem Operasi Android dibangun berbasis platform Linux yang bersifat open source. Android, tidak membutuhkan waktu lama bagi untuk bersaing dan menyisihkan sistem operasi mobile lainnya seperti Symbian, Windows Mobile, Blackberry dan iOS.
b. Perkembangan Android
Berikut adalah tabel perkembangan android yang sudah dirilis sampai sekarang.
Tabel II.1 Perkembangan Android
Versi Codename Rilis API
1.5 Cupcake 30 April 2009 3
1.6 Dounut 15 September 2009 4
2.0
Eclair 26 Oktober 2009
5
2.0.1 6
2.1 7
2.2.x Froyo 20 Mei 2010 8
2.3.3 - 2.3.7
Gingerbread 06 Desember 2010 9
2.3 - 2.3.2 10
3.0
Honeycomb 22 Februari 2011
11
3.1 12
3.2.x 13
4.0.1 - 4.0.2
Ice Cream Sandwich 19 Oktober 2011 14
4.0.5 - 4.0.4 15
4.1.x
Jelly Bean 09 Juli 2012
16
4.2.x 17
4.3.x 18
4.4 KitKat 31 Oktober 2013 19
5.0 Lollipop 25 Juni 2014 21
5.1 22
6.0 Marshmallow 05 Oktober 2015 23
7.0 Nougat 22 Agustus 2016 24
7.1 25
8.0.0
Oreo 21 Agustus 2017 26
8.1.0 27
Sumber: (Junanto & Zuhdi, 2018)
c. Arsitektur Android
Menurut (Anwar, Nugroho, & Lestariningsih, 2015) secara garis besar arsitektur android dapat dijelaskan sebagai berikut:
1) Application dan Widgets
Lapisan yang berhubungan dengan aplikasi saja, dimana biasanya aplikasi yang diunduh kemudian diinstalasi dan jalankan aplikasi tersebut.
2) Application Frameworks
Lapisan dimana para pembuat aplikasi melakukan pengembangan yang akan dijalankan di sistem operasi Android, karena pada lapisan inilah aplikasi dapat dirancang dan dibuat, seperti content providers yang berupa sms dan panggilan telepon.
3) Libraries
Lapisan dimana fitur-fitur Android berada, biasanya para pembuat aplikasi mengakses libraries untuk menjalankan aplikasinya.
4) Android Run Time
Lapisan yang membuat aplikasi Android dapat dijalankan dimana dalam prosesnya menggunakan Implementasi Linux.
5) Linux Kernel
Lapisan dimana inti dari sistem operasi Android itu berada.
Berisi data-data sistem yang mengatur sistem processing, memory, resource, drivers, dan sistem-sistem operasi Android lainnya.
3. HTML (Hyper Text Markup Language)
Menurut Sutryatiningsih & Wardani dalam (Kusniawan & Sardiarinto, 2016), “HTML (Hyper Text Markup Language), yaitu suatu bahasa yang menggunakan tanda-tanda tertentu (disebut sebagai Tag) untuk menyatakan kode-kode yang harus ditafsirkan oleh browser agar halaman tersebut dapat ditampilkan secara benar”. Sedangkan menurut Winarno dkk (Kusniawan &
Sardiarinto, 2016), “HTML merupakan singkatan dari Hypertxt Markup Language, artinya bahasa ini adalah bahasa markup untuk memformat konten halaman web. Atau dengan kata lain, bahasa untuk mengatur bagaimana penampilan dan pemformatan konten yang ada di web”. Menurut (Zakaria, 2018) HTML memiliki beberapa fungi, diantaranya adalah sebagai berikut:
a. Membuat suatu halaman website yang bisa dibaca dan dipahami oleh pengguna dengan lebih mudah.
b. Menandai teks pada suatu laman.
c. Sebagai dasar website.
d. Menampilkan tabel, gambar, video, dan lainnya.
e. Menandai elemen dan membuat online form.
Gambar II.1. Contoh script HTML
2.1.6. Basis Data
Menurut (Ladjamudin, 2013), “Database adalah sekumpulan data store (bisa dalam jumlah yang sangat besar) yang tersimpan dalam magnetic disk, oftical disk, magnetic drum, atau media penyimpanan sekunder lainnya”.
Sedangkan menurut (Nurasiah, 2014), “Database bisa dikatakan sebagai suatu kumpulan dari data yang tersimpan dan diatur atau diorganisasikan sehingga data tersebut bisa diambil atau dicari dengan mudah dan efisien”.
Menurut (Setiadi, 2017) terdapat 6 komponen dalam sistem basis data.
Berikut adalah penjelasannya.
1. Perangkat Keras (Hardware)
Perangkat keras (hardware) yang biasanya terdapat dalam sebuah sistem database adalah komputer untuk sistem stand alone, sistem jaringan (network), memori sekunder yang online (harddisk), memori sekunder yang offline (disk), dan perangkat komunikasi untuk jaringan.
2. Sistem Operasi (Operating System)
Sistem operasi merupakan program yang mengaktifkan sistem komputer, mengendalikan seluruh sumber daya dalam komputer dan melakukan operasi-operasi dasar dalam komputer, pengelolaan file, dan lain-lain.
Program pengelola basis data akan aktif (running) jika sistem operasi yang dikehendaki sesuai
3. Basis Data (Database)
Basis data (database) merupakan koleksi dari data yang terorganisasi dengan cara sedemikian rupa sehingga data tersebut mudah disimpan dan dimanipulasi. Sebuah sistem database dapat memiliki beberapa database.
Setiap database dapat memiliki sejumlah objek database seperti tabel, indeks, dan lain-lain.
4. DBMS (Database Management System)
Database Management System (DBMS) merupakan kumpulan program aplikasi yang digunakan untuk membuat dan mengelola database. DBMS berisi suatu koleksi data dan set program untuk mengakses data. DBMS meruakan perangkat lunak (software) yang menentukan bagaimana data
tersebut diorganisasi, disimpan, diubah dan diambil kembali. Perangkat lunak ini juga menerapkan mekanisme pengamanan data, pengguna data bersama, dan konsistensi data. Perangkat lunak yang termasuk kedalam DBMS diantaranya: Microsoft Access, SQL Server, MySQL atau MySQLi, DB2, Oracle, PostgreSQL, SQLite, Mongo DB, dan Maria DB.
5. Pengguna (User)
Terdapat beberapa tipe users atau pengguna pada sistem database, berdasarkan cara mereka berinteraksi pada basis data, diantaranya program aplikasi, pengguna mahir, pengguna umum, dan pengguna khusus.
a. Programmer Aplikasi
Programmer aplikasi adalah pengguna yang berinteraksi dengan database melalui DML (Data Manipulation Language), yang disertakan dalam program yang ditulis dalam bahasa pemrograman induk (seperti pascal, cobol, clipper, dan lain-lain).
b. User Mahir
User mahir adalah pengguna yang berinteraksi dengan sistem tanpa menulis modul program. Pengguna menggunakan query (bahasa standard yang digunakan oleh setiap DBMS) untuk mengakses data.
c. User Umum
User umum adalah pengguna yang berinteraksi dengan sistem database melalui pemanggilan satu program aplikasi permanen yang ditulis atau disediakan sebelumnya.
d. User Khusus
User khusus adalah pengguna yang menulis aplikasi database non konvensional untuk keperluan khusus, seperti untuk aplikasi sistem pakar, dan lain-lain.
6. Administrator Database
Administrator database adalah orang yang bertanggung jawab dan bekerja sama dengan analisis sistem dan user lain guna melengkapi berbagai macam tugas seperti pendefinisian data, pemodelan data, desain database, serta menjamin kerahasian integritas data.
2.1.7. SQLite
Menurut (Maarif et al., 2017), “SQLite adalah salah satu database yang bersifat open source, yang dirancang untuk menyimpan data pada perangkat elektronik yang memiliki memori terbatas”. SQLite disediakan android sebagai basis data bawaan yang tersedia pada library. SQLite berukura kecil, cepat dan ringan dalam hal sumber daya, sehingga sangat cocok untuk operasi basis data pada smartphone atau tablet PC.
SQLite mendukung penggunaan standar relational database seperti SQL syintax dan transaction. tipe data yang didukung oleh SQLite adalah Numerik (integer, float, dan double), Teks (char, varchar dan text), DateTime dan BLOB.
2.1.8. B4A
Menurut (Maarif et al., 2017), “B4A adalah development tool sederhana yang kuat untuk membangun aplikasi android”. B4A memiliki semua fitur yang
dibutuhkan untuk mengembangkan berbagai jenis aplikasi android. B4A memiliki beberapa kelebihan seperti:
1. Aplikasi yang dikompilasi adalah aplikasi asli tanpa ada extra runtime atau ketergantungan pada file lain.
2. Perancang GUI yang kuat karena memiliki dukungan built-in untuk multiple screens dan orientasi.
3. B4A dapat dikembangkan dan melakukan debug dengan perangkat yang terhubung melalui B4Abridge, USB, atau emulator android.
4. B4A memiliki banyak libraries yang memudahkan dalam pengembangan aplikasi lanjutan.
2.1.9. Pengembangan Perangkat Lunak
Menurut (Kusniawan & Sardiarinto, 2016), “Model air terjun menyediakan pendekatan alur hidup perangkat lunak secara sekuensial atau terurut dimulai dari analisis, desain, pengkodean, pengujian dan tahap pendukung (support)”.
Sedangkan menurut (Salamah & Irawan, 2017), “metode waterfall adalah pengerjaan dari suatu sistem dilakukan secara berurutan atau secara linear. Jadi jika langkah ke-1 belum dikerjakan, maka langkah 2 tidak dapat dikerjakan. Jika langkah ke-2 belum dikerjakan maka langkah ke-3 juga tidak dapat dikerjakan, begitu seterusnya”.
Menurut (Junanto & Zuhdi, 2018), “Model waterfall memungkinkan pemecahan misi pengembangan yang rumit menjadi beberapa langkah logis (desain, kode, pengujian, dan seterusnya) dengan beberapa langkah yang pada akhirnya akan menjadi produk akhir yang siap pakai”.
Menurut (Salamah & Irawan, 2017), metode waterfall melalui beberapa tahapan-tahapan seperti:
1. Analisa Kebutuhan
Langkah ini merupakan analisa terhadap kebutuhan sistem. Pengumpulan data dalam tahap ini dengan melakukan sebuah penelitian, wawancara dan studi literatur. Sistem analis dengan menggali informasi sebanyak- banyaknya dari user sehingga akan tercipta sebuah sistem komputer yang bisa melakukan tugas-tugas yang diinginkan oleh user. Tahapan ini akan menghasilkan dokumen user requirment atau bisa dikatakan sebagai data yang berhubungan dengan keinginan user dalam pembuatan sistem.
Dokumen ini lah yang akan menjadi acuan sistem analis untuk menerjemahkan ke dalam bahasa pemrogram.
2. Desain Sistem
Tahapan dimana dilakukan penuangan pikiran dan perancangan sistem terhadap solusi dari permasalahan yang ada dengan menggunakan perangkat pemodelan sistem seperti diagram alir data (data flow diagram), diagram hubungan entitas (entity relationship diagram) serta struktur dan bahasan data.
3. Penulisan Kode Program
Penulisan kode program atau coding merupakan penerjemahan design dalam bahasa yang bisa dikenali oleh komputer. Dilakukan oleh programmer yang akan meterjemahkan transaksi yang diminta oleh user.
Tahapan inilah yang merupakan tahapan secara nyata dalam mengerjakan suatu sistem. Dalam artian penggunaan komputer akan dimaksimalkan
dalam tahapan ini. Setelah pengkodean selesai maka akan dilakukan testing terhadap sistem yang telah dibuat tadi. Tujuan testing adalah menemukan kesalahan-kesalahan terhadap sistem tersebut dan kemudian bisa diperbaiki.
4. Pengujian Program
Tahapan akhir dimana sistem yang baru diuji kemampuan dan keefektifannya sehingga didapatkan kekurangan dan kelemahan sistem yang kemudian dilakukan pengkajian ulang dan perbaikan terhadap aplikasi menjadi lebih baik dan sempurna.
5. Penerapan Program dan Pemeliharaan
Perangkat lunak yang sudah disampaikan kepada user pasti akan mengalami perubahan. Perubahan tersebut bisa karena mengalami kesalahan karena perangkat lunak harus menyesuaikan dengan lingkungan (periperal atau sistem operasi baru) baru, atau karena user membutuhkan perkembangan fungsional.
Sumber: (Salamah & Irawan, 2017)
Gambar II.2.Metode Waterfall
2.2. Teori Pendukung
Dalam penulisan Tugas Akhir ini penulis juga menggunakan beberapa teori pendukung untuk melengkapi penulisan Tugas Akhir ini. Berikut adalah beberapa teori pendukung yang penulis gunakan.
2.2.1. Entity Relationship Diagram (ERD)
Menurut Wahana Komputer dalam (Kusniawan & Sardiarinto, 2016), ”ERD (Entity Relationship Diagram) adalah sebuah diagram yang secara konseptual memetakan hubungan antara penyimpanan pada diagram DFD di atas. ERD ini digunakan untuk pemodelan terhadap strktur data dan hubunganya“.
Menurut Kusrini dalam (Kusniawan & Sardiarinto, 2016), terdapat tiga notasi dasar yang bekerja pada model E-R yaitu entity sets, relationship sets dan attributs.
1. Entity Sets
Sekumpulan entiti yang mempunyai tipe yang sama. Entity set dilambangkan dengan persegi panjang.
Gambar II.3. Entity Sets
2. Relationship Sets
Sekumpulan relasi yang mempunyai tipe yang sama. Relationship set digambarkan dengan diamond.
Gambar II.4. Relationship Sets
3. Attributs
Attribut merupakan sebuah sebutan unik mewakili suatu entity. Attibut dalam ERD dilambangkan dalam bentuk elips.
Gambar II.5. Attributs
2.2.2. Unified Modeling Language (UML)
Menurut (Fajarianto, 2016), “Unified Modeling Language (UML) adalah sebuah bahasa pemodelan yang telah menjadi standar dalam industri software untuk visualisasi, merancang, dan mendokumentasikan sistem perangkat lunak”.
Sedangkan menurut (Junanto & Zuhdi, 2018), “UML adalah sekumpulan alat yang digunakan untuk melakukan abstraksi terhadap sebuah sistem atau perangkat lunak berbasis objek”. Menurut (Fajar, 2016) UML dibagi menjadi dua yaitu structural dan behavioral diagram. Berikut adalah beberapa diantaranya:
1. Structural Diagram a. Class Diagram
Diagram ini terdiri dari class, interface, association, dan collaboration. Diagram ini menggambarkan objek - objek yang ada di sistem.
b. Component Diagram
Diagram ini menggambarkan kumpulan komponen dan hubungan antar komponen. Komponen terdiri dari class, interface, atau collaboratio.
c. Deployment Diagram
Diagram ini menggambarkan kumpulan node dan hubungan antar node. Node adalah entitas fisik dimana komponen disebarkan. Entitas fisik ini dapat berupa server atau perangkat keras lainnya.
d. Object Diagram
Diagram ini menggambarkan hasil instansi dari class diagram.
Diagram ini digunakan untuk membuat prototype.
2. Behavioral Diagram a. Activity Diagram
Menggambarkan aliran kontrol sistem. Diagram ini digunakan untuk melihat bagaimana sistem bekerja ketika dieksekusi.
b. Collaboration Diagram
Diagram ini merupakan bentuk lain dari sequence diagram. Diagram ini menggambarkan struktur organisasi dari sistem dengan pesan yang diterima dan dikirim.
c. Sequence Diagram
Diagram ini menggambarkan interaksi yang menjelaskan bagaimana pesan mengalir dari objek ke objek lainnya.
d. Statechart Diagram
Diagram ini menggambarkan bagaimana sistem dapat bereaksi terhadap suatu kejadian dari dalam atau luar. Kejadian (event) ini bertanggung jawab terhadap perubahan keadaan sistem.
e. Use Case Diagram
Diagram ini menggambarkan kumpulan use case, aktor, dan hubungan mereka. Use case adalah hubungan antara fungsionalitas sistem dengan aktor internal atau eksternal dari sistem.
2.2.3. Flowchart
Menurut (Akbar & Dahlan, 2013), “Flowchart adalah bagan (chart) yang menunjukan aliran (flow) didalam program atau prosedur sistem secara logika, digunakan terutama sebagai alat bantu komunikasi dan dokumentasi”.
Sedangkan menurut (Sitorus, 2015), “Flowchart atau diagram alir merupakan metode untuk menggambarkan sebuah algoritma yang terstruktur dan mudah dipahami oleh orang lain (khususnya programmer yang bertugas mengimplementasikan program)”. Menurut Sismoro dalam (Akbar & Dahlan, 2013), “Sebuah flowchart pada umumnya tidak menampilkan instruksi bahasa pemrograman, namun menetapkan konsep solusi dalam bahasa manusia ataupun notasi matematis”.
2.2.4. Pengujian Program
Menurut Rosa & Shalahuddin dalam (Kusniawan & Sardiarinto, 2016),
“Pengujian adalah satu set aktifitas yang direncanakan dan sistematis untuk menguji atau mengevaluasi kebenaran yang diinginkan”. Dalam penulisan Tugas Akhir ini penulis menggunakan metode black box testing.
Menurut Rizky dalam (Mintarsih et al., 2014), “black box testing adalah tipe testing yang memperlakukan perangkat lunak yang tidak diketahui internalnya,
Sehingga para tester memandang perangkat lunak layaknya „kotak hitam‟ yang tidak penting dilihat isinya, tapi cukup dikenai proses testing dibagian luar”.
Sedangkan menurut (Nugraha & Herlawati, 2016), “Blackbox Testing digunakan untuk pengujian proses input dan output nya saja. Dalam pengujian ini, berfungsi untuk memastikan bahwa suatu event atau masukan akan menjelaskan proses yang tepat dan menghasilkan output sesuai dengan rancangan yang dibuat”.