Selasa, 03 Februari 2015

Android - Jadwal Pelajaran

Pada kesempatan kali ini kita akan coba gunakan action bar sebagai action buttons dan overflow menu untuk membuat aplikasi jadwal pelajaran.

Step 1


Step 2

Sekarang kita siapkan menu untuk aplikasi ini, masuk directory res/menu lalu edit main.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/action_senin"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="Senin"/>
    <item
        android:id="@+id/action_selasa"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="Selasa"/>
    <item
        android:id="@+id/action_rabu"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="Rabu"/>
    <item
        android:id="@+id/action_kamis"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="Kamis"/>
    <item
        android:id="@+id/action_jumat"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="Jumat"/>

</menu>

Step 3

Sekarang kita urus layout user interfacenya, edit 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:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/textViewHari"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text=""
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <ListView
        android:id="@+id/listViewJadwal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textViewHari"
        android:layout_below="@+id/textViewHari" >
    </ListView>

</RelativeLayout>

Step 4

Untuk layout baris pada list view pada directory res/layout buat file layout baru dengan nama row_jadwal.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" >

    <TextView
        android:id="@+id/textViewRowJam"
        android:layout_width="75dp"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="TextView" />

    <TextView
        android:id="@+id/textViewRowPelajaran"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:paddingLeft="10dp"
        android:layout_toRightOf="@+id/textViewRowJam"
        android:text="TextView" />

</RelativeLayout>

Step 5

Buat class baru dengan nama Jadwal.java lalu ketikkan kode berkut

package com.subarman.jadwalpelajaran;

public class Jadwal {
 public String hari="";
 public String jam="";
 public String pelajaran="";

 public Jadwal (String pday, String ptime, String plesson){
  this.hari = pday;
  this.jam = ptime;
  this.pelajaran = plesson;
 }

}

Step 6

Buat Class baru dengan nama AdapterJadwal.java lalu ketikan kode berikut

package com.subarman.jadwalpelajaran;

import java.util.ArrayList;

import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

public class AdapterJadwal extends ArrayAdapter<Jadwal> {
    private Activity activity;
    private ArrayList<Jadwal> lJadwal;
    private static LayoutInflater inflater = null;

    public AdapterJadwal (Activity activity, int textViewResourceId,ArrayList<Jadwal> al_Jadwal) {
        super(activity, textViewResourceId, al_Jadwal);
        try {
            this.activity = activity;
            this.lJadwal = al_Jadwal;

            inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        } catch (Exception e) {

        }
    }

    public int getCount() {
        return lJadwal.size();
    }

    public long getItemId(int position) {
        return position;
    }

    public static class ViewHolder {
        public TextView jam;
        public TextView pelajaran;

    }

    public View getView(int position, View convertView, ViewGroup parent) {
        View vi = convertView;
        final ViewHolder holder;
        try {
            if (convertView == null) {
                vi = inflater.inflate(R.layout.row_jadwal, null);
                holder = new ViewHolder();

                holder.jam = (TextView) vi.findViewById(R.id.textViewRowJam);
                holder.pelajaran = (TextView) vi.findViewById(R.id.textViewRowPelajaran);

                vi.setTag(holder);
            } else {
                holder = (ViewHolder) vi.getTag();
            }

            holder.jam.setText(lJadwal.get(position).jam);
            holder.pelajaran.setText(lJadwal.get(position).pelajaran);

        } catch (Exception e) {

        }
        return vi;
    }
}

Step 7

Edit MainActivity.java lalu ketikkan kode berikut

package com.subarman.jadwalpelajaran;

import java.util.ArrayList;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ListView;
import android.widget.TextView;

