Perancangan Aplikasi Internet E-Commerce Oryza Fashop

(1)

PERANCANGAN APLIKASI INTERNET E-COMMERCE

ORYZA FASHOP

TUGAS AKHIR

NURFIKA RANI SIREGAR

102406162

PROGRAM STUDI D-3 TEKNIK INFORMATIKA

DEPARTEMEN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN

2013


(2)

PERANCANGAN APLIKASI INTERNET E-COMMERCE ORYZA FASHOP

TUGAS AKHIR

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh gelar Ahli Madya Komputer

NURFIKA RANI SIREGAR

102406162

PROGRAM STUDI D-3 TEKNIK INFORMATIKA DEPARTEMEN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

MEDAN 2013


(3)

PERSETUJUAN

Judul : PERACANGAN APLIKASI INTERNET E- COMMERCE ORYZA FASHOP

Kategori : TUGAS AKHIR

Nama : NURFIKA RANI SIREGAR Nomor Induk Mahasiswa : 102406162

Program Studi : DIPLOMA (D3) TEKNIK INFORMATIKA Departemen : MATEMATIKA

Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA

Diketahui/ Disetujui oleh

Ketua Departemen Matematika Pembimbing

Prof.Drs.Tulus, Vordipl.Math.,M.Si.,Ph.D Drs.Henry Rani Sitepu, M.Si NIP. 196209011988031002 NIP. 195303031983031002


(4)

PERNYATAAN

PERANCANGAN APLIKASI INTERNET E-COMMERCE ORYZA FASHOP

TUGAS AKHIR

Saya mengakui bahwa tugas akhir ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, Juni 2013

NURFIKA RANI SIREGAR 102406162


(5)

PENGHARGAAN

Bismillahirrahmanirrahim

Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa atas limpahan rahmat dan hidayah-Nya sehingga kajian tugas akhir ini dapat diselesaikan dengan baik dan dalam waktu yang telah ditetapkan.

Penyusunan tugas akhir ini masih banyak memiliki kekurangan karena keterbatasan kemampuan dan pengetahuan penulis, sehingga diharapkan kritik dan saran yang membangun serta dapat memberikan inspirasi yang baik untuk kemajuan tugas akhir ini.

Tugas Akhir merupakan salah satu syarat yang harus dilakukan setiap mahasiswa Ilmu Komputer untuk dapat menyelesaikan pendidikan di Program D-3 Teknik Informatika Fakultas Matematika dan Ilmu Pengetahuan Alam di Universitas Sumatera Utara.

Pada kesempatan ini penulis juga menyampaikan terima kasih kepada seluruh pihak yang sudah banyak membantu:

1. Bapak Dr. Sutarman, M.sc, selaku Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam di Universitas Sumatera Utara.

2. Bapak Prof. Drs. Tulus, Vordipl,M.Si.,Ph.D, selaku ketua Departemen Matematika di Universitas Sumatera Utara.

3. Bapak Drs. Henry Rani Sitepu,M.S., selaku Dosen pembimbing pada penyelesaian tugas akhir ini yang telah memberikan panduan dan penuh kepercayaan kepada penulis untuk menyelesaikan kajian tugas akhir ini.

4. Para Staf/Pengajar Jurusan D-3 Teknik Informatika FMIPA USU.

5. Ayah saya tersayang Ahmad Taufik Siregar dan Ibu saya Darimah serta adik saya Nazila Rizki Yani Siregar dan Nur Amalina Siregar untuk segenap doa, pengertian dan dukungannya.


(6)

6. Keluarga kedua, saudara-saudara saya yang tersayang di UKMI AL-FALAK FMIPA USU yang setiap saat memberikan seuntai doa dan semangat dalam menyusun tugas akhir ini.

7. Sahabat saya Lia dan Ami yang berperan penting dalam menyelesaikan tugas akhir ini.

8. Yang tersayang, Oryza Family yang setiap hari dan setiap saat mendukung saya.

9. Seluruh teman-teman angkatan 2010 dari D-3 Teknik Informatika FMIPA USU, khususnya kelas Kom C Anggy, Vivi, Icha, Irma, Dwi, Septi, Hamdan, Ryan terima kasih atas saran dan kritik dalam penyusunan Tugas Akhir ini. 10.Semua pihak yang telah membantu dalam menyelesaikan Tugas Akhir ini yang

tidak dapat disebutkan namanya satu per satu.

Penulis menyadari sepenuhnya bahwa dalam penyusunan laporan ini masih banyak kekurangan, karena keterbatasan pengetahuan dan kemampuan, untuk itu kritik dan saran yang membangun dari pembaca sangat diharapkan demi kesempurnaan Tugas Akhir ini.

Demikian penulis sampaikan dengan harapan Tugas Akhir ini dapat bermanfaat bagi pembaca dan penulis sendiri.


(7)

DAFTAR ISI

Halaman

Persetujuan ... ii

Pernyataan ... iii

Penghargaan ... iv

Daftar Isi ... vi

Daftar Tabel ... ix

Daftar Gambar ...x

BAB 1 PENDAHULUAN ...1

1.1 Latar Belakang ...1

1.2 Rumusan Masalah ...2

1.3 Batasan Masalah ...2

1.4 Tujuan Penelitian ...2

1.5 Manfaat Penelitian ...3

1.6 Metodologi Penelitian ...3

1.7 Sistematika Penelitian ...4

BAB 2 LANDASAN TEORI ...6

2.1 Pengertian Komputer ...6

2.2 Sistem ...6

2.3 Internet ...7

2.3.1 Sejarah Internet ...7

2.4 E-Commerce ...8

2.5 Sejarah E- Commerce ...10

2.6 Web Server ... 11

2.7 PHP (Personal Home Page) ... 11

2.7.1 Pengertian PHP ... 11

2.7.2 Sejarah PHP ... 11

2.7.3 Kelebihan-Kelebihan PHP...12

2.7.4 Sintaks PHP ...12


(8)

2.8 MySQL ...15

2.9 Mengkoneksikan PHP dengan databaseMySQL ...15

BAB 3 PERANCANGAN SISTEM ...17

3.1 Perancangan Sistem ...17

3.2 Perancangan Data Flow Diagram(DFD)...17

3.3 Diagram Level Konteks ...18

3.4 Perancangan Database ...19

3.4.1 FieldName ...20

3.4.2 FieldTable ...20

3.5 Flowchart ...22

3.5.1 Menu Utama...24

BAB 4 IMPLEMENTASI SISTEM ...25

4.1 Pengertian Implementasi Sistem ...25

4.2 Tujuan Implementasi Sistem ...25

4.3 Komponen Utama dalam Sistem ...25

4.3.1 Perangkat Keras(hardware) ...26

4.3.2 Perangkat Lunak(software) ...26

4.4 Demonstrasi Program...28

4.4.1 LoginAdmin ...28

4.4.2 Tampilan Menu Utama...29

4.4.3 Tampilan Kategori Produk ...29

4.4.4 Tampilan Keranjang Belanja ...30

BAB 5 KESIMPULAN DAN SARAN ...31

5.1 Kesimpulan ...31

5.2 Saran ...32

DAFTAR PUSTAKA ...33 LAMPIRAN A: Surat Keterangan Uji Program

Kartu Bimbingan Tugas Akhir LAMPIRAN B: Listing Program


(9)

DAFTAR TABEL

Halaman Tabel 3.1 Simbol-simbol DFD ...17 Tabel 3.2 Field Name ...20 Tabel 3.3 Simbol-simbol Flowchart ...22


(10)

DAFTAR GAMBAR

Halaman

Gambar 2.1 Sintaks PHP ...14

Gambar 3.1 Diagram Konteks ...19

Gambar 3.2 Kategori ...20

Gambar 3.3 Produk ...20

Gambar 3.4 Order ...21

Gambar 3.5 Customer ...21

Gambar 3.6 User ...21

Gambar 3.7 Flowchart Menu Utama ...24

Gambar 4.1 Tampilan Antarmuka Sistem Operasi Windows 7 ...26

Gambar 4.2 Tampilan Opencart ...27

Gambar 4.3 Tampilan phpMyAdmin ...27

Gambar 4.4 Tampilan LoginAdmin ...28

Gambar 4.5 Tampilan Menu Utama ...29

Gambar 4.6 Tampilan Kategori dan Produk ...29


(11)

Teknologi informasi saat ini sudah menjadi bagian utama dalam kegiatan bisnis dunia. Dengan berbasis teknologi informasi nilai bisnis diyakini akan semakin meningkat, oleh karena itu mutlak diperlukan pengembangan bisnisyang berbasis teknologi informasi. Bisnis secara atau berbasis teknologi informasi dapat melengkapi atau bahkan dapat menggantikan metode bisnis secara manual atau offline. Terlebih dalam penjualan produk, metode offlinehanya akan efektif jika masih dalam lingkup satu area geografis dalam arti kata pembeli dan penjual bertemu langsung dan mengadakan transaksi di tempat. Sedangkan dalam rangka meningkatkan nilai bisnis, meraih lebih banyak customer,para pelaku bisnis tentu akan menambah area pemasaran

produknya. Dan itu tentu sulit dilakukan jika hanya mengedepankan metode offlinesaja. Dengan berbasis teknologi informasi informasi kendala –kendala tersebut dapat diatasi. Secara khusus yaitu dengan perdagangan berbasis teknologi informasi / onlineatau yang lebih populer disebute-commerce.


(12)

BAB I

PENDAHULUAN

1.1 Latar Belakang

