njajal_admob_di_blog

Pages

Friday, January 28, 2022

Turbin Induksi

patent dianggap ditarik kembali


Pendahuluan

Sebuah ide  fuel-less engine disini berusaha membuat mesin resiprokal menggunakan induksi magnet sebagai pengganti pembakaran. Ide yang cukup berani walau rasanya cukup berat merealisasikannya, mengingat mesin resiprokal sangat time-critical pada pengapiannya (pembakaran) sementara pemanas induksi tidak dapat bekerja secara instant.

Turbin adalah suatu alat yang memanfaatkan gas sebagai fluida untuk memutar turbin dengan pembakaran internal. Di dalam turbin gas energi kinetik diubah menjadi energi mekanik melalui udara bertekanan yang memutar roda turbin sehingga menghasilkan daya. Sistem turbin gas yang paling sederhana terdiri dari tiga komponen yaitu kompresor, ruang bakar dan turbin gas.

A. Prinsip Kerja Sistem Turbin Gas (Gas-Turbine Engine)

Udara masuk kedalam kompresor melalui saluran masuk udara (inlet). Kompresor berfungsi untuk menghisap dan menaikkan tekanan udara tersebut, sehingga temperatur udara juga meningkat. Kemudian udara bertekanan ini masuk kedalam ruang bakar. Di dalam ruang bakar dilakukan proses pembakaran dengan cara mencampurkan udara bertekanan dan bahan bakar. Proses pembakaran tersebut berlangsung dalam keadaan tekanan konstan sehingga dapat dikatakan ruang bakar hanya untuk menaikkan temperatur. Gas hasil pembakaran tersebut dialirkan ke turbin gas melalui suatu nozel yang berfungsi untuk mengarahkan aliran tersebut ke sudu-sudu turbin. Daya yang dihasilkan oleh turbin gas tersebut digunakan untuk memutar kompresornya sendiri dan memutar beban lainnya seperti generator listrik, dll. Setelah melewati turbin ini gas tersebut akan dibuang keluar melalui saluran buang (exhaust).

Secara umum proses yang terjadi pada suatu sistem turbin gas adalah sebagai berikut:
  • Pemampatan (compression) udara di hisap dan dimampatkan
  • Pembakaran (combustion) bahan bakar dicampurkan ke dalam ruang bakar dengan udara kemudian di bakar.
  • Pemuaian (expansion) gas hasil pembakaran memuai dan mengalir ke luar melalui nozel.
  • Pembuangan (exhaust) gas hasil pembakaran dikeluarkan lewat saluran pembuangan.


B. Prinsip Kerja Sistem Turbin Gas Induksi (Induction Gas-Turbine Engine)

  • Pemampatan (compression) udara di hisap dan dimampatkan
  • Pemanasan (heating) udara dari kompresor dilewatkan pipa pemanas induksi.
  • Pemuaian (expansion) gas hasil pemanasan memuai dan mengalir ke luar melalui nozel.
  • Pembuangan (exhaust) gas hasil pemanasan dikeluarkan lewat saluran pembuangan.

Perbedaan kedua turbin diatas hanya pada pemanasan udara dari kompresor.

Turbin yang dipakai pada industri[1], udara yang masuk ke kompresor dianggap bersuhu kamar, 24°C dengan tekanan 1 bar. Kompresor akan memampatkan udara hingga 200°C, 6 bar. Pemanas akan memanaskan udara ini menjadi 750°C (6 bar) dan di ekspansikan di turbin[2].

Untuk memanaskan udara dari kompresor ke turbin (pada turbin induksi ini) digunakan pipa pemanas induksi

C. Perpindahan Kalor Konveksi Paksa pada Pipa

Untuk aliran dalam pipa, besarnya perpindahan kalor dapat dinyatakan dengan beda suhu limbak (bulk temperature)


Dari hukum pertama termodinamika, dapat diturunkan persamaan berikut untuk menghitung kesetaraan energi
q = m.Cp(Tb2 - Tb1)
q   = pertukaran energi panas secara konveksi dari dinding ke udara
m  = laju aliran fluida (kg/s)
Cp = Panas jenis (kj/kg.°C)
Tb = Suhu dikedua ujung pipa (°C)

Nilai m (laju aliran fluida) adalah
m = ρ.υm.A

ρ       = Kerapatan (kg/m3)
υm    = Kec. Rata-rata (m/s)
A      = luas permukaan pipa (m²)

Rumusan konveksi paksa erat hubungannya dengan bilangan Reynolds (Re), Prandtl (Pr), dan Nusselt (Nu). Bilangan Reynolds dapat menggambarkan apakah aliran tersebut laminar atau turbulen, sedangkan bilangan Prandtl menunjukkan karakteristik termal fluida, dan bilangan Nusselt menggambarkan karakteristik proses perpindahan panas. Ketiga bilangan ini membentuk persamaan Nud = C.Redm.Prn, dimana C, m, dan n adalah konstanta yang harus ditentukan dari percobaan.

Bilangan Reynold
Untuk mengetahui apakah alirannya laminar atau turbulen maka dibutuhkan bilangan Reynold:

μ = Kekentalan (kg/m.s)
Re ≤ 2300 -> Aliran laminar
Re ≥ 2300 -> Aliran turbulen

Bilangan Prandtl
Bilangan Prandtl digunakan sebagai perbandingan viskositas kinematik fluida terhadap difusivitas termal fluida. Viskositas kinematik memberikan informasi tentang laju difusi momentum dalam fluida dan difusitas termal memberikan informasi tentang difusi kalor dalam fluida.
v = viskositas kinematis
μ= viskositas dinamis
Cp = kalor jenis pada tekanan kostan
k = koefisien konduktivitas termal

Bilangan Nusselt
Merupakan bilangan yang digunakan untuk menentukan distribusi suhu permukaan atau plat.


Bilangan Nusselt untuk aliran Laminar berkembang penuh
jika


Bilangan Nusselt untuk Aliran Turbulen berkembang penuh menurut Sieder-Tate
μ = suhu fluida
μw = suhu dinding

Untuk kondisi dimana 0,6 < Pr < 100; Re≥10.000; dan L/D≥10, digunakan persamaan Dittus-Boelter berikut ini
Nu = 0,023.Re0,8Prnn = 0,4 untuk pemanas
n = 0,3 untuk pendingin

Persamaan Dittus-Boelter digunakan pada perbedaan suhu yang moderat, dan semua di hitung pada Tm.

