Sabtu, 22 Juni 2019

MESAOLIN (Mesin Antrian Online)




PENDAHULUAN

1.1  Latar Belakang


Dengan adanya pekembangan teknologi yaitu internet maka dapat memudahkan hidup manusia salah satunya kita dapat berkomunikasi jarak jauh tanpa harus tatap muka(bertemu langsung).

      Seperti yang kita ketahui bahwa mengantri adalah hal yang paling membosankan, namun bagaimana jika mengantri dapat kita tunggu dimanapun kita mau tentu akan menjadi sensai yang berbeda.

      Dari paparan di diatas disini kita akan membuat mesin antrian online sehingga dalam mengantri kita dapat cek no antrian kita secara online. Sehingga dapat menghemat kertas karena no antrian tidak berbasis kertas lagi.

1.2  Tujuan


1.     Untuk mengecek nomor antrian secara online melalui web
2.     Untuk menghemat penggunaan kertas
3.     Pemanfaatan KTP
4.     Untuk Mendapatkan nomor antrian tanpa harus datang ke tempat antrian

1.3  Manfaat


1.     Mengurangi rasa bosan dalam mengantri tanpa harus menunggu di tempat antrian
2.     Ramah lingkungan karena piranti antrian menggunakan kartu yang tidak sekali pakai seperti kertas
3.     Selain kartu identitas ktp juga dapat digunakan untuk mengantri yang menjadikan multi fungsi sebuah kartu
4.     Lebih efisien dalam mengantri karena dalam pengambilan nomor antrian kita tidak harus datang ke tempat antrian yang akan menghabiskan waktu, tenaga dan juga materi

1.4  Rumusan Masalah


1.     Bagaimana cara mempermudah dalam mengantri?
2.     Apa upaya pemanfaatan kartu identitas ktp?
3.     Peran teknologi digital jaringan online itu apa?

1.5  Sistematika Penulisan


Sistematika pembahasan penyusunan Proyek Akhir ini direncanakan sebagai berikut:

BAB 1 : PENDAHULUAN

Bab ini membahas pendahuluan yang terdiri dari latar belakang, tujuan, manfaat, rumusan masalah, sistematika pembahasan Proyek Akhir.

BAB 2 : PENJELASAN ALAT
Bab ini membahas tentang cara penggunaan alat, sebelum digunakan alat ini perlu  di set sesui ketentuan seperti sumber listrik, jaringan, server dan juga bahan pembuatan alat.

BAB 3 : ALGORITMA DAN FLOWCHART
Bab ini membahas secara keseluruhan dari sistem kerja dari sebuah alat yaitu urutan-urutan yang harus di lalui agar alat ini dapat bekerja dengan baik

BAB 4 : CODING
Bab ini membahas sketch yang digunakan untuk memasukan ID ke dalam sebuah data base menggunakan sebuah controller dan sensor.

BAB 5 : ANALISA DAN KESIMPULAN
Bab ini membahas kesimpulan dari pembahasan, perencanaan, pengujian dan analisa berdasarkan data hasil pengujian sistem.

LAMPIRAN
Bab ini menampilkan dokumentasi dari hasil proyek yang telah dibuat.
  

PENJELASAN ALAT


1.6  Pengertian


            Mesaolin adalah sebuah alat yang digunakan untuk memberikan no antrian. Alat ini dapat digunakan di rumah sakit, puskesmas, administrasi pemerintah, komersial dll. Yaitu yang memiliki antrian yang panjang dalam pelayanan.
            Penggunaan dari alat ini adalah menggunakan sebuah kartu rfid, bisa sebuah kartu yang dapat dibeli secara bebas atau bisa juga sebuah ktp elektronik yang di daftarkan dalam database terlebih dahulu yang kemudian dapat digunakan untuk mengantri dengan menge-tap/menempekan kartu pada alat tersebut.
            Setelah itu kita akan mendapatkan no antrian yang dapat di cek/dilihat secara online melalui web yang telah di sediakan

