Sunday, September 27, 2015

Get Inbox Email

Kali ini saya akan membuat bagaimana cara mengambil list inbox yang ada pada email. Metode pengambilan email kali ini menggunakan protokol POP3, singkatnya kita membuat email client kita sendiri. untuk lebih jelasnya tentang protocol pop3 cek google mail atau di wiki.

Kita cukup membuat 1 class java saja.

1. CheckingMails

CheckingMails.java

import java.util.Properties;
import javax.mail.Address;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.NoSuchProviderException;
import javax.mail.Session;
import javax.mail.Store;


public class CheckingMails {

    public static void check(String host, String storeType, String user, String password) {
        try {
            Properties properties = new Properties();
            properties.put("mail.pop3.host", host);
            properties.put("mail.pop3.port", "995");
            properties.put("mail.pop3.starttls.enable", "true");
            Session emailSession = Session.getDefaultInstance(properties);

            Store store = emailSession.getStore("pop3s");

            store.connect(host, user, password);

            Folder inbox = store.getFolder("INBOX");
            inbox.open(Folder.READ_ONLY);

            Message[] messages = inbox.getMessages();
            System.out.println("Message all : " + messages.length);

            for (int i = 0; i < messages.length; i++) {
                Message message = messages[i];
                System.out.println("---------------------------------");
                System.out.println("Email Number : " + (i + 1));
                System.out.println("Time : " + message.getSentDate());
                System.out.println("Subject : " + message.getSubject());
                System.out.println("From: " + message.getFrom()[0]);

            }
            inbox.close(false);
            store.close();

        } catch (NoSuchProviderException e) {
            e.printStackTrace();
        } catch (MessagingException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public static void main(String[] args) {
      String host = "pop.gmail.com";//server mail
      String mailStoreType = "pop3";
      String username = "yourmail@mail.com";
      String password = "your password mail";

      check(host, mailStoreType, username, password);
    }
}
Output :
 

Monday, September 21, 2015

Unix crontab command pada Linux

Crontab adalah salah satu command pada pada linux yang dapat dijalankan berdasarkan schedule yang ditentukan sebelumnya. Fungsinya biasanya digunakan untuk menjalankan sebuah aplikasi secara periodik ataupun untuk kepentingan lainnya yang membutuhkan sheduler.


 # *  *  *  *  *  command to execute
 # │ │ │ │ │
 # │ │ │ │ │
 # │ │ │ │ └───── day of week (0 - 6) (0 same with Sunday)
 # │ │ │ └────────── month (1 - 12)
 # │ │ └─────────────── day of month (1 - 31)
 # │ └──────────────────── hour (0 - 23)
 # └───────────────────────── min (0 - 59) 

Untuk menjalankan crontab terlebih dahulu install crontab :
- #sudo apt-get install cron

Untuk mengetahui crontab apa saja yang ada:
- #sudo crontab -l


Untuk melakukan menambahkan ataupun untuk mengedit crontab yang berjalan:
- #sudo crontab -e 


Untuk melakukan menghapus crontab yang berjalan:
- #sudo crontab -r


Cara menggunakan Crontab :

- 15 6 2 1 * /home/melissa/backup.sh
- 15 06 02 Jan * /home/melissa/backup.sh


Menjalankan shell script /home/melissa/backup.sh pada 2 Januari pukul 6:15 A.M.


- 0 9-18 * * * /home/carl/hourly-archive.
- 0 9,18 * * Mon /home/wendy/script.sh


Menjalankan shell script /home/carl/hourly-archive.sh setiap hari, dari jam 9 A.M. sampai dengan jam 6 P.M.

- 30 22 * * Mon,Tue,Wed,Thu,Fri /usr/local/bin/backup


Menjalankan shell script /usr/local/bin/backup jam 10:30 P.M., setiap hari dalam seminggu kecuali hari sabtu dan minggu.


Sekian dulu, Terima kasih.

Menu tersembunyi pada Android

Taukah kalian pada gedget android kalian ada beberapa menu yang mungkin kalian belum tahu. Menu-menu ini biasanya digunakan para developer ataupun teknisi device android. Untuk masuk ke menu tersembunyi cukup masukkan kode seperti berikut *#*#4636#*#* di mode dial nomor telepon. Berikut beberapa menu tersebut :

*#*#4636#*#* phone information
*2767*3855# hard reset
*#*#7780#*#* factory reset
*#*#7594#*#* change end call/power option
*#*#197328640#*#* service mode
*#*#273283*255*663282*#*#* file copy screen (backup media files)
*#*#526#*#* wlan test
*#*#232338#*#* shows wifi mac address
*#*#1472365#*#* gps test
*#*#1575#*#* another gps test
*#*#232331#*#* bluetooth test
*#*#232337#*# shows bluetooth device address
*#*#8255#*#* gtalk service monitor

codes to launch various factory tests:
*#*#0283#*#* packet loopback
*#*#0*#*#* lcd test
*#*#0673#*#* melody test
*#*#0842#*#* device test (vibration test and backlight test)
*#*#2663#*#* touch screen version
*#*#2664#*#* touch screen test
*#*#0588#*#* proximity sensor test
*#*#3264#*#* ram version

codes to get firmware version information:
*#*#4986*2650468#*#* pda, phone, h/w, rfcalldate
*#*#1234#*#* pda and phone
*#*#1111#*#* fta sw version
*#*#2222#*#* fta hw version
*#*#44336#*#* pda, phone, csc, build time, changelist number


Namun kode-kode diatas tidak semua berjalan pada beberapa device smartphone. Yang harus diperhatikan dalam membuka menu-menu rahasia ini, berhati hatilah saat mencobanya. Jangan sembarangan mengubah setting yang ada di sana karena bisa berakibat fatal. Misalnya, jika memilih turn off phone radio, Anda tidak akan bisa memakainya untuk telepon, SMS, atau internetan, kecuali sudah menyalakannya lagi

Note:
Hard Reset menghapus semua files & settings di internal memory, atau sama dengan memformat ulang firmwarenya

Warning :
Kalo sudah menekan code untuk Hard Reset, maka akan langsung hard reset, tidak ada pilihan Cancel. Sedangkan Factory Reset hanya menghapus account, system & aplikasi setting


Sekian dulu, terima kasih.

Sunday, September 20, 2015

Cara membuat file iso dengan WinRar

Caranya sangat mudah namun telebih dahulu kalian harus menginstall Aplikasi Winrar disini untuk version nya silakan dicek sesuai dengan spesifikasi PC masing-masing.

Kalo sudah menginstall Winrar kita langsung saja ke pembuatan file ISOnya.
1. Tentukan file yang akan dijadikan ISO.
2. Klik kanan pada file yang akan dirubah.
3. Pilih opsi Add to archive...
4. Kemudian pada tab General ada kolom Archive name tambahkan ekstensi iso pada nama file.
5. Kemudian klik OK. 

File ekstensi iso sudah jadi.

Terima kasih.

Friday, May 29, 2015

Read image from internal memory in Android

Pada source di bawah sebelum mengakses image dari internal memory terlebih dahulu mendowload image tersebut dari internet. 


1. XML Layout
Buat dua XML layout file di folder “res/layout/” :

res/layout/activity_main.xml – pada halaman tersebut tambahkan ImageView

File : activity_main.xml
 <ImageView
        android:id="@+id/imageView"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:gravity="center"
        android:paddingLeft="5dp"
        android:paddingRight="5dp"
        android:scaleType="fitXY"/>

2. Activity
Pada activity class daftarkan ImageView yang dibuat.

File : MainActivity.java


ImageView imageView;
String url = "https://www.google.co.id/images/srpr/logo11w.png" 
public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 imageView = (ImageView) findViewById(R.id.imageView);
}

3. Download File
Dowload file dari alamat url tersebut kemudian menyimpannya ke dalam memori internal

private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
 ImageView pImage;
 FileOutputStream ontput;
 String Path = "sdcard0/Download/";

