X

Wednesday, November 14, 2018

Membuat Aplikasi Android : Browser Internet Layaknya Opera Mini Menggunakan Android Studio


Browser adalah sebuah aplikasi yang memungkinkan kita dengan mudah dapat menjelajah web atau dunia Internet. Aplikasi ini akan membantu, mengubah kode-kode html, css, javascript, bahkan php hingga bisa tampil di layar kaca anda. Beberapa contoh browser android yang banyak digunakan seperti : Mozilla, Opera Mini, Uc Browser, Chrome serta masih banyak lagi.

Tahukah anda bahwa dengan bantuan Android Studio kita bisa membuat sendiri browser android. Keuntungan dari membuat aplikasi browser sendiri adalah, anda bisa mengatur tampilan sesuka hati anda. Hingga menambahkan fitur lainnya yang tidak dimiliki browser pada umumnya.

Untuk memulai membuat aplikasi browser ini pertama-tama anda tentunya harus memiliki Android Studio. Jika belum punya anda bisa mendownloadnya di google dengan kata kunci Android Studio. Bila anda sudah punya silahkan buat project baru dengan nama 'browserku' kemudian untuk target API 15 : Android 4.0.3 (Ice Cream Sandwich) atau anda bisa memilih API yang lebih tinggi. Bagi anda yang belum tahu cara membuat project baru silahkan klik postingan CodingRakitan Cara Membuat Project Baru di Android Studio.

Hal pertama yang anda perlu anda lakukan adalah mempertimbangkan apakah akan membuat splash screen atau tidak. Tidak tahu apa itu splash screen ??
Jadi splash screen adalah tampilan pertama yang akan muncul bila aplikasi dibuka. Ini seperti pembuka awal yang biasanya menampilkan logo aplikasi kita. Contohnya pada aplikasi UC Browser yang pertama muncul akan sperti pada gambar di bawah :



Biasanya tampilan splash screen seperti di atas akan muncul beberapa detik sebelum masuk ke tampilan utama aplikasi. Nah untuk anda yang ingin menambahkan splash screen pada aplikasi 'browserku' silahkan anda buat terlebih dahulu. Anda bisa melihat postingan 'Membuat Aplikasi Android : Splash Screen Sebagai Tampilan Pembuka Aplikasi'.

Jika anda tidak berniat untuk menambahkannya anda bisa langsung memulai tahapan di bawah ini :

1. Seperti yang sudah saya jelaskan di atas, buat project baru dengan nama 'browserku' kemudian untuk target API 15 : Android 4.0.3 (Ice Cream Sandwich). Sedangkan keterangan lainnya bisa anda sesuaikan dengan keinginan anda. Untuk kali ini saya membuatnya seperti dibawah :

  • Aplication Name : browserku
  • Company domain : coding.rakitan.com
  • Phone and Tablet : API 15 : Android 4.0.3 (Ice Cream Sandwich)
  • Add on Activity to Mobile : Empty Activity
  • Activity Name : MainActivity
  • Layout Name : activity_main


2. activity_main.xml

Pada activity_main.xml silahkan ubah tampilan hingga menjadi seperti gambar di bawah. Anda bisa membuatnya dengan mengikuti element yang ada di kotak warna merah silahkan tambahkan sesuai yang tertera.



Bila anda tidak mau ribet, anda bisa mengedit langsung kodenya dan ganti dengan kode di bawah ini :

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:padding="7dp">

            <EditText
                android:id="@+id/input_cari"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:ems="10"
                android:hint="Cari Alamat"
                android:inputType="textPersonName" />

            <Button
                android:id="@+id/tombol_cari"
                android:layout_width="50dp"
                android:layout_height="wrap_content"
                android:background="@android:drawable/ic_menu_search" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <WebView
                android:id="@+id/web_view"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
        </LinearLayout>
    </LinearLayout>
</RelativeLayout>


3. MainActivity.java

Selanjutnya buka MainActivity.java kemudian pastekan kode di bawah ini :

package com.rakitan.coding.browserku;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    EditText cari;
    Button tombol_cari;
    WebView web_view;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        cari = findViewById(R.id.input_cari);
        tombol_cari = findViewById(R.id.tombol_cari);
        web_view = findViewById(R.id.web_view);
        tombol_cari.setOnClickListener(this);
        web_view.getSettings().setJavaScriptEnabled(true);
        web_view.setWebViewClient(new Browserku());
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.tombol_cari:
                String alamat = cari.getText().toString();
                cari_alamat(alamat);
                break;
        }
    }

    private void cari_alamat(String alamat) {
        String str = alamat.toLowerCase();
        if(str.matches(".* .*")){
            web_view.loadUrl("https://www.google.com/search?q="+alamat);
        }else  {
            if (str.matches(".*https://.*") || str.matches(".*http://.*") ){
                    web_view.loadUrl(alamat);
            }if (str.matches(".*..*") ){
                web_view.loadUrl("https://"+alamat);
            }else{
                web_view.loadUrl("https://www.google.com/search?q="+alamat);
            }
        }

    }

    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KeyEvent.KEYCODE_BACK) && web_view.canGoBack()) {
            web_view.goBack();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

    private class Browserku extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            web_view.loadUrl(url);
            return true;
        }


    }
}


