Membuat Splash Screen di Android Studio



Buatlah Activity Baru dengan nama Splash_Screen, kemudian buatlah layout untuk activity splash_screen nya, misalnya menambahkan sebuah gambar dan progressbar

<?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:theme="@android:style/Theme.NoTitleBar"
   
android:layout_width="fill_parent"
   
android:layout_height="fill_parent"
   
android:layout_gravity="center"
   
android:background="#0074b9"
   
tools:context="giviews.id.splash.Splash_Screen">

    <ImageView
       
android:id="@+id/imageView"
       
android:layout_width="wrap_content"
       
android:layout_height="wrap_content"
       
android:layout_alignParentBottom="true"
       
android:layout_centerHorizontal="true"
       
android:layout_marginBottom="247dp"
       
app:srcCompat="@drawable/favicon" />

    <ProgressBar
        
android:id="@+id/progressBar2"
       
style="@style/Widget.AppCompat.ProgressBar"
       
android:layout_width="wrap_content"
       
android:layout_height="wrap_content"
       
android:layout_alignTop="@+id/imageView"
       
android:layout_centerHorizontal="true"
       
android:layout_marginTop="124dp" />

</RelativeLayout>

kemudian untuk script javanya silakan masukan kode berikut:
package giviews.id.splash;



import android.content.Intent;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;



import static android.view.Window.FEATURE_NO_TITLE;



public class Splash_Screen extends AppCompatActivity {



    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        this.requestWindowFeature(FEATURE_NO_TITLE);

        setContentView(R.layout.activity_splash__screen);

    Thread myThread = new Thread() {

        @Override

        public void run() {

            try {

                sleep(3000);

                Intent intent = new Intent(getApplicationContext(),MainActivity.class);

                startActivity(intent);

                finish();

            } catch (InterruptedException e) {

                e.printStackTrace();

            }

        }

    };

        myThread.start();

    }

}

Terakhir sesuikan kode di AndroidManifest anda seperti ini
<?xml version="1.0" encoding="utf-8"?>

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

    xmlns:tools="http://schemas.android.com/tools"

    package="giviews.id.splash">



    <application

        android:allowBackup="true"

        android:icon="@mipmap/ic_launcher"

        android:label="@string/app_name"

        android:roundIcon="@mipmap/ic_launcher_round"

        android:supportsRtl="true"

        android:theme="@style/AppTheme">

        <activity android:name=".Splash_Screen">

            <intent-filter>

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



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

            </intent-filter>

        </activity>

        <activity

            android:name=".MainActivity"

            android:theme="@style/Base.V7.Theme.AppCompat"

            tools:ignore="DuplicateActivity">

            <meta-data

                android:name="android.support.PARENT_ACTIVITY"

                android:value="giviews.id.splash.MainActivity" />

        </activity>



    </application>



</manifest>


Silakan jalankan aplikasi anda, jika ada yang error bisa ditanyakan pada kolom komentar dibawah, terimakasih sudah berkunjung ke blog ini.

Membuat Notifikasi bergetar di Android

1.       Buatlah sebuah Projek di Android Studio, pilih empty activity

2.       tambahkan permission vibrate pada AndroidManifest.xml
<uses-permission android:name="android.permission.VIBRATE" />

3.       buatlah sebuah button untuk mengirim notifikasi
<?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"
   
tools:context="giviews.id.notificationview.MainActivity">

    <Button
       
android:id="@+id/btn_displaynotif"
       
android:layout_width="fill_parent"
       
android:layout_height="wrap_content"
       
android:text="Display Notification"
       
android:onClick="onClick"/>

</RelativeLayout>

4.       kemudian buat activity baru dengan nama NotificationViewActivity dengan cara klik kanan pada folder app pilih new -> activity -> empty activity. dan masukan textview pada activity_notification_view.xml
<?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"

    tools:context="giviews.id.notificationview.NotificationViewActivity">



    <TextView

        android:id="@+id/textView"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="Diharapkan Semua Anggota BEM Rapat Di Aula Sekarang..!!"

        tools:layout_editor_absoluteX="9dp"

        tools:layout_editor_absoluteY="16dp" />



</RelativeLayout>

5.       Selanjutnya untuk file MainActivity.java masukan kode berikut
package giviews.id.notificationview;



import android.app.NotificationManager;

import android.app.PendingIntent;

import android.content.Context;

import android.content.Intent;

import android.os.Bundle;

import android.os.Vibrator;

import android.support.v4.app.NotificationCompat;

import android.support.v7.app.AppCompatActivity;

import android.view.View;



public class MainActivity extends AppCompatActivity {

    int notificationID = 1;



    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

    }



    public void onClick(View view) {

        displayNotification();

    }



    protected void displayNotification()

    {

        //---PendingIntent to launch activity if the user selects

        // this notification---

        Intent i = new Intent(this, NotificationViewActivity.class);

        i.putExtra("notificationID", notificationID);

        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, i, 0);

        NotificationManager nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);

        NotificationCompat.Builder notifBuilder;

        notifBuilder = new NotificationCompat.Builder(this)

                .setSmallIcon(R.drawable.gbrnotif)

                .setContentTitle("Ada Meeting BEM Sekarang...!")

                .setContentText("Reminder: Rapat Akan Mulai 5 minutes")

                .setContentIntent(pendingIntent)

                .addAction(R.mipmap.ic_launcher,"Read More",pendingIntent);



        Vibrator vi;

        vi=(Vibrator) getSystemService(Context.VIBRATOR_SERVICE);

        if (vi.hasVibrator()){

            vi.vibrate(20000);

        }

        nm.notify(notificationID, notifBuilder.build());

    }

}

6.       dan pada NotificationViewActivity.java masukan kode berikut, sesuaikan packagenya dengan package teman-teman.

package giviews.id.notificationview;



import android.app.NotificationManager;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;



public class NotificationViewActivity extends AppCompatActivity {



    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_notification_view);



        //---look up the notification manager service---

        NotificationManager nm = (NotificationManager)

                getSystemService(NOTIFICATION_SERVICE);

        //---cancel the notification that we started---

        nm.cancel(getIntent().getExtras().getInt("notificationID"));

    }

}


Selesai, silakan run aplikasi anda jika notifikasinya muncul berarti anda telah berhasil, jika ada yang error silakan ditanyakan pada kolom komentar di bawah.

Membuat Alert Dialog dengan Android Studio


Langkah Pertama buatlah button untuk memanggil alert dialognya

<?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"
   
tools:context="giviews.id.customalertdialog.MainActivity">


    <Button
       
android:id="@+id/btnShowDialog"
       
android:layout_width="wrap_content"
       
android:layout_height="wrap_content"
       
android:text="@string/show_dialog"
       
tools:layout_centerVertical="true"
       
tools:layout_centerHorizontal="true" />
</RelativeLayout>

Selanjutnya buat layout untuk isi dialognya, misalnya dialog untuk login. disini saya menamainya dengan dialog_login.xml

<?xml version="1.0" encoding="utf-8"?>

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

    android:orientation="vertical" android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:padding="5dp">



    <TextView

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_gravity="center"

        android:text="@string/login"

        android:id="@+id/lblLogin"

        android:textSize="25sp"

        android:layout_marginTop="5dp"

        android:textStyle="bold"/>



    <EditText

        android:id="@+id/etEmail"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:ems="10"

        android:layout_marginTop="10dp"

        android:inputType="textEmailAddress"

        android:hint="@string/email" />



    <EditText

        android:id="@+id/etPass"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:ems="10"

        android:layout_marginTop="5dp"

        android:hint="@string/password"

        android:inputType="textPassword" />



    <Button

        android:id="@+id/btnLogin"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:text="@string/login_label"

        android:background="@color/colorAccent"

        android:textColor="@android:color/white"

        android:layout_marginTop="10dp"/>





</LinearLayout>

untuk skrip java nya silakan masukan kode berikut

package giviews.id.customalertdialog;



import android.support.v7.app.AlertDialog;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;



public class MainActivity extends AppCompatActivity {



    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);



        Button mShowDialog = (Button) findViewById(R.id.btnShowDialog);

        mShowDialog.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

                AlertDialog.Builder mBuilder = new AlertDialog.Builder(MainActivity.this);

                View mView = getLayoutInflater().inflate(R.layout.dialog_login, null);

                final EditText mEmail = (EditText) mView.findViewById(R.id.etEmail);

                final EditText mPass = (EditText) mView.findViewById(R.id.etPass);

                Button mLogin = (Button) mView.findViewById(R.id.btnLogin);



                mLogin.setOnClickListener(new View.OnClickListener() {

                    @Override

                    public void onClick(View v) {

                        if (!mEmail.getText().toString().isEmpty() && !mPass.getText().toString().isEmpty()) {

                            Toast.makeText(MainActivity.this,

                                    R.string.login_success,

                                    Toast.LENGTH_SHORT).show();

                        }else{

                            Toast.makeText(MainActivity.this,

                                    R.string.login_error_msg,

                                    Toast.LENGTH_SHORT).show();

                        }

                    }

                });

                mBuilder.setView(mView);

                AlertDialog dialog = mBuilder.create();

                dialog.show();

            }

        });

    }

}