 protected Bitmap doInBackground(String... p_urls) {
  String urldisplay = p_urls[0];
  Bitmap p_image = null;
  try {
   InputStream in = new java.net.URL(urldisplay).openStream();
   p_image = BitmapFactory.decodeStream(in);
   ontput = new FileOutputStream(Path + ImageFileName(urldisplay));
   p_image.compress(Bitmap.CompressFormat.PNG, 90, ontput);
   
  } catch (Exception e) {
   Log.e("Error", e.getMessage());
   e.printStackTrace();
  } finally {
   try {
    ontput.close();
   } catch (Exception e2) {
    Log.e("Error", e2.getMessage());
    e2.printStackTrace();
   }
  }
  return null;
 } 
}
private String ImageFileName(String p_url) {
 String ext = p_url.substring(p_url.lastIndexOf("/") );
 if (ext.indexOf("?")>-1) {
  ext = ext.substring(0,ext.indexOf("?"));
 }
 if (ext.indexOf("%")>-1) {
  ext = ext.substring(0,ext.indexOf("%"));
 }
 return ext;
}

Kemudian buat falidasi untuk mengecek apakah file sudah ada di memori atau belum.

String path = "sdcard0/Download/"+ ImageFileName(catalog.image_url);
Bitmap bitmap = BitmapFactory.decodeFile(path);
File filePath = new File(path);
if (!filePath.exists()) {
 new DownloadImageTask().execute(catalog.image_url);
 imageView.setImageBitmap(bitmap);
}else{
 imageView.setImageBitmap(bitmap);
}