4. AndroidManifest.xml

Pada Android manifest ini silahkan tambahkan <uses-permission android:name="android.permission.INTERNET"/> agar android nantinya memberikan akses internet pada aplikasi browserku ini. Anda bisa melihat kode lengkap Android manifest ini dibawah :

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.rakitan.coding.browserku">
 
    <uses-permission android:name="android.permission.INTERNET"/>

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>


5. Run aplikasi menggunakan emulator yang anda gunakan. Maka tampilannya akan seperti di gambar. Tampilan awal hanya menampilkan kotak cari dan ikon. Ketika di ketikkan kata yang tidak memiliki unsur alamat web maka sistem akan mengarahkan ke pencarian google. Sedangkan ketika kata yang diketikkan merupakan alamat web maka sistem akan langsung mengarahkan pada alamat.



Penjelasan Coding

Saya akan mencoba menjelaskan beberapa bagian utama dari koding yang ada pada MainActivity.java. Sebab disinilah letak semua perintah diletakkan.

 web_view.getSettings().setJavaScriptEnabled(true);
 web_view.setWebViewClient(new Browserku());

Kode di atas mengisyaratkan untuk membuat setingan pada web_view agar dapat menjalankan javascript. Kemudian baris kedua menginstruksikana untuk membuat Web ViewClient dengan nama kelas Browserku.



private void cari_alamat(String alamat) {
        String str = alamat.toLowerCase();
        if(str.matches(".* .*")){
            web_view.loadUrl("https://www.google.com/search?q="+alamat);
        }else  {
            if (str.matches(".*https://.*") || str.matches(".*http://.*") ){
                    web_view.loadUrl(alamat);
            }if (str.matches(".*..*") ){
                web_view.loadUrl("https://"+alamat);
            }else{
                web_view.loadUrl("https://www.google.com/search?q="+alamat);
            }
        }

    }

Untuk kode di atas berfungsi agar ketika kita mengetikkan kata pada kolom pencarian dimana kata tersebut buka berupa alamat maka, sistem akan mengarahkan kata tersebut kedalam pencarian google. Jika kata yang dimasukkan ternyata berupa alamat maka sistem akan langsung meload alamat.



 public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KeyEvent.KEYCODE_BACK) && web_view.canGoBack()) {
            web_view.goBack();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

Ini adalah fungsi tombol kembali, dimana jika anda mengklik tombol back maka akan kembali ke halaman sebelumnya. Jika ternyata tidak ada halaman sebelumnya, maka aplikasi akan keluar atau tertutup.



private class Browserku extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            web_view.loadUrl(url);
            return true;
        }


    }

Kode di atas merupakan kode kelas dari Browserku yang sudah di jelaskan sebelumnya. Agar bisa memuat alamat url dengan baik, aplikasi harus memiliki client server yang berguna untuk mengatur penjelajahan web.

Demikian tutorial kali ini tentang Membuat Aplikasi Android : Browser Internet Layaknya Opera Mini Menggunakan Android Studio. Nantikan kelanjutan dari aplikasi ini di Membuat Aplikasi Android : Browser Internet Layaknya Opera Mini Menggunakan Android Studio Part 2.

Didalam part dua itu nantinya kita akan mencoba menambahkan fitur-fitur pada browserku hingga tampak seperti browser terkenal.

Sekian dan terima kasih.

Cara Membuat Project Baru di Android Studio


Hai sobat, kali ini tutorial CodingRakitan akan membahas tentang bagaimana cara membuat project baru pada Android Studio. Kalian semua pastinya sudah tahu apa itu Android Studio bukan. Kalau belum tahu, jadi Android Studio itu adalah sebuah perangkat lunak yang ditujukan dalam pembuatan aplikasi berbasis Android.

Hal utama yang perlu anda pelajari dalam menggunakan Android Studio adalah cara membuat project baru. Menurut saya ini adalah hal yang paling dasar sekali, tetapi banyak di antara para pemula yang tidak tahu cara ini. Bisa karena faktor pertama kali berjumpa dengan Android Studio. Hal ini juga pernah saya alami ketika pertama kali menginstal Android Studio, saya tidak tahu bagaimana caranya untuk membuat sebuah project, karena adanya kemauan akhirnya sekarang saya sudah banyak tahu tentang Android Studio.

Mari kita mulai untuk membuat project baru :

1. Buka aplikasi Android Studio kemudian pilih "Start a new Android Studio project".



2. Silahkan isi Aplication name dengan nama project anda, misalnya "Kalukulator", Company domain isi sesuai dengan company domain anda misalnya disini saya menggunakan "coding.rakitan.com" (ingat ini nantinya akan membedakan aplikasi anda dengan aplikasi lain yang ada di play store jadi usahakan unik, atau tidak ada kesamaan dengan yang lain), dan Project Location biasanya otomatis terisi, tetapi anda bisa mengganti sesuai yang anda inginkan. Jika sudah diisi semua silahkan klik next.