public class MainActivity extends Activity {
 ArrayList <Jadwal> list_jadwal = new ArrayList<Jadwal>();
 TextView tvhari;
 ListView listviewjadwal ;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  tvhari = (TextView) findViewById(R.id.textViewHari);
  listviewjadwal = (ListView) findViewById(R.id.listViewJadwal);
  initData();
 }

 public void initData() {
  list_jadwal.add(new Jadwal("Senin","08:00-10:00","Matematika"));
  list_jadwal.add(new Jadwal("Senin","10:00-12:00","Agama Islam"));
  list_jadwal.add(new Jadwal("Senin","12:00-13:00","Istirahat"));
  list_jadwal.add(new Jadwal("Senin","13:00-15:00","Fisika"));
  list_jadwal.add(new Jadwal("Selasa","08:00-10:00","Bahaa Indonesia"));
  list_jadwal.add(new Jadwal("Selasa","10:00-12:00","Kimia"));
  list_jadwal.add(new Jadwal("Selasa","12:00-13:00","Istirahat"));
  list_jadwal.add(new Jadwal("Selasa","13:00-15:00","Biologi"));
  list_jadwal.add(new Jadwal("Rabu","08:00-10:00","Matematika"));
  list_jadwal.add(new Jadwal("Rabu","10:00-12:00","Seni Rupa"));
  list_jadwal.add(new Jadwal("Rabu","12:00-13:00","Istirahat"));
  list_jadwal.add(new Jadwal("Rabu","13:00-15:00","Bahasa Inggris"));
  list_jadwal.add(new Jadwal("Kamis","08:00-10:00","Fisika"));
  list_jadwal.add(new Jadwal("Kamis","10:00-12:00","Penjaskes"));
  list_jadwal.add(new Jadwal("Kamis","12:00-13:00","Istirahat"));
  list_jadwal.add(new Jadwal("Kamis","13:00-15:00","Geografi"));
  list_jadwal.add(new Jadwal("Jumat","08:00-10:00","Pemrograman Java"));
  list_jadwal.add(new Jadwal("Jumat","10:00-12:00","Pemrograman Android"));
  list_jadwal.add(new Jadwal("Jumat","12:00-13:00","Istirahat"));
  list_jadwal.add(new Jadwal("Jumat","13:00-15:00","Logika Algoritma"));
 }

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

  /**
     * On selecting action bar
     * */
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Take appropriate action for each action item click
        switch (item.getItemId()) {
        case R.id.action_senin:
            showJadwal("Senin");
            return true;
        case R.id.action_selasa:
            // location found
         showJadwal("Selasa");
            return true;
        case R.id.action_rabu:
         showJadwal("Rabu");
            return true;
        case R.id.action_kamis:
         showJadwal("Kamis");
            return true;
        case R.id.action_jumat:
         showJadwal("Jumat");
            return true;
        default:
            return super.onOptionsItemSelected(item);
        }
    }

 public void showJadwal(String hari) {

  tvhari.setText("Hari " + hari);
  ArrayList<Jadwal> jadwal_terpilih = new ArrayList<Jadwal>();
   for (int i = 0; i < list_jadwal.size(); i++) {
    Jadwal jadwal = list_jadwal.get(i);
    if (jadwal.hari.equals(hari)) {
     jadwal_terpilih.add(jadwal);
    }
   }

  AdapterJadwal adapterjadwal = new AdapterJadwal(MainActivity.this, 0,
    jadwal_terpilih);
  listviewjadwal.setAdapter(adapterjadwal);

 }

}




Selasa, 11 November 2014

Radio Button dengan MediaPlayer



Pada kesempatan tugas UTS kali ini saya akan membuat aplikasi android sederhana yaitu, Radio Button dengan Media Player.


Langsung saja untuk Step 1,
Buat Project baru di Eclipse IDE, File => Android Application Project. Kemudia berikan nama Activity sebagai MainActivity.

Step 2,


