DAFTAR PUSTAKA
IETF.ORG, 1994. “Uniform Resource Locators (URL) (RFC1738)”. Dalam Situs IETF Dot ORG Dilihat tanggal 28 Februari 2011. URL:http://www.rfc-editor.org/rfc/rfc1738.txt ---------------- 1998. “Uniform Resource Identifiers (URI) : Generic Syntax (RFC2396)”. Dalam Situs IETF Dot ORG. Dilihat tanggal 28 Februari 2011. URL:http://www.ietf.org/rfc/rfc2396.txt Ambler, Scott W. 1998. “CRC Modelling: Bridge the Communication Gap Between Developers and Users”. Dalam situs UML Dot ORG Dot CN. Dilihat tanggal 08 Agustus 2010. URL:http://www.uml.org.cn/UMLApplication/pdf/crcModeling.pdf Rumbaugh, James, Ivar Jacobson, Grady Booch. “The Unified Modelling Language Reference Manual”. Massachusetts: Addison Wesley Longman, Inc., 1999. Santoso, Harip. Membangun Aplikasi .NET Menggunakan VB.NET 2005. Jakarta: PT Elex Media Komputindo, 2005. Pressman, Roger S. “Software Engineering A Practitioner’s Approach Sixth Edition”.New York: The McGraw-Hill Companies, Inc, 2005. Connolyy, Thomas M., Carolyn E. Begg. “Database Systems A Practical Approach to Design, Implementation, and Management fourth edition”. USA: Pearson Education Limited, 2005 Kusumadewi, Sri dkk., Fuzzy Multi-Attribute Decision Making (Fuzzy MADM). Jakarta: Graha Ilmu, 2006. Suyanto, ST, MSc., Artificial Intelligence (Searching, Reasoning, Planning dan Learning). Bandung: Informatika, 2007 Microsoft, 2011. “Increasing Productivity: Rapid Application Development”. Dalam Situs MSDN Dot Microsoft Dot Com. Dilihat tanggal 25 Februari 2011. URL:http://msdn.microsoft.com/en-us/library/ms233948(VS.90).aspx The Computer Language Company Inc., 2011. “Encyclopedia Internet”. Dalam Situs PCMAG Dot Com. Dilihat tanggal 28 Februari 2011. URL:http://www.pcmag.com/encyclopedia_term/0,2542,t=internet&i=451 84,00.asp
LAMPIRAN 1 Struktur Organisasi Restoran Solaria
Manajer Operasioanal
Supervisor Area
Kasir
Pelayan
Koki
Supervisor Area
Kasir
Pelayan
Supervisor Area
Koki
Kasir
Pelayan
Koki
(Sumber: Restoran Solaria Metropolitan Mall Bekasi)
LAMPIRAN 3 Laporan Hasil Pengamatan
a.
Lokasi Pengamatan Pengamatan dilakukan di 3(tiga) lokasi restoran berbeda dengan hari
pengamatan yang sama untuk memastikan masing-masing pengamatan pada restoran yang berbeda memiliki tingkat keramaian pelanggan yang sama. Waktu dan lokasi pengamatan pada masing-masing restoran sebagai berikut : 1. restoran Solaria Metropolitan Mall Bekasi Waktu I
: 22 September 2010 19.30-20.30 WIB
Waktu II : 25 Desember 2010 18.30 - 20.00 WIB 2. restoran D’Cost ITC Bekasi Square Waktu I
: 20 Oktober 2010 19.30 - 21.00 WIB
Waktu II : 30 Oktober 2010 18.30 - 20.00 WIB 3. Es Teler 77 Bekasi Square. Waktu I
: 3 November 2010 19.00 - 20.00 WIB
Waktu II : 27 November 2010 17.00 - 18.30 WIB b. Tujuan Pengamatan Tujuan pengamatan dilakukan untuk mengetahui tingkat pemesanan ratarata per menit dan waktu pelayanan dalam satuan menit. c.
Hasil Pengamatan Dari hasil pengamatan di ketiga lokasi, pengamatan dilakukan dengan
melakukan pembelian makanan sejenis (nasi goreng seafood dan es lemon tea) dan mencatat total waktu mulai dari pemesanan sampai keseluruhan menu disajikan dan mencatat rata-rata pemesanan per menit. Dari hasil pengamatan di 3(tiga) lokasi tersebut menunjukkan hasil seperti tabel berikut :
LANJUTAN LAMPIRAN 3 Laporan Hasil Pengamatan
Waktu Rata-rata pemesanan per menit Waktu Pelayanan Menu
Solaria
D’Cost
I II
8 Pesanan 10 Pesanan
14 Pesanan 18 Pesanan
Es Teler 77 5 Pesanan 8 Pesanan
I II
45 Menit 90 Menit
20 Menit 30 Menit
23 Menit 34 Menit
d. Kesimpulan Dari hasil pengamatan ini dapat disimpulkan bahwa : 1. Solaria mengalami tingkat pelayanan terburuk dengan total waktu pelayanan yang sangat lama untuk pemesanan satu menu. 2. Kecepatan waktu pelayanan sangat tergantung dari sistem yang diterapkan dalam pelayanan. Dari hasil pengamatan diatas, dapat diketahui bahwa D’Cost yang telah menerapkan teknologi informasi dalam pelayanannya mampu melakukan pelayanan lebih cepat dibanding restoran yang lain. Es Teler 77 yang menerapkan pelayanan pemesanan langsung ke bagian kasir tanpa melalui pelayan, menghasilkan waktu pelayanan yang lebih singkat dibandingkan dengan Solaria yang menerapkan pelayanan melalui pelayan dan mencatat pesanan secara manual.
LAMPIRAN 4 Hasil Wawancara
Nara Sumber
: Eni Yunani
Jabatan
: Supervisor Area Metropolitan Mall Bekasi
Lokasi wawancara : Solaria Metropolitan Mall Bekasi Waktu wawancara : Sabtu, 25 Desember 2011 18.00 - 18.30 Detail wawancara : Q : Berapa jumlah rata-rata pengunjung Solaria dalam sehari ? A : Disini kan ada15 meja Mas, pada hari sabtu atau minggu itu udah pasti penuh, malah kurang. Banyak yang tidak kebagian. Ya rata-rata pengunjung pada hari libur atau sabtu minggu sich berkisar 200 sampai dengan 300 an pengunjung. Kalau hari biasa kurang lebih 100 sampai 150 an pengunjung. Q : Bagaimana proses atau pola pelayanan yang diterapkan Solaria? A : Ya seperti yang Mas lihat, setiap ada pengunjung yang datang, pelayan akan menghampiri ke tempat duduk mereka, mencatat selanjutnya
menghitung
total
yang
harus
pesanan mereka,
dibayar.
Pelayan
akan
menyerahkan pembayaran ke kasir dan kasir akan menyampaikan pesanan ke bagian dapur atau koki. Begitu Mas rangkaian proses nya. Q : Berapa lama kira-kira waktu yang diperlukan untuk satu kali proses pelayanan ? A : Ya itu tergantung dari banyaknya menu yang dipesan Mas, pesanan yang datang lebih dulu ya diproses duluan. Kira-kira lamanya proses pesanan untuk satu meja dengan pesanan yang standar 3 sampai 4 orang sich sekitar 30 menit sampai 1.5 jam an. Q : Untuk memproses pesanan, selain faktor waktu kedatangan pelanggan, ada faktor-fator lain gak sich yang diprioritaskan ?
LANJUTAN LAMPIRAN 4 Hasil Wawancara
A : Ya saat ini sich cuman berdasar waktu pesennya itu kapan mas, yang lebih dulu ya diproses duluan. Q : Bagaimana kalau ada pesenan yang datang belakangan tapi cuma pesen nasi goreng dan lemon tea, sedangkan pesenan yang duluan pesen 4 jenis menu yang berbeda padahal waktu pesennya hampir sama Mbak bagaimana memprosesnya ? A : ya itu tetep dibelakangin Mas, memang untuk menentukan urutan perlu dipertimbangkan mengenai faktor jumlah, lama pengolahan dan mungkin juga perlu dipertimbangkan total harga pesanan. Jadi yang jumlahnya sedikit didulukan dengan catatan waktu pesennya gak terlalu jauh dengan pesanan lainnya, yang lama waktu olahnya di belakangin tapi tetep memperhatikan waktu datangnya pesanan, nah untuk strategi pasar, yang harga pesanannya lebih
mahal,
didulukan
untuk
diproses.
Jadi
pendapatan
bisa
meningkat..hehehe..tapi untuk saat ini kita masih sulit untuk mengatur antrian seperti itu Mas. Q : Dengan pola pelayanan tersebut, apakah cukup efisien untuk melayani pengunjung yang begitu banyak? A : Ya kami akui memang kurang efisien sih, dengan jumlah pelayan 5 orang pasti kewalahan. Apalagi ketika pada hari libur. Oleh karena itu kita sering menerima anak-anak PKL untuk mengatasi kekurangan pelayan. Q : Mengapa Solaria mengandalkan kemampuan berhitung pelayan untuk menghitung total harga pesanan tanpa menggunakan alat hitung apapun? A : Kami menciptakan sesuatu yang berbeda. Dan disitulah ciri khas kami Mas.
LANJUTAN LAMPIRAN 4 Hasil Wawancara
Q : Apakah tidak memperlama proses pemesanan dengan metode perhitungan manual seperti itu ? A : kami berkomitmen untuk menciptakan sesuatu yang beda dengan restoran lain. Dan kami memilih menggunakan model pelayanan seperti itu. Ya itu kami selaraskan dengan tujuan kami untuk menciptkan resto dengan suasana dan kualitas bintang lima dengan harga melati. Masak istilahnya di warteg pelayannya pakai PDA Mas..hehehe.Kami telah memberikan pelatihan kepada pelayan-pelayan kami mengenai metode berhitung cepat. Jadi saya rasa tidak begitu mempengaruhi lamanya proses pemesanan.
Kesimpulan : Dari hasil wawancara dengan supervisor area Solaria Metropolitan Mall bekasi ini dapat disimpulkan bahwa : 1.
Solaria memiliki permasalahan di sisi pelayanan. Dengan jumlah pelayan yang terbatas dan tidak seimbang dengan jumlah pengunjung khususnya pada hari libur, Solaria harus mengeluarkan biaya operasional lebih untuk mempertahankan kualitas pelayanan.
2. Saat ini penentuan urutan pengolahan pesanan hanya berdasarkan waktu kedatangan pesanan. Beberapa faktor lain yang disebutkan oleh supervisor area untuk pengaturan antrian pengolahan seperti jumlah pesanan, waktu pengolahan, dan total harga masih sulit diterapkan di Solaria.
LANJUTAN LAMPIRAN 4 Hasil Wawancara
3. Dengan pengolahan antrian yang masih
manual berpotensial
menurunkan omset pendapatan Solaria jika dibandingkan dengan pengaturan dengan memperhatikan faktor lain terutama total harga pesanan. Dengan mendahulukan pengolahan pesanan
dengan total
harga yang lebih tinggi, dapat meningkatkan pendapatan restoran Solaria.
LAMPIRAN 5 Grafik Matrik Fungsi Perhitungan Solusi Ideal
Terhubung /Simpul 1 2,3 4 5 x 6 7,8,9 10,11,12 13 14,15,16 17,18,19 20 21 22,23 24 25 26,27 28
1
2,3
4
5
x
6
7,8, 9
10,11 ,12
13
14,15 , 16
17,18 , 19
20
21
22, 23
1
24
25
26, 27
28
29, 30
31
32, 33
34
1 1 1
1 1
1
1 1 1 1 1 1 1 1 1 1
1
1 1 1
1 1 1
1
LANJUTAN LAMPIRAN 5 Grafik Matrik Fungsi Perhitungan Solusi Ideal Terhubung /Simpul 29,30 31 32,33 34
1
2,3
4
5
x
6
7,8, 9
10,11 ,12
13
14,15 , 16
17,18 , 19
20
21
22, 23
24
25
26, 27
28 1
29, 30
31
32, 33
34
1 1
1
1
LAMPIRAN 6 Kode Program Logika Fuzzy Metode MADM – TOPSIS (SysOrder.vb)
Imports Imports Imports Imports
Microsoft.VisualBasic System.Data sysOrderQueMonitor.DataLibrary sysOrderQueMonitor.DataLibraryTableAdapters
Public Class SysOrder Private mStartQueNo As Int16 Protected Overrides Sub OnStart(ByVal args() As String) Timer1.Enabled = True Timer1.Start() End Sub Protected Overrides Sub OnStop() End Sub Sub setOrderQueNo() Dim queClock As Date = Now Dim queNo As Long = 1 Dim enumWeight As sysEnumDataTable = New sysEnumTableAdapter().GetDataByKey("bobot") Dim CWeight() As String = Nothing For ix As Int16 = 0 To enumWeight.Rows.Count - 1 CWeight(ix) = enumWeight(ix).enumCode Next Dim tblOrderQue As PesananDataTable = New PesananTableAdapter().GetDataByStatus(1) Dim tblData As New DataTable With tblData .Columns.Add(New DataColumn("Pesanan", GetType(Long))) .Columns.Add(New DataColumn("K1", GetType(Decimal))) .Columns.Add(New DataColumn("K2", GetType(Integer))) .Columns.Add(New DataColumn("K3", GetType(Decimal))) .Columns.Add(New DataColumn("K4", GetType(Decimal))) End With Dim tRow As DataRow For Each dRow As PesananRow In tblOrderQue.Rows tRow = tblData.NewRow tRow(0) = dRow.noPesanan tRow(1) = DateDiff(DateInterval.Second, dRow.Tanggal, Date.Now) tRow(2) = dRow.totalMenu tRow(3) = dRow.totalWaktuOlah tRow(4) = dRow.TotalHarga
LANJUTAN LAMPIRAN 6 Kode Program Logika Fuzzy Metode MADM – TOPSIS (SysOrder.vb)
tblData.Rows.Add(tRow) Next Dim RTable As New DataTable("tbl_normalisasi") With RTable .Columns.Add(New DataColumn("R1", GetType(Double))) .Columns.Add(New DataColumn("R2", GetType(Double))) .Columns.Add(New DataColumn("R3", GetType(Double))) .Columns.Add(New DataColumn("R4", GetType(Double))) End With Dim Dim Dim Dim
VXij As Decimal = 0 Xij As Decimal = 0 Rij As Decimal = 0 ixCol As Int16
For ixCol = 0 To 3 Xij = 0 Rij = 0 VXij = 0 For Each nRow As DataRow In tblData.Rows Xij += nRow(ixCol) Next VXij = Math.Sqrt(Xij) Dim resRow As DataRow For Each nRow As DataRow In tblData.Rows If VXij = 0 Then VXij = 1 Rij = nRow(ixCol) / VXij resRow = RTable.NewRow resRow(ixCol) = Rij RTable.Rows.Add(resRow) Next Next Dim YTable As New DataTable("tbl_matrixY") With YTable .Columns.Add(New DataColumn("Y1", GetType(Double))) .Columns.Add(New DataColumn("Y2", GetType(Double))) .Columns.Add(New DataColumn("Y3", GetType(Double))) .Columns.Add(New DataColumn("Y4", GetType(Double))) End With Dim Yij As Double = 0 Dim Wi As Integer = 0 Dim yRow As DataRow For ix = 0 To RTable.Rows.Count - 1
LANJUTAN LAMPIRAN 6 Kode Program Logika Fuzzy Metode MADM – TOPSIS (SysOrder.vb)
yRow = YTable.NewRow Yij = 0 For xCol = 0 To 3 Yij = CWeight(xCol) * RTable.Rows(ix)(xCol) yRow(xCol) = Yij Next YTable.Rows.Add(yRow) Next Dim Ap, An As Double() Dim Vp, Vn As Double Ap = Nothing An = Nothing For yCol = 0 To 3 Vp = 0 Vn = 0 For Each _yRow As DataRow In YTable.Rows Select Case yCol Case 0, 2 If Vp > CDbl(_yRow(yCol)) Then Vp = CDbl(_yRow(yCol)) End If If Vn < CDbl(_yRow(yCol)) Then Vn = CDbl(_yRow(yCol)) End If Case 1, 3 If Vn < CDbl(_yRow(yCol)) Then Vn = CDbl(_yRow(yCol)) End If If Vp > CDbl(_yRow(yCol)) Then Vp = CDbl(_yRow(yCol)) End If End Select Next Ap(yCol) = Vp An(yCol) = Vn Next Dim Dp As Double() = Nothing Dim Dn As Double() = Nothing For _yRow = 0 To YTable.Rows.Count - 1 Vp = 0 Vn = 0
LANJUTAN LAMPIRAN 6 Kode Program Logika Fuzzy Metode MADM – TOPSIS (SysOrder.vb)
For _yCol As Int16 = 0 To 3 Vp += Math.Pow(CDbl(YTable.Rows(_yRow)(_yCol)) Ap(_yCol), 2) Vn += Math.Pow(CDbl(YTable.Rows(_yRow)(_yCol)) An(_yCol), 2) Next Dp(_yRow) = Vp Dn(_yRow) = Vn Next Dim Dim Dim Dim For
V As Double() = Nothing div As Double = 1 Vmax As Double = 0 noPesanan As Integer = 0 _ix = 0 To tblOrderQue.Rows.Count - 1 div = Dn(_ix) + Dp(_ix) If div = 0 Then div = 1 V(_ix) = Dn(_ix) / div If _ix = 0 Then Vmax = V(_ix) If Vmax < V(_ix) Then Vmax = V(_ix) noPesanan = tblOrderQue(_ix).noPesanan End If
Next Dim oPesanan As New PesananTableAdapter oPesanan.UpdateStatusDanKoki(2, AssignedKoki, noPesanan) End Sub Private Function AssignedKoki() As Int16 Dim oPesanan As New PesananTableAdapter Dim retKoki As Int16 oPesanan.getAssignedKoki(retKoki) Return retKoki End Function Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick setOrderQueNo() End Sub End Class
LAMPIRAN 7 Kode program DataLibrary (DataLibrary.aspx.vb)
Imports Imports Imports Imports Imports
Microsoft.VisualBasic datalibrary datalibraryTableAdapters System.Data System.Data.SqlClient
Partial Public Class datalibrary Public ReadOnly Property menuInfo(ByVal noMeja As Integer, ByVal noMenu As Integer) As String Get Dim _sReturn As String = "" Dim _drow() As dtlPesananRow = New dtlPesananTableAdapter().GetData().Select(String.Format("noMenu={0 } and status<>6", noMenu)) If Not _drow Is Nothing And _drow.Length > 0 Then If _drow(0).noMeja = noMeja Then _sReturn = String.Format("
Menu Ini Sudah Dipesan Sebelumnya dan dalam proses pengolahan" & _ "- No. Pesanan:{0}
- Status : {1}
" & _ "- Jumlah : {2} Porsi
- Tipe Pesanan : {3}
", _drow(0).noPesanan, _drow(0).StatusName, _drow(0).jumlah, _drow(0).TipePesanan) End If End If Return _sReturn End Get End Property Partial Class PesananRow Public ReadOnly Property totalMenu() As Integer Get Dim tDtlOrder As dtlPesananDataTable = New dtlPesananTableAdapter().GetDataByPesanan(Me.noPesanan) Dim jum As Integer = 0 For Each _row As dtlPesananRow In tDtlOrder.Rows jum += _row.jumlah Next Return jum End Get End Property Public ReadOnly Property totalBahan() As Decimal Get Dim tDtlOrder As dtlPesananDataTable = New dtlPesananTableAdapter().GetDataByPesanan(Me.noPesanan) Dim jum As Decimal = 0 Dim tDtlMenu As dtlMenuDataTable
LANJUTAN LAMPIRAN 7 Kode program DataLibrary (DataLibrary.aspx.vb)
Dim _prevBhn As Int32 = 0 Dim tmpTbl As New DataTable With tmpTbl .Columns.Add(New DataColumn("noBahan", GetType(Integer))) End With Dim tmpRow As DataRow For Each _oRow As dtlPesananRow In tDtlOrder.Rows tDtlMenu = New dtlMenuTableAdapter().GetDataByNoMenu(_oRow.noMenu) For Each _mRow As dtlMenuRow In tDtlMenu.Rows tmpRow = tmpTbl.NewRow tmpRow(0) = _mRow.noBahan tmpTbl.Rows.Add(tmpRow) Next Next For Each _row As DataRow In tmpTbl.Rows If _prevBhn <> _row(0) Then jum += 1 End If _prevBhn = _row(0) Next Return jum End Get End Property Public ReadOnly Property totalWaktuOlah() As Decimal Get Dim tDtlOrder As dtlPesananDataTable = New dtlPesananTableAdapter().GetDataByPesanan(Me.noPesanan) Dim tMenu As msMenuDataTable Dim total As Decimal = 0 Dim jum As Integer = 0 For Each _oRow As dtlPesananRow In tDtlOrder.Rows jum = _oRow.jumlah tMenu = New msMenuTableAdapter().GetDataByKey(_oRow.noMenu) For Each _mRow As msMenuRow In tMenu.Rows total += (_mRow.EstWaktuOlah * jum) Next Next Return total End Get End Property
LANJUTAN LAMPIRAN 7 Kode program DataLibrary (DataLibrary.aspx.vb)
Public ReadOnly Property NamaMeja() As String Get Dim _meja As String = "" Dim oMeja As msMejaDataTable = New msMejaTableAdapter().GetDataByKey(Me.noMeja) If oMeja.Rows.Count > 0 Then _meja = oMeja(0).Nama Else _meja = Me.noMeja End If Return _meja End Get End Property End Class Partial Class dtlPesananRow Public ReadOnly Property namaMenu() As String Get Dim tblMenu As msMenuDataTable = New msMenuTableAdapter().GetDataByKey(Me.noMenu) If tblMenu.Rows.Count > 0 Then Return tblMenu(0).Nama Else Return "" End If End Get End Property Public ReadOnly Property TotalHargaMenu(Optional ByVal jumOrder As Integer = 1) As Double Get Dim _tMenu As msMenuDataTable = New msMenuTableAdapter().GetDataByKey(Me.noMenu) If _tMenu.Rows.Count > 0 Then Return (jumOrder) * CDbl(_tMenu(0).Harga) Else Return 0 End If End Get End Property Public ReadOnly Property TipePesanan() As String Get Dim oEnum() As sysEnumRow = New sysEnumTableAdapter().GetDataByKey("TORDER").Select("enumCode='" & Me.Tipe & "'")
LANJUTAN LAMPIRAN 7 Kode program DataLibrary (DataLibrary.aspx.vb)
If oEnum.Length > 0 Then Return oEnum(0).enumDesc Else Return "N/A" End If End Get End Property Public ReadOnly Property StatusName() As String Get Dim oEnum() As sysEnumRow = New sysEnumTableAdapter().GetDataByKey("ProcSts").Select("enumCode='" & Me.Status & "'") If oEnum.Length > 0 Then Return oEnum(0).enumDesc Else Return "N/A" End If End Get End Property Public ReadOnly Property noMeja() As Integer Get Dim _order As PesananRow = New PesananTableAdapter().GetDataByNoPesanan(Me.noPesanan)(0) Return _order.noMeja End Get End Property Public ReadOnly Property tblMeja() As msMejaRow Get Dim _row As msMejaRow = New msMejaTableAdapter().GetDataByKey(Me.noMeja).FindBynoMeja(Me.noMej a) Return _row End Get End Property End Class Partial Class msMenuRow Public ReadOnly Property StatusNm() As String Get Dim _enum() As sysEnumRow = New sysEnumTableAdapter().GetDataByKey("menuSts").Select(String.Format ("enumCode={0}", Me.Status)) If _enum.Length > 0 Then Return _enum(0).enumText Else Return ""
LANJUTAN LAMPIRAN 7 Kode program DataLibrary (DataLibrary.aspx.vb)
End If End Get End Property Public ReadOnly Property KategoriNm() As String Get Dim _enum() As sysEnumRow = New sysEnumTableAdapter().GetDataByKey("MnKategori").Select(String.For mat("enumCode={0}", Me.Status)) If _enum.Length > 0 Then Return _enum(0).enumText Else Return "" End If End Get End Property End Class Public Function DaftarPesananan(ByVal koki As String) As DataTable Dim _tbl As New DataTable Dim _cmd As New SqlCommand Dim _dap As New SqlDataAdapter With _cmd .CommandText = "spKokiBindQue" .CommandType = CommandType.StoredProcedure .Connection = New SqlConnection(ConfigurationManager.ConnectionStrings("DBConStr").T oString) If .Connection.State = ConnectionState.Closed Then .Connection.Open() .Parameters.Add(New SqlParameter("@kokiId", SqlDbType.VarChar, 20)).Value = koki End With _dap.SelectCommand = _cmd _dap.Fill(_tbl) Return _tbl End Function Public Function DetailPesanan(ByVal noPesanan As Integer) As DataTable
LANJUTAN LAMPIRAN 7 Kode program DataLibrary (DataLibrary.aspx.vb)
Dim _tbl As New DataTable Dim _cmd As New SqlCommand Dim _dap As New SqlDataAdapter With _cmd .CommandText = "[spOrderDtlInfo]" .CommandType = CommandType.StoredProcedure .Connection = New SqlConnection(ConfigurationManager.ConnectionStrings("DBConStr").T oString) If .Connection.State = ConnectionState.Closed Then .Connection.Open() .Parameters.Add(New SqlParameter("@noPesanan", SqlDbType.BigInt)).Value = noPesanan End With _dap.SelectCommand = _cmd _dap.Fill(_tbl) Return _tbl End Function Public Function DetailPesananSiapSaji(Optional ByVal src As String = "") As DataView Dim _tbl As dtlPesananDataTable = New dtlPesananTableAdapter().GetData Dim _dv As DataView = _tbl.DefaultView If src <> "" Then src = "Status in (4,5) and " & src Else src = "Status in (4,5)" End If _dv.RowFilter = src Return _dv End Function Public Function DaftarMenu(Optional ByVal src As String = "") As DataView Dim _Tbl As DataView Dim _menu As msMenuDataTable = New msMenuTableAdapter().GetData() _Tbl = _menu.DefaultView _Tbl.RowFilter = src Return _Tbl End Function
LANJUTAN LAMPIRAN 7 Kode program DataLibrary (DataLibrary.aspx.vb)
Public Function checkStatusMenu(ByVal noMenu As Integer) As Boolean Dim oMenu As msMenuDataTable = New msMenuTableAdapter().GetDataByKey(noMenu) If oMenu(0).Status = 1 Then Return True Else Return False End If End Function End Class
LAMPIRAN 8 Kode program Halaman Pemesanan (Default.aspx.vb)
Imports Imports Imports Imports
System.Data datalibrary datalibraryTableAdapters BisPemesanan
Imports System.Data.SqlClient Imports System.Net.Dns Imports System.Configuration Partial Class _default Inherits System.Web.UI.Page Private m_menulist As DataTable Private Const ERRMSG As String = "Mohon maaf, system mengalami gangguan secara teknikal. Silakan hubungi customer service kami." Private Property orderState() As orderState Get If ViewState("orderState") Is Nothing Then Return BisPemesanan.orderState.Initialize Else Return ViewState("orderState") End If End Get Set(ByVal value As orderState) ViewState("orderState") = value End Set End Property Private ReadOnly Property NoMeja() As Long Get Dim _noMeja As String = New msMejaTableAdapter().GetMejaByIP(IPAddress) If _noMeja Is Nothing Then hdnMeja.Value = 0 Else hdnMeja.Value = _noMeja End If Return hdnMeja.Value End Get End Property Private ReadOnly Property IPAddress() As String Get Dim _ip As String = "" With GetHostByName(GetHostName()) _ip = New System.Net.IPAddress(.AddressList(0).Address).ToString End With
LANJUTAN LAMPIRAN 8 Kode program Halaman Pemesanan (Default.aspx.vb)
Return _ip End Get End Property Private ReadOnly Property TableMenu() As DataTable Get If m_menulist Is Nothing Then m_menulist = New DataTable With m_menulist .Columns.Add(New DataColumn("id", GetType(String))) .Columns.Add(New DataColumn("nama", GetType(String))) .Columns.Add(New DataColumn("harga", GetType(Decimal))) .Columns.Add(New DataColumn("diskon", GetType(Decimal))) .Columns.Add(New DataColumn("jumlah", GetType(Int16))) .Columns.Add(New DataColumn("jenis", GetType(Int16))) .Columns.Add(New DataColumn("ispesan", GetType(Boolean))) .Columns.Add(New DataColumn("notes", GetType(String))) .Columns.Add(New DataColumn("image", GetType(String))) Dim _cMenuInfo As New DataColumn With _cMenuInfo .ColumnName = "menuInfo" .DataType = GetType(String) .AllowDBNull = True .DefaultValue = "" End With .Columns.Add(_cMenuInfo) End With End If Return m_menulist End Get End Property Private Property TableSelectedMenu() As DataTable Get If ViewState("tblSelected") Is Nothing Then Return TableMenu Else
LANJUTAN LAMPIRAN 8 Kode program Halaman Pemesanan (Default.aspx.vb)
Return DirectCast(ViewState("tblSelected"), DataTable) End If End Get Set(ByVal value As DataTable) ViewState("tblSelected") = value End Set End Property Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load If Not Page.IsPostBack Then lblKodeMeja.Text = Me.NoMeja orderState = BisPemesanan.orderState.Initialize bindGridMenu() displayHandler() End If End Sub Private Sub bindGridMenu(Optional ByVal ds As Object = Nothing) Try If ds Is Nothing Then Dim oTbl As msMenuDataTable = New msMenuTableAdapter().GetData Dim _lrow As DataRow Dim _exrow As DataRow() For Each _row As msMenuRow In oTbl.Rows _lrow = TableMenu.NewRow _lrow(0) = _row.noMenu _lrow(1) = _row.Nama _lrow(2) = _row.Harga _lrow(3) = _row.Diskon If TableSelectedMenu IsNot Nothing Then _exrow = TableSelectedMenu.Select("id='" & _row.noMenu & "'") If _exrow.Length > 0 Then _lrow(4) = _exrow(0).Item(4) _lrow(5) = _exrow(0).Item(5) _lrow(6) = True _lrow(7) = _exrow(0).Item(7).ToString Else _lrow(4) = 0 _lrow(5) = 1 _lrow(6) = False _lrow(7) = "" End If Else
LANJUTAN LAMPIRAN 8 Kode program Halaman Pemesanan (Default.aspx.vb)
_lrow(4) = 0 _lrow(5) = 1 _lrow(6) = False _lrow(7) = "" End If If Not _row.IsimgPathNull Then If Not _row.imgPath.Trim = "" Then _lrow(8) = String.Format("{0}{1}", ConfigurationManager.AppSettings("imgmenupath").ToString, _row.imgPath) Else _lrow(8) = "img/NoImage.jpg" End If Else _lrow(8) = "img/NoImage.jpg" End If TableMenu.Rows.Add(_lrow) Next ds = TableMenu End If dlMenu.DataSource = ds dlMenu.DataBind() upGrid.Update() Catch ex As Exception CType(Me.Master, msPage).RaiseError(ex) End Try End Sub Private Sub getMenuList() Try Dim _row As DataRow Dim _idx As Int16 = 1 TableMenu.Rows.Clear() For Each _item As DataListItem In dlMenu.Items If _item.FindControl("chkPesan") IsNot Nothing Then If DirectCast(_item.FindControl("chkPesan"), CheckBox).Checked Then _row = TableMenu.NewRow _row(0) = DirectCast(_item.FindControl("hdnId"), HiddenField).Value _row(1) = DirectCast(_item.FindControl("lblNmMenu"), Label).Text.Trim _row(2) = DirectCast(_item.FindControl("hdnHarga"), HiddenField).Value _row(3) = DirectCast(_item.FindControl("hdnDisc"), HiddenField).Value
LANJUTAN LAMPIRAN 8 Kode program Halaman Pemesanan (Default.aspx.vb)
_row(4) = DirectCast(_item.FindControl("txtJum"), TextBox).Text _row(5) = DirectCast(_item.FindControl("ddlOrderType"), DropDownList).SelectedValue _row(6) = DirectCast(_item.FindControl("chkPesan"), CheckBox).Checked _row(7) = DirectCast(_item.FindControl("txtnotes"), TextBox).Text.Trim _row(8) = DirectCast(_item.FindControl("imgMenu"), Image).ImageUrl TableMenu.Rows.Add(_row) End If End If Next Catch ex As Exception CType(Me.Master, msPage).RaiseError(ex) End Try End Sub Protected Sub btnNext_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnNext.Click Try If orderState = BisPemesanan.orderState.Initialize Then getMenuList() TableSelectedMenu = TableMenu If TableSelectedMenu.Rows.Count = 0 Then CType(Me.Master, msPage).ShowClientInfo("SelectMenu", "Anda harus menentukan menu yang dipesan terlebih dahulu!") Exit Sub End If orderState = BisPemesanan.orderState.Confirmation bindGridMenu(TableSelectedMenu) displayHandler() ElseIf orderState = BisPemesanan.orderState.Confirmation Then orderState = BisPemesanan.orderState.Submit displayHandler() End If Catch ex As Exception CType(Me.Master, msPage).RaiseError(ex) End Try
LANJUTAN LAMPIRAN 8 Kode program Halaman Pemesanan (Default.aspx.vb)
End Sub Private Sub displayHandler() Select Case orderState Case BisPemesanan.orderState.Initialize btnBack.Visible = False btnSubmit.Visible = False btnNext.Visible = True btnReset.Visible = True btnRefresh.Visible = False For Each item As DataListItem In dlMenu.Items DirectCast(item.FindControl("txtJum"), TextBox).CssClass = "number" DirectCast(item.FindControl("txtJum"), TextBox).ReadOnly = False DirectCast(item.FindControl("chkPesan"), CheckBox).Enabled = True DirectCast(item.FindControl("lblVwOrderType"), Label).Visible = False DirectCast(item.FindControl("ddlOrderType"), DropDownList).Visible = True DirectCast(item.FindControl("pnlMenuInfo"), Panel).Visible = False Next pnlConfirm.Visible = False mainPanel.Visible = True Case BisPemesanan.orderState.Confirmation btnBack.Visible = True btnReset.Visible = False btnNext.Visible = False btnSubmit.Visible = True btnRefresh.Visible = False For Each item As DataListItem In dlMenu.Items DirectCast(item.FindControl("txtJum"), TextBox).CssClass = "disabled_control_number" DirectCast(item.FindControl("txtJum"), TextBox).ReadOnly = True DirectCast(item.FindControl("chkPesan"), CheckBox).Enabled = False DirectCast(item.FindControl("lblVwOrderType"), Label).Visible = True DirectCast(item.FindControl("ddlOrderType"), DropDownList).Visible = False DirectCast(item.FindControl("pnlMenuInfo"), Panel).Visible = False Next pnlConfirm.Visible = False mainPanel.Visible = True
LANJUTAN LAMPIRAN 8 Kode program Halaman Pemesanan (Default.aspx.vb)
Case BisPemesanan.orderState.Submit btnBack.Visible = False btnReset.Visible = False btnNext.Visible = False btnSubmit.Visible = False btnRefresh.Visible = True For Each item As DataListItem In dlMenu.Items DirectCast(item.FindControl("txtJum"), TextBox).CssClass = "disabled_control_number" DirectCast(item.FindControl("txtJum"), TextBox).ReadOnly = True DirectCast(item.FindControl("chkPesan"), CheckBox).Enabled = False DirectCast(item.FindControl("lblVwOrderType"), Label).Visible = True DirectCast(item.FindControl("ddlOrderType"), DropDownList).Visible = False DirectCast(item.FindControl("pnlMenuInfo"), Panel).Visible = False Next pnlConfirm.Visible = True mainPanel.Visible = False bindInfo() Case BisPemesanan.orderState.ReOrder btnBack.Visible = False btnSubmit.Visible = False btnNext.Visible = True btnReset.Visible = True btnRefresh.Visible = False Dim dl As New datalibrary Dim _noMenu As Integer For Each item As DataListItem In dlMenu.Items DirectCast(item.FindControl("txtJum"), TextBox).CssClass = "number" DirectCast(item.FindControl("txtJum"), TextBox).ReadOnly = False DirectCast(item.FindControl("chkPesan"), CheckBox).Enabled = True DirectCast(item.FindControl("lblVwOrderType"), Label).Visible = False DirectCast(item.FindControl("ddlOrderType"), DropDownList).Visible = True DirectCast(item.FindControl("pnlMenuInfo"), Panel).Visible = True _noMenu = DirectCast(item.FindControl("hdnId"), HiddenField).Value DirectCast(item.FindControl("menuInfo"), Literal).Text = dl.menuInfo(Me.NoMeja, _noMenu) Next
LANJUTAN LAMPIRAN 8 Kode program Halaman Pemesanan (Default.aspx.vb)
pnlConfirm.Visible = False mainPanel.Visible = True End Select End Sub Protected Sub btnBack_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnBack.Click orderState = BisPemesanan.orderState.Initialize bindGridMenu() TableSelectedMenu = Nothing displayHandler() End Sub Protected Sub btnReset_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnReset.Click bindGridMenu() End Sub Protected Sub dlMenu_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles dlMenu.ItemDataBound If e.Item IsNot Nothing Then If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then Dim jum As TextBox = e.Item.FindControl("txtJum") Dim harga As HiddenField = e.Item.FindControl("hdnHarga") Dim diskon As HiddenField = e.Item.FindControl("hdnDisc") Dim totHarga As Label = e.Item.FindControl("lblTotHarga") Dim amtTotHarga As Double = 0 amtTotHarga = (CDbl(jum.Text) * CDbl(harga.Value)) totHarga.Text = FormatNumber(amtTotHarga (amtTotHarga * (CDbl(diskon.Value) / 100)), 2) End If End If End Sub Protected Sub btnSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSubmit.Click Try Dim _BisOrder As New BisPemesanan Dim noMenu As Integer Dim qty As Integer Dim nmMenu As String Dim avStock As Integer
LANJUTAN LAMPIRAN 8 Kode program Halaman Pemesanan (Default.aspx.vb)
Dim _oDbOrder As New PesananTableAdapter For Each item As DataListItem In dlMenu.Items If item.ItemType = ListItemType.Item Or item.ItemType = ListItemType.AlternatingItem Then noMenu = DirectCast(item.FindControl("hdnId"), HiddenField).Value qty = DirectCast(item.FindControl("txtJum"), TextBox).Text.Trim nmMenu = DirectCast(item.FindControl("lblNmMenu"), Label).Text.Trim If Not _BisOrder.validasiMenu(noMenu, qty, avStock) Then If avStock < 1 Then CType(Me.Master, msPage).ShowClientInfo("stockChecked", String.Format("Menu ""{0}"" telah habis. Silakan memesan menu yang lain.", nmMenu)) Else CType(Me.Master, msPage).ShowClientInfo("stockChecked", String.Format("Stok Menu ""{0}"" tidak mencukupi untuk jumlah pemesanan anda. Menu hanya tersedia untuk {1} porsi", nmMenu, avStock)) End If Exit Sub End If End If Next SavePesanan() orderState = BisPemesanan.orderState.Submit displayHandler() Catch ex As Exception CType(Me.Master, msPage).RaiseError(ex) End Try End Sub Public Sub SavePesanan() Try Dim _cClok As DateTime = Now Dim _tbl As AntrianDataTable = New AntrianTableAdapter().GetDataByStatus(1) Dim _status As orderStatus = orderStatus.Waiting If (Me.NoMeja = 0) Then Throw New Exception("Identitas Meja tidak ditemukan, periksa data master meja untuk IP No. " & IPAddress) End If Dim dbPesanan As New PesananTableAdapter Dim _timeProcess As Decimal = 0
LANJUTAN LAMPIRAN 8 Kode program Halaman Pemesanan (Default.aspx.vb)
Dim _totHarga As Double = 0 Dim _Jum As String = "" Dim _tblMenu As msMenuDataTable = New msMenuTableAdapter().GetData Dim _dRow() As msMenuRow = Nothing Dim _noMenu As String = "" For Each _row As DataListItem In dlMenu.Items If _row.ItemType = ListItemType.Item Or _row.ItemType = ListItemType.AlternatingItem Then _noMenu = DirectCast(_row.FindControl("hdnId"), HiddenField).Value _Jum = DirectCast(_row.FindControl("txtjum"), TextBox).Text.Trim If Not IsNumeric(_noMenu) Then _noMenu = "0" If Not IsNumeric(_Jum) Then _Jum = "0" _dRow = _tblMenu.Select(String.Format("noMenu={0}", _noMenu)) If _dRow IsNot Nothing Then _totHarga += CDbl(_dRow(0).Harga) * CDec(_Jum) _timeProcess += CDec(_dRow(0).EstWaktuOlah) * CDbl(_Jum) End If End If Next dbPesanan.Insert(Me.NoMeja, Now, _timeProcess, _totHarga, _status, 0) Dim _lastNoPesanan As Long = dbPesanan.GetMaxNoPesanan Dim dbOrderDtl As New dtlPesananTableAdapter Dim _ix As Int16 = 0, _tipe As Int16, _ket As String = "" For Each _row As DataListItem In dlMenu.Items If _row.ItemType = ListItemType.Item Or _row.ItemType = ListItemType.AlternatingItem Then _ix += 1 _noMenu = DirectCast(_row.FindControl("hdnId"), HiddenField).Value _Jum = DirectCast(_row.FindControl("txtjum"), TextBox).Text.Trim _tipe = DirectCast(_row.FindControl("ddlOrderType"), DropDownList).SelectedValue _ket = DirectCast(_row.FindControl("txtnotes"), TextBox).Text.Trim
LANJUTAN LAMPIRAN 8 Kode program Halaman Pemesanan (Default.aspx.vb)
If Not IsNumeric(_noMenu) Then _noMenu = "0" If Not IsNumeric(_Jum) Then _Jum = "0" dbOrderDtl.Insert(_lastNoPesanan, _ix, CLng(_noMenu), CDec(_Jum), _tipe, _ket, _status) End If Next CType(Me.Master, msPage).ShowClientInfo("saveData", "Terimakasih. Pesanan anda sedang kami proses..") Catch ex As Exception Throw New Exception(ex.Message) End Try End Sub Private Sub bindInfo() Dim oPesanan As New PesananTableAdapter Dim oTblPesanan() As PesananRow = oPesanan.GetDataByMeja(NoMeja).Select("status<>6") dlOrderInfo.DataSource = oTblPesanan dlOrderInfo.DataBind() updInfo.Update() End Sub Protected Sub dlOrderInfo_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles dlOrderInfo.ItemDataBound If e.Item IsNot Nothing Then If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then Dim gvDtlInfo As GridView = e.Item.FindControl("dtlOrder") If gvDtlInfo IsNot Nothing Then Dim tblOrder As dtlPesananDataTable = New dtlPesananTableAdapter().GetDataByPesanan(DirectCast(e.Item.FindCo ntrol("info_no"), Label).Text) gvDtlInfo.DataSource = tblOrder gvDtlInfo.DataBind() End If ElseIf e.Item.ItemType = ListItemType.Header Then sqlDsInfo.SelectParameters.Clear() sqlDsInfo.SelectParameters.Add(New Parameter("noMeja", DbType.Int64, Me.NoMeja.ToString))
LANJUTAN LAMPIRAN 8 Kode program Halaman Pemesanan (Default.aspx.vb)
Dim hdrView As DataView = sqlDsInfo.Select(DataSourceSelectArguments.Empty) If hdrView.Count > 0 Then DirectCast(e.Item.FindControl("info_jumorder"), Label).Text = hdrView(0)("jumPesanan").ToString() DirectCast(e.Item.FindControl("info_estwaktu"), Label).Text = String.Format("{0} Jam", FormatNumber(CDec(hdrView(0)("totEstWaktu")), 2)) DirectCast(e.Item.FindControl("info_totharga"), Label).Text = String.Format("Rp.{0}", FormatNumber(CDbl(hdrView(0)("totHarga")), 2)) DirectCast(e.Item.FindControl("info_persenppn"), Label).Text = String.Format("{0}%", FormatNumber(hdrView(0)("PPN_Percent"), 0)) DirectCast(e.Item.FindControl("info_ppn"), Label).Text = String.Format("Rp.{0}", FormatNumber(CDbl(hdrView(0)("PPN_Amt")), 2)) DirectCast(e.Item.FindControl("info_totbayar"), Label).Text = String.Format("Rp.{0}", FormatNumber(CDbl(hdrView(0)("totalBayar")), 2)) End If End If End If End Sub Protected Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick bindInfo() updInfo.Update() End Sub Protected Sub doCancelOrder(ByVal sender As Object, ByVal e As EventArgs) Try Dim noPesanan As String = DirectCast(DirectCast(sender, Button).NamingContainer.FindControl("info_no"), Label).Text Dim oPesanan As New PesananTableAdapter oPesanan.DeleteCascade(noPesanan.Trim) bindInfo() updInfo.Update() Catch ex As Exception CType(Me.Master, msPage).RaiseError(ex) End Try
LANJUTAN LAMPIRAN 8 Kode program Halaman Pemesanan (Default.aspx.vb)
End Sub Protected Sub doAddOrder(ByVal sender As Object, ByVal e As EventArgs) Try orderState = BisPemesanan.orderState.ReOrder TableSelectedMenu = Nothing bindGridMenu() displayHandler() Catch ex As Exception CType(Me.Master, msPage).RaiseError(ex) End Try End Sub End Class
LAMPIRAN 9 Kode Program Login (Login.Aspx)
Imports datalibrary Imports datalibraryTableAdapters Partial Class Login Inherits System.Web.UI.Page Protected Sub btnLogin_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnLogin.Click Dim _password As String = "" Dim _tbl As msPegawaiDataTable = New msPegawaiTableAdapter().GetDataByLogin(txtlogin.Text.Trim) If _tbl.Rows.Count > 0 Then _password = _tbl(0).password If _password Is Nothing Then DirectCast(Me.Master, msPage).RaiseError(New Exception("ID yang anda masukkan salah, silakan coba lagi..!")) Else If String.Compare(txtPassword.Text, _password, False) = 0 Then Select Case _tbl(0).Posisi Case 0 Response.Redirect(String.Format("AdminPage.aspx?by={0}", _tbl(0).userLogin)) Case 1 Response.Redirect(String.Format("queDisplay.aspx?by={0}", _tbl(0).userLogin)) Case 2 Response.Redirect(String.Format("CashierPage.aspx?by={0}", _tbl(0).userLogin)) End Select Else DirectCast(Me.Master, msPage).RaiseError(New Exception("Password yang anda masukkan salah, silakan ulangi lagi!")) End If End If Else DirectCast(Me.Master, msPage).RaiseError(New Exception("ID yang anda masukkan salah, silakan coba lagi..!")) End If End Sub Protected Sub btnReset_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnReset.Click txtlogin.Text = "" txtPassword.Text = ""
LANJUTAN LAMPIRAN 9 Kode Program Login (Login.Aspx)
End Sub Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load CType(Me.Master, msPage).FindControl("login").Visible = False CType(Me.Master, msPage).FindControl("logout").Visible = False If Not Page.IsPostBack Then txtlogin.Focus() End If End Sub End Class
LAMPIRAN 10 Kode program Halaman Koki (queDisplay.aspx.vb)
Imports datalibrary Imports datalibraryTableAdapters Partial Class queDisplay Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load CType(Me.Master, msPageUser).FindControl("login").Visible = False CType(Me.Master, msPageUser).FindControl("logout").Visible = True If Not Page.IsPostBack Then bindgrid() End If End Sub Private Sub bindgrid(Optional ByVal src As String = "") Try Dim _dlibrary As New datalibrary Dim _login As String = CType(Me.Master, msPageUser).LoginId Dim dv As System.Data.DataView = _dlibrary.DaftarPesananan(_login).DefaultView dv.RowFilter = src GridView1.DataSource = dv GridView1.DataBind() Catch ex As Exception CType(Me.Master, msPageUser).RaiseError(ex) End Try End Sub Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand Try Dim _pesanan As New PesananTableAdapter Dim _status As Int16 hdnAction.Value = e.CommandName hdnNoPesanan.Value = e.CommandArgument.ToString
LANJUTAN LAMPIRAN 10 Kode program Halaman Koki (queDisplay.aspx.vb)
If e.CommandName = "detail" Then displayHandler(1) Else Select Case e.CommandName Case "proses" _status = 3 displayHandler(1) Case "hold" _status = 10 Case "batal" _status = 8 End Select _pesanan.UpdateStatusPesanan(CInt(e.CommandArgument), _status) If _status <> 3 Then displayHandler(0) End If End If Catch ex As Exception CType(Me.Master, msPageUser).RaiseError(ex) End Try End Sub Private Sub displayHandler(ByVal md As Int16) Select Case md Case 0 Panel1.Visible = True pnlDtl.Visible = False bindgrid() pnlQueInfo.Update() Case 1 Panel1.Visible = False pnlDtl.Visible = True bindGridDtl() upDtlOrder.Update() End Select End Sub Sub bindGridDtl() Try Dim _dtl As New datalibrary gvDtlOrder.DataSource = _dtl.DetailPesanan(hdnNoPesanan.Value) gvDtlOrder.DataBind() Catch ex As Exception CType(Me.Master, msPageUser).RaiseError(ex)
LANJUTAN LAMPIRAN 10 Kode program Halaman Koki (queDisplay.aspx.vb)
End Try End Sub Protected Sub btnSearch_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSearch.Click Dim srcParam As String = "" If srcMeja.SelectedIndex > 0 Then srcParam = "noMeja=" & srcMeja.SelectedValue End If If srcStatus.SelectedIndex > 0 Then srcParam &= IIf(srcParam <> "", " and ", "") & "Status = " & srcStatus.SelectedValue End If bindgrid(srcParam) End Sub Protected Sub btnBack_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnBack.Click displayHandler(0) End Sub Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound If e.Row.DataItem IsNot Nothing Then Dim _status As Integer = DirectCast(e.Row.FindControl("hdnStatus"), HiddenField).Value Select Case _status Case 2 DirectCast(e.Row.FindControl("btnProcess"), Button).Enabled = True DirectCast(e.Row.FindControl("btnCancel"), Button).Enabled = True Case 3 DirectCast(e.Row.FindControl("btnProcess"), Button).Enabled = True DirectCast(e.Row.FindControl("btnCancel"), Button).Enabled = False Case 10 DirectCast(e.Row.FindControl("btnProcess"), Button).Enabled = True DirectCast(e.Row.FindControl("btnCancel"), Button).Enabled = True Case 8 DirectCast(e.Row.FindControl("btnProcess"), Button).Enabled = False
LANJUTAN LAMPIRAN 10 Kode program Halaman Koki (queDisplay.aspx.vb)
DirectCast(e.Row.FindControl("btnCancel"), Button).Enabled = False End Select End If End Sub Protected Sub gvDtlOrder_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles gvDtlOrder.RowCommand Dim _status As Integer Dim _da As New datalibrary Dim _nopesanan As Integer = hdnNoPesanan.Value Dim _noMenu As Integer Dim oMenu As New msMenuTableAdapter _noMenu = DirectCast(CType(e.CommandSource, Button).NamingContainer.FindControl("hdnNoMenu"), HiddenField).Value Select Case e.CommandName Case "empty" _status = 8 oMenu.UpdateStatus(3, _noMenu) Case "endpro" _status = 4 Case "onprocess" If Not _da.checkStatusMenu(_noMenu) Then CType(Me.Master, msPageUser).ShowClientInfo("onCheckMenu", "Menu yang hendak anda proses telah habis") _status = 8 Else _status = 3 End If End Select Dim oDtlOrder As New dtlPesananTableAdapter oDtlOrder.UpdateStatus(_nopesanan, CInt(e.CommandArgument), _status) bindGridDtl() upDtlOrder.Update() End Sub Protected Sub gvDtlOrder_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvDtlOrder.RowDataBound If e.Row.DataItem IsNot Nothing Then If hdnAction.Value = "detail" Then DirectCast(e.Row.FindControl("btnHabis"), Button).Visible = False
LANJUTAN LAMPIRAN 10 Kode program Halaman Koki (queDisplay.aspx.vb)
DirectCast(e.Row.FindControl("btnOlah"), Button).Visible = False DirectCast(e.Row.FindControl("btnSajikan"), Button).Visible = False Else Select Case DirectCast(e.Row.FindControl("hdnMnStatus"), HiddenField).Value Case 1 DirectCast(e.Row.FindControl("btnHabis"), Button).Enabled = True DirectCast(e.Row.FindControl("btnOlah"), Button).Enabled = True DirectCast(e.Row.FindControl("btnSajikan"), Button).Enabled = False Case 3 DirectCast(e.Row.FindControl("btnHabis"), Button).Enabled = False DirectCast(e.Row.FindControl("btnOlah"), Button).Enabled = False DirectCast(e.Row.FindControl("btnSajikan"), Button).Enabled = True Case 4 DirectCast(e.Row.FindControl("btnHabis"), Button).Enabled = False DirectCast(e.Row.FindControl("btnOlah"), Button).Enabled = False DirectCast(e.Row.FindControl("btnSajikan"), Button).Enabled = True Case 5 DirectCast(e.Row.FindControl("btnHabis"), Button).Enabled = False DirectCast(e.Row.FindControl("btnOlah"), Button).Enabled = False DirectCast(e.Row.FindControl("btnSajikan"), Button).Enabled = False End Select End If End If End Sub Protected Sub btnSetMenu_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSetMenu.Click Response.Redirect("setMenu.aspx?by=" & CType(Me.Master, msPageUser).LoginId) End Sub Protected Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick bindgrid pnlQueInfo.Update() End Sub End Class
LAMPIRAN 11 Kode program Halaman Kasir (cashierPage.aspx.vb)
Imports datalibrary Imports datalibraryTableAdapters Imports System.Data Partial Class cashierPage Inherits System.Web.UI.Page Private Sub bindgrid(Optional ByVal src As String = "") Try Dim _dlibrary As New datalibrary Dim dv As System.Data.DataView = _dlibrary.DaftarPesananan("").DefaultView dv.RowFilter = src GridView1.DataSource = dv GridView1.DataBind() Catch ex As Exception CType(Me.Master, msPageUser).RaiseError(ex) End Try End Sub Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand Try Dim _pesanan As New PesananTableAdapter Dim _status As Int16 hdnAction.Value = e.CommandName hdnNoPesanan.Value = e.CommandArgument.ToString If e.CommandName = "detail" Then displayHandler(1) Else Select Case e.CommandName Case "proses" _status = 3 displayHandler(1) Case "hold" _status = 10 Case "batal" _status = 8 End Select _pesanan.UpdateStatusPesanan(CInt(e.CommandArgument), _status) If _status <> 3 Then
LANJUTAN LAMPIRAN 11 Kode program Halaman Kasir (cashierPage.aspx.vb)
displayHandler(0) End If End If Catch ex As Exception CType(Me.Master, msPageUser).RaiseError(ex) End Try End Sub Private Sub displayHandler(ByVal md As Int16) Select Case md Case 0 pnlOrderMonitor.Visible = False Panel1.Visible = True pnlDtl.Visible = False bindgrid() pnlQueInfo.Update() Case 1 pnlOrderMonitor.Visible = False Panel1.Visible = False pnlDtl.Visible = True bindGridDtl() pnlQueInfo.Update() Case 2 pnlOrderMonitor.Visible = True Panel1.Visible = False pnlDtl.Visible = False upOrderMonitor.Update() End Select End Sub Sub bindGridDtl() Try Dim _dtl As New datalibrary gvDtlOrder.DataSource = _dtl.DetailPesanan(hdnNoPesanan.Value) gvDtlOrder.DataBind() Catch ex As Exception CType(Me.Master, msPageUser).RaiseError(ex) End Try End Sub Protected Sub btnSearch_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSearch.Click Dim srcParam As String = "" If srcMeja.SelectedIndex > 0 Then srcParam = "noMeja=" & srcMeja.SelectedValue
LANJUTAN LAMPIRAN 11 Kode program Halaman Kasir (cashierPage.aspx.vb)
End If If srcStatus.SelectedIndex > 0 Then srcParam &= IIf(srcParam <> "", " and ", "") & "Status = " & srcStatus.SelectedValue End If bindgrid(srcParam) End Sub Protected Sub btnBack_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnBack.Click displayHandler(0) End Sub Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound If e.Row.DataItem IsNot Nothing Then Dim _status As Integer = DirectCast(e.Row.FindControl("hdnStatus"), HiddenField).Value Select Case _status Case 2 DirectCast(e.Row.FindControl("btnCancel"), Button).Enabled = True Case 3 DirectCast(e.Row.FindControl("btnCancel"), Button).Enabled = False Case 10 DirectCast(e.Row.FindControl("btnCancel"), Button).Enabled = True Case 8 DirectCast(e.Row.FindControl("btnCancel"), Button).Enabled = False End Select End If End Sub Protected Sub gvDtlOrder_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles gvDtlOrder.RowCommand Dim _da As New datalibrary Dim _nopesanan As Integer = hdnNoPesanan.Value Dim _noMenu As Integer If e.CommandName = "empty" Then _noMenu = DirectCast(CType(e.CommandSource, Button).NamingContainer.FindControl("hdnNoMenu"), HiddenField).Value Dim oMenu As New dtlPesananTableAdapter
LANJUTAN LAMPIRAN 11 Kode program Halaman Kasir (cashierPage.aspx.vb)
oMenu.UpdateStatus(_nopesanan, CInt(e.CommandArgument), 8) bindGridDtl() pnlQueInfo.Update() End If End Sub Protected Sub gvDtlOrder_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvDtlOrder.RowDataBound If e.Row.DataItem IsNot Nothing Then If hdnAction.Value = "detail" Then DirectCast(e.Row.FindControl("btnCancel"), Button).Visible = False Else Select Case DirectCast(e.Row.FindControl("hdnMnStatus"), HiddenField).Value Case 1 DirectCast(e.Row.FindControl("btnCancel"), Button).Enabled = True Case 3 DirectCast(e.Row.FindControl("btnCancel"), Button).Enabled = False Case 4 DirectCast(e.Row.FindControl("btnCancel"), Button).Enabled = False Case 5 DirectCast(e.Row.FindControl("btnCancel"), Button).Enabled = False End Select End If End If End Sub Private Sub BindGridMonitor(Optional ByVal src As String = "") Try Dim _oLib As New datalibrary() Dim _dv As DataView = _oLib.DetailPesananSiapSaji gvOrderMonitor.DataSource = _dv gvOrderMonitor.DataBind() Catch ex As Exception CType(Me.Master, msPageUser).RaiseError(ex) End Try End Sub Protected Sub btnOrderList_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnOrderList.Click If btnOrderList.Text = "Daftar pesanan" Then btnOrderList.Text = "Daftar Menu Siap Saji"
LANJUTAN LAMPIRAN 11 Kode program Halaman Kasir (cashierPage.aspx.vb)
displayHandler(0) Else btnOrderList.Text = "Daftar pesanan" displayHandler(2) End If End Sub Protected Sub btnSrcMenu_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSrcMenu.Click Dim _src As String = "" If src_mnmeja.SelectedIndex > 0 Then _src = "noMeja = " & src_mnmeja.SelectedValue End If BindGridMonitor(_src) displayHandler(2) End Sub Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load CType(Me.Master, msPageUser).FindControl("login").Visible = False CType(Me.Master, msPageUser).FindControl("logout").Visible = True If Not Page.IsPostBack Then BindGridMonitor() displayHandler(2) End If End Sub Protected Sub gvOrderMonitor_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles gvOrderMonitor.RowCommand If e.CommandName = "endpro" Then Dim oMenu As New dtlPesananTableAdapter Dim _noPesanan As Int16 = DirectCast(CType(e.CommandSource, Button).NamingContainer.FindControl("hdnNoPesanan"), HiddenField).Value oMenu.UpdateStatus(_noPesanan, CInt(e.CommandArgument), 5) BindGridMonitor() displayHandler(2) End If End Sub
LANJUTAN LAMPIRAN 11 Kode program Halaman Kasir (cashierPage.aspx.vb)
Protected Sub gvOrderMonitor_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvOrderMonitor.RowDataBound If e.Row.DataItem IsNot Nothing Then If DirectCast(e.Row.FindControl("hdnStatus"), HiddenField).Value = 5 Then DirectCast(e.Row.FindControl("btnSajikan"), Button).Enabled = False Else DirectCast(e.Row.FindControl("btnSajikan"), Button).Enabled = True End If End If End Sub Protected Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick BindGridMonitor() End Sub End Class
LAMPIRAN 12 Kode Program Halaman Administrator (adminPage.aspx.vb)
Imports datalibrary Imports datalibraryTableAdapters Partial Class AdminPage Inherits System.Web.UI.Page Enum displayMode Dashboard = 0 UserMain = 1 UserForm = 2 menuMain = 3 menuForm = 4 SettingMain = 5 SettingForm = 6 End Enum Protected Sub btnSearch_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSearch.Click grdUsr.DataBind() DisplayHandler(displayMode.UserMain) End Sub Protected Sub btnReset_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnReset.Click src_Keyword.Text = "" src_posisi.SelectedIndex = 0 src_status.SelectedIndex = 0 grdUsr.DataBind() DisplayHandler(displayMode.UserMain) End Sub Private Sub DisplayHandler(ByVal mode As displayMode) Select Case mode Case displayMode.Dashboard pnlDashboard.Visible = True pnlUser.Visible = False Case displayMode.UserForm pnlDashboard.Visible = False pnlUser.Visible = True pnlUsrMain.Visible = False pnlUsrForm.Visible = True Case displayMode.UserMain pnlDashboard.Visible = False pnlUser.Visible = True pnlUsrMain.Visible = True pnlUsrForm.Visible = False
LANJUTAN LAMPIRAN 12 Kode Program Halaman Administrator (adminPage.aspx.vb)
End Select End Sub Protected Sub btnMsMenu_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnMsMenu.Click Response.Redirect("msMenu.aspx") End Sub Protected Sub btnMsUsr_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnMsUsr.Click DisplayHandler(displayMode.UserMain) End Sub 'Protected Sub btnMsSetting_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnMsSetting.Click ' DisplayHandler(displayMode.SettingMain) 'End Sub Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load CType(Me.Master, msPageUser).FindControl("login").Visible = False CType(Me.Master, msPageUser).FindControl("logout").Visible = True If Not Page.IsPostBack Then DisplayHandler(displayMode.Dashboard) End If End Sub Protected Sub btnBackDB_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnBackDB.Click DisplayHandler(displayMode.Dashboard) End Sub Protected Sub btnSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSave.Click If frmUsr.CurrentMode = FormViewMode.Edit Then If DirectCast(frmUsr.FindControl("txtPassword"), TextBox).Text <> "" Then DirectCast(frmUsr.FindControl("hdnPassword"), HiddenField).Value = DirectCast(frmUsr.FindControl("txtPassword"), TextBox).Text End If frmUsr.UpdateItem(False) grdUsr.DataBind() DisplayHandler(displayMode.UserMain) Else If DirectCast(frmUsr.FindControl("txtPassword"), TextBox).Text <> "" Then
LANJUTAN LAMPIRAN 12 Kode Program Halaman Administrator (adminPage.aspx.vb)
DirectCast(frmUsr.FindControl("hdnPassword"), HiddenField).Value = DirectCast(frmUsr.FindControl("txtPassword"), TextBox).Text End If frmUsr.InsertItem(False) grdUsr.DataBind() DisplayHandler(displayMode.UserMain) End If End Sub Protected Sub btnBack_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnBack.Click DisplayHandler(displayMode.UserMain) End Sub Protected Sub grdUsr_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles grdUsr.SelectedIndexChanged Try frmUsr.ChangeMode(FormViewMode.Edit) hdnUsrID.Value = grdUsr.SelectedValue frmUsr.DataBind() DisplayHandler(displayMode.UserForm) Catch ex As Exception CType(Me.Master, msPageUser).RaiseError(ex) End Try End Sub Protected Sub btnAdd_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAdd.Click frmUsr.ChangeMode(FormViewMode.Insert) hdnUsrID.Value = 0 frmUsr.DataBind() DisplayHandler(displayMode.UserForm) End Sub Protected Sub frmUsr_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles frmUsr.DataBound If frmUsr.DataItem IsNot Nothing Then DirectCast(frmUsr.FindControl("txtLoginID"), TextBox).Enabled = (frmUsr.CurrentMode = FormViewMode.Insert) DirectCast(frmUsr.FindControl("txtNama"), TextBox).Enabled = (frmUsr.CurrentMode = FormViewMode.Insert) End If End Sub Protected Sub btnMsMeja_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnMsMeja.Click Response.Redirect("msMeja.aspx") End Sub End Class
LAMPIRAN 13 Tampilan Halaman Pemesanan (default.aspx) (Halaman Utama)
LAMPIRAN 14 Tampilan Halaman Pemesanan (default.aspx) (Halaman Konfirmasi)
LAMPIRAN 15 Tampilan Halaman Pemesanan (default.aspx) (Halaman Informasi)
LAMPIRAN 16 Tampilan Halaman Login (Login.aspx)
LAMPIRAN 17 Tampilan Halaman Administrator (AdminPage.aspx) (Halaman Utama)
LAMPIRAN 18 Tampilan Halaman Administrator (AdminPage.aspx) (Halaman Daftar Pegawai)
LAMPIRAN 19 Tampilan Halaman Administrator (AdminPage.aspx) (Halaman Form Daftar Pegawai)
LAMPIRAN 20 Tampilan Halaman Master Menu (msMenu.aspx) (Halaman Utama)
LAMPIRAN 21 Tampilan Halaman Master Menu (msMenu.aspx) (Halaman Form Master Menu)
LAMPIRAN 22 Tampilan Halaman Master Meja (msMeja.aspx) (Halaman Utama)
LAMPIRAN 23 Tampilan Halaman Master Meja (msMeja.aspx) (Halaman Form Master Meja)
LAMPIRAN 24 Tampilan Halaman Koki (queDisplay.aspx) (Halaman Utama)
LAMPIRAN 25 Tampilan Halaman Koki (queDisplay.aspx) (Halaman Detail Pesanan)
LAMPIRAN 26 Tampilan Halaman Koki (queDisplay.aspx) (Halaman Proses Pesanan)
LAMPIRAN 27 Tampilan Halaman Koki (queDisplay.aspx) (Halaman Seting Status Menu)
LAMPIRAN 28 Tampilan Halaman Kasir (cashierPage.aspx)