Untuk mendapatkan bilangan Nusselt yang lebih presisi untuk aliran turbulen yang sudah jadi atau berkembang penuh (fully developed turbulent flow) dalam tabung licin, digunakan persamaan Gnielinski berikut :
n = 0,11 jika Tw >Tb
n = 0,25 jikaTw < Tb

Persamaan Gnielinski ini valid untuk 0,5<Pr<2.000; dan 3.000<Re<5x106.

Koefisien Perpindahan Kalor
Pemanas / HeaterQheater = h.2π.r.L(Tw - Tb) Watt
Suhu Limbak / Suhu Film
Dengan menggunakan rumus-rumus konveksi paksa pada pipa, untuk memanaskan udara sebanyak 1000Kg/detik dari 20°C hingga 900°C diperlukan pipa (besi) diameter 1 cm bersuhu 1200°C sepanjang:

q = m.Cp(Tb2 - Tb1) = h.A(Tw - Tb)
                    = ρ.Um.A.Cp(900 - 20)
                    = ρ.Um.πr².Cp(900 - 20)

Nilai ρ dan Cp didapat dari tabel sifat udara
            ρ       = 0.481540 Kg/m³
            Cp      = 1,082944 j/KgK

Dan temperatur limbak : Tb = (900 + 20)/2 = 4600C
Maka        q       = 0.481540 π (0,005)2 x 1.082944 (900 - 20)
            q       = 380790,962074 W

Untuk permukaan tabung dengan kekasaran relatif, temperatur rata-ratanya:
            Tf      = (1200+460)/2 = 830°C

Pada temperatur rata-rata ini, nilai-nilai
            ρ       = 0.320024 kg/m3
            k       = 7,22224Ex10-4 w/m°C
            Pr      = 0.706822
            υ       = 4,40299Ex10-4 m2/s
            μ = ρ.υ = 5,20899x10-4 kg/m.s
            Re      = 76791054,734092 -=> Turbulen

Faktor gesek = [0.790 ln(Re)-1.64]2;
             = 0.028934

maka rumus yang digunakan :
            n      = 0,11 karna Tw > Tb
            μb     = 3,43170E-004 kg/m.s
            μw     = 5,20899E-004 kg/m.s

Maka perhitungan panjang pipa digunakan rumus Nusselt Sieder & Tate, dimana 0,7<Pr<16700; dan Re>>10000; L/D>10, yakni:

Nusselt                46132,610269
Koef.pindah kalor [h]  3331,807479 W/m²K
Panjang Pipa           4,134035 m


Adapun perhitungan panjang pipa dari angka Nusselt yang lain adalah

Mills, 0.5<Pr<2000; 3000<Re<5x10^6
Nusselt               41990,072815
Koef.pindah kalor [h]  3032,623514 W/m²K
Panjang Pipa              4,541879 m

Gnielinski, 0,5<Pr<2000; 3000<Re<10^6
Nusselt               39243,053934
Koef.pindah kalor [h]  2834,227239 W/m²K
Panjang Pipa               4,859811 m

Dittus Boelter, 0.6<Pr<160; 10.000<Re<160.000; L/D>10 {50?}
Nusselt               40709,927308
Koef.pindah kalor [h]  2940,168343 W/m²K
Panjang Pipa               4,684701 m

Whitaker, 0,67<Pr<380; 3.5<Re<7.6e4
Nusselt               11249,075955
Koef.pindah kalor [h]   812,435177 W/m²K
Panjang Pipa             16,953734 m

Churchill-Ozoe, Re.Pr>0.2, 7e4<Re<4e5
Nusselt               1260946,881481
Koef.pindah kalor [h] 91068,600419 W/m²K
Panjang Pipa              0,151247 m


Jadi, secara teoritis, untuk mendapatkan suhu udara 750°C dengan tekanan 6 bar menuju turbin, diperlukan pipa besi pemanas berdiameter 1 cm, suhu 900°C sepanjang 4,2 m (Sieder & Tate) hingga 16 m (Whitaker). Nilai panjang pipa sesungguhnya dapat diperoleh melalui percobaan. Dalam proyek ini, pipa besi akan dipanaskan menggunakan pemanas induksi, setelah melihat beberapa video di Youtube bahwa pemanas induksi 1000 Watt mampu memanaskan besi hingga pijar dan diharapkan dapat digunakan sebagai boiler induksi untuk PLTU. Untuk memanaskan pipa sepanjang 4,2 meter, digunakan beberapa pemanas induksi yang dipasang secara seri (berdampingan) sepanjang pipa

Saya membuat tool berikut ini untuk menghitung panjang pipa untuk pemanas induksi konveksi paksa pada pipa (aliran udara, turbulensi)

D. Pemanas induksi

Pemanas Induksi (Induction Heating) adalah sistem pemanas dengan menggunakan induksi medan magnet yang dihasilkan dari frekuensi tinggi. Panas muncul karena pada objek timbul arus Eddy atau arus pusat yang arahnya melingkar melingkupi medan magnet yang menembus objek[3].

Gambar 1. Ilustrasi Jalur Medan magnet

Cara Kerja Pemanas Induksi
Tegangan bolak-balik dengan frekuensi tinggi dibangkitkan oleh modul daya, dikirimkan ke kumparan untuk menimbulkan fluks. Besar kecilnya fluks yang di bangkitkan bergantung pada luas bidang kumparan induksi yang digunakan. Hal ini dikarenakan pemanas induksi memanfaatkan rugi-rugi yang terjadi pada kumparan penginduksi. Panas yang dihasilkan pada material sangat bergantung kepada besarnya arus eddy yang diinduksikan oleh lilitan induktor.
Menurut Lozinski[4], hal yang dapat menetukan banyaknya arus Eddy pada logam adalah :
  1. Besar medan magnet yang menginduksi Logam
  2. Bahan logam yang digunakan untuk menghasilkan panas. Semakin kecil hambatan jenis logam, semakin baik untuk dijadikan obyek panas logam
  3. Luas permukaan logam, makin luas permukaan logam maka makin banyak arus Eddy pada permukaan logam tersebut
  4. Frekuensi, semakin tinggi frekuensi maka semakin banyak medan magnet yang dihasilkan

Karakteristik pemanas induksi
  1. Mampu memanaskjan obyek dalam waktu yang relatif singkat. Hal ini dikarenakan kerapatan energinya tinggi
  2. Dapat menghasilkan suhu yang sangat tinggi
  3. Pemanasan dapat dilakukan pada lokasi tertentu
  4. Sistem dapat dibuat bekerja secara otomatis
  5. Secara umum, memiliki efisiensi energi yang tinggi, akan tetapi hal ini bergantung pada karakteristik material yang dipanaskan
  6. Rugi-rugi pemanasan dapat ditekan seminimal mungkin