Teknologi informasi saat ini sudah menjadi bagian utama dalam kegiatan bisnis dunia. Dengan berbasis teknologi informasi nilai bisnis diyakini akan semakin meningkat, oleh karena itu mutlak diperlukan pengembangan bisnis yang berbasis teknologi informasi. Bisnis secara atau berbasis teknologi informasi dapat melengkapi atau bahkan dapat menggantikan metode bisnis secara manual atau offline. Terlebih dalam penjualan produk, metode offline hanya akan efektif jika masih dalam lingkup satu area geografis dalam arti kata pembeli dan penjual bertemu langsung dan mengadakan transaksi di tempat. Sedangkan dalam rangka meningkatkan nilai bisnis, meraih lebih banyak customer, para pelaku bisnis tentu akan menambah area pemasaran produknya. Dan itu tentu sulit dilakukan jika hanya mengedepankan metode offline saja. Dengan berbasis teknologi informasi informasi kendala – kendala tersebut dapat diatasi. Secara khusus yaitu dengan perdagangan berbasis teknologi informasi / online atau yang lebih populer disebut e-commerce.

Melalui e-commerce kendala-kendala perdagangan secara offline dapat teratasi, tidak hanya kendala dalam aspek area geografis, dimana pembeli dari tempat / kota yang jauh dapat terlayani dengan baik karena customer tidak harus jauh jauh datang ke tempat penjual, transaksi cukup dilakukan di depan komputer yang terhubung ke jaringan internet, memilih barang yang akan dibeli, membayar secara online dan barang dikirim ke customer, dalam hal ini tidak hanya customer yang berada luar area saja yang terbantu tapi juga customer yang masih berada di satu area.


(13)

pembelian, penjualan, pemasaran barang dan jasa melalui sistem elektronik seperti internet, www, ataupun jaringan komputer lainnya. E-commerce dapat melibatkan transfer dana elektronik, pertukaran data elektronik, system manajemen inventori otomatis, dan system pengumpulan data otomatis.

Oleh karena itu, penulis mengajukan tugas akhir yang berjudul “PERANCANGAN APLIKASI INTERNET E-COMMERCE ORYZA FASHOP”. Dengan tujuan membuat konsumen tertarik untuk membeli dan produsen memasarkan produk dengan semenarik mungkin.

1.2 Rumusan Masalah

Berdasarkan latar belakang masalah tersebut maka dapat dirumuskan sebagai berikut: 1. Sulit ditemukan toko online yang mengutamakan kenyamanan pelanggan

2. Sulitnya pelanggan mempercayai penjualan secara online

1.3 Batasan Masalah

Untuk memberikan gambaran yang lebih jelas tentang penelitian yang dilaksanakan maka dapat dibatasi masalah diantaranya adalah perancangan aplikasi penjualan elektronik (e-commerce) ini hanya dalam menawarkan berbagai produk kebutuhan muslimah seperti jilbab,baju,rok panjang,dan aksesoris wanita muslimah karena kurangnya toko online yang secara khusus menjual perlengkapan tersebut.

1.4 Tujuan Penelitian

Adapun tujuan perancangan aplikasi internet e-commerce ini adalah:

1. Membuat pembeli tertarik dan percaya dengan penjualan secara online.

2. Meningkatkan efisiensi dan efektifitas dalam berbisnis dengan memanfaatkan teknologi informasi.


(14)

4. mengurangi biaya-biaya yang tidak diperlukan sehingga harga dari produk/service dan informasi tersebut dapat ditekan sedemikian rupa tanpa mengurangi dari kualitas yang ada.

1.5 Manfaat Penelitian

Manfaat dari perancangan aplikasi internet e-commerce ini adalah e-commerce memungkinkan pelanggan untuk berbelanja atau melakukan transaksi lain selama 24 jam sehari sepanjang tahun dari hampir setiap lokasi, internet e-commerce memasarkan produk dengan sangat menarik dan memberikan lebih banyak pilihan kepada pelanggan agar bisa memilih berbagai produk dari banyak vendor.

1.6Metodologi Penelitian

Penelitian ini akan dilaksanakan dengan mengikuti beberapa langkah yang akan digunakan penulis, yaitu:

1. Pengumpulan data-data pendukung

Pengumpulan data dalam penelitian penulis dilakukan dengan cara meriset langsung ke penjualan yang dituju (toko-toko muslimah) dengan mengumpulkan semua data-data yang berhubungan dengan penelitian.

2. Membuat Rancangan Aplikasi

Proses pembuatan ini meliputi pembuatan rancangan aplikasi dan pembuatan user interface aplikasi.

3. Pengujian Aplikasi

Menguji apakah aplikasi yang dibuat telah berhasil berjalan sesuai dengan keinginan dan melakukan perbaikan kesalahan jika masih terdapat error pada aplikasi.


(15)

4. Implementasi Aplikasi

Penerapan aplikasi yang dirancang setelah melalui tahap pengujian dan telah berjalan dengan baik.

5. Penyusunan dan pengadaan laporan

Tahap akhir dari penelitian yang dilakukan, yaitu membuat laporan tentang penelitian yang telah dilakukan.

1.7Sistematika Penulisan

Pembahasan dalam laporan ini terbagi dalam beberapa bab dan setiap bab terbagi pula atas beberapa sub bab. Secara umum, sistematis yang penulis gunakan dalam menyusun laporan Tugas Akhir adalah:

BAB 1 PENDAHULUAN

Bab ini menguraikan tentang latar belakang masalah, identifikasi masalah, tujuan masalah, batasan masalah, metode penelitian dan sistematika penulisan.

BAB 2 LANDASAN TEORI

Pada bab ini berisikan teori yang membahas tentang pengertian dan mengenal bahasa pemrograman yang mendukung perancangan aplikasi.

BAB 3 PERANCANGAN SISTEM

Bab ini menguraikan tentang rancangan sistem yang akan dibuat, pengertian perancangan system,persiapan database, data flow diagram,


(16)

flowchart, file yang digunakan, serta algoritma terbentuknya program.

BAB 4 IMPLEMENTASI SYSTEM

Pada bab ini menguraikan tentang definisi, tujuan, langkah-langkah dalam implementasi system, spesifikasi system, instalasi PHP, dan MySQL, pengujian di Browser, Tampilan halaman.

BAB 5 KESIMPULAN DAN SARAN

Bab ini berisi tentang kesimpulan dan saran dari hasil penelitian yang diperoleh penulis.


(17)

BAB 2

LANDASAN TEORI

2.1 Pengertian Komputer

Komputer adalah system elektronik untuk memanipulasi data yang cepat dan tepat serta dirancang dan diorganisasikan secara otomatis menerima dan menyimpan data input, memprosesnya dan menghasilkan output dibawah pengawasan suatu langkah istruksi-instruksi program yang tersimpan dimemori.

2.2 Sistem

System merupakan suatu tatanan yang terdiri atas sejumlah komponen fungsional (dengan satuan fungsi atau tugas khusus) yang saling berhubungan secara bersama-sama yang bertujuan untuk memenuhi suatu proses atau pekerjaan.

System adalah suatu kesatuan yang terdiri dari dua atau lebih komponen atau subsistem yang saling berinteraksi untuk mencapai suatu tujuan.

Dari beberapa uraian diatas mengenai definisi system, penulias dapat menyimpulkan pengertian dari system yang berkaitan dengan judul, yaitu “ Sistem adalah suatu cara yang dibuat sedemikian rupa yang terdiri dari dua elemen atau lebih yang saling berhubungan untuk mengatasi masalah atau kendala-kendala yang terjadi dengan tujuan yang diinginkan.


(18)

2.3 Internet

Secara harfiah, internet (kependekan dari kata „inter-network’) ialah rangkaian computer yang terhubung melintasi beberapa rangkaian. Manakala Internet (huruf „I‟ besar) ialah systemcomputer umum, yang terhubung secara global dan menggunakan TCP/IP sebagai protocol pertukaran packet (packet switching communication protocol). Rangkaian internet yang terbesar dinamakan internet. Cara menghubungkan rangkaian dengan kaidah ini dinamakan interworking, atau akrab disebut sebagai internet.

2.3.1 Sejarah Internet

Berdasarkan catatan sejarah dari berbagai sumber, internet pertama kali hari di dunia ketika ARPANET (Advance Research Project Agency Network) melakukan penyelidikan. Beberapa penyelidikan awal yang disumbang oleh ARPANET, termasuk kaidah rangkaian tanpa-pusat (decentralised network), teori queuering, dan kaidah pertukaran paket (packet switching).

ARPANET itu sendiri merupakan lembaga yang terbentuk oleh ARPA (United States Departement of Defense Advance Research Project Agency ) yang bernaung dibawah Departement keamanan AS atau Departement of Defense (DoD), dengan tujuan utama meneliti dan mengembangkan konsep jaringan agar semua kegiatan transfer data lebih efisien. Pada awalnya, internet hanya digunakan untuk mendukung kegiatan militer, tetapi pada tanggal 01 Januari 1983, ARPANET menukar koneksi dari NPC ke TCP/ IP: metode alamat yang terakhir ini lebih sering digunakan dari tahun 90-an hingga sekarang.

Perkembangan internet terhitung sangat pesat sekali. Hal ini paling berpengaruh dalam perkembangan internet adalah ketika pada januari 1992 pengguna internet membentuk The Internet Society, yang mempromosikan internet. Pada tahun 1994, CERN dan MIT membentuk World Wide Web Consortion (W3C) sebagai otoritas tunggal bagi pengembangan WEB, yang berwenang menetapkan berbagai


(19)

standart didalamnya. Awaldekade 90-an, WEBsite (pusat informasi berbasis HTML di intenet) hanya berjumlah sekitar 50 buah URL (Uniform Resource Locator- sistem pengamatan kios informasi di internet) dan hanya teks saja.

