Kamis, 03 Juni 2010

Belajar SQL

Soal 1
Di bawah ini adalah struktur sistem basis data dari sebuah perusaan Agensi Properti. Perusahaan ini bergerak dalam usaha perantara penjualan/penyewaan properti seperti rumah, toko, ruko, flat apartemen dan lain lain. Jasa yang ditawarkan adalah membantu seorang pemilik properti untuk menjualkan property miliknya, dimulai dari mememasarkan, melayani calon pembeli/customer hingga proses jual beli property tersebut. Agensi memiki beberapa staff penjualan (agen). Setiap agen diberikan tanggung jawab untuk menangani satu property yang dipercayakan pemilik kepada agensi.
PEMILIK (IDPemilik, Nama, Alamat, Kota, Phone)

PROPERTI (IDProperti, IDPemilik, Katagori, Kelurahan, Kecamatan, Kabupaten_kota, Provinsi,
Luas_Tanah, Luas_Bangunan, Jumlah_Kamar, Harga)
CUSTOMER (IDCustomer, Nama, Anggaran, Alamat, Kota, Phone)
AGEN (IDAgen, Nama, Alamat, Kota, Phone)
KUNJUNGAN (IDProperti, IDAgen, IDCustomer, Tanggal, Durasi)
JUAL (IDProperti, IDAgen, IDCustomer, Tanggal, Harga_Kesepakatan, Status)
SEWA (IDProperti, IDAgen, IDCustomer, Tanggal, Harga_ Kesepakatan, Status, Lama_sewa)

Tugas yang harus anda lakukan adalah merancang sebuah Data Warehouse yang memfasilitasi seorang supervisor pada Agensi tersebut agar mendapatkan suatu gambaran umum dari bisnis yang dilakukan, dalam kaitannya dengan properti yang ditangani dan aktivitas kerja dari para agen.

Tulislah pernyataan query SQL untuk mencari:
Berapa banyak customer yang sudah mengunjungi setidaknya 3 katagori property yang berbeda? Berapa rata-rata lama kunjungan untuk setiap katagori properti?
Siapa yang membeli property dengan harga tertinggi diantara cutomer yang sudah melakukan kunjungan setidaknya 3 katagori properti yang berbeda? • Siapa saja yang membeli rumah dengan harga tertinggi, merujuk pada setiap bulannya?
Property apa yang terjual dengan harga yang tertinggi, merujuk pada setiap bulan dankotanya?

Jawaban

Jumat, 28 Mei 2010

Komponen Teknologi Web

Web Server

Web Server adalah sebuah perangkat lunak server yang berfungsi menerima permintaan HTTP atau HTTPS dari klien yang dikenal dengan browser web dan mengirimkan kembali hasilnya dalam bentuk halaman-halaman web yang umumnya berbentuk dokumen HTML. Server web yang terkenal diantaranya adalah Apache dan Microsoft Internet Information Service (IIS). Apache merupakan server web antar-platform, sedangkan IIS hanya dapat beroperasi di sistem operasi Windows.
Web server menunggu permintaan dari client yang menggunakan browser seperti Internet Explorer, Mozilla, Opera dan program browser lainnya. Jika ada permintaan dari browser, maka web server akan memproses permintaan itu kemudian memberikan hasil prosesnya berupa data yang diinginkan kembali ke browser. Data ini mempunyai format yang standar, disebut dengan format SGML (standar general markup language). Data yang berupa format ini kemudian akan ditampilkan oleh browser sesuai dengan kemampuan browser tersebut. Contohnya, bila data yang dikirim berupa gambar, browser yang hanya mampu menampilkan teks (misalnya lynx) tidak akan mampu menampilkan gambar tersebut, dan jika ada akan menampilkan alternatifnya saja. Web server, untuk berkomunikasi dengan client-nya (web browser) mempunyai protokol sendiri, yaitu HTTP (hypertext transfer protocol).
Dengan protokol ini, komunikasi antar web server dengan client-nya dapat saling dimengerti dan lebih mudah. Seperti telah dijelaskan diatas, format data pada world wide web adalah SGML. Tapi para pengguna internet saat ini lebih banyak menggunakan format HTML (hypertext markup language) karena penggunaannya lebih sederhana dan mudah dipelajari. Kata HyperText mempunyai arti bahwa seorang pengguna internet dengan web browsernya dapat membuka dan membaca dokumen-dokumen yang ada dalam komputernya atau bahkan jauh tempatnya sekalipun.