Keuntungan pemakaian pemanas induksi
  1. Panas dihasilkan secara langsung didalam dinding barrel
  2. Panas dapat diterapkan seragam di seluruh barrel
  3. Operasi elemen dingin, sehingga tidak memiliki batas waktu
  4. Waktu start up cepat
  5. Hemat energi
Rangkaian inverter (oscilator) berikut ini[5] akan menghasilkan frekwensi ± 100 kHz dengan daya maksimum yang dibutuhkan 1000 watt. Panas induksi yang dihasilkan dapat membuat besi menjadi pijar. Untuk mengatur suhu yang dihasilkan, tegangan input dapat diatur dari 10 volt hingga 48 volt (DC 20 Ampere)

1D1, D2Diode MUR420
2DZ1, DZ2Zener Diode 12V - 1W
3C1-C6Capacitors MKP polypropylene 0,33 mF 630 V
4L1, L26 coils of 0.8 mm thick copper, diameter 6 mm (1,26 mH)
5M1, M2MOSFETs IRFP260N (Infineon)
6R14,7 kΩ
7R2, R5470 Ω
8R3, R410 kΩ


E. Tata laksana percobaan

  1. Membuat pemanas induksi untuk memanaskan pipa sepanjang 2,5 meter
  2. Gunakan kompresor dengan tekanan 6 bar (=87 psi) untuk simulasi pemanas induksi, inputkan ke pipa pemanas induksi
  3. Ukur suhu udara keluar di ujung keluaran pipa pemanas induksi
    • Jika diperoleh suhu 750°C maka percobaan selanjutnya dapat dilakukan pada turbin
    • Jika diperoleh suhu kurang dari 750°C maka ulangi percobaan dengan pipa yag lebih panjang hingga didapat suhu keluaran 750°C dan lanjutkan pada turbin
  4. Pasang pipa pemanas induksi pada turbin menggantikan burner. Sesuaikan manifold jika perlu
  5. Sesuaikan sensor putaran dengan inverter / oscilator pemanas induksi
  6. Lakukan pengujian pada turbin pemanas induksi

Tabel property udara
Temp.Densitas ρSpec Heat CVKondktvts Thermal KViskositas Kinetik VPrandtl
°C(kg/m³)j/KgKx10-5 W/m°Cx10-5 m²/s
-982,0170,71521,5930,5860,744
-731,7650,71541,8090,7530,736
-481,5690,71562,020,9350,728
-231,4120,7162,2271,1320,72
21,2840,71672,4281,3430,713
271,1770,71782,6241,5680,707
521,0860,71922,8161,8070,701
771,0090,72113,0032,0560,697
1020,94130,72353,1862,3170,692
1270,88240,72643,3652,5910,688
1770,78440,73353,713,1680,684
2270,7060,74244,0413,7820,68
2770,64180,75274,3574,4390,68
3270,58830,7644,6615,1280,68
3770,5430,77584,9545,8530,682
4270,50430,78795,2366,6070,684
4770,47060,79995,5097,3990,687
5270,44120,81165,7748,2140,69
5770,41530,8236,039,0610,693
6270,39220,83386,2769,9360,696
6770,37160,84426,5210,830,699
7270,3530,8546,75411,760,702
7770,33620,86316,98512,720,704
8270,32090,87187,20913,70,707
8770,30690,87997,42714,70,709
9270,29410,88757,6415,730,711
9770,28240,89467,84916,770,713
10270,27150,90138,05417,850,715
10770,26150,90758,25318,940,717
11270,25210,91348,4520,060,719
12270,23530,92418,83122,360,722
13270,22060,93369,19924,740,724
14270,20760,94229,55427,20,726
15270,19610,94999,89929,720,728
16270,18580,956910,23332,340,73



[1] Drs Sunyoto, Teknik Mesin Industri Jilid 3, Kelas 12, Direktorat Pembinaan Sekolah Menengah Kejuruan, Departemen Pendidikan Nasional, 2008
[2] http://abangirfan62.blogspot.co.id
[3] http://blog4alio.blogspot.com/
[4] Mikhael Grigor’evich Lozinsk’i, Industrial Application of Induction Heater, Oxford, New York, Pergamon Press, 1969
[5] https://www.open-electronics.org/

Wednesday, November 4, 2020

Sending array with HttpUrlConnection (android)

Langsung saja, saya harap kalian semua sudah paham “array”. Kali ini, mengetahui “json” akan lebih baik. Juga beda HttpClient dengan HttpUrlConnection. HttpClint sudah ditinggalkan oleh google dan diganti dengan HttpUrlConnection yang lebih aman. Masalahnya pada HttpUrlConnection ini, data di konversi dulu ke format json sebelum dikirmkan ke server, tentunya termasuk data array.  Mencari di StackOverflow-pun blom menemukan solusinya, akhirnya mencoba sendiri dan... berhasil...

 

Di kode android (java) lakukan hal baku untuk mengirim data, hanya di server saja php-nya di ulik sedikit. Here is piece of code of AsyncTask: doInBackground for feed data and array to JSONObject postDataParams (with POST method)


Variabel id diisi dengan integer 9

Variabel nm diisi dengan String ”sembilan”

Variabel az diisi dengan array


Next, php receiver those data is as bellow (named arai.php)


That’s simple... and now you can precess the array as you want. The complete code of java is as below

activity_main.xml



MainActivity.java



Don’t forget to add internet permision in manifest



4shared link for Source Code (php not included)

Friday, January 31, 2020

Tampilan Tema Bootstrap 3 di OJS 3.X

OK, bagi penggiat jurnal, pengelola jurnal, dan sebagainya.... sepertinya sudah gak asing dengan theme Bootstrap untuk OJS. Walau masangnya agak susah (harus punya akses c-panel untuk masuk ke file manager dan meng-copy file-file bootstrap ke folder insalasi OJS) namun hasilnya lumayan. Bagi yang sudah dan akan memasang Tema Bootstrap 3 ini, gambar-gambar berikut ini mungkin bisa untuk referensi kalo mau ganti2 tema (biarsedikit lebih mudah, gak harus coba-coba). Saya ambil dari jurnal yg saat ini saya kelola http://jurnalhamfara.ac.id...

Oh ya... kalo ada yang punya CSS yang ciamik, bisa share di kolom komenter, jangan lupa url contoh jurnal yang make CSS tersebut.... Makasih...

