P. 1
Simulasi Sistem Pengambilan Dan Pemanggilan Nomor Antrian

Simulasi Sistem Pengambilan Dan Pemanggilan Nomor Antrian

1.0

|Views: 4,678|Likes:
Dipublikasikan oleh Septian Bimantara

More info:

Published by: Septian Bimantara on Nov 26, 2011
Hak Cipta:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

07/25/2013

pdf

text

original

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

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. iv

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, pembaca. Jayapura, Januari 2011 penulis berharap penulisan ini dapat bermanfaat bagi

Penulis

v

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.

DAFTAR ISI
Halaman HALAMAN JUDUL ………………………………………………………….. i LEMBAR PERSETUJUAN …………………………………………………... ii LEMBAR PENGESAHAN …………………………………………………… iii KATA PENGANTAR ….……………………….…………………………….. iv PERSEMBAHAN….. ………………………………………………………… vi DAFTAR ISI …....…………………………………………………………….. vii DAFTAR TABEL …………………………………………….……………..... x DAFTAR GAMBAR …………………………………………………………. xi INTISARI …………………………………………………………………….. xii BAB I 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) …………………………. vii

1 2 2 3 4 4 7

BAB II

8 8 9 9 10 11 11 11 11 11 12 12 13 15 15 15 16 16 16

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 ……………………………………... BAB III 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 ……………………………… viii

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

BAB IV

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 …………………………………………………

43 43 44 44 46 52 64 64

BAB V

PENUTUP A. Kesimpulan ……………………………………………………. 66 B. Saran …………………………………………………………… 66 DAFTAR PUSTAKA ……………………………………………. LAMPIRAN 68

ix

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

x

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

xi

INTISARI 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.

xii

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

1

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 LastCome 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.

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 8

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-pengertiantentang-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 : Tabel 2.1. Simbol-simbol data yang digunakan pada DFD
(Sumber: http://freezcha.wordpress.com/2010/02/27/data-flow-diagram-dfd)

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 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.

Process (Proses)

Simpanan dari data yang dapat berupa file atau database di sistem Data Store komputer, arsip atau catatan (Penyimpanan Data) manual, kotak tempat data di meja seseorang, tabel acuan manual, agenda atau buku Menunjukkan arus data yang dapat berupa masukkan untuk sistem atau Data Flow (Arus Data) hasil dari proses sistem

11

2.

Entity Relationship Diagram (ERD) Entity Relationship Diagram merupakan suatu model untuk

menjelaskan hubungan antar data dalam basis data berdasarkan objekobjek 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

Gambar 2.2. Single Channel - Single Phase
(Sumber: http://www.sutanto.staff.uns.ac.id/files/2009/03/zzzzzzzzzzzzz.pdf)

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

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 Flash RAM EEPROM Pin Seri Timer UART SPI ISP (KBytes) (Bytes) (KBytes) I/O 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 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. Port, Accumulator, Register B, Timer dan sejumlah

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.

BAB III PERANCANGAN SISTEM DAN IMPLEMENTASI

A. Analisa Sistem Dan Perancangan 1. Analisa Sistem Berjalan Berikut adalah Sistem Analisa Berjalan :

Gambar 3.1 Bagan Alir Sistem 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 :

25

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.

Gambar 3.2 Diagram Block Rangkaian Sistem Antrian dengan AT89S51

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.

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.
START Daftar Pasien Simpan Data Pasien di Database

Cetak Kwitansi

Simpan Status Pemanggilan Nomor

Cek Status Pemanggilan Nomor

Ada Nomor Pasien yang belum dipanggil

Ya

Tidak Panggil dan Display Nomor Antrian Yang Belum Dipanggil Panggil dan Display Nomor Antrian Selanjutnya

Cek Pasien Tidak Ya

END

Konsultasi Dokter

Validasi Nomor

Gambar 3.3 Flowchart Simulasi Sistem Pengambilan dan Pemanggilan Nomor Antrian

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

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. Berikut ini adalah tabel identifikasi data/informasi, tujuan serta sumber data sistem informasi:
Tabel 3.1 Identifikasi Kesatuan Luar

Data/Informasi,

Tujuan

serta

Sumber

Kesatuan Luar

Input

Output

Petugas Dokter Pasien

- Daftar Shift - Data Dokter - Mendaftar - Cetak Nomor Antrian

2) Diagram Konteks

Gambar 3.4 Diagram Konteks

32

3) Diagram Berjenjang

Gambar 3.5 Diagram Berjenjang

4) Diagram Overview a) Diagram Overview Level 0

Gambar 3.6 Diagram Overview Lv. 0

33

b.

Entity Relationship Diagram

Gambar 3.7 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 Keterangan : a) Kode Nomor Shift ( Shift 1 dan Shift 2 jika ada 2 shift). Contoh : 1 a

34

2) No_Dokter pada file Dokter. No_Dokter terdiri 1 digit. Bentuk : x Keterangan : a) Kode Nomor Dokter. Contoh : 1 3) Antrian pada file Pasien No_Dokter terdiri 2 digit. Bentuk : xx Keterangan : a) Kode Nomor Antrian. Contoh : 01 a a

35

6.

Perancangan Perangkat Keras (Hardware) a. Power Supply ( tegangan listrik sebagai sumber daya )

Gambar 3.8 Skema Power Suply

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

Gambar 3.9 Skema Komunikasi PC dan Mikrokontroler

Komunikasi antara PC dan Mikrokontroler ini penting karena bagian ini mengkonversi dan meneruskan data serial dari PCmikrokontroler dan sebaliknya. Karena mikrokontroler

mengeluarkan dan menerima data serial dengan level tegangan

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

Gambar 3.10 Skema 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.

37

Gambar 3.11 Skema Seven Segment

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.

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 Antrian Shift : 1
Setting Shift Setting Dokter

R A B U 4 Januari 2011

Apotik

09:56:42

MATAHARI

00
Masuk Selesai Dokter 1 Daftar / Print Sistem Antrian Apotik Matahari

00
Masuk Selesai Dokter 2 Daftar / Print

00 00
Masuk Selesai Dokter 3 Daftar / Print Masuk Selesai Dokter 4 Daftar / Print

Gambar 3.13 Perancangan Form Menu Utama

b.

Perancangan Form Setting Shift
Shift Setting Shift
No Shift Jam Mulai Jam Selesai
No Shift 00:00 00:00 Jam Mulai Simpan Jam Selesai Batal Tambah Ubah Hapus |< < > >| C

Sistem Antrian

Gambar 3.14 Perancangan Form Setting Shift

40

c.

Perancangan Pengolahan Data Dokter

Gambar 3.15 Perancangan Pengolahan Data Dokter

d.

Perancangan Output Nomor Antrian (Print)

Gambar 3.16 Perancangan Ouput Nomor Antrian

41

B. Implementasi Berikut penerapan rancangan – rancangan form ke dalam program dengan menggunakan bahasa pemograman Borland Delphi 7 : 1. Implementasi Form Menu Utama

Gambar 3.17 Form Menu Utama

2. Implementasi Form Setting Shift

Gambar 3.18 Form Setting Shift

42

3. Implementasi Form Pengolahan Data Dokter

Gambar 3.19 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

BAB IV HASIL DAN PEMBAHASAN

A. Hasil Penelitian dan Pembahasan 1. Tampilan Awal Form Utama

Gambar 4.1 Form Menu 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 DB25, agar mengeluarkan nomor sesuai dengan pemanggilan nomor antrian

43

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

Gambar 4.2 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.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

Gambar 4.4 Form Setting 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.

Gambar 4.5 Menambah/Mengubah Data Dokter

Berikut penggalan listing program dari pengolahan data dokter (mengimput / mengubah / menghapus) :
//btn tambah procedure TForm3.BitBtn1Click(Sender: TObject); begin Bersih;

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.

Gambar 4.6 Merekam Nama Dokter

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';

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.Pau sed; 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

Gambar 4.7 Proses Sistem Antrian

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;

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:='Sh ift1' else form1.adotable2.TableName:='Sh ift2'; 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.

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 :

66

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.

67

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-dataflow-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

68

You're Reading a Free Preview

Mengunduh
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->