S.M.H

Friday, March 6, 2015

Softcard google vs Apple payment

Kita sudah tidak terkejut lagi sekarang dengan adanya mobile payment atau mobile pocket. Satu lagi produk payment yang turus berkembang yaitu Softcard. Softcard saat ini sudah terintegrasi dengan google wallet dimana kalau bawa nama besar google aplikasi lain pasti akan terus menanjak menghancurkan kepopuleran aplikasi payment lain. Di official website softcard mereka mengatakan :

"Important news! We are pleased to let you know that Google has acquired technology from Softcard to power the next generation of mobile wallets.

What does this mean for you? As of 3/31 your Softcard app will no longer work. You can continue to use the Softcard app until 3/31. After that your Account will be closed.

To keep using a digital wallet app download Google Wallet now."

Hal ini akan menandakan akan adanya persaingan besar nantinya antara aplikasi payment milik google dan payment milik apple yang sudah rilis oktober lalu. Ada kemungkinan aplikasi Softcard milik google akan mengalahkan aplikasi milik apple karena jumlah aplikais android lebih besar dari jumlah pemakai apple. 









Selamat meninggalkan payment yang memerlukan banyak kartu dan selamat datang di z generation.


References 

SMH

Wednesday, March 4, 2015

Menggunakan Calendar Provider API Android

Calendar Provider API biasanya digunakan untuk membuat event. Menggunakan Calendar Provider API kita dapat membuat, mengubah dan menghapus event. Yang akan dibuat kali ini hanya create event saja.

1. XML Layout
Buat dua XML layout file di folder “res/layout/” :

res/layout/activity_main.xml tombol untuk membuat event

File : activity_main.xml
<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:orientation="vertical" >"

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="onClick"
        android:text="Create Event" />

</LinearLayout>

2. Activity
Buat sebuah activity class.

1. MainActivity.java

File : MainActivity.java
package com.example.calendarapi;

import java.util.GregorianCalendar;