Langsung aja (klik aja di gambar buat nge-zoom)

1. Tema Cerulean
  

2. Tema Clean Blog

3. Tema Cosmo

4. Tema Cyborg

5. Tema Darkly

6. Tema Default

7. Tema Flatly

8. Tema Journal

9. Tema Lumen

10. Tema Paper

11. Tema Readable

12. Tema SandStone

13. Tema Slate

14. Tema Simplex

15. Tema SpaceLab

16. Tema SuperHero

17. Tema United

18. Tema Yeti

Monday, September 2, 2019

Kalkulator Material (.apk)

Kali ini, iseng buat kalkulator untuk menghitung kebutuhan material bahan bangunan untuk Android.... cuma 3 item mendasar aja : menghitung untuk aplikasi pondasi, dinding, dan plester. dibuat menurut Standar Nasional Indonesia (thn 2008).... Masih basic banget, kalian musti hitung sendiri volume atau luas bidang pekerjaan... ga papa ya....
Seperti biasa, masih harus download di 4shared... akun godev saya di recoki orang Klaten.. tapi bodoh amat, sy tetep ga ikhlas, biar di akhirat aja itung2annya ya....
ini link di 4shared, seperti biasa, ada iklannya...jangan lupa klik iklannya ya....




Monday, August 26, 2019

Program Kasir (under delphi, MySQL / MariaDB)

Kali ini, permintaan program kasir dari adik yg buka swalayan... Di program ini:
  1. SC pake Delphi7, QReport bawaan (standar, 3.x)
  2. Database MySQL (atau MariaDB, sama aja)


Kita mulai dari DataBase nya dulu ya... Buat DataBase, saya pakai nama dbkasir (atau terserah nama  apa). Di database itu buat 3 tabel (kalo ini namanya saya tentukan, kalo kalian mau rubah2 ya sesuaikan SC-nya)

  1. tabel item_barang
  2. tabel pembelian
  3. tabel penjualan

item_barang
pembelian
penjualan

Selanjutnya, tentu source code, saya sertakan kalo kalian mau ngoprek sendiri entah buat belajar ato modifikasi... disini saya buat 9 form, jadi kalo mau ketik 1 per 1 disini entah kapan kelarnya, jadi donlot aja dari 4shared disini ya... Kalo kalian donlot yg dari 4shared, itu dah ada rutin buat bikin database+tabel nya... Jadi asal kompi kalian dah keinstall MySQL / MariaDB (via XAMPP jg boleh), harusnya program dah bisa jalan.... jadi, coba  aja ya... moga berhasil....
Ada komponen RKEdit (Rata Kanan TEdit), saya sertakan di SC, install di Delphi biar mudah ya...kalo kesulitan, ini dia SC RKEdit.pas

RKEdit.pas

Ini bagian pembelian.pas dan penjualan.pas

pembelian.pas

penjualan.pas


Sebagai tambahan, ini beberapa SS tampilan program

Menu utama

Menu item_barang

Menu pembelian

Menu penjualan & SS struk


Menu setup (muncul dengan dobel klik di bagian kosong form utama)

Saturday, September 22, 2018

Register & Login Android .apk dengan MySQL

Kali ini mau bikin aplikasi buat login dan register Android. Data pake MySQL yg kesimpen di server. koneksinya masih pake cara lama, HttpConnection. Cuma pake 2 activity (1) activity untuk proses Login dan post Login, dan (2) activity untuk Register user. Activity pertama menggunakan RelativeLayout yang di mainin Visible-nya. OK langsung ajahh...

Pertama, diasumsikan kalian dah punya paket AMP (Apache Mysql PHP), entah itu XAMPP atau lainnya, nanti akan difungsikan sebagai WebService. Trus buat MySQL tabelnya.

        CREATE TABLE `users` (  
               `idx` int(11) NOT NULL AUTO_INCREMENT,  
               `user` varchar(30) NOT NULL,  
               `pass` varchar(40) NOT NULL,  
               `email` varchar(60) NOT NULL,  
               `created_at` datetime DEFAULT NULL,  
               `updated_at` datetime DEFAULT NULL,  
               PRIMARY KEY (`idx`),  
               UNIQUE KEY `user` (`user`),  
               UNIQUE KEY `email` (`email`)  
        )   



Lanjut, file index.php untuk API (Aplication Program Interface), yang akan menjadikan AMP kita jadi WebService. Untuk keperluan ini, letakkan file index.php ini di folder \xampp\httdocs\android\api\


 <?php  
        // =============  
        // param2 ini biasa disimpan dalam file .php tersendiri         
        // =============  
        $DB_HOST = "localhost";  
        $DB_USER = "root";  
        $DB_PASS = "";  
        $DB_NAME = "silsilah";  
        $tb_user = "users";  
        // =============  
        // mulai routine  
        // =============  
        $conn = mysqli_connect($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME) or die("Koneksi gagal");  
        $json = array();  
        $u = "";  
        $p = "";  
        $e = "";  
        $s1 = 0;  
        if(isset($_POST['u'])){  
               $username = $_POST['u'];  
        } else $s1++;  
        if(isset($_POST['p'])){  
               $password = $_POST['p'];  
        } else $s1++;  
        if(isset($_POST['e'])){  
               $email = $_POST['e'];  
        } else $s1++;  
        if ($s1 > 1) {  
               $json['status'] = 0;                
               $json['pesan'] = "Error 404";  
               echo json_encode($json);  
               return;  
        }  
        // =============  
        // ada email: Registration of new user  
        // =============  
        if(!empty($username) && !empty($password) && !empty($email)){  
               $hashed_password = md5($password);  
               if (filter_var($email, FILTER_VALIDATE_EMAIL)) {  
                      $query = "select * from ".$tb_user." where user= '$username' OR email = '$email'";  
                      $result = mysqli_query($conn, $query);  
                      if (mysqli_num_rows($result) > 0){  
                             $json['status'] = 0;  
                             $json['pesan'] = "Gagal: username/email sudah digunakan";  
                      } else {  
                             $query = "insert into ".$tb_user." (user, pass, email, created_at, updated_at) values ('$username', '$hashed_password', '$email', NOW(), NOW())";  
                             $inserted = mysqli_query($conn, $query);  
                             if ($inserted == 1){  
                                    $json['status'] = 1;  
                                    $json['pesan'] = "Registrasi sukses";  
                             } else {  
                                    $json['status'] = 0;  
                                    $json['pesan'] = "Gagal: tidak bisa membuat username ".$username;  
                             }  
                      }  
               } else {  
                      $json['status'] = 0;  
                      $json['pesan'] = "Gagal: email nggak valid";  
               }         
        }  
        // =============  
        // tanpa email: User Login  
        // =============  
        if(!empty($username) && !empty($password) && empty($email)){  
               $hashed_password = md5($password);  
               $query = "select * from ".$tb_user." where user = '$username' AND pass = '$hashed_password' Limit 1";  
               $result = mysqli_query($conn, $query);  
               if (mysqli_num_rows($result) > 0){  
                      $json['status'] = 1;  
                      $json['pesan'] = "Login sukses";  
               } else {  
                      $json['status'] = 0;  
                      $json['pesan'] = "Login gagal";  
               }  
        }  
        echo json_encode($json);  
        mysqli_close($conn);  
 ?>  