Menurut Andrew S. Tanenbaum (1996), akhir tahun 1990 telah berkembang menjadi 3 ribu jaringan dan 200 ribu buah komputer. Tahun 1992, host kesatu juta terhubung ke internet dan tahun 1995 terdapat puluhan backbone, ratusan jaringan menengah regional , puluhan ribu LAN, jutaan host dan pengguna. Pertumbuhan yang mencapai dua kali lipat setiap tahun (data penelitian Paxton,1996). Kini WEB adalah antarmuka paling popular di internet, yang mampu menampilkan tidak hanya teks, namun juga grafik (gambar, foto, animasi), suara, video, dan dimensivirtual (3D).

2.4. E-Commerce

Kehadiran internet yang walaupun masih merupakan industry baru yang dalam fase pertumbuhan, yang masih terus berubah serta penuh ketidakpastian, telah memperkokoh keyakinan akan pentingnya peranan teknologi dalam pencapaian tujuan finansial perusahaan melalui modifikasi dan efisiensi proses bisnis, yaitu dengan memanfaatkan E-commerce.

E-commerce merupakan salah satu keunggulan dari Internet, hingga akhirnya di era mendengar atau membaca kata E-commerce yaitu Internet commerce atau Ecom atau E-commerce, atau Immerc , yang pada dasarnya semua sebutan diatas mempunyai makna yang sama. Istilah-istilah tersebut berarti membeli atau menjual secara elektronik, dan kegiatan ini dilakukan pada jaringan internet. E-commerce juga dapat berarti pemasangan iklan, penjualan dan dukungan dan pelayan yang terbaik menggunakan sebuah webshop 24 jam sehari bagi seluruh pelanggannya.

Sejumlah orang memandang commerce (perdagangan) sebagai transaksi yang dilakukan antar perusahaan yang berpartner. Karena itu Electronic commerce berkesan sempit bagi sejumlah orang. Demikianlah, banyak uang lebih suka menggunakan istilah e-bussines, mengacu pada defenisi E-commerce secara luas, tidak sekedar menjual dan membeli, namun juga berarti melayani pelanggan dan terkolaborasi


(20)

dengan partner bisnis, serta pelaksanaan transaksi elektronik dalam suatu organisasi. Menurut Lou Gerstnet, CEO di IMB, “E-bussines merupakan semua hal yang menyangkut masa siklus (cycle time), kecepatan, globalisasi, produktivitas tinggi, penjangkau pelanggan baru, serta antar perusahaan lintas lembaga untuk mencapai keunggulan kompetitif”.

E-commerce digunakan sebagai transaksi bisnis antar perusahaan yang satu dengan perusahaan yang lain, antara perusahaan dengan pelanggan (costumer), atau antar perusahaan dengan institusi yang bergerak dalam pelayanan public. Jika diklasifikasikan, system E-commerceter bagi menjadi tiga tipe aplikasi , yaitu:

a. ElectronicsMarkets (EMs)

EMs adalah sebuah sarana yang menggunakan teknologi informasi dan komunikasi untuk melakukan atau menyajikan penawaran dalam sebuah segmen pasar, sehingga pembeli pembeli dapat ,membandingkan berbagai macam harga yang ditawarkan. Dalam pengertian lain, EMs adalah sebuah system informasi antar organisasi yang menyediakan fasilitas-fasilitas bagi para penjual dan pembeli untuk bertukar informasi tentang harga dan produk yang ditawarkan. Keuntungan fasilitas EMs bagi pelanggan adalah terlihat lebih nyata dan efisien dalam hal waktu. Sedangkan bagi penjual, ia dapat mendistribusikan informasi mengenai produk dan service yang ditawarkan dengan lebih cepat sehingga dapat menarik pelanggan lebih banyak.

b. Electronic Data Interchange (EDI)

EDI adalah sarana untuk mengefisiensikan pertukaran data transaksi-transaksi regular yang berulang dalam jumlah besar antara organisasi-organisasi komersial. Secara formal EDI didefinisikan oleh International Data Exchange Association (IDEA) sebagai “transfer data terstruktur dengan format standard yang telah disetujui yang dilakukan dari satu sistem ke systemcomputer yang lain dengan menggunakan media elektronik”. EDI sangat luas penggunaannya, biasanya digunakan oleh kelompok detail yang besar ketika melakukan bisnis dagang dengan para supplier mereka. EDI memiliki standarisasi pengkodean transaksi perdagangan, sehingga organisasi komersial tersebut dapat berkomunikasi secara langsung dari satu system computer yang satu ke system computer yang lain tanpa memerlukan hardcopy, faktur, serta


(21)

terhindar dari penundaan, kesalahan yang tidak sengaja dalam penanganan berkas dan intervensi dari manusia. Keuntungan dalam menggunakan EDI adalah waktu pemesanan yang singkat, mengurangi biaya, mengurangi kesalahan, memperoleh respon yang cepat, pengiriman faktur yang cepat dan akurat serta pembayaran dapat dilakukan secara elektronik.

c. InternetCommerce

Internetcommerce adalah penggunaan internet yang berbasis teknologi informasi dan komunikasi untuk perdagangan. Kegiatan komersial ini seperti iklan dalam penjuaalan produk dan jasa. Transaksi dapat dilakukan di internet antara lain pemesanan atau pembelian barang dimana barang akan dikirim melalui pos atau sarana lain setelah uang ditransfer ke rekening penjual. Penggunaan internet sebagai media pemasaran dan saluran penjualan terbukti mempunyai keuntungan antara lain untuk beberapa produk tertentu lebih sesuai ditawarkan melalui internet; harga lebih murah mengingat membuat situs di internet lebih murah biayanya dibandingkan dengan membuka outlet retail di berbagai tempat; internet merupakan media promosi perusahaan dan produk yang paling tepat dengan harga yang relative lebih murah; serta pembelian melalui internet akan diikuti dengan layanan pengantaran barang sampai di tempat pemesanan.

2.5 Sejarah E-Commerce

Penerapan electronic commerce bermula di awal tahun 1970 an, dengan adanya inovasi semacam electronic fund transfer (EFT). Saat itu tingkat aplikasinya masih terbatas pada perusahaan-perusahaan besar, lembaga keuangan, dan segelintir perusahaan kecil yang nekat. Lalu muncullah Electronic Data Interchange (EDI), yang berkembang dari transaksi keuangan ke pemrosesan transaksi lain serta memperbesar jumlah perusahaan yang berperan serta, mulai lembaga keuangan hingga perusahaan manufaktur, ritel, layanan dan sebagainya. Dengan adanya komersialisasi internet di awal tahun 1990-an, serta pesatnya pertumbuhan yang mencapai hingga jutaan pelanggan potensial, maka muncullah istilah electronic commerce ( e-commerce), yang aplikasinya segera berkembang pesat. Pusat riset e-commerce di


(22)

Universitas Texas yang mempelajari 2000 perusahaan internet, sector yang tumbuh paling cepat adalah E-Commerce, yang naik sampai 72% dari $171,5 milyar. Pada tahun 2002, di atas satu triliun dolar pendapatan dihasilkan dari internet.

Satu alasan bagi pesatnya perkembangan teknologi tersebut adalah adanya perkembangan jaringan, protocol, perangkat lunak dan spesifikasi.

2.6 Web Server

Web server adalah perangkat lunak server yang berfungsi menerima permintaan HTTP atau HTTPS dari client yang dikenal dengan nama web browser dan akan menirim kembalinya hasilnya dalam bentuk halaman-halaman web yang umumnya berbentuk dokumen HTML. Salah satu web server yang banyak dipakaia dalah Apache. Apache merupakan web server antara platform yang dapat berjalan di beberapa platform seperti Linux dan Windows.

2.7 PHP (Personal Home Page)

2.7.1 Pengertian PHP

PHP singkatan dari PHP Hypertext Preprocessor yang digunakan sebagai bahasa script server-side situs dalam pengembangan web yang disisipkan pada dokumen HTML.

Penggunaan PHP memungkinkan web dapat dibuat dinamis sehingga maintenance situs web tersebut menjadi lebih mudah dan efisien.

2.7.2 Sejarah PHP

PHP diciptakan pertama kali oleh Rasmus Lerdorf pada tahun 1994. Awalnya, PHP digunakan untuk mencatat jumlah serta untuk mengetahui siapa saja pengunjung.


(23)

2.7.3 Kelebihan – Kelebihan PHP

PHP memiliki banyak kelebihan yang tidak dimiliki oleh bahasa script sejenis. PHP difokuskan pada pembuatan script server-side, yang biasanya melakukan apa saja yang dapat dilakukan oleh CGL, seperti mengumpulkan data dari form, menghasilkan isi halaman Web dinamis, dan kemampuan mengirim serta menerima cookies, bahkan lebih pada kemampuan CGL.

PHP dapat digunakan pada semua sistem operasi,antara lain linux, Unix (termasuk variannya HPUX,solaris, dan open BSD),microsoft windows, mac OS X,RISC OS. PHP juga mengandung banyak Web server ,seperti Apache, microsoft internet information server (MIIS), Personal Web server (PWS) netscape dan iplanet servers, Oreilly Website pro server, Audium Xitami, OmniHTTPd, dan masih banyak lagi lainnya, bahkan PHP dapat bekerja sebagai suatu CGLprocessor.

PHP tidak terbatas pada hasil keluaran HTML (HypertextMarkupLanguages) .PHP juga memiliki kemampuan untuk mengolah keluaran gambar, file PDF, dan Movies Flash. PHP juga dapat menghasilkan teks seperti XHTML dan file XML lainnya.

2.7.4 Sintaks PHP