import android.app.Activity;
import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.ContentValues;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.CalendarContract;
import android.provider.CalendarContract.Calendars;
import android.provider.CalendarContract.Events;
import android.util.Log;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends Activity {
    
 private static final String TAG = "MainActivity";
 
    public static final String[] EVENT_PROJECTION = new String[] {
  Calendars._ID,      // 0
  Calendars.ACCOUNT_NAME,   // 1
  Calendars.CALENDAR_DISPLAY_NAME // 2
    };
  private static final int PROJECTION_ID_INDEX = 0;
  private static final int PROJECTION_ACCOUNT_NAME_INDEX = 1;
  private static final int PROJECTION_DISPLAY_NAME_INDEX = 2;

  @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
  
  public void onClick(View view) {
  Intent intent = new Intent(Intent.ACTION_INSERT);
  intent.setType  ("vnd.android.cursor.item/event");
  intent.putExtra  (Events.TITLE, "Learn Android");
  intent.putExtra  (Events.EVENT_LOCATION, "Jakarta, Indonesia");
  intent.putExtra  (Events.DESCRIPTION, "");
  GregorianCalendar calDate = new GregorianCalendar();
  intent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME,
    calDate.getTimeInMillis());
  intent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME,
    calDate.getTimeInMillis());
  intent.putExtra(CalendarContract.EXTRA_EVENT_ALL_DAY, true);
  intent.putExtra(Events.RRULE,
    "FREQ=WEEKLY;COUNT=11;WKST=SU;BYDAY=TU,TH");
  intent.putExtra(Events.ACCESS_LEVEL, Events.ACCESS_PRIVATE);
  intent.putExtra(Events.AVAILABILITY, Events.AVAILABILITY_BUSY);
  startActivity(intent);
 }  

  public void queryCalendar(View view) {
  Cursor cursor = null;
  ContentResolver cr = getContentResolver();
  Uri uri = Calendars.CONTENT_URI;
  String selection = "((" + Calendars.ACCOUNT_NAME + " = ?) AND ("
    + Calendars.ACCOUNT_TYPE + " = ?))";
  String[] 
    selectionArgs = new String[] { "sugarhutabarat@gmail.com",
    "com.google" };
  cursor = cr.query(uri, EVENT_PROJECTION, selection, selectionArgs, null);
  Toast.makeText(this, String.valueOf(cursor.getCount()), Toast.LENGTH_LONG)
    .show();
  
  while (cursor.moveToNext()) {
   long calID = 0;
   String displayName = null;
   String accountName = null;
   
   calID   = cursor.getLong(PROJECTION_ID_INDEX);
   displayName = cursor.getString(PROJECTION_DISPLAY_NAME_INDEX);
   accountName = cursor.getString(PROJECTION_ACCOUNT_NAME_INDEX);
   
   Toast.makeText(this, "Calendar " + displayName, Toast.LENGTH_SHORT)
     .show();
   
   long calID1 = 2;
   ContentValues 
   values = new ContentValues();
   values.put(Calendars.CALENDAR_DISPLAY_NAME, "Your Calendar Name");
   
   Uri updateUri = ContentUris.withAppendedId(Calendars.CONTENT_URI, calID1);
   int rows = getContentResolver().update(updateUri, values, null, null);
   Log.i(TAG, "Rows updated: " + rows);
  }
 }
}


Download Source Code
download source code disini dan cara download tusfile disini

References 


S.M.H

Sunday, March 1, 2015

Membuat Simple User Interface di Android

Untuk membuat simple user interface activity pada android pertama yang kita butuhkan adalah:

1. XML Layout
Buat dua XML layout file di folder “res/layout/” :

res/layout/activity_main.xml – Activity pertama

res/layout/displaymessage.xml – Activity kedua

File : res/layout/activity_main.xml
<?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:orientation="horizontal">
    <EditText 
        android:id="@+id/edit_message"
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:hint="@string/edit_message" />
    <Button
        android:id="@+id/sendbutton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button_send"/>
</LinearLayout>
Kemudian kita tambahkan activity kedua untuk menampung teks dari activity pertama.

File : res/layout/displaymessage.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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/message"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="113dp"/>

</RelativeLayout>
File : res/values/strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">Send Message</string>
    <string name="edit_message">Write Message here</string>
    <string name="button_send">Send</string>
    <string name="action_settings">Settings</string>
    <string name="title_activity_main">MainActivity</string>
</resources>
2. Activity
buat 2 buah activity class

1. MainActivity.java
2. DisplayMessage.java

File : MainActivity.java
package com.example.simpleui;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity {
 
 protected static final String EXTRA_MESSAGE = 
   "com.example.simpleui.MESSAGE";
 
 public Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        onClickListener();
    }
    
    public void onClickListener(){
     final Context context = this;
     button = (Button)findViewById(R.id.sendbutton);
     button.setOnClickListener(new OnClickListener(){
   
   @Override
   public void onClick(View v) {
    Intent intent = 
      new Intent(context, DisplayMessage.class);
    EditText editText = 
      (EditText) findViewById(R.id.edit_message);
    String message = editText.getText().toString();
    intent.putExtra(EXTRA_MESSAGE, message);
    startActivity(intent);
   }
  });
    }


}

File : DisplayMessage.java
package com.example.simpleui;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

public class DisplayMessage extends Activity{
 
 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.displaymessage);
        onDisplayMessage();
    }
 public void onDisplayMessage(){
  
  Intent intent = getIntent();
  String message = 
    intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
  TextView textView = 
    (TextView) findViewById(R.id.message);
  textView.setTextSize(24);
     textView.setText(message);
 }
}

3. AndroidManifest.xml
deklarasikan class activity kedua pada AndroidManifest.xml

File : AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.simpleui"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="21" />

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

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".DisplayMessage"
            android:label="@string/app_name" >
        </activity>
    </application>

</manifest>

4. Demo
Running Aplikasi
Download Source Code
download source code disini dan cara download tusfile disini

References 

Wednesday, February 25, 2015

Mulai meninggalkan kartu kredit

Saat ini semua hal sudah bergerak kearah digital dan mobile. Sudah banyak hal yang dapat digantikan dengan mobile aplication diantaranya camera, catatan, wartel dan lainnya. Dulu orang berpikir bagaimana cara berbelanja tanpa harus membawa uang yang banyak dan tanpa takut akan hilang kemudian muncullah kartu kredit dan debit. Dalam beberapa dekade ini kartu kredit sangat memegang peranan penting dalam transaksi. Siiring dengan pergerakan kebutuhan, kartu kredit sudah mulai coba di geser dengan kemampuan aplikasi mobile pada handphone saat ini. Aplikasi pada mobile saat ini sudah banyak dilengkapi dengan menu payment pada store ataupun pembelian tertentu. Hal ini merupakan tanda kedepannya ada kemungkinan bahwa pembayaran cash atau pun kartu kredit akan perlahan hilang. Contohnya saja pada salah satu provider ini.






Pasti kita sudah tidak asing lagi dengan provider ini. Ini adalah bukti salah satu pergerakan perubahan payment dimasa depan. Dengan kemampuan dan integrasi aplikasi ke berbagai aspek kita dapat melakukan pembayaran hanya dengan handphone di genggaman kita. 

S.M.H

Android Activity Sederhana

Di android, activity adalah komponen pada aplikasi Android yang menampilkan dan mengatur halaman aplikasi sebagai tempat interaksi antara pengguna dengan aplikasi. Sebuah Activity mengatur satu halaman user interface aplikasi, sehingga jika sebuah aplikasi Android memiliki beberapa halaman user interface yang saling berinteraksi, berarti aplikasi tersebut memiliki beberapa Activity yang saling berinteraksi. Untuk penjelasan tetang activity lebih jelas dan detail silakan cek disini.

Untuk membuat interaksi antar activity kita membutuhan langkah-langkah berikut.

1. XML Layout
Buat dua XML layout file di folder “res/layout/” :

res/layout/activity_main.xml – Activity pertama

res/layout/activity_main_2.xml – Activity kedua

File : res/layout/activity_main.xml
<RelativeLayout 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:orientation="vertical" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="Pilih" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/button1"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="25dp"
        android:text="Activity Pertama"
        android:textAppearance="?android:attr/textAppearanceLarge" />

</RelativeLayout>
File : res/layout/activity_main_2.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="Kembali" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/button1"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="35dp"
        android:text="Activity kedua"
        android:textAppearance="?android:attr/textAppearanceMedium" />

</RelativeLayout>
2. Activity
buat 2 buah activity class

1. MainActivity.java
2. Activity2.java

Untuk memindahkan dari satu activity ke activity yang lain kita dapat menggunakaan kode berikut.

Intent intent = new Intent(context, class activity tujuan.class);
startActivity(intent);

File : MainActivity.java
package com.smh.activity;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import android.view.View;
import android.view.View.OnClickListener;

public class MainActivity extends Activity {
 