Selanjutnya jalankan aplikasi anda, jika alert dialognya muncul maka berhasil, jika ada error silakan tulis pada kolom komentar dibawah. terimakasih sudah berkunjung ke blog ini.

Situs - situs untuk belajar Programming lengkap

Berikut ini adalah daftar situs untuk belajar programming :

1. Sekolah Koding

Sekolah koding menyediakan tutorial pemrograman web secara lengkap mulai dari html, css, php, javascript dll. Tutorial yang ada di sekolah koding berbasi video. Pembahasanya juga sangat mudah dimengerti, selain itu kualitas video nya juga tinggi. Sekolah koding menyediakan sistem berlangganan. sekolah koding bisa dikunjungi di sekolahkoding.com

2. Youtube

Di Youtube ada berbagai channel pemrograman, mulai dari pemrograman web, pemrograman desktop, mobile dan juga cara pembuatan game. Berbagai channel yang menurut saya bagus diantaranya channel Sekolah kodingTVAC StudioProgramming KnowledgeWeblessonCodecourseRobby Diana PutraBrackeysCharger Games

3. Dunia Ilkom

Dunia Ilkom menyediakan Buku Seperti HTML Uncover, CSS Uncover, PHP Uncover, dan Javascript Uncover. Dunia Ilkom bisa dikunjungi di duniailkom.com

4. Udacity

Ada berbagai macam pelajaran di udacity. untuk informasi selengkapnya anda bisa mengunjungi udacity di udacity.com

Membuat Aplikasi Menu Makanan dengan android Studio

Buatlah project baru di android studio beri nama MenuMakanan kemudian pilih empty activity

Step pertama tambahkan dependecies di gradle (Modul App) 'com.android.support:cardview-v7:26.+' dan 'com.android.support:design:26.+' kemudian klik Sync Now.

Selanjutnya adalah copykan foto ke drawable (fotonya ada dalam folder di bawah), copykan juga string.xml, color.xml, dan styles.xml di folder view.

kemudian copykan kode layout activity_main.xml berikut ini :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical"
    tools:context="id.giviews.menumakanan.MainActivity">

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="150dp"
        android:src="@drawable/logo_rm"
        android:background="@color/colorLogo"/>

    <ListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/listmakanan">

    </ListView>

</LinearLayout>

kemudian buat activity_detail_makanan lalu copyka code berikut :
<?xml version="1.0" encoding="utf-8"?>
<ScrollView android:layout_width="match_parent"
    android:layout_height="wrap_content"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <LinearLayout 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:orientation="vertical"
        tools:context="id.giviews.menumakanan.DetailMakanan">

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:id="@+id/imgdetailmakanan"
            android:src="@drawable/bakso" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="20sp"
            android:fontFamily="monospace"
            android:textStyle="bold"
            android:gravity="center"
            android:text="Nama Makanan"
            android:id="@+id/txtdetailnamamakanan"/>
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="20sp"
            android:fontFamily="monospace"
            android:textStyle="bold"
            android:gravity="center"
            android:text="Harga Makanan"
            android:id="@+id/txtdetailhargamakanan"/>
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="18dp"
            android:textStyle="bold"
            android:fontFamily="monospace"
            android:text="Detail Makanan"
            android:id="@+id/txtdetailmakanan"/>

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:src="@drawable/ic_local_phone_black_24dp"
            android:id="@+id/imgcall"/>

    </LinearLayout>

</ScrollView>

dan buat tampilancustomlist.xml ketikan kode berikut:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        app:cardBackgroundColor="@color/colorAccent">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <ImageView
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:id="@+id/imgmakanan"
            android:scaleType="fitXY"
            android:src="@drawable/bakso"/>

         <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:layout_gravity="center">

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textSize="25sp"
                android:text="Nama Makanan"
                android:layout_gravity="center"
                android:fontFamily="cursive"
                android:textStyle="bold"
                android:layout_marginLeft="15dp"
                android:id="@+id/txtmakanan"
                android:textColor="#000000"/>

             <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textSize="25sp"
                android:text="Harga Makanan"
                android:layout_gravity="center"
                android:fontFamily="cursive"
                android:textStyle="bold"
                android:layout_marginLeft="15dp"
                android:id="@+id/txtharga"
                android:textColor="#000000"/>

            </LinearLayout>
    </LinearLayout>
    </android.support.v7.widget.CardView>