3. Selanjutnya pada window Target Android Devices, centang "Phone and Target" dan pilih API 15: Android 4.0.3 (IceCreamSandwich) lalu tekan next. Catatan : anda bisa memilih API android sesuai dengan API target yang anda inginkan, tetapi pastikan platform API yang anda pilih telah trinstal pad SDK.




4. Pada "Add an Activity to Mobile" silahkan pilih "Empty Activity" lalu tekan next. Ada banyak activity yang bisa anda pilih, tetapi untuk pemula ada baiknya anda memilih Empty Activity, sebab itu akan membuat anda tidak kebingungan nantinya pada file activity_main.xml atau pada file javanya nanti.




5. "Configure Activity " biarkan default saja, langsung klik Finish lalu tunggu sejenak aplikasi melakukan Building, sambil menunggu anda bisa membuat kopi atau teh mungkin. Untuk pemula di anjurkan Activity name dan layout namenya tetap default. Activity Name merupakan nama class atau nama file javanya nanti, kemudian Layout name adalah nama layout atau tampilan pertama pada aplikasi nantinya.



6. Setelah anda mengklik finish pada tahap ke 5 maka sampailah kita di layar utama project aplikasi.




Sekian tutorial kali ini semoga bermanfaat untuk kalian semua. Nantikan tutorial-tutorial menarik selanjutnya yang akan dibahas CodingRakitan. Jika dirasa bermanfaat silahkan sharing ke teman-teman kalian semua atau jika anda tidak ingin ketinggalan postingan terbaru dari CodingRakitan. Silahkan klik suka halaman pada halaman Facebook di samping. Insya Allah setiap postingan terbaru akan selalu di update disana , terima kasih.

Sunday, November 11, 2018

Membuat Aplikasi Android : Kalukulator Sederhana Menggunakan Android Studio


Halo sobat Codingrakitan, bagaimana kabarnya, saya harap kalian selalu dalam keadaan hepi.

Pada tutorial kali ini saya akan mengajarkan bagaimana cara membuat aplikasi kalukulator sederhana menggunakan Android Studio. Sebelum memulai ada baiknya anda berdoa, kemudian pastikan alat-alat yang dibutuhkan sudah terinstal dengan sempurna. Alat atau aplikasi paling utama adalah Android Studio (disini saya mengguanakan Android Studio v 3.0).

Jika sobat menggunakan versi yang lama, maka tidak apa-apa ikuti saja langkahnya sesuai dibawah ini.

Hal pertama yang harus anda lakukan adalah membuat sebuah project baru dengan nama kalukulator. Jika sudah selesai selanjutnya silahkan edit file activity_main.xml dan MainActivity.java sesuai kode yang ada di bawah

Activity_main.xml

Kalian pastinya sudah tahu bahwa pada file ini berisikan kode xml yang akan menampilakan desain dari aplikasi android yang dibuat. Pada aplikasi android Kalukulator sederhana yang kita buat ini tampilannya akan tampak seperti pada gambar :




 Untuk mendapatkan desain di atas anda cukup memasukkan kode xml berikut :

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:baselineAligned="false"
    tools:context="com.rakitan.coding.kalukulator.MainActivity"
    android:id="@+id/linearLayout">


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/angka1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:layout_marginTop="20dp"
                android:layout_marginRight="5dp"
                android:layout_marginBottom="20dp"
                android:textSize="24sp" />

            <TextView
                android:id="@+id/operator"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:layout_marginTop="20dp"
                android:layout_marginRight="5dp"
                android:layout_marginBottom="20dp"
                android:textSize="24sp" />

            <TextView
                android:id="@+id/angka2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:layout_marginTop="20dp"
                android:layout_marginRight="5dp"
                android:layout_marginBottom="20dp"
                android:textSize="24sp" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <Button
                android:id="@+id/tb1"
                android:layout_width="wrap_content"
                android:layout_height="70dp"
                android:layout_margin="5dp"
                android:layout_weight="1"
                android:text="1"/>

            <Button
                android:id="@+id/tb2"
                android:layout_width="wrap_content"
                android:layout_height="70dp"
                android:layout_margin="5dp"
                android:layout_weight="1"
                android:text="2" />

            <Button
                android:id="@+id/tb3"
                android:layout_width="wrap_content"
                android:layout_height="70dp"
                android:layout_margin="5dp"
                android:layout_weight="1"
                android:text="3" />

            <Button
                android:id="@+id/ak1"
                android:layout_width="wrap_content"
                android:layout_height="70dp"
                android:layout_margin="5dp"
                android:layout_weight="1"
                android:text="+" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <Button
                android:id="@+id/tb4"
                android:layout_width="wrap_content"
                android:layout_height="70dp"
                android:layout_margin="5dp"
                android:layout_weight="1"
                android:text="4" />

            <Button
                android:id="@+id/tb5"
                android:layout_width="wrap_content"
                android:layout_height="70dp"
                android:layout_margin="5dp"
                android:layout_weight="1"
                android:text="5" />

            <Button
                android:id="@+id/tb6"
                android:layout_width="wrap_content"
                android:layout_height="70dp"
                android:layout_margin="5dp"
                android:layout_weight="1"
                android:text="6" />

            <Button
                android:id="@+id/ak2"
                android:layout_width="wrap_content"
                android:layout_height="70dp"
                android:layout_margin="5dp"
                android:layout_weight="1"
                android:text="-" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <Button
                android:id="@+id/tb7"
                android:layout_width="wrap_content"
                android:layout_height="70dp"
                android:layout_margin="5dp"
                android:layout_weight="1"
                android:text="7" />

            <Button
                android:id="@+id/tb8"
                android:layout_width="wrap_content"
                android:layout_height="70dp"
                android:layout_margin="5dp"
                android:layout_weight="1"
                android:text="8" />

            <Button
                android:id="@+id/tb9"
                android:layout_width="wrap_content"
                android:layout_height="70dp"
                android:layout_margin="5dp"
                android:layout_weight="1"
                android:text="9" />

            <Button
                android:id="@+id/ak3"
                android:layout_width="wrap_content"
                android:layout_height="70dp"
                android:layout_margin="5dp"
                android:layout_weight="1"
                android:text="x" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <Button
                android:id="@+id/bersih"
                android:layout_width="wrap_content"
                android:layout_height="70dp"
                android:layout_margin="5dp"
                android:layout_weight="1"
                android:text="c" />

            <Button
                android:id="@+id/tb0"
                android:layout_width="59dp"
                android:layout_height="70dp"
                android:layout_margin="5dp"
                android:layout_weight="1"
                android:text="0" />

            <Button
                android:id="@+id/sama_dengan"
                android:layout_width="wrap_content"
                android:layout_height="70dp"
                android:layout_margin="5dp"
                android:layout_weight="1"
                android:text="=" />

            <Button
                android:id="@+id/ak4"
                android:layout_width="67dp"
                android:layout_height="70dp"
                android:layout_margin="5dp"
                android:layout_weight="1"
                android:text="/" />

        </LinearLayout>
    </LinearLayout>
</RelativeLayout>


MainActivity.java

Pada MainActivity.java ini akan berisikan fungsi-fungsi yang akan di jalankan pada aplikasi android nantinya, seperti fungsi tombol, hingga rumus perhitungan berada dalam file ini.

package com.rakitan.coding.kalukulator;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    TextView angka1, operator, angka2;
    int a=0, b=0;
    Button tb1, tb2, tb3, tb4,tb5,tb6,tb7,tb8,tb9,tb0, sama_dengan, tambah,kurang,kali,bagi, bersih;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        angka1 = findViewById(R.id.angka1);
        angka2 = findViewById(R.id.angka2);
        operator = findViewById(R.id.operator);
        tb1= findViewById(R.id.tb1);
        tb2= findViewById(R.id.tb2);
        tb3= findViewById(R.id.tb3);
        tb4= findViewById(R.id.tb4);
        tb5= findViewById(R.id.tb5);
        tb6= findViewById(R.id.tb6);
        tb7= findViewById(R.id.tb7);
        tb8= findViewById(R.id.tb8);
        tb9= findViewById(R.id.tb9);
        tb0= findViewById(R.id.tb0);
        sama_dengan= findViewById(R.id.sama_dengan);
        tambah= findViewById(R.id.ak1);
        kurang= findViewById(R.id.ak2);
        kali= findViewById(R.id.ak3);
        bagi= findViewById(R.id.ak4);
        bersih= findViewById(R.id.bersih);

        tb1.setOnClickListener(this);
        tb2.setOnClickListener(this);
        tb3.setOnClickListener(this);
        tb4.setOnClickListener(this);
        tb5.setOnClickListener(this);
        tb6.setOnClickListener(this);
        tb7.setOnClickListener(this);
        tb8.setOnClickListener(this);
        tb9.setOnClickListener(this);
        tb0.setOnClickListener(this);
        tambah.setOnClickListener(this);
        kurang.setOnClickListener(this);
        kali.setOnClickListener(this);
        bagi.setOnClickListener(this);
        bersih.setOnClickListener(this);
        sama_dengan.setOnClickListener(this);

    }


    @Override
    public void onClick(View v) {

        switch (v.getId()){
            case R.id.tb1:
                isi("1");
                break;
            case R.id.tb2:
                isi("2");
                break;
            case R.id.tb3:
                isi("3");
                break;
            case R.id.tb4:
               isi("4");
                break;
            case R.id.tb5:
               isi("5");
                break;
            case R.id.tb6:
                isi("6");
                break;
            case R.id.tb7:
                isi("7");
                break;
            case R.id.tb8:
                isi("8");
                break;
            case R.id.tb9:
                isi("9");
                break;
            case R.id.tb0:
                isi("0");
                break;

//                aksi operator
            case R.id.ak1:
                aksi("+");
                break;
            case R.id.ak2:
                aksi("-");
                break;
            case R.id.ak3:
                aksi("*");
                break;
            case R.id.ak4:
                aksi("/");
                break;

//                aksi lainnya
            case R.id.bersih:
                bersih();
                break;
            case R.id.sama_dengan:
                hasil();
                break;
        }
    }



    private void isi(String s) {
        String op = operator.getText().toString();
        String a1 = angka1.getText().toString();
        String a2 = angka2.getText().toString();
        if(op==""){
            angka1.setText(a1+s);
        }else{
            angka2.setText(a2+s);
        }
    }

    private void aksi(String ak) {
        operator.setText("");
        operator.setText(ak);
    }
    private void hasil() {
        String a = operator.getText().toString();
        String nilai1 = angka1.getText().toString();
        String nilai2 = angka2.getText().toString();
        int n1 = Integer.parseInt(nilai1);
        int n2 = Integer.parseInt(nilai2);
        bersih();
        if (a=="+"){
            int c = n1+n2;
            isi(""+c);
        }else if (a=="-"){
            int c = n1-n2;
            isi(""+c);
        }else if (a=="*"){
            int c = n1*n2;
            isi(""+c);
        }else if (a=="/"){
            int c = n1/n2;
            isi(""+c);
        }


    }

    private void bersih() {
        angka1.setText("");
        angka2.setText("");
        operator.setText("");
    }
}


Penjelasan Koding

Pada penjelasan koding ini akan dibagi menjadi 2 bagian utama yaitu kode activity_main.xml dan MainActivity.java. Tapi sebelum itu pastikan anda sudah men RUN aplikasi kalukulator tadi dan sukses berjalan pada perangkat atau emulator android anda. Jika gagal maka perhatikan kembali kedua file itu apakah isinya sudah sama persis dengan yang ada di blog ini atau tidak.

activity_main.xml

Kita lanjut kepada pembahasan koding, yang pertama adalah koding pada activity_main.xml, didalam file ini berisikan koding xml yang mana nantinya akan mengatur tampilan android ketika di jalankan.

Secara teknis dalam aplikasi android kalukulator sederhana ini terdapat 4 element atau atribut utama yang digunakan yaitu : RelativeLayout, LinearLayout, TextView, dan Button. Mengapa digunakan RelativeLayout alasannya agar pengaturan tata letak lebih mudah, apalagi untuk seorang pemula dalam membuat aplikasi android. Dalam pembuatan kalukulator ini, RelativeLayout digunakan sebagai pembungkus dari semua isi lainnya.

Kemudian ada LinearLayout yang terdiri dari dua orientation yakni vertical dan horizontal. Pada lapisan pertama di gunakan orientation vertical untuk membungkus LinearLayout orientation horizontal. Kemudian lapis kedua orientation horizontal digunakan untuk membungkus widget seperti text view atau buttn. Mengapa digunakan orientation horizontal pada lapis ini ?

Jawabanya agar button atau text view dapat berjejer kesamping bukan kebawah.

Selanjutnya beralih ke text view, element ini tidak bisa dilihat karena, isi textnya sengaja di kosongkan. Berbeda dengan button yang terlihat sebab memiliki warna background. TextView yang digunakan dalam aplikasi kalukulator ini berjumlah 3, yang pertama akan berisi angka pertama atau nilai pertama yang akan dihitung, yang kedua akan menampung operator apa yang dipakai (+, -, *, dan /), sedangkan TextView ketiga akan menampung nilai kedua yang pengguna masukkan.

Kemudian yang terakhir dalam file activity_main.xml ada element Button. Element inilah yang akan berfungsi sebagai tombol nantinya, dimana jumlahnya terdiri dari 24 buah.

MainActivity.java

File inilah yang berisi kode-kode untuk menjalankan fungsi yang dalam aplikasi android kalukulator sederhana ini. MainActivity ini secara garis besar berisi satu class dengan 6 method atau perintah yang telah di isikan.

Method pertama yaitu onCreate:
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        angka1 = findViewById(R.id.angka1);
        angka2 = findViewById(R.id.angka2);
        operator = findViewById(R.id.operator);
        tb1= findViewById(R.id.tb1);
        tb2= findViewById(R.id.tb2);
        tb3= findViewById(R.id.tb3);
        tb4= findViewById(R.id.tb4);
        tb5= findViewById(R.id.tb5);
        tb6= findViewById(R.id.tb6);
        tb7= findViewById(R.id.tb7);
        tb8= findViewById(R.id.tb8);
        tb9= findViewById(R.id.tb9);
        tb0= findViewById(R.id.tb0);
        sama_dengan= findViewById(R.id.sama_dengan);
        tambah= findViewById(R.id.ak1);
        kurang= findViewById(R.id.ak2);
        kali= findViewById(R.id.ak3);
        bagi= findViewById(R.id.ak4);
        bersih= findViewById(R.id.bersih);

        tb1.setOnClickListener(this);
        tb2.setOnClickListener(this);
        tb3.setOnClickListener(this);
        tb4.setOnClickListener(this);
        tb5.setOnClickListener(this);
        tb6.setOnClickListener(this);
        tb7.setOnClickListener(this);
        tb8.setOnClickListener(this);
        tb9.setOnClickListener(this);
        tb0.setOnClickListener(this);
        tambah.setOnClickListener(this);
        kurang.setOnClickListener(this);
        kali.setOnClickListener(this);
        bagi.setOnClickListener(this);
        bersih.setOnClickListener(this);
        sama_dengan.setOnClickListener(this);

    }


Pada method ini menggunakan perintah super untuk membuat suatu fungsi yang berfungsi untuk menampilkan R.layout.activity_main.xml ketika class atau kode java ini di jalankan. Method inilah yang menghubungkan antara activity_man.xml dengan MainActivity.java.

Selanjutnya di dalam method ini juga di deklarasikan variabel yang sebelumnya telah didefinisikan di atas method ini seperti gambar di bawah :



Cara pendefisiannya sangat mudah cukup menuliskan namavariabel = findViewById(R.id.namaid);. Id menjadi atribut unik paling utama yang digunakan untuk mencari jenis variabel ini.

Agar lebih paham kita umpamakan anda telah membuat sebuah tombol angka 1 misalnya. Tombol ini dibuat dari Button dengan nama idnya "tb1". Maka tuliskan dahulu variabelnya yaitu "Button tb1" nama variabelnya terserah, tapi untuk memudahkan silahkan tulis sesuai nama idnya saja. Kemudian cari tombol ini dan masukkan kedalam variabel tb1 dengan cara "tb1 = findViewById(R.id.tb1);".

Hal lain yang ada di dalam method ini seperti "tb1.setOnClickListener(this);" artinya jika tb1 diklik maka akan terjadi sesuai dengan yang terindex pada method onClick(View v). Ingat "this" ini merujuk pada method onClick(View v) jadi bila method ini tidak ada maka program akan eror. Untuk penjelasannya akan ada di bawah.

Method Kedua onClick :
 @Override
    public void onClick(View v) {

        switch (v.getId()){
            case R.id.tb1:
                isi("1");
                break;
            case R.id.tb2:
                isi("2");
                break;
            case R.id.tb3:
                isi("3");
                break;
            case R.id.tb4:
               isi("4");
                break;
            case R.id.tb5:
               isi("5");
                break;
            case R.id.tb6:
                isi("6");
                break;
            case R.id.tb7:
                isi("7");
                break;
            case R.id.tb8:
                isi("8");
                break;
            case R.id.tb9:
                isi("9");
                break;
            case R.id.tb0:
                isi("0");
                break;

//                aksi operator
            case R.id.ak1:
                aksi("+");
                break;
            case R.id.ak2:
                aksi("-");
                break;
            case R.id.ak3:
                aksi("*");
                break;
            case R.id.ak4:
                aksi("/");
                break;

//                aksi lainnya
            case R.id.bersih:
                bersih();
                break;
            case R.id.sama_dengan:
                hasil();
                break;
        }
    }


Dalam method ini akan menjalankan fungsi sesuai tombol apa yang telah di klik. Switch dan Case adalah fungsi yang digunakan untuk mengenali id dari tombol yang melakukan klik untuk selanjutnya melakukan fungsi sesuai yang telah di instruksikan.

Method Ketiga isi ():
 private void isi(String s) {
        String op = operator.getText().toString();
        String a1 = angka1.getText().toString();
        String a2 = angka2.getText().toString();
        if(op==""){
            angka1.setText(a1+s);
        }else{
            angka2.setText(a2+s);
        }
    }


Dalam method ini akan mengmbil nilai dari variabel "String s" dimana variabel s ini berisikan angka atau operator yang akan ditampilkan pada textview. Pertama-tama membuat variabel "String op = operator.getText().toString();String a1 = angka1.getText().toString();String a2 = angka2.getText().toString();" hal ini untuk mengambil isi dari textview untuk nantinya akan di tahu apakah sudah ada isinya atau belum. Contoh disini variabel op yang akan dilihat apakah sudah ada operator atau belum jika ada maka angka selanjutnya yang dimasukkan akan tampil di TextView 3 bukan di Text View 1 lagi.

Method keempat aksi ();

private void aksi(String ak) {
        operator.setText("");
        operator.setText(ak);
    }


Method ini befungsi ketika tombol (+, -, *, /) di klik maka akan mengisi TextView operator sesuai dengan tombol operator yang di klik.

Method kelima hasil()

private void hasil() {
        String a = operator.getText().toString();
        String nilai1 = angka1.getText().toString();
        String nilai2 = angka2.getText().toString();
        int n1 = Integer.parseInt(nilai1);
        int n2 = Integer.parseInt(nilai2);
        bersih();
        if (a=="+"){
            int c = n1+n2;
            isi(""+c);
        }else if (a=="-"){
            int c = n1-n2;
            isi(""+c);
        }else if (a=="*"){
            int c = n1*n2;
            isi(""+c);
        }else if (a=="/"){
            int c = n1/n2;
            isi(""+c);
        }


    }


Pada method inilah terjadi fungsi rumus, dimana isi dari angka1 dan angka2 di ambil kemudian di lakukan perhitungan. Hasilnya kemudian akan ditampilkan pada TextView angka1. Mengapa ada bersih() dalam method ini, agar sebelum menampilkan hasil, terlebih dahulu TextView di bersihkan dari inputan yang dilakukan pengguna.

Method keenam bersih()

private void bersih() {
        angka1.setText("");
        angka2.setText("");
        operator.setText("");
    }


Sesuai nama method yang saya berikan, fungsi dari method ini adalah membersihkan. fungsi ini akan jalan ketika pengguna menekan tombol c. Dimana TextView akan di kosongkan dan pengguna bisa kembali memasukkan nilai.

Wednesday, November 7, 2018

Cara Mengatasi Flashdisk yang ter-Unallocated


Sesuai dengan judul di atas disini kita akan membahas tentang masalah Flashdisk yang kapasitasnya Unallocated. Dimana hal ini pernah menimpah saya sendiri. Flashdisk yang seharusnya ukuran kapasaitasnya mencapai 4GB tiba-tiba hanya tinggal 896 Kb.



Karena resah dengan hal ini, sayapun mulai untuk menformat FD ini. Dari jenis format NTFS, FAT(default), hingga exFAT sudah saya coba namun hasilnya nihil. Saya sudah merasa putus asa dan menganggap FD ini sudah rusak. Ternyata setelah melihat pada Computer Management, sebanyak 3,90 GB dari kapasitas Flashdisk dalam keadaan Unallocated.



Hal inilah yang menjadi sebab mengapa kapasias yang terbaca hanya 896Kb saja. Kurang lebih arti dari kata "Unallocated" ini adalah tidak di alokasikan, jadi maksudnya sebanyak 3,90 GB ini tidak di apa-apakan atau tidak di alokasikan kedalam flashdisk.

Karena sudah tahu penyebabnya, saya kemudian mencari cara menyembuhkannya. Akhirnya saya menemukan caranya, yaitu seperti berikut :

1. Tekan CTRL + R kemudian ketikkan CMD lalu enter.

2. Pada kotak CMD ketikkan "diskpart", anda kemudian akan melihat dialog CMD yang tadinya nama folder berubah jadi DISKPART



3. Ketikkan lagi "list disk", hal ini untuk melihat dimana posisi flashdisk anda. Ingat flashdisk harus sudah tercolok ke komputer. Jika sudah di enter anda akan melihat seperti pada gambar di bawah. Dalam kasus saya, Flashdisk berada pada Disk 2, saya tahu karena ukuran sizenya yang 4000 MB atau 4GB. Dalam kasus anda mungkin berbeda, ingat baik-baik lokasi disknya.



4. Ketikkan "select disk 2" (disk ini sesuai dengan tempat flashdisk).

5. Jika sudah muncul "Disk 2 is now the selected disk." selanjutnya ketikkan "clean". Ingat jangan sampai salah memilih disk sebab perintah ini bertujuan untuk membersihkan disk.

6. Langkah selanjutnya setelah di clean, ketikkan "create partition primary", ini untuk membuat partisi lagi di dalam FD. Jika sukses silahka ketikkan exit untuk keluar dari 'diskpart'.



7. Lihat Flashdisk sudah kembali seperti semula.



Tuesday, November 6, 2018

Cara Membuat Iklan Adsense Berada di Atas Judul Postingan Blog


Penempatan iklan adsense pada sebuah blog memang sangat mempengaruhi penhasilan adsense itu sendiri. Salah satu penempatan yang sangat strategis ada di atas judul postingan. Ada beberapa hal yang menjadi pertimbangan.

Keuntungan pertama, saat membuka artikel user atau pengunjung akan langsung melihat iklan. Kedua, iklan berpotensi untuk di klik sebab ada kemungkinan user mengklik judul postingan yang secara tidak langsung bisa saja pengunjung salah klik.

Keuntungan lainnya anda tidak perlu memasang kode iklan di setiap postingan, anda cukup memasang satu kali dan ikalan akan tampil di setiap postingan anda. Sebagai contoh anda bisa melihat pada blog CodingRakitan di atas.

Cara Membuat Iklan Adsense Berada di Atas Judul Postingan Blog ini sangat mudah, hal yang harus anda lakukan adalah sebagai berikut.

1. Login ke akun adsense anda

2. Pada menu samping klik menu iklan > Unit Iklan > Unit Iklan Baru




3. Pilih iklan text & gambar pada Iklan Jenis apa yang ingin Anda Buat ?



4. Masukkan nama sesuai keinginan anda kemudian klik simpan dan dapatkan kode.



5. Copy kode yang anda dapatkan kemudian masuk ke alamat ini untuk parse kode adsense tadi.



6. Selanjutnya Copy kode hasil parse tadi.

Lanjut ke langkah pemasangan iklan ke blog anda :


1. Buka blogger.com

2. Klik menu Tema > Edit Html.



3. Cari kode sperti dibawah ini dengan menekan CTRL + F.
<b:if cond='data:post.title'>


4. Nantinya anda akan menemukan 2 kode <b:if cond='data:post.title'>, maka pilihlah yang kedua, lalu pastekan kode dibawah ini tepat di atas kode <b:if cond='data:post.title'>. Ingat tepat di atasnya.



