Sunday, June 18, 2017

Realm Example with Maps Picker

Bismillah
Pada kesempatan kali ini aku akan membuat aplikasi berbasis CRUD menggunakan database REALM, sebelum membuat projek kita harus tahu apa itu realm.

realm sendiri adalah jenis database yang secara langsung akan menyimpan data ke dalam storage device. Realm adalah pengganti sejenis database store mirip sqllite. Dari segi kecepatan dibanding database ORM lainnya realm lebih unggul.

Implementasi ke dalam project


  • LAYOUT
1. conten_main tambahkan ListView
<ListView    android:id="@+id/lv"    android:layout_width="match_parent"
android:layout_height="wrap_content"></ListView> 
2. buat layout xml baru dengan nama edit_mahasiswa, kemudian pada layoutnya tambahkan beberapa komponen EditText, dan Button 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="@color/colorPrimary">

    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:orientation="vertical"        android:padding="16dp">

        <TextView            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:fontFamily="sans-serif-condensed"            android:gravity="center"            android:text="TAMBAH MAHASISWA"            android:textColor="#fff" />

        <EditText            android:id="@+id/ednama"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:layout_marginTop="5dp"            android:hint="Nama"            android:textColor="#fff"            android:textColorHint="#fff" />

        <EditText            android:id="@+id/edalamat"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:layout_marginTop="2dp"            android:hint="Alamat"            android:textColor="#fff"            android:textColorHint="#fff" />

        <Button            android:id="@+id/btnEdit"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:layout_marginTop="3dp"            android:text="Edit" />

        <Button            android:id="@+id/btnHapus"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:layout_marginTop="3dp"            android:text="Hapus" />
    </LinearLayout>
</RelativeLayout>
4. Selanjutnya untuk layout insert_mahasiswa 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="@color/colorAccent"    android:orientation="vertical">

    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:orientation="vertical"        android:padding="16dp">

        <TextView            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:fontFamily="sans-serif-condensed"            android:gravity="center"            android:text="TAMBAH MAHASISWA"            android:textColor="#fff" />

        <EditText            android:id="@+id/txtnama"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:layout_marginTop="5dp"            android:hint="Nama"            android:textColor="#fff"            android:textColorHint="#fff" />

        <EditText            android:id="@+id/txtalamat"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:layout_marginTop="2dp"            android:hint="Alamat"            android:textColor="#fff"            android:textColorHint="#fff" />
        <Button            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:id="@+id/btnCari"            android:text="Cari Alamat"/>

        <Button            android:id="@+id/btnTambah"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:layout_marginTop="3dp"            android:text="Tambah" />
    </LinearLayout>

</RelativeLayout>
5. Buat xml layout untuk membuat menampilkan isi dari lisview dengan cara menambahaan xml seperti berikut 
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical">

    <TextView        android:id="@+id/txttnama"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="Aji" />

    <TextView        android:id="@+id/txttalamat"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="Kendal" />
</LinearLayout>

1. Buat sebuah project android studio, kemudin saat memilih activity pastikan untuk memilih basic activity, karena kita akan menggunakan fitur bawaan dari actvity tersesbut, yakni menggunakan floating acation button
2. Menambahkan dependency
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'    })
    compile 'com.android.support:appcompat-v7:24.2.1'    compile 'com.android.support:design:24.2.1'    //untuk library realm    compile 'io.realm:realm-android:0.87.2'    //untuk library maps    compile 'com.google.android.gms:play-services-maps:9.6.0'    compile 'com.google.android.gms:play-services:9.6.0'    compile 'com.android.support:support-v4:25.2.0'    testCompile 'junit:junit:4.12'
}
apply plugin: 'com.google.gms.google-services'