</LinearLayout>

selanjutnya di java MainActivity.java ketikan kode seperti ini:
package id.giviews.menumakanan;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;

import id.giviews.menumakanan.adapter.CustomListAdapter;

public class MainActivity extends AppCompatActivity {

    //declarasi Variable
    ListView listmakanan;

    //membuat Array
    String nama_makanan[] = {"bakso","gado-gado","Gorengan","Gudeg","Opor-Ayam","Pempek",
            "Rawon","Rendang","Soto","Nasi Kuning","Otak-otak","Sate","Pecel Lele","Ketoprak"};

    String harga_makanan[] = {"Rp. 15.000","Rp. 10.000","Rp. 4.000","Rp. 30.000","Rp. 55.000","Rp. 30.000",
            "Rp. 20.000","Rp. 65.000","Rp. 18.000","Rp. 8.000","Rp. 7.000","Rp. 25.000","Rp. 15.000","Rp. 12.000"};

    int gambar_makanan[]={R.drawable.bakso,R.drawable.gadogado,R.drawable.gorengan,R.drawable.gudeg,
            R.drawable.oporyam,R.drawable.pempek,R.drawable.rawon,R.drawable.rendang,R.drawable.soto,R.drawable.nasikuning,
            R.drawable.otakotak,R.drawable.sate,R.drawable.pecellele,R.drawable.ketoprak};

    int detail_makanan[]={R.string.bakso,R.string.gadogado,R.string.gorengan,R.string.gudeg,
            R.string.oporyam,R.string.pempek,R.string.rawon,R.string.rendang,R.string.soto,R.string.nasikuning,
            R.string.otakotak,R.string.sate,R.string.pecellele,R.string.ketoprak};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //inisialisasi
        listmakanan = (ListView)findViewById(R.id.listmakanan);

        CustomListAdapter adapter = new CustomListAdapter(this,nama_makanan,gambar_makanan,harga_makanan);

        //untuk mengisi data ke widget list view
        listmakanan.setAdapter(adapter);

        //aksi atau event listener dari widget list view

        listmakanan.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                Intent kirimdata = new Intent(MainActivity.this,DetailMakanan.class);
                kirimdata.putExtra("gbrM",gambar_makanan[i]);
                kirimdata.putExtra("namaM",nama_makanan[i]);
                kirimdata.putExtra("hargaM",harga_makanan[i]);
                kirimdata.putExtra("detailM",detail_makanan[i]);

                startActivity(kirimdata);
            }
        });

    }
}

lalu untuk DetailMakanan.java sesuikan kodenya seperti ini :
package id.giviews.menumakanan;

import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

public class DetailMakanan extends AppCompatActivity {

    ImageView imgdetailmakanan;
    TextView txtdetailnamamakanan;
    TextView txtDetalmakanan;
    TextView txthargamakanan;
    ImageView imgcall;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_detail_makanan);

        imgdetailmakanan = (ImageView) findViewById(R.id.imgdetailmakanan);
        imgcall = (ImageView) findViewById(R.id.imgcall);

        imgcall.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:089689696474"));
                if (ActivityCompat.checkSelfPermission(DetailMakanan.this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
                    // TODO: Consider calling
//                        ActivityCompat#requestPermissions
                    // here to request the missing permissions, and then overriding
//                       public void onRequestPermissionsResult(int requestCode, String[] permissions,
//                                                              int[] grantResults)
                    // to handle the case where the user grants the permission. See the documentation
                    // for ActivityCompat#requestPermissions for more details.

//                    return;

                    String toDial="tel:089689696474";

                    startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse(toDial)));

                }
                startActivity(intent);
            }
        });

        txtdetailnamamakanan = (TextView)findViewById(R.id.txtdetailnamamakanan);
        txtDetalmakanan = (TextView)findViewById(R.id.txtdetailmakanan);
        txthargamakanan = (TextView)findViewById(R.id.txtdetailhargamakanan);


        Intent terimadata = getIntent();

        txtdetailnamamakanan.setText(terimadata.getStringExtra("namaM"));
        txthargamakanan.setText(terimadata.getStringExtra("hargaM"));
        txtDetalmakanan.setText(terimadata.getIntExtra("detailM",0));
        imgdetailmakanan.setImageResource (terimadata.getIntExtra("gbrM",0));

    }
}

