Advertisement
scorpion01

Untitled

Dec 7th, 2019
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.47 KB | None | 0 0
  1. package com.olimpiade.hapus;
  2.  
  3. import androidx.appcompat.app.AppCompatActivity;
  4.  
  5. import android.os.Bundle;
  6.  
  7. import com.github.mikephil.charting.charts.BarChart;
  8. import com.github.mikephil.charting.components.AxisBase;
  9. import com.github.mikephil.charting.components.XAxis;
  10. import com.github.mikephil.charting.data.BarData;
  11. import com.github.mikephil.charting.data.BarDataSet;
  12. import com.github.mikephil.charting.data.BarEntry;
  13. import com.github.mikephil.charting.formatter.IAxisValueFormatter;
  14. import com.github.mikephil.charting.utils.ColorTemplate;
  15.  
  16. import java.util.ArrayList;
  17. import java.util.List;
  18.  
  19. public class MainActivity extends AppCompatActivity {
  20.     BarChart mBarChart;
  21.     @Override
  22.     protected void onCreate(Bundle savedInstanceState) {
  23.         super.onCreate(savedInstanceState);
  24.         setContentView(R.layout.activity_main);
  25.  
  26.         mBarChart = findViewById(R.id.chart);
  27.  
  28.         float groupSpace = 0.08f;
  29.         float barSpace = 0.02f;
  30.         float barWidth = 0.45f;
  31.         float tahunAwal = 2016f;
  32.  
  33.         // Data-data yang akan ditampilkan di Chart
  34.         List<BarEntry> dataPemasukan = new ArrayList<BarEntry>();
  35.         dataPemasukan.add(new BarEntry(2016, 1500000));
  36.         dataPemasukan.add(new BarEntry(2017, 1430000));
  37.         dataPemasukan.add(new BarEntry(2018, 1750000));
  38.         dataPemasukan.add(new BarEntry(2019, 1390000));
  39.  
  40.         List<BarEntry> dataPengeluaran = new ArrayList<BarEntry>();
  41.         dataPengeluaran.add(new BarEntry(2016, 500000));
  42.         dataPengeluaran.add(new BarEntry(2017, 430000));
  43.         dataPengeluaran.add(new BarEntry(2018, 750000));
  44.         dataPengeluaran.add(new BarEntry(2019, 390000));
  45.  
  46.         // Pengaturan atribut bar, seperti warna dan lain-lain
  47.         BarDataSet dataSet1 = new BarDataSet(dataPemasukan, "Pemasukan");
  48.         dataSet1.setColor(ColorTemplate.JOYFUL_COLORS[0]);
  49.  
  50.         BarDataSet dataSet2 = new BarDataSet(dataPengeluaran, "Pengeluaran");
  51.         dataSet2.setColor(ColorTemplate.JOYFUL_COLORS[1]);
  52.  
  53.         // Membuat Bar data yang akan di set ke Chart
  54.         BarData barData = new BarData(dataSet1, dataSet2);
  55.  
  56.         // Pengaturan sumbu X
  57.         XAxis xAxis = mBarChart.getXAxis();
  58.         xAxis.setPosition(XAxis.XAxisPosition.BOTTOM.BOTTOM);
  59.         xAxis.setCenterAxisLabels(true);
  60.  
  61.         // Agar ketika di zoom tidak menjadi pecahan
  62.         xAxis.setGranularity(1f);
  63.  
  64.         // Diubah menjadi integer, kemudian dijadikan String
  65.         // Ini berfungsi untuk menghilankan koma, dan tanda ribuah pada tahun
  66.         xAxis.setValueFormatter(new IAxisValueFormatter() {
  67.             @Override
  68.             public String getFormattedValue(float value, AxisBase axis) {
  69.                 return String.valueOf((int) value);
  70.             }
  71.         });
  72.  
  73.         //Menghilangkan sumbu Y yang ada di sebelah kanan
  74.         mBarChart.getAxisRight().setEnabled(false);
  75.  
  76.         // Menghilankan deskripsi pada Chart
  77.         mBarChart.getDescription().setEnabled(false);
  78.  
  79.         // Set data ke Chart
  80.         // Tambahkan invalidate setiap kali mengubah data chart
  81.         mBarChart.setData(barData);
  82.         mBarChart.getBarData().setBarWidth(barWidth);
  83.         mBarChart.getXAxis().setAxisMinimum(tahunAwal);
  84.         mBarChart.getXAxis().setAxisMaximum(tahunAwal + mBarChart.getBarData().getGroupWidth(groupSpace, barSpace) * 4);
  85.         mBarChart.groupBars(tahunAwal, groupSpace, barSpace);
  86.         mBarChart.setDragEnabled(true);
  87.         mBarChart.invalidate();
  88.     }
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement