Senin, 07 Mei 2012

Membangun Aplikasi e-Commerce


Perkembangan teknologi menjadikan saluran distribusi global untuk produk, jasa, lapangan pekerjaan bidang manajerial dan profesional semakin bersaing. Dampak yang ditimbulkan antara lain mengubah perekonomian, struktur pasar dan industri, produk dan jasa serta aliran distribusinya, segmentasi pasar, nilai bagi konsumen, perilaku konsumen, lapangan pekerjaan dan pasar tenaga kerja.

Salah satu dari teknologi itu adalah internet. Kemampuan dan keandalan internet  memberikan banyak kemudahan bagi berbagai aspek kehidupan. Internet  dapat menjadi sumber informasi dan sarana komunikasi yang murah dan cepat. 

Salah satu aplikasi yang menggunakan dan memanfaatkan teknologi internet adalah Electronic Commerce (e-Commerce) atau perdagangan secara elektronik adalah perdagangan yang dilakukan dengan memanfaatkan jaringan telekomunikasi terutama internet. 

Ada banyak bentuk perdagangan secara elektonik yang dilakukan saat ini, antara lain  internet  banking, pembelian dan penyedian barang, toko online dan sebagainya. Dalam proyek ini kami sebagai tim pengembang akan membuat e-Commerce dengan spesifik Toko Online Handphone. Yang menjadi tempat studi kasus yaitu Toko Handphone SentralFone. SentralFone adalah toko handphone yang menjual handphone, komponen, dan jasa servis handphone di kota Manado tepatnya di area Megamas. Dengan adanya aplikasi e-Commerce manfaat yang diberikan cukup banyak antara lain proses penjualan produk bisa secara online dan 24 jam sehingga antara pembeli dan penjual tidak perlu berhadapan langsung.

Alur Proses Bisnis e-Commerce dari Studi Kasus


Beberapa persyaratan aplikasi (user requirements) yang muncul saat wawancara:

a. Business Need
  1. Adanya laporan bulanan.
  2. Bisa melihat daftar barang yang ingin dibeli.
  3. Memudahkan pembeli dalam mencari jenis barang yang diinginkan.
  4. Proses pembayaran dilakukan melalui transfer via rekening.
  5. Menggunakan forum untuk memudahkan komunikasi antara pembeli dan penjual.
  6. Menggunakan bahasa Indonesia.
b. Functionality
  1. Fitur dalam menggolongkan barang berdasarkan jenis, sehingga bisa lebih memudahkan dalam pencarian spesifikasi dari suatu jenis barang.
  2. Membuat fitur Search untuk memudahkan pembeli dalam mencarim barang yang diinginkan.
  3. Fitur live chating untuk saling obrol antara penjual dan pembeli.
  4. Fitur laporan bulanan dan tahunan, yang berisi jumlah barang yang terjual, barang masih ada dan barang yang baru masuk.
c. Non-Functional
  1. Penggunaan bahasa Indonesia.
  2. Desain inteface harus menarik.
d. Expected Value
Manfaat Tangible:
  1. Meningkatkan akurasi pengontrolan jumlah barang yang masuk dan keluar sampai 80%.
  2. Mengurangi pemakaian waktu dalam mencari suatu jenis barang tertentu sampai 70%.
  3. Mengurangi biaya promosi sampai Rp. 1.100.000 per bulan.
  4. Mengurangi biaya print dan fotocopy Rp. 600.000 per bulan.
Manfaat Intangible:
  1. Meningkatkan kemudahan dalam pencarian suatu jenis barang.
  2. Meningkatkan tingkat kepuasan konsumen.
  3. Meningkatkan pelayanan terhadap konsumen.
e. Special Issues or Constraints
Proyek harus selesai waktu yang telah ditentukan yaitu bulan April.


Iterasi Jacobi

MODUL 6 Iterasi Jacobi
BAB I
TUJUAN DAN DASAR TEORI

I.1 Tujuan
1) Menguasai iterasi Jacobi yang digunakan dalam komputasi numerik.
2) Memahami algoritma pemrograman untuk merancang program iterasi Jacobi.
3) Menerapkan algoritma untuk perancangan dan pembuatan program iterasi Jacobi.