Lanjutkan dengan file untuk buat aplikasi Android, disini saya pake Eclipse (saya anggap kalian dah biasa bikin apk, jadi langsung file-nya saja)

Pertama, file activity_main.xml

 <?xml version="1.0" encoding="utf-8"?>  
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
   xmlns:tools="http://schemas.android.com/tools"  
   android:layout_width="match_parent"  
   android:layout_height="match_parent"  
   android:background="#eeffee"  
   tools:context=".MainActivity" >  
   <RelativeLayout  
     android:id="@+id/lay_logged"  
     android:layout_width="match_parent"  
     android:layout_height="match_parent"  
     android:layout_alignParentTop="true"  
     android:layout_marginLeft="@dimen/activity_margin_16"  
     android:layout_marginRight="@dimen/activity_margin_16"  
     android:visibility="invisible" >  
          <TextView  
                  android:id="@+id/tv_welcome"  
          android:layout_width="wrap_content"  
          android:layout_height="wrap_content"  
          android:layout_alignParentRight="true"  
          android:text="@string/app_name"  
          android:textAppearance="?android:attr/textAppearanceMedium" />  
     <View  
       android:id="@+id/v1"  
       android:layout_width="wrap_content"  
       android:layout_height="2dp"  
       android:layout_below="@+id/tv_welcome"  
       android:background="#88aa88" >  
     </View>  
        <LinearLayout  
          android:id="@+id/linBlank"  
          android:layout_width="match_parent"  
          android:layout_height="match_parent"  
          android:layout_below="@+id/v1"  
          android:orientation="vertical"  
          android:padding="@dimen/activity_margin_8" >  
       <TextView  
         android:layout_width="match_parent"  
         android:layout_height="wrap_content"  
         android:layout_gravity="center"  
         android:textAppearance="?android:attr/textAppearanceMedium"  
         android:text="@string/login_sukses" />  
                <Button  
                 android:id="@+id/btn_logout"        
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content"  
            android:text="@string/logout" />  
     </LinearLayout>  
      </RelativeLayout>  
   <TableLayout  
     android:id="@+id/tbl_login"  
     android:layout_width="match_parent"  
     android:layout_height="wrap_content"  
     android:layout_centerInParent="true"  
     android:layout_margin="@dimen/activity_margin_16"  
     android:background="#ddeedd"  
     android:padding="@dimen/activity_margin_16" >  
     <TableRow  
       android:layout_width="match_parent"  
       android:layout_height="wrap_content" >  
       <TextView  
         android:layout_width="wrap_content"  
         android:layout_height="wrap_content"  
         android:layout_marginRight="@dimen/activity_margin_8"  
         android:text="@string/username"  
         android:textAppearance="?android:attr/textAppearanceMedium"  
         tools:ignore="RtlHardcoded" />  
       <EditText  
         android:id="@+id/username_field"  
         android:layout_width="match_parent"  
         android:layout_height="wrap_content"  
         android:layout_weight="1"  
         android:inputType="text" />  
     </TableRow>  
     <TableRow  
       android:layout_width="match_parent"  
       android:layout_height="wrap_content"  
       android:layout_marginTop="@dimen/activity_margin_8" >  
       <TextView  
         android:layout_width="wrap_content"  
         android:layout_height="wrap_content"  
         android:text="@string/password"  
         android:textAppearance="?android:attr/textAppearanceMedium" />  
       <EditText  
         android:id="@+id/password_field"  
         android:layout_width="match_parent"  
         android:layout_height="wrap_content"  
         android:layout_weight="1"  
         android:inputType="textPassword" />  
     </TableRow>  
     <Button  
       android:id="@+id/btn_login"  
       android:layout_width="match_parent"  
       android:layout_height="wrap_content"  
       android:text="@string/login" />  
     <TextView  
       android:id="@+id/tv_pesan_ndaftar"  
       android:layout_width="wrap_content"  
       android:layout_height="wrap_content"  
       android:layout_marginTop="@dimen/activity_margin_32"  
       android:text="@string/registration_instruction"  
       android:textAppearance="?android:attr/textAppearanceMedium" />  
     <Button  
       android:id="@+id/btn_register"  
       android:layout_width="match_parent"  
       android:layout_height="wrap_content"  
       android:layout_marginTop="@dimen/activity_margin_8"  
       android:text="@string/register_button" />  
   </TableLayout>  
 </RelativeLayout>  




Kedua file activity_regs.xml

 <?xml version="1.0" encoding="utf-8"?>  
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
   xmlns:tools="http://schemas.android.com/tools"  
   android:layout_width="match_parent"  
   android:layout_height="match_parent"  
   android:background="#eeffee"  
   tools:context="com.munengan7camp.gotrah.RegsActivity" >  
      <LinearLayout  
        android:id="@+id/lin_register"  
        android:layout_width="match_parent"  
        android:layout_height="wrap_content"  
        android:layout_centerInParent="true"  
        android:layout_margin="@dimen/activity_margin_16"  
        android:background="#00008800"  
        android:orientation="vertical" >  
     <EditText  
       android:id="@+id/et_username"  
       android:layout_width="match_parent"  
       android:layout_height="wrap_content"  
             android:layout_margin="@dimen/activity_margin_8"  
       android:hint="@string/username"  
       android:inputType="text"  
       android:textColor="#444444" />  
     <EditText  
       android:id="@+id/et_pass"  
       android:layout_width="match_parent"  
       android:layout_height="wrap_content"  
             android:layout_margin="@dimen/activity_margin_8"  
       android:hint="@string/password"  
       android:inputType="textPassword"  
       android:textColor="#444444" />  
     <EditText  
       android:id="@+id/et_retype_pass"  
       android:layout_width="match_parent"  
       android:layout_height="wrap_content"  
             android:layout_margin="@dimen/activity_margin_8"  
       android:hint="@string/re_type_pwd"  
       android:inputType="textPassword"  
       android:textColor="#444444" />  
     <EditText  
       android:id="@+id/et_email"  
       android:layout_width="match_parent"  
       android:layout_height="wrap_content"  
             android:layout_margin="@dimen/activity_margin_8"  
       android:hint="@string/email"  
       android:inputType="textEmailAddress"  
       android:textColor="#444444" />  
     <Button  
       android:id="@+id/btn_ok_register"  
       android:layout_width="match_parent"  
       android:layout_height="wrap_content"  
             android:layout_margin="@dimen/activity_margin_16"  
       android:text="@string/register_button" />  
      </LinearLayout>  
 </RelativeLayout>  