1.7  Alat dan Bahan

1.     PC (memasukan data base)
2.     Jaringan/Router(local area)
3.     Software(Xampp, MS. VisualCode, Arduino IDE)
4.     Modul NodeMCU
5.     Modul RFDID-RC522
6.     Modul LCD 16x2
7.     Buzzer
8.     Kabel jumper

1.8  Diagram Blok

1.9  Koneksi



1.10        Gambar Alat




1.11        Cara Penggunaan

1.     Buka pc yang digunakan sebagai server hubungkan pc pada sebuah jaringan
2.     Pastekan script php yang telah dibuat pada pc server(pada folder htdocs jika menggukan xampplite)
3.     Buka software xampplite start apache dan mysql
4.     Buka browser ketik http://localhost/phpmyadmin import database dengan nama mesaolin.sql
5.     Ketik localhost/nama_folder/nama_file.php pada browser maka akan tampil berapa file
6.     Sambungkan alat ke sebuah jaringan yang sama dengan server, ubah pada sketch Arduino yaitu ssid dan password jika ada
7.     Masukan url pada sketch Arduino dengan format http://ip_pc/nama_folder/nama_file.php?
8.     Upload menggunakan software Arduino  ide.
9.     Alat siap digunakan.

1.12        File-file PHP yang digunakan

1.     insert.php digunakan untuk memasukan data dari alat maupun web kedalam database server
2.     Koneksi.php digunakan untuk menghubungkan script php dengan database mysql
3.     tabel_db.php digunkan untuk menampilkan anggota member yang terdaftar pada alat
4.     edit_database.php digunakan untuk mengubah identitas dari member yang terdaftar
5.     submit_edit_database.php digunakan untuk memasukan data yang telah di edit ke dalam database
6.     delete_database.php digunakan  untuk menghapus member dari daftar database
7.     submit_delete_database.php digunkan untuk  menghapus member di database server
8.     tabel_antri.php digunakan sebagai tampilan untuk memanggil nomor antrian 
9.     call.php digunakan untuk menampikan nomor antrian yang telah terpanggil
10.  daftar_antrian.php digunakan untuk melihat nomor antrian yang sedang berjalan.

ALGORITMA DAN FLOWCHART


1.13        Algoritma

1.     Tap kartu rfid/ktp pada alat pertama kali
2.     Jika belum terhubung maka akan tampil “koneksi error” pada lcd
3.     Jika telah terhubung dan menyimpan database pada tabel db maka lcd akan menampilkan “anda terdaftar”
4.     Jika telah terhubung jaringan namun gagal menyimpan dalam database server maka akan tampil “server error”
5.     Operator pc server mengisikan identitas member yaitu nama dan tanggal lahir dengan cara klik link edit isi data dan klik submit
6.     Jika ingin menghapus member dari database klik link delete muncul kotak dialog klik ya lalu submit namun jika ingin membatalkan klik  tidak lalu submit
7.     Tap kartu rfid/ktp kedua
8.     Ulang ke algoritma 2 dan 4
9.     Cek pada database, jika terdaftar maka akan masuk pada tabel antri dan mendapatkan nomor antrian
10.  Cara mendaftar juga dapat dilakukan melalui web dengan mengunjungi url http://ip_server/mesaolin/antri_online.php lalu mengisikan nama dan tanggal lahir yang sesuai dengan pendaftaran
11.  Jika belum terdaftar maka akan mendapatkan nomor antrian
12.  Jika telah terdaftar dalam antrian maka muncul link untuk melihat nomor antrian
13.  Tap kartu rfid/ktp ketiga dan seterusnya akan menampilkan nomor antrian yang telah di dapat
14.  Operator pc dapat memanggil nomor antrian dengan membuka file tabel_antri
15.  Klik link call maka akan memanggil nomor antrian dan tampil pada layar sekaligus menghapus member dari tabel antrian
16.  Klik audio untuk memanggil ulang nomor antrian
17.  Jika nomor antrian telah di panggil maka akan mengulangi algoritma pertama