I.2 Dasar Teori
Metode iterasi Jacobi merupakan salah satu bidang analisis numerik yang digunakan untuk menyelesaikan permasalahan persamaan linear dan sering dijumpai dalam berbagai disiplin ilmu. Metode iterasi Jacobi merupakan salah satu metode tak langsung, yaitu bermula dari suatu hampiran penyelesaian awal dan kemudian berusaha memperbaiki hampiran dalam tak berhingga dengan langkah konvergen. Metode iterasi Jacobi ini digunakan untuk menyelesaikan persamaan linear berukuran besar dan proporsi koefisien nolnya besar. Metode ini ditemukan oleh matematikawan yang berasal dari Jerman, Carl Gustav Jakob Jacobi. Penemuan ini diperkirakan pada tahun 1800-an.
Jika merubah Sistem Persamaan Linear, maka dapat ditulis sebagai berikut
Ax = B
Kemudian, diketahui bahwa A = D + (L + U), dimana D merupakan matriks diagonal, L merupakan matriks segitiga bawah, dan U merupakan matriks segitiga atas. Setelah itu, persamaan diatas dapat diubah menjadi:
 
Dx | (L | U)x = b

Kemudian
x = D -1 [b – ( L | U ) x]

Jika ditulis dalam aturan iteratif, maka metode Jacobi dapat ditulis sebagai

x(k+1) = D -1 [b – ( L | U ) x(k)]
 
Dimana k merupakan banyaknya iterasi. Jika x(k) menyatakan hampiran ke-k penyelesaian Sistem Persamaan Linear, maka x(0) adalah hampiran awal.


BAB II
ALAT DAN BAHAN

II.1 Alat dan Bahan yang perlu dipersiapkan:
1) Buku Teks
2) Unit Pemroses
3) Aplikasi Pembuatan Program
            a. Notepad / Notepad++
            b. Aplikasi IDE C++ (Bloodsheed Dev C++)
            c. Mathematica
            d. Matlab
            e. IDE Visual Studio 2010
            f. Netbeans atau Eclipse


BAB III
PROSEDUR PERCOBAAN

III.1 Prosedur Umum
1) Memahami formulasi matematis Metode Iterasi Jacobi
2) Menulis Algoritma penyelesaian masalah (dengan menggunakan teks dan/atau flow chart)
3) Menulis pseudocode algoritma
4) Menguji pseducode algoritma penyelesaian masalah (misalnya dengan menggunakan prosedur Desk Check)
5) Melakukan kodifikasi
6) Menguji Program (misalnya dengan menggunakan prosedur Joel Test dan/atau tools seperti NUnit, NCover, NCoverExplorer dan TestDriven.NET, atau menggunakan prosedur pengujian langsung)
7) Membuat dokumentasi Praktikum (misalnya dengan menggunakan Version Control Subversion, Mercurial, Gita tau Veracity)

III.2 Prosedur Khusus
III.2.1 Contoh menulis program menggunakan IDE Bloodshed Dev C++
1)      Untuk menulis program baru caranya tekan CTRL+N atau pilih NEW lalu klik Source File terlebih dahulu sebelum mengetik program.
2)      Ketikkan program anda.
3)      Simpan program dengan menekan tombol CTRL+F12, pilih Save kemudian pada kotak dialog yang muncul ketikkan nama program pada tempat yang tersedia misalnya Contoh1.cpp, kemudian klik Save atau tekan <ENTER>
4)      Jalankan program dengan terlebih dahulu melakukan kompilasi. Hal ini dapat dilakukan sekaligus dengan mengklik Compile & Run (F9) pada menu bar ataulangsung menekan F9 pada keyboard.
5)      Bila kompilasi tidak berhasil dan memunculkan pesan error, periksa kembali kode program yang ada kemudian perbaiki kesalahan dan lakukan kembali langkah 3 dan 4.  
6)      Untuk membuka arsip yang ada, gunakan OPEN atau tekan CTRL+O pada keyboard.

III.2.2 Prosedur Uji Coba
Perhatikan penggalan program berikut
Lakukan langkah-langkah berikut:
1. Terdapat sebuah program dibawah
2. Pahami algoritma penyelesaian masalah pada program diatas!
3. Tuliskan program berdasarkan langkah-langkah algoritma penyelesaian masalah!
4. Jalankan program
5. Temukan kesalahan program
6. Membuat dokumentasi
7. Lakukan kembali langkah 4 hingga langkah 6
8. Tuliskan program yang sudah benar
9. Membuat dokumentasi laporan lengkap

Contoh Program:
#include <iostream>
#include <math.h>
using namespace std;
//Iterasi Jacobi
int main(){
int a, b, c, d, e, f, g, h, i, j, k, l, xb, yb, zb;
float x, xk, y, yk,z, zk, selisih_x, selisih_y, selisih_z;
char pil;
do
{
cout<<”Format: 4x – y + z = 7”<<endl;
cout<<” 4x – 8y + z = 21”<<endl;
cout<<” -2x + y + 5z = 15”<<endl;
cout<<”Harga awal:(1,2,2)”;
int n=1;
do {
xk=(7-(-4*y)-(1*z))/4;
yk=(-21-(4*x)-(1*z))/-8;
zk=(15-(-2*x)-(1*y))/5;
cout<<”x”<<n<<”: ”<<xk<<endl;
cout<<”y”<<n<<”: “<<yk<<endl;
cout<<”z”<<n<<”: “<<zk<<endl;
y=yk;
z=zk;
n++;
xb=x;
selisih_x=x-xb;
yb=y;
selisih_y=y-yb;
zb=z;
selisih_z=z-zb;
}
while((selisih_x>0.00001||selisih_x<-0.00001) \
||(selisih_y>0.00001||selisih_y<-0.00001) \
||(selisih_z>0.00001||selisih_z<-0.00001));
cout<<”\nApakah ingin diulang lagi?”;
cin>>pil;
cout<<endl;
}
while (pil==’Y’||pil=’y’);
return 0;
}

3.2.3 Saran
1. Pelajari buku teks dan sumber lainnya
2. Mintalah petunjuk dari dosen pengasuh, asisten laboratorium dan lainnya.
3. Lakukan dokumentasi dengan baik.
4. Belajarlah bekerja dalam kelompok.
5. Ikuti setiap langkah dari prosedur yang ada

Jumat, 04 Mei 2012

tentang WAP (bagian 3)

Tulisan ini merupakan bagian 3. 
Untuk bagian 1 dapat dilihat disini, dan untuk bagian 2 dapat dilihat disini.
Pengembangan aplikasi WAP dilakukan dalam suatu lingkungan kerja yang disebut Wireless Application Environment (WAE). Inti dari WAE ini terdiri Wireless Markup Language (WML) dan Wireless Markup Language Scripts (WMLScript). 

Pengembangan Aplikasi WAP dengan PHP
Untuk membuat aplikasi WAP menjadi lebih dinamis dan interaktif, yang mampu memberikan dan menerima respon dari dan ke pengakses, kita dapat menggunakan bahasa-bahasa script yang berjalan pada sisi server (server side-scripting). Dalam tugas akhir ini akan menggunakan PHP ( PHP Hypertext Processor), bahasa script server-side yang tangguh, populer di internet dan gratis untuk memberi unsur dinamik dan interaktif pada aplikasi WAP.

Pada prinsipnya, komunikasi antara web server dengan perangkat WAP sama dengan hubungan antara web server dengan browser berbasis PC, hanya saja dalam hal ini ada satu tahap tambahan. Tahap ekstra yang dibutuhkan adalah transfer informasi oleh WAP gateway. WAP gateway bertindak sebagai perantara antara browser nirkabel dengan server tempat informasi berada.


Proses Komunikasi browser nirkabel dengan web server     

Yang berperan sebagai WAP gateway biasanya adalah perusahaan telekomunikasi yang menyediakan layanan telepon nirkabel atau telepon seluler. Misalkan kita telah membuat deck yang berisi dua buah card. Kemudian user daengan perangkat nirkabelnya melakukan permintaan atau request  terhadap deck tersebut. Maka, urut-urutan event yang terjadi untuk permintaan user tersebut adalah sebagai berikut :
  1. Request dikirimkan ke WAP gateway dengan protocol WAP. WAP gateway, di bawah “kendali” dari perangkat WAP, melakukan request untuk URL tertentu dengan protocol HTTP.
  2. Request ditransmisikan via internet ke alamat IP dari perangkat WAP (alamat IP dari suatu perangkat WAP ditentukan oleh operator).
  3. Request mencapai tujuan akhirnya, yaitu web server.  Server membaca header dan memproses permintaan dokumen WAP. Kode program PHP yang terdapat dalam dokumen ini dikompilasi dan diformat sesuai dengan kebutuhan.
  4. Dokumen atau deck WAP yang telah diproses ini dikirimkan kembali melalui WAP gateway. Pada gateway, isi dari deck dikompres menjadi data biner dan dikirimkan keperangkat WAP.


Adalah mungkin dan sangat mudah untuk menambahkan unsur dinamik ke dalam WML dengan PHP. Pengembnagan aplikasi WAP dengan PHP memungkinkan kita membuat aplikasi seperti database, mailserver, pengiriman pesan dan lain-lain. Supaya script PHP dapat didukung oleh perangkat WAP, script ini harus menghasilkan outrput header WML kepada Client. Karena itu, setiap dokumen WML yang berisi kode PHP harus menyertakan baris-baris berikut yang ditempatkan pada awal deck:


Deklarasi ini diperlukan karena PHP secara default mengirim baris Content-type : text/html.


Interaksi PHP dengan MySQL
Komunikasi antara user dengan WAP browser dengan web server dapat menjadi lebih interaktif dengan penggunaan database. Dengan adanya PHP yang bekerja pada sisi server, komunikasi interaktif dapat dilakukan dengan antara user dengan server, baik Apache sebagai web server maupun database server MySQL. User yang mengakses dapat memperoleh data atau informasi dari server dan server dapat menyimpan data yang dikirimkan user dalam database MySQL.
Database yang dipakai adalah MySQL dengan beberapa alasan, antara lain karena MySQL gratis dan mudah dipelajari. Dalam PHP terdapat banyak fungsi yang digunakan sebagai penghubung atau antarmuka dengan MySQL sehingga data dalam database dapat dilihat di internet. Banyak situs di internet yang menggunakan PHP-MySQL dalam pengembangan situsnya. 

tentang WAP (bagian 2)

Bagian Pertama dari tulisan ini, dapat dilihat disini.
Pengembangan aplikasi WAP dilakukan dalam suatu lingkungan kerja yang disebut Wireless Application Environment (WAE). Inti dari WAE ini terdiri Wireless Markup Language (WML) dan Wireless Markup Language Scripts (WMLScript). 

WML merupakan bahasa mark-up yang  berbasis pada Extensible Markup Language (XML). WML adalah analogi dari HTML yang berjalan pada protocol nirkabel. Tag-tag pada WML mirip dengan tag-tag yang ada pada HTML.
Data WML terstruktur dalam bentuk koleksi kartu atau card. Sebuah koleksi card disebut deck. Tiap deck tersusun dari isi yang terstruktur dan spesifikasi navigasi. Penggunaan melakukan navigasi dalam susunan card, melihat isi tiap card, mengisi informasi yang dibutuhkan, membuat pilihan dan bernavigasi ke card selanjutnya atau kembali ke card sebelumnya.
Dalam HTML, user interface ditampilkan dalam bentuk halaman-halaman HTML di mana dalam card pada suatu deck dapat memiliki hyperlink ke card yang lain.
Jika WML merupakan analogi dari HTML pada media nirkabel, maka WMLScript merupakan analogi yang tepat dari JavaScript. WMLScript, seperti halnya JavaScript, berjalan pada sisi client (client side scripting). Bedanya, WMLScript tidak bisa ditempatkan menjadi satu dengan halaman WML yang menggunakan fungsi-fungsi dari WMLScript.

Fungsi-fungsi WMLScript yang akan digunakan oleh halaman WML ditempatkan dalam file yang terpisah. Pemisahan ini memberikan suatu keuntungan, yaitu dalam fokus pembuatan aplikasi. Jika kita bekerja dengan halaman WML, maka kita hanya berfokus pada isi atau user interface halaman yang kita inginkan. Dengan WMLScript, kita berfokus pada pembuatan prosedur atau fungsi dari logika pemrograman.

Aplikasi WML yang kita buat dapat diakses menggunakan browser yang disebut user agent (UA). UA mendownload halaman WML dan atau WMLScript yang dibutuhkan dan merender halaman tersebut. Hasil render halaman WML amat tergantung pada tipe alat yang digunakan. Dan tampilan yang diperoleh mungkin berbeda antara ponsel dengan kemampuan grafis yang baik dengan yang hanya mendukung modus teks.

Berikut adalah catatan terkait WML:
Prolog WML 8
Statetmen pertama dalam sebuah dokumen XML dalam sebuah dokumen WML disebut prolog ini adalah optional (tidak harus ada) dan mengandung  dua baris kode :
Deklarasi  XML : digunakan untuk mendefinisikan versi XML
Deklarasi DTD : penunjuk ke file yang mengandung DTD dokumen ini.

Contoh prolog adalah sebagai berikut : 
<?xml version="1.0" encoding="iso-8859-1" ?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">

Setelah prolog, setiap dokumen XML mengandung sebuah elemen tunggal yang mengandung semua sub elemen dan entity yang lainnya. Seperti kalau di HTML, semua elemen dikurung  oleh karakter <> dan </>. Misalnya :
                    <element> datadatadata </element>

Hanya boleh ada satu elemen dokumen per dokumen. Dengan WML, elemen dokumennya adalah <wml>, (seperti di html elemen dokumennya adalah <html> ) semua elemen lainnya termasuk di dalamnya. 
Dua cara paling umum untuk menyimpan data dalam dokumen XML adalah dengan element dan attribute.
Element adalah item-item berstruktur dalam  dokumen tersebut yang ditandai dengan tag elemen pembuka dan penutup. Element juga dapat mengandung sub-element.
Attribute biasanya digunakan untuk mendeskripsikan sebuah elemen.