3.  Kemudian buat class BaseApp, untuk menbuat konfigurasi default dengan mengextend ke Application
package imastudio.realm;
/** * Created by Taufiq */public class MahasiswaModel {

    int idMahasiswa;
    String namaMahasiswa, alamatMahasiswa;

    public int getIdMahasiswa() {
        return idMahasiswa;
    }

    public void setIdMahasiswa(int idMahasiswa) {
        this.idMahasiswa = idMahasiswa;
    }

    public String getNamaMahasiswa() {
        return namaMahasiswa;
    }

    public void setNamaMahasiswa(String namaMahasiswa) {
        this.namaMahasiswa = namaMahasiswa;
    }

    public String getAlamatMahasiswa() {
        return alamatMahasiswa;
    }

    public void setAlamatMahasiswa(String alamatMahasiswa) {
        this.alamatMahasiswa = alamatMahasiswa;
    }

    /*konstruktor unutk berinteraksi dengan class ini    serta menambahkan data ke dalam class ini*/    public MahasiswaModel(int idMahasiswa, String namaMahasiswa, String alamatMahasiswa) {
        this.idMahasiswa = idMahasiswa;
        this.namaMahasiswa = namaMahasiswa;
        this.alamatMahasiswa = alamatMahasiswa;
    }
}
4. Pada manifest tambahkan
 <application    android:name=".BaseApp"    android:allowBackup="true"    android:icon="@mipmap/ic_launcher"    android:label="@string/app_name"    android:supportsRtl="true"
android:theme="@style/AppTheme"> 
5. Membuat kelas MahasiswaModel, fungsinya unutk melempar dan menagkan paramenter dari masing-masing data yang di store
public class MahasiswaModel {

    int idMahasiswa;
    String namaMahasiswa, alamatMahasiswa;

    public int getIdMahasiswa() {
        return idMahasiswa;
    }

    public void setIdMahasiswa(int idMahasiswa) {
        this.idMahasiswa = idMahasiswa;
    }

    public String getNamaMahasiswa() {
        return namaMahasiswa;
    }

    public void setNamaMahasiswa(String namaMahasiswa) {
        this.namaMahasiswa = namaMahasiswa;
    }

    public String getAlamatMahasiswa() {
        return alamatMahasiswa;
    }

    public void setAlamatMahasiswa(String alamatMahasiswa) {
        this.alamatMahasiswa = alamatMahasiswa;
    }

    /*konstruktor unutk berinteraksi dengan class ini    serta menambahkan data ke dalam class ini*/    public MahasiswaModel(int idMahasiswa, String namaMahasiswa, String alamatMahasiswa) {
        this.idMahasiswa = idMahasiswa;
        this.namaMahasiswa = namaMahasiswa;
        this.alamatMahasiswa = alamatMahasiswa;
    }
}
 6. Buat kelas mahasiswa
import io.realm.Realm;
import io.realm.RealmObject;
import io.realm.annotations.PrimaryKey;
/** * Created by Taufiq */public class Mahasiswa extends RealmObject {

    @PrimaryKey    private int idMahasiswa;

    private String namaMahasiswa, alamatMahasiswa;

    public int getIdMahasiswa() {
        return idMahasiswa;
    }

    public void setIdMahasiswa(int idMahasiswa) {
        this.idMahasiswa = idMahasiswa;
    }

    public String getNamaMahasiswa() {
        return namaMahasiswa;
    }

    public void setNamaMahasiswa(String namaMahasiswa) {
        this.namaMahasiswa = namaMahasiswa;
    }

    public String getAlamatMahasiswa() {
        return alamatMahasiswa;
    }

    public void setAlamatMahasiswa(String alamatMahasiswa) {
        this.alamatMahasiswa = alamatMahasiswa;
    }
}
Disini menggunakan anotasi @PrimaryKey untuk mendeklarasikan id sebagai primary key.
@PrimaryKey
private int id;
Realm mendukung anotasi sebagai berikut :
@Required : Memberlakukan pemeriksaan untuk tidak membolehkan nilai null.
@Ignore : Kolom tidak harus disimpan.
@Index : Menambahkan index pencarian pada kolom.
@PrimaryKey : Identifikasi unik pada tiap data pada database. tetapi tidak menyediakan auto-increment 

7, Kemudian pada MainActivity tambahkan variable inisialaisasi
/*variable pada objek*/RealmHelper realmHelper;
ListView lv;
private ArrayList<MahasiswaModel> data;
private RealmHelper helper;

  •  inisialisasi pada oncreate 
realmHelper = new RealmHelper(MainActivity.this);
/*deklarasikan widaget listview*/lv = (ListView) findViewById(R.id.lv);
data = new ArrayList<>();
getData(); 


  •  kemudian pada floatingaction kita custom agar saat di klik dari floating action maka akan pindah halaman ke add mahasiswa
final FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
    @Override    public void onClick(View view) {

        startActivity(new Intent(MainActivity.this,InasertMahasiswa.class));
    }
});

  •  full code dari MainActivity.java akan seperti ini 
package imastudio.realm;

import android.app.Dialog;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;

import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.MobileAds;

import org.w3c.dom.Text;

import java.util.ArrayList;

import static imastudio.realm.R.id.fab;
import static imastudio.realm.R.id.txtalamat;
import static imastudio.realm.R.id.txtnama;

public class MainActivity extends AppCompatActivity {

    /*variable pada objek*/    RealmHelper realmHelper;
    ListView lv;
    private ArrayList<MahasiswaModel> data;
    private RealmHelper helper;

    @Override    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        Toast.makeText(MainActivity.this, String.valueOf(System.currentTimeMillis()), Toast.LENGTH_LONG).show();
        /*perkenalkan class RealmHelper pada class ini*/        realmHelper = new RealmHelper(MainActivity.this);
        /*deklarasikan widaget listview*/        lv = (ListView) findViewById(R.id.lv);
        data = new ArrayList<>();

       
        /*menmpilkan data saat activity muncul*/        getData();

        /*event pada FAB*/        final FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override            public void onClick(View view) {

                startActivity(new Intent(MainActivity.this,InasertMahasiswa.class));
            }
        });

        lv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
            @Override            public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
                return false;
            }
        });

        /*event ketika listview diklik*/        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override            public void onItemClick(AdapterView<?> adapterView, View view, final int i, long l) {

                /*model mahasiswa diambil dengan variable d sesuai posisi*/                final MahasiswaModel d = data.get(i);

                /*menampilkan dialog*/                /*perkenalkan diaog ke dalam actiity ini*/                final Dialog dialog = new Dialog(MainActivity.this);
                dialog.setContentView(R.layout.edit_mahasiswa);

                /*deskripsikan widget*/                final EditText edalamat = (EditText) dialog.findViewById(R.id.edalamat);
                final EditText ednama = (EditText) dialog.findViewById(R.id.ednama);
                Button btntambah = (Button) dialog.findViewById(R.id.btnEdit);
                Button btnhapus = (Button) dialog.findViewById(R.id.btnHapus);

                /*menampilkan data ke dalam EditText*/                ednama.setText(d.getNamaMahasiswa());
                edalamat.setText(d.getAlamatMahasiswa());

                /*event pada tombol hapus*/                btnhapus.setOnClickListener(new View.OnClickListener() {
                    @Override                    public void onClick(View view) {
                        realmHelper.deleteData(d.idMahasiswa);
                        dialog.dismiss();
                        getData();
                    }
                });

                /*event pada tombol edit*/                btntambah.setOnClickListener(new View.OnClickListener() {
                    @Override                    public void onClick(View view) {
                        String nama = ednama.getText().toString();
                        String alamat = edalamat.getText().toString();
                        realmHelper.updateData(d.idMahasiswa, nama, alamat);
                        dialog.dismiss();
                        getData();
                    }
                });

                dialog.show();
            }
        });
    }


    /*method mengambil data*/    private void getData() {
        try {
            data = realmHelper.findAll();
        } catch (Exception e) {

        }

        /*memasukan data ke dalam ListVuiew*/        try {
            CustomAdapter adapter = new CustomAdapter(this, data);
            lv.setAdapter(adapter);
        } catch (NullPointerException e) {

        }
    }

    @Override    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will        // automatically handle clicks on the Home/Up button, so long        // as you specify a parent activity in AndroidManifest.xml.        int id = item.getItemId();

        //noinspection SimplifiableIfStatement        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

    @Override    protected void onRestart() {
        super.onRestart();
        getData();
    }
}


  • Kemudain pada InsertMahasiswa.xml tambahkan kode berikut . silahkan di lihat di pada komentar kode untuk mengtahui fungsinya. disini kita juga menambahkan sebuah maps utnuk mengambil lokasinya .

