Blog Edinofri

Blog pribadi berisikan memory tentang pembelajaran Pemograman Android, Website, Blogger, Life hack, Curhatan dan beberapa artikel tidak jelas. Blog ini lebih fokus di pemograman Android terutama pengembangan aplikasi android menggunakan Android Studio.

27 May 2016
Komentar 0
Kali ini saya akan membahas mengenai Bind View tanpa menggunakan findViewById pada project Android Studio yang sedang kita kerjakan. Kita tahu bahwa untuk mendapatkan dan mengubah text, ukuran, atau menambahkan listener pada komponen yang kita miliki seperti EditText, Textview, Button ataupun komponen-komponen view lainnya.

Pastinya kita harus mengikat komponen yang kita miliki dengan findViewById(R.id.xyz), Belum lagi kita harus mengcasting dia sesuai komponen view nya.
Misalnya seperti EditText
EditText mTxtHello = (EditText)findViewById(R.id.hello);
Pernah disuatu kesempatan saya pun menemukan sebuah trik memperpendek pengikatan komponen yang kita miliki ini dengan Library ButterKnife, belum selesai hanya di BindView saja, ButterKnife ini bisa kita gunakan untuk membuat kode untuk Listener OnClick dan OnLongClick yang akan saya bahas di artikel selanjutnya nanti.

Untuk kali ini saya hanya membahas untuk mengikat komponen-komponen yang kita miliki dengan menggunakan Butterknife baik itu pada Activity (untuk Fragment dan ViewHolder anda bisa ikutin parameter saat melakukan ButterKnife.bind(Object,View) ).

Silahkan buat New Project di Android Studio yang kalian miliki, lalu pada layout activity_main.xml silahkan gantikan seluruh kode yang ada dengan kode saya dibawah ini.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:orientation="vertical">
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/btnKlikSaya"
        android:text="Belajar ButterKnife"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World"
        android:id="@+id/txtHello"/>
</LinearLayout>

Sebelum kita mengikat viewnya dengan ButterKnife, terlebih dahulu kita menaruh depedencies pada gradle app.
Disini saya menggunakan ButterKnife Versi 8.0.1, pada versi ini banyak terjadi perubahan Method dan penambahan-penambahan baru, bila ingin mengintip versi-versi dari Butter Knife silahkan lirik ke sini
Silahkan buat gradle app anda seperti dibawah ini.
apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "android.belajar.butterknifebindview"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
    }
}
apply plugin: 'com.neenbedankt.android-apt'
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.3.0'
    compile 'com.jakewharton:butterknife:8.0.1'
    apt 'com.jakewharton:butterknife-compiler:8.0.1'
}

Setelah itu silahkan sisikan Kode ButterKnife.bind(this); pada OnCreate(Bundle ....){}, selanjutnya anda bisa menaruhkan kode @BindView(R.id.txtHello) TextView txtHello;, sisipkan sebelum  @Override OnCreate(..). 

Selanjutnya kita akan membuat listener OnClick untuk Button yang kita miliki dengan cara menambah kan @OnClick(R.id.btnKlikSaya)dan membuat sebuah prosedure public dengan nama yang anda inginkan. 

Lalu Sisipkan setTitle(txtHello.getText().ToString());, kode yang akhirnya adalah seperti dibawah ini. 
package android.belajar.butterknifebindview;

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

import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;

public class MainActivity extends AppCompatActivity {
    @BindView(R.id.txtHello) TextView txtHello;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
    }
    @OnClick(R.id.btnKlikSaya)
    public void tekanSaya(){
        setTitle(txtHello.getText().toString());
    }
} 
Bila kita tidak menggunakan ButterKnife maka kodenya akan seperti ini.

package android.belajar.butterknifebindview;

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 { 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main); 
        final TextView txtHello = (TextView)findViewById(R.id.txtHello);
        Button btnKlikSaya = (Button)findViewById(R.id.btnKlikSaya);
        btnKlikSaya.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                setTitle(txtHello.getText().toString());
            }
        });
    } 
}

Sekian saja untuk kali ini membahas ButterKnife-nya lain kesempatan akan saya sempatkan untuk membuat artikel selanjutnya mengenai ButterKnife.
16 May 2016
Komentar 3
Selamat terjebak kembali di blog yang tidak sempurna ini, kali ini saya akan sedikit menulis catatan kecil mengenai Cara membuat garis lurus di xml pada Android Studio. Bagi kalian yang mungkin sebagai tim desainer atau yang lagi belajar-belajar membuat aplikasi Android dan ingin membuah sebuah garis lurus ke atas ataupun ke samping di xml Android Studio.

Kalian cukup menambahkan Kode sepenggal ini saja.

Garis lurus ke atas (line vertical)

 <View android:layout_width="match_parent"
                   android:layout_height="2dp"
                   android:background="#bbb"/>