Kode PHP disimpan sebagai plaintext dalam format ASCII, sehingga kode PHP dapat ditulis hampir di semua editor text seperti windows notepad, windows wordpad, dll. Kode PHP adalah kode yang disertakan di sebuah halaman HTML dan kode tersebut dijalankan oleh server sebelum dikirim ke browser.

Contoh filePHP (contoh.php):

<html> <?

Print ("Contoh text yang menggunakan kode PHP"); ?>


(24)

</html>

Pada file .html, HTTP server hanya melewatkan content dari file menuju ke browser. Server tidak mencoba untuk mengerti atau memproses file, karena itu adalah tugas sebuah browser. Pada file dengan ekstensi .php akan ditangani secara berbeda. Yang memiliki kode PHP akan diperiksa. Webserver akan memulai bekerja apabila berada diluar lingkungan kode HTML. Oleh karena itu server akan melewati semua content yang berisi kode HTML, CSS, JavaScript, simple text di browser tanpa diinterpretasikan di server.

Blok scripting PHP selalu diawali dengan <?php dan diakhiri dengan ?>. Blok scripting PHP dapat ditempatkan dimana saja di dalam dokumen. Pada beberapa server yang mendukung, blok scripting PHP dapat diawali dengan <? dan diakhiri dengan ?>. Namun, untuk kompatibilitas maksimum, sebaiknya menggunakan bentuk yang standar (<?php ?>).

Setiap baris kode PHP harus diakhiri dengan semikolon (;). Semikolon ini merupakan separator yang digunakan untuk membedakan satu instruksi dengan instruksi lainnya. PHP menggunakan // untuk membuat komentar baris tunggal atau /* dan */ untuk membuat suatu blok komentar.

Sintaks program / script PHP dituliskan dalam apitan tanda khusus PHP. Ada empat macam tag PHP yang dapat digunakan untuk menandakan blok script PHP :

1. <?php...?>

2. <script language = “PHP”> ...</script> 3. <? ... ?>

4. <% ... %>

Cara 1 dan 2 merupakan cara yang paling umum digunakansekalipun cara 3 tampak lebih praktis karena cara 3 tidak selalu diaktifkan pada konfigurasi file php.ini yang terdapat pada direktori c:\apache\php. Cara 4 juga di mungkinkan sebagai kemudahan bagi anda yang sudah terbiasa dengan ASP (Active server pages). Namun,bila itu tidak di kena, maka harus dilakukan pengaktifan pada file konfigurasi php.pengaktifan yang dilakukan pada file php. Terdapat pada baris berikut;


(25)

; Language options ;

; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; Allow ASP-style <% %> tags Asp_tags = off

Ubah off menjadi On, kemudian simpan dan restart kembali Web server anda. Perhatikan contoh penggunaan sintaks PHP pada script berikut :

2.7.5 Membuat Program PHP yang Pertama

Untuk membuat progran PHP,anda dapat menggunakan editor teks. Dilingkungan windows, anda dapat menggunakan Notepad atau Textpad, sedangkan di lingkungan LINUX atau UNIX ,anda dapat menggunakan vi, atau anda juga dapat menggunakan, seperti Macromedia Dreamweaver atau editor teks lainya.

Berikut ini contoh script PHP yang pertama dengan langkah – langkah : 1. Buka program noteped, kemudian script PHP berikut :

<html> <head>

<title> PHP pertama </title> </head>

<body> <? Php

Echo “hallo dunia:<p>”; ?>


(26)

</html>

2. Berikutnya,simpan dengan mengklik file > save as. Akan muncul kotak dialog save as. Pada peryantaan save in :pastikan anda memilih c:\apache \ htdoccs, lalu isikan pada peyataan file name: pertama.php dan save as type: all files, kemudian klik save.

2.8 MYSQL

MYSQL adalah multiuser database yang menggunakan bahasa structured Query language (SQL).MySQL dalam operasi client- server melibatkan server daemon MySQL disisi server dan berbagai macam program serta library yang berjalan di sisi client. MySQL mampu menangani data yang cukup besar. Perusahaan yang mengembangkan MySQL yaitu TcX, mengaku mampu menyimpan data lebih dari 40 database,10,000 tabel dan sekitar 7 juta baris, totalnya kurang lebih 100 Gigabyte data. SQL adalah bahasa standar yang digunakan untuk mengakses database server.bahasa ini awalnya di kembangkan oleh IBM,namun telah di adopsi dan digunakan sebagai standart industri. Dengan menggunakan SQL ,proses akses database menjadi lebih user-friendly dibandingkan dengan menggunakan dBASE atau clipper yang masih menggunakan perintah – perintah program.

2.9 Mengkoneksikan PHP dengan Database MYSQL

Untuk menghubungkan php dengan mysql dan menghubungkan php dengan database <?

$host=”localhost”; $user=”root”; $password=”"; $db=”databaseku”;


(27)

$konek=mysql_connect($host,$user,$password) or die (mysql_error()); if ($konek) {

echo “Koneksi php ke database mysql berhasil..”; }

else {

echo “Koneksi php ke database gagal..”; }

mysql_select_db($db,$konek) or die (mysql_error()); ?>

untuk melakukan koneksi dengan MYSQL,PHP telah menyediakan berbagai fungsi untuk kebutuhan tersebut, ada beberapa yang di tunjukan sebagai berikut :

1. MYSQL_ CONNECT

Fungsi mysql_connect digunakan untuk membuat koneksi disuatu server MYSQL>

2. MYSQL_PCONNECT

Fungsi mysql_pconect digunakan untuk membuat koneksi ke suatu server MYSQL secara persisten.


(28)

BAB 3

PERANCANGAN SISTEM

3.1 Perancangan Sistem

Perencanaan dan perancangan merupakan sebuah tahap awal dalam membangun sebuah situs. Membuat suatu situs memerlukan persiapan, perencanaan yang baik, tujuan yang jelas dan percobaan yang berulang-ulang Karena menyangkut semua elemen yang membentuk situs. Situs ini dirancang dengan menggunakan PHP sebagai bahasa pemrogramannya dan MySQL sebagai databasenya, serta Openchart digunakan sebagai media untuk membuat layout dari situs yang telah dirancang.

3.2 Perancangan Data Flow Diagram (DFD)

Data Flow Diagram (DFD) adalah suatu diagram yang menggunakan notasi-notasi untuk menggunakan arus dari data sistem, yang penggunaannya sangat membantu untuk memahami system secara logika, terstruktur dan jelas. DFD merupakan alat bantu dalam menggambarkan atau menjelaskan sistem yang sedang berjalan logis.

Gambaran ini tidak bergantung pada perangkat keras, lunak, struktur data atau organisasi. Adapun Data Flow Diagram yang penulis ajukan, yaitu:

Table 3.1 Simbol-simbol DFD

No Gambar Nama Fungsi

1 KesatuanLuar

(External Entity)

Merupakan kesatuan luar di lingkungan luar Sistem yang akan memberikan input atau menerima output dari sistem

2 Proses (Process) Kegiatan dari hasil

suatu arus data yang masuk dalam proses untuk dihasilkan arus


(29)

data yang akan mengubah input menjadi output.

3 Aliran Data

(Data Flow)

Data mengalir melalui sistem, dimulai dengan sebagian input dan diubah atau diproses menjadi input

4 Penyimpanan Data

(Data Storage)

Data disimpan untuk keperluan berikutnya.

3.3 Diagram Level Konteks

Diagram konteks adalah suatu diagram alir yang tingkat tinggi yang menggambarkan seluruh jaringan, masuka dan keluaran. Sistem yang dimaksud adalah untuk menggambarkan sistem yang sedang berjalan, mengidentifikasikan awal dan akhir data yang masuk dan keluaran sistem. Diagram ini merupakan gambaran umum sistem yang nantinya akan kita buat. Secara uraian dapat dikatakan bahwa diagram konteks itu berisisi apasaja yang memberikan data (inputan) ke system serta kepada siapa data informasi yang harus dihasilkan sistem. (Bahar Edukasi:2009)

Data Order Kategori &Produk

Info data kategori & produk Info pemesanan

Laporan pemesanan

Pemesanan

Deliver

Admin

Sistem E- Commerce


(30)

Gambar 3.1 Diagram Konteks

3.4 Perancangan Database

Database merupakan kumpulan dari data yang saling berhubungan satu dengan yang lainnya, tersimpan di simpanan luar computer dan digunakan perangkat lunak tertentu untuk memanipulasinya. Database merupakan salah satu komponen yang penting dalam sistem e-commerce, karena berfungsi sebagai basis penyedia informasi bagi para penggunanya. Karena database merupakan kumpulan dari beberapa file yang dikelompokkan secara terstruktur dalam beberapa table sesuai informasi yang dibutuhkan didalamnya.

Adapun database yang dibuat oleh penulis adalah database commerce dengan tabel-tabel sebagai berikut:

3.4.1 Field Name

NO Nama Tabel 1 Kategori 2 Produk 3 Order 4 Customer 5 User

Tabel 3.2 Field Name

3.4.2 Field Table


(31)

Gambar 3.3 Produk


(32)

Gambar 3.5 Customer

Gambar 3.6 User

3.5 Flowchart

Flowchart merupakan gambar atau bahan yang memperlihatkan urutan dan hubungan antar proses beserta instruksinya. Gambaran ini dinyatakan dengan simbol. Dengan demikian setiap symbol menggambarkan proses tertentu. Sedangkan hubungan antar proses digambarkan dengan garis penghubung. Flowchart ini merupakan langkah awal pembuatan program. Dengan adanya flowchart urutan proses kegiatan menjadi lebih jelas. Jika ada penambatan proses maka dapat dilakukan lebih mudah. Setelah


(33)

flowchart selesai disusun, selanjutnya pemrogram(programmer) menerjemahkannya ke bentuk program dengan bahasa pemrograman.(Irma,2008)

Simbol Fungsi

Terminator, fungsinya untuk permulaan/ akhir program.

Process, digunakan untuk melambangkan kegiatan pemrosesan input.

Input data, fungsi untuk proses input data, parameter.

Garis alir (Flow line), fungsinya untuk arah aliran program.

Preparation, fungsinya untuk proses inisialisasi/pemberian harga awal atau untuk perulangan/looping.

Proses, fungsinya untuk proses perhitungan/ proses pengolahan data.

Connector, penghubung bagian-bagian flowchart yang berada pada satu halaman.

Outputdata, output data, informasi

Off page connector, penghubung bagian-bagian flowchart yang berada pada


(34)

halaman berbeda.

Predefined process, untuk menyatakan sekumpulan langkah proses yang ditulis sebagai prosedur.

Display, untuk output yang ditunjukkan suatu device, seperti monitor.

Magneticdisk, untuk penyimpanan data.

3.5.1 Flowcart Menu Utama

N

Y

Start

End

Buka Koneksi Database

Pembelian Barang Order

Kategori Profil

K. Belanja Beranda

Produk

Konfirmasi

Close

Produk Kategori Produk

Profil

Tampilan Utama Menu Halaman Utama


(35)

Gambar 3.7 Flowchart Menu Utama

BAB 4

IMPLEMENTASI SISTEM

4.1 Pengertian Implementasi Sistem

Implementasi system adalah suatu prosedur atau langkah yang dilakukan dalam menyelesaikan desain sistem yang telah disetujui, untuk menguji, menginstall dan memulai system baru atau sistem yang diperbaiki untuk menggantikan sistem yang lama.

4.2 Tujuan Implementasi Sistem

Ada beberapa tujuan implementasi system yaitu sebagai berikut: 1. Menyelesaikan desain sistem yang telah disetujui sebelumnya.

2. Memastikan bahwa pemakai (user) dapat mengoperasikan system baru. 3. Menguji apakah system baru tersebut sesuai dengan pemakai.

4.Memastikan bahwa konversi ke system baru berjalan yaitu dengan membuat rencana, mengontrol dan melakukan instalasi baru secara benar.

4.3 Komponen Utama dalam Sistem

Pada pembuatan system OryzaFashop berbasis e-commerce yang sudah dirancang membutuhkan perangkat keras (hardware), perangkat lunak (software), dan tenaga pelaksana (brainware) untuk melakukan pengolahan data dalam system terkomputerisasi.

4.3.1 Perangkat Keras (hardware)

Perangkat keras (hardware) adalah semua bagian fisik komputer, dan dibedakan dengan data yang berada didalamnya atau yang beroperasi didalamnya, dan dibedakan dengan perangkat lunak (software) yang menyediakan instruksi untuk perangkat keras dalam menyelesaikan tugasnya. Perangkat keras yang dibutuhkan dalam pembuatan system informasi ini adalah:


(36)

1. Processor 2. Harddisk 3. Memory 4. Monitor 5. Keyboard 6. Mouse

4.3.2 Perangkat Lunak (software)

Perangkat Lunak (software) adalah program yang berisi kumpulan instruksi untuk melakukan proses pengolahan data. Adapun perangkat lunak yang digunakan penulis adalah sebagai berikut:

1. Sistem Operasi Windows 7

2. Openchart


(37)

3. phpMyAdmin

Gambar 4.3 phpMyAdmin

4.3.3 Tenaga Pelaksana (Brainware)

Brainware adalah manusia yang terlibat dalam mengoperasikan serta mengatur sistem di dalam komputer. Diartikan juga sebagai perangkat intelektual yang mengoperasikan dan mengeksplorasi kemampuan dari Hardware maupun Software.

Brainware termasuk bagian penting dari sebuah system komputer. Hardware tidak dapat bekerja tanpa adanya Software, sedangkan software dan hardware tidak dapat bekerja tanpa adanya brainware. Jadi komponen ini saling terkait dan saling membutuhkan.

4.4 Demonstrasi Program

Tampilan program yang dirancang penulisan adalah sebagai berikut: 4.4.1 Login Admin


(38)

Gambar 4.4 Tampilan Login Admin

4.4.2 Tampilan Menu Utama (Index/Beranda)


(39)

4.4.3 Tampilan Kategori dan Produk

Gambar 4.6 Tampilan Kategori dan Produk 4.4.4 Tampilan Keranjang Belanja


(40)

BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan penulisan tugas akhir ini, maka penulis mengambil kesimpulan bahwa: 1. E-commerce merupakan sistem yang digunakan untuk melakukan transaksi jual beli dalam suatu perdagangan atau bisnis dengan menggunakan alat elektronik yang dilakukan secara online dengan memanfaatkan media internet.

2. Dengan adanya sistem e-commerce, para pedagang atau pun perusahaan dapat dengan mudah mempromosikan produk-produk terbaru mereka dengan kualitas terjangkau dan harga yang relative murah agar menarik perhatian para konsumen. 3. Aplikasi ini dapat memperoleh beberapa keuntungan, yaitu mendapat rekan bisnis yang baru, produk dapat tersebar lebih luas, dan meningkatkan produktivitas.

4. Tampilan website yang bagus dan menarik dapat menambah dayatarik serta rasa percaya kepada konsumen terhadap sistem e-commerce yang dimiliki oleh toko.

5.2 Saran


(41)

kekurangannya. Dengan demikian penulis masih membutuhkan lagi pengembangan lebih lanjut untuk perbaikan kedepannya.

2. Penulis berharap sistem e-commerce ini dapat digunakan oleh berbagai pengusaha dalam bidang perdagangan untuk melakukan transaksi jual beli agar pemasaran prouknya tersebar luas diberbagai daerah.


(42)

DAFTAR PUSTAKA

William J. Stanton, Prinsip Pemasaran, Alih Bahasa Wilhelmus W. Bokowatun, Erlangga, Jakarta, 1991, hlm. 5.

Nono. 2013. Kiat Membuka Toko Online dengan Opencart. Edisi ke-1. Jakarta: Elex Media Komputindo

http://www.midas-solusi.com/knowledge-space,en,detail,33,strategi-pemasaran (13 maret 2013)

http://www.google.com/ Cara Instal OpenCart - Tutorial OpenCart eProduk.Com.htm (22 Mei 2013)


(43)

SURAT KETERANGAN Hasil Uji Program Tugas Akhir

Yang bertanda tangan di bawah ini, menerangkan bahwa Mahasiswa Tugas Akhir Program Diploma 3 Teknik Informatika :

Nama : NURFIKA RANI SIREGAR NIM : 102406162

Prog.Studi : D-3 Teknik Informatika

Judul TA : PERACANGAN APLIKASI INTERNET E- COMMERCE ORYZA FASHOP

Telah melaksanakan test program Tugas Akhir Mahasiswa tersebut di atas pada tanggal………

Dengan Hasil : Sukses / Gagal

Demikian diterangkan untuk digunakan melengkapi syarat pendaftaran Ujian Meja Hijau Tugas Akhir Mahasiswa bersangkutan di Departemen Matematika FMIPA USU Medan

Medan, Juni 2013 Dosen Pembingbing

Drs.Henry Rani Sitepu, M.S. NIP. 195303031983031002


(44)

KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN

UNIVERSITAS SUMATERA UTARA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

Jln. Bioteknologi No.1 Kampus USU Padang Bulan Medan-20155

Telp. (061) 8211050, 8214290, Fax. (061) 8214290

KARTU BIMBINGAN TUGAS AKHIR MAHASISWA

Nama Mahasiswa : NURFIKA RANI SIREGAR Nomor Induk Mahasiswa : 102406162

Judul Tugas Akhir :PERANCANGAN APLIKASI INTERNET E-COMMERCE

ORYZA FASHOP

Dosen Pembimbing : Drs.Henry Rani Sitepu, M.S. Tanggal Mulai Bimbingan :

Tanggal Selesai Bimbingan : No Tanggal Asisten

Bimbingan

Pembahasan pada Asisten Mengenai, pada Bab:

Paraf Dosen Pembimbing

Keterangan

1 2 3 4 5 6 7 8

* Kartu ini harap dikembalikan ke Departemen Matematika bila bimbingan telah selesai.

Diketahui Disetujui

Ketua Departemen Matematika Pembimbing Utama/ Penanggung Jawab

Prof.Drs.Tulus, Vordipl.Math.,M.Si.,Ph.D Drs.Henry Rani Sitepu, M.S. NIP. 196209011988031002 NIP. 195303031983031002


(45)

A.Config

1. Koneksi.php

<?php

// HTTP

define('HTTP_SERVER', 'http://localhost/online/admin/'); define('HTTP_CATALOG', 'http://localhost/online/');

define('HTTP_IMAGE', 'http://localhost/online/image/'); // HTTPS

define('HTTPS_SERVER', 'http://localhost/online/admin/'); define('HTTPS_IMAGE', 'http://localhost/online/image/'); // DIR

define('DIR_APPLICATION',

'C:\xampp\htdocs\online/admin/');

define('DIR_SYSTEM', 'C:\xampp\htdocs\online/system/'); define('DIR_DATABASE',

'C:\xampp\htdocs\online/system/database/'); define('DIR_LANGUAGE',

'C:\xampp\htdocs\online/admin/language/'); define('DIR_TEMPLATE',

'C:\xampp\htdocs\online/admin/view/template/'); define('DIR_CONFIG',

'C:\xampp\htdocs\online/system/config/');

define('DIR_IMAGE', 'C:\xampp\htdocs\online/image/'); define('DIR_CACHE',

'C:\xampp\htdocs\online/system/cache/'); define('DIR_DOWNLOAD',

'C:\xampp\htdocs\online/download/'); define('DIR_LOGS',

'C:\xampp\htdocs\online/system/logs/');

define('DIR_CATALOG', 'C:\xampp\htdocs\online/catalog/'); // DB

define('DB_DRIVER', 'mysql');

define('DB_HOSTNAME', 'localhost'); define('DB_USERNAME', 'root');

define('DB_PASSWORD', ''); define('DB_DATABASE', 'toko'); define('DB_PREFIX', '');


(46)

B.MENU UTAMA

1. Index.php

<?php

// Version

define('VERSION', '1.5.0'); // Configuration

require_once('config.php'); // Install

if (!defined('DIR_APPLICATION')) {

header('Location: ../install/index.php'); exit;

}

// Startup

require_once(DIR_SYSTEM . 'startup.php'); // Application Classes

require_once(DIR_SYSTEM . 'library/currency.php'); require_once(DIR_SYSTEM . 'library/user.php'); require_once(DIR_SYSTEM . 'library/weight.php'); require_once(DIR_SYSTEM . 'library/length.php'); // Registry

$registry = new Registry(); // Loader

$loader = new Loader($registry); $registry->set('load', $loader); // Config

$config = new Config();

$registry->set('config', $config); // Database

$db = new DB(DB_DRIVER, DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE);

$registry->set('db', $db); // Settings


(47)

$query = $db->query("SELECT * FROM " . DB_PREFIX . "setting WHERE store_id = '0'");

foreach ($query->rows as $setting) {

$config->set($setting['key'], $setting['value']); }

// Url

$url = new Url(HTTP_SERVER, HTTPS_SERVER); $registry->set('url', $url);

// Log

$log = new Log($config->get('config_error_filename')); $registry->set('log', $log);

function error_handler($errno, $errstr, $errfile, $errline) {

global $log, $config; switch ($errno) {

case E_NOTICE:

case E_USER_NOTICE: $error = 'Notice'; break;

case E_WARNING:

case E_USER_WARNING: $error = 'Warning'; break;

case E_ERROR:

case E_USER_ERROR:

$error = 'Fatal Error'; break;

default:

$error = 'Unknown'; break;

}

if ($config->get('config_error_display')) {

echo '<b>' . $error . '</b>: ' . $errstr . ' in <b>' . $errfile . '</b> on line <b>' . $errline . '</b>';

}

if ($config->get('config_error_log')) {

$log->write('PHP ' . $error . ': ' . $errstr . ' in ' . $errfile . ' on line ' . $errline);


(48)

}

return true; }

// Error Handler

set_error_handler('error_handler'); // Request

$request = new Request();

$registry->set('request', $request); // Response

$response = new Response();

$response->addHeader('Content-Type: text/html; charset=utf-8');

$registry->set('response', $response); // Cache

$cache = new Cache();

$registry->set('cache', $cache); // Session

$session = new Session();

$registry->set('session', $session); // Language

$languages = array();

$query = $db->query("SELECT * FROM " . DB_PREFIX . "language");

foreach ($query->rows as $result) {

$languages[$result['code']] = $result; }

$config->set('config_language_id', $languages[$config->get('config_admin_language')]['language_id']);

// Language

$language = new Language($languages[$config->get('config_admin_language')]['directory']);


(49)

$registry->set('language', $language); // Document

$document = new Document();

$registry->set('document', $document); // Currency

$registry->set('currency', new Currency($registry));

// Weight

$registry->set('weight', new Weight($registry)); // Length

$registry->set('length', new Length($registry)); // User

$registry->set('user', new User($registry)); // Front Controller

$controller = new Front($registry); // Login

$controller->addPreAction(new Action('common/home/login')); // Permission

$controller->addPreAction(new

Action('common/home/permission')); // Router

if (isset($request->get['route'])) {

$action = new Action($request->get['route']); } else {

$action = new Action('common/home'); }

// Dispatch

$controller->dispatch($action, new Action('error/not_found'));

// Output

$response->output(); ?>


(50)

2. Kategori.php

<?php

class ControllerCatalogCategory extends Controller { private $error = array();

public function index() {

$this->load->language('catalog/category'); $this->document->setTitle($this->language->get('heading_title'));

$this->load->model('catalog/category');

$this->getList(); }

public function insert() {

$this->load->language('catalog/category'); $this->document->setTitle($this->language->get('heading_title'));

$this->load->model('catalog/category');

if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validateForm()) {

$this->model_catalog_category->addCategory($this->request->post);

>session->data['success'] = $this->language->get('text_success');

$this->redirect($this->url->link('catalog/category', 'token=' . $this->session->data['token'], 'SSL'));

}

$this->getForm(); }


(51)

$this->load->language('catalog/category'); $this->document->setTitle($this->language->get('heading_title'));

$this->load->model('catalog/category');

if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validateForm()) {

>model_catalog_category->editCategory(>request->get['category_id'], $this->request->post);

>session->data['success'] = $this->language->get('text_success');

$this->redirect($this->url->link('catalog/category', 'token=' . $this->session->data['token'], 'SSL'));

}

$this->getForm(); }

public function delete() {

$this->load->language('catalog/category'); $this->document->setTitle($this->language->get('heading_title'));

$this->load->model('catalog/category');

if (isset($this->request->post['selected']) && $this->validateDelete()) {

foreach ($this->request->post['selected'] as $category_id) {

$this->model_catalog_category->deleteCategory($category_id);

}

>session->data['success'] = $this->language->get('text_success');


(52)

$this->redirect($this->url->link('catalog/category', 'token=' . $this->session->data['token'], 'SSL'));

}

$this->getList(); }

private function getList() {

$this->data['breadcrumbs'] = array();

$this->data['breadcrumbs'][] = array(

'text' =>

$this->language->get('text_home'),

'href' =>

$this->url->link('common/home', 'token=' . $this->session->data['token'], 'SSL'),

'separator' => false

);

$this->data['breadcrumbs'][] = array(

'text' =>

$this->language->get('heading_title'),

'href' =>

$this->url->link('catalog/category', 'token=' . $this->session->data['token'], 'SSL'),

'separator' => ' :: '

);

$this->data['insert'] =

>url->link('catalog/category/insert', 'token=' . $this->session->data['token'], 'SSL');

$this->data['delete'] =

>url->link('catalog/category/delete', 'token=' . $this->session->data['token'], 'SSL');

$this->data['categories'] = array(); $results = $this->model_catalog_category->getCategories(0);

foreach ($results as $result) { $action = array();


(53)

'text' => $this->language->get('text_edit'),

'href' =>

>url->link('catalog/category/update', 'token=' . $this->session->data['token'] . '&category_id=' .

$result['category_id']) );

$this->data['categories'][] = array( 'category_id' =>

$result['category_id'],

'name' => $result['name'], 'sort_order' =>

$result['sort_order'],

'selected' => isset($this->request->post['selected']) &&

in_array($result['category_id'], $this->request->post['selected']),

'action' => $action );

}

$this->data['heading_title'] = $this->language->get('heading_title');

>data['text_no_results'] = $this->language->get('text_no_results');

$this->data['column_name'] = $this->language->get('column_name');

>data['column_sort_order'] = $this->language->get('column_sort_order');

$this->data['column_action'] = $this->language->get('column_action');

$this->data['button_insert'] = $this->language->get('button_insert');

$this->data['button_delete'] = $this->language->get('button_delete');

if (isset($this->error['warning'])) {

>data['error_warning'] = $this->error['warning'];


(54)

$this->data['error_warning'] = ''; }

if (isset($this->session->data['success'])) { $this->data['success'] = $this->session->data['success'];

unset($this->session->data['success']); } else {

$this->data['success'] = ''; }

$this->template = 'catalog/category_list.tpl'; $this->children = array(

'common/header', 'common/footer', );

$this->response->setOutput($this->render()); }