package imastudio.realm;

import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

import com.google.android.gms.common.GooglePlayServicesNotAvailableException;
import com.google.android.gms.common.GooglePlayServicesRepairableException;
import com.google.android.gms.location.places.Place;
import com.google.android.gms.location.places.ui.PlacePicker;

/** * Created by Taufiq on 5/29/2017. */
public class InasertMahasiswa extends AppCompatActivity {
    
    
    RealmHelper realmHelper;
    private static final int PLACE_PICKER_REQUEST =101 ;
    EditText edNama,edAlamat;
    Button btAlamat, btInput;

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

        realmHelper = new RealmHelper(InasertMahasiswa.this);
        setView();
        btAlamat.setOnClickListener(new View.OnClickListener() {
            @Override            public void onClick(View v) {
                // membuat Intent untuk Place Picker                // membuat Intent untuk Place Picker                PlacePicker.IntentBuilder builder = new PlacePicker.IntentBuilder();
                try {
                    //menjalankan place picker                    startActivityForResult(builder.build(InasertMahasiswa.this), PLACE_PICKER_REQUEST);


                } catch (GooglePlayServicesRepairableException e) {
                    e.printStackTrace();
                } catch (GooglePlayServicesNotAvailableException e) {
                    e.printStackTrace();
                }
            }

        });
        btInput.setOnClickListener(new View.OnClickListener() {
            @Override            public void onClick(View v) {
                /*simpan data dengan memenggil method addMahasiswa*/                String nama = edNama.getText().toString();
                String alamat = edAlamat.getText().toString();
                realmHelper.addMahasiswa(nama, alamat);
                Intent a = new Intent(InasertMahasiswa.this,MainActivity.class);

                startActivity(a);


            }
        });
    }

    private void setView() {
        edAlamat =(EditText)findViewById(R.id.txtalamat);
        edNama =(EditText)findViewById(R.id.txtnama);
        btAlamat =(Button)findViewById(R.id.btnCari);
        btInput =(Button)findViewById(R.id.btnTambah);
    }
    
    // code untuk membuat maps picker    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // menangkap hasil balikan dari Place Picker, dan menampilkannya pada TextView        if (requestCode == PLACE_PICKER_REQUEST) {
            if (resultCode == RESULT_OK) {
                Place place = PlacePicker.getPlace(data, this);
                String toastMsg = String.format(
                        "Place: %s \n" +
                                "Alamat: %s \n" +
                                "Latlng %s \n", place.getName(), place.getAddress(), place.getLatLng().latitude + " " + place.getLatLng().longitude);
                edAlamat.setText(toastMsg);

            }
        }
    }

}

Oke saya kira cukup sekian ..
untuk source codenya nya bagi mau bisa request ke Email saya
taufiqhidayaht@gmail.com



Wednesday, May 10, 2017

Go Digital untuk UMKM Indonesia

Bismillah

Indonesia dengan jumlah penduduk terbanyak nomer 4 di Dunia dan dengan potensi alam yang berlimpah, mulai dari dasar laut hingga udara. tak heran indonesia adalah incaran bagi dunia untuk mengeksplorasi alam serta menjadikan indonesia market yang menggiurkan.

Apakah kita hannya diam dan menjadi konsumen pemain luar ?

Menurut pandangan saya, beberapa tahun belakangan ini banyak anak muda yang sudah mulai sadar tentang pentingnya enterpreneur.  yang dimulai dari bisnis UMKM atau yang lebih terkenal dengan istilah Startup (Kata yang sedang naik daun untuk perusahaan yang baru merintis di awal ) hingga yang sudah mendaftar P.T. Jenis-jenis UMKM juga sangat beragam mulai dari produk pertanian, kuliner, jasa hingga product digital.

Di zaman milenium ini perkembanan tekhnologi juga sangt berkembang sangat cepat, hampir setiap hari saya melihat penemuan dan inovasi terhadap tekhnologi serta adanya penjualan yang terus meningkat. Smartphone misalnya, penjualannya barang ini pertumbuhannya sangat  meningkat drastis dan dengan harga yang terjangkau. Maka tah heran juga pengguna smartphone di Indonesia adalah terbannyak di dunia,  dengan 2 kali lipat dari jumlah penduduk Indonesia sendiri, berarti 1 orang bisa memiliki 2 atau lebih smartphone.

Dengan banyaknya pengguna smartphone, sehingga masyarakat indonesia pasti sering mengakses internet. dari situ akan muncul istilahnya peluang bisnis. Kita lihat sekarang pergerakan ekonomi sangat cepat dan orang-orang juga di tuntut cepat, sehingga kadang masyarakat tidak ada waktu untuk beli secara on the spot atau datang ke tempat. 

Untuk anak perkotaan daerah JABODETABEK atau daerah yang sudah ada Go-Jek misalnya, disitu kadang kita sering dimanjakan dengan berbagai fasilitas jasa yang ditawarkan, bukan hannya mempermudah tapi juga bisa menghemat waktu consumen dan anti ribet untuk memesan berbagai keperluannya. Atau pemesanana tiket, jika di jaman sebelum intenet merakyat , dulu saat bepergian kita harus pergi ke tempat jasa travel untuk memesan tiket. dan sekarang sudah banyak sekali situs penyedia pembelian tiket secara online , hannya dengan satu jari tiket sudah ada di  tangan tanpa harus pergi ke tempat penjuaan tiket.

Dengan berbagai kemajuan dan kemudahan ini, para UMKM di Indonesia juga harus memanfaatakan momen ini,  dan sudah waktunya bagi mereka untuk GO DIGITAL, jika kita terus mengandalkan pasar offline, maka pendapatan kita masih  kurang dan customer yang di jangkau hannya masyarakat yang datang di tempat. Tapi, jika kita sudah memasarkan product kita secara online omzet serta  customer akan kita dapatkan lebih dari jualan secara offline.

Untuk menjemput para customer online  adalah dengan menggunakan internet, internet adalah media untuk saling terhubung. kita bisa terhubung melalui berbagai media untuk saling bertukar info, berkawan, berjulualan dan masih banyak lagi manfaat dari internet. 

Bagaimana cara berjualan di era digital ini dengan internet ? 
sekarang sudah banyak sekelai cara untuk bisa jualan secara online misalnya dengan berjualan di social media, pemasangan iklan atau menggunakan platform  E-Commerce, sebut saja OLX, Bukalapak, FJB Kaskus, Elvenia dan masih banyak lagi. 
Kemudahan yang ditawarkan paltform E-Commerce adalah kita bisa menjual barang, mendapatkan banyak pengunjung, karena platform yang terkenal akan banyak mendatangkan banyak 
pengunjungnya. hannya kelemahannya kita banyak saingan jika kita menggunakan platform tersebut. 

Untuk mengatasi hal tersebut saya biasanya membuat situs jualan online sendiri.  kelebihannya dengan menggunakan situs sendiri menurut saya, 
Tanpa Saingan karena kita lah yang mengelola sendiri.
Customer Service yang bisa kita kelola sehingga kita bisa memberikan ciri khas sendiri saat menyapa para customer, misalnya seperti di toko online Sale Stok, toko online ini mempunyai ciri khas dalam pelayanan ke customer dengan memanggil SIS untuk para customer wanitanya. 
Brand Product kita akan dikenal, baik product maupun nama domain kita, sebut saja men's republik, tokopedia, nah dengan nama brand yang sesuai domain maka kita sudah bisa memunculkan brand kita sendiri.

Untuk membuat toko online pun sangat mudah.

  • Mempersiapkan Domain dan Hosting

sudah saya sempat singgung diatas, karena kita akan membuat toko online sehingga kita perlu yang namanya domain dan hosting. Saya sarankan anda memilih domain dan "Web Hosting Indonesia di IDCloudHost karena ini adalah salah satu  Hosting Murah Indonesia” yang sangat cocok harganya untuk bisnis UMKM  kita. Dan pastikan untuk penamaan domain bisa membuat dikenang dan membuat unik ditelinga masyarakat.
  • Menyiapkan Wordpress dan Menyiapkan Template