 public Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        onClickListener();
    }
    
    public void onClickListener(){
     final Context context = this;
     button = (Button)findViewById(R.id.button1);
     button.setOnClickListener(new OnClickListener() {
   
   @Override
   public void onClick(View v) {
    Intent intent = new Intent(context, Activity2.class);
    startActivity(intent);
   }
  });
    }

}


File : Activity2.java
package com.smh.activity;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class Activity2 extends Activity{
 
 public Button button2;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main_2);
  OnClickListener();
 }
 
 public void OnClickListener(){
  final Context context = this;
     button2 = (Button)findViewById(R.id.button2);
     
     button2.setOnClickListener(new OnClickListener() {
   
   @Override
   public void onClick(View v) {
    Intent intent = new Intent(context, MainActivity.class);
    startActivity(intent);
   }
  });
 }

}


3. AndroidManifest.xml
deklarasikan class activity kedua pada AndroidManifest.xml

File : AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.smh.activity"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="21" />

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

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:label="@string/app_name"
            android:name=".Activity2" >
        </activity>
    </application>

</manifest>

4. Demo
Running Aplikasi
Download Source Code
download source code disini dan cara download tusfile disini

References 
1. Activities Android

Thursday, February 5, 2015

Happy Birthday Facebook

Sudah sebelas tahun Facebook sejak pertama online pada 2004. Facebook diluncurkan pertama kali oleh Mark Zuckerberg pada 4 Februari 2004 sebagai media untuk saling mengenal bagi para mahasiswa di lingkungan kampus Harvard.



Dalam waktu beberapa minggu setelah online pertama kali, separuh dari mahasiswa Harvard tertarik untuk memiliki account di Facebook. Tak hanya dalam lingkungan Harvard saja, mahasiswa dari kampus lain juga tertarik ingin memiliki  account di Facebook. Akhirnya dengan bantuan teman-temannya, dalam waktu 4 bulan semenjak diluncurkan, Facebook telah digunakan di 58 kampus.

Melihat kesuksesan tersebut Zuckerberg beserta dua orang temannya memutuskan untuk pindah ke Palo Alto dan menyewa apartemen di sana dan menjadikannya sebagai kantor mereka.

Setelah beberapa minggu di Palo Alto. Zuckerberg bertemu dengan Sean Parker yang merupakan cofounder Napster dan Parker tertarik untuk ikut serta mengembangkan Facebook. Tidak lama setelah itu, Mereka berhasil mendapatkan investasikan sebesar 500.000 US Dollar untuk pengembangan Facebook dari Peter Thiel cofounder Paypal.

Jumlah account di Facebook terus melonjak, sehingga pada pertengahan 2004 Friendster mengajukan tawaran kepada Zuckerberg untuk membeli Facebook seharga 10 juta US Dollar, dan Zuckerberg pun menolaknya. Zuckerberg juga pernah menolak tawaran dari Viacom yang ingin membeli Facebook seharga 750 juta US Dollar, dan tawaran dari Yahoo yang ingin membeli Facebook seharga 1 milyar US Dollar. Hal itu kini membuat dia menjadi pemuda paling kaya di muka bumi.

Kini jumlah pengguna Facebook telah mencapai Milyaran account, kalau dia ingin membentuk sebuah negara dia telah memiliki banyak rakyat.

SMH

Wednesday, February 4, 2015

10 Game Action Seru yang Muncul di 2015

Batman Arkham Knight
Batman Arkham Knight adalah game action-adventure buatan Warner Bros. Game ini dapat dimainkan di PlayStation 4, Xbox and Microsoft Windows rencananya game ini akan di rilis pada 2 Juni 2015.




Bloodborne
Bloodborne adalah game yang dideveloped dan dipublish oleh Sony Computer Entertainment yang nantinya dapat dimainkan di PlayStation 4. Rencanya game ini akan rilis pada Maret 2015.


Metal Gear Solid V The Phantom Pain
Metal Gear Solid V The Phantom Pain adalah  action-adventure yang mengambil setting perang di Africa, Afghanistan hingga perang Soviet Nantinya game ini dapat dimainkan di PlayStation 4, PlayStation 3, Xbox One, Xbox 360, Microsoft Windows.