private function getForm() {

$this->data['heading_title'] = $this->language->get('heading_title');

$this->data['text_none'] = $this->language->get('text_none');

$this->data['text_default'] = $this->language->get('text_default');

>data['text_image_manager'] = $this->language->get('text_image_manager');

$this->data['text_enabled'] = $this->language->get('text_enabled');

$this->data['text_disabled'] = $this->language->get('text_disabled');

$this->data['text_percent'] = $this->language->get('text_percent');

$this->data['text_amount'] = $this->language->get('text_amount');

$this->data['entry_name'] = $this->language->get('entry_name');

>data['entry_meta_keyword'] = $this->language->get('entry_meta_keyword');


(55)

>data['entry_meta_description'] = $this->language->get('entry_meta_description');

>data['entry_description'] = $this->language->get('entry_description');

$this->data['entry_store'] = $this->language->get('entry_store');

$this->data['entry_keyword'] = $this->language->get('entry_keyword');

$this->data['entry_parent'] = $this->language->get('entry_parent');

$this->data['entry_image'] = $this->language->get('entry_image');

$this->data['entry_top'] = $this->language->get('entry_top');

$this->data['entry_column'] = $this->language->get('entry_column');

>data['entry_sort_order'] = $this->language->get('entry_sort_order');

$this->data['entry_status'] = $this->language->get('entry_status');

$this->data['entry_layout'] = $this->language->get('entry_layout');

$this->data['button_save'] = $this->language->get('button_save');

$this->data['button_cancel'] = $this->language->get('button_cancel');

$this->data['tab_general'] = $this->language->get('tab_general');

$this->data['tab_data'] = $this->language->get('tab_data');

$this->data['tab_design'] = $this->language->get('tab_design');

if (isset($this->error['warning'])) {

>data['error_warning'] = $this->error['warning'];

} else {

$this->data['error_warning'] = ''; }

if (isset($this->error['name'])) {


(56)

$this->error['name']; } else {

$this->data['error_name'] = array(); }

$this->data['breadcrumbs'] = array();

$this->data['breadcrumbs'][] = array(

'text' =>

$this->language->get('text_home'),

'href' =>

$this->url->link('common/home', 'token=' . $this->session->data['token'], 'SSL'),

'separator' => false

);

$this->data['breadcrumbs'][] = array(

'text' =>

$this->language->get('heading_title'),

'href' =>

$this->url->link('catalog/category', 'token=' . $this->session->data['token'], 'SSL'),

'separator' => ' :: '

);

if (!isset($this->request->get['category_id'])) {

$this->data['action'] = >url->link('catalog/category/insert', 'token=' . $this->session->data['token'], 'SSL');

} else {

$this->data['action'] = >url->link('catalog/category/update', 'token=' . >session->data['token'] . '&category_id=' . $this->request->get['category_id']);

}

$this->data['cancel'] =

$this->url->link('catalog/category', 'token=' . $this->session->data['token'], 'SSL');

$this->data['token'] = $this->session->data['token'];


(57)

if (isset($this->request->get['category_id']) && ($this->request->server['REQUEST_METHOD'] != 'POST')) {

$category_info =

$this- >model_catalog_category->getCategory($this->request->get['category_id']);

}

$this->load->model('localisation/language'); >data['languages'] =

$this->model_localisation_language->getLanguages(); if

(isset($this->request->post['category_description'])) {

$this->data['category_description'] = $this->request->post['category_description'];

} elseif (isset($category_info)) {

$this->data['category_description'] =

$this->model_catalog_category- >getCategoryDescriptions($this->request->get['category_id']);

} else {

$this->data['category_description'] = array();

}

$categories = $this->model_catalog_category->getCategories(0);

// Remove own id from list if (isset($category_info)) {

foreach ($categories as $key => $category) {

if ($category['category_id'] == $category_info['category_id']) {

unset($categories[$key]); }

} }

$this->data['categories'] = $categories;


(58)

$this->data['parent_id'] = $this->request->post['parent_id'];

} elseif (isset($category_info)) { $this->data['parent_id'] = $category_info['parent_id'];

} else {

$this->data['parent_id'] = 0; }

$this->load->model('setting/store'); >data['stores'] =

$this->model_setting_store->getStores(); if (isset($this->request->post['category_store'])) {

>data['category_store'] = $this->request->post['category_store'];

} elseif (isset($category_info)) {

>data['category_store'] = $this- >model_catalog_category->getCategoryStores($this->request->get['category_id']);

} else {

$this->data['category_store'] = array(0); }

if (isset($this->request->post['keyword'])) { $this->data['keyword'] = $this->request->post['keyword'];

} elseif (isset($category_info)) { $this->data['keyword'] =

$category_info['keyword']; } else {

$this->data['keyword'] = ''; }

if (isset($this->request->post['image'])) { $this->data['image'] = $this->request->post['image'];

} elseif (isset($category_info)) { $this->data['image'] =

$category_info['image']; } else {


(59)

}

$this->load->model('tool/image'); if (isset($category_info) &&

$category_info['image'] && file_exists(DIR_IMAGE . $category_info['image'])) {

>data['preview'] =

$this->model_tool_image->resize($category_info['image'], 100, 100);

} else {

>data['preview'] =

$this->model_tool_image->resize('no_image.jpg', 100, 100); }

if (isset($this->request->post['top'])) { $this->data['top'] = $this->request->post['top'];

} elseif (isset($category_info)) { $this->data['top'] =

$category_info['top']; } else {

$this->data['top'] = 0; }

if (isset($this->request->post['column'])) { $this->data['column'] = $this->request->post['column'];

} elseif (isset($category_info)) { $this->data['column'] =

$category_info['column']; } else {

$this->data['column'] = 1; }

if (isset($this->request->post['sort_order'])) {

>data['sort_order'] = $this->request->post['sort_order'];

} elseif (isset($category_info)) { $this->data['sort_order'] = $category_info['sort_order'];

} else {


(60)

}

if (isset($this->request->post['status'])) { $this->data['status'] = $this->request->post['status'];

} elseif (isset($category_info)) { $this->data['status'] =

$category_info['status']; } else {

$this->data['status'] = 1; }

if (isset($this->request->post['category_layout'])) {

>data['category_layout'] = $this->request->post['category_layout'];

} elseif (isset($category_info)) {

>data['category_layout'] = $this- >model_catalog_category->getCategoryLayouts($this->request->get['category_id']);

} else {

$this->data['category_layout'] = array(); }

$this->load->model('design/layout'); >data['layouts'] =

$this->model_design_layout->getLayouts();

$this->template = 'catalog/category_form.tpl'; $this->children = array(

'common/header', 'common/footer', );

$this->response->setOutput($this->render()); }

private function validateForm() {

if (!$this->user->hasPermission('modify', 'catalog/category')) {

$this->error['warning'] = $this->language->get('error_permission');


(61)

foreach

($this->request->post['category_description'] as $language_id => $value) {

if ((strlen(utf8_decode($value['name'])) < 2) || (strlen(utf8_decode($value['name'])) > 255)) {

$this->error['name'][$language_id] = $this->language->get('error_name');

} }

if ($this->error && !isset($this->error['warning'])) {

$this->error['warning'] = $this->language->get('error_warning');

}

if (!$this->error) { return true; } else {

return false; }

}

private function validateDelete() {

if (!$this->user->hasPermission('modify', 'catalog/category')) {

$this->error['warning'] = $this->language->get('error_permission');

}

if (!$this->error) { return true; } else {

return false; }

} }


(62)

3. Produk.php

<?php

class ControllerCatalogProduct extends Controller { private $error = array();

public function index() {

$this->load->language('catalog/product');

$this->document->setTitle($this->language->get('heading_title'));

$this->load->model('catalog/product'); $this->getList();

}

public function insert() {

$this->load->language('catalog/product'); $this->document->setTitle($this->language->get('heading_title'));

$this->load->model('catalog/product');

if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validateForm()) {

$this->model_catalog_product->addProduct($this->request->post);

>session->data['success'] = $this->language->get('text_success');

$url = '';

if (isset($this->request->get['filter_name'])) {

$url .= '&filter_name=' . $this->request->get['filter_name'];

}

if (isset($this->request->get['filter_model'])) {


(63)

$url .= '&filter_model=' . $this->request->get['filter_model'];

}

if (isset($this->request->get['filter_price'])) {

$url .= '&filter_price=' . $this->request->get['filter_price'];

}

if (isset($this->request->get['filter_quantity'])) {

$url .= '&filter_quantity=' . $this->request->get['filter_quantity'];

}

if (isset($this->request->get['filter_status'])) {

$url .= '&filter_status=' . $this->request->get['filter_status'];

}

if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort'];

}

if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order'];

}

if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page'];

}

$this->redirect($this->url->link('catalog/product', 'token=' . $this->session->data['token'] . $url, 'SSL'));

}

$this->getForm();


(64)

public function update() {

$this->load->language('catalog/product'); $this->document->setTitle($this->language->get('heading_title'));

$this->load->model('catalog/product');

if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validateForm()) {

>model_catalog_product->editProduct(>request->get['product_id'], $this->request->post);

>session->data['success'] = $this->language->get('text_success');

$url = '';

if (isset($this->request->get['filter_name'])) {

$url .= '&filter_name=' . $this->request->get['filter_name'];

}

if (isset($this->request->get['filter_model'])) {

$url .= '&filter_model=' . $this->request->get['filter_model'];

}

if (isset($this->request->get['filter_price'])) {

$url .= '&filter_price=' . $this->request->get['filter_price'];

}

if (isset($this->request->get['filter_quantity'])) {

$url .= '&filter_quantity=' . $this->request->get['filter_quantity'];


(65)

if (isset($this->request->get['filter_status'])) {

$url .= '&filter_status=' . $this->request->get['filter_status'];

}

if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort'];

}

if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order'];

}

if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page'];

}

$this->redirect($this->url->link('catalog/product', 'token=' . $this->session->data['token'] . $url, 'SSL'));

}

$this->getForm();

}

public function delete() {

$this->load->language('catalog/product'); $this->document->setTitle($this->language->get('heading_title'));

$this->load->model('catalog/product');

if (isset($this->request->post['selected']) && $this->validateDelete()) {

foreach ($this->request->post['selected'] as $product_id) {

$this->model_catalog_product->deleteProduct($product_id);


(66)

>session->data['success'] = $this->language->get('text_success');

$url = '';

if (isset($this->request->get['filter_name'])) {

$url .= '&filter_name=' . $this->request->get['filter_name'];

}

if (isset($this->request->get['filter_model'])) {

$url .= '&filter_model=' . $this->request->get['filter_model'];

}

if (isset($this->request->get['filter_price'])) {

$url .= '&filter_price=' . $this->request->get['filter_price'];

}

if (isset($this->request->get['filter_quantity'])) {

$url .= '&filter_quantity=' . $this->request->get['filter_quantity'];

}

if (isset($this->request->get['filter_status'])) {

$url .= '&filter_status=' . $this->request->get['filter_status'];

}

if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort'];

}

if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order'];


(67)

}

if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page'];

}

$this->redirect($this->url->link('catalog/product', 'token=' . $this->session->data['token'] . $url, 'SSL'));

}