Sedangkan untuk garis lurus ke samping (line horizontal)


 <View android:layout_width="2dp"
                   android:layout_height="match_parent"
                   android:background="#bbb"/>
Untuk ketebalan garis bisa ganti nilai 2dp menjadi ketebalan yang kamu inginkan.
14 May 2016
Komentar 0
Berlanjut dari artikel sebelumnya mengenai Membuka Sublime Text dari Command line windows, pada artikel kali ini saya hanya menambahkan video tutorialnya saja. Mana tahu ada sebagian dari kalian bingung dengan artikel yang hanya berisi tulisan dan lebih memahami jika melihat langsung caranya.



Sekian saja video dari saya bila memiliki kendala silahkan bertanya dikolom komentar blog saja.
13 May 2016
Komentar 0
Hai pengunjung pada kesempatan kali ini saya akan membagikan tips, Cara me-warnai actionbar Chrome saat membuka halaman website atau pun blog milik kita. Pada Google Chrome di mobile app kita bisa melakukan perubahan warna pada actionbar browsernya.

Untuk itu kita hanya perlu menambahkan sebuah meta-tag untuk mengubah warna tersebut sesuai dengan apa yang kita inginkan. Meta-tag ini bernama theme-color bagi kalian yang ingin mengubah warna nya terlebih dulu memilih warna berformat hexadecimal.


Pilih warna

Selanjutnya bila sudah memilih warna anda bisa memasukkan kode warna hexadecimal pada attribute content meta-tag dibawah ini.

<meta content='#E64A19' name='theme-color'/>

Setelah itu, silahkan anda menyisipkannya dibawah tag <head> bila anda menggunakan blog (blogger). Silahkan buka menu "Template" pada bilah samping kanan dashboard blog anda.
Lalu pilih Edit HTML, cari kode <head> sisipkan setelah kode tersebut seperti dibawah ini dan klik Simpan Template. Coba lah membuka halaman web atau blog anda melalui Google Chrome di Android dan lihat hasilnya.

Hasilnya pada browser Google Chrome android.

Terima kasih sudah mengikuti artikel kali ini.
12 May 2016
Komentar 0
Sublime text merupakan text editor yang menurut saya sangat populer dikalangan para Developer terutama untuk para Developer web. Hal ini disebabkan Sublime text memiliki keunggulan dengan tersedianya berbagai package yang membantu dalam saat menyelesaikan pekerjaan.

Namun bagi kalian yang sudah mengenal Sublime text pasti nya berkeinginan agar text editor itu bisa di buka melalui cmd (command line). Oleh sebab itu saya ingin berbagi tips, sekalian juga sebagai pengingat bagi saya sendiri, supaya Sublime bisa di panggil melalui Command line.

Pertama yang harus dilakukan adalah mengetahui folder tempat kalian menginstall Sublime text kalian. Misal kan saja seperti milik saya ini yang menggunakan Sublime text 3 yang ber-alamatkan seperti dibawah ini.

C:\Program Files\Sublime Text 3
Selanjutnya kalian bisa menambahkan alamat tersebut di environment variables PATH seperti yang saya lakukan dibawah ini.

Setelah mengklik ok, kalian bisa mencoba membuka command line lalu memanggil Sublime text dengan perintah sublime_text.


Bila kalian sudah bisa memanggil Sublime text yang kalian miliki mungkin ada keinginan untuk mempersingkat pemanggilan Sublime text di Command line, yang awal nya adalah sublime_text menjadi (.misal) editorku.

Buka alamat tempat folder Sublime text yang kita miliki tadi, selanjutnya duplikasi file yang bernama Sublime_text.exe dan Rename menjadi editorku.exe.

Setelah itu anda bisa memanggil Sublime text tersebut lewat Command line dengan menuliskan perintah editorku.

Sekian untuk sesi bagi-bagi tips ini, di lain waktu saya akan menambahkan tips yang lain lagi.