Overwatch 
Overwatch adalah game perang yang development oleh Blizzard Entertainment. Game ini dijadwalkan sudah rilis pada awal tahun 2015 dan kalian dapat memainkan game ini di OS X dan Microsoft Windows.




Scalebound
Game pertempuran monster ini dijadwalkan akan rilis pada Juni tahun ini. Game ini dapat dimainkan di X-Box.



Halo 5: Guardians
Halo 5: Guardians adalah game yang di  developed 343 Industries dan dipublish oleh Microsoft Studios. game ini meneruskan sequel geme Halo 4, game ini akan rilis untuk pera pecinta geme action pada tahun ini.




The Order: 1886
The Order: 1886 adalah single-player action-adventure yang dideveloped oleh Ready at Dawn and SCE Santa Monica Studio dan publikasikan oleh Sony Computer Entertainment. Game ini dapat dimainkan pada PlayStation 4 februari mendatang.


Tom Clancy's Rainbow Six Siege
Tom Clancy's Rainbow Six Siege adalah game perang yang di development dan publikasikan oleh Ubisoft Montreal. game ini dijadwalkan akan rilis pada juni 2014 tahun kemarin, namun di cancel dan akan direncanakan rilis pada tahun ini.




Tom Clancy's The Division
Tom Clancy's The Division adalah salah satu game RPG yang dapat dimainkan di Microsoft Windows, PlayStation 4 and Xbox One. Latar game ini menceritakan pelaksanaan misi pasukan Amerika. Tom Clancy's The Division dijadwalkan akan rilis juga tahun ini.


Xenoblade Chronicles X
Xenoblade Chronicles X adalah game jepang yang didevelope oleh  Monolith Soft and dan di publish oleh Nintendo untuk Wii U. Game adalah bagian dari seri Xeno,game ini dijadwalkan akn rilis pada 29 April 2015 di Jepan.


Evolusi Cara Kerja

Mengutip dari buku yang ditulis oleh Jacob Morgan The Future of Work, dalam bukunya dia membahas tetang perubahan perusahaan dari masa lalu ke masa sekarang. Jeff Bezos, CEO and Founder dari Amazon.com dalam pernyataannya mengatakan tim yang besar tidak harus terpusat pada satu tempat, jika semua sudah terkoneksi internet maka tidak akan ada masalah dimanapun lokasi dia bekerja.



Dalam memasarkan suatu produk selalu berbicara tetang pengembangan produk, layanan konsumen dan bagaimana hal tersebut menjadi solusi. Pada saat ini semua sudah terhubung dengan berbagai informasi, oleh sebab itu inovasi dan komunikasi sudah dapat dilakukan tanpa ada batasan.
Perusahaan sudah bergerak dengan cepat dalam mebuat suatu produk baru berdasarkan apa yang pasar saat ini inginkan, dan mereka tidak lagi membatasi inovasi dan kreativitas hanya dari internal mereka tatapi dapat dari manapun serta mereka lebih terbuka dalam pengembangannya sehingga banyak masukan yang mereka dapat.(reference : forbes.com)


SMH

Tuesday, February 3, 2015

Situs torrent The Pirate Bay kembali online


The Pirate Bay adalah salah satu situs download yang paling populer didunia, tetapi pada desember tahun lalu website tersebut telah ditutup oleh  kelompok anti-pembajakan Swedia. Hal itu membuat website berlogo kapal bajak laut itu offline untuk beberapa waktu. Namun tidak butuh waktu telalu lama untuk The Pirate Bay untuk kembali online tapi kali ini dengan tampilan logo baru. seperti yang dilangsir oleh VentureBeat The Pirate Bay akan tampil dengan logo phoenix.
https://thepiratebay.se/

The Pirate Bay merupakan situs download torrent dengan kapasitas yang sangat besar dan server yang baik. Offlinenya website ini membuat banyak website peniru bermunculan dengan memanfaatkan kepopuleran website ini. Website ini muncul kembali pada 1 Februari 2015, hal ini mungkin akan menjadi kabar buruk bagi beberapa pihak. Namun bagi para nitizen yang sangat menyukai mendownload gratis dan lengkap hal ini adalah berita yang sangat baik.

S.M.H