Keuntungan kita menggunakan wordpress, kita tidak perlu tenaga ahli IT untuk membuat toko online,  hannya ikuti langkah-langkahnya, toko online kita akan terpampang.
Langkah selanjutnya adalah menginstal Theme untuk toko online Anda. salah satu theme wordpress.
  • Menginstal Plugin
Agar toko online kita jalan kita perlu instal plugin namanya WooCommerce . 
jika sudah toko online masih dalam 50%, karena plugin ini hannya sebagai perantara agar kita bisa mudah untuk mengupload barang kita.


mudah bukan ? 
Sekian postingan kali ini, semoga bermanfaat dan pastikan untuk pembelian domain dan hosting percayakan hannya di IDCloudHost  "Web Hosting Indonesia” "Hosting Murah Indonesia"


Monday, October 24, 2016

System Requirement Android untuk Training IDN Mengajar

Bismillah



Untuk sekolah yang mengundang kami mengajar training Android di Sekolah  SMK masing- masing, bagi peserta, baik guru/siswa yang ikut training selama 5 hari dimohon untuk memperhatikan hal-hal berikut, terkait Hardware dan Software

Persayaratan System :

Windows
- Microsoft Windows 7/8/10 (32 atau 64 bit)
- RAM minimum 4 GB, Rekomendasi 8 GB RAM
- Disk kosong 500 MB
- Sedikitnya 16 GB untuk Android SDK, Emulator system images, and
- Java Development Kit (JDK) 8 

OSX
- Mac OS X 10.8.5 atau yang lebih tingggi up to El-Capitan
- RAM minimum 4 GB, Rekomendasi RAM 8 GB
- Disk kosong 500 MB
- Sedikitnya 16 GB untuk Android SDK, emulator system images, dan caches
- Java Development Kit (JDK) 8

GNU/LINUX
- GNOME atau KDE atau Unity Desktop pada Ubuntu atau Fedora
- Minimum RAM 4 GB, Rekomendasi RAM 8 GB
- Disk kosong 500 MB
- Sedikitnya 16 GB untuk Android SDK, emulator system images, dancaches
- Java Development Kit (JDK) 8


Setelah persyaratan system sudah terpenuhi, selanjutnya bagi peserta diwajibkan untuk menginstal tools apliksi untuk membangun aplikasi di Android

Download 

Genymotion (Untuk virtual device) (Optional) -> 
https://www.genymotion.com/download/ jika belum punya akun silahkan untuk membuat akun terlebih dahulu (untuk windows pilih download with virtual box)

Langkah installsi :
Anda bisa mengunjungi situs resmi untuk instalasi android studio.
Untuk memilih jenis OS klik pada pilihan diatas


  1. Pastikan perangkan PC terkoneksi ke jaringan internet
  2. Install JDK terlebih dahulu
  3. Install Android Studio
  4. Setelah proses installasi selesai, maka akan ada proses download plugin.

Instalasi Genymotion
  1. Instal genymotion
  2. Login dahulu dengan akun yang sudah dibuat tadi
  3. klik tombol tambah dan kemudian pilih tombol tambah
  4. pilih perangkat sesuai kebutuhan 
Terima Kasih. 

Untuk Contact Person  bisa hubungi kontak dibawah ini jika ada kendala :

Aji Setya           : WA/ Telegram (087700633786)
Taufiq Hidayah : WA/ Telegram (083878710816)
Farid Savarudin: WA/ Telegram (082217343233)

Thursday, October 6, 2016

Assalamu'alaikum IOS

Bismillah..


Alhamdulilah pada minggu ini dapat kesempatan dari IMA Studio untuk mengikuti training IOS Dasar, walaupun hari pertama agak ketinggalan saat training, karena ada acara ke Batan, dan ikut trainingnya setelah setelah sholat Dhuhur. 
But , pada hari pertama udah bisa nampilin "Assalamu'alaikum" pada IOS, Pengenalan tools dan mendesain di storyboard...

