Percobaan 5. Pemrograman IVR dengan Database(Outbound)

dokumen-dokumen yang mirip
Percobaan 4. Pemrograman IVR dengan Database(Inbound)

PERCOBAAN 5 PEMROGRAMAN VOICE MAIL SERVER

PERCOBAAN 4 PEMROGRAMAN IVR OUTBOUND

Percobaan 2. Pemrograman IVR Dasar(Inbound)

PERCOBAAN 2 PEMROGRAMAN DASAR IVR (UNTUK LAYANAN INBOUND)

PERCOBAAN 3 APLIKASI DATABASE UNTUK PEMROGRAMAN IVR

Interactive Voice Response

INTERACTIVE VOICE RESPONSE (IVR) Prima K - PENS

E-trik Ajax. Database MySQL. Dedi Alnas

Percobaan 1. Pengenalan IVR (Interactive Voice Response) dan Sample Program

PERCOBAAN 9 APLIKASI DATABASE UNTUK PEMROGRAMAN IVR

Praktikum 1 Installation for OpenCV

MySQL J A M K E T I G A

PERCOBAAN 1 INSTALASI IVR SERVER

MODUL 8 Mengoperasikan Perangkat Lunak Basis Data

Gambar 2. 1 Kotak dialog Pilihan Bahasa

Gambar ini menunjukkan informasi pemilihan folder untuk melakukan instalasi software XAMPP.

TUJUAN. Memahami Koneksi dan Pemrosesan Basis Data di Java Memahami JDBC Menggunakan MySQL pada program Java

2. Perangkat Jaringan (Kabel UTP, Switch/Hub,Ethernet) Perangkat Lunak 1. Sistem Operasi (WindowsXP, Windows 2000, Windows 2003, Linux)

BAB III PERANCANGAN Gambaran Sistem

INSTALLATION CHECKING

MODUL PRAKTIKUM BASIS DATA TEKNIK INFORMATIKA UIN SUNAN KALIJAGA YOGYAKARTA 2011 PENGENALAN DATABASE MYSQL

Membuat Aplikasi Tampil, Entri, Edit, Delete Mahasiswa

Lisensi Dokumen: Uraian Kasus :

ESTUDA WEB UJA MACROMEDIA DREAMWEAVER 8

E-Trik Visual C++ 6.0

Pemrograman PHP & MySQL

Proxy Autentikasi dengan Program mysql_auth pada FreeBSD 6.0

IF PEMROGRAMAN LANJUT MENGAKSES DATABASE. Oleh : Andri Heryandi, M.T.

KapitaSelekta. (KBKI82127, 2 sks) Materi : Pengenalan MySQL

MEMBUAT LAPORAN DI JAVA DENGAN MENGGUNAKAN IREPORT

Cara Menggunakan MySQL

Pemrograman Web Lanjut 2017

BAB IV IMPLEMENTASI DAN PENGUJIAN

PERINTAH DASAR MySQL

Tahap Instalasi PostgreSQL di Windows

LANGKAH INSTALL XAMPP DAN WORDPRESS DI PC KOMPUTER Oleh: Akhmad Syaiful, S.Kom

Daftar Isi. 1 Praktikum #1 - Instalasi XAMPP dan PHP Maker Tujuan Program yang dibutuhkan Langkah-Langkah Pekerjaan...

1. Memulai pengelolaan database Menampilkan daftar database Sintaks : show databases;

Menangani Input dari User

Achmad Solichin

2.1 Instalasi Joomla Secara Lokal

MODUL 8 MEMBUAT USER DAN MENGAKSES DATABASE

Petunjuk Upload database MySQL menggunakan PhpMyAdmin

Membangun Website dengan Joomla!

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB 3 ANALISIS DAN PERANCANGAN. menentukan dan mengungkapkan kebutuhan sistem. Kebutuhan sistem terbagi menjadi

