Program Grafik IP mahasiswa PTIIK
    kasus/soal:
Membuat aplikasi Graphics and animation 
    cara membuat dan source code :
buat project Android seperti biasa. Kemudian kita letakkan file library AChartEngine, misal yang penulis gunakan adalah achartengine-1.0.0.jar, dicopy dari Explorer, buka Eclipse, buka folder libs di project yang sedang dibuat kemudian Paste.
Setelah itu tuliskan kode program di MainActivity.java sebagai berikut :
package com.example.androidchart;
import
java.util.Random;
import
org.achartengine.ChartFactory;
import
org.achartengine.GraphicalView;
import
org.achartengine.chart.BarChart.Type;
import
org.achartengine.chart.PointStyle;
import
org.achartengine.model.XYMultipleSeriesDataset;
import
org.achartengine.model.XYSeries;
import
org.achartengine.renderer.XYMultipleSeriesRenderer;
import
org.achartengine.renderer.XYSeriesRenderer;
import
android.app.Activity;
//import
android.database.Cursor;
//import
android.database.sqlite.SQLiteDatabase;
import
android.graphics.Color;
import
android.os.AsyncTask;
import
android.os.Bundle;
import
android.view.Menu;
import
android.widget.LinearLayout;
public
class MainActivity extends Activity {
//    protected Cursor cursor;
//    SQLHelper dbHelper;
        private GraphicalView mChart;
        private XYSeries visitsSeries ;
        private XYMultipleSeriesDataset dataset;
        private XYSeriesRenderer visitsRenderer;
        private XYMultipleSeriesRenderer
multiRenderer;
        public double[] arrnilai =
{31,35,29,26,30,24,20,35};
        public String[] arrurutan =
{"1", "2", "3", "4", "5",
"6", "7", "8"}; //"14/4",
"18/4", "24/4", "30/4", "7/5"};
        public String[] arrlabel =
{"1", "2", "3", "4", "5",
"6", "7", "8"};
    @Override
    public void onCreate(Bundle
savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
/*        dbHelper = new SQLHelper(this);
        SQLiteDatabase db =
dbHelper.getReadableDatabase();
                       cursor =
db.rawQuery("SELECT * FROM histori WHERE id_member = '" +
MainActivity.idlogin + "' ORDER BY id_histori ASC",null);
                       arrlemak = new
double[cursor.getCount()];
                       arrurutan = new
String[cursor.getCount()];
                       arrtgl = new
String[cursor.getCount()];
                       cursor.moveToFirst();
                       for (int cc=0; cc <
cursor.getCount(); cc++)
                       {
                                      cursor.moveToPosition(cc);
                                      arrlemak[cc]
= Double.parseDouble(cursor.getString(2).toString());
                                      arrurutan[cc]
= String.valueOf(cc+1);
                                      arrtgl[cc]
= cursor.getString(4).toString();
                       }
*/        
        // Setting up chart
        setupChart();
        // Start plotting chart
        new ChartTask().execute();      
    }
    private void setupChart(){
        //
Creating an  XYSeries for Visits
        visitsSeries
= new XYSeries("- IP mahasiswa PTIIK tiap Semester -");
        //
Creating a dataset to hold each series
        dataset
= new XYMultipleSeriesDataset();
        //
Adding Visits Series to the dataset
        dataset.addSeries(visitsSeries);      
        //
Creating XYSeriesRenderer to customize visitsSeries
        visitsRenderer
= new XYSeriesRenderer();
        visitsRenderer.setColor(Color.rgb(0,
150, 255));
        visitsRenderer.setPointStyle(PointStyle.CIRCLE);
        visitsRenderer.setFillPoints(true);
        visitsRenderer.setLineWidth(2);
        visitsRenderer.setDisplayChartValues(true);
        //
Creating a XYMultipleSeriesRenderer to customize the whole chart
        multiRenderer
= new XYMultipleSeriesRenderer();
        multiRenderer.setChartTitle("*-persentase
IP mahasiswa PTIIK-*");
        multiRenderer.setXTitle("Semester");
        multiRenderer.setYTitle("persentase
IP");
        multiRenderer.setZoomButtonsVisible(true);
        multiRenderer.setXLabels(0);
        multiRenderer.setXAxisMin(0);
        multiRenderer.setXAxisMax(5);
        multiRenderer.setYAxisMin(0);
        multiRenderer.setYAxisMax(40);
        multiRenderer.setBarSpacing(2);
        //
Adding visitsRenderer to multipleRenderer
        //
Note: The order of adding dataseries to dataset and renderers to
multipleRenderer
        //
should be same
        multiRenderer.addSeriesRenderer(visitsRenderer);
        //
Getting a reference to LinearLayout of the MainActivity Layout
        LinearLayout
chartContainer = (LinearLayout) findViewById(R.id.chart_container);
        mChart
= (GraphicalView) ChartFactory.getBarChartView(getBaseContext(), dataset,
multiRenderer, Type.DEFAULT);
                       //
Adding the Line Chart to the LinearLayout
        chartContainer.addView(mChart);
    }
    private class ChartTask extends
AsyncTask<Void, String, Void>{
        //
Generates dummy data in a non-ui thread
                       @Override
                       protected Void
doInBackground(Void... params) {
                                      int i = 0;
                                      try{
                                                     do{
                                                                    String
[] values = new String[3];
                                                                    Random
r = new Random();
                                                                    int
visits = r.nextInt(10);
                                                                    values[0]
= arrurutan[i]; // Integer.toString(i);
                                                                    values[1]
= String.valueOf(arrnilai[i]); //Integer.toString(visits);
                                                                    values[2]
= arrlabel[i];
                                                                    publishProgress(values);                                                               
                                                                    Thread.sleep(750);
                                                                    i++;
                                                     }while(i<=4);
                                      }catch(Exception
e){ }
                                      return
null;
                       }
                       // Plotting generated
data in the graph
                       @Override
                       protected void
onProgressUpdate(String... values) {
                                      visitsSeries.add(Double.parseDouble(values[0]),
Double.parseDouble(values[1]));
                                      multiRenderer.addXTextLabel(Double.parseDouble(values[0]),
arrlabel[Integer.parseInt(values[0])-1]);
                                      mChart.repaint();
                       }
    }    
    @Override
    public boolean onCreateOptionsMenu(Menu
menu) {
       
getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}
-  Buat layout tampilan di activity_main.xml
sebagai berikut :
<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" >
    
<TextView
android:id="@+id/tv_title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="Android Chart" />
    
<LinearLayout
android:id="@+id/chart_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/tv_title" >
   
    
</LinearLayout>
</RelativeLayout>
- Untuk AndroidManifest.xml tidak perlu dirubah atau ditambah :
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.androidchart"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="16" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.androidchart.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>
</application>
</manifest>
<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" >
<TextView
android:id="@+id/tv_title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="Android Chart" />
<LinearLayout
android:id="@+id/chart_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/tv_title" >
</LinearLayout>
</RelativeLayout>
- Untuk AndroidManifest.xml tidak perlu dirubah atau ditambah :
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.androidchart"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="16" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.androidchart.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>
</application>
</manifest>
·      
screenshoot:
 


 
 
 










0 komentar:
Posting Komentar