pemanfaatan sensor kompas dengan android studio

#Aplikasi kompas dengan menggunakan android studio


Ok pada artikel kali ini saya akan membuat aplikasi kompas dengan menggunakan tools android studio. kurang lebih tampilan aplikasinya yaitu seperti gambar berikut ini :

Salah satu komponen pada Android yang bisa dikembangkan adalah bagian sensor. Beberapa sensor yang ada di perangkat Android umunya yaitu Accelerometer, Light, Orientation, Prioximity, Temperature, Gyroscope, Sound, Magnetic, dan Pressure. Namun dalam satu perangkat bisa saja tidak memiliki semua sensor. Untuk mendeteksi sensor apa saja yang terdapat pada perangkat anda bisa menggunakan aplikasi yang tersedia di Play Store.

Untuk aplikasi menggunakan sensor kali ini yang ingin saya kembangkan adalah menggunakan  sensor magnetic dalam membuat kompas.

Pertama-tama siapkan gambar kompas yang akan digunakan. Bisa mencari di internet 
atau membuat sendiri. Lebih baik jika gambar dalam bentuk *.png agar bisa memiliki 
background yang transparan.

Untuk antarmuka aplikasi, saya akan menggunakan Textview dan widget ImageView. 
Untuk TextView sendiri nantinya berfungsi untuk menunjukkan berapa nilai heading daring kompas, sementara ImageView berperan sebagai arah navigasi kompas dengan menggunakan sebuah gambar navigasi. Aplikasi ini nanti berjalan menggunakan Android Light Sensor.

Dalam proses pembuatan aplikasinya silahkan ikuti langkah-langkah berikut ini:


#1 Membuat projek Baru


saya kira untuk pembuatan projek baru ini sangat mudah sekali, namun jika kalian masih bingung silahkan ikuti langkah berikut ini :
  • Buka android studio kemudian buatlah projek baru dengan cara klik File==>New==>New Project
  • pada Aplication Name berinama kompas==>lalu klik next
  • pilih minimum SDK==>klik Next
  • pilih Empty Activity==>klik Next==>Finish

  • pastikan struktur projeknya seperti berikut ini



#2 Script Program


setelah proses pembuatan projek baru diatas sudah kalian lakukan dengan benar, maka selanjutnya silahkan kalian Copy script berikut ini :

  • Pada file MainActivity.java silahkan ganti dengan script berikut ini 
(pada script yang berwarna merah sesuakan dengan paket projek kalian masing-masing disaat membuat projek baru tadi jangan di rubah)
package com.example.smart.kompasd;

import android.os.Bundle;

import android.support.design.widget.FloatingActionButton;

import android.support.design.widget.Snackbar;

import android.support.v7.app.AppCompatActivity;

import android.support.v7.widget.Toolbar;

import android.view.View;

import android.view.Menu;

import android.view.MenuItem;

import android.app.Activity;

import android.hardware.Sensor;

import android.hardware.SensorEvent;

import android.hardware.SensorEventListener;

import android.hardware.SensorManager;

import android.os.Bundle;

import android.view.animation.Animation;

import android.view.animation.RotateAnimation;

import android.widget.ImageView;

import android.widget.TextView;



public class MainActivity extends Activity implements SensorEventListener {


    // variabel untuk gambar kompas yang digunakan

    private ImageView image;


    // variabel untuk menangkap derajat perputaran

    private float currentDegree = 0f;


    // device sensor manager

    private SensorManager mSensorManager;


    TextView tvHeading;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);


// mengintegrasikan gambar dari file xml

        image = (ImageView) findViewById(R.id.imageViewCompass);


// variabel ini akan menagkap derajat kemana perangkat menghadap

        tvHeading = (TextView) findViewById(R.id.tvHeading);


// initialize sensor android apakah kompatible

        mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);

    }

    @Override

    protected void onResume() {

        super.onResume();


        mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION),

                SensorManager.SENSOR_DELAY_GAME);

    }

    @Override

    protected void onPause() {

        super.onPause();


// to stop the listener and save battery

        mSensorManager.unregisterListener(this);

    }

    @Override

    public void onSensorChanged(SensorEvent event) {


// // mendapatkan derajat sumbu z

        float degree = Math.round(event.values[0]);

        tvHeading.setText("Heading " + Float.toString(degree) + "°");


//  membuat animasi rotasi

        RotateAnimation ra = new RotateAnimation(

                currentDegree,

                -degree,

                Animation.RELATIVE_TO_SELF, 0.5f,

                Animation.RELATIVE_TO_SELF,

                0.5f);


// how long the animation will take place

        ra.setDuration(60);


// set the animation after the end of the reservation status

        ra.setFillAfter(true);


// memulai animasi

        image.startAnimation(ra);

        currentDegree = -degree;
    }

    @Override

    public void onAccuracyChanged(Sensor sensor, int accuracy) {

// not in use

    }

}

  • pada file content_main.xml gantilah dengan script berikut ini (jika file content_main.xml tidak ada silahkan kamu letakan di file activity_main.xml tidak masalah)
(pada script yang berwarna merah sesuakan dengan paket projek kalian masing-masing disaat membuat projek baru tadi jangan di rubah)
<?xml version="1.0" encoding="utf-8"?>

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

    xmlns:app="http://schemas.android.com/apk/res-auto"

    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"

    app:layout_behavior="@string/appbar_scrolling_view_behavior"

    tools:context="com.example.smart.kompasd.MainActivity"

    tools:showIn="@layout/activity_main">

    <ImageView

        android:layout_width="wrap_content"

        android:layout_height="120dp"

        android:src="@drawable/prompt"

        android:layout_alignParentLeft="true"

        android:layout_alignParentStart="true"

        android:layout_alignTop="@+id/tvHeading"

        android:layout_marginTop="-62dp"

        android:id="@+id/imageView" />


    <TextView

        android:id="@+id/tvHeading"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_centerHorizontal="true"

        android:layout_marginBottom="40dp"

        android:layout_marginTop="40dp"

        android:text="Heading 0"

        android:textColor="#ffffff"

        android:textSize="28dp" />


    <ImageView

        android:id="@+id/imageViewCompass"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:src="@drawable/kompas"

        android:layout_centerVertical="true"

        android:layout_alignParentLeft="true"

        android:layout_alignParentStart="true"

        android:layout_marginRight="17dp"

        android:layout_marginLeft="17dp" />


    <TextView

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:textAppearance="?android:attr/textAppearanceMedium"

        android:id="@+id/textView"

        android:textAlignment="center"

        android:layout_alignParentBottom="true"

        android:layout_centerHorizontal="true"

        android:layout_marginBottom="20dp"

        android:textColor="#acacac"

        android:textSize="14dp" />

</RelativeLayout>

  • kemudian downloadlah kedua gambar berikut ini
  • letakkan kedua gambar tersebut kedalam folder LocalDisk C==>Users==>NamaKomputerKamu==>androidStudioProject==>kompas==>app==>src==>main==>res==>drawable
  • Pada file AndroidManifest.xml pastikan sesuai seperti script berikut ini
<?xml version="1.0" encoding="utf-8"?>

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

    package="com.example.smart.kompasd">


    <application

        android:allowBackup="true"

        android:icon="@mipmap/ic_launcher"

        android:label="@string/app_name"

        android:supportsRtl="true"

        android:theme="@style/AppTheme">

        <activity

            android:name=".MainActivity"

            android:label="@string/app_name"

            android:theme="@style/AppTheme.NoActionBar">

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

    </application>

</manifest>

jika semua sudah selesai kalian lakukan, maka selanjutnya silahkan projeknya kamu jalankan.
hasil output diatas saya jalankan dengan emulator HP Android saya. selamat mencoba dan sukses.


#Download program lengkap


Klik DISINI

Cara downloadnya pada pojok kanan atas, tunggu 5 detik==>klik skip


BACA JUGA : Cara menjalankan projek android studio dengan emulator HP android

Posting Komentar untuk "pemanfaatan sensor kompas dengan android studio"