08 May 2016
Komentar 0
Hai selamat siang pengunjung yang terdampar, kali ini saya hanya berbagi tips agar alamat blogspot kita tetap memakai domain com bukan  co(titik)id. Ada sedikit tahapan untuk mengubah alamat domain tersebut.

  1. Hal yang perlu dilakukan pertama adalah masuk ke halaman dasboard blogger.com kalian. 
    Tips agar alamat tetap blogspot.com
  2. Selanjutnya buka "Tata Letak" dan Tambahkan sebuah Gadget. 
    Tambah Gadget HTML/Javascript
  3. Selanjutnya Tambahkan HTML/Javascript lalu sisipkan kode Javascript dibawah ini.
    // Transfer domain .blogspot.com ke .blogspot.co.id
    url_blog = document.location.href;
    if (!url_blog.match(/\.blogspot\.com/)) {
        url_blog = url_blog.replace(/\.blogspot\..*?\//, ".blogspot.com/ncr/");
        window.location.replace(url_blog);
    }
  4. Selanjutnya silahkan anda simpan dan lihat hasilnya.

Sampai saat ini kita hanya bisa memanipulasi alamat blogspot.com ke blogspot.co.id dengan javascript saja, belum ada fitur dari pihak blogger untuk tetap memakai blogspot.com. Sekian dari saya untuk kali ini terima kasih atas kunjungannya.

07 May 2016
Komentar 1
Sebenarnya ini hanya sebagai catatan kecil saya saja agar nantinya bila  saya membutuhkannya. Saya dapat melihat kembali catatan saya mengenai Menampilkan semua tanggal dan waktu pada setiap Post.

Pada Blogger biasanya template menggunakan Tag berikut untuk menampilkan Tanggal dan waktu pada Halaman utama pada setiap Post.

<data:post.dateHeader/>
Anda bisa mengecheck sendiri pada template yang anda miliki. Kenapa saya membuat catatan kecil untuk menampilkan Tanggal dan waktu ini?
Hal itu disebabkan Tag XML diatas memiliki 1 (satu) kekurangan menurut saya, yaitu :
Bila dalam sehari mengepost 2 (dua) artikel pada tanggal yang sama, salah satu artikel akan kehilangan tanggalnya dan hanya nampil pada artikel yang terakhir.
Hal ini sanggat mengerikan bila kita membuat template untuk Portal berita, karena setiap artikel berita tanggal dan waktu sanggatlah penting. Banyak pengembang template lebih memilih membaca RSS XML untuk menampilkan secara lebih detail sebuah post dan tanggal waktunya dibaca melalui Javascript yang mana menurut saya memberatkan optimasi kecepatan sebuah Blog.

Tag tersebut juga tidak  main-main, bila kita menggunakan template gratisan dari Blogger atau hasil dari Download mentah-mentah dari penyedia template gratis. Banyak yang masih bermasalah, misalkan saja begini.
Bila saya mengpostingkan artikel dalam sehari ada 2 atau lebih artikel, mereka akan menjadi satu bungkusan karena mereka memiliki tanggal yang sama.
Oleh karena itu ada seorang sahabat Blogger saya yang memiliki permasalahan yang diakibatkan oleh Tag <data:post.dateHeader/> tersebut.

Disini saya tidak menjelaskan bagaimana memisahkan 2 (dua) atau lebih postingan dalam satu tanggal yang sama dengan bungkusan yang berbeda. Disini saya lebih untuk menampilkan tanggal pada tiap post tanpa harus kehilangan tanggal pada artikel sebelumnya (bila dipost pada tanggal yang sama).

Disini saya membaca artikel dari sebuah web, disana dia menuntun saya untuk menggunakan Tag xml timestamp.

<data:post.timestamp/>

Bila kalian menggunakan Tag tersebut untuk menampilkan tanggal jangan lupa mengganti Format Date and Time pada pengaturan blog.



Terima kasih, sudah kejebak diartikel catatan kecil saya ini, sampai bertemu kembali.
Komentar 0
Selamat datang di blog saya yang agak berantakan ini, kali ini saya mencoba menyempatkan mengetik kan artikel tentang Membuat Kalkulator sederhana di Android Studio. Di artikel kali ini saya akan sedikit menambah beberapa widget baru lagi dalam proyek yang akan kita buat.

Sebelum itu pastikan kalian sudah menginstal Android Studio pada Laptop / Komputer kalian masing-masing. Setelah itu kita akan membuat projek baru.

Buka Android Studio kalian, pilih "Start a new Android Studio project".


Lalu isikan sesuai kriteria dibawah ini.

Application name    : Kalkulator
Company domain      : belajar.android
Package name        : belajar.android.kalkulator

Project location    : -pilih folder untuk menyimpan project-

Selanjutnya silahkan ikuti langkah seperti yang ada di Artikel : Hello world di Android Studio.
Saya anggap kalian sudah siap dengan urusan Gradle-nya, selanjutnya kita masuk ke file activity_main.xml dan tukar kode yang ada pada file tersebut dengan code dibawah berikut.
 
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="android.belajar.kalkulator.MainActivity"
    android:orientation="vertical">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Bil 1"
        android:id="@+id/txtBil1"/>
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Bil 2"
        android:id="@+id/txtBil2"/>
    <RadioGroup
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/rgHitung">
        <RadioButton
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Kali (x)"
            android:id="@+id/rbKali"/>
        <RadioButton
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Bagi (÷)"
            android:id="@+id/rbBagi"/>
        <RadioButton
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Tambah (+)"
            android:id="@+id/rbTambah"/>
        <RadioButton
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Kurang (-)"
            android:id="@+id/rbKurang"/>
    </RadioGroup>
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/btnHitung"
        android:text="Hitung"/>
    <TextView
        android:layout_gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="~hasil~"
        android:id="@+id/lblHasil"
        />
</LinearLayout>
Setelah itu klik Design tab dan lihat hasil desain dari kode yang baru saja dimasukkan.


Setelah itu kita beranjak dari urusan mendesain dan sekarang kita akan menuju ke file MainActivity.java untuk membuat inisialisasi pada widget yang akan kita gunakan.

1. Button
2. EditText
3. RadioButton
4. RadioGrup
5. TextView
Untuk menginisialisasikan tidak berbeda dengan yang ada pada artikel : Hello world di Android Studio, hanya saja kita kedatangan widget baru seperti RadioButton dan RadioGrup.

Hanya ini saja yang akan kita inisialisasikan, bisa kalian lihat pada kode dibawah ini.

package android.belajar.kalkulator;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;
/*
*       Author  : Edinofri karizal caniago
*       Url Blog: http://edinofri.blogspot.com
*
* */
public class MainActivity extends AppCompatActivity {

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

        // Deklarasi Widget yang kita miliki dahulu sebelum digunakan.
        Button btnHitung = (Button)findViewById(R.id.btnHitung);
        final TextView lblHasil = (TextView)findViewById(R.id.lblHasil);
        final EditText txtBil1 = (EditText)findViewById(R.id.txtBil1);
        final EditText txtBil2 = (EditText)findViewById(R.id.txtBil2);
        final RadioGroup rgHitung = (RadioGroup)findViewById(R.id.rgHitung);
    }
}
Setelah itu kita akan membuat Listener untuk Button yang kita miliki.
package android.belajar.kalkulator;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;
/*
*       Author  : Edinofri karizal caniago
*       Url Blog: http://edinofri.blogspot.com
*
* */
public class MainActivity extends AppCompatActivity {

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

        // Deklarasi Widget yang kita miliki dahulu sebelum digunakan.
        Button btnHitung = (Button)findViewById(R.id.btnHitung);
        final TextView lblHasil = (TextView)findViewById(R.id.lblHasil);
        final EditText txtBil1 = (EditText)findViewById(R.id.txtBil1);
        final EditText txtBil2 = (EditText)findViewById(R.id.txtBil2);
        final RadioGroup rgHitung = (RadioGroup)findViewById(R.id.rgHitung);

         // Listener OnClick untuk menghitung bilangan
        btnHitung.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

            }
        }
    }
}
Setelah itu kita akan mengecheck inputan pada EditText adalah angka, bila bukan angka kita akan tampilkan Toast.

package android.belajar.kalkulator;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;
/*
*       Author  : Edinofri karizal caniago
*       Url Blog: http://edinofri.blogspot.com
*
* */
public class MainActivity extends AppCompatActivity {

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

        // Deklarasi Widget yang kita miliki dahulu sebelum digunakan.
        Button btnHitung = (Button)findViewById(R.id.btnHitung);
        final TextView lblHasil = (TextView)findViewById(R.id.lblHasil);
        final EditText txtBil1 = (EditText)findViewById(R.id.txtBil1);
        final EditText txtBil2 = (EditText)findViewById(R.id.txtBil2);
        final RadioGroup rgHitung = (RadioGroup)findViewById(R.id.rgHitung);

         // Listener OnClick untuk menghitung bilangan
        btnHitung.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // Check Bilangan adalah angka
                if(isNumeric(txtBil1.getText().toString()) && isNumeric(txtBil2.getText().toString())){
                    double bil1= Double.parseDouble(txtBil1.getText().toString());
                    double bil2= Double.parseDouble(txtBil2.getText().toString());
                    
                }else{
                    Toast.makeText(getApplicationContext(),"Tidak boleh kosong dan hanya angka",Toast.LENGTH_SHORT).show();
                }
            }
        }
    }

    public static boolean isNumeric(String str){
        return str.matches("-?\\d+(\\.\\d+)?");  //match a number with optional '-' and decimal.
    }
}
Baru setelah itu kita akan melakukan pengecheckan pada RadioGrup untuk mendapatkan ID RadioButton mana yang sedang tercheck dengan method .getCheckedRadioButtonId.

package android.belajar.kalkulator;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;
/*
*       Author  : Edinofri karizal caniago
*       Url Blog: http://edinofri.blogspot.com
*
* */
public class MainActivity extends AppCompatActivity {

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

        // Deklarasi Widget yang kita miliki dahulu sebelum digunakan.
        Button btnHitung = (Button)findViewById(R.id.btnHitung);
        final TextView lblHasil = (TextView)findViewById(R.id.lblHasil);
        final EditText txtBil1 = (EditText)findViewById(R.id.txtBil1);
        final EditText txtBil2 = (EditText)findViewById(R.id.txtBil2);
        final RadioGroup rgHitung = (RadioGroup)findViewById(R.id.rgHitung);

         // Listener OnClick untuk menghitung bilangan
        btnHitung.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // Check Bilangan adalah angka
                if(isNumeric(txtBil1.getText().toString()) && isNumeric(txtBil2.getText().toString())){
                    double bil1= Double.parseDouble(txtBil1.getText().toString());
                    double bil2= Double.parseDouble(txtBil2.getText().toString());
                    // Switcher untuk memilih pilihan Operator perhitungan.
                    switch (rgHitung.getCheckedRadioButtonId()){
                        case R.id.rbTambah:
                            lblHasil.setText("Hasil = "+(bil1+bil2));
                            break;
                        case R.id.rbBagi:
                            lblHasil.setText("Hasil = "+(bil1/bil2));
                            break;
                        case R.id.rbKurang:
                            lblHasil.setText("Hasil = "+(bil1-bil2));
                            break;
                        case R.id.rbKali:
                            lblHasil.setText("Hasil = "+(bil1*bil2));
                            break;
                    }
                }else{
                    Toast.makeText(getApplicationContext(),"Tidak boleh kosong dan hanya angka",Toast.LENGTH_SHORT).show();
                }
            }
        }
    }

    public static boolean isNumeric(String str){
        return str.matches("-?\\d+(\\.\\d+)?");  //match a number with optional '-' and decimal.
    }
}

Kemudian kalian bisa melakukan mencoba menjalankan hasil pekerjaan kalian di emulator ataupun di device Android langsung.

Awal aplikasi dijalankan

Menghitung operasi pekalian

Bila Edittext dalam keadaan tidak berisi atau bukan huruf.

Untuk file lengkapnya silahkan download dibawah ini.

Menuju Github  
Komentar 0
Hai pengunjung, terima kasih sudah mampir di blog milik saya ini. Kali ini saya ingin berbagi permasalahan yang pernah saya hadapi dan baru-baru saja solusinya saya dapatkan, yaitu memperbaiki Font yang buruk pada windows.

Pasti kalian pernah awal-awal beli laptop, kalian tidak memiliki masalah pada laptop tersebut (lain lagi apabila itu laptop bekas ya ha ha ha). Namun bila kalian sudah ataupun pernah meng-instal ulang Windows, pasti ada beberapa masalah yang timbul salah satu nya yaitu pada Font yang peng-render-an nya sangat buruk dilayar.

Disini saya sedikit memberi tips yang saya pikir masalahnya ada pada browser saja, tetapi pada beberapa program di windows juga begitu.

Untuk hal itu kalian harus mengikuti langkah-langkah dibawah ini untuk memperbaiki font agar lebih terlihat Smooth pada windows kalian.

Pertama


Buka Run ketikkan fonts lalu klik Ok.



Kemudian klik Adjust ClearType text pada sisi kanan jendela yang terbuka.


Kemudian akan terbuka jendela baru seperti dibawah ini.


Contreng Turn on ClearType nya lalu klik Next, lalu pilih kotak dengan font yang menurut kalian paling smooth, setelah melewati 4 tahap pemilihan akan tampil seperti dibawah ini.


Setelah itu silahkan klik Finish lalu silahkan Restart Windows kalian untuk melihat efek dari apa yang barusan kita lakukan diatas.

Terima kasih itu saja untuk kali ini, sampai juga nanti lagi.

27 April 2016
Komentar 0
Hai selamat terjebak kembali di blog pribadi saya, kali ini saya menulis sebagai pengingat untuk diri saya sendiri dan juga untuk kalian yang terjebak di blog ini. Pasti kalian pernah bukan berfikir begini.
Pengennya sih alamat localhost tempat aku ngerjain website A , bisa langsung jadi domain jadi gak ribet-ribet amat. ( kayak gambar dibawah ini).

Semua itu mungkin disebabkan pengalamatan  path ataupun folder saat mengembangkan website di localhost menjadi seperti ini.

Custom domain di Xampp

Saya pengennya sih gini.


Okeh jelas bukan? saya mengkustomasi lokalhostnya menjadi domain suka-suka saya ha ha ha.
Pengen tahu caranya? Scroll kebawah lagi yuk.


Pertama

Pastikan anda memiliki Xampp di Sistem operasi Windows kalian, bila belum punya silahkan instal dahulu.
( Download Xampp ).

Kedua

Pastikan anda sudah menginstal Xampp dan membuat sebuah folder didalam htdocs Xamppnya. Untuk alamat default biasanya "X:\xampp\htdocs\". X adalah Drive kalian misanya ditempat saya adalah "C:\xampp\htdocs\".

Ketiga

Buat lah sebuah "folder baru" untuk di jadikan folder public website kita nanti. Misalnya begini (seperti gambar dibawah) , Saya membuat sebuah folder bernama webku yang nantinya akan diberi nama domain www.webku.com.


Keempat

