8 BAB II
LANDASAN TEORI
2.1 Sistem
Sistem dapat diartikan sebagai sekumpulan prosedur yang saling berkaitan dan saling terhubung untuk melakukan tugas bersama-sama. Secara garis besar, sebuah sistem informasi terdiri atas tiga komponen utama, ketiga komponen tersebut mencakup, sofware, hardware dan brainware. Ketiga komponen ini saling berkaitan satu sama lain. Pratama ( 2014).
Sistem dapat didefinisikan sebagai sekumpulan objek, ide, berikut keterkaitannya di dalam mencapai tujuan. Dengan kata lain sistem adalah sekumpulan komponen (sub-sistem fisik dan non fisik/logika) yang saling berhubungan satu sama lainnya dan bekerja sama untuk mencapai tujuan. Prahasta (2014).
2.2 Kecerdasan Buatan
Menurut Sutojo, Mulyono dan Suhartono (2011), kecerdasan buatan berasal dari bahasa Inggris “Artifical Intelligence” atau disingkat AI, yaitu
intelligence adalah kata sifat yang berarti cerdas, sedangkan artifical artinya
buatan. Kecerdasan buatan yang dimaksud disini merujuk pada mesin yang mampu berpikir, menimbang tindakan yang akan diambil, dan mampu mengambil keputusan seperti yang dilakukan oleh manusia.
Menurut Herbert Alexander Simon kecerdasan buatan merupakan kawasan penelitian, aplikasi dan intruksi yang terkait dengan pemograman komputer untuk melakukan sesuatu hal yang dalam pandangan manusia adalah cerdas. Sutojo, Mulyono dan Suhartono (2011).
2.3 Sistem Pakar (Expert System)
Menurut Sutojo, Mulyanto dan Suhartono (2011) Sistem pakar adalah suatu sistem yang dirancang untuk dapat menirukan keahlian seorang pakar dalam menjawab pertanyaan dan memecahkan suatu masalah. Sistem pakar merupakan cabang dari kecerdasan buatan yang menggunakan
pengetahuan-pengetahuan khusus yang dimiliki oleh seorang ahli untuk menyelesaikan suatu masalah.
2.3.1 Sejarah Sistem Pakar
Sejarah sistem pakasr mulai dikembangkan oleh komunitas kecerdasan buatan pada pertengahan tahun 1960. Pada periode ini penelitian kecerdasan buatan didominasi pada kepercayaan terhadap beberapa pasang dari penalaran hukum dengan kemampuan komputer akan menghasilkan pakar atau bahkan menampilkan tujuan umum seorang manusia.
Pada pertengahan tahun 1970, beberapa sistem pakar sudah mulai muncul. Memahami pentingnya peranan pengetahuan pada sistem ini, para ilmuwan kecerdasan buatan bekerja untuk mengembangkan teori-teori representasi pengetahuan dan prosedur pengambilan keputusan secara umum dan kesimpulan-kesimpulan.
Pada awal tahun 1980–an, teknologi sistem pakar pertama dibatasi oleh pandangan akademis dan mulai terlihat sebagai aplikasi yang komersial seperti XCON, XSTL dan CATS-1. Sebagai tambahan untuk membangun sistem pakar, usaha yang sangat mendasar adalah membangun alat untuk mempercepat konstruksi dari sistem pakar seperti MYCIN dan AGE. Sejak akhir tahun 1980-an, perkembangan software berkembang sejalan dengan perkembangan komputer termasuk mikro komputer.
2.3.2 Tujuan Sistem Pakar
Tujuan dari sistem pakar adalah untuk memindahkan kemampuan
(transferring expertise) dari seorang ahli atau sumber keahlian yang lain
ke dalam komputer dan kemudian memindahkannya dari komputer kepada pemakai yang tidak ahli (bukan pakar). Proses ini meliputi empat aktivitas yaitu:
1. Akuisi pengetahuan (knowledge acquisition) yaitu kegiatan mencari dan mengumpulkan pengetahuan dari para ahli atau sumber keahlian yang lain.
2. Representasi pengetahuan (knowledge representation) adalah kegiatan menyimpan dan mengatur penyimpanan pengetahuan yang diperoleh dalam komputer. Pengetahuan berupa fakta dan aturan disimpan dalam komputer sebagai sebuah komponen yang disebut basis pengetahuan.
3. Inferensi pengetahuan (knowledge inferencing) adalah kegiatan melakukan inferensi berdasarkan pengetahuan yang telah disimpan didalam komputer.
4. Pemindahan pengetahuan (knowledge transfer) adalah kegiatan pemindahan pengetahuan dari komputer ke pemakai yang tidak ahli. 2.3.3 Ciri-ciri sistem pakar
Menurut Sutojo, Mulyono dan Suhartono (2011), ciri-ciri sistem pakar adalah sebagai berikut :
1. Berdasarkan pada kaidah atau rule tertentu. 2. Mudah dimodifikasi.
3. Memiliki kemampuan untuk belajar beradaptasi. 2.3.4 Manfaat Sistem Pakar
Menurut Sutojo, Mulyono dan Suhartono (2011), manfaat system pakar adalah :
1. Membuat seseorang yang awam bekerja seperti layaknya seorang pakar.
2. Meningkatkan kualitas dengan memberi nasehat yang konsisten dan mengurangi kesalahan.
3. Mampu menangkap pengetahuan dan kepakaran seseorang. 4. Dapat beroperasi dilingkungan yang berbahaya.
5. Memudahkan akses pengetahuan seorang pakar. 2.3.5 Aturan-Aturan (Rule)
Kebanyakan software sistem pakar komersial adalah sistem yang berbasis rule (rule-based system), yaitu pengetahuan disimpan terutama dalam bentuk rule, sebagai prosedur-prosedur pemecahan masalah.
Contoh rule pada sistem ini adalah sebagai berikut: IF Sakit kepala (Gejala 1)
AND Pilek (Gejala 2) AND Demam (Gejala 3) THEN Influenza
2.3.6 Perbandingan Pakar dan Sistem Pakar
Perbandingan kemampuan antara seorang pakar dengan sistem pakar disajikan pada Tabel 2.1
Tabel 2.1. Perbandingan Pakar dan Sistem Pakar (Sutojo, Mulyono dan Suhartono, 2011).
No Pakar Manusia Sistem Pakar
1. Memiliki waktu yang terbatas karena manusia membutuhkan istirahat
Waktu tidak terbatas karena dapat digunakan kapanpun
2. Tempat akses bersifat lokal pada suatu tempat saja dimana pakar berada
Dapat digunakan diberbagai tempat
3. Pengetahuan bersifat variabel dan dapat berubah tergantung situasi
Pengetahuan bersifat konsisten
4. Kecepatan untuk menemukan solusi bervariasi
Kecepatan untuk memberikan solusi bersifat konsisten
5. Biaya yang diperlukan untuk konsultasi sangat mahal
Biaya yang diperlukan untuk konsultasi lebih murah
2.3.7 Komponen Dasar Sistem Pakar
Suatu sistem disebut sebagai sistem pakar jika mempunyai ciri-ciri tertentu. Hal ini juga harus didukung oleh komponen-komponen sistem pakar yang mampu menggambarkan tentang ciri-ciri tersebut. Komponen sistem pakar dapat digambarkan pada gambar :
Gambar 2.1 Struktur Bagan Sistem Pakar (Sutojo, Mulyono dan Suhartono, 2011)
Komponen-komponen sistem pakar terlihat pada Gambar 2.1 diatas dan berikut penjelasan dari masing-masing komponen. Sutojo, Mulyono dan Suhartono (2011), yaitu:
1. Subsistem penambahan pengetahuan. Bagian ini digunakan untuk memasukkan pengetahuan, mengkontruksi atau memperluas pengetahuan dalam basis pengetahuan. Pengetahuan itu bisa berasal dari buku, ahli, basisdata, penelitian, dan gambar.
2. Basis pengetahuan. Berisi pengetahuan yang dibutuhkan untuk memahami, memformulasikan dan menyelesaikan masalah.Motor inferensi (inference engine). Program yang berisi metodologi yang digunakan untuk melakukan penalaran terhadap informasi-informasi basis pengetahuan dan blackboard, serta digunakan untuk memformulasikan konklusi. Ada tiga elemen utama dalam motor inferensi, yaitu:
a) Interpreter: Mengeksekusi item-item agenda yang terpilih menggunakan aturan-aturan dalam basis pengetahuan.
b) Scheduler: Akan mengontrol agenda.
c) Consistency enforce: Akan berusaha memelihara konsistenan dalam mempresentasikan solusi yang bersifat darurat.
3. Blackboard. Merupakan area dalam memori yang digunakan untuk merekam kejadian yang sedang berlangsung termasuk keputusan sementara. Ada tiga tipe keputusan yang dapat direkam, yaitu:
a) Rencana: Bagaimana menghadapi masalah.
b) Agenda: Aksi-aksi yang potensial yang sedang menunggu untuk dieksekusi.
c) Solusi: Calon aksi yang akan dibangkitkan.
4. Antarmuka digunakan untuk media komunikasi antar user dan program.
5. Subsistem penjelas. Digunakan untuk melacak respon dan member penjelas tentang kelakuan sistem pakar secara interaktif melalui pertanyaan:
a) Mengapa suatu pertanyaan diajukan oleh sistem pakar? b) Bagaimana konklusi dicapai?
c) Mengapa ada arternatif yang dibatalkan?
d) Rencana apa yang digunakan untuk mendapatkan solusi?
6. Sistem penyaring pengetahuan. Sistem ini digunakan untuk mngevaluasi kinerja sistem pakar itu sendiri untuk melihat apakah pengetahuan-pengetahuan yang ada masih cocok digunakan dimasa mendatang.
2.3.8 Teknik Inferensi
Mesin inferensi adalah bagian yang mengandung mekanisme fungsi berpikir dan pola-pola penalaran sistem yang digunakan seorang pakar. Mekanisme ini akan menganalisa suatu masalah tertentu dan selanjutnya mencari kesimpulan yang terbaik. Siswanto (2010).
Menurut Siswanto (2010), Ada dua teknik penalaran (inference) yaitu sebagai berikut:
1. Forward Chaining (Pelacakan ke depan) : Forward chaining adalah pendekatan data-driven yang dimulai dari informasi yang tersedia atau dari ide dasar, kemudian mencoba menarik kesimpulan. Teknik ini memulai pencarian dengan fakta yang diketahui untuk menguji kebenaran hipotesa, kemudian mencocokkan fakta tersebut dengan bagian IF dari rule IF-THEN. Teknik ini cocok digunakan untuk menangani masalah peramalan (prognosis) dan pengendalian (controlling).
2. Backward Chaining (Pelacakan ke belakang): Teknik ini memulai pencarian dari kesimpulan (goal) dengan mencari sekumpulan hipotesa-hipotesa yang mendukung menuju fakta-fakta yang mendukung sekumpulan hipotesa tersebut.
2.4 Faktor Kepastian (Certainty Factor)
Faktor Kepastian (Certainty factor) ini diusulkan oleh Shortliffe dan Buchanan pada tahun 1975 untuk mengakomodasi inexact reasoning (ketidakpastian pemikiran) seorang pakar. Teori ini berkembang bersamaan dengan pembuatan sistem pakar MYCIN. Team pengembang MYCIN mencatat bahwa dokter sering kali menganalisa informasi yang ada dengan ungkapan seperti misalnya : “mungkin, kemungkinan besar, hampir pasti”. Untuk mengakomodasi hal ini, tim MYCIN menggunakan Certainty Factor (CF) guna menggambarkan tingkat keyakinan pakar terhadap permasalahan yang sedang dihadapi. Secara umum, rule direperesentasikan dalam bentuk sebagai berikut :
IF E1 [AND / OR] E2 [AND / OR] ... En THEN H (CF=CFi)
Dimana :
E1 ... En : fakta-fakta (evidence) yang ada
H : hipotesa atau konklusi yang dihasilkan
CF : tingkat keyakinan (Certainty Factor) terjadinya hipotesa H akibat adanya fakta-fakta E1 s/d En.
2.4.1 Model Untuk Menghitung Tingkat CF dari Sebuah Rule
Sampai saat ini ada dua model yang sering digunakan untuk menghitung tingkat keyakinan (CF) dari sebuah rule adalah sebagai berikut. Denok (2010) :
1. Menggunakan metode Belief Disbelief yang disusulkan oleh E. H. Shortliffe dan B. G.Buchhaman, yaitu :
CF(H,E) = MB(H,E) – MD(H,E) perhitungan CF ………(2.1)
1 : if P(H) = 1 MB(H | E) = [P(H |E)]−P(H) 1−P(H)
: otherwise perhitungan MB………(2.2) 1 : if P(H) = 0 MD(H | E) = P(H)−[P(H|E) P(H)
: otherwise perhitungan MD………..(2.3) Dimana :
CF (H, E) = CF dari hipotesis H yang dipengaruhi oleh gejala (evidence) E. Besarnya CF antara -1 sampai dengan 1. Nilai -1 menunjukkan ketidakpercayaan mutlak sedangkan nilai 1 menunjukkan kepercayaan mutlak.
MB (H, E) = Ukuran kenaikan kepercayaan (measure of increased belief) terhadap hipotesis H yang
dipengaruhi oleh gejala E.
MD (H, E) = Ukuran kenaikan kepercayaan (meansure of
increased belief) terhadap hipotesis H yang
dipengaruhi oleh gejala E
P(H) = Probabilitas kebenaran hipotesa H.
E (Evidence) = Fakta / Gejala pada pasien.
H (Hipotesa) = Jawaban sementara dari suatu masalah yang masih bersifat praduga.
2. Menggali informasi dari hasil wawancara dengan pakar. Nilai CF didapat dari Qualitatif Term yang diberikan pakar sehingga menjadi nilai CF tertentu. Nilai Qualitatif Term dan nilai Certainty Factor nya dapat dilihat pada Tabel 2.2
Tabel 2.2 Nilai Interpretasi CF ( Sutojo, Mulyono dan Suhartono, 2011)
Certainty Term Certainty Factor
Pasti Tidak -1.0
Hampir Pasti Tidak -0.8
Kemingkinan Besar Tidak -0.6
Mungkin Tida -0.4
Tidak Tahu/Tidak Yakin -0.2 to 0.2
Mungkin 0.4
Kemungkinan Besar 0.6
Hampir Pasti 0.8
Pasti 1.0
Nilai Certainty Factor (CF) yang didapatkan dari hasil wawancara dengan pakar, selanjutnya digunakan sebagai nilai CF(H).
Contoh :
Pakar : “Bila sakit kepala dan pilek dan demam, maka ‘kemungkinan besar’ penyakitnya adalah influenza”
Rule : IF gejala 1 = sakit kepala (bobot=0.3) AND gejala 2 = pilek (bobot=0.3) AND gejala 3 = demam (bobot=0.2) THEN penyakit = influenza (CF = 0.8)
2.4.2 Aturan Kombinasi Metode Certainty Factor
Definisi Certainty Factor menurut David McAllister adalah suatu metode untuk membuktikan apakan suatu fakta itu pasti ataukah tidak
pasti yang berbentuk metric yang biasanya digunakan dalam sistem pakar. Metode ini sangat cocok untuk sistem pakar mendiagnosis sesuatu yang belum pasti. Aturan-aturan kombinasi Certainty Factor yang berlaku menurut McAllister dapat dilihat pada Tabel 2.3.
Tabel 2.3 Aturan-aturan McAllister ( Sutojo, Mulyono dan Suhartono, 2011)
No Kondisi Aturan Rumus
1 Apabila kedua nilai positif (+ +) CFc (CF1,CF2) = CF1 + CF2 * (1-CF1) 2 Apabila kedua nilai negatif (- -) CFc (CF1,CF2) = CF1 + CF2 * (1+CF1) 3 Apabila salah satu nilai negatif (+ -)
CFc= CF1+ CF2 1 − min (|CF1|,|CF2|)
2.4.3 Langkah Perhitungan Certainty Factor
Adapun langkah-langkah untuk melakukan perhitungan pada metode certainty factor yaitu :
a. Langkah Pertama
Tentukan nilai CF Pakar yang didapat dari hasil wawancara pakar dengan jawaban berdasarkan tabel 2.1
b. Langkah Kedua
Selanjutnya akan dilakukan perhitungan nilai CF nya dengan mengalikan antara nilai CF pakar {CF(H)} dan nilai CF Pengguna {CF(E)}. Perhitungannya :
CF(H,E)n = CF(H)n * CF(E)n c. Langkah Ketiga
Selanjutnya mengkombinasikan setiap 2 nilai CF sesuai dengan aturan-aturan yang ada. Apabila terdapat lebih dari 2 nilai CF, maka dilakukan pengulangan pengkombinasian nilai CF tersebut.
d. Langkah Keempat
Hasil dari nilai CF kombinasi yang didapatkan akan dikalikan dengan 100%. Sehingga jawaban yang didapatkan oleh pengguna akan dalam bentuk persentase.
2.5 Diagnosa
Diagnosa merupakan langkah awal penentuan jenis penyakit dengan cara melakukan penelitian terlebih dahulu ataupun melakukan pemeriksaan berdasarkan gejal-gejala. Pemeriksaan tersebut dilakukan terhadap suatu hal ataupun pemeriksaan medis sebagai penentuan jenis penyakit berdasarkan tanda atau gejala dengan menggunakan cara atau alat laboratorium, foto, uji klinik pembanding diagnosis yang membanding-bandingkan tanda klinik dari suatu penyakit dengan tanda penyakit klinik lain. Kamus Besar Bahasa Indonesia ( 2014).
2.6 Sistem Endokrin
Sistem endokrin adalah sistem kontrol kelenjar tanpa saluran ductless yang menghasilkan hormon yang tersirkulasi di tubuh melalui aliran darah untuk mempengaruhi organ-organ lain. Hormon bertindak sebagai "pembawa pesan" dan dibawa oleh aliran darah ke berbagai sel dalam tubuh, yang selanjutnya akan menerjemahkan "pesan" tersebut menjadi suatu tindakan. Sistem endokrin tidak memasukkan kelenjar eksokrin seperti kelenjar ludah, kelenjar keringat, dan kelenjar-kelenjar lain dalam saluran gastroinstestin. Suminarsih (2011).
2.6.1 Macam-Macam Penyakit Sistem Endokrin A. Diabetes
Gangguan endokrin yang paling umum adalah diabetes mellitus, yang terjadi apabila pankreas tidak menghasilkan insulin yang cukup atau tubuh tidak dapat menggunakan insulin yang tersedia dengan optimal. Gejala diabetes dapat meliputi:.
1. Haus atau lapar yang berlebih 2. Kelelahan
4. Mual 5. Muntah
6. Gangguan pada penglihatan B. Akromegali
Akromegali adalah gangguan di mana kelenjar pituitari
menghasilkan hormon pertumbuhan yang berlebih. Hal ini menyebabkan pertumbuhan yang berlebih, terutama pada tangan dan kaki. Gejala akromegali biasanya adalah :
1. Ukuran bibir, hidung, atau lidah yang terlalu besar 2. Tangan atau kaki yang bengkak
3. Perubahan struktur tulang muka 4. Nyeri pada tubuh dan sendi 5. Kelelahan
6. kelemahan 7. Sakit kepala
8. Gangguan pada penglihatan. C. Addison
Penyakit Addison ditandai dengan penurunan produksi kortisol dan aldosteron akibat kerusakan kelenjar adrenal. Gejala
Addison biasanya adalah:.
1. Depresi 2. Diare 3. Kelelahan 4. Sakit kepala
5. Napsu makan rendah 6. Tekanan darah rendah
7. Periode menstruasi yang terlewat 8. Mual
9. Penurunan berat badan 10. Kelemahan.
D. Sindrom Cushing
Sindrom Cushing disebabkan oleh kelebihan kortisol,
dihasilkan oleh kelenjar adrenal. Gejala dari Sindrom Cushing biasanya adalah.
1. Buffalo hump (lemak di antara bahu seperti punuk) 2. Kelelahan
3. Merasa sangat haus 4. Sering buang air kecil 5. Gula darah tinggi 6. Tekanan darah tinggi 7. Mudah marah
8. Kelemahan E. Graves
Penyakit Graves merupakan salah satu jenis hipertiroidisme yang mengakibatkan produksi hormon tiroid. Gejala penyakit Graves biasanya adalah:
1. Mata menonjol 2. Diare 3. Kesulitan tidur 4. Kelelahan 5. Kelemahan 6. Mudah marah
7. Detak jantung berdebar cepat 8. Penurunan berat badan. F. Hashimoto’s Thyroiditis
Hashimoto’s thyroiditis adalah suatu kondisi di mana tiroid
diserang oleh sistem imun, menyebabkan hipotiroidisme dan produksi hormon tiroid yang rendah, seperti :
1. Rambut kering dan rontok 2. Kelelahan
4. Periode menstruasi yang terlewat 5. Pertambahan berat badan.
G. Hipertiroidisme
Hipertiroidisme adalah kondisi yang ditandai dengan
kelenjar tiroid yang overaktif. Gejala umum dari hipertiroidisme meliputi:
1. Diare
2. Kesulitan tidur 3. Kelelahan 4. Mudah marah
5. Detak jantung berdebar cepat 6. Penurunan berat badan 7. Kelemahan.
H. Hipotiroidisme
Hipotiroidisme merupakan kondisi di mana tiroid
underaktif dan menghasilkan terlalu sedikit hormon tiroid. Gejala umum dari hipotiroidisme meliputi :
1. Sembelit
2. Menurunnya produksi keringat 3. Rambut kering dan rontok 4. Kelelahan
5. Nyeri pada tubuh dan sendi 6. Periode menstruasi yang terlewat 7. Kenaikan berat badan.
I. Prolaktinoma
Prolaktinoma muncul apabila kelenjar pituitari yang
disfungsional menghasilkan hormon prolactin berlebih, yang berguna dalam produksi ASI. Prolaktin berlebih dapat menyebabkan berbagai gejala, seperti :
1. Disfungsi ereksi 2. Kemandulan
3. Kehilangan libido
4. Periode menstruasi yang terlewat 2.7 Alat Bantu Perancangan Sistem
Alat bantu perancangan sistem merupakan alat yang umumnya digunakan untuk membantu analis dalam membuat model alur jalannya sebuah sistem. Alat bantu perancangan sistem yang akan digunakan dalam penyusunan Tugas Akhir ini adalah Unified Modelling Language (UML).
Menurut Rosa dan Shalahuddin (2014), UML adalah sebuah standarisasi bahasa pemodelan untuk pembangunan perangkat lunak yang dibangun dengan menggunakan teknik pemrograman berorientasi objek. Model ini merupakan bahasa visual untuk pemodelan dan komunikasi mengenai sebuah sistem dengan menggunakan diagram dan teks-teks pendukung.
Beberapa jenis diagram yang sering digunakan didalam Unified
Modelling Langeage (UML) adalah :
2.7.1 Use Case Diagram
Menurut Rosa dan Salahuddin (2014), use case diagram mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem informasi yang akan dibuat.
Tabel 2.4 Simbol Use Case Diagram (Rosa A. S. dan M. Salahuddin, 2014)
Simbol Deskripsi
Use case Fungsionalitas yang disediakan
sistem sebagai unit-unit yang saling bertukar pesan antar unit atau aktor, biasanya dinyatakan dengan menggunakan kata kerja di awal frase nama use case Aktor / actor Orang, proses atau sistem lain
yang berinteraksi dengan sistem nama use case
Lanjutan Tabel 2.4 Simbol Use Case Diagram (Rosa A. S. dan M. Salahuddin, 2014).
Simbol Deskripsi
informasi yang akan dibuat itu sendiri.
Asosiasi / assosiation Komunikasi antar aktor dan
use case yang berpartisipasi
pada use case atau use ca se memiliki interaksi dengan aktor
Ekstensi / extend Relasi use case tambahan ke sebuah use case dimana use
case yang ditambahkan dapat
berdiri sendiri walaupun tanpa
use case tambahan itu
Arah panah mengarah pada use case yang ditambahkan; biasanya use case yang menjadi extend-nya merupakan jenis yang sama dengan use case yang menjadi induknya.
Generalisai/generalization Hubungan generalisasi dam spesialisasi (umum – khusus)
Nama aktor
<<extend>>
Validasi username
Validasi user
Validasi sidik jari <<extend>>
Lanjutan Tabel 2.4 Simbol Use Case Diagram (Rosa A. S. dan M. Salahuddin, 2014)
Simbol Deskripsi
antara dua buah use case dimana fungsi umum dari lainnya, misalnya:
Arah panah mengarah pada use case yang menjadi generalisasinya (umum)
Menggunakan/include/uses elasi use case tambahan ke sebuah use case dimana use case yang ditambahkan memelukan
use case ini untuk menjalankan
fungsinya atau sebagai syarat dijalankan use case ini
Ada dua sudut pandang yang cukup besar mengenai include di
use case :
a. Include berarti use case yang ditambahkan akan selalu dipanggil
b. use case tambahan dijalankan, misal pada kasus berikut :
<<include>>
Hapus data Mengelola data
Lanjutan Tabel 2.4 Simbol Use Case Diagram (Rosa A. S. dan M. Salahuddin, 2014)
Simbol Deskripsi
c. Include berarti use case yang ditambahkan akan selalu dipanggil
d. use case tambahan dijalankan, misal pada kasus berikut :
2.7.2 Activity Diagram
Menurut Rosa dan Salahuddin (2014), avtivity diagram menggambarkan workflow (alir kerja) atau aktivitas dari sebuah sistem atau proses bisnis atau menu yang ada pada perangkat lunak. Yang perlu diperhatikan disini adalah bahwa diagram aktivitas menggambarkan aktivitas sistem bukan apa yang dilakukan aktor, jadi aktivitas yang dapat dilakukan oleh sistem.
Login Validasi username
Tabel 2.5 Simbol Activity Diagram (Rosa A. S. dan M. Salahuddin, 2014)
Simbol Deskripsi
Status awal Status awal aktivitas sistem, sebuah diagram aktivitas memiliki sebuah status awal
Aktivitas Aktivitas yang dilakukan
sistem, aktivitas biasanya diawali dengan kata kerj
Percabangan / decision Asosiasi percabangan dimana jika ada pilihan aktivitas lebih dari satu
Merge Sebuah belah ketupat dengan
beberapa aliran masuk dan satu pergi.
Penggabungan / join Asosiasi penggabungan dimana lebih dari satu aktivitas digabungkan menjadi satu
Fork Pemecahan dimana satu
aktivitas dipecah menjadi dua aktivitas
Lanjutan Tabel 2.5 Simbol Activity Diagram (Rosa A. S. dan M. Salahuddin, 2014)
Status akhir Stasus akhir yang dilakukan sistem, sebuah diagram aktivitas memiliki sebuah status akhir
Swimlane Memisahkan organisasi bisnis
yang bertanggung jawab terhadap aktivitas yang terjadi
2.7.3 Sequence Diagram
Menurut Rosa dan Salahuddin (2014), sequence diagram mengambarkan kelakuan objek pada use case dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima antar objek.
Tabel 2.6 Simbol Sequence Diagram ( Rosa A. S. dan M. Salahuddin, 2014)
Simbol Deskripsi
Aktor
atau
tanpa waktu aktif
Orang, proses atau sistem lain yang berinteraksi dengan sistem informasi yang akan dibuat diluar sistem informasi yang akan dibuat itu sendiri
Garis hidup/lifeline Menyatakan kehidupan suatu objek
Lanjutan Tabel 2.6 Simbol Sequence Diagram ( Rosa A. S. dan M. Salahuddin, 2014)
Simbol Deskripsi
Objek Menyatakan objek yang
berinteraksi pesan
Waktu aktif Menyatakan objek dalam
keadaan aktif dan berinteraksi, semua yang terhubung dengan waktu aktif ini adalah sebuah tahapan yang dilakukan didalamnya, misalnya
Maka cekStatusLogin() dan open() dilakukan di dalam metode login(). Aktor tidak memiliki waktu aktif
Pesan tipe create Menyatakan suatu objek membuat objek yang lain, arahan panah mengarah ke objek yang dibuat
Pesan tipe call Menyatakan bahwa suatu objek memanggil operasi / metode yang ada pada objek lain atau dirinya sendiri.
nama objek : nama kelas
1: login() 2: cekStatusLogin() 3: open()
<<create>>
Lanjutan Tabel 2.6 Simbol Sequence Diagram ( Rosa A. S. dan M. Salahuddin, 2014)
Simbol Deskripsi
Arah panah mengarah pada objek yang memiliki operasi / metode, karena ini memanggil operasi / metode maka operasi / metode yang dipanggil harus ada pada diagram kelas sesuai dengan kelas objek yang berinteraksi.
Pesan tipe send Menyatakan bahwa suatu objek mengirimkan data / masukkan / informasi ke objek lainnya, arah panah mengarah pada objek yang dikirimi.
Pesan tipe return Menyatakan bahwa suatu objek yang telah menjalankan operasi/metode menghasilkan suatu kembalian ke objek tertentu. Arah panah mengarah pada objek yang menerima kembalian.
Pesan tipe destroy Menyatakan suatu objek mengakhiri hidup objek lain
2.7.4 Class Diagram
Menurut Rosa A.S. dan M. Salahuddin (2014), diagram kelas atau class diagram menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang akan dibuat untuk membangun sistem.
Tabel 2.7 Simbol Class Diagram ( Rosa A. S. dan M. Salahuddin, 2014)
Simbol Deskripsi
Kelas Kelas pada struktur sistem
Antarmuka / interface
nama_interface
Sama dengan konsep interface
dalam pemrograman
berorientasi objek
Asosiasi / assosiation Relasi antarkelas dengan makna umum, asosiasi biasanya juga disertai dengan multiplicity
Asosiasi berarah / directed
assosiation
Relasi antarkelas dengan makna kelas yang satu digunakan oleh kelas yang lain, asosiasi biasanya juga disertai dengan
multipicity
Nama kelas +attribut 1 +attribut 2 +operation 1( )
Lanjutan Tabel 2.7 Simbol Class Diagram ( Rosa A. S. dan M. Salahuddin, 2014)
Simbol Deskripsi
Generalisasi Relasi antar kelas dengan makna generalisasi-spesifikasi (hukum khusus)
Kebergantungan/dependency Relasi antar kelas dengan makna kebergantungan antar kelas
Agregasi/aggregation Relasi antar kelas dengan makna semua-bagian (whole-part)
2.8 Android
2.8.1 Pengertian android
Menurut Nazruddin (2015), Android adalah sebuah sistem operasi untuk perangkat mobile berbasis linux yang mencakup sistem operasi, middleware dan aplikasi. Android menyediakan platform terbuka bagi para pengembang untuk menciptakan aplikasi.android meupakan generasi baru platform mobile, platform yang memberikan pengembang untuk melakukan pengembangan sesuai dengan yang diharapkan. Sistem operasi yang mendasari android dilisensikan dibawah GNU, General Public Lisensi Versi 2 (GPLv2).
Android (sistem operasi) atau OS Android merupakan sebuah sistem operasi yang berbasis Linux untuk telepon seluler seperti telepon pintar dan komputer tablet. Android menyediakan platform terbuka bagi para pengembang untuk menciptakan aplikasi mereka sendiri untuk digunakan oleh bermacam peranti bergerak.Yanto (2013).
2.8.2 Versi Android
Ada versi-versi android yang pernah dirilis salah satunya adalah android versi 2.2 (Froyo : Frozen Yoghurt). Pada bulan mei 2010 Android versi 2.2 Rev 1 diluncurkan. Android inilah yang sekarang sangat beredar di pasaran, salah satunya adalah dipakai di Samsung FX tab yang sudah ada di pasaran. Fitur yang tersedia di Android versi ini sudah kompleks diantaranya :
1. Kerangka aplikasi memungkinkan penggunaan dan penghapusan komponen yang tersedia.
2. Dalvik Virtual Machine dioptimalkan untuk perangkat mobile. 3. Grafik: grafik di 2D dan grafis 3D berdasarkan libraries
OpenGL.
4. SQLite: untuk menyimpan data.
5. Mendukung media: audio, video dan berbagai format gambar (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF).
Kamera, Global Positioning System (GPS), kompas, dan accelerometer (tergantung hardware).
2.9 Bahasa Pemrograman Java
Java adalah nama sebuah bahasa pemograman yang sangat terkenal. Sebagai bahasa pemograman, java dapat digunakan untuk menulis program. Sebagaimana diketahui, program adalah kumpulan instruksi yang ditujukan untuk komputer. Melalui program, komputer dapat diatur agar melaksanakan tugas tertentu sesuai yang ditentukan oleh pemogram (orang yang membuat program). Bahasa java dikembangkan di Sun Microsystems dan mulai diperkenalkan kepada publik pada tahun 1995. Seperti hal nya C++, java juga merupakan bahasa yang berorientasi objek.dengan demikian java juga memudahkan dalam pembuatan aplikasi yang berskala besar. Kadir (2014).
Java merupakan bahasa pemograman yang tangguh dan terbukti handal pada banyak aplikasi untuk mengembangkan aplikasi-aplikasi pada desktop dan server. Terdapat tiga edisi JAVA : JAVA SE (JAVA standard edition),
JAVA EE (JAVA ebterprise edition), dan JAVA ME (JAVA micro edition). JAVA SE dapat digunakan untuk mengembangkan aplikasi pada sisi client atau applet. JAVA EE dapat dipakai untuk mengembangkan aplikasi pada sisi
server, seperti JAVA sevlets dan JavaServer Pages. JAVA ME dapat
digunakan untuk mengembangkan aplikasi divais bergerak, seperti telepon genggam. Sianipar (2013).
Menurut Susanto (2011), Java merupakan bahasa pemrograman untuk membangun aplikasi pada sistem operasi Android. Oleh karena itu, untuk membangun aplikasi pada sistem operasi ini diperlukan dasar tentang pemrograman Java. Java merupakan pemrograman berorientasi objek. Oleh karena itu, setiap konsep yang akan diimplementasikan dalam Java berbentuk dalam kelas. Kelas ini mendefiniskan objek-objek yang memiliki kesamaan perilaku dan keadaan. Pada Java terdapat kumpulan kelas standar yang dikenal dengan Application Programming Interface (API) Java, selain itu dapat juga dideskripsikan kelas sendiri sesuai kebutuhan. Sintak dari bahasa pemrograman JAVA sebagai berikut :
a. Case Sensitive: adalah metode yang membedakan penulisan huruf besar dan kecil. Contoh: penulisan Hello dan hello dalam bahasa Java mempunyai arti yang berbeda.
b. Nama Class: semua nama class di Java harus diawali dengan huruf kapital. Atau jika nama class memiliki lebih dari satu kata, setiap kata harus diawali dengan huruf kapital. Contoh : class HelloWorld c. Nama Program: nama program harus sama dengan nama class.
Contoh: jika kita membuat program dengan nama class HelloWorld maka kita harus menyimpannya dengan nama HelloWorld.java
d. Nama Method: nama method harus diawali dengan huruf kecil. Atau jika nama method memiliki lebih dari satu kata, kata kedua dan seterusnya harus diawali dengan huruf besar (kapital). Contoh: public void iniMethodSaya()
public static void main(String[] args) - merupakan main() method yang akan di eksekusi sebagai main program atau program utama dan setiap program Java harus memiliki main() method.
2.10 SQLite
SQLite adalah salah satu software yang embedded yang sangat populer,
kombinasi SQL interface dan penggunaan memory yang sangat sedikit dengan kecepatan yang sangat cepat. SQLite android termasuk dalam android runtime, sehingga setiap versi dari android dapat membuat database dengan SQLite. Tidak ada database yang otomatis disediakan oleh android, jika kita menggunakan SQLite, kita harus mengcreate database sendiri, mendefinisikan tabelnya, index serta datanya. Banyak software Manager SQLite yang bisa di unduh secara gratis, salah satunya adalah SQLite yang addons dengan Mozilla
Firefox. Nazruddin ( 2015). Berikut adalah tampilan SQLite :
Gambar 2.2 Database SQLite
2.11 Pengujian Sistem
Pengujian merupakan bagian yang penting dalam siklus pengembangan perangkat lunak. Pengujian dilakukan untuk menjamin kualitas dari perangkat lunak. Selain itu, pengujian diharapkan dapat mengetahui keunggulan serta kelemahan sistem tersebut. Pressman (2012).
2.11.1 Black-Box Testing
Menguji perangkat lunak dari segi spesifikasi fungsionalitas tanpa menguji desain dank ode program. Pengujian dimaksudkan untuk mengetahui apakah fungsi-fungsi, masukan, dan keluaran dari perangkat lunak sesuai dengan spesifikasi yang dibutuhkan.
Menurut Pressman (2010), pengujian kotak hitam merupakan pendekatan pelengkap yang dilakukan untuk mengungkap kelas kesalahan yang berbeda dari yang diungkap oleh metode kotak putih. Pengujian kotak hitam berupaya untuk menemukan kesalahan dalam kategori berikut:
1. Fungsi yang salah satu hilang 2. Kesalahan antarmuka
3. Kesalahan dalan struktur data atau akses basis data eksternal 4. Kesalahan perilaku atau kinerja
5. Kesalahan inisialisasi dan penghentian
Tidak seperti pengujian kotak putih, yang dilakukan pada awal proses pengujian, pengujian kotak hitam cenderung diterapkan selama tahap-tahap pengujian selanjutnya, karena pengujian kotak hitam sengaja mengabaikan struktur kendali, perhatian difokuskan pada ranah informasi. Pengujian dirancang untuk menjawab pertanyaan-pernyataan berikut :
1. Bagaimana validitas fungsional diuji?
2. Bagaimana perilaku dan kinerja sistem diuji?
3. Kelas-kelas masukan apakah yang akan membentuk test case yang baik?
4. Apakah sistem sangat sensitif terhadap nilai masukan tertentu? 5. Bagaimana batas-batas kelas data diisolasi?
6. Berapa kecepatan dan volume data yang dapat ditolerir oleh sistem?
2.11.2 White-Box Testing
Pengujian kotak putih, terkadang disebut juga pengujian kotak kaca (glass-box testing), merupakan sebuah filosofi perancangan test
case yang menggunakan struktur kontrol yang dijelaskan sebagai
bagian dari perancangan peringkat komponen untuk menghasilkan
test case. Dengan menggunakan metode pengujian kotak putih.
Menurut Pressman (2010), dengan menggunakan metode pengujian kotak putih, maka akan memperoleh test case yang:
1. Menjamin bahwa semua jalur indepenen didalam modul dieksekusi sedikitnya satu kali.
2. Melaksanakan semua keputusan logis pada sisi benar dan yang salah.
3. Melaksanakan semua loop pada batas mereka dan dalam batas-batas operasional mereka.
4. Melakukan struktur data internal untuk memastikan kesahihannya.
Kompleksitas siklomatik V(G) ditentukan dengan menerapkan algoritma yang ada. V(G) dapat ditentukan dengan menghitung semua pernyataan kondisional, dengan rumus flow graph
V(G) = E – N + 2 atau V(G) = P + 1 flow graph ….(2.4) Keterangan :
V(G) = jumlah total grafik alir E = jumlah edge grafik alir N = jumlah node grafik alir