tutorial android.docx

32
Tutorial Android : Membuat Kalkulator Biner- Desimal Sederhana di Android Kondisi tubuh yang kurang fit melanda saya mulai tadi pagi, gara-gara kemarin malam saya paksakan untuk begadang di ITSolution demi menyeselesaikan jurnal. Tidur jam setengah 4 dan bangun lagi jam setengah 8 untuk berangkat kuliah yang jadwalnya sangat-sangat nanggung nyelempit di akhir pekan seperti ini. Belum lagi rasa rindu untuk pulang ke denpasar di pertengahan bulan seperti ini, namun apa daya pekerjaan dan tugas kampus yang masih numpuk minta giliran untuk di- action . Apalagi mata kuliah machine learning yang diajarkan oleh pak hadiq, yang selalu menjadi momok setiap kali seliweran di pikiran saya :(. Yang terpenting di bawa hepi+santai ajalah, bila perlu tugasnya gak usah dikumpulin, dijamin tambah santai :ngakaks:. Nah, sambil mengisi waktu kosong di malam yang hawanya panas ini, saya akan membagikan sedikit tutorial untuk membuat sebuah kalkulator biner sederhana di android . Yuppzzz, memang sudah banyak tutorial yang berseliweran di internet yang membahas tentang cara konversi biner ke desimal maupun sebaliknya. Berhubung saya lagi sedang senang-senangnya membuat aplikasi sederhana di platform android, tak ada salahnya untuk dicoba. Hitung-hitung cari pengalaman+nambah postingan :p. Yang terpenting di aplikasi kalkulator ini hanya proses perhitungannya saja, untuk event tombol cuma sekedar pemanis. Bagi yang sudah pernah membuat versi java-nya, syntax’nya sama saja. Tinggal mengubah atau menambahkan desain form bagi yang awalnya hanya berupa tampilan console. OK deh, kita langsung aja ke cara pembuatannya. Cekidot mas berooo… 1. Seperti biasa, buat android project baru terlebih dahulu.

Upload: yusufsaputra

Post on 28-Sep-2015

238 views

Category:

Documents


0 download

TRANSCRIPT

Tutorial Android : Membuat Kalkulator Biner-Desimal Sederhana di Android

Kondisi tubuh yang kurang fit melanda saya mulai tadi pagi, gara-gara kemarin malam saya paksakan untuk begadang di ITSolution demi menyeselesaikan jurnal. Tidur jam setengah 4 dan bangun lagi jam setengah 8 untuk berangkat kuliah yang jadwalnya sangat-sangat nanggungnyelempitdi akhir pekan seperti ini. Belum lagi rasa rindu untuk pulang ke denpasar di pertengahan bulan seperti ini, namun apa daya pekerjaan dan tugas kampus yang masih numpuk minta giliran untuk di-action. Apalagi mata kuliah machine learning yang diajarkan oleh pak hadiq, yang selalu menjadi momok setiap kali seliweran di pikiran saya :(. Yang terpenting di bawa hepi+santai ajalah, bila perlu tugasnya gak usah dikumpulin, dijamin tambah santai :ngakaks:. Nah, sambil mengisi waktu kosong di malam yang hawanya panas ini, saya akan membagikan sedikit tutorial untuk membuat sebuahkalkulator biner sederhana di android. Yuppzzz, memang sudah banyak tutorial yang berseliweran di internet yang membahas tentang cara konversi biner ke desimal maupun sebaliknya. Berhubung saya lagi sedang senang-senangnya membuat aplikasi sederhana di platform android, tak ada salahnya untuk dicoba. Hitung-hitung cari pengalaman+nambah postingan :p.Yang terpenting di aplikasi kalkulator ini hanya proses perhitungannya saja, untuk event tombol cuma sekedar pemanis. Bagi yang sudah pernah membuat versi java-nya, syntaxnya sama saja. Tinggal mengubah atau menambahkan desain form bagi yang awalnya hanya berupa tampilan console. OK deh, kita langsung aja ke cara pembuatannya. Cekidot mas berooo1. Seperti biasa, buat android project baru terlebih dahulu.

2. Disini saya menggunakan 2 activity, yaitu KalkulatorBinerActivity untuk melakukan konversi dari desimal ke biner dan KalkulatorDesimalActivity untuk melakukan konveri dari biner ke desimal. Kodenya seperti di bawah ini :KalkulatorBinerActivity.java1publicclassKalkulatorBinerActivityextendsActivity {

2/** Called when the activity is first created. */

3EditText t_in,t_out;

4Button b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b_hps,b_ke_desimal,b_biner;

5String var_in="";

6@Override

7publicvoid onCreate(Bundle savedInstanceState) {

8super.onCreate(savedInstanceState);

9requestWindowFeature(Window.FEATURE_NO_TITLE);

10getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

11setContentView(R.layout.main);

12

13t_in = (EditText) findViewById(R.id.txt_in);

14t_out = (EditText) findViewById(R.id.txt_out);

15b0 = (Button) findViewById(R.id.btn0);

16b1 = (Button) findViewById(R.id.btn1);

17b2 = (Button) findViewById(R.id.btn2);

18b3 = (Button) findViewById(R.id.btn3);

19b4 = (Button) findViewById(R.id.btn4);

20b5 = (Button) findViewById(R.id.btn5);

21b6 = (Button) findViewById(R.id.btn6);

22b7 = (Button) findViewById(R.id.btn7);

23b8 = (Button) findViewById(R.id.btn8);

24b9 = (Button) findViewById(R.id.btn9);

25b_hps = (Button) findViewById(R.id.btn_hapus);

26b_ke_desimal = (Button) findViewById(R.id.btn_ke_desimal);

27b_biner = (Button) findViewById(R.id.btn_biner);

28

29b1.setOnClickListener(newOnClickListener() {

30publicvoid onClick(View v) {

31if(var_in.trim().equals(""))

32{

33var_in ="1";

34t_in.setText(var_in);

35}

36else

37{

38var_in = t_in.getText().toString()+"1";

39t_in.setText(var_in);

40}

41}

42});

43

44b2.setOnClickListener(newOnClickListener() {

45publicvoid onClick(View v) {

46if(var_in.trim().equals(""))

47{

48var_in ="2";

49t_in.setText(var_in);

50}

51else

52{

53var_in = t_in.getText().toString()+"2";

54t_in.setText(var_in);

55}

56}

57});

58

59b3.setOnClickListener(newOnClickListener() {

60publicvoid onClick(View v) {

61if(var_in.trim().equals(""))

62{

63var_in ="3";

64t_in.setText(var_in);

65}

66else

67{

68var_in = t_in.getText().toString()+"3";

69t_in.setText(var_in);

70}

71}

72});

73

74b4.setOnClickListener(newOnClickListener() {

75publicvoid onClick(View v) {

76if(var_in.trim().equals(""))

77{

78var_in ="4";

79t_in.setText(var_in);

80}

81else

82{

83var_in = t_in.getText().toString()+"4";

84t_in.setText(var_in);

85}

86}

87});

88

89b5.setOnClickListener(newOnClickListener() {

90publicvoid onClick(View v) {

91if(var_in.trim().equals(""))

92{

93var_in ="5";

94t_in.setText(var_in);

95}

96else

97{

98var_in = t_in.getText().toString()+"5";

99t_in.setText(var_in);

100}

101}

102});

103

104b6.setOnClickListener(newOnClickListener() {

105publicvoid onClick(View v) {

106if(var_in.trim().equals(""))

107{

108var_in ="6";

109t_in.setText(var_in);

110}

111else

112{

113var_in = t_in.getText().toString()+"6";

114t_in.setText(var_in);

115}

116}

117});

118

119b7.setOnClickListener(newOnClickListener() {

120publicvoid onClick(View v) {

121if(var_in.trim().equals(""))

122{

123var_in ="7";

124t_in.setText(var_in);

125}

126else

127{

128var_in = t_in.getText().toString()+"7";

129t_in.setText(var_in);

130}

131}

132});

133

134b8.setOnClickListener(newOnClickListener() {

135publicvoid onClick(View v) {

136if(var_in.trim().equals(""))

137{

138var_in ="8";

139t_in.setText(var_in);

140}

141else

142{

143var_in = t_in.getText().toString()+"8";

144t_in.setText(var_in);

145}

146}

147});

148

149b9.setOnClickListener(newOnClickListener() {

150publicvoid onClick(View v) {

151if(var_in.trim().equals(""))

152{

153var_in ="9";

154t_in.setText(var_in);

155}

156else

157{

158var_in = t_in.getText().toString()+"9";

159t_in.setText(var_in);

160}

161}

162});

163

164b0.setOnClickListener(newOnClickListener() {

165publicvoid onClick(View v) {

166if(var_in.trim().equals(""))

167{

168var_in ="0";

169t_in.setText(var_in);

170}

171else

172{

173var_in = t_in.getText().toString()+"0";

174t_in.setText(var_in);

175}

176}

177});

178

179b_hps.setOnClickListener(newOnClickListener() {

180publicvoid onClick(View v) {

181t_in.setText("");

182t_out.setText("");

183}

184});

185

186b_biner.setOnClickListener(newOnClickListener() {

187publicvoid onClick(View v) {

188if(var_in!="")

189{

190String hasil = DesimalKeBiner(Integer.parseInt(var_in));

191t_out.setText(hasil);

192var_in="";

193}

194

195}

196});

197

198b_ke_desimal.setOnClickListener(newOnClickListener() {

199publicvoid onClick(View v) {

200t_in.setText("");

201t_out.setText("");

202var_in="";

203Intent i =newIntent(getApplicationContext(), KalkulatorDesimalActivity.class);

204startActivity(i);

205}

206});

207}

208

209publicString DesimalKeBiner(int angka_desimal)

210{

211int sisa_bagi=0, i=0;

212boolean ulang=true;

213int[] arr_simpan =newint[10000];

214sisa_bagi=angka_desimal;

215

216String hasil="";

217while(ulang==true)

218{

219sisa_bagi = angka_desimal%2;

220angka_desimal= angka_desimal/2;

221arr_simpan[i]=sisa_bagi;

222i++;

223if((angka_desimal==0)||(angka_desimal==1))

224{

225ulang=false;

226arr_simpan[i]=angka_desimal;

227}

228}

229for(int a=i; a>=0;a--)

230{

231hasil += arr_simpan[a];

232}

233returnhasil;

234}

235

236publicboolean onCreateOptionsMenu(Menu menu) {

237MenuInflater inflater = getMenuInflater();

238inflater.inflate(R.menu.opt_menu, menu);

239returntrue;

240}

241

242publicboolean onOptionsItemSelected(MenuItem item) {

243switch(item.getItemId()) {

244caseR.id.tentang:

245AlertDialog alertDialog;

246alertDialog =newAlertDialog.Builder(this).create();

247alertDialog.setTitle("Sekilas Biner");

248alertDialog.setMessage("Bilangan biner adalah salah satu sistem bilangan yang digunakan pada komputer. "+

249"Berbeda dengan sistem bilangan desimal yang sering kita gunakan sehari-hari, "+

250"sistem bilangan biner hanya menggunakan dua bilangan yaitu 0 (nol) dan 1 (satu). "+

251"\n\nSalam, Gede Lumbung\nhttp://gedelumbung.com");

252alertDialog.setButton("#OKOK",newDialogInterface.OnClickListener() {

253@Override

254publicvoid onClick(DialogInterface dialog, int which) {

255dialog.dismiss();

256}

257});

258alertDialog.show();

259returntrue;

260caseR.id.keluar:

261Intentexit=newIntent(Intent.ACTION_MAIN);

262exit.addCategory(Intent.CATEGORY_HOME);exit.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

263KalkulatorBinerActivity.this.finish();

264startActivity(exit);

265returntrue;

266default:

267returnsuper.onOptionsItemSelected(item);

268}

269}

270}

KalkulatorDesimalActivity.java1publicclassKalkulatorDesimalActivityextendsActivity {

2/** Called when the activity is first created. */

3EditText t_in,t_out;

4Button b0,b1,b_hps,b_ke_biner,b_desimal;

5String var_in="";

6@Override

7publicvoid onCreate(Bundle savedInstanceState) {

8super.onCreate(savedInstanceState);

9requestWindowFeature(Window.FEATURE_NO_TITLE);

10getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

11setContentView(R.layout.second);

12

13t_in = (EditText) findViewById(R.id.txt_in);

14t_out = (EditText) findViewById(R.id.txt_out);

15b0 = (Button) findViewById(R.id.btn0);

16b1 = (Button) findViewById(R.id.btn1);

17b_hps = (Button) findViewById(R.id.btn_hapus);

18b_ke_biner = (Button) findViewById(R.id.btn_ke_biner);

19b_desimal = (Button) findViewById(R.id.btn_desimal);

20

21b1.setOnClickListener(newOnClickListener() {

22publicvoid onClick(View v) {

23if(var_in.trim().equals(""))

24{

25var_in ="1";

26t_in.setText(var_in);

27}

28else

29{

30var_in = t_in.getText().toString()+"1";

31t_in.setText(var_in);

32}

33}

34});

35

36b0.setOnClickListener(newOnClickListener() {

37publicvoid onClick(View v) {

38if(var_in.trim().equals(""))

39{

40var_in ="0";

41t_in.setText(var_in);

42}

43else

44{

45var_in = t_in.getText().toString()+"0";

46t_in.setText(var_in);

47}

48}

49});

50

51b_hps.setOnClickListener(newOnClickListener() {

52publicvoid onClick(View v) {

53t_in.setText("");

54t_out.setText("");

55}

56});

57

58b_desimal.setOnClickListener(newOnClickListener() {

59publicvoid onClick(View v) {

60if(var_in!="")

61{

62int hasil = BinerKeDesimal(Integer.parseInt(var_in));

63t_out.setText(Double.toString(hasil));

64var_in="";

65}

66

67}

68});

69

70b_ke_biner.setOnClickListener(newOnClickListener() {

71publicvoid onClick(View v) {

72KalkulatorDesimalActivity.this.finish();

73}

74});

75}

76

77publicint BinerKeDesimal(int angka_desimal)

78{

79String bil = Integer.toString(angka_desimal);

80int[] arr_simpan=newint[10000];

81String[] str=newString[10000];

82double hasil=0;

83int hasil_akhir=0;

84int a=0;

85char t;

86

87for(int i=0;i < bil.length();i++)

88{

89t = bil.charAt(i);

90str[i]=Character.toString(t);

91}

92

93for(int i=bil.length()-1; i>=0;i--)

94{

95arr_simpan[a]=Integer.parseInt(str[i]);

96hasil= arr_simpan[a]* (Math.pow(2,a));

97hasil_akhir=hasil_akhir+(int)hasil;

98a++;

99}

100returnhasil_akhir;

101}

102

103publicboolean onCreateOptionsMenu(Menu menu) {

104MenuInflater inflater = getMenuInflater();

105inflater.inflate(R.menu.opt_menu, menu);

106returntrue;

107}

108

109publicboolean onOptionsItemSelected(MenuItem item) {

110switch(item.getItemId()) {

111caseR.id.tentang:

112AlertDialog alertDialog;

113alertDialog =newAlertDialog.Builder(this).create();

114alertDialog.setTitle("Sekilas Biner");

115alertDialog.setMessage("Bilangan biner adalah salah satu sistem bilangan yang digunakan pada komputer. "+

116"Berbeda dengan sistem bilangan desimal yang sering kita gunakan sehari-hari, "+

117"sistem bilangan biner hanya menggunakan dua bilangan yaitu 0 (nol) dan 1 (satu). "+

118"\n\nSalam, Gede Lumbung\nhttp://gedelumbung.com");

119alertDialog.setButton("#OKOK",newDialogInterface.OnClickListener() {

120@Override

121publicvoid onClick(DialogInterface dialog, int which) {

122dialog.dismiss();

123}

124});

125alertDialog.show();

126returntrue;

127caseR.id.keluar:

128Intentexit=newIntent(Intent.ACTION_MAIN);

129exit.addCategory(Intent.CATEGORY_HOME);exit.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

130KalkulatorDesimalActivity.this.finish();

131startActivity(exit);

132returntrue;

133default:

134returnsuper.onOptionsItemSelected(item);

135}

136}

137}

3. Karena menggunakan 2 buah activity, otomatis juga membutuhkan 2 buah layout yang berbeda. Saya tambahkan satu layout untuk layout options menu, saya tempatkan pada foldermenu/opt_menu.xml. Jadi total terdapat 3 buah layout.main.xml1

2

7

8

13

14

23

24

35

36

37

38

43

44

53

54

65

66

67

68

73

74

84

85

95

96

106

107

108

113

114

124

125

135

136

146

147

148

153

154

164

165

175

176

186

187

188

193

194

205

206

216

217

227

228

229

234

235

246

247

248

second.xml1

2

7

8

13

14

23

24

35

36

37

38

43

44

53

54

65

66

67

68

73

74

84

85

86

91

92

102

103

104

109

110

120

121

131

132

133

138

139

150

151

152

opt_menu.xml1

2

5

8

4. Yang terakhir, kita perlu mendaftarkan activity yang kedua di dalam file AndroidManifest.xml.1

2

6

7

8

9

12

15

16

17

18

19

20

21

22

23

24

5. Jalankan aplikasi via emulator, bisa juga dijalanlan langsung ke smartphone dengan menghubungkan via kabel usb (syaratnya, driver harus sudah terinstall)

Nahh, gampang kan cara pembuatannya??? Kalkulator di atas masih bisa ditambahkan dengan fungsi untuk konversi ke hexadesimal dan oktal. Bisa juga ditambahkan tabel gerbang logika, jadinya ketika rekan-rekan sedang mengerjakan ujian mata kuliah sistem digital pasti terbantu (kalau dibolehkan bawa hape lho yaw :D). OK deh, sekian dulu postingan saya kali ini. Semoga bisa bermanfaat untuk kita semua.Happy Blogging and Keep Coding