Pada tutorial kali ini kita akan menciptakan aplikasi alarm pada android. Aplikasi ini akan membunyikan alarm pada waktu yang sudah ditentukan oleh user. Untuk mempersingkat waktu, berikut hal yang diharapkan untuk menciptakan aplikasi ini.

  • IDE (Android Studio)
  • Sound untuk alarm format mp3
  • MainActivity
  • TimePicker Dialog
  • OnTimeSetListener
  • Receiver Class

Pertama buat project gres dengan minSdkVersion 8 dan targetSdkVersion 15. Beri nama sesuka anda.

Setelah itu buka layout untuk MainActivity dan ubah menjadi menyerupai ini.

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:gravity="center"android:orientation="vertical" ><TextViewandroid:id="@+id/textView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="My Alarm"android:textAppearance="?android:attr/textAppearanceLarge" /><AnalogClockandroid:id="@+id/analogClock1"android:layout_width="wrap_content"android:layout_height="wrap_content" /><Buttonandroid:id="@+id/startSetDialog"android:layout_width="wrap_content"android:layout_height="wrap_content"android:drawableLeft="@android:drawable/ic_lock_idle_alarm"android:text="Set Alarm" /><TextViewandroid:id="@+id/alarmprompt"android:layout_width="wrap_content"android:layout_height="wrap_content"android:gravity="center" /></LinearLayout>

 Jika sudah maka tampilan akan menjadi menyerupai ini

Membuat Aplikasi Alarm Sederhana Di Android

 

Pada Activity ini kita memakai view AnalogClock hanya untuk sekedar menampilkan waktu. Button Set Alarm dipakai untuk memilih kapan alarm berbunyi. Sekarang kita mau ketika user menekan button maka akan ditampilkan TimePicker sehingga user dapat memilih jam dan menit berapa alarm akan berbunyi.

 

Tambahkan beberapa field berikut pada MainActivity. Field tersebut akan dipakai untuk view yang ada pada layout dan sebuah field untuk requestCode.

TimePicker myTimePicker; Button buttonstartSetDialog; TextView textAlarmPrompt;  TimePickerDialog timePickerDialog;  final static int RQS_1 = 1; 

Pada fungsi onCreate tambahkan baris code ini 

textAlarmPrompt = (TextView) findViewById(R.id.alarmprompt);  buttonstartSetDialog = (Button) findViewById(R.id.startSetDialog); buttonstartSetDialog.setOnClickListener(new OnClickListener() {     @Override    public void onClick(View v) {       textAlarmPrompt.setText("");       openTimePickerDialog(false);     } }); 

Sekarang ketika user menekan button Set Alarm maka aplikasi akan menampilkan TimePicker dengan fungsi berikut. Tambahkan baris code ini ke MainActivity.

private void openTimePickerDialog(boolean is24r) {    Calendar calendar = Calendar.getInstance();     timePickerDialog = new TimePickerDialog(MainActivity.this,          onTimeSetListener, calendar.get(Calendar.HOUR_OF_DAY),          calendar.get(Calendar.MINUTE), true);    timePickerDialog.setTitle("Set Alarm Time");     timePickerDialog.show();  }

Jika waktu sudah diset maka kita memerlukan satu listener lagi ialah OnTimeSetListener. Berikut baris code nya.

OnTimeSetListener onTimeSetListener = new OnTimeSetListener() {     @Override    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {        Calendar calNow = Calendar.getInstance();       Calendar calSet = (Calendar) calNow.clone();        calSet.set(Calendar.HOUR_OF_DAY, hourOfDay);       calSet.set(Calendar.MINUTE, minute);       calSet.set(Calendar.SECOND, 0);       calSet.set(Calendar.MILLISECOND, 0);        if (calSet.compareTo(calNow) <= 0) {          // Today Set time passed, count to tomorrow          calSet.add(Calendar.DATE, 1);          Log.i("hasil", " =<0");       } else if (calSet.compareTo(calNow) > 0) {          Log.i("hasil", " > 0");       } else {          Log.i("hasil", " else ");       }        setAlarm(calSet);    } };

 

Sekarang kita perlu mengirim waktu yang sudah ditentukan ke receiver alarm (receiver akan dibentuk sesudah ini).

 

private void setAlarm(Calendar targetCal) {     textAlarmPrompt.setText("***\n" + "Alarm set on " + targetCal.getTime()          + "\n***");     Intent intent = new Intent(getBaseContext(), AlarmReceiver.class);    PendingIntent pendingIntent = PendingIntent.getBroadcast(          getBaseContext(), RQS_1, intent, 0);    AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);    alarmManager.set(AlarmManager.RTC_WAKEUP, targetCal.getTimeInMillis(),          pendingIntent);  }

 

Terakhir kita menciptakan sebuah class gres berjulukan AlarmReceiver dengan extends BroadcastReceiver. Class ini akan bekerja sesuai namanya ialah sebagai receiver .

 

package com.alarm.app;  import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.media.MediaPlayer; import android.widget.Toast;  public class AlarmReceiver extends BroadcastReceiver {    MediaPlayer player;     @Override    public void onReceive(Context context, Intent intent) {       // TODO Auto-generated method stub       Toast.makeText(context, "Alarm aktif!", Toast.LENGTH_LONG).show();       player = MediaPlayer.create(context, R.raw.alarm);       player.start();    }  }

Sebelum kita dapat menguji aplikasi alarm yang sudah dibentuk kita memerlukan sebuah file bunyi untuk dijadikan alarm. Buatlah sebuah folder berjulukan raw di dalam res folder.

Membuat Aplikasi Alarm Sederhana Di Android

Buka folder tersebut kemudian simpan file bunyi yang akan dipakai sebagai alarm. Beri nama file tersebut dengan alarm.mp3 biar lebih mudah.

Ubah AndroidManifest.xml dan tambahkan receiver pada application menyerupai baris code di bawah ini.

Membuat Aplikasi Alarm Sederhana Di Android

FULL SOURCE CODE

MainActivity.java

package com.alarm.app;import java.util.Calendar;import android.os.Bundle;import android.app.Activity;import android.app.AlarmManager;import android.app.PendingIntent;import android.app.TimePickerDialog;import android.app.TimePickerDialog.OnTimeSetListener;import android.content.Context;import android.content.Intent;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;import android.widget.TimePicker;public class MainActivity extends Activity { TimePicker myTimePicker; Button buttonstartSetDialog; TextView textAlarmPrompt; TimePickerDialog timePickerDialog; final static int RQS_1 = 1; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.activity_main);  textAlarmPrompt = (TextView) findViewById(R.id.alarmprompt); buttonstartSetDialog = (Button) findViewById(R.id.startSetDialog);  buttonstartSetDialog.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) {textAlarmPrompt.setText("");openTimePickerDialog(false); }  }); } private void openTimePickerDialog(boolean is24r) {  Calendar calendar = Calendar.getInstance();  timePickerDialog = new TimePickerDialog(MainActivity.this,onTimeSetListener, calendar.get(Calendar.HOUR_OF_DAY),calendar.get(Calendar.MINUTE), true);  timePickerDialog.setTitle("Set Alarm Time");  timePickerDialog.show(); } OnTimeSetListener onTimeSetListener = new OnTimeSetListener() {  @Override  public void onTimeSet(TimePicker view, int hourOfDay, int minute) { Calendar calNow = Calendar.getInstance(); Calendar calSet = (Calendar) calNow.clone(); calSet.set(Calendar.HOUR_OF_DAY, hourOfDay); calSet.set(Calendar.MINUTE, minute); calSet.set(Calendar.SECOND, 0); calSet.set(Calendar.MILLISECOND, 0); if (calSet.compareTo(calNow) <= 0) {// Today Set time passed, count to tomorrowcalSet.add(Calendar.DATE, 1);Log.i("hasil", " =<0"); } else if (calSet.compareTo(calNow) > 0) {Log.i("hasil", " > 0"); } else {Log.i("hasil", " else "); } setAlarm(calSet);  } }; private void setAlarm(Calendar targetCal) {  textAlarmPrompt.setText("***\n" + "Alarm set on " + targetCal.getTime()+ "\n***");  Intent intent = new Intent(getBaseContext(), AlarmReceiver.class);  PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), RQS_1, intent, 0);  AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);  alarmManager.set(AlarmManager.RTC_WAKEUP, targetCal.getTimeInMillis(),pendingIntent); }}

 

AlarmReceiver.java

package com.alarm.app;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.media.MediaPlayer;import android.widget.Toast;public class AlarmReceiver extends BroadcastReceiver { MediaPlayer player; @Override public void onReceive(Context context, Intent intent) {  // TODO Auto-generated method stub  Toast.makeText(context, "Alarm aktif!", Toast.LENGTH_LONG).show();  player = MediaPlayer.create(context, R.raw.alarm);  player.start(); }}

Membuat Aplikasi Alarm Sederhana Di Android                 Membuat Aplikasi Alarm Sederhana Di Android                   Membuat Aplikasi Alarm Sederhana Di Android

 

 

Sekian teman-teman jagocoding tutorial kali ini. Semoga bermanfaat 🙂