Pastikan kalian memiliki sebuah file index.php atau index.html didalam folder webku untuk dijadikan halaman index website , kalau bingung-bingung mau di isi apa didalam file index itu , isikan aja nama-nama orang yang pernah kamu pinjam uangnya, ya itung-itung biar kamu ingat kalau kamu punya utang dan pas sudah tak bernyawa setidaknya berkurang lah yang akan kamu pertanggung jawabkan (tapi bayar dulu utangnya yo ha ha !!!).

Kelima


Buka Run (Windows+R) masukkan
%windir%\system32\drivers\etc\
Selanjutnya copy file "hosts" ke "D:\ (untuk sementara) . Lalu bukalah file "hosts" tersebut dengan Notepad ataupun Text-Editor lainnya.



Tambahkan lah tulisan dibawah ini pada baris terakhir , kemudian Save.
127.0.0.1 www.webku.com

Setelah meng-save file , pindahkan file hosts tersebut ke tempat semulanya, dengan membuka Run dan masukkan alamat ini di Run.
%windir%\system32\drivers\etc\
Klik kanan , lalu pilih Paste.


Keenam


Buka Folder tempat penginstalan Xampp tadi 
X:\xampp\apache\conf\extra\
Lalu tambahkan teks berikut pada baris terakhir file httpd-vhosts.conf  jangan lupa disave setelah menambahkannya pada baris terakhir.

...
...
...
<VirtualHost *:80>
ServerAdmin email@saya.com
DocumentRoot "C:\xampp\htdocs\webku"
ServerName www.webku.com
ServerAlias www.webku.com
ErrorLog logs/www.webku.com.log
CustomLog logs/www.webku.com.log combined
<Directory "C:\xampp\htdocs\webku">
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
    Require all granted
</Directory>
</VirtualHost>

Silahkan Restart (Stop > Start) Apache pada Xampp anda dan mencoba membuka www.webku.com bila berhasil berarti Kita sudah berhasil membuat domain pada Virtual Host Xampp kita.

Terima kasih - Jika ada yang ingin ditanyakan silahkan tuliskan dikolom komentar.
08 April 2016
Komentar 0
Untuk memulai pembahasan Menu Item di ActionBar. Pertama, kita harus membuat project baru pada Android Studio yang kita miliki.Bila belum memiliki silahkan lakukan installasi dahulu pada Laptop atau Komputer yang anda gunakan.

Saya anggap kalian sudah memiliki Android studio , lalu kita akan membuat project kita dahulu agar kita bisa main-main dengan Menu Item nantinya.


Buat Nama Project dan Package domain kita

Pilih Template (disini kita gunakan Empty Activity dahulu)

Untuk Bagian ini kita Finishkan saja.

Disini saya memilih Template Empty Activity agar nantinya kita akan membuat menu item dari awal , karena jika memilih Template yang lain biasanya sudah ditambahkan Menu Item didalam Activity nya.

Setelah kita klik "finish" akan tampil 2 buah file "activity_main.xml" dan "MainActivity.java" , nah disitu masih kosong bila kita menjalankanya didalam emulator masih tampak kosong saja , hanya ada sebuah Text bertulisan "Hello World".

MainActivity.java

activity_main.xml
Hasil saat kita menjalankan hasil pembuatan project baru tadi.

Tampilan project yang masih kosong

Oke mulai dari sini kita akan membuat sebuah file .xml untuk Menu Item  kita nanti. Namun pertama-tama kita harus fokuskan pandangan kita kebagian sisi kiri dari si Android Studio. Disitu terdapat sebuah hierarchy dari project kita. Dibagian ini harus dipahami betul.

Bagian sisi kiri Android Studio

Saya akan menjelaskan sedikit yang saya tahu dari yang ada dibagian ini.
  • manifests : didalam folder itu terdapat file AndroidManifest.xml , disini kita bisa melakukan Request Permission seperti meminta akses membaca local Storage, mengakses Internet , sensor GPS dan banyak lagi Request Permission lainnya untuk disebutkan satu persatu. Kemudian di AndroidManifest.xml kita bisa mengatur Activity mana yang akan kita jadikan Launcher untuk dijalankan pertama kali saat Aplikasi dijalankan.
  • java : didalam folder ini kita akan melakukan proses dinamis dan logika berfikir untuk Aplikasi kita nanti dengan menguasai Java dan OOP (Object Oriented Programming) pastinya kita akan lebih mudah memahami kode-kode yang ada di dokumentasi Android Developer.
  • res : didalam folder ini kita bisa menyisipkan asset kita mulai dari gambar , vector (SVG) , format suara seperti mp3 , layout dan values.
  • gradle scripts : didalam sini ada 1 file penting bila kita nantinya akan menggunakan library seperti Material Design , RecycleView , Google Play Service dan lainnya.

Sepertinya terlalu panjang lebar saya menjelas , jika penjelasan saya terdapat kesalahan saya minta maaf karena kita sama-sama belajar disini.