1.14        Flowchart

























CODING


1.15        Coding Arduino


#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266HTTPClient.h>
#include <SPI.h>
#include <MFRC522.h>
#include <LiquidCrystal_I2C.h>


#define USE_SERIAL Serial // Gunakan serial sebagai monitor
#define SS_PIN D4
#define RST_PIN D3

// Buat object Wifi
ESP8266WiFiMulti WiFiMulti;

MFRC522 mfrc522(SS_PIN, RST_PIN); // Instance of the class
LiquidCrystal_I2C lcd(0x27, 16, 2);

// Ini adalah alamat script (URL) yang kita pasang di web server
// Silahkan sesuaikan alamat IP dengan ip komputer anda atau alamat domain (bila di web hosting)

String url = "http://192.168.43.116/mesaolin/insert.php?";

// Buat object http
HTTPClient http;

//deklarasi variable
String feedback;


void setup() {
   
    lcd.begin(16,2);
    lcd.init();

    // Nyalakan backlight
    lcd.backlight();
   
    pinMode(D0, OUTPUT);
    USE_SERIAL.begin(115200);
    USE_SERIAL.setDebugOutput(false);

    SPI.begin();       // Init SPI bus
    mfrc522.PCD_Init(); // Init MFRC522
  

    for(uint8_t t = 4; t > 0; t--) {
        USE_SERIAL.printf("[SETUP] Tunggu %d...\n", t);
        USE_SERIAL.flush();
        delay(1000);
    }
   
    Serial.println("RFID reading UID");
   
   
    WiFi.mode(WIFI_STA);
    WiFiMulti.addAP("SamsungA5","87654321"); // Sesuaikan SSID dan password ini

    // Pemanggilan pertama memerlukan parameter jumlah kolom dan baris
    // Ini harus sama dengan yang dimasukan pada konstruktor.
   
}

void loop() {

  String uid;
  lcd.clear();
  lcd.setCursor(0, 0);     
  lcd.print("ID:");

  if ( mfrc522.PICC_IsNewCardPresent())
    {
        if ( mfrc522.PICC_ReadCardSerial())
        {
           Serial.print("Tag UID:");
          
           for (byte i = 0; i < mfrc522.uid.size; i++) {
                 uid = uid + String (mfrc522.uid.uidByte[i], HEX);
            }
           
            mfrc522.PICC_HaltA();
            Serial.println(uid);
            lcd.setCursor(3, 0);     
            lcd.print(uid);
           
 
            // Cek apakah statusnya sudah terhubung
            if((WiFiMulti.run() == WL_CONNECTED)) {

              // Tambahkan isi pada URL yang sudah kita buat
              // '?id=' adalah adalah nama parameter yang akan dikirimkan ke script PHP
              USE_SERIAL.print("[HTTP] Memulai...\n");
              http.begin( url + "id="+uid);
       
              // Mulai koneksi dengan metode GET
              USE_SERIAL.print("[HTTP] Melakukan GET ke server...\n");
              int httpCode = http.GET();

                // Periksa httpCode, akan bernilai negatif kalau error
                if(httpCode > 0) {
           
                  // Tampilkan response http
                  USE_SERIAL.printf("[HTTP] kode response GET: %d\n", httpCode);

                  // Bila koneksi berhasil, baca data response dari server
                  if(httpCode == HTTP_CODE_OK) {
                    feedback = http.getString();
                    USE_SERIAL.println(feedback);
                    lcd.setCursor(0, 1);     
                    lcd.print(feedback);
                  
                  }
                }
            else {
              USE_SERIAL.printf("[HTTP] GET gagal, error: %s\n", http.errorToString(httpCode).c_str());
              lcd.setCursor(0, 1);     
              lcd.print("Server error");
            }
          http.end();
         }
         else{
          lcd.setCursor(0, 1);     
          lcd.print("Koneksi error");
          }
        digitalWrite (D0, HIGH);
        delay(1000);
        digitalWrite (D0, LOW);
        delay(200);
      }
   }
   delay(100);
}