Lanjut file pendukung, string.xml


 <?xml version="1.0" encoding="utf-8"?>  
 <resources>  
   <string name="app_name">Registrasi Login</string>  
   <string name="username">Username</string>  
   <string name="password">Password</string>  
   <string name="re_type_pwd">re-type pwd</string>  
   <string name="email">Email</string>  
   <string name="login">Login</string>  
   <string name="logout">Logout</string>  
   <string name="registration_instruction">Not registered\nKlik buton to register</string>  
   <string name="register_button">Register now</string>  
   <string name="login_sukses">Login sukses</string>  
   <string name="gagal_konek">unable to connect to server, check internet connection</string>  
 </resources>  

   


Dan ini file dimens.xml untuk spasi layout


 <?xml version="1.0" encoding="utf-8"?>  
 <resources>  
   <!-- Default screen margins, per the Android Design guidelines. -->  
   <dimen name="activity_margin_4">4dp</dimen>  
   <dimen name="activity_margin_8">8dp</dimen>  
   <dimen name="activity_margin_16">16dp</dimen>  
   <dimen name="activity_margin_32">32dp</dimen>  
 </resources>  




Sekarang file java-nya

Pertama file MainActivity.java


 package com.munengan7camp.registrasilogin;  
 import android.app.Activity;  
 import android.app.AlertDialog;  
 import android.app.ProgressDialog;  
 import android.content.DialogInterface;  
 import android.content.Intent;  
 import android.content.SharedPreferences;  
 import android.os.AsyncTask;  
 import android.os.Bundle;  
 import android.preference.PreferenceManager;  
 import android.view.View;  
 import android.widget.Button;  
 import android.widget.EditText;  
 import android.widget.LinearLayout;  
 import android.widget.RelativeLayout;  
 import android.widget.TableLayout;  
 import android.widget.TextView;  
 import android.widget.Toast;  
 import org.apache.http.NameValuePair;  
 import org.apache.http.message.BasicNameValuePair;  
 import java.util.ArrayList;  
 import java.util.List;  
 public class MainActivity extends Activity {  
        protected String enteredUsername;  
        String last_user = "";  
        TableLayout tbl_log_in;  
        LinearLayout linBlank;  
        RelativeLayout lay_logged;  
        @Override  
        protected void onCreate(Bundle savedInstanceState) {  
               super.onCreate(savedInstanceState);  
               setContentView(R.layout.activity_main);  
               last_user = getItemShared(UtilitiLogin.shared_user_info);  
               tbl_log_in = (TableLayout) findViewById(R.id.tbl_login);  
               lay_logged = (RelativeLayout) findViewById(R.id.lay_logged);  
               linBlank  = (LinearLayout) findViewById(R.id.linBlank);  
               final EditText et_username = (EditText) findViewById(R.id.username_field);  
               final EditText et_password = (EditText) findViewById(R.id.password_field);  
               Button loginButton = (Button) findViewById(R.id.btn_login);  
               loginButton.setOnClickListener(new View.OnClickListener() {  
                      @Override  
                      public void onClick(View v) {  
                             enteredUsername = et_username.getText().toString();  
                             String enteredPassword = et_password.getText().toString();  
                             if (enteredUsername.equals("") || enteredPassword.equals("")) {  
                                    Toast.makeText(MainActivity.this,  
                                                  "Username / password can not zonk",  
                                                  Toast.LENGTH_SHORT).show();  
                                    return;  
                             }  
                             POST_LoginClass asyncRequestObject = new POST_LoginClass();  
                             asyncRequestObject.execute(UtilitiLogin.urlIndex,  
                                           enteredUsername, enteredPassword);  
                      }  
               });  
               Button registerButton = (Button) findViewById(R.id.btn_register);  
               registerButton.setOnClickListener(new View.OnClickListener() {  
                      @Override  
                      public void onClick(View v) {  
                             Intent intent_register = new Intent(MainActivity.this,RegsActivity.class);  
                             startActivity(intent_register);  
                      }  
               });  
               Button btLogout = (Button) findViewById(R.id.btn_logout);  
               btLogout.setOnClickListener(new View.OnClickListener() {  
                      @Override  
                      public void onClick(View v) {  
                             AlertDialog.Builder log_out = new AlertDialog.Builder(MainActivity.this);  
                             log_out.setTitle("Log-out ?");  
                             // OK  
                             log_out.setPositiveButton("Yes",  
                                           new DialogInterface.OnClickListener() {  
                                                  public void onClick(DialogInterface dialog, int whichButton) {  
                                                         // hapus data login  
                                                         SharedPreferences preferences = PreferenceManager  
                                                                       .getDefaultSharedPreferences(getApplicationContext());  
                                                         SharedPreferences.Editor editor = preferences.edit();  
                                                         editor.clear();  
                                                         editor.commit();  
                                                         last_user = "";  
                                                         tbl_log_in.setVisibility(View.VISIBLE);  
                                                         lay_logged.setVisibility(View.GONE);  
                                                  }  
                                           });  
                             // CANCEL  
                             log_out.setNegativeButton("No",  
                                           new DialogInterface.OnClickListener() {  
                                                  public void onClick(DialogInterface dialog, int whichButton) {  
                                                  }  
                                           });  
                             log_out.show();                              
                      }  
               });  
        }  
        protected void onResume() {  
               super.onResume();  
               last_user = getItemShared(UtilitiLogin.shared_user_info);  
               if (last_user == null) {  
                      tbl_log_in.setVisibility(View.VISIBLE);  
                      lay_logged.setVisibility(View.GONE);  
               } else {  
                      logged_in();  
               }  
        }  
        private void saveItemShared(String item, String isi) {  
               SharedPreferences preferences = PreferenceManager  
                             .getDefaultSharedPreferences(getApplicationContext());  
               SharedPreferences.Editor editor = preferences.edit();  
               editor.putString(item, isi);  
               editor.apply();  
        }  
        private String getItemShared(String item) {  
               SharedPreferences preferences = PreferenceManager  
                             .getDefaultSharedPreferences(getApplicationContext());  
               String name = preferences.getString(item, null);  
               return name;  
        }  
        private void logged_in() {  
               TextView tv_log_as = (TextView) findViewById(R.id.tv_welcome);  
               tv_log_as.setText("Login as " + last_user);  
               tbl_log_in.setVisibility(View.GONE);  
               lay_logged.setVisibility(View.VISIBLE);  
        }  
        // ===========  
        // class login  
        // ===========  
        private class POST_LoginClass extends AsyncTask<String, Void, String> {  
               ProgressDialog pdQuery = new ProgressDialog(MainActivity.this);  
               @Override  
               protected void onPreExecute() {  
                      super.onPreExecute();  
                      pdQuery.setTitle("Loging in");  
                      pdQuery.setMessage("Please wait...");  
                      pdQuery.setCancelable(false);  
                      pdQuery.show();  
               }  
               @Override  
               protected String doInBackground(String... params) {  
                      List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);  
                      nameValuePairs.add(new BasicNameValuePair("u", params[1]));  
                      nameValuePairs.add(new BasicNameValuePair("p", params[2]));  
                      String jRes = UtilitiLogin.POST_HTTP_Request(params[0],  
                                    nameValuePairs);  
                      return jRes;  
               }  
               @Override  
               protected void onPostExecute(String result) {  
                      super.onPostExecute(result);  
                      pdQuery.dismiss();  
                      if (result.equals("") || result == null) {  
                             Toast.makeText(MainActivity.this, getString(R.string.gagal_konek),  
                                           Toast.LENGTH_SHORT).show();  
                             return;  
                      }  
                      int status = UtilitiLogin.integerParsedJsonObject(result);  
                      if (status == 0) {  
                             String pesan = UtilitiLogin.stringParsedJsonObject(result);  
                             Toast.makeText(MainActivity.this, pesan, Toast.LENGTH_LONG).show();  
                             return;  
                      }  
                      if (status == 1) {  
                             saveItemShared(UtilitiLogin.shared_user_info, enteredUsername);  
                             last_user = enteredUsername;  
                             logged_in();  
                      }  
               }  
        }  
        // ===============  
        // class list_trah, kalo mo pake GET [bukan POST]  
        // ===============  
        /*  
        private class GET_ListClass extends AsyncTask<String, Void, String> {  
               ProgressDialog pdQuery = new ProgressDialog(MainActivity.this);  
               String url="";  
               @Override  
               protected void onPreExecute() {  
                      super.onPreExecute();  
                      pdQuery.setTitle("retrieving");  
                      pdQuery.setMessage("please_wait");  
                      pdQuery.setIndeterminate(false);  
                      pdQuery.setCancelable(false);  
                      pdQuery.show();  
               }  
               @Override  
               protected String doInBackground(String... params) {  
                      url = params[0];  
                      String jsonResult = UtilitiLogin.GET_HTTP_Request(url);  
                      return jsonResult;  
               }  
               @Override  
               protected void onPostExecute(String result) {  
                      super.onPostExecute(result);  
                      pdQuery.dismiss();  
                      if ( url.startsWith(UtilitiLogin.urlListTrah) ) {  
                             list_trah(result);  
                      } else {  
                             hapus_item(result);  
                      }  
               }  
        }  
        */  
 }  