$this->getList();

}

public function copy() {

$this->load->language('catalog/product'); $this->document->setTitle($this->language->get('heading_title'));

$this->load->model('catalog/product');

if (isset($this->request->post['selected']) && $this->validateCopy()) {

foreach ($this->request->post['selected'] as $product_id) {

$this->model_catalog_product->copyProduct($product_id);

}

>session->data['success'] = $this->language->get('text_success');

$url = '';

if (isset($this->request->get['filter_name'])) {

$url .= '&filter_name=' . $this->request->get['filter_name'];

}

if (isset($this->request->get['filter_model'])) {


(68)

$url .= '&filter_model=' . $this->request->get['filter_model'];

}

if (isset($this->request->get['filter_price'])) {

$url .= '&filter_price=' . $this->request->get['filter_price'];

}

if (isset($this->request->get['filter_quantity'])) {

$url .= '&filter_quantity=' . $this->request->get['filter_quantity'];

}

if (isset($this->request->get['filter_status'])) {

$url .= '&filter_status=' . $this->request->get['filter_status'];

}

if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort'];

}

if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order'];

}

if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page'];

}

$this->redirect($this->url->link('catalog/product', 'token=' . $this->session->data['token'] . $url, 'SSL'));

}

$this->getList();


(69)

private function getList() {

if (isset($this->request->get['filter_name'])) {

$filter_name = $this->request->get['filter_name'];

} else {

$filter_name = null; }

if (isset($this->request->get['filter_model'])) {

$filter_model = $this->request->get['filter_model'];

} else {

$filter_model = null; }

if (isset($this->request->get['filter_price'])) {

$filter_price = $this->request->get['filter_price'];

} else {

$filter_price = null; }

if (isset($this->request->get['filter_quantity'])) {

$filter_quantity = $this->request->get['filter_quantity'];

} else {

$filter_quantity = null; }

if (isset($this->request->get['filter_status'])) {

$filter_status = $this->request->get['filter_status'];

} else {

$filter_status = null; }

if (isset($this->request->get['sort'])) { $sort = $this->request->get['sort'];


(70)

} else {

$sort = 'pd.name'; }

if (isset($this->request->get['order'])) { $order = $this->request->get['order']; } else {

$order = 'ASC'; }

if (isset($this->request->get['page'])) { $page = $this->request->get['page']; } else {

$page = 1; }

$url = '';

if (isset($this->request->get['filter_name'])) {

$url .= '&filter_name=' . $this->request->get['filter_name'];

}

if (isset($this->request->get['filter_model'])) {

$url .= '&filter_model=' . $this->request->get['filter_model'];

}

if (isset($this->request->get['filter_price'])) {

$url .= '&filter_price=' . $this->request->get['filter_price'];

}

if (isset($this->request->get['filter_quantity'])) {

$url .= '&filter_quantity=' . $this->request->get['filter_quantity'];

}

if (isset($this->request->get['filter_status'])) {


(71)

$url .= '&filter_status=' . $this->request->get['filter_status'];

}

if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort'];

}

if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order'];

}

if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page'];

}

$this->data['breadcrumbs'] = array();

$this->data['breadcrumbs'][] = array(

'text' =>

$this->language->get('text_home'),

'href' =>

$this->url->link('common/home', 'token=' . $this->session->data['token'], 'SSL'),

'separator' => false

);

$this->data['breadcrumbs'][] = array(

'text' =>

$this->language->get('heading_title'),

'href' =>

$this->url->link('catalog/product', 'token=' . $this->session->data['token'] . $url, 'SSL'),

'separator' => ' :: '

);

$this->data['insert'] = >url->link('catalog/product/insert', 'token=' . $this->session->data['token'] . $url, 'SSL');

$this->data['copy'] =


(72)

$this->session->data['token'] . $url, 'SSL');

$this->data['delete'] = >url->link('catalog/product/delete', 'token=' . $this->session->data['token'] . $url, 'SSL');

$this->data['products'] = array(); $data = array(

'filter_name' => $filter_name, 'filter_model' => $filter_model, 'filter_price' => $filter_price, 'filter_quantity' => $filter_quantity, 'filter_status' => $filter_status, 'sort' => $sort,

'order' => $order,

'start' => ($page - 1) * $this->config->get('config_admin_limit'),

'limit' => $this->config->get('config_admin_limit')

);

$this->load->model('tool/image');

$product_total = $this->model_catalog_product->getTotalProducts($data);

$results = $this->model_catalog_product->getProducts($data);

foreach ($results as $result) { $action = array();

$action[] = array(

'text' => $this->language->get('text_edit'),

'href' =>

>url->link('catalog/product/update', 'token=' . $this->session->data['token'] . '&product_id=' .

$result['product_id'] . $url, 'SSL') );

if ($result['image'] &&

file_exists(DIR_IMAGE . $result['image'])) {


(1)

for ($i = 0; $i < 7; $i++) { $date = date('Y-m-d', $date_start + ($i * 86400));

$query =

$this->db->query("SELECT COUNT(*) AS total FROM `" . DB_PREFIX . "order` WHERE order_status_id > '0' AND DATE(date_added) = '" . $this->db->escape($date) . "' GROUP BY

DATE(date_added)");

if ($query->num_rows) {

$data['order']['data'][] = array($i, (int)$query->row['total']);

} else {

$data['order']['data'][] = array($i, 0);

}

$query =

$this->db->query("SELECT COUNT(*) AS total FROM `" . DB_PREFIX . "customer` WHERE DATE(date_added) = '" . $this->db->escape($date) . "' GROUP BY DATE(date_added)");

if ($query->num_rows) {

$data['customer']['data'][] = array($i, (int)$query->row['total']);

} else {

$data['customer']['data'][] = array($i, 0);

}

$data['xaxis'][] = array($i, date('D', strtotime($date)));

}

break; default:

case 'month':

for ($i = 1; $i <= date('t'); $i++) { $date = date('Y') . '-' .

date('m') . '-' . $i;

$query =


(2)

"order` WHERE order_status_id > '0' AND (DATE(date_added) = '" . $this->db->escape($date) . "') GROUP BY

DAY(date_added)");

if ($query->num_rows) {

$data['order']['data'][] = array($i, (int)$query->row['total']);

} else {

$data['order']['data'][] = array($i, 0);

}

$query =

$this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "customer WHERE DATE(date_added) = '" . $this->db->escape($date) . "' GROUP BY DAY(date_added)");

if ($query->num_rows) {

$data['customer']['data'][] = array($i, (int)$query->row['total']);

} else {

$data['customer']['data'][] = array($i, 0);

}

$data['xaxis'][] = array($i, date('j', strtotime($date)));

}

break; case 'year':

for ($i = 1; $i <= 12; $i++) { $query =

$this->db->query("SELECT COUNT(*) AS total FROM `" . DB_PREFIX . "order` WHERE order_status_id > '0' AND YEAR(date_added) = '" . date('Y') . "' AND MONTH(date_added) = '" . $i . "' GROUP BY MONTH(date_added)");

if ($query->num_rows) {

$data['order']['data'][] = array($i, (int)$query->row['total']);

} else {

$data['order']['data'][] = array($i, 0);


(3)

$query =

$this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "customer WHERE YEAR(date_added) = '" . date('Y') . "' AND MONTH(date_added) = '" . $i . "' GROUP BY

MONTH(date_added)");

if ($query->num_rows) {

$data['customer']['data'][] = array($i, (int)$query->row['total']);

} else {

$data['customer']['data'][] = array($i, 0);

}

$data['xaxis'][] = array($i, date('M', mktime(0, 0, 0, $i, 1, date('Y'))));

}

break; }

$this->load->library('json');

$this->response->setOutput(Json::encode($data)); }

public function login() { $route = '';

if (isset($this->request->get['route'])) { $part = explode('/', $this->request->get['route']);

if (isset($part[0])) { $route .= $part[0]; }

if (isset($part[1])) {

$route .= '/' . $part[1]; }

}


(4)

'common/login', 'common/forgotten', 'common/reset'

);

if (!$this->user->isLogged() && !in_array($route, $ignore)) {

return $this->forward('common/login'); }

if (isset($this->request->get['route'])) { $ignore = array(

'common/login', 'common/logout', 'common/forgotten', 'common/reset', 'error/not_found', 'error/permission' );

$config_ignore = array(); if

($this->config->get('config_token_ignore')) {

$config_ignore = unserialize($this->config->get('config_token_ignore'));

}

$ignore = array_merge($ignore, $config_ignore);

if (!in_array($route, $ignore) &&

(>request->get['token']) || !isset($this->session->data['token']) || ($this->request->get['token'] != $this->session->data['token']))) {

return $this->forward('common/login');

} } else {

if (!isset($this->request->get['token']) || !isset>session->data['token']) ||

($this->request->get['token'] != $this->session->data['token'])) {


(5)

$this->forward('common/login'); }

} }

public function permission() {

if (isset($this->request->get['route'])) { $route = '';

$part = explode('/', $this->request->get['route']);

if (isset($part[0])) { $route .= $part[0]; }

if (isset($part[1])) {

$route .= '/' . $part[1]; }

$ignore = array( 'common/home', 'common/login', 'common/logout', 'common/forgotten', 'common/reset', 'error/not_found', 'error/permission', 'error/token'

);

if (!in_array($route, $ignore) && !$this->user->hasPermission('access', $route)) {

return $this->forward('error/permission');

} }

} }


(6)

8. Logout.php

<?php

class ControllerCommonLogout extends Controller { public function index() {

$this->user->logout();

unset($this->session->data['token']);

$this->redirect($this->url->link('common/login', '', 'SSL')); }

} ?>