setelah selesai training dan selesai solat Maghrib, aku googling - googling dulu dan tanya ke teman tentang materi hari pertama, biar esok harinya tidak ketinggalan.. haha
Step by step akhirnya tahu tentang tool dan struktur code swift ( in basic) . 

jika ingin ke halaman lain biasanya di Android  harus membuat Intent 

Intent i = new Intent(this, Detail.class);
        startActivity(i);
maka pada Swift 
Ios
hannya drag and drop untuk pindah ke halaman lain. 

Simple ?   I Think  so..
But i still knowing the basic, so this is my opinion ketika pertama kali kenalan dengan Xcode.. 
jika sudah mengenal bahasa visual (VB atau Delphi )  dan Pemrograman Android mungkin agak mirip-mirip dikit ,

Strength IOS Developer 
Menjadi IOS developer di Indonesia sepertinya masih sedikit persaingan ..
Simple configuration & easy to use


Weakness dari IOS developer adalah pada sisi User dan Budget.
User, di Indoesia pengguna IOS kebanyakan dari kalangan menengah keatas dan kebanyakan pengguna mobile di Indonesia adalah Android user 
Budget,  dari sisi budget untuk menjadi IOS developer juga dituntut untuk develop dan testing menggunakan Apple product ( MAC dan IOS ) dan disamping budget untuk develop yang gede. Untuk publish aplikasi kita ke AppStore juga menguras budget.

My Opion.

Learn and Learn.. 

Tuesday, October 4, 2016

Hati-Hati dengan Pujian

Bismillahirrahmanirrahim

Assalamu’alaikum wa rahmatullahi wa barakatuh.
Kaum muslimin yang semoga selalu dirahmati oleh Allah
Kita dapat mengambil suatu pelajaran dari sahabat yang mulai yaitu Abu Bakar As-ShiddiqI. Dimana beliau ini adalah orang terbaik sepeninggal Nabi kita MuhammadH. Ketika beliau mendapatkan suatu pujian, yaitu pujiannya adalah di hadapan dirinya. Orang-orang menyanjung dirinya. Maka apa yang beliau katakan ketika itu.?Abu Bakar As-Shiddiq kemudian mengatakan,

اللَّهُمَّ أَنْتَ أَعْلَمُ مِنِّى بِنَفْسِى وَأَنَا أَعْلَمُ بِنَفْسِى مِنْهُمْ اللَّهُمَّ اجْعَلْنِى خَيْرًا مِمَّا يَظُنُّوْنَ وَاغْفِرْ لِى مَا لاَ يَعْلَمُوْنَ وَلاَ تُؤَاخِذْنِى بِمَا يَقُوْلُوْنَ

Allahumma anta a’lamu minni bi nafsiy, wa anaa a’lamu bi nafsii minhum. Allahummaj ‘alniy khoirom mimmaa yazhunnuun, wagh-firliy maa laa ya’lamuun, wa laa tu-akhidzniy bimaa yaquuluun.
“Ya Allah engkau lebih mengetahui  keadaan diriku dari diriku sendiri dan aku lebih mengetahui keadaan diriku dari pada mereka (yang memuji). Ya Allah, jadikan aku lebih baik dari apa yang mereka sangkakan. Ya Allah, ampunilah aku atas perkataan-perkataan mereka yaitu sanjungan-sanjungan mereka. Ya Allah, janganlah siksa aku dengan pujian mereka tujukan kepadaku”.
Maka demikanlah ketika para salaf itu dipuji mereka juga mengamalkan semisal ini. Ada diceritakan bahwasanya ada seorang salaf ketika dia dipuji (di depan dia) malah dia marah. Kemudian dia mengingkari pujian tersebut misalkan:  ‘kamu adalah orang yang sholeh’. Dia mengingkari pujian tersebut. Dia itu marah. Lalu dia berdoa, doa seperti tadi (di atas seperti apa yang diucapakan Abu Bakar As-Shiddiq).
Nah ini menunujukkan bahwasanya (menjadi pelajaran bagi kita): ‘Kita jangan suka apabila di puji orang lain’. Orang-orang yang mulia saja seperti Abu Bakar As-Shiddiq. Begitu juga yang disebutkan dari cerita berbagai ulama para salaf, mereka ketika dipuji, mereka tidak merasa senang dengan pujian tersebut karena yang namanya pujian itu bisa meruntuhkan atau bisa menghapuskan amalan seseorang.
Karena amalan seseorang itu kata Ibnu Thaimiyah,
“Bisa terhapus karena sebab yaitu karena riya dan karena ujub”
Karena riya, dia tidak merealisasikan firman Allah di dalam surat Al-Fatihah:
“iyya kana budu”
Yaitu hanya kepadamulah kami menyembah, Hanya kepadamulah kami beribadah.
Sedangkan orang yang ujub, tidak merealisasikan firman Allah
“Wa iyya kanasta’in”
Yaitu kepadamulah kami memohon pertolongan.
Karena yang pertama ini, dia beribadah kepada selain Allah . Sementara yang kedua, dia merasa bahwa dirinyalah yang berbuat, bukan atas pertolongan Allah Esehingga karena sebab ini, Ibnu Thaimiyyah katakan bahwasanya inilah yang bisa menghapuskan amalan seseorang
Riya itu bisa menghapuskan amalan seseorang sebagaimana Allah mengataka dalam hadits kudsi:

قَالَ اللَّهُ تَبَارَكَ وَتَعَالَى أَنَا أَغْنَى الشُّرَكَاءِ عَنِ الشِّرْكِ مَنْ عَمِلَ عَمَلاً أَشْرَكَ فِيهِ مَعِى غَيْرِى تَرَكْتُهُ وَشِرْكَهُ

Aku tidak peduli terhadap kesyirikan, Barang siapa yang melakukan suatu amalan dimana dia mempersekutukanku dengan selainku maka aku akan meninggalkan dirinya dan juga amalannya.
Jadi amalannya itu akan di tinggalkan begitu juga pelaku tadi yang berbuat syirik yaitu riya termaksud syirik itu juga akan ditinggalkan.
Sedangkan ujub tadi adalah merasa bangga pada dii sendiri, merasa bangga terhadap amalan yang diperbuat, dia merasa itu adalah hasil usahanya bukan dari taufik Allah. Dia menyangka bahwasanya itulah yang dia lakukan. Ya ini karena ilmu yang saya peroleh, ini karena amalan yang saya laukan sendiri, bukan dari taufik Allah  Sehingga ini juga bisa meruntuhkan amalan dia.
Maka Ibnu Thaimiyyah pernah menceritakan suatu perkataan dari Sa’ad bin Jubair,  dimana dia mengatakan bahwasanya, ada seorang itu yang beramal kebaikan malah bahwa dia itu masuk neraka, ada seorang yag beramal kejelekkan malah dia itu masuk surga.
Ada seorang yang beramal kebaikan dia itu merasa ujub dengan amalan kebaikannya tadi malah setelah itu amalan kebaikannya itu jadi gugur, jadi terhapus gara-gara sebab ujub yang ada pada dirinya. Dia merasa bangga dengan amlannya tersebut. Sedangkan yang kedua ada orang yang dia itu orang yang gemar bermaksiat tapi kemudian dia masuk surga. Nah ketika itu apa yang terjadi, dia tutup amalan akhirnya dengan bertaubat kepada Allah  sehingga Allah  itu masukkan dia ke dalam surga karena nabi mengatakan,
“sesungguhnya amalan itu dilihat dari akhirnya”
Maka kita dapat mengambil pelajaran disini bahwasanya kita tidak suka dengan pujian. Kita harus intropeksi diri, barangkali kita tidak sesuai dengan apa yang di puji tadi, kita banyak beristghfar kepada Allah  kita mohon kepada Allah  semoga kita tu bisa lebih baik dari pada pujian tadi  dan moga kita dapat terlepas dari sifat ujub dan sifat riya yang dapat menghapuskan amalan kita.

Wassalamu’alaikum wa rahmatullahi wa barakatuh.