Lanjut ke file RegsActivity.java


 package com.munengan7camp.registrasilogin;  
 import android.app.Activity;  
 import android.app.ProgressDialog;  
 import android.content.SharedPreferences;  
 import android.os.AsyncTask;  
 import android.os.Bundle;  
 import android.preference.PreferenceManager;  
 import android.view.View;  
 import android.widget.Button;  
 import android.widget.EditText;  
 import android.widget.Toast;  
 import org.apache.http.NameValuePair;  
 import org.apache.http.message.BasicNameValuePair;  
 import java.util.ArrayList;  
 import java.util.List;  
 public class RegsActivity extends Activity {  
        protected String enteredUsername;  
        @Override  
        protected void onCreate(Bundle savedInstanceState) {  
               super.onCreate(savedInstanceState);  
               setContentView(R.layout.activity_regs);  
               final EditText username = (EditText) findViewById(R.id.et_username);  
               final EditText password = (EditText) findViewById(R.id.et_pass);  
               final EditText re_type = (EditText) findViewById(R.id.et_retype_pass);  
               final EditText email = (EditText) findViewById(R.id.et_email);  
               Button signUpButton = (Button) findViewById(R.id.btn_ok_register);  
               signUpButton.setOnClickListener(new View.OnClickListener() {  
                      @Override  
                      public void onClick(View v) {  
                             enteredUsername = username.getText().toString();  
                             String enteredPassword = password.getText().toString();  
                             String retypePassword = re_type.getText().toString();  
                             String enteredEmail = email.getText().toString();  
                             if (enteredUsername.equals("") || enteredPassword.equals("")  
                                           || retypePassword.equals("") || enteredEmail.equals("")) {  
                                    Toast.makeText(RegsActivity.this,  
                                                  "Username / password / email can not empty",  
                                                  Toast.LENGTH_SHORT).show();  
                                    return;  
                             }  
                             if (!enteredPassword.equals(retypePassword)) {  
                                    Toast.makeText(RegsActivity.this,  
                                                  "re-type password not match", Toast.LENGTH_SHORT)  
                                                  .show();  
                                    return;  
                             }  
                             // request authentication with remote server  
                             POST_RegistrasiClass asyncRequestObject = new POST_RegistrasiClass();  
                             asyncRequestObject.execute(UtilitiLogin.urlIndex, enteredUsername,  
                                           enteredPassword, enteredEmail);  
                      }  
               });  
        }  
        // ================  
        // class registrasi  
        // ================  
        private class POST_RegistrasiClass extends AsyncTask<String, Void, String> {  
               ProgressDialog pdQuery= new ProgressDialog(RegsActivity.this);  
               @Override  
               protected void onPreExecute() {  
                      super.onPreExecute();  
                      pdQuery.setTitle("Registering");  
                      pdQuery.setMessage("Wait please ...");  
                      pdQuery.setCancelable(false);  
                      pdQuery.show();  
               }  
               @Override  
               protected String doInBackground(String... params) {  
                      List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);  
                      nameValuePairs.add(new BasicNameValuePair("u", params[1]));  
                      nameValuePairs.add(new BasicNameValuePair("p", params[2]));  
                      nameValuePairs.add(new BasicNameValuePair("e", params[3]));  
                      String jRes = UtilitiLogin.POST_HTTP_Request(params[0], nameValuePairs);         
                      return jRes;  
               }  
               @Override  
               protected void onPostExecute(String result) {  
                      super.onPostExecute(result);  
                      pdQuery.dismiss();  
                      if (result.equals("") || result == null) {  
                             Toast.makeText(RegsActivity.this, getString(R.string.gagal_konek), Toast.LENGTH_SHORT).show();  
                             return;  
                      }  
                      int status = UtilitiLogin.integerParsedJsonObject(result);  
                      String pesan = UtilitiLogin.stringParsedJsonObject(result);  
                      if (status == 0) {  
                             if (pesan == null) pesan="Kesalahan lain-lain";  
                             Toast.makeText(RegsActivity.this, pesan, Toast.LENGTH_SHORT).show();  
                             return;  
                      }  
                      if (status == 1) {  
                             // simpan login info  
                             SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());  
                             SharedPreferences.Editor editor = preferences.edit();  
                             editor.putString(UtilitiLogin.shared_user_info, enteredUsername);  
                             editor.apply();  
                             editor.commit();  
                             onBackPressed();  
                             return;  
                      }  
               }  
        }  
 }  