Contoh, misalkan ada kode seperti ini:


Dalam kode di atas, element mengandung attribute id dan title. (Catatan: komentar di WML mirip dengan HTML tetapi harus tampil dalam tag <!-- -->  

Element WML yang  valid
WML mendefinisikan sebelumnya sebuah kumpulan element yang dapat dikombinasikan bersama-sama untuk membuat sebuah dokumen WML. Pencantuman Elemen-eleman ini dapat dibagi menjadi dua kelmpok :
Element Deck/Card; dan Element Event.
Element Deck/Card : wml,card, template, head, acces, meta.
Element Event : do, on timer, onenterforward, onenterbackward, onpick, onevent, postfield.
Task : go, prev, refresh, noop.
Variabel : input, select, option, optgroup, fieldset.
Anchor, Image dan Timer : a, anchor, img, timer.
Text Formatting : br, p, table, tr, td.
Setiap elemen di atas dimasukkan ke dalam dokumen dengan sintaks seperti ini :
<element>nilai elemen itu</element>

Jika sebuah elemen tidak punya data di dalamnya (sebagaimana biasanya dalam kasus menformat elemen dengan <br> misalnya), kita dapat menghemat dengan hanya memasukkan satu tag yang ditambahi karakter / (misalnya: <br/>.

tentang WAP


WIRELESS APPLICATION PROTOCOL (WAP) merupakan salah satu produk Teknologi Informasi Komunikasi yang paling sering digunakan oleh masyarakat umum. Internet sejak pertengahan tahun 1990-an hingga kini, telah mengubah cara kita berkomunikasi dan berinteraksi. Internet memungkinkan terjadinya pertukaran informasi secara cepat dalam lingkup yang global, yaitu dunia. Informasi kemudian menjadi wilayah publik dapat diakses dari manapun. Perkembangan sistem komunikasi personal nirkabel (wireless) yang pesat telah membangkitkan gagasan-gagasan tentang akses internet dan informasi dari perangkat komunikasi personal nirkabel dengan tingkat mobilitas tinggi. Bagaimana bisa? Teknologi Wireless Aplication Protocol (WAP) merupakan sinergi dari kombinasi internet dan dunia komunikasi nirkabel.

Apa itu WAP
Wireless Application Protocol (WAP) merupakan protokol bagi perangkat-perangkat nirkabel yang menyediakan layanan komunikasi data bagi pengguna, baik dalam bentuk yang berhubunngan dengan telekomunikasi maupun aplikasi-aplikasi berorentasi internet.
Struktur  WAP mengadopsi topologi layer-layer yang ada pada Internet Protocol (model TCP/IP). Ini terkait dengan tujuan dibuatnya WAP, yaitu memberikan akses internet bagi alat komunikasi mobile nirkabel. Protokol mengatur bagaimana format paket data dan layanan-layanan terhadap paket data pada setiap layer, bagaimana suatu layer memberikan layanan kepada layer lain yang berada diatasnya.   

Mengembangkan Aplikasi  WAP
Pengembangan aplikasi WAP dilakukan dalam suatu lingkungan kerja yang disebut Wireless Application Environment (WAE). Inti dari WAE ini terdiri Wireless Markup Language (WML) dan Wireless Markup Language Scripts (WMLScript). 
Untuk  menjangkau dunia internet, sebuah ponsel dengan teknologi WAP harus berjalan via WAP Gateway. WAP Gateway ini bertindak sebagai perantara, menghubungkan jaringan mobile dan internet dengan menerjemahkan Hypertext Transfer Protokol (HTTP) menjadi Wireless Session Protokol (WSP). Gambar di bawah ini menunjukkan skema sederhana hubungan antara web server, gateway dan ponsel dengan WAP.


Diagram Network Pada WAP

Web server melayani permintaan dari user melalui ponsel untuk sebuah aplikasi WAP. Hubungan ini dilakukan melalui perantara WAP Gateway. Aplikasi dalam WAP dibentuk dalam format WML. Untuk menjalankan suatu aplikasi WAP, sama halnya dengan internet biasa. Kita tinggal mengetikan URL yang dikehendaki, misalnya : http://tekniksoft.net. Karena itu, untuk membuat aplikasi WAP yang kita butuhkan adalah sebuah web server untuk menangani permintaan user akan aplikasi WAP, misalnya Apache, Microsoft Internet Information Sevice (IIS), ataupun PWS (Personal Web Server).