1. Buka window file explorer, arahkan ke folder CD SOFTWARE. 2. Double klik pada file xampp-win vc11-

Petunjuk Upload Database MySQL

Koneksi Visual Basic, MySQL (ODBC) dan Crystal Report

d. Primary Key Primary key atau unique key adalah suatu nilai di basis data yang digunakan untuk mengidentifikasi keunikan baris-baris di dalam tabel.

Mahasiswa memahami Pengertian Basisdata, Cara membuat basisdata, cara menginput data dan cara menampilkan data.

MODUL III STRUCTURED QUERY ANGUAGE (SQL)

Step-Step dalam pembuatan Web

INSTALASI WEB SERVER PADA MICROSOFT WINDOWS

TUTORIAL CONTENT MANAGEMENT SYSTEM WEB HOSTING JOOMLA


Panduan Instalasi Drupal 7 di Localhost

Pengenalan Database Management System MySQL. Pokok Bahasan: Pengenalan DataBase Pembangunan database berbasis Client-Server Dasar-Dasar MySQL

Modul 3 : Query Penggabungan Tabel

MySQL Databases. Dasar-dasar MySQL dan Implementasi MySQL kedalam pemrograman PHP. Jakarta, 16 April 2011 Oleh: M. Awaludin, S.Kom

MODUL 1 DASAR-DASAR PEMROGRAMAN C++

Langkah-langkah Pembuatan Web dengan Joomla

MANUAL PENGOPERASIAN JSTOCKINVENTORY Twitter

KURSUS ONLINE JASA WEBMASTERS

Manual Pengguna (User s Manual )

BAB I Penginstallan dan setting PHPTriad

Cara Membuat Website Lokal dengan Xampp

Tutorial Instal XAMPP

Pengenalan APLIKASI DATABASE

Setting SMS Gateway dengan GAMMU Private Training Web Development Padang. 11/2/2014

Menjalankan Program Aplikasi Web Sistem Pengolahan Data Nilai Siswa SMA Negeri 1 Piyungan Bantul

Membuat Database mysql dengan PhpMyAdmin

Client Server Basisdata. SMS Gateway (Visual Basic & Gammu) part 01 Zulkarnaen NS

Joomla MySQL database

Copy Right 2009 Not right to copy without permission

Beberapa Cara Upload Website ke Hosting Server

SISTEM INFORMASI PENERIMAAN SISWA BARU SMP NEGERI 1 PRAMBANAN BERBASIS WEB

Modul 3. Oleh : Mohammad Sholikin. 1

KONEKSI NETBEANS DENGAN DATABASE SQLITE

E-trik Ajax. Ajax dan MySQL. Dedi Alnas

Modul 2 DreamWeaver MX Suendri, S.Kom

Praktek Pemrograman Web

I. Praktek: Transformation Untuk Membaca 1 File Excel

Pemrograman Basis Data Berbasis Web

6. Jika langkah di atas dijalankan dengan benar, user akan masuk ke halaman login seperti gambar di bawah

Pembuatan Report menggunakan JasperReports dan ireport

Merancang Project. Form Module Class Module Report. Form 1, Form 2, Minimarket (NamaProject) Gambar 4.1 Flowchart Project Sistem Informasi Minimarket

BAB V IMPLEMENTASI DAN PENGUJIAN SISTEM. Implementasi perancangan pada sistem informasi perparkiran

Database. Danu Wira Pangestu 1. Mengenal Database. Lisensi Dokumen:

MODUL JOOMLA! oleh: Putu A. Widhiartha dan Made J. Wiranatha BAB II INSTALASI JOOMLA

1. TUJUAN Mahasiswa dapat memahami langkah-langkah koneksi PHP dengan MySQL Mahasiswa dapat memahami pengambilan record dari database

MATERI WEB. Pembuatan Login Aplikasi, Dasboard Admin & Menu Keluar menggunakan PHP & Mysql. Bas-Dev : Ahmad Bastiar

