73814724 Simulasi Sistem Pengambilan Dan Pemanggilan Nomor Antrian
-
Upload
emailumar240905 -
Category
Documents
-
view
353 -
download
3
Transcript of 73814724 Simulasi Sistem Pengambilan Dan Pemanggilan Nomor Antrian
SIMULASI SISTEM PENGAMBILAN DAN PEMANGGILAN NOMOR ANTRIAN PADA DOKTER PRAKTEK
(STUDI KASUS PADA APOTIK MATAHARI)
TUGAS AKHIR
Oleh :
SEPTIAN B SIAGIAN 06 411 133
PROGRAM STUDI TEKNIK INFORMATIKA STRATA SATU FAKULTAS ILMU KOMPUTER DAN MANAJEMEN
UNIVERSITAS SAINS DAN TEKNOLOGI JAYAPURA JAYAPURA
JANUARI 2011
SIMULASI SISTEM PENGAMBILAN DAN PEMANGGILAN NOMOR ANTRIAN PADA DOKTER PRAKTEK
(STUDI KASUS PADA APOTIK MATAHARI)
TUGAS AKHIR
Diajukan sebagai salah satu syarat untuk menyelesaikan studi
di Program Studi Teknik Informatika S1
Oleh :
SEPTIAN B SIAGIAN 06 411 133
PROGRAM STUDI TEKNIK INFORMATIKA STRATA SATU FAKULTAS ILMU KOMPUTER DAN MANAJEMEN
UNIVERSITAS SAINS DAN TEKNOLOGI JAYAPURA JAYAPURA
JANUARI 2011
iv
KATA PENGANTAR
Puji syukur pada Tuhan Yesus Kristus yang telah melimpahkan segala
anugerahNya kepada penulis sehingga dapat menyusun Laporan Tugas Akhir
dengan judul “ Simulasi Sistem Pengambilan dan Pemanggilan Nomor Antrian
Pada Dokter Praktek (Studi Kasus Pada Apotik Matahari) “.
Tugas Akhir yang dikembangkan diharapkan dapat memberikan suatu
gambaran tentang penerapan teknologi tentang bagaimana sebuah komputer
mampu mengendalikan rangkaian alat elektronik terhadap kebutuhan kehidupan
sehari-hari.
Dalam penyusunan proposal ini, penulis mendapatkan berbagai bentuk
masukan dan dukungan serta bantuan dari berbagai pihak. Oleh karena itu pada
kesempatan ini penulis menyampaikan ucapan terima kasih dan penghargaan
kepada :
1. Bapak Drs.Ali Kastella,M sebagai rektor Universitas Sains dan Teknologi
Jayapura.
2. Bapak Drs.Suyatno, MT, selaku Dekan Fakultas Ilmu Komputer dan
Manajemen.
3. Ibu Marla S.S. Pieter, M.Cs, selaku Ketua Program Studi Teknik
Informatika S1.
4. Bapak P. Buddy Harianto, M.Kom, selaku pembimbing.
5. Bapak-bapak dan ibu-ibu dosen TI (Secara khusus dosen-dosen Jurusan
Teknik Informatika) yang telah mendidik dan membagikan ilmunya
kepada penulis selama ini.
v
6. Papa dan Mama tercinta, Kakak dan Adik tercinta Mas Dhany, Mas Ricky,
dan Denis, serta Windy Sekar Sari my sweet heart yang telah banyak
memberikan dukungan berupa moral maupun materil selama penulis
mengikuti studi hingga selesai.
7. Teman-teman yang membantu (Mindarta, Wendry, Viktor, Poetra, Evi,
Halimah, Nita dan semua yang tidak tersebutkan) atas sumbangan pikiran
dan supportnya serta teman-teman seperjuangan ”Teknik Informatika 06”
atas bantuan dan kebersamaannya selama penulis menempuh studi di
Fakultas Ilmu Komputer dan Manajemen.
8. Almamater Tercinta.
Penulis menyadari bahwa penulisan Tugas Akhir ini, masih jauh dari
kesempurnaan karena keterbatasan kemampuan penulis. Oleh karena itu, penulis
mengharapkan saran dan kritik yang membangun guna kesempurnaan penulisan
skripsi ini. Akhirnya besar harapan penulis semoga skripsi ini dapat bermanfaat
bagi kita semua.
Akhir kata, penulis berharap penulisan ini dapat bermanfaat bagi
pembaca.
Jayapura, Januari 2011
Penulis
MOTTO DAN PERSEMBAHAN
“Janganlah takut sebab Aku menyertai engkau, janganlah bimbang sebab Aku ini
Allahmu; Aku akan meneguhkan, bahkan akan menolong engkau, Aku akan
memegang engkau dengan tangan kananku yang membawa kemenangan”
(Yesaya 41:10)
“Janganlah hendaknya kamu kuatir tentang apapun juga, tetapi
nyatakanlah dalam hal keinginanmu kepada Allah, dalam doa dan
permohonan dengan ucapan syukur. Damai sejahtera Allah yang
melampaui segala akal, akan memelihara hati dan pikiranmu dalam Kristus Yesus.
(Filipi 4:6-7 )
Skripsi Ini ku persembahkan Untuk :
Tuhan Yesus Kristus Atas Anugerah dan Kasih Karunia-Nya.
Tiada yang dapat menggantikan Kasihmu dalam hidup saya.
Papa dan Mama tercinta.
Kakak dan adik tersayang.
Windy Sekar Sari My Sweet Heart.
Almamater FIKOM 06’ – USTJ.
vii
DAFTAR ISI
Halaman
HALAMAN JUDUL ………………………………………………………….. LEMBAR PERSETUJUAN …………………………………………………... LEMBAR PENGESAHAN …………………………………………………… KATA PENGANTAR ….……………………….…………………………….. PERSEMBAHAN….. ………………………………………………………… DAFTAR ISI …....…………………………………………………………….. DAFTAR TABEL …………………………………………….……………..... DAFTAR GAMBAR …………………………………………………………. INTISARI ……………………………………………………………………..
i ii iii iv vi vii x xi xii
BAB I BAB II
PENDAHULUAN A. Latar Belakang Masalah ……………………………………..... B. Perumusan Masalah ………………………………………….... C. Pembatasan Masalah …………...…………………………….... D. Tujuan Penelitian ...…………………...……….……………..... E. Manfaat Penelitian …………………………...………………... F. Metodologi Penelitian …………………………………...…..... G. Sistematika Penulisan ……………………………………….....
LANDASAN TEORI A. Sistem …………………………………………………..……...
1. Data Flow Diagram (DFD) ……………………………….... a. Diagram Konteks ……………..………………………..... b. Diagram Zero ………………………………………….... c. Diagram Detail atau Diagram Primitif ………………......
2. Entity Relationship Diagram (ERD) ……………………...... a. One To One Relationship ……………………………...... b. One To Many Relationship ……………………………… c. Many To Many Relationship …………………………….
3. Kodefikasi ………………………………………………...... 4. Database …………………………………………………….
B. Definisi Antrian ……………………………………………...... 1. Komponen Dasar Antrian ………………………………...... 2. Disiplin Antrian ……………………………………………..
a. First-Come First-Served atau First-In First-Out ………… b. Last-Come First-Served atau Last-In Last-Out ………….
3. Struktur Antrian ……………………………………………. C. Mikrokontroler ………………………………………………....
1. Gambaran Umum 8051 (MCS-51) ………………………….
1 2 2 3 4 4 7 8 8 9 9 10 11 11 11 11 11 12 12 13 15 15 15 16 16 16
viii
BAB III
2. Memori ……………………………………………......……. a. Data Memori ……………………………………………. b. Program Memori ………………………………………...
3. Pin-pin Mikrokontroler AT89S51 ………………………...... D. Perangkat Lunak Yang Digunakan …………………………….
1. Borland Delphi 7.0 …………………………………………. 2. Microsoft Access 2003 ……………………………………...
ANALISA PERANCANGAN SISTEM A. Analisa Sistem dan Perancangan ………………………………
1. Analisa Sistem Berjalan ……………………………………. 2. Analisa Kebutuhan …………………………………………. 3. Spesifikasi Perangkat Keras dan Perangkat Lunak ...……….
a. Spesifikasi Perangkat Keras …………………………...... b. Spesifikasi Perangkat Lunak …………………………….
4. Analisa Diagram Alur Kerja Rangkaian Dalam Simulasi …. 5. Perancangan Proses Database ………………………………
a. Diagram Alur Data (DAD) ……………………………… 1) Identifikasi Sumber Data/Informasi, Tujuan serta
Sumber Data/Informasi …………………………….... 2) Diagram Konteks ……………………………………. 3) Diagram Berjenjang ………………………………..... 4) Diagram Overview …………………………………...
a. Diagram Overview Level-0 ………………………. b. Entity Relationship Diagram ……………………… c. Kodefikasi …………………………………………
6. Perancangan Perangkat Keras (Hardware) …………………. a. Power Supply (Tegangan Listrik Sumber Daya) ………... b. Komunikasi dengan PC …………………………………. c. Rangkaian Mikrokontroler AT89S51 …………………… d. 7 (seven) Segment Display ………………………………
7. Perancangan Perangkat Lunak Software …………………... a. Perancangan Form Utama ………………………………. b. Perancangan Setting Shift ………………………………. c. Perancangan Pengolahan Data Dokter ………………….. d. Perancangan Output Nomor Antrian …………………….
B. Implementasi …………………………………………………... 1. Implementasi Form Menu Utama ………………………….. 2. Implementasi Form Setting Shift …………………………... 3. Implementasi Form Pengolahan Data Dokter ……………… 4. Implementasi Nomor Antrian ………………………………
18 18 19 20 23 23 23 25 25 26 28 28 29 30 31 31 31 31 32 32 32 33 33 35 35 35 36 36 39 39 39 40 40 41 41 41 42 42
ix
BAB IV BAB V
HASIL DAN PEMBAHASAN A. Hasil Penelitian Dan Pembahasan ……………………………..
1. Tampilan Awal Form Utama ……………………………..... 2. Cara Penggunaan dan Kerja Program ………………………
a. Form Setting Shift ………………………………………. b. Form Pengolahan Data Dokter ………………………….. c. Form Utama ……………………………………………..
3. Hasil Uji Port Paralel ………………………………………. 4. Pembahasan …………………………………………………
PENUTUP A. Kesimpulan ……………………………………………………. B. Saran ……………………………………………………………
DAFTAR PUSTAKA ……………………………………………. LAMPIRAN
43 43 44 44 46 52 64 64 66 66 68
x
DAFTAR TABEL
Tabel 2.1. Simbol-simbol Data yang Digunakan Pada DFD ……………. Tabel 2.2. Keluarga Mikrokontroler AT89Sxx …………………………. Tabel 2.3. Fungsi Pengganti / Fungsi Alternatif Saluran I/O 8 bit Dua
Arah ………………………………………………………….. Tabel 3.1. Identifikasi Kesatuan Luar ……………………………………
10 17 21 31
xi
DAFTAR GAMBAR
Gambar 2.1. Proses Dasar Antrian …………………………………………. Gambar 2.2. Single Channel-Single Phase ………………………………… Gambar 2.3. Arsitektur Mikrokontroler MCS-51 ………………………….. Gambar 2.4. Pin Mikrokontroler AT89S51 ………………………………... Gambar 2.5. Diagram Blok Mikrokontroler AT89S51 …………………….. Gambar 3.1. Bagan Alir Sistem Berjalan …………………………………... Gambar 3.2. Diagram Block Rangkaian Sistem Antrian AT89S51 ………... Gambar 3.3. Flowchart Simulasi Sistem Pengambilan dan Pemanggilan
Nomor Antrian………………………………………………... Gambar 3.4. Diagram Konteks ……………………………………………... Gambar 3.5. Diagram Berjenjang …………………………………………... Gambar 3.6. Diagram Overview Level-0 …………………………………... Gambar 3.7. Entity Relationship Diagram …………………………………. Gambar 3.8. Skema Power Supply ………………………………………… Gambar 3.9. Skema Komunikasi PC dan Mikrokontroler …………………. Gambar 3.10. Skema Mikrokontroler AT89S51 …………………………… Gambar 3.11. Skema Rangkaian Seven Segment ………………………….. Gambar 3.12. Skematik Perangkat Keras Simulasi Sistem Pengambilan dan
Pemanggilan Nomor Antrian ………………………………... Gambar 3.13. Perancangan Form Menu Utama ……………………………. Gambar 3.14. Perancangan Form Setting Shift …………………………….. Gambar 3.15. Perancangan Pengolahan Data Dokter ……………………… Gambar 3.16. Perancangan Output Nomor Antrian ………………………... Gambar 3.17. Form Menu Utama ………………………………………….. Gambar 3.18. Form Setting Shift …………………………………………... Gambar 3.19. Form Pengolahan Data Dokter ……………………………… Gambar 3.20. Nomor Antrian ……………………………………………… Gambar 4.1. Form Menu Utama …………………………………………… Gambar 4.2. Form Setting Shift ……………………………………………. Gambar 4.3. Settingan Shift Berhasil ………………………………………. Gambar 4.4. Form Setting Dokter ………………………………………….. Gambar 4.5. Menambah atau Mengubah Data Dokter ……………………... Gambar 4.6. Merekam Nama Dokter ………………………………………. Gambar 4.7. Proses Sistem Antrian …………………………………………
14 16 18 20 22 25 27 30 31 32 32 33 35 35 36 37 38 39 39 40 40 41 41 42 42 43 44 44 46 46 49 52
xii
I N T I S A R I
Apotik Matahari merupakan salah satu apotik yang menangani pasien dengan jumlah pasien yang banyak dalam pelayanan kesehatan yang diberikan sehari-hari. Namun, banyaknya pasien yang datang tidak didukung dengan pelayanan pasien yang memadai. Sehingga yang terjadi menimbulkan ketidak tertiban antrian. Oleh karena itu diperlukan sebuah aplikasi pemanggil nomor antrian yang diperlukan untuk mengatur antrian pada pasien di Apotik Matahari
Tujuan dari penelitian ini adalah membuat simulasi sistem perangkat lunak yang dapat digunakan untuk mengatur atau mengontrol pengambilan dan pemanggilan nomor antrian pada loket antrian
Kinerja perangkat Simulasi Sistem Antrian untuk mengatur dan mengontrol pengambilan dan pemanggilan nomor antrian berdasarkan pada asas tata tertib “masuk pertama, keluar pertama” (FIFO = First-In, First-Out) serta asas tata tertib “masuk terakhir, keluar pertama” (LIFO = Last-In, First-Out). Sistem antrian tidak akan bekerja sebelum menekan tombol daftar. Setelah tombol daftar diaktifkan maka akan keluar print out antrian yang berisi nomor urut antrian.
Sistem akan memanggil nomor antrian yang telah terdaftar, bersamaan dengan bantuan interface parallel port akan memberikan output pada rangkaian seven segment untuk menampilkan sejumlah angka sesuai dengan urutan pemanggilan. Pemanfaatan interface yang digunakan pada simulasi ini menggunakan IC AT89S51 yang dirancang untuk membuat port input dan ouput parallel dengan bit sebesar 8 bit yang akan meneruskan ke seven segment untuk menampilkan angka.
Kata Kunci : FIFO (First-In, First-Out), LIFO (Last-In, Last-Out), Seven
Segment, Mikrokontroler AT89S51.
1
BAB I
PENDAHULUAN
A. Latar Belakang Masalah
Antrian adalah suatu kejadian yang biasa dalam kehidupan sehari-hari,
hal yang sering dapat dijumpai ialah menunggu di depan loket untuk mendapatkan
tiket kereta api atau tiket bioskop, pada pintu jalan tol, pada bank, pada kasir
supermarket, dan situasi-situasi yang lain merupakan kejadian yang sering
ditemui. Antrian timbul disebabkan kebutuhan akan layanan melenbihi
kemampuan (kapasitas) pelayanan atau fasilitas layanan, sehingga pengguna
fasilitas yang tiba tidak bisa segera mendapat layanan disebabkan kesibukan
layanan. Pada banyak hal, tambahan fasilitas pelayanan dapat diberikan untuk
mengurangi antrian atau untuk mencegah timbulnya antrian. Sebaliknya dengan
memberikan pelayanan tambahan, akan menimbulkan pengurangan keuntungan
yang mungkin sampai dibawah tingkat yang dapat diterima, sehingga yang terjadi
adalah timbulnya antrian yang panjang yang dapat mengakibatkan hilangnya
pelanggan.
Apotik Matahari merupakan salah satu apotik yang menangani pasien
dengan jumlah pasien yang banyak dalam pelayanan kesehatan yang diberikan
sehari-hari. Namun, banyaknya pasien yang datang tidak didukung dengan
pelayanan pasien yang memadai. Sehingga yang terjadi menimbulkan ketidak
tertiban antrian. Oleh karena itu diperlukan sebuah aplikasi pemanggil nomor
antrian yang diperlukan untuk mengatur antrian pada pasien di Apotik Matahari
2
Metode yang digunakan dalam penelitian ini menggunakan dua
metode yaitu First-Come First-Served (FCFS) atau First-In First-Out (FIFO)
artinya, lebih dulu datang (sampai), lebih dulu dilayani (keluar) serta metode Last-
Come First-Served (LCFS) atau Last-In First-Out (LIFO) artinya, yang tiba
terakhir yang lebih dulu keluar.
B. Perumusan Masalah
Sesuai dengan yang telah diuraikan dalam latar belakang dapat
dirumuskan dalam Tugas Akhir sebagai berikut :
1. Bagaimana membuat suatu program untuk mengendalikan proses
sistem pengambilan dan pemanggilan nomor pada apotik untuk
pelayanan dokter praktek pada pasien.
2. Bagaimana kinerja dari sistem pengambilan dan pemanggilan nomor
antrian pada loket dokter praktek.
C. Pembatasan Masalah
Pembahasan yang dilakukan dalam penyusunan tugas akhir
mempunyai beberapa batasan masalah, diantaranya :
1. Sistem pengambilan dan pemanggilan nomor antrian ini hanya akan
digunakan pada loket antrian di Apotik Matahari khususnya pada
dokter praktek.
2. Pemanggilan nomor antrian hanya akan berlaku pada hari dimana
pasien mengambil nomor antrian tersebut.
3. Setiap pasien yang sudah dipanggil akan dipanggil kembali sesuai
nomor urutannya jika pasien tersebut belum melakukan konsultasi..
3
4. Metode yang digunakan dalam penelitian ini menggunakan dua
metode yaitu :
a. First-Come First-Served (FCFS) atau First-In First-Out
(FIFO) artinya, lebih dulu datang (sampai), lebih dulu dilayani
(keluar).
b. Last-Come First-Served (LCFS) atau Last-In First-Out (LIFO)
artinya, yang tiba terakhir yang lebih dulu keluar.
5. Bentuk aplikasi berupa simulasi, dimana pemanggilan nomor antrian
dilakukan oleh sistem dan sistem akan menampilkan nomor urut pada
pasien tersebut.
D. Tujuan dan Manfaat Penelitian
1. Tujuan Penelitian
Tujuan dari penelitian ini adalah :
a. Sebagai salah satu syarat akademik untuk memperoleh gelar sarjana
Teknik (ST) pada Program Studi Teknik Informatika Jenjang Strata
Satu (S1) Universitas Sains Dan Teknologi Jayapura.
b. Membuat simulasi sistem perangkat lunak yang dapat digunakan untuk
mengatur atau mengontrol pengambilan dan pemanggilan nomor
antrian pada loket antrian. Perangkat lunak ini menggunakan program
Borland Delphi 7.0 dan Microsoft Office Access 2003.
c. Memudahkan kerja petugas jaga pada Apotik Matahari dalam
mengontrol antrian pasien, agar antrian berjalan dengan lebih teratur
sesuai pemanggilan nomor pada otomatisasi sistem.
4
2. Manfaat Penelitian
Manfaat yang diperoleh dari simulasi sistem pengambilan dan
pemanggilan nomor antrian, adalah :
a. Bagi mahasiswa, sebagai sarana mengembangkan penerapan ilmu
yang diperoleh dibangku kuliah dalam menganalisa dan
menyelesaikan permasalahan dengan membuat suatu program
aplikasi.
b. Bagi masyarakat, yaitu dapat memberikan gambaran bahwa sistem
pemograman Delphi juga dapat digunakan sebagai pengontrol
melalui port paralel untuk pemanggilan nomor dan penampilan
nomor.
E. Metodologi Penelitian
1. Metode Pengumpulan Data
Untuk memperoleh data serta informasi yang dibutuhkan sehubungan
dengan penulisan tugas akhir ini, maka digunakan metode-metode
pengumpulan data sebagai berikut :
a. Metode Wawancara
Mendapatkan data atau informasi mengenai sistem antrian yang
berlaku pada apotik matahari dengan melakukan tanya jawab secara
langsung dengan narasumber, yaitu petugas jaga pada Apotik Matahari
untuk mendapatkan data tentang proses pemanggilan yang terjadi
dipaotik Matahari.
5
b. Metode Pustaka
Mendapatkan literature atau buku yang ada hubungannya dengan
penulisan tugas akhir ini.
c. Studi Literatur
Mencari dan mengumpulkan referensi serta dasar teori yang diambil
dari berbagai buku penunjang untuk mendukung pembuatan program.
2. Metode Penyelesaian
a. Analisa Masalah dan Kebutuhan Sistem
Pada tahap ini, mengkaji informasi dan menganalisa masalah antrian
yang terjadi pada apotik matahari. Setelah itu merencanakan proses
dari sistem antrian yang akan dibuat Diagram Alur Data (DAD)
b. Entity Relationship Diagram (ERD)
Pada tahap ini, merupakan pembuatan perancangan sistem dengan
menggunakan metode Entity Relationship Diagram (ERD) yaitu
dengan cara membuat relasi / hubungan yang berkaitan antara satu file
dengan file lainnya berdasar kunci relasi (Relation Key), yang
merupakan kunci utama dari masing-masing file. ER merupakan tahap
yang cukup penting, tanpa tahap ER ini kita tidak dapat melanjutkan
tahap-tahap berikutnya dalam perancangan suatu sistem.
c. Kodefikasi
Pada tahap ini, merupakan pembuatan proses pengkodean untuk
menentukan suatu kunci utama (primary key) dalam suatu pembuatan
database.
6
d. Perancangan Struktur Database
Pada tahap ini, merupakan pembuatan perancangan struktur database
dengan maksud untuk menunjukkan elemen-elemen data dengan
panjang tipe data, dan subtipe datanya. Dinyatakan dalam sejumlah
karakter untuk membentuk field-field tersebut.
e. Desain Input / Output
Pada tahap ini, merupakan pembuatan perancangan model dari suatu
elemen sistem yang menerima seluruh masukan data, dimana masukan
data tersebut dapat berupa jenis data dan frekuensi pemasukan data
tersebut. Setelah itu merancang hasil dari proses pengolahan data
(output) yang merupakan tujuan dari rancangan sistem tersebut.
f. Pembuatan Program
Pada tahap ini, merupakan pembuatan program / aplikasi dengan
menggunakan bahasa pemrograman sesuai perencanaan proses yang
telah ditentukan dan desain input-output yang telah dirancangkan.
g. Uji Coba Program
Pada tahap ini, akan dilakukan uji coba program yang telah dibuat
sesuai tahap-tahap perancangan sistem yang telah dilakukan dengan
cara menjalankan program yang telah dibuat. Kemudian akan
diketahui apakah program tersebut sudah dapat berjalan sesuai dengan
yang diharapkan atau belum. Jika dari hasil pengujian terdapat
kesalahan atau belum layak digunakan, maka program harus
diperbaiki dahulu.
7
F. Sistematika Penulisan
Adapun sistematika penulisan Tugas Akhir (TA) ini adalah sebagai berikut :
BAB I PENDAHULUAN
Pada bab ini berisikan Latar Belakang Masalah, Perumusan
Masalah, Pembatasan Masalah, Tujuan Penelitian, Manfaat
Penelitian, Metodologi Penelitian, Sistematika Penulisan
BAB II LANDASAN TEORI
Pada bab ini berisikan teori-teori yang memperkuat tugas
akhir ini di dalam pemecahan masalah.
BAB III ANALISA DAN PERANCANGAN SISTEM
Pada bab ini berisikan struktur analisa, perancangan
software, desain input-output, serta implementasi dari
sistem yang akan dibuat.
BAB IV HASIL DAN PEMBAHASAN
Pada bab ini berisikan hasil dari sistem yang telah dibuat
dan akan dilakukan pengujian alat, pengujian program
dengan melakukan capture sistem pada Komputer..
BAB V PENUTUP
Pada bab ini berisikan kesimpulan dan saran-saran.
8
BAB II
LANDASAN TEORI
A. Sistem
Sistem berasal dari bahasa Latin (systēma) dan bahasa Yunani
(sustēma) adalah suatu kesatuan yang terdiri komponen atau elemen yang
dihubungkan bersama untuk memudahkan aliran informasi, materi atau energi.
“Sistem dapat diartikan ialah suatu kesatuan yang terdiri atas
komponen atau elemen yang saling berinteraksi, saling terkait, atau
saling bergantung membentuk keseluruhan yang kompleks.”
(Sumber : http://kisaranku.blogspot.com/2010/10/pengertian-sistem-lengkap.html)
Sebagai contoh adalah sistem pencernaan manusia yang terdiri atas
serangkaian komponen-komponen seperti mulut, kerongkongan, lambung,
usus dan anus yang saling berinteraksi dan bekerja sama untuk mencerna
makanan, mengambil sari, dan membuang sisanya. Jadi istilah sistem
terkandung tiga elemen penting, yaitu : Rangkaian Komponen, Interaksi dan
Kerja Sama, dan Tujuan.
Guna menjelaskan proses yang terjadi di dalam sistem yang dirancang,
digunakan model data flow diagram (DFD). Penggambaran data flow
diagram dilakukan mulai dari penggambaran diagram konteks sampai dengan
level yang lebih rendah.
1. Data Flow Diagram (DFD)
Desain Sistem adalah merupakan alat yang digunakan untuk
menggambarkan suatu sistem yang telah ada atau sistem baru yang akan
9
dikembangkan secara logika tanpa mempertimbangkan lingkungan fisik
dimana data tersebut mengalir ataupun lingkungan fisik dimana data
tersebut akan disimpan.
(Sumber: http://lavorchid.wordpress.com/2009/03/13/beberapa-pengertian-tentang-data-flow-diagram-dfd/).
Dalam merancang suatu sistem, sistem analis memerlukan beberapa
alat bantu, salah satunya adalah Data Flow Diagram (DFD). Data Flow
Diagram merupakan suatu bentuk atau model yang memungkinkan
professional sistem untuk menggambarkan sistem sebagai suatu jaringan
proses fungsional atau sebagai jaringan proses dan fungsi yang
dihubungkan satu sama lain oleh suatu penghubung yang disebut alur data
(Data Flow)
Data Flow Diagram memiliki tingkatan (levelisasi) proses,
Levelisasi DFD sebagai berikut :
a. Diagram Konteks
Merupakan diagram tingkat atas yang terdiri dari proses dan
menggambarkan hubungan terminator dengan sistem yang mewakili
suatu proses. Hubungan antar Terminator dan Data Store tidak
digambarkan.
b. Diagram Zero
Diagram ini merupakan diagram tingkat menengah yang
menggambarkan proses utama dari dalam sistem, yang terdiri dari
hubungan entitas (entity), proses data flow dan penyimpanan data (data
store)
10
c. Diagram Detail atau Diagram Primitif
Diagram Primitif merupakan diagram paling bawah yang tidak
dapat diuraikan lagi, sedangkan Diagram Detail masih dapat diuraikan.
(Sumber : http://freezcha.wordpress.com/2010/02/27/data-flow-diagram-dfd)
Simbol-simbol yang digunakan dalam DFD dapat dilihat pada tabel
berikut :
Terminator (External / Internal Entity)
Kesatuan (entity) di lingkungan luar sistem yang berupa orang, organisasi atau sistem lainnya yang berada di lingkungan luarnya yang akan memberikan input atau menerima output dari sistem
Process (Proses)
Kegiatan atau kerja yang dilakukan oleh orang, mesin atau komputer dari hasil suatu arus data yang masuk dalam proses untuk dihasilkan arus data yang akan keluar dari proses atau untuk mengubah input menjadi output.
Data Store (Penyimpanan Data)
Simpanan dari data yang dapat berupa file atau database di sistem komputer, arsip atau catatan manual, kotak tempat data di meja seseorang, tabel acuan manual, agenda atau buku
Data Flow (Arus Data)
Menunjukkan arus data yang dapat berupa masukkan untuk sistem atau hasil dari proses sistem
Tabel 2.1. Simbol-simbol data yang digunakan pada DFD (Sumber: http://freezcha.wordpress.com/2010/02/27/data-flow-diagram-dfd)
11
2. Entity Relationship Diagram (ERD)
Entity Relationship Diagram merupakan suatu model untuk
menjelaskan hubungan antar data dalam basis data berdasarkan objek-
objek dasar data yang mempunyai hubungan antar relasi. Relasi antar dua
file atau dua tabel dikategorikan menjadi tiga macam, yaitu :
a. One to One Relationship
Hubungan relasi satu ke satu yaitu setiap entitas pada himpunan
entitas A berhubungan paling banyak dengan satu entitas pada
himpunan entitas B.
b. One to Many Relationship
Setiap entitas pada himpunan entitas A dapat berhubungan dengan
banyak entitas pada himpunan entitas B, tetapi setiap entitas pada
entitas B dapat berhubungan dengan satu entitas pada himpunan entitas
A.
c. Many to Many Relationship
Setiap entitas pada himpunan entitas A dapat berhubungan dengan
banyak entitas pada himpunan.
3. Kodefikasi
Kodefikasi merupakan suatu tekhnik pengkodean yang digunakan
dalam menentukan suatu kunci utama (primary key) pada suatu pembuatan
program database, system ini sangat berguna dalam pengaksesan data,
karena data sangat bergantung pada primary key.
12
4. Database
Basis Data terdiri atas 2 kata, yaitu Basis sebagai markas atau
gudang, tempat bersarang/berkumpul. Dan data adalah representasi fakta
dunia nyata yang mewakili suatu objek seperti manusia, barang, hewan,
peristiwa, konsep, keadaan dan sebagainya, yang direkam dalam bentuk
angka, huruf, symbol, teks, gambar, bunyi, atau kombinasinya. Menurut
Fathansyah, dalam bukunya Basis Data, mengemukakan bahwa :
“Basis Data dapat didefinisikan dalam sejumlah sudut pandang
seperti: (Fathansyah, 2007 : 2)
1) Himpunan kelompok data (arsip) yang saling berhubungan
yang diorganisasi sedemikian rupa agar kelak dapat
dimanfaatkan kembali dengan cepat dan mudah.
2) Kumpulan data yang saling berhubungan yang disimpan secara
bersama sedemikian rupa dan tanpa pengulangan (redundansi)
yang tidak perlu, untuk memenuhi berbagai kebutuhan.
3) Kumpulan file / tabel / arsip yang saling berhubungan yang
disimpan dalam media penyimpanan elektronis.”
B. Definisi Antrian
Dalam kehidupan sehari-hari, antrian, queuing atau waiting line, sangat
sering dijumpai. Mengantri kadang memang harus dilakukan bilamana sedang
menunggu giliran, misalnya untuk membeli karcis bioskop, membayar tol,
mengambil atau menyetor uang pada bank, dan lainnya. Antrian dapat juga terjadi
pada barang, misalnya antrian bahan mentah yang akan diproses untuk dijadikan
13
suatu produk tertentu, komoditi ekspor yang akan dimuat ke kapal laut, ataupun
data yang akan diolah di pusat computer, dan lain sebagainya.
Menurut Siagian, P dalam dalam bukunya Penelitian Operasional : Teori dan
Praktek menjelaskan bahwa : (Siagian, 1987)
“antrian ialah suatu garis tunggu dari nasabah (satuan) yang
memerlukan layanan dari satu atau lebih pelayan (fasilitas layanan)”
(Sumber : http://www.sutanto.staff.uns.ac.id/files/2009/03/zzzzzzzzzzzzz.pdf)
Pada umumnya system antrian dapat diklasifikasikan menjadi system
yang berbeda-beda dimana teori antrian dan simulasi sering diterapkan secara
luas. Klasifikasi menurut Hillier dan Lieberman adalah sebagai berikut :
1. Sistem pelayanan komersial
2. Sistem pelayanan bisnis-industri
3. System pelayanan transportasi
4. System pelayanan social
1. Komponen Dasar Antrian
Komponen dasar proses antrian adalah :
(Sumber: http://www.sutanto.staff.uns.ac.id/files/2009/03/zzzzzzzzzzzzz.pdf)
a) Kedatangan
Setiap masalah antrian melibatkan kedatangan, misalnya orang, mobil,
panggilan telepon untuk dilayani, dan lain-lain. Unsur ini sering
dinamakan proses input. Proses input meliputi sumber kedatangan atau
biasa dinamakan calling population, dan cara terjadinya kedatangan uang
umumnya merupakan variable acak. Menurut Levin, dkk (2002), variable
14
acak adalah suatu variable yang nilainya bisa berapa saja sebagai hasil dari
percobaan acak. Variable acak dapat berupa diskrit atau kontinu. Bila
variable acak hanya dimungkinkan memiliki beberapa nilai saja, maka ia
merupakan variable acak diskrit. Sebaiknya bila nilainya dimungkinkan
bervariasi pada rentang tertentu, ia dikenal sebagai variable acak kontinu.
b) Pelayan
Pelayan atau mekanisme pelayanan dapat terdiri dari satu atau lebih
pelayan, atau satu atau lebih fasilitas pelayanan. Tiap-tiap fasilitas
pelayanan kadang-kadang disebut sebagai saluran (channel)
(Schroeder,1997). Contohnya, jalan tol. Mekanisme pelayanan dapat
hanya terdiri dari satu pelayan dalam satu fasilitas pelyanan yang ditemui
pada loket seperti pada penjualan tiket di gedung bioskop
c) Antri
Inti dari analisa antrian adalah antri itu sendiri. Timbulnya antrian
terutama tergantung dari sifat kedatangan dan proses pelayanan. Jika tak
ada antrian berarti terdapat pelayan yang menganggur atau kelebihan
fasilitas pelayanan (Mulyono, 1991).
Spp = Satuan penerima pelayan
Gambar 2.1. Proses Dasar Antrian (Sumber: http://www.sutanto.staff.uns.ac.id/files/2009/03/zzzzzzzzzzzzz.pdf)
15
2. Disiplin Antrian
Penentu antrian lain yang penting adalah disiplin antri. Disiplin antri adalah
aturan keputusan yang menjelaskan cara melayani pengantri. Menurut Siagian,
P (1987), ada 4 bentuk disiplin yang biasa digunakan, yaitu First-Come First
Served (FCFS) atau First-In First-Out (FIFO), Last-Come First-Served atau
Last-In First-Out (LIFO), Service In Random Order (SIRO).
a. First-Come First-Served (FCFS) atau First-In First-Out (FIFO)
First-In First-Out ialah suatu bentuk disiplin antri dimana yang lebih dulu
datang (sampai) akan lebih dulu dilayani (keluar). Misalnya, antrian pada
loket pembelian tiket bioskop.
b. Last-Come First-Served atau Last-In First-Out (LIFO), Service In Random
Order (SIRO)
Last-In First-Out merupakan antrian dimana yang datang paling akhir yang
dilayani paling awal atau paling dahulu, yang juga sering dikenal dengan LCFS
(Last-Come First-Served). Misalnya adalah pada system bongkar muat barang di
dalam truk, dimana barang yang masuk terakhir justru akan keluar terlebih
dahulu.
3. Struktur Antrian
Sedangkan bentuk struktur antrian dari kedua bentuk disiplin tersebut
menggunakan metode Single Channel-Single Phase dimana hanya ada satu
jalur yang memasuki system pelayanan atau ada satu fasilitas pelayanan.
Single Phase berarti hanya ada satu pelayanan.
16
C. Mikrokontroler
Mikrokontroler adalah single chip computer yang memiliki kemampuan
untuk di program dan digunakan untuk tugas-tugas yang berorientasi control.
Mikrokontroler dapat diartikan sebagai sebuah pengendali yang berukuran
mikro, yang terlihat hampir sama dengan mikroprosesor, namun memilki
beberapa perbedaan diantaranya memiliki banyak komponen yang
terintegrasi di dalamnya seperti RAM, ROM, I/O Port, dan Timer/Counter
yang tidak dimiliki oleh mikroprosesor.
Namun mikrokontroler hanya dapat melaksanakan tugas-tugas yang
lebih spesifik dibandingkan dengan mikroprosesor yang mampu menangani
pemrosesan data input dan output dari berbagai sumber.
1. Gambaran Umum 8051(MCS-51)
Mikrokontroler AT89S51 merupakan salah satu produk dari Atmel
Corp. yang memiliki 2 Kb Flash Programmable and Erasable Read-Only
Memory (PEROM), dengan 8 bit (jalur data). Mikrokontroler ini memiliki
Gambar 2.2. Single Channel - Single Phase (Sumber: http://www.sutanto.staff.uns.ac.id/files/2009/03/zzzzzzzzzzzzz.pdf)
17
Berikut ini adalah perbandingan mikrokontroler ATMEL keluarga
MCS-51 yang mencakup tipe mikrokontroler, kapasitas memori program,
memori data, jumlah pewaktu 16 bit dan teknologi pembuatannya.
Tabel 2.2 Keluarga Mikrokontroler AT89Sxx
Seri Flash
(KBytes) RAM
(Bytes) EEPROM (KBytes)
Pin I/O
Timer UART SPI ISP
AT89C51 4 128 - 32 2 1 - -
AT89S51 4 128 - 32 2 1 - Ya
AT89C52 8 256 - 32 3 1 - -
AT89S52 8 256 - 32 3 1 - Ya
AT89C2051 2 256 - 15 2 1 - -
AT89S2051 2 256 - 15 2 1 - Ya
AT89C4051 4 256 - 15 2 1 - -
AT89S4051 4 256 - 15 2 1 - Ya
AT89S8252 8 256 2 32 3 1 1 Ya
AT89S8253 12 256 2 32 3 1 1 Ya
Jantung dari mikrokontroler 8051 adalah CPU yang bertugas untuk
membaca memory program dan menjalankan perintah yang tersimpan
didalamnya. CPU ini disusun oleh sebuah unit aritmatika dan logika (ALU =
arithmethic logic unit) yang terhubung dengan yang terhubung dengan SFR
yaitu register A (ACC = Accumulator), register B, PSW (program status
word) dan stack pointer (SP), dan 16 bit program counter (PC) serta DPTR
(data pointer).(Usman, 2008:03)
Menurut Suhata, ST dalam dalam bukunya yang berjudul Aplikasi
Mikrokontroler sebagai pengendali peralatan elektronik via Line Telepon
menjelaskan bahwa :
18
“ Mikrokontroler adalah Central Processing Unit (CPU) yang disertai
dengan memori serta input / output dan dibuat dalam bentuk Chip “
(Suhata, 2005:07)
Gambar 2.3.Arsitektur Mikrokontroler MCS-51
(Sumber : http://mytutorialcafe.com/mikrokontroller%20organisasi%20memori.htm)
2. Memori
Memori berfungsi untuk menyimpan suatu infomasi, baik berupa
program maupun data. Makin besar kapasitas memori yang dimiliki suatu
sistem, maka kemampuannya untuk menangani suatu program yang lebih
kompleks dan mengolah data akan lebih baik.
Dalam dunia mikrokontroler dikenal dua tipe memori, yaitu data
memory dan program memory. Pemisahan ini dimaksudkan untuk
mempercepat proses kerja mikrokontroler.
a. Data Memory
Data Memory befungsi untuk menyimpan data, terbagi 2 berdasarkan
lokasinya, yaitu Internal Data Memory dan External Data Memory.
Internal Data Memory yang dimiliki MCS-51 sebesar 128 bytes ditambah
19
dengan SFR sehingga berjumlah 256 bytes. Sedangkan External Data
Memory berupa IC RAM atau ROM yang dapat ditambahkan hingga 64 KB.
Internal data memori terdiri atas: Register Banks, General Purpose
RAM, Bit-addressable RAM dan Special Function Registers (SFR). Register
Banks digunakan sebagai alamat untuk menampung delapan register selebar 1
bytes, yang diberi nama R0-R7. General Purpose RAM merupakan ruang
bebas untuk menyimpan Variabel atau Inisialisasi Stack Pointer, yang hanya
dapat diakses per bytes.
Bit-addressable RAM memiliki fungsi yang sama dengan General
Purpose RAM, tetapi dapat diakses per bytes maupun per bit. Special
Function Register (SFR) merupakan sejumlah register khusus yang
mencakup: Alamat Port, Accumulator, Register B, Timer dan sejumlah
Register Control.
b. Program Memory
Program Memory berfungsi menyimpan kode program. Kapasitas
Internal Program Memory bervariasi, untuk 89C2051 memiliki kapasitas
2KB. Namun jika diperlukan dapat ditambahkan IC RAM atau ROM sebagai
External Data Memory, yang dapat mencapai 64 KB.
20
3. Pin-pin Mikrokontroler AT89S51
Gambar 2.4 Pin mikrokontroler AT89S51
http://rezutopia.wordpress.com/2009/03/27/mikrokontroler-at89s51/
Susunan pin-pin mikrokontroler AT89S51 diperlihatkan pada gambar
diatas. Penjelasan masing-masing pin adalah sebagai berikut :
1) Pin 1 sampai 8 (Port 1) merupakan port masukan dan keluaran dua
arah berjumlah 8 bit dengan rangkaian pull-up internal dan dapat
juga berfungsi sebagai input dengan memberikan logika 1. Pada
port ini terdapat pin MISO, MOSI dan SCK yang digunakan saat
pemrograman dan verifikasi data.
2) Pin 9 merupakan pin untuk rangkaian reset yang digunakan untuk
mengembalikan kondisi awal mikrokontroler.
3) Pin 10 sampai 17 (Port 3) merupakan saluran I/O 8 bit dua arah
dengan internal pull-up yang memiliki fungsi pengganti. Bila
fungsi pengganti tidak difungsikan, port ini dapat digunakan
21
sebagai port paralel 8 bit serba guna. Adapun fungsi pengganti
pada port ini diperlihatkan seperti tabel di bawah ini :
Tabel 2.3. Fungsi Pengganti / Fungsi Alternatif Saluran I/O 8 bit Dua Arah
BIT NAMA FUNGSI ALTERNATIF P3.0 RXD Serial Input Port P3.1 TXD Serial Output Port P3.2 INT 0 Eksternal Interupt 0 P3.3 INT 1 Eksternal Interupt 1 P3.4 T0 Timer 0 External Input P3.5 T1 Timer 1 External Input P3.6 WR Eksternal data memori write strobe P3.7 RD Eksternal data memori read strobe
4) Pin 19 (XTAL1) masukan untuk penguat membalik osilator dan
masukan bagi rangkaian operasi detak internal.
5) Pin 18 (XTAL 2) keluaran dari penguat membalik osilator.
6) Pin 20 merupakan ground catu daya mikrokontroler.
7) Pin 21 – 28 merupakan saluran masukan dan keluaran yang
dinamakan sebagai port 2. Pin dapat digunakan tanpa tergantung
dengan pin lainnya.
8) Pin 29 merupakan pin yang berfungsi pada saat mengeksekusi
program yang terletak pada memori eksternal. Pin ini dinamakan
pin PSEN.
9) Pin 30 (ALE/PROG) merupakan penahan alamat memori eksternal
selama mengakses memori eksternal. Pin ini juga berfungsi sebagai
pulsa/sinyal input pemrograman selama proses pemrograman.
10) Pin 31 (EA) merupakan sinyal kontrol untuk pembacaan memori
program.
22
11) Pin 32 – 39 merupakan terminal I/O pada mikrokontroler dan
disebut sebagai port.
12) Pin 40 merupakan pin tegangan power supply 4-5 VDC.
Gambar 2.5. Diagram Blok Mikrokontroler AT89S51
(Datasheet AT89S51, 2010)
23
D. Perangkat Lunak Yang Digunkan
1. Borland Delphi 7.0
Bahasa pemograman Borland Delphi 7 adalah paket bahasa
pemograman yang bekerja dalam sistem operasi windows. Delphi
merupakan suatu bahasa pemrograman visual dan merupakan bahasa
pemrograman yang berorientasi obyek.
2. Microsoft Access 2003
Merupakan sebuah pogram aplikasi basis data komputer relasional
(RDBMS / Relational Database Management System) yang ditujukan
untuk kalangan rumahan dan perusahaan kecil hingga menengah.
Microsoft Access merupakan anggota dari Microsoft Office sedangkan
24
Microsoft Access menggunakan basis data Microsoft Jet Database Engine
dan juga menggunakan tampilan sehingga memudahkan pengguna.
a. Kelebihan
1) Beberapa pengembang aplikasi professional menggunakan
Microsoft Access untuk mengembangkan aplikasi secara cepat atau
yang sering disebut dengan Rapid Application Development / RAD
2) Tool khususnya untuk pembuatan program yang lebih besar dan
aplikasi yang berdiri sendiri untuk para salesman.
3) Dilihat dari segi perspektif programmer keunggulan Microsoft
Acces adalah kompatibilitasnya dengan bahasa pemrograman
Structured Query Language ( SQL ).
4) Microsoft Access mengizinkan pengembangan yang relatif cepat
karena semua tabel basis data, kueri, form, dan report disimpan di
dalam berkas basis data miliknya. Misalnya untuk membuat query,
5) Microsoft menggunakan Query Design Grid, sebuah program
berbasis grafis yang mengizinkan para penggunanya untuk
membuat query tanpa harus mengetahui bahasa SQL nya.
25
BAB III
PERANCANGAN SISTEM DAN IMPLEMENTASI
A. Analisa Sistem Dan Perancangan
1. Analisa Sistem Berjalan
Berikut adalah Sistem Analisa Berjalan :
Keterangan :
1. Pasien datang dan mendaftarkan diri untuk memeriksa di dokter
sesuai dokter yang di inginkan pasien.
2. Petugas akan meminta pasien untuk menunggu, dan memanggil
pasien untuk periksa/konsultasi di dokter bersangkutan.
3. Pasien datang ke dokter setelah dipanggil oleh petugas.
Berdasarkan prosedur kerja yang berjalan saat ini maka perlu
direncanakan untuk membuat suatu simulasi sistem pengambilan dan
pemanggilan nomor antrian yang lebih baik, sebab berdasarkan
pengamatan proses sistem antrian yang terjadi, pemanggilan pasien
masih dilakukan secara manual. Berikut proses yang akan diubah adalah
sebagai berikut :
Gambar 3.1 Bagan Alir Sistem Berjalan
26
1. Pasien datang dan mendaftarkan diri untuk memeriksa di dokter
sesuai dokter yang di inginkan pasien.
2. Petugas akan mendaftarkan dan mencetak nomor antrian. Pasien akan
menungu sesuai nomor antrian di display nomor.
3. Pasien datang ke dokter bersangkutan setelah nomor antrian
dipanggil dan ditunjukan oleh display nomor.
2. Analisa Kebutuhan
Pada pendekatan simulasi, untuk menyelesaikan persoalan
sistem antrian akan lebih mudah dilakukan bila dimulai dengan
membangun model percobaan yang berupa prototipe dari suatu sistem
antrian. Selanjutnya untuk melakukannya perlu memperhatikan tiga
unsur penting dalam pemodelan simulasi, yaitu Sistem, Entities, dan
Attributes.
a. Sistem yang akan digunakan yaitu berupa system antrian. Prototype
ini dbuat khusus untuk mengatur antrian agar dapat berjalan secara
tertib.
b. Entities yang dibutuhkan dalam antrian yaitu petugas operator, loket
antrian dan prasarana pendukung. Protipe antrian ini diharapkan
mampu memberikan kemudahan petugas operator dalam
memberikan pelayanan antrian dan orang yang mengantri tidak
menunggu terlalu lama.
27
c. Attributes berupa prasarana pendukung yang digunakan yaitu
komputer sebagai sarana kontrol, loket antrian, alat cetak nomor
antrian, suara pemanggil nomor antrian dan tampilan display nomor
antrian. Protipe ini harus fleksibel sehingga dalam pelaksanaan
pengoperasian sesuai dengan system antrian berdasarkan asas FIFO
= First-In, First-Out dan LIFO = Last-In, Last-Out.
Dalam Simulasi Sistem Antrian ini menggunakan
mikrokontroler AT89S51 adalah IC (Integrated Circuit) AT89S51
sebagai menampilkan angka hasil di 7 segment dari pemrosesan data di
mikrokontroler yang diperoleh dari PC.
Keterangan Prinsip Kerja pada Diagram Block :
a. Power supply merupakan catu daya untuk mikrokontroler AT89S51.
b. IC MAX232 ini berguna kalau anda mau membuat komunikasi data
antara komputer dengan mikrokontroler.
c. PC ( Personal Computer ) digunakan sebagai interface sistem
antrian. Komputer bertugas mengirimkan data ke Mikrokontroler.
Gambar 3.2 Diagram Block Rangkaian Sistem Antrian dengan AT89S51
28
d. Rangkaian mikrokontroler menggunakan IC AT89S51, merupakan
alat pengontrol input dan output yang terpasang pada Rangkaian IC
mikrokontroller.
e. 7 Segment 2 Digit bertugas untuk menampilkan angka hasil dari
pemrosesan data di mikrokontroler yang diperoleh dari PC.
3. Spesifikasi Perangkat Keras Dan Perangkat Lunak
a. Spesifikasi Perangkat Keras
Dalam simulasi sistem pengambilan dan pemanggilan
nomor antrian pada dokter praktek ini menggunakan komputer dan
mikrokontroler sebagai penampilan nomor antrian. Berikut ini
merupakan spesifikasi 2 komponen tersebut :
1) Power Supply :
a) Trafo( 220V - 12V AC)
b) Dioda Bridge ( 4 buah dioda 1N4001 )
c) Capacitor 1000uF / 16V
d) IC regulator 7805
e) Adaptor 100-240 VAC, 50-60 HZ
2) Mikrokontroler AT89S51 :
a) IC AT89S51(mikrokontroler 8 bit dari ATMEL) 1 unit
b) Kristal (XTAL) 11.0592 MHz 1 unit
c) Resistor array 1 kOhm (isi 8) 1 unit
d) Capacitor 33pF 2 unit
e) capacitor 10uF & resistor 10 kOhm
29
3) 7 segment :
a) 7 segment common katoda 8 unit
b) IC 4511 (BCD to 7segment) 8 unit
4) Personal Komputer ( PC ) :
a) Menggunakan Processor Intel Dual Core
b) Memori 2 Gigabyte (minimal 128 Megabyte)
c) Monitor
d) Harddisk (minimal 20 Gigabyte)
e) Serial Port COM & LPT
f) Power Suply
5) Komunikasi dengan PC
a) Konektor DB9 1 unit
b) IC MAX232
c) 4 buah capacitor 1uF
d) Kabel Serial Port COM
6) Printer Dot Matrix
b. Spesifikasi Perangkat Lunak
Sistem operasi yang digunakan adalam Microsoft Windows
Xp SP3, sistem Antrian dibuat menggunakan Bahasa Pemograman
Borland Delphi 7 dan Database Microsoft Access
30
4. Analisa Diagram Alur Kerja Rangkaian Dalam Simulasi
Dalam Simulasi Sistem Pengambilan dan Pemanggilan Nomor
Antrian akan digambarkan dan dijelaskan diagram alur flowchart untuk
proses mekanisme antrian.
Panggil dan Display Nomor Antrian Yang
Belum Dipanggil
Simpan Data Pasien di Database
Daftar PasienSTART
Ada Nomor Pasien yang belum dipanggil
END
Ya
Cetak Kwitansi
Simpan Status Pemanggilan Nomor
Cek Status Pemanggilan Nomor
Panggil dan Display Nomor Antrian
Selanjutnya
Cek Pasien
Validasi NomorKonsultasi Dokter
Tidak
Ya
Tidak
Diagram alir yang pada gambar 3.3 merupakan proses pada
simulasi. Diagram alir ini menjelaskan bahwa pasien akan datang dan
menerima nomor antrian. Sistem akan melakukan proses output berupa
suara pemanggilan nomor urut yang telah dicetak melalui speaker dan
Gambar 3.3 Flowchart Simulasi Sistem Pengambilan dan Pemanggilan Nomor Antrian
31
tampilan nomor pada display rangkaian seven segment yang
dihubungkan melalui port parallel.
5. Perancangan Proses dan Database
a. Diagram Alur Data (DAD)
1) Identifikasi Data/Informasi, Tujuan serta Sumber
Data/Informasi.
Berikut ini adalah tabel identifikasi data/informasi,
tujuan serta sumber data sistem informasi:
Tabel 3.1 Identifikasi Kesatuan Luar
Kesatuan Luar Input Output
Petugas - Daftar Shift
Dokter - Data Dokter
Pasien - Mendaftar - Cetak Nomor Antrian
2) Diagram Konteks
Gambar 3.4 Diagram Konteks
32
3) Diagram Berjenjang
4) Diagram Overview
a) Diagram Overview Level 0
Gambar 3.5 Diagram Berjenjang
Gambar 3.6 Diagram Overview Lv. 0
33
b. Entity Relationship Diagram
c. Kodefikasi
Untuk mempermudah pengelompokkan pengolahan data dan
laporan, maka perlu diberikan kode kepada setiap key pada setiap
file.
Pengkodean dilakukan untuk field-field di bawah ini :
1) No_Shift pada file Shift.
No_Shift terdiri dari 1 digit.
Bentuk :
x a
Keterangan :
a) Kode Nomor Shift ( Shift 1 dan Shift 2 jika ada 2
shift).
Contoh : 1
Gambar 3.7 Entity Relationship Diagram
34
2) No_Dokter pada file Dokter.
No_Dokter terdiri 1 digit.
Bentuk :
x a
Keterangan :
a) Kode Nomor Dokter.
Contoh : 1
3) Antrian pada file Pasien
No_Dokter terdiri 2 digit.
Bentuk :
xx a
Keterangan :
a) Kode Nomor Antrian.
Contoh : 01
35
6. Perancangan Perangkat Keras (Hardware)
a. Power Supply ( tegangan listrik sebagai sumber daya )
Power Suplay ini mengkonversi tegangan 220V AC dari
PLN menjadi 5V DC yang bisa digunakan oleh rangkaian display
tersebut, namun karena kurang praktis, maka sistem diganti dengan
adaptor switching 12V DC, jadi sebenarnya sebagian rangkaian ini
tidak ada di alat. Yang ada hanya IC regulator 7805 yang bertugas
mengkonversi tegangan 12V DC menjadi 5V DC.
b. Komunikasi dengan PC
Komunikasi antara PC dan Mikrokontroler ini penting
karena bagian ini mengkonversi dan meneruskan data serial dari PC-
mikrokontroler dan sebaliknya. Karena mikrokontroler
mengeluarkan dan menerima data serial dengan level tegangan
Gambar 3.8 Skema Power Suply
Gambar 3.9 Skema Komunikasi PC dan Mikrokontroler
36
5V/0V, sedangkan PC menerima dan mengirim data serial dengan
level tegangan +12V/-12V, maka dibutuhkan bagian ini untuk
konversi tersebut.
c. Rangkaian mikrokontroler AT89S51
Pada sistem minimum Mikrokontroler AT89S51,
mikrokontroler AT89S51 sebagai komponen utama.
d. 7 ( Seven ) Segmen Display
Seven Segment merupakan gabungan dari 7 buah LED
(Light Emitting Diode) yang dirangkaikan membentuk suatu
tampilan angka. Seven Segment LED Display merupakan salah satu
bagian dari simulasi sistem pengambilan dan pemanggilan nomor
antrian yang dapat digunakan untuk menampilkan display angka dari
program yang dibuat yang dikirim melalui modul paralel.
Gambar 3.10 Skema Mikrokontroler AT89S51
37
Setelah merancang rangkaian rangkaian input-output, maka
rangkaian digabung menjadi satu rangkaian AT89S51. Sehingga dalam
rangkaian terlihat jelas skematik untuk Perangkat Keras Simulasi Sistem
Pengambilan dan Pemanggilan Nomor Antrian.
Gambar 3.11 Skema Seven Segment
38
Gambar 3.12 Skematik Perangkat Keras Simulasi Sistem Pengambilan dan Pemanggilan Nomor Antrian
39
7. Perancangan Perangkat Lunak ( Software )
Perancangan system komputer (tampilan system pada pc) :
a. Perancangan Form Utama
Sistem Pengambilan Dan Pemanggilan Nomor AntrianSistem Pengambilan Dan Pemanggilan Nomor Antrian
00Dokter 1
Shift : 1
Masuk
A p o t i k
M AT AHA RI4 Januari 2011R A B U
09:56:42
Daftar / Print
00Dokter 2
Masuk
Daftar / Print
00Dokter 3
Masuk
Daftar / Print
00Dokter 4
Masuk
Daftar / Print
Sistem Antrian Apotik Matahari
Setting Shift
Selesai Selesai Selesai Selesai
Setting Dokter
b. Perancangan Form Setting Shift
ShiftShift
Setting Shift
Jam MulaiNo Shift Jam Selesai Tambah
Ubah
Hapus
Simpan Batal
|< < > >| C
No Shift
00:00Jam Mulai
00:00Jam Selesai
Sistem Antrian
Gambar 3.13 Perancangan Form Menu Utama
Gambar 3.14 Perancangan Form Setting Shift
40
c. Perancangan Pengolahan Data Dokter
d. Perancangan Output Nomor Antrian (Print)
Gambar 3.16 Perancangan Ouput Nomor Antrian
Gambar 3.15 Perancangan Pengolahan Data Dokter
41
B. Implementasi
Berikut penerapan rancangan – rancangan form ke dalam program dengan
menggunakan bahasa pemograman Borland Delphi 7 :
1. Implementasi Form Menu Utama
2. Implementasi Form Setting Shift
Gambar 3.17 Form Menu Utama
Gambar 3.18 Form Setting Shift
42
3. Implementasi Form Pengolahan Data Dokter
4. Implementasi Nomor Antrian
Apotik Matahari Nomor Urut :
01
Dokter Gunawan
07/01/2011; 01:24:34
Gambar 3.20 Nomor Antrian
Gambar 3.19 Form Pengolahan Data Dokter
43
BAB IV
HASIL DAN PEMBAHASAN
A. Hasil Penelitian dan Pembahasan
1. Tampilan Awal Form Utama
Pada dasarnya Simulasi Sistem pengambilan dan pemanggilan
Nomor Antrian ini merupakan sistem yang bekerja dengan bantuan
Operator/Petugas untuk menentukan Dokter yang akan digunakan untuk
layanan antrian. Kemampuan komputer sebagai sarana kontrol juga
digunakan untuk menghasilkan perintah mencetak urutan nomor dan
mengendalikan tampilan nomor seven segment melalui port paralel DB-
25, agar mengeluarkan nomor sesuai dengan pemanggilan nomor antrian
Gambar 4.1 Form Menu Utama
44
Form Utama ini merupakan Form dimana tempat terjadinya
proses sistem antrian. Dalam Form Utama ini menampilkan 3 bagian dari
proses sistem. Yaitu, penetuan jam shift operator atau petugas,
pengolahan data dokter yang meliputi penambahan, ubah, hapus dan
mensetting suara yang di gunakan pemanggilan nama dokter.
2. Cara Penggunaan dan Kerja Program
a. Form Setting Shift
Form ini berfungsi untuk mengatur jam kerja shift operator /
petugas dimana memiliki jumlah shift maksimal 2 Shift. Pada form
ini pengguna dapat mengatur jam kerja shift pertama maupun kedua
jika sistem di kerjakan 2 shift, dengan cara mengubah jam shift dan
tekan button simpan.
Gambar 4.2 Form Setting Shift
Gambar 4.3 Settingan Shift berhasil
45
Berikut penggalan listing program dari form setting shift :
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction); begin form1.timer1.Enabled:=true; form1.timer2.Enabled:=true; form1.timer2.Enabled:=true;
end; procedure TForm2.FormCreate(Sender: TObject); begin jam1_mulai.text:=copy(form1.adotable1.FieldByName('Shi
ft1').Value,1,2); menit1_mulai.text:=copy(form1.adotable1.FieldByName('S
hift1').Value,4,2); jam2_mulai.text:=copy(form1.adotable1.FieldByName('Shi
ft2').Value,1,2); menit2_mulai.text:=copy(form1.adotable1.FieldByName('S
hift2').Value,4,2); jam1_selesai.text:=copy(form1.adotable1.FieldByName('S
hift1').Value,7,2); menit1_selesai.text:=copy(form1.adotable1.FieldByName(
'Shift1').Value,10,2); jam2_selesai.text:=copy(form1.adotable1.FieldByName('S
hift2').Value,7,2); menit2_selesai.text:=copy(form1.adotable1.FieldByName(
'Shift2').Value,10,2); end; procedure TForm2.SimpanClick(Sender: TObject); var s: string; begin s:=jam1_mulai.text + ':'+ menit1_mulai.Text + '-' +
jam1_selesai.Text + ':' + menit1_selesai.Text ; form1.adotable1.edit; form1.adotable1.FieldByName('Shift1').Value:=s; s:=jam2_mulai.Text + ':' + menit2_mulai.Text + '-' +
jam2_selesai.Text + ':' + menit2_selesai.text ; form1.adotable1.FieldByName('Shift2').Value:=s; form1.adotable1.post; MessageBox(0, 'Setting Shift Baru Tersimpan',
'Setting Shift', +mb_OK +mb_ICONINFORMATION);
end; end.
46
b. Form Pengolahan Data Dokter
Form ini berfungsi untuk mengolah (mengimput / mengubah /
menghapus) data dokter, dengan memasukan nomor dokter, nama
dokter, shift dokter serta spesialis yang di emban oleh dokter
tersebut.
Berikut penggalan listing program dari pengolahan data dokter
(mengimput / mengubah / menghapus) :
//btn tambah procedure TForm3.BitBtn1Click(Sender: TObject); begin Bersih;
Gambar 4.4 Form Setting Dokter
Gambar 4.5 Menambah/Mengubah Data Dokter
47
StatusInput(true); StatusControl(false); Edit1.SetFocus; status:='tambah'; end; //btn ubah procedure TForm3.BitBtn2Click(Sender: TObject); begin with Form1.ADOQuery1 do begin if IsEmpty then begin MessageDlg('Tidak Data Ada Yang Dapat
Diubah'+#13+'Masukan Data Terlebih Dahulu',mtInformation,[mbOK],0);
Exit; end; end; StatusInput(true); StatusControl(false); Edit1.SetFocus; status:='ubah'; end; //btn hapus procedure TForm3.BitBtn3Click(Sender: TObject); begin with Form1.ADOQuery1 do begin if IsEmpty then begin MessageDlg('Tidak Ada Data Yang Akan
Dihapus',mtError,[mbOK],0); Exit; end; if MessageDlg('Data Ini Ingin Dihapus
?',mtConfirmation,[mbYes,mbNo],0) = mrno then
exit; with Form1.ADOQuery2 do begin Close; SQL.Clear; SQL.Add('delete from dokter where no_dokter =:a
'); Parameters.ParamValues['a']:=Edit1.Text; ExecSQL; end; Segar; Bersih; end; MessageDlg('Data Berhasil
Terhapus',mtInformation,[mbOK],0); end; //btn simpan procedure TForm3.BitBtn4Click(Sender: TObject); begin
48
if (Edit1.Text='') or (Edit2.Text='') or (Edit3.Text='') then
begin ShowMessage('Data belum lengkap!'+#13+'Lengkapi
data terlebih dahulu!'); exit; end; if status='tambah' then begin with Form1.ADOQuery2 do begin Close; SQL.Clear; sql.Add('select * from dokter where
no_dokter=:a'); Parameters.ParamValues['a']:=Edit1.Text; open; if not isempty then begin showmessage('Data Dokter dengan nomor
'+Edit1.Text+' sudah ada.'); Exit; end else begin Close; SQL.Clear; SQL.Add('insert into Dokter (No_dokter,
Nama_Dokter, Spesialis) values (:a, :b, :c)');
Parameters.ParamValues['a']:=Edit1.Text; Parameters.ParamValues['b']:=Edit2.Text; Parameters.ParamValues['c']:=Edit3.Text; ExecSQL; end; Segar; MessageDlg('Data baru telah
ditambah!',mtInformation,[mbOK],0) end; end else if status='ubah' then begin with Form1.ADOQuery2 do begin Close; SQL.Clear; SQL.Add('update dokter set No_dokter=:a,
Nama_dokter=:b, Spesialis=:c where no_dokter=:d');
Parameters.ParamValues['a']:=Edit1.Text; Parameters.ParamValues['b']:=Edit2.Text; Parameters.ParamValues['c']:=Edit3.Text; Parameters.ParamValues['d']:=temp; ExecSQL; end; Segar;
49
MessageDlg('Data telah dibaharui!',mtInformation,[mbOK],0);
end; end; //btn batal procedure TForm3.BitBtn5Click(Sender: TObject); begin StatusInput(false); StatusControl(true); Bersih; BitBtn2.Enabled:=False; BitBtn3.Enabled:=False; end; end.
Pengguna juga dapat mengatur (merekam) untuk pemanggilan
suara nama dokter yang akan di proses saat sistem antrian
dijalankan.
Berikut penggalan listing program dari pengolahan data dokter
(mengimput / mengubah / menghapus) :
procedure TForm3.BitBtn4Click(Sender: TObject); begin .............................. // program suara StatusInput(false); StatusControl(false); y:=StrToInt(Edit1.Text); case y of 1 : x:= 'dokter1'; 2 : x:= 'dokter2'; 3 : x:= 'dokter3'; 4 : x:= 'dokter4'; 5 : x:= 'dokter5'; 6 : x:= 'dokter6';
Gambar 4.6 Merekam Nama Dokter
50
7 : x:= 'dokter7'; 8 : x:= 'dokter8'; 9 : x:= 'dokter9'; else Edit1.Text:= 'sample'; end; WaveFile.Text := ChangeFileExt(ExtractFilePath
(Application.ExeName) + SaveDialog.FileName, x+'.' + SaveDialog.DefaultExt);
btnSelectFile.Enabled:=True; Format.Enabled:=True; WaveFile.Enabled:=True; btnRecord.Enabled := True; BtnSelesai.Enabled := True; btnPlay.Enabled := FileExists(WaveFile.Text); end; procedure TForm3.FormCreate(Sender: TObject); var pcm: TPCMFormat; WaveFormatEx: TWaveFormatEx; begin for pcm:=Succ(Low(TPCMFormat))toHigh(TPCMFormat)do begin SetPCMAudioFormatS(@WaveFormatEx, pcm); Format.Items.Append(GetWaveAudioFormat
(@WaveFormatEx)); end; Format.ItemIndex := Ord(StockAudioRecorder.PCMFormat)
- 1; end; procedure TForm3.FormatChange(Sender: TObject); begin StockAudioRecorder.PCMFormat := TPCMFormat
(Format.ItemIndex + 1);
end; procedure TForm3.btnSelectFileClick(Sender: TObject); begin if SaveDialog.Execute then begin WaveFile.Text := SaveDialog.FileName; btnRecord.Enabled := True; btnPlay.Enabled := FileExists(SaveDialog.FileName); end; end; procedure TForm3.btnRecordClick(Sender: TObject); begin StockAudioRecorder.RecordToFile(WaveFile.Text); end; procedure TForm3.btnPlayClick(Sender: TObject); begin
51
StockAudioPlayer.PlayFile(WaveFile.Text); end; procedure TForm3.btnPauseClick(Sender: TObject); begin if StockAudioPlayer.Active then StockAudioPlayer.Paused := not
StockAudioPlayer.Paused else StockAudioRecorder.Paused := not
StockAudioRecorder.Paused;
end; procedure TForm3.btnStopClick(Sender: TObject); begin if StockAudioPlayer.Active then StockAudioPlayer.Active := False else StockAudioRecorder.Active := False; end; procedure TForm3.StockAudioPlayerLevel(Sender: TObject; Level: Integer); begin Position.Caption := MS2Str(StockAudioPlayer.Position,
msAh); AudioLevel.Position := Level; end; procedure TForm3.StockAudioRecorderLevel(Sender: TObject; Level: Integer); begin Position.Caption:=MS2Str(StockAudioRecorder.Position,
msAh); AudioLevel.Position := Level; end; end.
52
c. Form Utama
Dalam Form ini proses sistem antrian akan bekerja, pada saat
operator menekan button daftar/print maka sistem akan
mendaftarkan nomor antrian pasien dan mencetaknya. Operator akan
mendaftarkan dan mencetak nomor sesuai pasien yang datang dan
berobat di setiap dokter yang sudah di siapkan. Dan di dalam form
ini akan berlangsung proses sistem antrian sesuai proses FIFO dan
LIFO. Dimana proses FIFO ialah pasien yang datang itu yang berhak
masuk duluan untuk memeriksa / konsultasi pada dokter dan selesai
terlebih dahulu. Dan proses LIFO ialah di saat pasien tidak berada di
tempat maka nomor pasien tersebut akan di lewati dan akan di
panggil kembali pada saat sistem melakukan pemanggilan ulang.
Berikut penggalan listing program dari form utama :
procedure cek_shift; var v,w,x: integer;
Gambar 4.7 Proses Sistem Antrian
53
s: string; begin s:= form1.adotable1.FieldByName('Shift1').Value; v:= strtoint(copy(s,1,2)); w:= strtoint(copy(s,7,2)); x:= strtoint(copy(form1.Jam.caption,1,2)); if (x>v) and (x<w) then begin form1.shift.Caption:='1'; end else if x=v then begin v:= strtoint(copy(s,4,2)); x:= strtoint(copy(form1.Jam.caption,4,2)); if x>=v then form1.shift.Caption:='1'; end else if x=w then begin w:= strtoint(copy(s,10,2)); x:= strtoint(copy(form1.Jam.caption,4,2)); if x<=w then form1.shift.Caption:='1'; end; s:= form1.adotable1.FieldByName('Shift2').Value; v:= strtoint(copy(s,1,2)); w:= strtoint(copy(s,7,2)); x:= strtoint(copy(form1.Jam.caption,1,2)); if (x>v) and (x<w) then begin form1.shift.Caption:='2'; end else if x=v then begin v:= strtoint(copy(s,4,2)); x:= strtoint(copy(form1.Jam.caption,4,2)); if x>=v then form1.shift.Caption:='2'; end else if x=w then begin w:= strtoint(copy(s,10,2)); x:= strtoint(copy(form1.Jam.caption,4,2)); if x<=w then form1.shift.Caption:='2'; end; form1.adotable2.Active:=false; if form1.shift.caption='1' then
form1.adotable2.TableName:='Shift1' else form1.adotable2.TableName:='Shift2';
form1.adotable2.Active :=true; end; procedure TForm1.FormCreate(Sender: TObject); var s: string; begin
54
waktu.caption:=FormatDateTime('dd-mmmm-yyyy',Date); Jam.Caption:=timetostr(time); Hari.Caption:=FormatDateTime('dddd',Date); comport1.Open; comport1.connected:=true; adotable2.first; if adotable2.FieldByName('Antrian').value<>null then begin s:= copy(waktu.caption,1,2); if s <> copy (adotable2.FieldByName
('Tanggal').value, 1,2) then begin adotable2.First; while not adotable2.Recordset.EOF do begin adotable2.edit; adotable2.Delete; end; adotable2.edit; adotable2.Delete; adotable2.Active:=false; adotable2.TableName:='Shift2'; adotable2.Active :=true; adotable2.First; while not adotable2.Recordset.EOF do begin adotable2.edit; adotable2.Delete; end; adotable2.edit; adotable2.Delete; end; end; cek_shift; adotable2.first; nomor[1]:=0; nomor[2]:=0; nomor[3]:=0; nomor[4]:=0; buf[1]:=0; buf[2]:=0; buf[3]:=0; buf[4]:=0; while not adotable2.Recordset.EOF do begin if adotable2.FieldByName('No_Dokter').value=1 then begin nomor[1]:=adotable2.FieldByName('Antrian').value; if adotable2.FieldByName('Status').value=null
then buf[1]:=buf[1]+1; if adotable2.FieldByName('Status').value='A' then begin skip[1]:=buf[1]; total[1]:=buf[1]+1; end; end;
55
if adotable2.FieldByName('No_Dokter').value=2 then begin nomor[2]:=adotable2.FieldByName('Antrian').value; end; if adotable2.FieldByName('No_Dokter').value=3 then begin nomor[3]:=adotable2.FieldByName('Antrian').value; end; if adotable2.FieldByName('No_Dokter').value=4 then begin nomor[4]:=adotable2.FieldByName('Antrian').value; end; adotable2.next; end; if nomor[1]<>0 then begin adotable2.first; while not adotable2.Recordset.EOF do begin if adotable2.FieldByName('Status').value = '1'
then begin status[1]:=1; mulai1.Enabled:=false; selesai1.Enabled:=true; nomor1.Caption:= inttostr
(adotable2.FieldByName ('Antrian').value);
if length(nomor1.Caption)=1 then nomor1.Caption := '0'+nomor1.Caption;
end else if adotable2.FieldByName('Status').value =
'A' then begin panggil[1]:=1; nomor1.Caption:= inttostr(adotable2.FieldByName
('Antrian').value); if length(nomor1.Caption)=1 then nomor1.Caption
:= '0'+nomor1.Caption; end; if adotable2.FieldByName('Status').value = '2'
then begin status[2]:=1; mulai2.Enabled:=false; selesai2.Enabled:=true; nomor2.Caption:= inttostr(adotable2.FieldByName
('Antrian').value); if length(nomor2.Caption)=1 then nomor2.Caption
:= '0'+nomor2.Caption; end else if adotable2.FieldByName('Status').value =
'B' then begin panggil[2]:=1;
56
nomor2.Caption:= inttostr(adotable2.FieldByName ('Antrian').value);
if length(nomor2.Caption)=1 then nomor2.Caption := '0'+nomor2.Caption;
end; if adotable2.FieldByName('Status').value = '3'
then begin status[3]:=1; mulai3.Enabled:=false; selesai3.Enabled:=true; nomor3.Caption:= inttostr(adotable2.FieldByName
('Antrian').value); if length(nomor3.Caption)=1 then nomor3.Caption
:= '0'+nomor3.Caption; end else if adotable2.FieldByName('Status').value =
'C' then begin panggil[3]:=1; nomor3.Caption:= inttostr(adotable2.FieldByName
('Antrian').value); if length(nomor3.Caption)=1 then nomor3.Caption
:= '0'+nomor3.Caption; end; if adotable2.FieldByName('Status').value = '4'
then begin status[4]:=1; mulai4.Enabled:=false; selesai4.Enabled:=true; nomor4.Caption:= inttostr(adotable2.FieldByName
('Antrian').value); if length(nomor4.Caption)=1 then nomor4.Caption
:= '0'+nomor4.Caption; end else if adotable2.FieldByName('Status').value =
'D' then begin panggil[4]:=1; nomor4.Caption:= inttostr(adotable2.FieldByName
('Antrian').value); if length(nomor4.Caption)=1 then nomor4.Caption
:= '0'+nomor4.Caption; end; adotable2.next; end; end; end; //Proses FIFO dan LIFO procedure PLAY1; begin form1.PRINT1.Enabled:=false; sndPlaySound('nomor.wav', SND_NODEFAULT); suarax := copy(form1.nomor1.Caption,1,1);
57
if suarax='0' then begin suarax := copy(form1.nomor1.Caption,2,1); suarax := suara[strtoint(suarax)]+'.wav'; sndPlaySound(PChar(suarax), SND_NODEFAULT); end else begin suarax := copy(form1.nomor1.Caption,1,1); if suarax<>'1' then begin suarax := suara[strtoint(suarax)]+'.wav'; sndPlaySound(PChar(suarax), SND_NODEFAULT); sndPlaySound('puluh.wav', SND_NODEFAULT); suarax := copy(form1.nomor1.Caption,2,1); if suarax<>'0' then begin suarax := suara[strtoint(suarax)]+'.wav'; sndPlaySound(PChar(suarax), SND_NODEFAULT); end; end else begin suarax := copy(form1.nomor1.Caption,2,1); if suarax='1' then begin sndPlaySound('se.wav', SND_NODEFAULT); sndPlaySound('belas.wav', SND_NODEFAULT); end else if suarax='0' then begin sndPlaySound('se.wav', SND_NODEFAULT); sndPlaySound('puluh.wav', SND_NODEFAULT); end else begin suarax := suara[strtoint(suarax)]+'.wav'; sndPlaySound(PChar(suarax), SND_NODEFAULT); sndPlaySound('belas.wav', SND_NODEFAULT); end; end; end; sndPlaySound('dokter.wav', SND_NODEFAULT); sndPlaySound('dokter1.wav', SND_NODEFAULT); form1.PRINT1.Enabled:=true; end; .............................. PLAY2/ PLAY3/ PLAY4 procedure TForm1.Timer1Timer(Sender: TObject); begin if status[1]=0 then begin if panggil[1]=0 then begin adotable2.First; index:=0;
58
while not adotable2.Recordset.EOF do begin if (adotable2.FieldByName('Antrian').value <>
null) and (adotable2.FieldByName ('Status').value = null) then
begin if adotable2.FieldByName('No_Dokter').value=1
then begin if index = skip[1] then begin nomor1.Caption:=inttostr(adotable2.
FieldByName('Antrian').value); if length(nomor1.Caption)=1 then
nomor1.Caption := '0'+nomor1.Caption;
nomor1.Refresh ; comport1.WriteStr('*1'+nomor1.Caption); adotable2.edit; adotable2.FieldByName('Status').value:='A'; adotable2.post; panggil[1]:=1; PLAY1; end; index:=index+1; end; end; adotable2.next; end; if index<>0 then if skip[1]=index then begin skip[1]:=0; total[1]:=total[1]-1; end; end else begin jeda[1]:= jeda[1]+1; if jeda[1]=10 then PLAY1; if jeda[1]=20 then PLAY1; if jeda[1]=30 then PLAY1; if jeda[1]=40 then PLAY1; if jeda[1]=50 then begin panggil[1]:=0; jeda[1]:=0; adotable2.First; while not adotable2.Recordset.EOF do begin if (adotable2.FieldByName('Antrian').value =
strtoint(nomor1.Caption)) and (adotable2. FieldByName ('No_Dokter').value=1) then
begin adotable2.edit; adotable2.FieldByName('Status').value:=null; adotable2.post;
59
adotable2.next; skip[1]:=skip[1]+1; if skip[1]>=total[1] then begin total[1]:=total[1]+1; if total[1]=2 then skip[1]:=1 else
skip[1]:=0; end; nomor1.Caption := '00'; break; end; adotable2.next; end; end; end; end ; ...................... status[2]/ status[3]/ status[4] end; //Proses Cetak Nomor Antrian procedure TForm1.PRINT1Click(Sender: TObject); var x:string; begin nomor[1]:=nomor[1]+1 ; adotable2.Append ; adotable2.FieldByName('Antrian').value:=nomor[1]; adotable2.FieldByName('No_Dokter').value:=1; adotable2.FieldByName('Tanggal').value:=
DateToStr(Date); adotable2.FieldByName('Jam').value:= timetostr(time); adotable2.Post ; richedit1.Clear ; with ADOQuery2 do begin Close; SQL.Clear; sql.Add('select * from dokter where no_dokter=1'); open; if isempty then x:='Dokter 1' else x:=FieldValues['Nama_Dokter']; end; with richEdit1 do begin RichEdit1.paragraph.Alignment:=taCenter; SelStart := GetTextLen; SelAttributes.Size := 10; SelAttributes.Style := [fsUnderline]; SelText := 'Apotik Matahari' + #13#10; SelText := 'Nomor Urut :' + #13#10; SelAttributes.Size := 72; SelAttributes.Style := [fsBold]; if nomor[1]>9 then SelText := inttostr(nomor[1])
+#13#10 else SelText := '0'+inttostr(nomor[1]) +#13#10;
60
SelAttributes.Size := 8; SelText := #13#10; SelAttributes.Style := [fsItalic]; SelText := x; SelText := #13#10; SelText := #13#10; SelText := waktu.caption +'; '+ Jam.Caption; end; richedit1.Print('Print'); end; ...................... PRINT2/ PRINT3/ PRINT4 procedure TForm1.Timer2Timer(Sender: TObject); var v,w,x: integer; s: string; cek:string; begin cek:=shift.Caption; waktu.caption:=FormatDateTime('dd mmmm yyyy',Date); Jam.Caption:=timetostr(time); Hari.Caption:=FormatDateTime('dddd',Date); s:= adotable1.FieldByName('Shift1').Value; v:= strtoint(copy(s,1,2)); w:= strtoint(copy(s,7,2)); x:= strtoint(copy(waktu.caption,1,2)); if (x>v) and (x<w) then begin shift.Caption:='1'; end else if x=v then begin v:= strtoint(copy(s,4,2)); x:= strtoint(copy(Jam.caption,4,2)); if x>=v then shift.Caption:='1'; end else if x=w then begin w:= strtoint(copy(s,10,2)); x:= strtoint(copy(Jam.caption,4,2)); if x<=w then shift.Caption:='1'; end; s:= adotable1.FieldByName('Shift2').Value; v:= strtoint(copy(s,1,2)); w:= strtoint(copy(s,7,2)); x:= strtoint(copy(Jam.caption,4,2)); if (x>v) and (x<w) then begin shift.Caption:='2'; end else if x=v then begin v:= strtoint(copy(s,4,2)); x:= strtoint(copy(Jam.caption,4,2));
61
if x>=v then shift.Caption:='2'; end else if x=w then begin w:= strtoint(copy(s,10,2)); x:= strtoint(copy(Jam.caption,4,2)); if x<=w then shift.Caption:='2'; end; if cek <> shift.Caption then begin for x:=1 to 4 do begin nomor[x]:=0; status[x]:=0; panggil[x]:=0; jeda[x]:=0; skip[x]:=0; total[x]:=1; end; nomor1.caption:='00'; nomor2.caption:='00'; nomor3.caption:='00'; nomor4.caption:='00'; mulai1.Enabled:=true; mulai2.Enabled:=true; mulai3.Enabled:=true; mulai4.Enabled:=true; selesai1.Enabled:=false; selesai2.Enabled:=false; selesai3.Enabled:=false; selesai4.Enabled:=false; adotable2.Active :=false; adotable2.TableName:='Shift2'; adotable2.Active :=true; adotable2.First; while not adotable2.Recordset.EOF do begin adotable2.edit; adotable2.Delete; end; adotable2.edit; adotable2.Delete; end; end; procedure TForm1.selesai1Click(Sender: TObject); begin status[1]:=0; mulai1.Enabled:=true; selesai1.Enabled:=false; adotable2.first; while not adotable2.Recordset.EOF do begin
62
if adotable2.FieldByName('Antrian').value = strtoint(nomor1.Caption) then
begin adotable2.edit; adotable2.FieldByName('Status').value:='X'; adotable2.post; break; end; adotable2.Next; end; nomor1.Caption:='00'; panggil[1]:=0; end; ...................... selesai2/ selesai3/ selesai4 procedure TForm1.Mulai1Click(Sender: TObject); begin status[1]:=1; total[1]:=total[1]-1; Mulai1.enabled:=false; selesai1.Enabled:=true; adotable2.First; while not adotable2.Recordset.EOF do begin if adotable2.FieldByName('Antrian').value=strtoint(nomor1.Caption) then begin adotable2.edit; adotable2.FieldByName('Status').value:='1'; adotable2.Post; break; end; adotable2.next; end; end; ...................... Mulai2/ Mulai3/ Mulai4 procedure TForm1.FormShow(Sender: TObject); begin with ADOQuery2 do begin Close; SQL.Clear; sql.Add('select * from dokter where no_dokter
=:a'); Parameters.ParamValues['a']:=1; open; if isempty then begin Dokter1.Caption:='Dokter 1'; Mulai1.Enabled:=False; PRINT1.Enabled:=False; end else begin Dokter1.Caption:=FieldValues['Nama_Dokter'];
63
Mulai1.Enabled:=True; PRINT1.Enabled:=True; end; Close; SQL.Clear; sql.Add('select * from dokter where no_dokter =2'); open; if isempty then begin Dokter2.Caption:='Dokter 2'; Mulai2.Enabled:=False; PRINT2.Enabled:=False; end else begin Dokter2.Caption:=FieldValues['Nama_Dokter']; Mulai2.Enabled:=True; PRINT2.Enabled:=True; end; Close; SQL.Clear; sql.Add('select * from dokter where no_dokter =3'); open; if isempty then begin Dokter3.Caption:='Dokter 3'; Mulai3.Enabled:=False; PRINT3.Enabled:=False; end else begin Dokter3.Caption:=FieldValues['Nama_Dokter']; Mulai3.Enabled:=True; PRINT3.Enabled:=True; end; Close; SQL.Clear; sql.Add('select * from dokter where no_dokter =4'); open; if isempty then begin Dokter4.Caption:='Dokter 4'; Mulai4.Enabled:=False; PRINT4.Enabled:=False; end else begin Dokter4.Caption:=FieldValues['Nama_Dokter']; Mulai4.Enabled:=True; PRINT4.Enabled:=True; end; end; end; end.
64
3. Hasil Uji Port Paralel
Ketika memberi masukan high, maka pada pin paralel akan
mengeluarkan tegangan 5 volt. Simulai ini menggunakan seven segment
sebagai penanda. Bila port itu aktif (high) maka led pada seven segment
tersebut akan menyala. Dalam prosesnya sisteme mengirim data masing2
display setiap 1 detik , alat menerima lewat serial RS-232. Untuk format
data yang dikirim :
*1XX = mengirim data untuk display nomor 1
*2XX = mengirim data untuk display nomor 2
*3XX = mengirim data untuk display nomor 3
*4XX = mengirim data untuk display nomor 4
dimana XX adalah angka yang ditampilkan di masing2 display. Baud rate
yang dipakai adalah 9600 bps. Berikut penggalan listing program yang
digunakan untuk mengkoneksikan komputer dengan alat yang terletak
pada form utama :
procedure TForm1.Timer3Timer(Sender: TObject); begin comport1.WriteStr('*1'+nomor1.Caption); comport1.WriteStr('*2'+nomor2.Caption); comport1.WriteStr('*3'+nomor3.Caption); comport1.WriteStr('*4'+nomor4.Caption); end;
4. Pembahasan
Simulasi sistem pengambilan dan pemanggilan nomor antrian
pada dokter praktek di apotik matahari berbasis Delphi menggunakan 3
jendela visual yaitu Jendela Halaman Utama, Jendela Halaman
Pengaturan Shift dan Jendela Halaman Pengolahan Data Dokter. Pada
65
jendela halaman utama mempunyai empat belas perintah tombol untuk
menampilkan form setting shift, seting dokter dan 4 tombol untuk daftar
dan cetak nomor antrian dan 4 tombol untuk masuk konsultas pada
dokter dan 4 tombol pasien telah selesai konsultasi yang digunakan oleh
operator dan satu tombol perintah keluar dari program simulasi antrian.
Sistem ini terhubung dengan mikrokontroler IC AT89S51 melalui
konektor DB9, yang akan meneruskan data untuk ditampilkan pada 7
segment yang telah tersedia. Dan dari hasil yang telah di uji maka
simulasi sistem pengambilan dan pemanggilan nomor antrian dapat
berjalan dengan baik dengan melihat proses antrian FIFO dan LIFO.
66
BAB V
PENUTUP
A. Kesimpulan
Berdasarkan penelitian yang telah dilakukan dapat disimpulkan sebagai
berikut :
1. Simulasi sistem antrian ini merupakan sebuah bentuk simulasi yang berguna
untuk mengatur jalannya sebuah antrian agar berjalan sebagaimana mestinya
2. Simulasi sistem antrian ini menggunakan Mikrokontroler AT89S51 ialah
sebuah rangkaian simulasi yang menggunakan Seven Segment sebagai alat
untuk menampilkan nomor antrian, dimana untuk menampilkan antrian
tersebut dibutuhkan system antrian yang dikendalikan oleh operator lewat
computer. Cara kerja system antrian ini menggunakan asas FIFO dan LIFO.
3. Kelebihan dari Aplikasi dan Rangkaian Simulasi Antrian ini ialah mampu
melanjutkan ke nomor yang sama pada saat lampu mati.
4. Kekurangan dari Rangkaian Simulasi Antrian yang menggunakan Seven
Segment harus di restart terlebih dahulu sebelum memasuki shift baru.
B. Saran
Adapun masukan-masukan yang dapat diberikan untuk pengembangan
sistem ini ke depan adalah sebagai berikut :
67
1. Agar rangkaian yang digunakan lebih efektif gunakan IC PPI
(Programmable Peripheral Interface) 8255. IC yang dirancang untuk
membuat port input dan output parallel. IC ini mempunyai 24 bit I/O
yang terorganisir menjadi 3 port tiap portnya mempunyai 8 bit. Sehingga
apabila tampilan angka antrian pada rangkaian seven segmen hanya 2
digit, dengan IC PPI dapat ditampilkan lebih dari 2 digit hingga batasan
sampai 6 digit angka antrian.
2. Menambahkan tombol reset pada aplikasi untuk mereset rangkaian pada
saat pergantian shift.
68
DAFTAR PUSTAKA
Devina I. R, 2009, Mikrokontroler AT89S51, http://rezutopia.wordpress.com/2009/03/27/mikrokontroler-at89s51/, diakses tanggal 10 Maret 2010 Freezchas Blog, 2010, Simbol-simbol Data pada DFD, http://freezcha.wordpress.com/2010/02/27/data-flow-diagram-dfd, diakses pada tanggal 6 januari 2011 Kisaran Blog, 2010, Pengertian Sistem – Definisi Sistem, http://kisaranku.blogspot.com/2010/10/pengertian-sistem-lengkap.html, diakses tanggal 6 Januari 2011 My Tutorial Cafe, 2010, Tutorial Mikrokontroler MCS-51 ATMEL ISP, http://mytutorialcafe.com/mikrokontroller%20serial1.htm, diakses tanggal 26 Oktober 2010 Sekedar Berbagi Blog, 2009, Beberapa Pengertian Tentang Data Flow Diagram, http://lavorchid.wordpress.com/2009/03/13/beberapa-pengertian-tentang-data-flow-diagram-dfd/, diakses tanggal 6 Januari 2011 Sutanto, 2009, Teori Simulasi Antrian, http://www.sutanto.staff.uns.ac.id/files/2009/03/zzzzzzzzzzzzz.pdf, diakses pada tanggal 25 Februari 2010 Kakiay J.T, 2004, Dasar Teori Antrian Untuk Kehidupan Nyata, Andi Yogyakarta