Caching server

Adalah suatu server lokal (dekat) yang disediakan untuk menyimpan data-data yang telah diakses pada server luar dan apabila client mengakses data yang sama server ini akan mengeluarkan data tersebut dari cache nya sehingga akses menjadi lebih cepat.
Penggunaan caching server biasanya di sebut dengan Proxy. Dalam Internet sebuah Proxy chace dapat mempercepat proses browsing dengan cara menyimpan data yang telah diakses di komputer yang berjarak dekat dengan komputer pengakses. Jika kemudian ada user yang mengakses data yang sama, proxy cache akan mengirim data tersebut dari cache-nya, bukan dari tempat yang lama diakses. Dengan mekanisme HTTP, data yang diberikan oleh proxy selalu data yang terbaru, karena proxy akan selalu mencocokkan data yang ada di cache-nya dengan data yang ada di server luar.
Contoh untuk membuat cache server atau proxy adalah Squid. Squid Cache Server secara umum adalah software penghemat bandwidth, hal ini jelas karena fungsinya mengcache objek-objek pada website, sehingga content yang sama tidak perlu diakses ke server aslinya, cukup diakses ke server cache lokal. Squid pada awalnya ditujukan untuk sistem operasi berbasis Unix. Squid ini memiliki fitur dan performa yang sangat bagus, sehingga squid ini di-porting ke sistem operasi Windows.
Untuk versi Unix/Linux (http://www.squid-cache.org/)
Untuk versi Windows (http://squid.acmeconsulting.it/)

Mail Server

Mail server adalah sebuah aplikasi yang digunakan untuk menerima dan mengirimkan email(surat elektronik) . Atau sebuah komputer yang didedikasikan untuk menjalankan aplikasi mail server.
Mail server bekerjasama dengan program lain untuk membuat sistem pesan. Sebuah sistem pesan mencakup semua aplikasi email itu berjalan. Sebagai contoh apabila kita ingin mengirimkan email melalui komputer (bukan webmail yahoo.com) menggunakan Outlook atau mail client, maka program mail client akan mengirimkan data melalui protokol SMTP (Simple Mail Transfer Protocol) yang kemudian antara Protokol pengirim dan penerima akan saling berhubungan kemudian apabila Valid maka akan disimpan di Mail Server penerima. Kemudian orang yang kita kirim email tersebut ingin membaca, dia harus membuka mail Client dan mengambil email dari server mailnya dengan melalui protokol POP3(Post Office Protocol 3) atau IMAP(Internet Message Access Protocol).
Pada pembacaan email ada dua cara yaitu menggunakan Mail Client (Outlook, Thunderbird, Evolution) dan menggunakan Web Mail (mail.yahoo.com, http://mail.google.com/)
Perbedaan Webmail dan Mail Client
Webmail
Software : Web Browser
E-mail di simpan di : Internet
E-mail di ambil dari Server? : Tidak
Jumlah e-mail yang disimpan : Terbatas
Untuk membaca membutuhkan Internet ? : Membutuhkan Internet
Kecepatan akses : Lambat
Akses dari komputer lain? : Bisa, melalui internet
Mail Client
Software : Outlook, Thunderbird
E-mail di simpan di :Harddisk (Komputer lokal)
E-mail di ambil dari Server? : Ya
Jumlah e-mail yang disimpan : Tergantung besarnya harddisk
Untuk membaca membutuhkan Internet ? : Pada saat get mail saja, untuk membaca bisa dimatikan
Kecepatan akses : Cepat
Akses dari komputer lain? : Tidak


Load balancing Server

Load balancing adalah sebuah konsep yang gunanya untuk menyeimbangkan beban atau muatan pada infrastruktur TI sebuah perusahaan. Agar seluruh departemen dapat dimanfaatkan secara maksimal dan optimal.
Contoh pada Sebuah Perusahaan Perbankan terdapat empat buah server dengan keperluan yang berbeda satu sama lain, seperti server SCM, ERP, CRM dan e-mail. Tentu saja ke-empat-empatnya harus dibangun dengan sistem yang lengkap, baik dari segi hardware maupun keamanannya. Padahal kerja ke-empat-empatnya tidak selalu sama dari hari ke hari. Contoh saja e-mail server, pada hari libur server akan tidak bekerja 100%, mengingat pada akhir pekan tidak terlalu banyak e-mail yang keluar masuk. Namun pada akhir pekan banyak transaksi melalui ATM yang berlangsung. Sehingga server yang digunakan untuk transaksi tersebut dapat memanfaatkan resources yang tersedia melimpah pada e-mail server.
Contoh aplikasi yang dapat menangani Load balancing adalah Oracle Database 10g (http://www.oracle.com)

Firewall

Firewall adalah sebuah sistem atau perangkat yang mengizinkan lalu lintas jaringan yang dianggap aman untuk melaluinya dan mencegah lalu lintas jaringan yang tidak aman. Umumnya, sebuah firewall diterapkan dalam sebuah mesin terdedikasi, yang berjalan pada pintu gerbang (gateway) antara jaringan lokal dan jaringan lainnya. firewall umumnya juga digunakan untuk mengontrol akses terhadap siapa saja yang memiliki akses terhadap jaringan pribadi dari pihak luar. Saat ini, istilah firewall menjadi istilah lazim yang merujuk pada sistem yang mengatur komunikasi antar dua jaringan yang berbeda. Mengingat saat ini banyak perusahaan yang memiliki akses ke Internet dan juga tentu saja jaringan berbadan hukum di dalamnya, maka perlindungan terhadap modal digital perusahaan tersebut dari serangan para peretas, pemata-mata, ataupun pencuri data lainnya, menjadi terlindungi.

Fungsi Firewall :

Mengatur dan Mengontrol Lalu lintas jaringan
Fungsi pertama yang dapat dilakukan oleh firewall adalah firewall harus dapat mengatur dan mengontrol lalu lintas jaringan yang diizinkan untuk mengakses jaringan privat atau komputer yang dilindungi oleh firewall. Firewall melakukan hal yang demikian, dengan melakukan inspeksi terhadap paket-paket dan memantau koneksi yang sedang dibuat, lalu melakukan penapisan (filtering) terhadap koneksi berdasarkan hasil inspeksi paket dan koneksi tersebut.

Melakukan autentikasi terhadap akses
Protokol TCP/IP dibangun dengan premis bahwa protokol tersebut mendukung komunikasi yang terbuka. Jika dua host saling mengetahui alamat IP satu sama lainnya, maka mereka diizinkan untuk saling berkomunikasi. Pada awal-awal perkembangan Internet, hal ini boleh dianggap sebagai suatu berkah. Tapi saat ini, di saat semakin banyak yang terhubung ke Internet, mungkin kita tidak mau siapa saja yang dapat berkomunikasi dengan sistem yang kita miliki. Karenanya, firewall dilengkapi dengan fungsi autentikasi dengan menggunakan beberapa mekanisme autentikasi, sebagai berikut:
  • Firewall dapat meminta input dari pengguna mengenai nama pengguna (user name) serta kata kunci (password). Metode ini sering disebut sebagai extended authentication atau xauth. Menggunakan xauth pengguna yang mencoba untuk membuat sebuah koneksi akan diminta input mengenai nama dan kata kuncinya sebelum akhirnya diizinkan oleh firewall. Umumnya, setelah koneksi diizinkan oleh kebijakan keamanan dalam firewall, firewall pun tidak perlu lagi mengisikan input password dan namanya, kecuali jika koneksi terputus dan pengguna mencoba menghubungkan dirinya kembali.
  • Metode kedua adalah dengan menggunakan sertifikat digital dan kunci publik. Keunggulan metode ini dibandingkan dengan metode pertama adalah proses autentikasi dapat terjadi tanpa intervensi pengguna. Selain itu, metode ini lebih cepat dalam rangka melakukan proses autentikasi. Meskipun demikian, metode ini lebih rumit implementasinya karena membutuhkan banyak komponen seperti halnya implementasi infrastruktur kunci publik.
  • Metode selanjutnya adalah dengan menggunakan Pre-Shared Key (PSK) atau kunci yang telah diberitahu kepada pengguna. Jika dibandingkan dengan sertifikat digital, PSK lebih mudah diimplenentasikan karena lebih sederhana, tetapi PSK juga mengizinkan proses autentikasi terjadi tanpa intervensi pengguna. Dengan menggunakan PSK, setiap host akan diberikan sebuah kunci yang telah ditentukan sebelumnya yang kemudian digunakan untuk proses autentikasi. Kelemahan metode ini adalah kunci PSK jarang sekali diperbarui dan banyak organisasi sering sekali menggunakan kunci yang sama untuk melakukan koneksi terhadap host-host yang berada pada jarak jauh, sehingga hal ini sama saja meruntuhkan proses autentikasi. Agar tercapai sebuah derajat keamanan yang tinggi, umumnya beberapa organisasi juga menggunakan gabungan antara metode PSK dengan xauth atau PSK dengan sertifikat digital.
Dengan mengimplementasikan proses autentikasi, firewall dapat menjamin bahwa koneksi dapat diizinkan atau tidak. Meskipun jika paket telah diizinkan dengan menggunakan inspeksi paket (PI) atau berdasarkan keadaan koneksi (SPI), jika host tersebut tidak lolos proses autentikasi, paket tersebut akan dibuang.

Melindungi sumber daya dalam jaringan privat
Salah satu tugas firewall adalah melindungi sumber daya dari ancaman yang mungkin datang. Proteksi ini dapat diperoleh dengan menggunakan beberapa peraturan pengaturan akses (access control), penggunaan SPI, application proxy, atau kombinasi dari semuanya untuk mencegah host yang dilindungi dapat diakses oleh host-host yang mencurigakan atau dari lalu lintas jaringan yang mencurigakan. Meskipun demikian, firewall bukanlah satu-satunya metode proteksi terhadap sumber daya, dan mempercayakan proteksi terhadap sumber daya dari ancaman terhadap firewall secara eksklusif adalah salah satu kesalahan fatal. Jika sebuah host yang menjalankan sistem operasi tertentu yang memiliki lubang keamanan yang belum ditambal dikoneksikan ke Internet, firewall mungkin tidak dapat mencegah dieksploitasinya host tersebut oleh host-host lainnya, khususnya jika exploit tersebut menggunakan lalu lintas yang oleh firewall telah diizinkan (dalam konfigurasinya). Sebagai contoh, jika sebuah packet-inspection firewall mengizinkan lalu lintas HTTP ke sebuah web server yang menjalankan sebuah layanan web yang memiliki lubang keamanan yang belum ditambal, maka seorang pengguna yang "iseng" dapat saja membuat exploit untuk meruntuhkan web server tersebut karena memang web server yang bersangkutan memiliki lubang keamanan yang belum ditambal. Dalam contoh ini, web server tersebut akhirnya mengakibatkan proteksi yang ditawarkan oleh firewall menjadi tidak berguna. Hal ini disebabkan oleh firewall yang tidak dapat membedakan antara request HTTP yang mencurigakan atau tidak. Apalagi, jika firewall yang digunakan bukan application proxy. Oleh karena itulah, sumber daya yang dilindungi haruslah dipelihara dengan melakukan penambalan terhadap lubang-lubang keamanan, selain tentunya dilindungi oleh firewall. (id.wikipedia.org/wiki/Firewall)


Terimakasih, Semoga bermanfaat

Sabtu, 23 Januari 2010

Teknik Kompresi Menggunakan Huffman Tree

Apa itu Kompresi ??
Yaitu memperkecil ukuran dengan cara memadatkan data.
Disini akan dibahas sedikit teknik Kompresi menggunakan Metode Huffman yaitu dengan cara memanfaatkan karakter yang muncul secara berulang-ulang.
Cara Kerja Metode Huffman
Ada Serangkaian Karakter ABCDAPQQPAABBBA
1. Hitung jumlah pemunculan setiap karakter
A = 5
B = 4
C = 1
D = 1
P = 2
Q = 2
2. Buat simpul untuk setiap karakter, simpul diurutkan berdasarkan jumlah pemunculan dari
kiri ke kanan secara descending



3. 2 Simpul terkecil (2 simpul paling kanan) digabungkan sehingga membentuk simpul baru



4. Kemudian gabungkan simpul-simpul dari sebelah kanan sehingga membentuk pohon dan beri
nilai 1 untuk simpul sebelah kanan dan beri nilai 0 untuk simpul sebelah kiri




A = 1

B = 01

C = 00001

D = 00000

P = 001

Q = 0001

jadi untuk rangkaian Karakter ABCDAPQQPAABBBA

menjadi

1010000100000100100010001001110101011


Terimakasih
Nizomi

Pemrograman Berorientasi Objek

Berorientasi Objek, sekarang banyak orang mengatakan Orientasi Objek. Saya dulu bingung juga apa itu OOP, binatangnya kayak gimana ?, warnanya apa?? ehh pas sudah belajar and coba dikit2 lumayan ternyata gak susah juga soalnya pengelolaan program semuanya diarahin ke pembentukan objek termasuk ke tipe data (kecuali yang dasar :int, float, double, char) . Nah kalo dah nerapin konsep ini, program akan lebih gampang dikembangin karena lebih modular. (hehehe)

Pengembangan berorientasi objek sangat berbeda dari pemrograman prosedural (tradisional). Suatu objek adalah unik. Ia mewakili suatu objek di sekitar kita, seperti orang (contohnya seorang penumpang atau kedatangan kereta), mobil. Suatu objek didefinisikan berdasarkan namanya, sebuah kata benda seperti: karyawan, rekening bank, ataupun kartu kredit. Objek juga memiliki atribut dan metode.

Yang menjadi pertanyaan berikutnya, apa sebenarnya perbedaan antara kelas dengan objek? Dalam konteks pemrograman berorientasi objek, kelas adalah suatu struktur dalam program yang berisi satu atau beberapa metode (dapat berupa fungsi dan/atau prosedur) dan atribut (dapat berupa data ataupun variabel yang akan dioperasikan dalam metode). Dengan demikian atribut merupakan anggota kelas yang bersifat statis, sedangkan metode merupakan anggota kelas yang bersifat dinamis. Dalam pemroraman, metode dan atribut biasanya dapat dibedakan dari format penulisannya, yaitu nama_metode(tipe_parameter daftar_parameter, (…)) untuk format metode (parameter dan tipe parameter bisa lebih dari satu) dan tipe parameter nama_atribut untuk format atribut. Jadi Berbicara (int Suara) dan Jumlahkan (double Nil1,double Nil2) merupakan metode, sedangkan int Suara, double Nil1 dan double Nil2 merupakan atribut.

Sedangkan objek merupakan contoh-langsung atau contoh-nyata dari kelas. Misal: dari kelas Mobil dapat dibuat objek PunyaGua, MobilPakJoko. artinya, PunyaGua merupakan contoh-langsung dari kelas Mobil.

Suatu objek memiliki atribut-atribut. Atribut merupakan deskripsi (data) yang berhubungan dengan objek. Sebagai contoh, pada objek Mobil dapat memiliki Ban, Stir, Kopling, Warna dll. Suatu objek memiliki atribut-atribut. Atribut merupakan deskripsi (data) yang berhubungan dengan objek.

Bahasa pemrograman yang lazim digunakan dalam OOP adalah C++ ( Keluaran Borland disebut
Borland C++, sedangkan dari Microsoft disebut Ms C++. Namun yang terakhir kurang poluler ). Demikian pula, jika ada bahasa pemrograman yang menggunakan C++ sebagai landasan utama bagi pengembangannya, maka bahasa tersebut bisa dipakai untuk OOP, seperti Java. Salah satu Pemrograman yang Berorientasi Objek adalah JAVA (Thanks to http://java.sun.com/).

Untuk mempermudah pengertian mengenai objek, dimisalkan objek sebagai departemen-departemen dalam perusahaan, seperti pemasaran, keuangan, produksi, personalia, pengadaan maupun warehouse. Setiap departemen memiliki fungsi, tugas dan tanggung jawab yang berbeda. Jika menginginkan data laporan keuangan maka yang harus diminta adalah departemen keuangan, bukan yang lainnya.

Karakteristik OOP :
  1. Abstrak : Melihat suati sistem dalam bentuk yang lebih sederhana (Ruang Kantor ada kursi, meja, dll).
  2. Modular : Membuat objek secara terpisah (modul).
  3. Enkapsulasi : Menyembunyikan attribut dan fungsi (suatu proses) untuk membatasi akses dari luar (Tombol-tombil pada TV).
  4. Pewarisan : Mewariskan sifat-sifat kepada kelas lain
  5. Polimorfisme : SIfat dari kelas objek yang memungkinkan beberapa fungsi memiliki nama yang sama walaupun isi berbeda.
Contoh-contoh OOP menggunakan Java :

  1. Menghitung Luas Segi Tiga
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

/**
*
* @author Nizomi
*/
import java.util.Scanner;
public class LuasSegitiga {
public static void main (String[]args) {
System.out.print("Masukkan Nilai Alas :");
Scanner input = new Scanner(System.in);
double alas = input.nextDouble();
System.out.print("Masukkan Nilai Tinggi :");
Scanner input2 = new Scanner(System.in);
double tinggi = input2.nextDouble();

double luas = (alas*tinggi)/2;
System.out.println("Luas Segitiga ="+luas);
}
}


  1. Menghitung Jumlah hari dalam satu Bulan

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

/**
*
* @author Nizomi
*/
import java.util.Scanner;
public class JumlahHari {
public static void main (String[]args){
System.out.print("Masukkan Tahun : ");
Scanner input = new Scanner(System.in);
int tahun = input.nextInt();
System.out.print("Masukkan Bulan : ");
Scanner input2 = new Scanner(System.in);
int bulan = input2.nextInt();

switch(bulan) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println("Jumlah hari pada tahun "+tahun+" 31 Hari");
break;
case 4:
case 6:
case 9:
case 11:
System.out.println("Jumlah hari pada tahun "+tahun+" 30 Hari");
break;
case 2:
if (tahun%400==0 || (tahun%100!=0 && tahun%4==0)) {
System.out.println("Jumlah hari pada bulan "+bulan+ " di tahun "+tahun+" 29 Hari");
} else {
System.out.println("Jumlah hari pada bulan "+bulan+ " di tahun "+tahun+" 28 Hari");
}
}
}
}

Thanks
Nizomi