Welcome

Have Fun..!

Program Grafik IP mahasiswa PTIIK

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>











·       screenshoot:




0 komentar:

Posting Komentar