Oke setelah penjelasan mengenai diatas kita tahu dimana kita harus membuat file Menu Item. Buka folder "res/" . Bila kita memakai template Empty Acitivity kita tidak menui folder "res/menu/" karena itu saya memilih Empty Acitivity untuk pembelajaran kita.

Buat 1 Menu Item baru dengan cara Klik kanan pada folder "res/" lalu new lalu pilih Android Resource File akan keluar jendela baru.


Isikan file namenya dan jangan lupa Resource Type nya dipilih : "Menu" , kemudian klik Ok.
Kemudian buat 1 Item didalam menu_utama.xml 

<menu 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">

    <item android:icon="@mipmap/ic_launcher" 
        android:id="@+id/menuHello" 
        android:title="Menu Hello" 
        app:showasaction="always" 
        tools:ignore="AppCompatResource"></item>

</menu>

Kemudian pada MainActivity.java buat menjadi seperti code dibawah ini


package com.blogspot.edinofri.menuitem;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()){
            case R.id.menuHello:
                Toast.makeText(this,"edinofri.blogspot.com",Toast.LENGTH_SHORT).show();
                break;
        }
        return true;
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_utama, menu);
        return true;
    }
}

Setelah itu saat kita jalankan akan menghasilkan output sebagai berikut.

Nah diawal tadi kita tidak memiliki menu bergambar android di ujung kanan atas. Sekarang setelah menambahkan Menu Item kita bisa melihat menu Item ber-icon Android muncul.

Oke untuk hari ini itu saja, mohon maaf jika ada kesalahan saat penyampaian materi.
--------------
Edinofri karizal caniago
Medan , 8 April 2016

31 March 2016
Komentar 0
Selamat datang di blog saya yang sederhana ini, dipostingan ini kita akan belajar membuat "Hello world" di Android Studio. Disini kita akan menampilkan kalimat "Hello world" pada beberapa dasar Widget pada Android.

Sebelum itu pastikan kalian sudah menginstal Android Studio pada Laptop / Komputer kalian masing-masing. Setelah itu kita akan membuat projek baru.

Buka Android Studio kalian, pilih "Start a new Android Studio project".



Lalu isikan sesuai kriteria dibawah ini.
Application name    : HelloWorld
Company domain      : belajar.android
Package name        : belajar.android.helloworld

Project location    : -pilih folder untuk menyimpan project-


Lalu pilih Next, pilih minimum SDK "API 15 (IceCreamSandwich), lalu klik Next lagi.


Pada bagian ini silahkan pilih "Empty Activity".


Setelah itu klik Next lalu klik Finish, silahkan tunggu beberapa menit setelah Gradle Selesai.

Bila Gradle telah selesai anda bisa melihat ada 2 (dua) file yang terbuka, yaitu activity_main.xml dan MainActivity.java. Kita akan melakukan desain tampilan dasar dahulu, silahkan memilih tab untuk file activity_main.xml. Terdapat 2 (dua) tab dibagian bawah setelah membuka file activity_main.xml yaitu Design dan Text.

Design tab dengan memilih itu kita dapat melakukan Drag and Drop langsung pada Layout yang kita miliki dan melihat secara langsung design kita.

Text tab dengan memilih itu kita dapat membuat properties lebih detail pada Element-element di layout yang kita miliki. 
Untuk kali ini kita langsung saja bermain di Text tab agar nantinya kalian bisa lebih terbiasa melakukan design langsung melalui kode xml pada layout kita.

Tukar kode pada activity_main.xml anda dengan kode dibawah ini.


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity"
    android:orientation="vertical">
    <TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Belajar Dasar"
    android:id="@+id/lblHelloWorld"/>
   <EditText
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:hint="Belajar Dasar"
       android:id="@+id/txtHelloWorldInput"/> 
    <Button
        android:layout_gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text='Tampilkan \"Hello World\"'
        android:id="@+id/btnHelloWorld"
        />
    <Button
        android:layout_gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text='Tampilkan \"Sesuai Inputan\"'
        android:id="@+id/btnShowInput"/>
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Panggil Toast"
        android:id="@+id/btnShowToast"/>
</LinearLayout>


Setelah itu coba pilih Design tab dan lihat hasil dari kode diatas.


Setelah itu kita akan masuk ke file MainActivity.java, pada file ini kita akan bermain pada :
1. setText() pada TextView
2. Listener onClick pada Button
3. Menampilkan Toast

Setelah itu saya akan mengdeklarasi widget-widget yang saya pakai seperti Button, Edittext, Textview didalam method onCreate(...).

package android.belajar.helloworld;

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

public class MainActivity extends AppCompatActivity {

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