Buka Folder res => layout => main_activity.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="fill_parent"
    android:orientation="vertical" >
   
    <RadioGroup
        android:id="@+id/music"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >
       
        <TextView
            android:id="@+id/pop"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            android:text="Pop"
            android:textAppearance="?android:attr/textAppearanceLarge" />
       
        <RadioButton
            android:id="@+id/kangen"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="35dp"
            android:text="Dewa 19 - Kangen" />
       
        <RadioButton
            android:id="@+id/ibu"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="35dp"
            android:text="Iwan Fals - Ibu" />
       
        <RadioButton
            android:id="@+id/dealova"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="35dp"
            android:text="Once - Dealova"/>
       
        <TextView
            android:id="@+id/accoustic"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            android:text="Accoustic"
            android:textAppearance="?android:attr/textAppearanceLarge" />
       
        <RadioButton
            android:id="@+id/imyours"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="35dp"
            android:text="Sabrina - I\'m Yours" />
       
        <RadioButton
            android:id="@+id/badday"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="35dp"
            android:text="Sabrina - Bad Day" />
       
        <RadioButton
            android:id="@+id/youandme"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="35dp"
            android:text="Lifehouse - You and Me"/>
    </RadioGroup>

    <Button
        android:id="@+id/stop"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:text="Stop" />
   
</RelativeLayout>
 

Step 3,

Buka Folder src => (package name) => MainActivity.java


package su.barman.radiobuttonmusic;

import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity {

       @Override
       public void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.main_activity);
             
             
       }      
}


Step 4,

Coba jalankan aplikasi tersebut, berikut tampilannya :






Step  5,

Buat folder baru di dalam folder res dan berikan nama raw, folder raw adalah tempat penyimpanan musik


Step 6, Selesai

Buka kembali file MainActivity.java


package su.barman.radiobuttonmusic;

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;

public class MainActivity extends Activity {

       public MediaPlayer mp;
      
       public RadioGroup musicid;
      
       public int resId;

       public String title;
      
       public Button stop;
      
       public RadioButton kangenid, ibuid, dealovaid, imyoursid, baddayid, youandmeid;
      
       @Override
       public void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.main_activity);
             
              kangenid      = (RadioButton) findViewById(R.id.kangen);
              ibuid         = (RadioButton) findViewById(R.id.ibu);
              dealovaid     = (RadioButton) findViewById(R.id.dealova);
              imyoursid     = (RadioButton) findViewById(R.id.imyours);
              baddayid      = (RadioButton) findViewById(R.id.badday);
              youandmeid    = (RadioButton) findViewById(R.id.youandme);
             
              musicid       = (RadioGroup) findViewById(R.id.music);
                          
              stop          = (Button) findViewById(R.id.stop);
             
              musicid.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

                     @Override
                     public void onCheckedChanged(RadioGroup group, int checkedId) {
                           switch(checkedId) {
                                  case R.id.kangen:
                                         resId = R.raw.kangen;
                                         title = "Dewa 19 - Kangen";
                                  break;
                                  case R.id.ibu:
                                         resId = R.raw.ibu;
                                         title = "Iwan Fals - Ibu";
                                  break;
                                  case R.id.dealova:
                                         resId = R.raw.dealova;
                                         title = "Once - Dealova";                                    
                                  break;
                                  case R.id.imyours:
                                         resId = R.raw.imyours;
                                         title = "Sabrina - I\'m Yours";
                                  break;
                                  case R.id.badday:
                                         resId = R.raw.badday;
                                         title = "Sabrina - Bad Day";
                                  break;
                                  case R.id.youandme:
                                         resId = R.raw.youandme;
                                         title = "Lifehouse - You and Me";
                                  break;
                           }
                          
                           if(mp != null) {
                                  mp.release();
                           }
                          
                           mp = MediaPlayer.create(getApplicationContext(), resId);
                           mp.start();
                           Toast.makeText(getApplicationContext(), "Now "+title, Toast.LENGTH_SHORT);

                     }
              });
             
              stop.setOnClickListener(new OnClickListener(){

                     @Override
                     public void onClick(View v) {
                           if(mp != null) {
                                  if(mp.isPlaying()) {
                                         mp.stop();
                                         mp = null;
                                  }
                           }
                           Toast.makeText(getApplicationContext(), "Stop", Toast.LENGTH_SHORT);
                           kangenid.setChecked(false);
                           ibuid.setChecked(false);
                           dealovaid.setChecked(false);
                           imyoursid.setChecked(false);
                           baddayid.setChecked(false);
                           youandmeid.setChecked(false);
                     }
                    
              });
       }
}