1.16        Penjelasan coding

Coding Arduino digunakan untuk memprogram modul nodemcu agar bisa membaca RFID,  Menampilkna di LCD 16x2, membunyikan buzzer, terhubung dengan jaringan dan bisa memasukan database server. Dalam coding tersebut kita perlu menambahkan library-library yang dapat di download di internet.
Langkah kerja dari coding tersebut adalah yang pertama konek ke sebuah jaringan, kedua konek server, ketiga membaca rfid, keempat membuat link url untuk alamat server, kelima menerima feedback dari server.

ANALISA DAN KESIMPULAN


1.17        Analisa

Setelah saya menyelesaikan proyek ini di dapatkankan hasil yaitu proyek ini dapat membantu dalam mengatasi antrian yang panjang, yang dapat menghabiskan waktu dan energi.
Dalam pembuatan alat tersebut menggunakan media online/jaringan dan juga teknologi RFID. Teknologi RFID yaitu membaca sebuah kartu yang telah ditanami chip sehingga dapat menyimpan data digital.
Kartu RFID dibaca menggunakan sensor berbasis electromagnet sehingga dengan mendekatkan kart uke dalam sebuah sensor tersebut, sensor dapat membaca data digital berupa id yang bersifat unik sehingga setiap kartu memiliki id yang berbeda dan tidak ada yang sama.
Pembacaan id akan diolah oleh kontroler ditampilkan di LCD 16x2 dan di indikatorkan pada buzzer, setelah itu di koneksikan dengan computer server menggukan url, data pembacaan ID RFID dikirim menggunakan metode GET URL. Karena pada proyek ini menggunakan local server kita harus menggunakan local host yaitu software xampplite.
Karena menggunakan local host dalam berkoneksi kita menggunakan alamat IP. Syarat agar local server terkoneksi adalah menggunakan jaringan yang sama dan net id yang sama. Setelah kontroler membuat http kita dapat mengambil data dari server melalui url yang dibuat oleh controller.
Data yang diambil tersebut di olah menggunakan script PHP dan dimasukan kedalam database MYSQL, data dalam mysql tersebut dapat diolah dan ditampilkan kembali di sebuah halaman web.
Sehingga kita dapat memasukan data untuk mendapatkan nomor antrian, membaca nomor antrian yang  di dapatkan,  mengedit identitas dari ID RFID yang dimasukan meggunakan kartu RFID, dan juga menghapus data yang telah kita masukan.

1.18        Kesimpulan

Dari analisa di atas maka dapat disimpulkan bahwa :
1.         Cara mempermudah dalam mengantri adalah dengan mengganti no antrian berbasis kartu yang dapat digunakan berulang-ulang, tidak seperti kertas yang sekali pakai dan tidak ramah lingkungan
2.         Salah satu kartu yang dapat digunakan adalah KTP yang selama ini hanya digunakan untuk identitas diri saja dan tentu saja lebih ekonomis
3.         Dalam melihat urutan antrian kita juga dimudahkan oleh media online sehingga kita  tidak perlu datang langsung ke tenpat antrian
4.         Untuk menyelesaikan proyek ini juga diperlukan pengolahan database yaitu : CRUD(Create, Read, Update, Delete) di mysql menggunakan syntax PHP.

LAMPIRAN





Gamabar 1.1 Daftar



Gambar 1.2 Antri



Gambar 2.2 Table Databsae


Gambar 2.3 Edit Database


Gambar 2.4 Delete Database


Gambar 2.5 Tabel Antrian


Gambar 2.6 Daftar Antrian


Gambar 2.7 Panggilan Antrian


Gambar 2.8 Antri Online