Latihan 1: Menginstal Web Server Apache, PHP, dan MySQL

MODUL 7. Apakah Joomla itu? A. Pra-Instalasi Joomla. Tujuan : 1. Pengenalan Joomla 2. Installasi Joomla 3. Pengenalan Section dan Categories

BAB IV IMPLEMENTASI DAN PENGUJIAN

9 LANGKAH MUDAH KONEKSIKAN VISUAL FOXPRO DENGAN MySQL

Tutorial Jasper Report with JDBC Prerequisites: Jasper Report, ireport installed, MySQL installed, and NetBeans IDE

UPT LLK Dinsosnakertrans Kabupaten Purworejo

BAB IV IMPLEMENTASI DAN PENGUJIAN

Transkripsi:

Percobaan 5 Pemrograman IVR dengan Database(Outbound) 5.1. Tujuan : Setelah melaksanakan praktikum ini mahasiswa diharapkan mampu : Membuat Database Layanan IVR dengan MySQL Membuat koneksi antara Database dengan C++ Membuat sebuah aplikasi IVR outbound yang terkoneksi dengan database 5.2. Peralatan : PABX 2 pesawat Telepon 1 PC dilengkapi dengan Dialogic Card (D/41JCT-LS atau D/4PCI-U) 5.3. Teori : 5.3.1 Aplikasi Database Aplikasi data base diperlukan jika Layanan sistim informasi menggunakan jenis data inventory, yaitu data yang memerlukan inventarisasi, seperti data Pelanggan, data Jenis Barang, data Nilai Mahasiswa dan sebagainya. Data base yang digunakan dalam sistim Layanan ini adalah database MySQL yang terintegrasi pada program XAMPP. XAMPP ini mengintegrasikan Apache, PHP serta MySQL dalam satu bundel sehingga sangat efektif dan mudah dalam proses penginstalannya. Tidak menutup kemungkinan menggunakan jenis data base yang lain, selama data base tersebut dapat di-akses dari program C yang disediakan oleh Dialogic. 5.3.2 Aplikasi Layanan Informasi Outbound Aplikasi ini merupakan lanjutan dari aplikasi IVR inbound yang telah dilakukan pada praktikum sebelumnya. Dimana pada praktikum kali ini akan dibuat sebuah sistem remainder untuk mengingatkan customer akan status handphone yang sedang di service. 60

Layanan remainder ini diberikan berdasarkan dari tanggal yang sudah tersimpan di database. Diagram Alir cara pengaksesan Sistem remainder ditunjukkan pada Gambar 1 T Gambar 1. Diagram Alir cara pengaksesan Sistem Remainder Care Centre yang Terkoneksi dengan Database 61

Jenis file wav yang akan dibunyikan adalah seperti pada Tabel 1 Tabel 1. Tabel Isi file wav Nama File Wav cancel.wav selesai.wav belum.wav level.wav status.wav selamatdatang.wav keluar.wav Kalimat Dicancel Sudah selesai belum selesai dikirim kelevel tiga Status handphone anda saat ini adalah Selamat datang di layanan remainder care centre Terima kasih atas kepercayaan anda pada care centre kami. 5.4. Prosedur Percobaan : 1. Aktifkan DCM(Dialogic Configuration Manager) sehingga dialogic dalam posisi running. Siapkan file-file wav yang akan digunakan, dengan cara merekam melalui SAMPLE PROGRAM. Isi dari file wav seperti pada Tabel 1 2. Menyiapkan aplikasi database. Dimana field-field yang disiapkan untuk database adalah : 1. id_remainder (int) 2. nama (varchar( 20) 3. alamat (varchar(20)) 4. status_handphone(int) 5. tgl_selesai(date and Time) Tabel 2. Field-field yang disiapkan untuk database id_remainder nama alamat StatusHandphone Tanggal_selesai 1 Ali Jl.Mawar 1 1-april-2010 09:00:00 2 Anis Jl.Melati 2 1-april-2010 09:05:00 3 Agri Jl.Anggrek 3 1-april-2010 09:10:00 62

Langkah-langkah yang diperlukan untuk menyiapkan aplikasi data base adalah : a. Menjalankan XAMPP b. Double klik xampp-control panel untuk memastikan bahwa Apache dan MySQL sudah berjalan, dan akan muncul tampilan seperti gambar 2 Gambar 2. Tampilan XAMPP Control Panel Aplication c. Mengaktifkan PHP MyAdmin Dalam pembuatan database pada MySQL ada beberapa cara yang dapat digunakan yaitu : dengan menggunakan Phpmyadmin, menggunakan MySQL Prompt atau dengan membuat sebuah program. Untuk memudahkan pembuatan database pada MySQL dalam praktikum ini digunakan Phpmyadmin karena dalam pengkonfigurasiannya tidak diperlukan perintahperintah tertentu seperti jika kita menggunakan MySQL Prompt. Sehingga dengan menggunakan Phpmyadmin konfigurasi MySQL dapat dilakukan dengan mudah dan cepat. Adapun langkah-langkah yang dilakukan dalam pembuatan database menggunakan Phpmyadmin adalah sebagai berikut : Double klik Internet Explorer ketikkan http://localhost/ pada address-nya, untuk menampilkan tampilan awal xampp. Seperti gambar 3 63

Klik bagian ini Gambar 3. Tampilan awal XAMPP klik phpmyadmin dan akan nampak tampilan seperti gambar 4. Nama database 64

Gambar 4. Pemberian Nama Database Kemudian beri nama database yang akan dibuat setelah itu pilih create Beri nama tabel yang akan dibuat, tentukan jumlah field-nya kemudian klik go Gambar 5. Pemberian Nama Tabel Siapkan Tabel menggunakan MySQL seperti pada Gambar 6 dan 7. Namai :remainder Gambar 6. Pembuatan Field-field klik save, sehingga didapat tampilan seperti dibawah ini kemudian klik insert Gambar 7. Tampilan Setelah Pembuatan field 65

Isilah masing-masing field dengan record seperti ditunjukkan pada Gambar 8. Klik bagian ini Gambar 8. Pengisian Record di masing-masing Field 66

Setelah record terisi, akan didapatkan sebuah tabel dengan data-data sebagai berikut: Gambar 9. Isi dari Tabel Remainder 3. Buka C++, buat Project baru untuk Sistim Layanan ini a. Buka Visual C++, kemudian buat workspace, project, dan file baru sehingga didapat tampilan seperti gambar 10 Gambar 10. Membuat workspace baru dengan Visual C++ b. Setelah membuat project dan file *.cpp, pilih project setting Tab: C/C++ a.[category Prepocessor] Addition include directories < path to your Mysql installation >\include Hasil pengesetannya seperti pada gambar 11 67

Gambar 11. Setting Category Prepocessor b. [Category:Code Generation] use run-time library: Multithreaded Hasil pengesetannya tampak seperti gambar 12. 68

Gambar 12. Setting Category Code Generation c. [Category:Precompiled Headers ] Select not using Precompiled Headers Hasil pengesetannya tampak pada gambar 13 Gambar 13. Setting Category Precompiled Headers Tab:Link a. [Category:Input] o Object/library modules: (tulis) wsock32.lib mysqlclient.lib libmysql.lib mysys.lib o Ignore libraries: LIBCMTD.lib o Additional library path: <path to your MySql installation>\lib\debug Hasil pengesetannya seperti gambar 14 69

Gambar 14. Setting Category Input b. [Category:General] o Object/library modules:(tulis) libsrlmt.lib dan libdxxmt.lib Hasil pengesetannya tampak seperti gambar 10 Gambar 15. Setting Category Input 70

c. Menambahkan Directory INC dan LIB Masih pada sheet Proyek Tools Options Directories Show Directories for : pilih Include file browse folder dimana Directory INC untuk Dialogic berada, sehingga didapatkan : C:\Program Files\Dialogic\INC. Hal ini diperlihatkan seperti pada Gambar 11. Show Directories for : pilih Library file browse folder dimana Directory LIB untuk Dialogic berada, sehingga didapatkan : C:\Program Files\Dialogic\LIB Ok Path dari Directory INC Gambar 16. Project Setting Box untuk Menambahkan File Library d. Menambah header-header. Harus diingat, penulisan header-header ini harus berurutan. #define W32_LEAN_AND_MEAN #include <winsock2.h> #include "mysql.h" #include <windows.h> #include <fcntl.h> #include <srllib.h> #include <dxxxlib.h> #include <stdio.h> #include <string.h> 71

#include <time.h> e. Tambahkan fungsi PlaySuara. void PlaySuara(int chdev,char fname[10]) int fd; DX_IOTT iott; DV_TPT tpt; DX_XPB xpb; if((fd=dx_fileopen(fname,o_rdonly O_BINARY)) ==-1) tpt.tp_type =IO_EOT; tpt.tp_termno =DX_MAXDTMF; tpt.tp_length =1; tpt.tp_flags =TF_MAXDTMF; iott.io_fhandle =fd; iott.io_bufp =0; iott.io_offset =0; iott.io_length =-1; iott.io_type =IO_DEV IO_EOT; xpb.wfileformat =FILE_FORMAT_WAVE; xpb.wdataformat =DATA_FORMAT_DIALOGIC_ADPCM; xpb.nsamplespersec =DRT_8KHZ; xpb.wbitspersample =4; if(dx_playiottdata(chdev,&iott,&tpt,&xpb,ev_sync)==-1) printf("error play wav file\n"); exit(1); printf("play wav succes\n"); f. Tambahkan fungsi deteksi digit char DetectDigit(int chdev,char digit[10],int x) DV_TPT tpt[3]; DV_DIGIT digp; int numdigs,cnt; dx_clrtpt(tpt,3); tpt[0].tp_type=io_cont; tpt[0].tp_termno=dx_maxdtmf; tpt[0].tp_length=x; tpt[0].tp_flags=tf_maxdtmf; tpt[1].tp_type=io_cont; tpt[1].tp_termno=dx_lcoff; tpt[1].tp_length=10; tpt[1].tp_flags=tf_lcoff TF_10MS; tpt[2].tp_type=io_eot; 72

tpt[2].tp_termno=dx_maxtime; tpt[2].tp_length=50; tpt[2].tp_flags=tf_maxtime; //Get digit// if((numdigs=dx_getdig(chdev,tpt,&digp,ev_sync))==-1) printf("error get digit\n"); exit(1); printf("get digit succes\n"); for(cnt=0;cnt<numdigs;cnt++) digit[cnt]=digp.dg_value[cnt]; return(digp.dg_value[0]); g. Buat main program seperti yang ditunjukkan pada listing program dibawah ini! void main(int argc, char* argv[]) MYSQL *hnd=null; // mysql connection handle MYSQL_RES *res=null; // result of querying for all rows in table MYSQL_ROW row; //one row returned char sql[1024]; // sql statement used to get all rows int i,j=0,numf=0; // number of fields returned from the query int x,bil; const char *sinf=null; // mysql server information hnd = mysql_init(null); if(null==mysql_real_connect(hnd,server_name,db_user,db_userpass,d B_NAME,0,NULL,0)) fprintf(stderr,"ada masalah\n"); else fprintf(stdout,"koneksi ok\n"); sinf = mysql_get_server_info(hnd); if (sinf!= NULL) fprintf(stdout,"got server information: '%s'\n",sinf); balik: 73

sprintf(sql,"select NOW()"); if (!mysql_query(hnd,sql)) res = mysql_use_result(hnd); if (res) while (row=mysql_fetch_row(res)) for (i=0;i<mysql_num_fields(res);i++) strcpy(data,row[i]); printf("%s\n",data); else fprintf(stderr,"failed to use the result acquired!\n"); sprintf(sql,"select status_handphone from remainder where tgl_selesai = '%s' ",data); if (!mysql_query(hnd,sql)) res = mysql_use_result(hnd); if (res) while (row=mysql_fetch_row(res)) for (i=0;i<mysql_num_fields(res);i++) strcpy(data1,row[i]); printf("%s\n",data1); bil=atoi(data1); printf("%d", bil); if((chdev = dx_open("dxxxb1c1",null))==-1) printf("error open channel"); exit(1); printf("open channel succes\n"); awal: if(dx_sethook(chdev,dx_offhook,ev_sync)==-1) printf("error off hook"); exit(1); 74

printf("off hook succes\n"); dx_clrcap(&capp); capp.ca_nbrdna=4; if((cares=dx_dial(chdev,dialstrg,&capp,dx_callp EV_SYNC)) == -1 ) printf("error dial"); exit(0); printf("proses dial"); switch(cares) case CR_CNCT: printf("answer\n"); PlaySuara(chdev,"selamatdatang.wav"); PlaySuara(chdev,"status.wav"); if(bil==1) PlaySuara(chdev,"selesai.wav"); else if(bil==2) PlaySuara(chdev,"belum.wav"); else if(bil==3) PlaySuara(chdev,"level.wav"); else if(bil==4) break; case CR_BUSY: PlaySuara(chdev,"cancel.wav"); printf("busy"); if(dx_sethook(chdev,dx_onhook,ev_sync)==- 1) 75

printf("error on hook\n"); exit(1); printf("on hook succes\n"); printf("\ntunggu 10 detik\n"); Sleep(10000); goto awal; break; case CR_NOANS: printf("no answer"); if(dx_sethook(chdev,dx_onhook,ev_sync)==- 1) printf("error on hook\n"); exit(1); printf("on hook succes\n"); printf("\ntunggu 10 detik\n"); Sleep(10000); goto awal; break; default : printf("else"); printf("\ntunggu 10 detik\n"); Sleep(10000); goto awal; break; PlaySuara(chdev,"keluar.wav"); 76

if(dx_sethook(chdev,dx_onhook,ev_sync)==-1) printf("error on hook\n"); exit(1); printf("on hook succes\n"); else fprintf(stderr,"failed to use the result acquired!\n"); goto balik; else fprintf(stderr,"failed to execute query. Ensure table is valid!\n"); else fprintf(stderr,"failed to retrieve the server information string.\n"); mysql_free_result(res); goto balik; mysql_close(hnd); g. Tambahkan prototype fungsi void PlaySuara(int chdev,char fname[10]); char DetectDigit(int chdev,char digit[10],int x); i. Diantara Header dan prototype fungsi, tambahkan program dibawah ini! #define TABLE_OF_INTEREST "remainder" #define SERVER_NAME "localhost" #define DB_USER "root" #define DB_USERPASS "" #define DB_NAME "carecentre" 77

char data[10]; char data1[10]; int chdev; DX_CAP capp; char dialstrg[5]="1000"; int cares; j. Jalankan program sampai tidak ada error yang didapat. k. Ikuti instruksi program remainder dari layanan care centre sehingga bisa didapat informasi yang diharapkan Analisa: 1. Rubahlah tanggal dan status yang ada di database, apakah sistem remainder juga ikut berubah? 2. coba lakukan percobaan dibawah ini, untuk melihat apa yang terjadi pada IVR Server: a. kondisi sibuk b. kondisi tidak ada jawaban c. Rubahlah nilai fungsi Sleep menjadi 5000, 60000, 100000! 5.5. Pertanyaan & Tugas : Buatlah aplikasi program remainder yang terkoneksi ke database. Lengkapi dengan flow chart pengaksesan serta breakdown menu pilihan. 78