        // Deklarasi Widget yang kita miliki dahulu sebelum digunakan.
        Button btnHelloWorld = (Button)findViewById(R.id.btnHelloWorld);
        Button btnShowInput = (Button)findViewById(R.id.btnShowInput);
        Button btnShowToast = (Button)findViewById(R.id.btnShowToast);
        EditText txtHelloWorldInput = (EditText)findViewById(R.id.txtHelloWorldInput);
        TextView lblHelloWorld = (TextView)findViewById(R.id.lblHelloWorld);
    }
}


Lalu kita akan membuat Listener OnClick pada Button dan file MainActivity.java terakhir kita akan  berisikan seperti dibawah ini.


package android.belajar.helloworld;

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

public class MainActivity extends AppCompatActivity {

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

        // Deklarasi Widget yang kita miliki dahulu sebelum digunakan.
        Button btnHelloWorld = (Button)findViewById(R.id.btnHelloWorld);
        Button btnShowInput = (Button)findViewById(R.id.btnShowInput);
        Button btnShowToast = (Button)findViewById(R.id.btnShowToast);
        final EditText txtHelloWorldInput = (EditText)findViewById(R.id.txtHelloWorldInput);
        final TextView lblHelloWorld = (TextView)findViewById(R.id.lblHelloWorld);
        
        // Tampilkan Hello World di TextView
        btnHelloWorld.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                lblHelloWorld.setText("Hello World - edinofri");
            }
        });
        
        // Tampilan Inputan dari EditText ke TextView
        btnShowInput.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                lblHelloWorld.setText(txtHelloWorldInput.getText().toString());
            }
        });
        
        // Tampilan Toast
        btnShowToast.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(getApplicationContext(), "Hello World -  edinofri", Toast.LENGTH_SHORT).show();
            }
        });
    }
}

Setelah itu silahkan kalian mencoba menjalankan nya pada Emulator atau langsung pada device Android kalian. Maka akan kita dapatkan hasil seperti dibawah ini.
Sebelum di klik

Ketika mengklik Tombol Tampilkan "Hello World"

Ketika mengklik Tombol Tampilkan "Sesuai Inputan"

Ketika mengklik Tombol Panggil Toast


Untuk file lengkapnya silahkan download dibawah ini.

Menuju Github
06 March 2016
Komentar 0
Alhamdulillah, akhirnya saya dapat menyelesaikan Tema (Template) blog pada hari ini juga. Walaupun belum seluruhnya selesai masih banyak lagi yang belum Aku kelarin. Namun pemirsah, dengan Tema blog  yang sekarang ini bisa ku katakan sebagai salah satu hasil kurang kerjaan atau pun hasil semangat di tahun 2016 ini.

2015 menjelang 2016 sempat mengganti tema juga namun bukan hasil karya jerih sendiri, kurang puas rasanya untuk memakainya dan lagi, ada seekor... hmm bukan seekor ... lebih tepatnya sebijik kuaci yang bilang tema itu mirip dengan tema biasa dari salah satu Situs yang menyediakan blog juga. Biasa si bijik kuaci sering nyebutnya Thumblr. Buat pembaca, kalau kalian penasaran "Siapa itu bijik kuaci" ~ . Kalian bisa membayangkan bagaimana ciri-ciri kuaci dan cara memakan kuaci, Kira-kira begitulah bentuknya.

Skip skip bahas si bijik kuaci, lanjut ~ kenapa sih aku antusias banget ngebuat Tema untuk blog ini ? Secara ya kan kalau kita mau desain mentah-mentah tema yang kebayang rasanya kita bakalan ribet . Apalagi kalau mau desain dari awal, mulai dari memikirkan isi blog, bentuk blog, font blog sampek sampek rambut dikepala rontok semua.

Berawal dari desain iseng-iseng di HTML (Hyper Text Markup Language) dengan memadukan sedikit CSS (Cascading Style Sheet) akhirnya aku bisa mencicil sampai jadi begini, kalian bisa lihat desain awal waktu masih cuma HTML dan CSS saja.


Gampang sih sebenarnya kalau mau dijadiin tema blog, cuma untuk menjadikan dia menjadi tema blog kita harus mengubah dia kedalam format XML (Extensible Markup Language) dan butuh beberapa elemen baru lagi.

Kalau kalian ingin belajar membuat tema blog sendiri khususnya blogger , kalian bisa mempelajari dasar-dasar Html dan Css . Untuk Css perdalami tentang Selector agar nanti bisa melakukan style pada elemen-elemen tertentu.

Untuk kedepannya blog ini akan membahas tentang Curcol, Programing. Programing bisa itu Web : seperti belajar membuat Tema blog sendiri, Vb .Net : paling kita akan membuat sistem kecil-kecilan dan Pengembangan aplikasi Android. Pastinya semua itu dilakukan secara bertahap biar aku nya tidak terbebani ha ha ha.

Cukup sampai disini saja curcol hari ini ~ Bhaay semua

Edinofri Karizal Caniago
Medan - Minggu, 6 Maret 2016 10:09