dan jangan lupa file utilitas pembantu. UtilitiLogin.java


 package com.munengan7camp.registrasilogin;  
 import java.io.BufferedReader;  
 import java.io.IOException;  
 import java.io.InputStream;  
 import java.io.InputStreamReader;  
 import java.util.List;  
 import org.apache.http.HttpResponse;  
 import org.apache.http.NameValuePair;  
 import org.apache.http.client.ClientProtocolException;  
 import org.apache.http.client.HttpClient;  
 import org.apache.http.client.entity.UrlEncodedFormEntity;  
 import org.apache.http.client.methods.HttpPost;  
 import org.apache.http.impl.client.DefaultHttpClient;  
 import org.apache.http.params.BasicHttpParams;  
 import org.apache.http.params.HttpConnectionParams;  
 import org.apache.http.params.HttpParams;  
 import org.json.JSONException;  
 import org.json.JSONObject;  
 public class UtilitiLogin {  
        public static final String shared_user_info = "my_user_name";                     // sesuaikan, jgn ampe bentrok ama apk lain  
        public static final String urlServer  = "http://10.0.2.2/android/api/"; // sesuaikan ama (X)AMP ente  
        public static final String urlIndex  = urlServer + "index.php";  
        public static StringBuilder inputStreamToString(InputStream is) {  
               String rLine = "";  
               StringBuilder answer = new StringBuilder();  
               BufferedReader rd = new BufferedReader(new InputStreamReader(is));  
               try {  
                      while ((rLine = rd.readLine()) != null) {  
                             answer.append(rLine);  
                      }  
               } catch (IOException e) {  
                      e.printStackTrace();  
               }  
               return answer;  
        }  
        public static int integerParsedJsonObject(String result) {  
               JSONObject resultObject = null;  
               int returnedResult = 0;  
               try {  
                      resultObject = new JSONObject(result);  
                      returnedResult = resultObject.getInt("status");  
               } catch (JSONException e) {  
                      e.printStackTrace();  
               }  
               return returnedResult;  
        }  
        public static String stringParsedJsonObject(String result) {  
               JSONObject resultObject = null;  
               String returnedResult = "";  
               try {  
                      resultObject = new JSONObject(result);  
                      returnedResult = resultObject.getString("pesan");  
               } catch (JSONException e) {  
                      e.printStackTrace();  
               }  
               return returnedResult;  
        }  
        public static String POST_HTTP_Request(String url, List<? extends NameValuePair> params) {  
               HttpParams httpParameters = new BasicHttpParams();  
               HttpConnectionParams.setConnectionTimeout(httpParameters, 10000);  
               HttpConnectionParams.setSoTimeout(httpParameters, 10000);                
               HttpClient httpClient = new DefaultHttpClient(httpParameters);  
               HttpPost httpPost = new HttpPost(url);  
               String jsonResult = "";  
               try {  
                      httpPost.setEntity(new UrlEncodedFormEntity(params));  
                      HttpResponse response = httpClient.execute(httpPost);  
                      jsonResult = inputStreamToString(  
                                    response.getEntity().getContent()).toString();  
                      System.out.println("Returned Json object "+ jsonResult.toString());  
               } catch (ClientProtocolException e) {  
                      e.printStackTrace();  
               } catch (IOException e) {  
                      e.printStackTrace();  
               }  
               return jsonResult;  
        }         
        /*  
        public static String GET_HTTP_Request(String params) {  
               HttpClient httpClient = new DefaultHttpClient();  
               HttpGet httpGet = new HttpGet(params);  
               String jsonResult = "";  
               try {  
                      HttpResponse response = httpClient.execute(httpGet);  
                      jsonResult = inputStreamToString(  
                                    response.getEntity().getContent()).toString();  
               } catch (ClientProtocolException e) {  
                      e.printStackTrace();  
               } catch (IOException e) {  
                      e.printStackTrace();  
               }  
               return jsonResult;  
        }  
        */  
 }  



Jangan lupa, tambahkan permission.INTERNET di Manifest, ini  lengkapnya file AndroidManifest.xml

 <?xml version="1.0" encoding="utf-8"?>  
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
   package="com.munengan7camp.registrasilogin"  
   android:versionCode="1"  
   android:versionName="1.0"  
   android:installLocation="auto" >  
   <uses-permission android:name="android.permission.INTERNET"/>  
   <uses-sdk  
     android:minSdkVersion="14"  
     android:targetSdkVersion="14" />  
   <application  
     android:allowBackup="true"  
     android:icon="@drawable/ic_launcher"  
     android:label="@string/app_name"  
     android:theme="@style/AppTheme" >  
     <activity  
       android:name=".MainActivity"  
       android:label="@string/app_name" >  
       <intent-filter>  
         <action android:name="android.intent.action.MAIN" />  
         <category android:name="android.intent.category.LAUNCHER" />  
       </intent-filter>  
     </activity>  
     <activity  
       android:name=".RegsActivity" >  
     </activity>  
   </application>  
 </manifest>  

         
dan, itu ajah. Kalo mo donlod file .zip (tanpa password) dari 4shared ini link-nya, dan selamat mencoba moga suskes... amin

oh ya, ditunggu komennya