<b:if cond='data:blog.url == data:post.url'>
<div id='iklan' style='width:100%;'>

PASTE IKLAN ADSENSE DISINI

</div>
</b:if>



Jangan lupa ganti kata "PASTE IKLAN ADSENSE DISINI" dengan kode adsense yang sudah di parse tadi di awal.

5. Klik simpan tema dan lihatlah hasilnya anda akan melihat seperti yang ada di Blog ini.



Cara Mengatasi "'com.android.support:support-annotations' in project ':app'. Resolved version for app (26.1.0)" di Android Studio


Permasalahan ini muncul ketika saya yang sudah lama vakum dalam dunia Android Studio, kembali menginstall aplikasi Android Studio versi 3.0. Kejadiannya pas malam, saya mulai membuka aplikasi Android Studio dan membuat project baru.

Sayangnya di layar project saya sudah menunggu peringatan "Execution failed for task':app:preDebugAndroidTestBuild'. > Conflict with dependency 'com.android.support:support-annotations' in project ':app'. Resolved version for app (26.1.0) and test app (27.1.1) differ. See https://d.android.com/r/tools/test-apk-dependency-conflicts.html for details."


Artinya saya kurang tahu, tapi intinya hal ini terjadi sebab di Project Structure tepatnya di Dependencies belum ada "com.android.support:support-annotations". Maka untuk mengatasinya harus menambah dependency ini terlebih dahulu. Perlu anda ketahui ketika menambahkan "com.android.support:support-annotations" laptop saya dalam keadaan konek ke internet menggunakan modem telkomsel tapi kartu indosat heheh :).

Kalau bisa laptop anda hubungkan ke Internet entah wifi atau modem. Setelah itu ikuti petunjuk dibawah :

1. Klik menu File > Project Structure.



2. Klik app > Dependencies > + > Library dependency.



3. Ketikkan "com.android.support:support-annotations" pada kolom pencarian, kemudian select pada kolom dibawah, setelah itu klik ok.



4. Window akan kembali ke "Project Structure" dan lihat sudah ada "com.android.support:support-annotations", selanjutnya klik ok.



5. Tunggu sampai proses syncronisasi grandle selesai.



6. Eror atau permasalahan selesai maka akan tampil seperti gambar di bawah.




Cara Mengatasi "unable to connect to 127.0.0.1:62001: cannot connect to 127.0.0.1:62001:" pada NOX


Permasalahan yang pernah saya hadapi ini mungkin saat ini sedang anda rasakan juga. Ketika hendak mengkoneksikan NOX (emulator android) dengan Android Studio pada step cmd yang muncul adalah tulisan "unable to connect to 127.0.0.1:62001: cannot connect to 127.0.0.1:62001: No connection could be made because the target machine actively refused it. (10061)".

Pada saat itu saya hendak menjalankan aplikasi yang telah di buat di Android Studio yang ada dalam tutoril Membuat Aplikasi Android : Kalukulator Sederhana Menggunakan Android Studio. Karena tidak memiliki HP saya berinisiatif menggunakan aplikasi NOX sebagai emulator. Anda mungkin sudah tahu untuk menghubungkan nox ke Android Studio.
Ketika sampai ke pengkoneksian menggunakan CMD, saya ketikkan "nox_adb.exe connect 127.0.0.1:62001", eeh tahu-tahunya yang muncul tiba-tiba "unable to connect to 127.0.0.1:62001: cannot connect to 127.0.0.1:62001: No connection could be made because the target machine actively refused it. (10061)".

Singkat cerita saya mulai mencari jawabannya ke mbah google dan akhirnya ketemu. Secara garis besar masalah ini dapat diatasi dengan 3 langkah sebagai berikut :


1. Pada CMD ketikkan "nox_adb.exe kill-server" lalu tekan enter.



2. Ketikkan lagi "nox_adb.exe connect 127.0.0.1:62001" lalu tekan enter maka akan muncul :
  • * daemon not running. starting it now on port 5037 *
  • * daemon started successfully *
  • unable to connect to 127.0.0.1:62001: cannot connect to 127.0.0.1:62001: No connection could be made because the target machine actively refused it. (10061)


3. Kemudian ketikkan lagi "nox_adb.exe kill-server" lalu enter, kemudian ketikkan "nox_adb.exe connect 127.0.0.1:5037" lalu enter maka akan muncul :
  • * daemon not running. starting it now on port 5037 *
  • * daemon started successfully *
  • connect to 127.0.0.1:5037


bila sudah muncul hasil seperti di atas maka nox sudah berhasil di koneksikan.

Selesai melakukan hal di atas saya mulai senang karena merasa bahwa permasalahan saya sudah selesai. Ternyata ketika melihat window Select Deployment Target di Android Studio, emulator NOX saya ternyata belum kebaca. Jika anda juga mengalamai hal yang sama silahkan close/matikan Nox terlebih dahulu kemudian hidupkan kembali.



Hasilnya emulator Nox sudah terbaca di Android Studio :) selamat.