kemudian buat pakage di java dengan nama adapter. didalam package adapter buat file CustomListAdapter.java dengan kode seperti ini :
package id.giviews.menumakanan;

import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

public class DetailMakanan extends AppCompatActivity {

    ImageView imgdetailmakanan;
    TextView txtdetailnamamakanan;
    TextView txtDetalmakanan;
    TextView txthargamakanan;
    ImageView imgcall;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_detail_makanan);

        imgdetailmakanan = (ImageView) findViewById(R.id.imgdetailmakanan);
        imgcall = (ImageView) findViewById(R.id.imgcall);

        imgcall.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:089689696474"));
                if (ActivityCompat.checkSelfPermission(DetailMakanan.this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
                    // TODO: Consider calling
//                        ActivityCompat#requestPermissions
                    // here to request the missing permissions, and then overriding
//                       public void onRequestPermissionsResult(int requestCode, String[] permissions,
//                                                              int[] grantResults)
                    // to handle the case where the user grants the permission. See the documentation
                    // for ActivityCompat#requestPermissions for more details.

//                    return;

                    String toDial="tel:089689696474";

                    startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse(toDial)));

                }
                startActivity(intent);
            }
        });

        txtdetailnamamakanan = (TextView)findViewById(R.id.txtdetailnamamakanan);
        txtDetalmakanan = (TextView)findViewById(R.id.txtdetailmakanan);
        txthargamakanan = (TextView)findViewById(R.id.txtdetailhargamakanan);


        Intent terimadata = getIntent();

        txtdetailnamamakanan.setText(terimadata.getStringExtra("namaM"));
        txthargamakanan.setText(terimadata.getStringExtra("hargaM"));
        txtDetalmakanan.setText(terimadata.getIntExtra("detailM",0));
        imgdetailmakanan.setImageResource (terimadata.getIntExtra("gbrM",0));

    }
}

dan terakhir sesuikan AndroidManifest.xml seperti ini:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="id.giviews.menumakanan">

    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".DetailMakanan" />
    </application>

</manifest>

Lalu coba jalankan aplikasi anda, jika anda ingin melihat cara penempatanya bisa anda lihat di vidio berikut ini



dan untuk source kodenya bisa anda download di sini

Selamat mencoba jika ada yang error silakan ditanyakan pada kolom komentar di bawah

Contoh Media Transmisi Komunikasi Data (Guide Media) yang berupa Kabel

Ok Selamat Malam sobat blogger. di bulan puasa ini admin akan membagikan contoh media transmisi. Media Transmisi sendiri ada dua yaitu guide media dan unguide media. yang guide media dapat dilihat seperti kabel fiber optik, kabel utp, coaxial dll. sedangkan yang unguide media tidak dapat dilihat seperti wireless, gelombang radio magnetic dll. tapi kali ini yang akan dibahas yaitu yang guide media yang berupa kabel.

Perbedaan / Jenis-jenis Kabel dalam Komunikasi Data


1. Kabel Twisted Pair
Kategori Kabel Twisted Pair Berdasarkan karakteristik transmisinya

Kabel jenis twisted pair terdiri atas beberapa kategori didasarkan pada karakteristik transmisinya sehingga masing-masing kategori mempunyai laju data yang berbeda untuk bermacam aplikasi komunikasi.

1. Kategori 1 hanya digunakan untuk komunikasi suara, biasanya digunakan untuk kabel telepon. Sebelumnya dipakai untuk POST (Plain Old Telephone Service) dan ISDN.
2. Kategori 2 dapat menghubungkan perangkat yang karakteristik transmisinya sampai dengan 4 Mbps (LocalTalk).
3. Kategori 3 digunakan untuk transmisi dengan maksimum laju data sampai dengan 10 Mbps – 16 Mbps (Ethernet).
4. Kategori 4 digunakan untuk menghubungkan perangkat dengan karakteristik laju transmisinya s/d 20 MHz (16 Mbps Token Ring).
5. Kategori 5 digunakan untuk menghubungkan perangkat dengan karakteristik transmisinya s/d 100 MHz. dikenal dengan istilah Fast Ethernet.
6. Katgori 5e merupakan perbaikan kualitas dari kategori 5 walaupun laju data tetap pada 100 Mbps.
7. Kategori 6 dan Kategori 7 digunakan untuk menghubungkan perangkat dengan karakteristik transmisinya 250 Mbps – 600 Mbps (kualitas baik dapat menyampaikan data dengan laju 1 Gbps). dikenal dengan istilah Gigabit Ethernet.

Berdasarkan Fisiknya kabel twisted pair ada emapt jenis yaitu STP, UTP, S/STP dan S/UTP / FTP / SFTP

  • Shielded Twisted Pair (STP)




  • Unshielded Twisted Pair (UTP)
  • Screened Shielded Twisted Pair (S/STP)


  • Screened Unshielded Twisted Pair (S/UTP) / Foiled Twisted Pair (FTP)


Susunan Warna Kabel Twisted Pair
Pada kabel twisted pair kategori 5 atau 6 yang terdiri atas 8 kawat tunggal dengan susunan warna sebagai berikut: :

1. White Orange
2. Orange
3. White Green
4. Green
5. White Blue
6. Blue
7. White Brown
8. Brown

Untuk lebih mudah memahami urutan kabel yang ada pada kabel twisted pair anda bisa menyimak pada gambar berikut;


2. Kabel Coaxial
Ada beberapa jenis kabel Coaxial yaitu:

1.   Kabel Coaxial Thinnet ( Kabel RG-58 )

Kabel Coaxial Thinnet atau Kabel RG-58 biasa disebut dengan kabel BNC, singkatan dari British Naval Connector. Sebenarnya BNC adalah nama konektor yang dipakai, bukan nama kabelnya.
Kelebihan menggunakan kabel RG-58 adalah :


  • ·       Fleksibel, mudah dipakai untuk instalasi dalam ruangan.
  • ·       Dapat langsung dihubungkan ke komputer menggunakan konektor BNC.

Spesifikasi teknis dari kabel ini adalah :


  • ·       Mampu menjangkau bentangan maksimum 185 meter.
  • ·       Impedansi Terminator 50 Ohm.

2.   Kabel Coaxial Thicknet ( Kabel RG-8 )

Kabel Coaxial Thicknet atau Kabel RG-8 adalah kabel coaxial yang dipakai untuk instalasi antar gedung, Spesifikasi kabel ini sama dengan dengan Kabel Coaxial Thinnet, hanya bentuk fisiknya lebih besar. Karena lebih besar, kabel ini dapat menampung data yang lebih banyak sehingga cocok untuk instalasi sebagai backbone jaringan.



Spesifikasi Teknis dari kabel ini adalah :
  • ·       Mampu menjangkau bentangan maksimum 500 meter.
  • ·       Impedansi terminator 50 Ohm.
  • ·       Membutuhkan Transceiver sebelum dihubungkan dengan komputer.
Supaya komputer dapat terhubung ke jaringan thicknet, diperlukan transceiver. Koneksi antara Network Adapter Card dengan transceiver dibuat dengan menggunakan drop cable untuk menghubungkan Transceiver dengan Attachment Unit Interface ( AUI ) pada Network Adapter Card. Interface dari AUI berbentuk DB-15.
Bila dibandingkan antara Thicknet dengan thinnet, instalasi kabel thicknet jauh lebih sulit karena sifatnya lebih kaku dan tidak fleksibel. Tetapi melihat kapasitas data dan jarak yang bisa dijangkau, jenis kabel ini masih menjadi favorit sebagai penghubung antar gedung.

3. Fiber Optic
JENIS-JENIS FIBER OPTIC
1. Single-mode fibers
Mempunyai inti yang kecil (berdiameter 0.00035 inch atau 9 micron) dan berfungsi mengirimkan sinar laser inframerah (panjang gelombang 1300-1550 nanometer)


2. Multi-mode fibers
Mempunyai inti yang lebih besar(berdiameter 0.0025 inch atau 62.5 micron) dan berfungsi mengirimkan sinar laser inframerah (panjang gelombang 850-1300 nanometer)


CARA KERJA FIBER OPTIC
Sinar dalam fiber optik berjalan melalui inti dengan secara memantul dari cladding, dan hal ini disebut total internal reflection, karena cladding sama sekali tidak menyerap sinar dari inti. Akan tetapi dikarenakan ketidakmurnian kaca sinyal cahaya akan terdegradasi, ketahanan sinyal tergantung pada kemurnian kaca dan panjang gelombang sinyal.



KEUNTUNGAN FIBER OPTIC
Murah : jika dibandingkan dengan kabel tembaga dalam panjang yang sama.
Lebih tipis: mempunyai diameter yang lebih kecil daripada kabel tembaga.
Kapasitas lebih besar.
Sinyal degradasi lebih kecil.
Tidak mudah terbakar : tidak mengalirkan listrik.
Fleksibel.
Sinyal digital