Mungkin ini adalah salah satu dari sekian banyak cara termudah untuk mendaftar menjadi mitra grab
Sistem Informatika Indonesia
Informasi dan tutorial pembelajaran komputer, internet dan pemrograman
Sunday 16 June 2019
Thursday 13 June 2019
Tutorial Belajar Kotlin Android : Pengenalan Kotlin
Apa itu Kotlin ?
Kotlin merupakan bahasa pemrograman yang lahir pada tahun 2011, Kotlin
dikembangkan dari sebuah perusahaan bernama JetBrains. Pada acara Google I/O
2017 yang berlangsung pada bulan Mei 2017 yang lalu, Google resmi mendeklarasikan
Kotlin menjadi bahasa resmi selain Java dan C++ untuk mengembangkan aplikasi
android pada android studio. Kotlin di buat dengan tujuan untuk meningkatkan
produktivitas sebuah perusahaan terutama buat perusahaan yang pernah
menggunakan java.
Beberapa kelebihan kotlin yaitu :
1. Mudah untuk di Pelajari
Mempelajari
bahasa Kotlin tidak memerlukan learning curve yang lama. Dengan kotlin sebuah
project yang awalnya di tulis dengan java menjadi lebih simple.
2. Aman dari Error Null
Tidak perlu lagi frustasi dengan
kemungkinan munculnya Null Pointer Exception. Compiler secara sistematis akan
mendeteksi pointer yang berpotensi null.
3. Interoperable
Kotlin memiliki interoperability 100%
dengan Java, jadi apapun yang bisa menggunakan Java bisa juga menggunakan
Kotlin.
4. Mudah digunakan
Kotlin memiliki struktur yang ringkas
dan mudah di gunakan dengan syntax autocomplite, yang membuat para developer
tidak perlu menghafal semua syntax tersebut.
Tutorial Belajar Codeigniter : Pengenalan Framework Codeigniter
Apa itu Codeigniter ?
Codeigniter adalah framework PHP dengan konsep design pattern MVC (Model View
Controller). Codeigniter pertama kali dikembangkan oleh Rick Ellis. Seorang
programmer yang menjadi penemu framework
CodeIgniter, beliau juga menjadi penemu dari Expression Engine (EE) yang
digunakan untuk membangun CMS.
CodeIgniter menjadi sebuah framework PHP dengan model
MVC (Model, View, Controller) untuk membangun website dinamis dengan
menggunakan PHP yang dapat mempercepat pengembang untuk membuat sebuah aplikasi
web. Selain ringan dan cepat, Keunggulan dari framework codeigniter ini ada di
dukumentasi nya yang lengkap dan juga memiliki komunitas developer yang sangat
banyak.
Kenapa sih kita harus memilih framework yang memiliki
komunitas developer yang besar .... ? jawaban nya adalah karena itu akan
membuat kita lebih mudah untuk menyelesaikan pekerjaan bila saat kita melakukan
project terdapat bugs atau adanya masalah yang kita anggap sulit untuk di
selesaikan dari project aplikasi yang kita buat nantinya.
Saat kita ekstrak framework codeigniter maka akan di dapat susunan
folder seperti gambar di atas.
Application,
Folder inilah kita akan membangun aplikasi kita nantinya dan juga kita
akan meng-custom atau untuk membuat sendiri beberapa library dan helper
didalamnya beberapa file yang dibutuhkan
Application/Cache
Folder yang
digunakan untuk menyimpan cache yang mana
cache ini bertujuan untuk meningkatkan kecepatan akses halaman.
Application/Config
Folder yang digunakan untuk menyimpan
semua file konfigurasi. Seperti koneksi database, penggunaan library dan
helper, bahkan sampai routing dari aplikasi yang digunakan.
Application/Controllers
Folder yang
berfungsi untuk menyimpan file Controller yang bertujuan untuk mengatur alur
proses aliran data atau fungsi yang telah dibuat didalamnya.
Application/core
Terkadang dalam
beberapa kasus saat melakukan develop harus sampai merubah
/ memodifikasi class inti dari codeigniter, maka folder core inilah di
fungsikan agar developer tidak sampai merubah / memodifikasi class inti dari
codeigniter. Inilah salah satu fitur luar biasa yang dimiliki codeigniter.
Application/helpers
Folder yang
berfungsi untuk menyimpan file helper, dimana file tersebut berisi beberapa
fungsi yang dapat membantu controller.
Application/hooks
Folder ini tempat
menyimpan file hook yang berguna untuk
mengubah alur dari inti atau core di CI
Application/language
Folder ini tempat
menyimpan file bahasa yang akan digunakan. Saat ingin membuat fitur multi
bahasa
Application/libraries
Folder ini tempat menyimpan file custom library, yang
berguna agar developer memungkinkan untuk menggunakan kembali baris programnya
tanpa harus mengetikan ulang.
Application/logs
Folder ini tempat
menyimpan file log.
Application/models
Folder ini
berisi file yang berfungsi untuk menangani semua fungsi yang berhubungan dengan
manipulasi database
Application/third_party
Folder ini
berisi folder atau file yang berasal dari pihak ketiga, yang berfungsi untuk
menambah fungsionalitas yang lebih besar pada sistem.
Application/views
Berisi
folder atau file yang berhubungan dengan tampilan website yang akan ditujukan
kepada user.
System
Folder
system merupakan bawaan dari codeigniter yang dimana secara default tidak dapat
dirubah karena di folder system ini berisi beberapa folder dan file yang
bersifat inti.
Wednesday 12 June 2019
Tutorial Belajar Android : Cara Membuat Login dan Register dengan Database SQLite di Android Studio
SQLite adalah database SQL opensource yang menyimpan data berupa file
teks pada sebuah device. SQLite telah
tersedia dari bawaan Sistem Operasi Android dan package utama nya adalah android.database.sqlite
yang memuat class-class untuk mengelola database tersebut.
Seperti biasa langkah pertama yang kita lakukan adalah :
1. Buat project baru dengan meng klik Start a new Android Studio project.2. Pilih Empty Activity dan Next.
3. Pada kolom Name isi dengan Register & Login SQLite atau boleh apa saja berdasarkan keinginan pembuat aplikasi. Pada bagian Minimum API level adalah sebagai batasan aplikasi yang akan dibuat nantinya akan berjalan dengan minimum level API (versi android) berapa. Dan setelah itu klik Finish.
4. Buat file Class baru pada current package aplikasi kita dan pada kolom name berinama DatabaseHelper.
5. Buat New Empty Activity pada current package aplikasi kita dan pada kolom Activity Name berinama RegisterActivity.
6. Tambahkan Vector Asset dengan cara klik kanan drawable – New – Vector Asset
Setelah terbuka jendela Asset Studio klik icon Clip Art. Tuliskan account_circle pada kolom search dan click OK.
Pada kolom name ubah nama nya menjadi ic_account_circle dan ubah Color menjadi FFFFFF. Click Next dan Finish.
Setelah selesai, tambahkan lagi image vector dengan nama lock open di kolom search seperti langkah di atas. Jika dilihat maka susunan file xml pada drawable menjadi seperti ini.
7. Code
DatabaseHelper.java
package
com.example.registerloginsqlite;
import
android.content.ContentValues;
import
android.content.Context;
import
android.database.Cursor;
import
android.database.sqlite.SQLiteDatabase;
import
android.database.sqlite.SQLiteOpenHelper;
public class
DatabaseHelper extends SQLiteOpenHelper {
public static final String
DATABASE_NAME="corporate.db";
public static final String
TABLE_NAME="users";
public static final String COL_1="id";
public static final String
COL_2="username";
public static final String
COL_3="password";
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE users (id
INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT, password TEXT)");
}
@Override
public void onUpgrade(SQLiteDatabase db,
int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS
" + TABLE_NAME);
onCreate(db);
}
public long addUser(String user, String
password){
SQLiteDatabase db =
this.getWritableDatabase();
ContentValues contentValues = new
ContentValues();
contentValues.put("username",
user);
contentValues.put("password",
password);
long res = db.insert(TABLE_NAME,null,
contentValues);
db.close();
return res;
}
public boolean checkUser(String username,
String password){
String[] columns = { COL_1 };
SQLiteDatabase db =
getReadableDatabase();
String selection = COL_2 +
"=?" + " and " + COL_3 + "=?";
String[] selectionArgs = { username,
password};
Cursor cursor = db.query(TABLE_NAME,
columns, selection, selectionArgs,null,null,null);
int count = cursor.getCount();
cursor.close();
db.close();
if(count>0)
return true;
else
return false;
}
}
8. Code
MainActivity.java
package
com.example.registerloginsqlite;
import
android.content.Intent;
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 {
//LOGIN ACTIVITY
EditText mTextUsername;
EditText mTextPassword;
Button mButtonLogin;
TextView mTextViewRegister;
DatabaseHelper db;
@Override
protected void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
db = new DatabaseHelper(this);
mTextUsername =
(EditText)findViewById(R.id.edit_textusername);
mTextPassword=
(EditText)findViewById(R.id.edit_textpassword);
mButtonLogin = (Button)
findViewById(R.id.button_login);
mTextViewRegister = (TextView)
findViewById(R.id.text_viewregister);
mTextViewRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent registerIntent = new
Intent(MainActivity.this, RegisterActivity.class);
startActivity(registerIntent);
}
});
mButtonLogin.setOnClickListener(new
View.OnClickListener() {
@Override
public void onClick(View v) {
String user = mTextUsername.getText().toString().trim();
String pass =
mTextPassword.getText().toString().trim();
Boolean res =
db.checkUser(user, pass);
if(res == true){
Toast.makeText(MainActivity.this, "Successfully Logged in",
Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(MainActivity.this, "Login Error",
Toast.LENGTH_SHORT).show();
}
}
});
}
}
9. Code RegisterActivity.java
package
com.example.registerloginsqlite;
import
android.content.Intent;
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
RegisterActivity extends AppCompatActivity {
//REGISTER ACTIVITY
DatabaseHelper db;
EditText mTextUsername;
EditText mTextPassword;
EditText mTextCnfPassword;
Button mButtonRegister;
TextView mTextViewLogin;
@Override
protected void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
db = new DatabaseHelper(this);
mTextUsername =
(EditText)findViewById(R.id.edit_textusername);
mTextPassword=
(EditText)findViewById(R.id.edit_textpassword);
mTextCnfPassword=
(EditText)findViewById(R.id.edit_textcnfpassword);
mButtonRegister = (Button) findViewById(R.id.button_register);
mTextViewLogin= (TextView)
findViewById(R.id.text_viewlogin);
mTextViewLogin.setOnClickListener(new
View.OnClickListener() {
@Override
public void onClick(View v) {
Intent LoginIntent = new
Intent(RegisterActivity.this, MainActivity.class);
startActivity(LoginIntent);
}
});
mButtonRegister.setOnClickListener(new
View.OnClickListener() {
@Override
public void onClick(View v) {
String user =
mTextUsername.getText().toString().trim();
String pass =
mTextPassword.getText().toString().trim();
String cnf_pass =
mTextCnfPassword.getText().toString().trim();
if(pass.equals(cnf_pass)){
long val = db.addUser(user,
pass);
if(val > 0){
Toast.makeText(RegisterActivity.this, "You have register",
Toast.LENGTH_SHORT).show();
Intent moveToLogin = new
Intent(RegisterActivity.this, MainActivity.class);
startActivity(moveToLogin);
}else{
Toast.makeText(RegisterActivity.this, "Registration Error",
Toast.LENGTH_SHORT).show();
}
}else{
Toast.makeText(RegisterActivity.this, "Password is not match",
Toast.LENGTH_SHORT).show();
}
}
});
}
}
10. Selanjut nya pada bagian res – layout –
activity_main.xml , tuliskan code seperti ini
<?xml
version="1.0" encoding="utf-8"?>
<LinearLayout
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:gravity="center_horizontal"
android:orientation="vertical"
android:background="#E71B62"
tools:context=".MainActivity">
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginTop="50dp"
android:layout_marginBottom="50dp"
app:srcCompat="@drawable/ic_account_circle"/>
<LinearLayout
android:id="@+id/layoutInput"
android:layout_marginTop="5dp"
android:layout_marginRight="20dp"
android:layout_marginLeft="20dp"
android:orientation="vertical"
android:layout_centerVertical="true"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/edit_textusername"
android:hint="Username"
android:singleLine="true"
android:maxLines="1"
android:textColorHint="@color/colorWhite"
android:textColor="@color/colorWhite"
android:drawableLeft="@drawable/ic_account_circle"
android:drawablePadding="10dp"
android:paddingBottom="20dp"
android:layout_marginBottom="15dp"
android:backgroundTint="@color/colorWhite"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/edit_textpassword"
android:hint="Password"
android:inputType="textPassword"
android:singleLine="true"
android:maxLines="1"
android:textColorHint="@color/colorWhite"
android:textColor="@color/colorWhite"
android:drawableLeft="@drawable/ic_lock_open"
android:drawablePadding="10dp"
android:paddingBottom="20dp"
android:layout_marginBottom="15dp"
android:backgroundTint="@color/colorWhite"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/button_login"
android:text="Sign In"
android:layout_marginTop="30dp"
android:textAllCaps="false"
android:textStyle="bold"
android:textColor="@color/colorWhite"
android:background="#B90424"
android:layout_marginRight="20dp"
android:layout_marginLeft="20dp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<Button
android:id="@+id/text_viewregister"
android:layout_marginRight="20dp"
android:layout_marginLeft="20dp"
android:background="@color/colorTrans"
android:textAllCaps="false"
android:textColor="@color/colorWhite"
android:layout_alignParentBottom="true"
android:text="Register Your
Account"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</RelativeLayout>
11. Code
activity_register.xml.
<?xml
version="1.0" encoding="utf-8"?>
<LinearLayout
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:background="#5C40EC"
android:gravity="center_horizontal"
android:orientation="vertical"
tools:context=".RegisterActivity">
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginTop="30dp"
android:layout_marginBottom="50dp"
app:srcCompat="@drawable/ic_account_circle" />
<LinearLayout
android:id="@+id/layoutInput"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="20dp"
android:layout_marginTop="5dp"
android:layout_marginRight="20dp"
android:orientation="vertical">
<EditText
android:id="@+id/edit_textusername"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="15dp"
android:backgroundTint="@color/colorWhite"
android:drawableLeft="@drawable/ic_account_circle"
android:drawablePadding="10dp"
android:hint="Username"
android:maxLines="1"
android:paddingBottom="20dp"
android:singleLine="true"
android:textColor="@color/colorWhite"
android:textColorHint="@color/colorWhite" />
<EditText
android:id="@+id/edit_textpassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="15dp"
android:backgroundTint="@color/colorWhite"
android:drawableLeft="@drawable/ic_lock_open"
android:drawablePadding="10dp"
android:hint="New
Password"
android:inputType="textPassword"
android:maxLines="1"
android:paddingBottom="20dp"
android:singleLine="true"
android:textColor="@color/colorWhite"
android:textColorHint="@color/colorWhite" />
<EditText
android:id="@+id/edit_textcnfpassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="15dp"
android:backgroundTint="@color/colorWhite"
android:drawableLeft="@drawable/ic_lock_open"
android:drawablePadding="10dp"
android:hint="Retype
Password"
android:inputType="textPassword"
android:maxLines="1"
android:paddingBottom="20dp"
android:singleLine="true"
android:textColor="@color/colorWhite"
android:textColorHint="@color/colorWhite" />
</LinearLayout>
<Button
android:id="@+id/button_register"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/layoutInput"
android:layout_marginLeft="20dp"
android:layout_marginTop="30dp"
android:layout_marginRight="20dp"
android:background="#B90424"
android:baselineAligned="false"
android:text="Register"
android:textAllCaps="false"
android:textColor="@color/colorWhite"
android:textStyle="bold"
/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="35dp"
android:text="Already
Registered"
android:textColor="#eeeeee" />
<TextView
android:id="@+id/text_viewlogin"
android:layout_width="wrap_content"
android:layout_height="35dp"
android:paddingLeft="10dp"
android:text="LOGIN"
android:textColor="#9E0505"
android:textStyle="bold"
/>
</LinearLayout>
12. Pada file colors.xml tambahkan code berikut
<color
name="colorWhite">#FFF</color>
<color
name="colorTrans">#00ffffff</color>
13. Pada file style.xml tambahkan code berikut
<style
name="AppTheme.NoActionBar">
<item
name="windowActionBar">false</item>
<item
name="windowNoTitle">true</item>
</style>
14. Pada
file androidManifest.xml dibagian tag
application , ubah android:theme menjadi
android:theme="@style/AppTheme.NoActionBar"
Subscribe to:
Posts (Atom)