Cara Memasang Iklan Admob pada Aplikasi Android

Cara Memasang Iklan Admob pada Aplikasi Android


Assalamualakum Warahmatullahi Wabarakatuh.

Sebagai seorang developer android, jika ingin memasarkan produk yang kita buat, pastinya memerlukan monetisasi pada produk tersebut, untuk mendapatkan penghasilan dari aplikasi yang telah kita buat. Sebagai seorang publisher, salah satu jejaring iklan yang sangat populer dan paling banya digunakan saat ini adalah Google AdMob.

AdMob adalah perusahaan iklan mobile yang didirikan oleh Omar Hamoui. Ia didirikan pada tahun 2006 dan berbasis di San Mateo, California. Pada bulan November 2009 ia diakuisisi oleh Google seharga $ 750 juta. Akuisisi ini diselesaikan pada 27 Mei 2010. Apple Inc. juga telah menyatakan minatnya untuk membeli perusahaan itu pada tahun yang sama, tetapi mereka keluar-tawaran oleh Google, dan sejak memperkenalkan platform iklan mereka sendiri yaitu iAd. Sebelum diakuisisi oleh Google, AdMob mengakuisisi perusahaan AdWhirl, sebelumnya Adrollo, yang merupakan platform untuk mengembangkan iklan di aplikasi iPhone. AdMob menawarkan solusi iklan untuk platform mobile, termasuk Android, IOS, WebOS, Flash Lite, dan semua browser web mobile standar.

AdMob adalah salah satu platform terbesar di dunia iklan mobile dan klaim untuk melayani lebih dari 40 miliar banner mobile dan iklan teks per bulan di seluruh situs Web mobile dan aplikasi handset.


Cara Memasang Iklan Admob pada Aplikasi Android
Pada tutorial kali ini, saya akan mengajarkan pada kalian, mengenai cara pemasangan iklan AdMob pada Aplikasi Android, dengan begitu, aplikasi yang kalian buat bisa menghasilkan uang. Ada banyak sekali jenis Iklan yang disediakan pada AdMob, Seperti Banner/Spanduk, Interstitial, Rewarded Video dan Native Express.

Kalian dapat menggunakan salah satu atau beberpa jenis iklan tersebu pada aplikasi android, tentunya untuk memasang iklan AdMob, kalian harus daftar terlebih dahulu pada situs resminya, disini.

A. Iklan Banner atau Spanduk

Banner Ads atau Iklan spanduk merupakan gambar segi empat/segi panjang serta iklan teks yang menempati tempat di dalam tata letak aplikasi. Iklan ini tetap berada di layar selama pengguna berinteraksi dengan aplikasi, dan dapat merefresh/menyegarkan secara otomatis setelah jangka waktu tertentu.

Contoh dari Banner Ads:

WIldanTechnoArt-AdMb_BannerAds_Example

Kalian dapat melihat Tutorial cara pembuatannya, Disini.

B. Interstitial Ads

Interstitial Ads adalah iklan layar penuh/full screen yang mencakup antarmuka aplikasi. Jenis ini biasanya ditampilkan pada titik transisi alami dalam arus aplikasi, seperti antara aktivitas atau selama jeda antara tingkat dalam permainan. Saat sebuah aplikasi menampilkan iklan pengantara, pengguna memiliki pilihan untuk mengetuk iklan dan melanjutkan ke tujuannya atau menutupnya dan kembali ke aplikasi.

Contoh dari Banner Ads:

Screenshot-AdMb_InterstitialAds_Example

Kalian dapat melihat Tutorial cara pembuatannya, Disini.

C. Rewarded Video Ads

Rewarded Video ads adalah jenis iklan berbetuk video layar penuh, pengguna memiliki pilihan untuk menonton iklan tersebut dan akan diberikan imbalan, jenis iklan ini sangat cocok digunakan pada aplikasi game, banyak sekali developer game yang menggunakan unit iklan ini untuk mengingkatkan pendapatan.

Contoh dari Rewarded Video Ads:

Screenshot_RewardedAds-WildanTechnoArt

Kalian dapat melihat Tutorial cara pembuatannya, Disini.

D. Native Express

Iklan Jenis ini mirip dengan Iklan Spanduk/Banner Ads karena iklan persegi empat ini dapat kita pasang ke tata letak dan ukuran yang kita inginkan. Perbedaan utamanya adalah kita dapat mengontrol tampilan/style iklan tersebut, seperti ukuran gambar, font, warna, dan lain-lain dengan menggunakan CSS. AdMob menggabungkan template ini dengan aset pengiklan, seperti ikon, gambar, dan teks, sehingga iklan yang ditampilkan menjadi lebih bagus.

Contoh dari Native Express:

WildanTechnoArt-Screenshot_NativeExpress Ads Example

Kalian dapat melihat Tutorial cara pembuatannya, Disini.

D. Native Express Video

Iklan jenis Native Express yang dengan setelah yang dapat menampilkan sebuah Video.

Kalian dapat melihat Tutorial cara pembuatannya, Disini.

Terimakasih atas kunjungannya, semoga tutorial yang saya berikan bisa bermanfaat untuk kalian semua, selebihnya, mohon maaf bila ada kesalahan.

Wassalamualaikum Warahmatullahi Wabarakatuh.

Cara Menggunakan Method toString pada Java

Cara Menggunakan Method toString pada Java


Assalamualaikum Warahmatullahi Wabarakatuh.

Pada bahasa pemrograman Java, di dalam package java.lang, pada class library Object, terdapat salah satu method yang bernama toString(). Method ini digunakan untuk merepresentasikan sebuah objek, kedalam tipe String. Jika kita menampilkan sebuah objek, maka secara implisit (tidak kita diketahui) sebenarnya compiler sudah memanggil method toString().

Kita dapat melakukan overriding pada method tersebut, dengan begitu, kita bisa mengimplementasikannya untuk memperoleh output yang diinginkan, seperti atribut-atribut dari suatu objek. Keuntungan menggunakan method toString adalah kode yang kita tulis lebih sedikit, untuk mengembalikan nilai dari suatu objek dengan mengoverriding method tersebut dari class Object.

Cara Menggunakan Method toString pada Java

Pada tutorial dasar kali ini, kita akan belajar cara membuat program dengan menggunakan method toString(), pada pemrograman Java. Mari kita simak tutorial berikut ini:

Materi Lainnya Yang Direkomendasikan:

Seperti yang sudah saya jelaskan sebelumnya, compiler akan memanggil method toString(), secara implisit ketika kita mencoba untuk menampilkan suatu objek. pada program berikut ini, kita akan mengetahu perbedaan objek tanpa method toString dengan objek yang menggunakan method toString

A. Contoh program tanpa menggunakan method toString():

package WILDAN_TECHNO_ART;

//Belajar Java di WILDAN TECHNO ART

class Manusia{
    //Deklarasi Variable
    String nama;
    int umur;

    //Membuat Konstruktor dengan Parameter
    public Manusia(String nama, int umur) {
        this.nama = nama;
        this.umur = umur; 
    }
}

public class string_demo {
    public static void main(String[] args){
        //Membuat Instance/Objek dari class Manusia
        Manusia data = new Manusia("Wildan", 19);
        System.out.println(data);//Mencetak Objek Data
    }
}

Demo:

Contoh pemanggilan objek tanpa method toString

Disini saya akan jelaskan maksud dari output tersebut, WILDAN_TECHNO_ART adalah nama package dari project kita, Manusia adalah nama class dan 15db9742 adalah hash code yang merepresentasikan objek tersebut. Jadi NamaClass@hash code ini merupakan implementasi default dari method toString().

Yang jadi permasalahan adalah atribut pada class Manusia tersebut tidak dapat diakses oleh kita, seperti variable. Oleh karena itu, kita dapat melakukannya dengan mengoverriding method toString() pada class manusia

Disini yang menjai super class adalah class Object yang memiliki method toString(), sementara sub classnya adalah class string_demo yang akan melakukan overriding pada method tersebut.

B. Contoh program dengan menggunakan method toString():

Pada program tersebut, kita akan mengoverriding method toString pada class Manusia, kalian dapat menuliskannya secara manual atau dengan cara seperti berikut ini:

Block semua variable pada class Manusia tersebut, lalu tekan alt+Insert/Ins:

Membuat method toString pada class Manusia

Maka akan muncul tampilan seperti berikut ini:

Generate toString

Setelah itu klik Generate.

package WILDAN_TECHNO_ART;

//Belajar Java di WILDAN TECHNO ART

class Manusia{

    @Override
    public String toString() {
        return "Manusia{" + "Nama Saya: " + nama + ", Umur Saya: " + umur + '}';
    }
    
    //Deklarasi Variable
    String nama;
    int umur;

    //Membuat Konstruktor dengan Parameter
    public Manusia(String nama, int umur) {
        this.nama = nama;
        this.umur = umur; 
    }
}

public class string_demo {
    public static void main(String[] args){
        //Membuat Instance/Objek dari class Manusia
        Manusia data = new Manusia("Wildan", 19);
        System.out.println(data);//Mencetak Objek Data
    }
}

Demo:

Mencetak data dari objek manusia menggunakan toString

Didalam method toString pada class Manusia, disana kalian dapat membuat sebuah pernyataan dengan menggunakan atribut pada class Manusia, dengan begitu data pada variable tersebut bisa kita gunakan.

Terimakasih atas kunjungannya, semoga meteri yang saya berikan bisa bermanfaat untuk kalian semua, selebihnya, mohon maaf bila ada kesalahan.

Wassalamualaikum Warahmatullahi Wabarakatuh.

Cara Membuat Fast Loading WebView di Android Studio

Cara Membuat Fast Loading WebView di Android Studio


Assalamualaikum Warahmatullahi Wabarakatuh.

Pada aplikasi Android, Webview digunakan untuk menampilkan halaman web, layaknya sebuah browser, dengan adanya webview, kalian dapat menghubungkan aplikasi android dengan konten yang berada di web, secara otomatis, konten yang terdapat pada web tersebut, akan singkron dengan tampilan atau konten web pada aplikasi android. Webview menggunakan mesin rendering yang disebut WebKit, digunakan untuk menampilkan halaman web dan mencakup metode untuk menavigasi maju dan mundur melalui history, memperbesar dan memperkecil tampilan, melakukan pencarian teks, dsb.

Cara Membuat Aplikasi Webview di Android Studio

Pada materi berikut ini, kita akan belajar, bagaimana cara membuat serta menggunakan webview pada Android Studio, dan juga beberapa settingan pada webview tersebut, agar proses rendering saat pemuatan halaman menjadi lebih cepat.

Materi Lainnya Yang Direkomendasikan:

Membuat Fast Webview pada Android Studio

Buat Project Baru pada Andrid Studio kalian. atau IDE sejenisnya.

Karena Webview memerlukan koneksi Internet, pertama kita akan menambahkan <uses-permission> INTERNET, didalam file AndroidManifest.xml (app > src > main) untuk Mengizinkan aplikasi membuka soket jaringan.

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

Dan jangan lupa untuk mengaktifkan hardwareAccelerated pada tag <application>. didalam file AndroidManifest, Seperti pada gambar berikut ini:

Mengaktifkan Hardware Accelerated pada Aplikasi Android

Setelah itu buatlah new Empty Activity, buka activity tersebut, pada kode xmlnya, kita akan menggunakan LinearLayout (Vartical) sebagai container, lalu akan kita tambahkan komponen webiew kedalam layout/container tersebut seperti ini :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:orientation="vertical"
    tools:context="android.cianjur.developer.net.fastwebview.web_page">

    <WebView
        android:id="@+id/my_web"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

Jika kalian tidak menggunakan kode xml secara manual, kalian dapat mendrag/drop webview tersebut pada bagian Pallet dibagian layout, seperti ini:

Contoh layout design webview

Selanjutnya, kita akan memasukan Source Code pada project tersebut, buka file.java kalian, sebagai persiapan, masukan beberapa package yang diperlukan, lalu kita akan menginisialisasi Webview dan beberpa method, serta variable String, yang digunakan untuk menyimpan URL web, seperti pada contoh berikut ini:

package android.cianjur.developer.net.fastwebview;

import android.os.Build;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

//Beberapa Package Yang Akan Digunakan Untuk Merancang Webview
import android.view.View;
import android.webkit.WebResourceRequest;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class web_page extends AppCompatActivity {
    
    private WebView web;
    
    //URL web, yang akan kita gunakan pada Webview
    private String website = "http://www.wildantechnoart.net/";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_web_page);
        web = findViewById(R.id.my_web);
        settings();
        load_website();
    }

    //Method Ini Digunakan sebagai Setelan/Pengaturan Web
    private void settings(){

    }

    //Untuk Mengatur, dan menampilan Halaman Web pada Aplikasi
    private void load_website(){

    }
}

Disan, kita membuat 2 buah method yang bernama settings() dan load_website(), kedua method tersebut nanti akan kita gunakan sebagai setelan web dan pemasangan artibut-atribut yang diperlukan untuk webview tersebut.

Pada method settings() masukan script/kode berikut ini :

//Method Ini Digunakan sebagai Setelan/Pengaturan Web
    private void settings(){
        WebSettings web_settings = websiteku.getSettings();
        web_settings.setJavaScriptEnabled(true);
        web_settings.setAllowContentAccess(true);
        web_settings.setUseWideViewPort(true);
        web_settings.setLoadsImagesAutomatically(true);
        web_settings.setCacheMode(WebSettings.LOAD_NO_CACHE);
        web_settings.setRenderPriority(WebSettings.RenderPriority.HIGH);
        web_settings.setEnableSmoothTransition(true);
        web_settings.setDomStorageEnabled(true);
    }

Penjelasan :
  • Pada method tersebut terdapat sebuah variable webSettings yang digunakan untuk mengelola setelan webiew.
  • javaScriptEnabled : Untuk mengaktifkan atau menonaktifkan javaScript pada webview.
  • allowContentAccess : Mengaktifkan atau menonaktifkan akses URL konten dalam WebView, fungsinya untuk memuat konten dari penyedia konten pada sistem. Defaultnya aktif/true
  • useWideViewPort : Menetapkan apakah WebView harus mengaktifkan dukungan untuk tag meta HTML "viewport" atau harus menggunakan area pandang lebar/wide viewing area.
  • loadImagesAutomativally : Mengaktifkan atau menonaktifkan pemuatan gambar pada webview, semua gambar pada konten akan dimuat secara otomatis, nilai defaultnya adalah true
  • cacheMode (LOAD_NO_CACHE) : Berfungsi agar webiew tidak menggunakan cache saat memuat jaringan.
  • setRenderPriority (RenderPriority.HIGH) : Untuk mengatur prioritas Rendering, Nilai Defaultnya adalah NORMAL, perlu kalian ketahui, motode ini tidak digunakan di tingkat API 18 (JellyBean 4.3), jadi tidak akan didukung pada versi yang mendatang.
  • setEnableSmoothTransition : Menetapkan apakah WebView memungkinkan transisi yang mulus saat melakukan panning atau zooming atau saat jendela webview tidak memiliki fokus, jika kita set menjadi true, maka webview akan memilih solusi untuk memaksimalkan kinerjanya. nilai defaultnya adalah false. (Metode ini tidak digunakan lagi di tingkat API 17)
  • domStorageEnabled : Menetapkan apakah API penyimpanan DOM diaktifkan. DOM atau Penyimpanan web, digunakan untuk menyimpan data di browser web, mirip seperti cookie namun dengan kapasitas yang sangat meningkat.

Selanjutnya pada method load_website() masukan script/kode berikut ini :

//Untuk Mengatur, dan menampilan Halaman Web pada Aplikasi
    private void load_website(){
        if(Build.VERSION.SDK_INT >= 19){
            websiteku.setLayerType(View.LAYER_TYPE_HARDWARE, null);
        }else{
            websiteku.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
        }

        websiteku.setWebViewClient(new WebViewClient(){
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
                view.loadUrl(request.toString());
                return true;
            }
        });

        websiteku.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
        websiteku.loadUrl(URL);
    }

Penjelasan :
  • Dalam method load_website(), jika versi SDK lebih besar/sama dengan API 19 (Kitkat), maka webview tersebut akan mengset tipe layer jenis Hardware, hal ini digunakan untuk meningkatkan kualitas rendering saat transformasi rotasi diterapkan pada suatu tampilan. 
  • Dan jika versi SDK dibawah API 19, maka webview tersebut akan mengset tipe layer jenis Software. 
  • Pada WebViewClient, terdapat sebuah method bernama shouldOverrideUrlLoading, fungsinya untuk mengambil alih kontrol saat url baru akan dimuat di WebView saat ini. Jika WebViewClient tidak disediakan, secara default WebView akan meminta Activity Manager untuk memilih penangan yang tepat untuk url. 
  • setScrollBarStyle digunakan untuk memilih gaya ScrollBar pada webView. 
  • loadUrl, digunakan untuk memuat Url halaman web.

Tambahkan juga, method onBackPressed(), agar aplikasi tidak langsung tertutup saat menekan tombol back, jika website pada webview tersebut bisa kembali ke halaman sebelumnya.


public void onBackPressed() {
        if(websiteku.canGoBack()){
            websiteku.goBack();
        }else{
            super.onBackPressed();
        }
    }

Selanjutnya, Jalankan project tersebut menggunakan emulator atau langsung pada smartphone android kalian.

Demo:

Webview Example

Jika kalian ingin menghapus ActionBar/ToolBar pada aplikasi tersebut, supaya tampilan webview yang kita buat menjadi full screen. Buka direktori main > res > values > styles.xml. Lalu ubah Style nya menjadi NoActionBar.

Menghapus ActionBar atauToolBar pada Android Studio

Demo:

Webview Example, NoActionBar

Kalian bisa mendownload Project tersebut di GitHub saya. Download Disini.

Terimakasih atas kunjungannya, semoga meteri yang saya berikan bisa bermanfaat untuk kalian semua, selebihnya, mohon maaf bila ada kesalahan.

Wassalamualaikum Warahmatullahi Wabarakatuh.

Cara Membuat Swipe Refresh Material Design

Cara Membuat Swipe Refresh Material Design


Assalamualaikum Warahmatullahi Wabarakatuh.

Pada tutorial Meterial Design kali ini, kita akan belajar bagaimana cara membuat serta menggunakan Swipe Refresh atau Wipe to Refresh untuk aplikasi Android pada Android Studio. Swipe Refresh adalah metode baru dari konsep maerial design yang diguanakan untuk memudahkan kita, me-refresh atau memuat data baru pada suatu halaman, dengan adanya Swiipe Refresh ini, jika user ingin memuat ulang atau me-reload data baru pada suatu halaman, penggunaannya cukup praktis, kita hanya perlu menarik layar dari atas ke bawah, tanpa memerlukan komponen tambahan lainnya.

Cara Membuat Swipe Refresh Material Design

Swipe Refresh pada umunya digunakan, untuk me-reload data baru pada sebuah list atau daftar item yang ditampilkan dari database didalam aplikasi, dan bisa juga digunakan untuk me-refresh suatu halaman web pada webview, untuk pejelasan lebih lanjut, pada meteri berikut ini, kita akan belajar membuat program sederhana dengan menggunakan Swipe Refresh pada Android Studio.

Materi Lainnya Yang Direkomendasikan:

Membuat Swipe Refresh Material Design

Buka Android Studio kalian, Buatlah project baru, berinama project tersebut, misalnya, "Demo Swipe Refresh", lalu bua MainActivity pada project tersebut.

Untuk membuat Swipe Refresh, pertama tama, kita perlu menambahkan beberapa library, seperi Design Support Library didalam dependencies pada file build.gradle (Didalam direktori app).

compile 'com.android.support:appcompat-v7:26.1.0'
compile 'com.android.support:design:26.1.0'
compile 'com.android.support:support-v4:26.1.0'

Setelah kalian mengimport beberapa library yang diperlukan, selanjutnya, kalian buka file activity_main.xml, disini kita akan menambahkan Layout Swipe Refresh dengan beberapa widget pendukung lainnya, seperti ScrollView dan TextView, pada Activity tersebut, edit kode xmlnya, menjadi seperti berikut ini:

<?xml version="1.0" encoding="utf-8"?>
<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"
    tools:context="android.cianjur.developer.net.swiperefreshdemo.MainActivity">

    <android.support.v4.widget.SwipeRefreshLayout
        android:id="@+id/swipe_refresh"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:padding="16dp">

            <TextView
                android:id="@+id/text_example"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:text="Selamat Datang di WILDAN TECHNO ART"
                android:textSize="16sp"
                android:textStyle="normal|bold" />

        </ScrollView

    </android.support.v4.widget.SwipeRefreshLayout>

</RelativeLayout>

SwipeRefreshLayout membungkus sebuah view bernama ScrollView di dalamnya, ScrollView tersebut yang nantinya akan direfresh datanya ketika kita menarik layar dari atas ke bawah. Perlu kalian ketahui, view yang boleh dibungkus oleh SwipeRefreshLayout hanyalah view yang mempunyai fungsi scrollinga atau bisa di scroll, contohnya seperti RecyclerView, ListView, atau ScrollView. Jika kalian menempatkan view static, yang tidak bisa discroll seperti RelaiveLayout atau LinearLayout di dalam SwipeRefreshLayout, maka akan terjadi error.

Tampilan layout designnya, terlihat seperti ini:

Layout Design, pada Swipe Refresh Android Studio

Jika kalian sudah selesai mendesign layoutnya, selanjutnya kita buka file MainActivity.java, lalu masukan source code berikut ini:

package android.cianjur.developer.net.swiperefreshdemo;

import android.os.Handler;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    private TextView objekKata;
    private SwipeRefreshLayout SwipeRefresh;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        objekKata = findViewById(R.id.text_example);

        // Inisialisasi SwipeRefreshLayout
        SwipeRefresh = findViewById(R.id.swipe_refresh);

        // Mengeset properti warna yang berputar pada SwipeRefreshLayout
        SwipeRefresh.setColorSchemeResources(R.color.colorAccent, R.color.colorPrimary);

        // Mengeset listener yang akan dijalankan saat layar di refresh/swipe
        SwipeRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {
                // Handler digunakan untuk menjalankan jeda selama 5 detik
                new Handler().postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        // Berhenti berputar/refreshing
                        SwipeRefresh.setRefreshing(false);
                        
                        //Berganti Text Setelah Layar di Refresh
                        objekKata.setText("Belajar Pemrograman Android");

                    }
                },4000); //4000 millisecond = 4 detik 
            }
        });
    }
}

Penjelasan:

Pada kode di atas, kita mempunyai objek SwipeRefreshLayout, akan kita gunakan untuk menjalankan fungsi swipe to refresh.

Method setColorSchemeResources() digunakan untuk mengatur properti warna lingkaran yang muncul di SwipeRefreshLayout pada saat memuat data. Kita bisa mengeset lebih dari satu warna yang akan mengakibatkan warna berubah-ubah saat lingkaran loading pada Swipe Refresh berputar, sesuai dengan urutan warna yang kita set.

Method onRefreshListener(), akan berjalan saat layar di swipe/ditarik dari atas ke bawah. Didalam onRefreshListener() terdapa sebuah fungsi yang harus kita implementasikan, bernama onRefresh() di dalamn method tersebut merupakan fungsi utama pada SwipeRefreshLayout.

Saat user menarik layar dari atas ke bawah, yang terjadi adalah muncul indikator loading berupa lingkaran yang berputar di bagian atas layar, dibagian bawah ActionBar/Toolbar, Proses loading akan berjalan selama empat detik, yang sudah kita set didalam Handler, setelah lima detik maka loading akan berhenti berputar dan tulisan pada TextView akan berganti.

Demo:

Screenshot_Swipe Refresh Example    Screenshot_Setelah Di Refresh

Coba kalian perhatikan, Text didalam TextView tersebut akan berubah setelah Swipe Refresh selesai berputah, saat berpuar, warna lingkaran pada loading tersebut akan berubah-ubah sesuai dengan warna yang kita set tadi. 

Project ini merupakan contoh sederhana dari penggunaan Swipe Refresh, untuk tutorial selanjutnya, kita akan mencoba mengimplemenasikan Swipe Refresh pada Webview atau sebuah List/RecyclerView didalam aplikasi Android.

Terimakasih atas kunjungannya, semoga meteri yang saya berikan bisa bermanfaat untuk kalian semua, selebihnya, mohon maaf bila ada kesalahan.

Wassalamualaikum Warahmatullahi Wabarakatuh.

Cara Membuat ProgressBar pada Webview Android Studio

Cara Membuat ProgressBar pada Webview Android Studio


Assalamualaikum Warahmatullahi Wabarakatuh.

Pada tutorial android studio kali ini, kita akan belajar membuat sebuah aplikasi webview dengan menggunakan ProgressBar, ProgressBar merupakan elemen UI yang digunakan untuk indikasi suatu proses dalam aplikasi, elemen UI tersebut akan menampilkan suatu pemrosesan pada konten yang di akses oleh user.

Pada aplikasi yang akan kita buat, kita akan menambahkan sebuah ProgressBar untuk menampilkan pemrosesan atau bisa disebut juga tampilan loading, saat memuat halaman web. ProgressBar sendiri, pada umumnya digunakan untuk memberikan informasi proses transfer data atau proses aktivitas, seperti membuaka halaman aplikasi, mengunggah file, mengunduh file, mengirimkan file, dsb.

Cara Membuat ProgressBar pada Webview Android Studio

Tutorial berikut ini merupakan lanjutan dari tutorial sebelumnya, yaitu Cara Membuat Fast Webview pada Android Studio, jadi saya sarankan untuk membuka link tersebut terlebih dahulu, jika kalian sudah membuat webview, dari tutorial yang saya berikan atau membutnya sendiri, kita akan lanjut materi berikut ini.

Materi Lainnya Yang Disarankan:

Cara Membuat ProgressBar pada Webview Android Studio

Karena project berikut ini merupakan lanjutan dari tutorial sebelumnya, jadi disini saya sudah membuat sebuah activity yang digunakan untuk menampilkan halaman web dengan element UI Webview.

Pada kode xml didalam activity tersebut, akan kita tambahkan tag <ProgressBar>, diatas komponen webview, seperti berikut ini:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:orientation="vertical"
    tools:context="android.cianjur.developer.net.fastwebview.web_page">

    <ProgressBar
        android:id="@+id/progress"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#FFFFFF"
        android:max="100"/>

    <WebView
        android:id="@+id/my_web"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

Ada beberapa atribut didalam tag <ProgressBar> yang perlu kalian ketahui, diantaranya:
  • style="?android:attr/progressBarStyleHorizontal" Digunakan untuk membuat progressBar horizontal yang nilai indikasi kemajuannya dapat ditentukan.
  • android:max="100" Untuk menentukan maksimal nilai/value pada progressBar tersebut.

Selanjutnya, buka file web_page.java kalian, pertama akan kita tambahkan serta Inisialisasi ID ProgressBar tersebut pada method onCreate().

import android.widget.ProgressBar;

public class web_page extends AppCompatActivity {

    private WebView websiteku;
    private ProgressBar loading; //Menambahkan widget ProgressBar

    private String URL = "http://www.wildantechnoart.net/";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_web_page);
        websiteku = findViewById(R.id.my_web);
        loading = findViewById(R.id.progress); //Menginisialisasi ID ProgressBar
        settings();
        load_website();
    }

Didalam method settings(), akan kita biarkan saja seperti ini:

private void settings(){
        WebSettings web_settings = websiteku.getSettings();
        web_settings.setJavaScriptEnabled(true);
        web_settings.setAllowContentAccess(true);
        web_settings.setUseWideViewPort(true);
        web_settings.setLoadsImagesAutomatically(true);
        web_settings.setCacheMode(WebSettings.LOAD_NO_CACHE);
        web_settings.setRenderPriority(WebSettings.RenderPriority.HIGH);
        web_settings.setEnableSmoothTransition(true);
        web_settings.setDomStorageEnabled(true);
    }

Lalu pada method load_website() akan kita tambahkan beberapa fungsi atau method, serta atribut lainnya yang digunakan untuk progressBar, masukan source code berikut ini:

private void load_website(){
        if(Build.VERSION.SDK_INT >= 19){
            websiteku.setLayerType(View.LAYER_TYPE_HARDWARE, null);
        }else{
            websiteku.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
        }

        //Tambahkan WebChromeClient
        websiteku.setWebChromeClient(new WebChromeClient(){
            @Override
            public void onProgressChanged(WebView view, int newProgress) {
                //ProgressBar akan Terlihat saat Halaman Dimuat
                loading.setVisibility(View.VISIBLE);
                loading.setProgress(newProgress);
                if(newProgress == 100){
                    //ProgressBar akan Menghilang setelah Valuenya mencapat 100%
                    loading.setVisibility(View.GONE);
                }
                super.onProgressChanged(view, newProgress);
            }
        });

        websiteku.setWebViewClient(new WebViewClient(){
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
                view.loadUrl(request.toString());
                return true;
            }

            @Override
            public void onPageFinished(WebView view, String url) {
                //ProgressBar akan Menghilang setelah Halaman Selesai Dimuat
                super.onPageFinished(view, url);
                loading.setVisibility(View.GONE);
            }
        });

        websiteku.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
        websiteku.loadUrl(URL);
    }

Penjelasan :
  • Dalam method load_website(), jika versi SDK lebih besar/sama dengan API 19 (Kitkat), maka webview tersebut akan mengset tipe layer jenis Hardware, hal ini digunakan untuk meningkatkan kualitas rendering saat transformasi rotasi diterapkan pada suatu tampilan.
  • Dan jika versi SDK dibawah API 19,  maka webview tersebut akan mengset tipe layer jenis Software.
  • Didalam WebChromeClient pada method onProgressChanged, saat aplikasi memuat suatu halaman, progressBar akan terlihat dan value/nilai pada progresBar tersebut akan terus bertambah hingga halaman selesai dimuat, setelah valuenya mencapai 100, maka progress bar akan menghilang kembali.
  • Pada WebViewClient, terdapat sebuah method bernama shouldOverrideUrlLoading, fungsinya untuk mengambil alih kontrol saat url baru akan dimuat di WebView saat ini. Jika WebViewClient tidak disediakan, secara default WebView akan meminta Activity Manager untuk memilih penangan yang tepat untuk url. 
  • Pada onPageFinished, setelah halaman selesai dimuat, progressBar akan menghilang.
  • setScrollBarStyle digunakan untuk memilih gaya ScrollBar pada webView.
  • loadUrl, digunakan untuk memuat Url yang diberikan.

Terakhir, jalankan project tersebut menggunakan emulator atau langsung pada ponsel android kalian.

Demo:

Screenshot_Aplikasi Webview dengan ProgressBar

Kalian bisa mendownload Project tersebut di GitHub saya. Download Disini.

Terimakasih atas kunjungannya, semoga meteri yang saya berikan bisa bermanfaat untuk kalian semua, selebihnya, mohon maaf bila ada kesalahan.

Wassalamualaikum Warahmatullahi Wabarakatuh.

Mengenal Fungsi isEmpty String dalam Java

Mengenal Fungsi isEmpty String dalam Java


Assalamualaikum Warahmatullahi Wabarakatuh.

Pada bahasa pemrograman Java, di dalam class library String, terdapat sebuah method yang bernama isEmpty(). Method ini digunakan untuk mengecek kondisi pada variable yang mempunyai tipe data String, apakah nilai pada variable tersebut kosong atau tidak. Jika nilai String pada variable tersebut kosong, maka akan mengembalikan nilai true, dan jika variable String mempunyai nilai, maka akan mengembalikan nilai false. Method tersebut mengembalikan nilai boolean, jadi kita dapat menyimpannya pada variable pertipe boolean.

Mengenal Fungsi isEmpty String pada Java

Pada tutorial dasar berikut ini, kita akan belajar membuat contoh penggunaan method isEmpty(), pada pemrograman Java. Mari kita simak tutorial berikut ini:

Materi Lainnya Yang Direkomendasikan:

Fungsi isEmpty String pada Java

Buka aplikasi Netbeans IDE kalian, buat project baru, lalu buat class baru, berinama class tersebut, misalnya "string_demo".

A. Contoh 1

Pada contoh berikut ini, kita akan membuat program sederhana, dengan menggunakan fungsi isEmpty(), pada program tersebut, kita akan mengecek kondisi pada beberapa variable yang kita buat, yang akan mengembalikan nilai boolean true atau false.

package WILDAN_TECHNO_ART;

public class string_demo {
    public static void main(String[] args){
        //Mendeklarasikan Beberapa Variable String
        String kata1 = "Wildan";
        String kata2 = "Unpi Cianjur";
        String kata3 = "";
        String kata4 = "             ";
       
        //Mengecek dan Menampilkan Hasil
        System.out.println("Cek Kondisi Kata1: "+kata1.isEmpty());
        System.out.println("Cek Kondisi Kata2: "+kata2.isEmpty());
        System.out.println("Cek Kondisi Kata3: "+kata3.isEmpty());
        System.out.println("Cek Kondisi Kata4: "+kata4.isEmpty());
    }
}

Demo:

Contoh sderhana penggunaan method isEmpty pada Java

Jika terdapat nilai pada variable, maka akan menghasilkan nilai false, sebaliknya, jika tidak, maka akan mengembalikan nilai true. Coba kalian perhatikan pada variable kata4, program akan menganggap varaible tersebut mempunyai nilai, walaupun hanya spasi saja.

B. Contoh 2

Karena fungsi isEmpty() mengembalikan nilai boolean, maka kalian dapat menyimpannya pada variable bertipe boolean, seperti pada contoh berikit ini:

public static void main(String[] args){
        //Mendeklarasikan Beberapa Variable String
        String kata1 = "";
        String kata2 = "UNPI";
       
        //Menyimpan Kondisi/Nilai dari Method isEmpty
        boolean cek_kata1 = kata1.isEmpty();
        boolean cek_kata2 = kata2.isEmpty();
        
        //Mengecek dan Menampilkan Hasil
        System.out.println("Cek Kondisi Kata1: "+cek_kata1);
        System.out.println("Cek Kondisi Kata2: "+cek_kata2);
    }

Demo:

Contoh kedua penggunaan fungsi isEmpty String pada Java

C. Contoh 3

Pada contoh selanjutnya, kita akan mencoba menggunakan statement if-else untuk mengecek kondisi pada variable string, yang akan menampilkan pesan jika nilai tersebut ada atau tidak ada.

public static void main(String[] args){
        //Mendeklarasikan Beberapa Variable String
        String kata = "WILDAN TECHNO ART";
        boolean cek_kata = kata.isEmpty();
        
        //Mengecek Kondisi Pada Variable kata
        if(cek_kata){
            System.out.println("Tidak ada Data/Kosong");
        }else{
            System.out.println("Mempunyai Data");
        }
    }

Demo:

Penggunaan fungsi isEmpty String meggunakan if-else pada Java

Dengan menggunakan statement if-else, kita dapat mengecek kondisi pada variable kata, apakah terdapat nilai didalamnya atau tidak, kemudian akan menampilkan pesan jika ada salahsatu kondisi terpenuhi

Terimakasih atas kunjungannya, semoga meteri yang saya berikan bisa bermanfaat untuk kalian semua, selebihnya, mohon maaf bila ada kesalahan.

Wassalamualaikum Warahmatullahi Wabarakatuh.

Mengenal Fungsi length String pada Java

Mengenal Fungsi length String pada Java


Assalamualaikum Warahmatullahi Wabarakatuh.

Di dalam class library String pada pemrograman Java, terdapat sebuah method bernama length(). Method ini digunakan untuk menghitung jumlah karakter, pada data/nilai dari variable yang menggunakan tipe data String, karena method length() digunakan untuk menghitung atau mengembalikan jumlah karakter, data dari method tersebut mempunyai nilai angka, jadi kalian dapat menyimpannya pada variable bertipe Integer.

Mengenal Fungsi length String pada Java

Pada tutorial java kali ini ,kita akan belajar mengenal method length() String, serta penggunaannya pada program menggunakan bahasa pemrograman Java. Mari kita simak tutorial berikut ini:

Materi Lainnya Yang Direkomendasikan:

Fungsi length String pada Java

Buka aplikasi Netbeans IDE, atau IDE sejenisnya, buat project baru serta class java, berinama class tersebut, misalnya "string_demo".

Untuk contoh berikut ini, kita akan membuat program sederhana, pada program tersebut, kita akan membuat beberapa variable, lalu akan kita hitung jumlah karakter pada variable tersebut, dengan menggunakan fungsi length(), seperti berikut ini:

package WILDAN_TECHNO_ART;

public class string_demo {
    public static void main(String[] args){
        //Mendefinisikan Beberapa Variable
        String nama = "Wildan M Athoillah";
        String web = "www.wildantechnoart.net";
        String cianjur = "CIANJUR JAGO";
        String kata1 = "Java";
        String kata2 = "Android";
        
        //Menghitung dan Menampilkan Jumlah Karakter pada Variable
        System.out.println("Jumlah Karakter Nama: "+nama.length());
        System.out.println("Jumlah Karakter Web: "+web.length());
        System.out.println("Jumlah Karakter Cianjur: "+cianjur.length());
        System.out.println("Jumlah Karakter Kata1: "+kata1.length());
        System.out.println("Jumlah Karakter Kata: "+kata2.length());
    }
}

Demo:

Contoh penggunaan fungsi length String pada Java

Karena method length() mengembalikan nilai angka, jadi kalian dapat memasukannya pada variable Integer, serta menghitung jumlah karakter pada semua variable String, contohnya seperti ini:

public static void main(String[] args){
        //Mendefinisikan Beberapa Variable
        String nama = "Wildan M Athoillah";
        String web = "www.wildantechnoart.net";
        String cianjur = "CIANJUR JAGO";
        String kata = "Android";
        
        //Variable Integer untuk Menyimpan nilai Pada Jumlah Karakter String
        int char_nama = nama.length();
        int char_web = web.length();
        int char_cianjur = cianjur.length();
        int char_kata = kata.length();
        
        //Menghitung Seluruh Karakter pada Semua Variable
        int jumlah_char = char_nama + char_web + char_cianjur + char_kata;
        
        //Menghitung dan Menampilkan Jumlah Karakter pada Variable
        System.out.println("Jumlah Karakter Nama: "+char_nama);
        System.out.println("Jumlah Karakter Web: "+char_web);
        System.out.println("Jumlah Karakter Cianjur: "+char_cianjur);
        System.out.println("Jumlah Karakter Kata1: "+char_kata);
        System.out.println("Jumlah Seluruh Karakter: "+jumlah_char);
    }

Demo:

Contoh kedua penggunaan fungsi length String pada Java


Terimakasih atas kunjungannya, semoga meteri yang saya berikan bisa bermanfaat untuk kalian semua, selebihnya, mohon maaf bila ada kesalahan.

Wassalamualaikum Warahmatullahi Wabarakatuh.

Mengenal Fungsi equals String pada Java

Mengenal Fungsi equals String pada Java


Assalamualaikum Warahmatullahi Wabarakatuh.

Pada bahasa pemrograman Java, didalam library String, terdapat sebuah method bernama equals(), method tersebut digunakan untuk membandingkan 2 buah variable, yang bertipe data String, jika nilai dari kedua variable tersebut mempunyai karakter yang sama, baik dari segi huruf besar, huruf kecil atau spasi, maka akan menghasilkan nilai boolean true dan jika tidak sesuai, maka akan menghasilkan nilai false.

Mengenal Fungsi equals String Pada Java

Pada tutorial kali ini, kita akan belajar mengenai penggunaan equals String pada Java, disini kita akan mencoba membuat program sederhana, yang memungkinkan user untuk menginputkan data, lalu data tersebut akan  dibandingkan dengan data yang sudah dideklarasikan oleh programmer.

Materi Lainnya Yang Harus Dipelajari:

Dalam library String, selain metod equals(), terdapat juga method equalsIgnoreCase(), kedua method tersebut mempunyai fungsi yang sama, yaitu untuk membandingkan karakter pada variable String. 

Perbedaan dari kedua method tersebut terletak pada perbandingannya, method equals() akan membandingkan nilai pada dua buah variable, yang mempunyai data yang sama, dari segi huruf besar dan kecil, jadi jika ada salah satu huruf dengan ukuran yang tidak sama, misalnya "Wildan" dengan "wildan", maka akan menghasilkan false, karena huruf awalannya tidak sama.

Berbeda dengan equals(), pada method equalsIgnoreCase(), tidak akan melihat huruf besar ataupun kecil, yang terpenting mempunyai nilai yang sama, maka akan tetap menghasilkan true, contohnya seperti "Cianjur" dengan "CIANJUR", walaupun terdapat ukuran huruf yang berbeda, hasilnya akan tetap true.

Pada contoh program berikut ini, kita akan menggunakan Class Scanner, untuk menerima input dari user, input tersebut akan diproses atau dibandingkan dengan data yang sudah dideklarasikan pada program, didalam program tersebut, kita akan membuat sebuah kondisi menggunakan statement if-else. Yang digunakan untuk memunculkan pesan, jika jawaban dari user benar atau salah.

A. Menggunakan equals String pada Java

Buka aplikasi Netbeans IDE, buatlah class baru, misalnya berimana "string_demo", lalu masukan source code berikut ini: 

package WILDAN_TECHNO_ART;

import java.util.Scanner;

public class string_demo {
    public static void main(String[] args){
        //Membuat Instance/Objek dari Class Scanner
        Scanner input = new Scanner(System.in);
        
        //Nilai Yang Harus Diinputkan Oleh User
        String kunci_jawaban = "Wildan M Athoillah";
        
        System.out.println("===== JAWAB PERTANYAAN DIBAWAH INI ======");
        System.out.println("Siapakah Nama Admin di Blog Ini?");
        System.out.println("~Adibil Muchtar");
        System.out.println("~Taufiq Hidayat");
        System.out.println("~Wildan M Athoillah");
        System.out.println("~Taufan");
        
        System.out.println("================ JAWABAN ================");
        
        System.out.print("Jawab Disini: ");
        String jawaban = input.nextLine(); //Mendapatkan Input Dari User
        
        //Membuat Kondisi Menggunakan Statement if-else
        if(jawaban.equals(kunci_jawaban)){
            System.out.println("Jawaban Anda: Benar");
        }else{
            System.out.println("Jawaban Anda: Salah");
        }
    }
}

Demo:

Contoh sederhana penggunaan fungsi equals String pada Java

Jika menggunakan fungsi equals(), semua karakter dari kedua variable tersebut harus sama, meliputi huruf besar dan kecilnya, pada fungsi equals(), saat kita menginputkan data, tetapi ada salah satu atau beberpa huruf dengan ukuran berbeda, maka akan bernilai false, seperti berikut ini:

Contoh kedua  penggunaan fungsi equals String pada Java

Hasilnya akan bernilai false, karena huruf "m" tidak sama dengan "M", karena ada salah satu huruf yang mempunyai ukuran berneda, penggunaan equals() sangat sensitif, input yang dimasukan user harus benar-benar sama dengan nilai yang sebenarnya.

B. Menggunakan equalsIgnoreCase String pada Java

Dengan menggunakan fungsi equalsIgnoreCase(), tidak akan melihat perbandingan dari segi hurufnya, besar ataupun kecil, yang terpenting nilai yang diinputkan user, sama dengan nilai yang sebenarnya, contohnya seperti berikut ini:

package WILDAN_TECHNO_ART;

import java.util.Scanner;

public class string_demo {
    public static void main(String[] args){
        //Membuat Instance/Objek dari Class Scanner
        Scanner input = new Scanner(System.in);
        
        //Nilai Yang Harus Diinputkan Oleh User
        String kunci_jawaban = "Tauco";
        
        System.out.println("===== JAWAB PERTANYAAN DIBAWAH INI ======");
        System.out.println("Makanan Khas Cianjur Adalah?");
        System.out.println("~Tauco");
        System.out.println("~Burger");
        System.out.println("~Pizza");
        
        System.out.println("================ JAWABAN ================");
        
        System.out.print("Jawab Disini: ");
        String jawaban = input.nextLine(); //Mendapatkan Input Dari User
        
        //Membuat Kondisi Menggunakan Statement if-else
        if(jawaban.equalsIgnoreCase(kunci_jawaban)){
            System.out.println("Jawaban Anda: Benar");
        }else{
            System.out.println("Jawaban Anda: Salah");
        }
    }
}

Demo:

Contoh sederhana penggunaan fungsi equalsIgnoreCase String pada Java

Walaupun kita memasukan input dengan ukuran huruf yang berdeda, asalkan nilainya sama, maka akan menghasilkan true.

Terimakasih atas kunjungannya, semoga meteri yang saya berikan bisa bermanfaat untuk kalian semua, selebihnya, mohon maaf bila ada kesalahan.

Wassalamualaikum Warahmatullahi Wabarakatuh.

Belajar Menggunakan LinkedList pada Java

Belajar Menggunakan LinkedList pada Java


Assalamualaikum Warahmatullahi Wabarakatuh.

Pada bahasa pemrograman Java, LinkList merupakan sebuah collection yang digunakan sebagai tempat penyimpanan data yang terdiri dari node-node (simpul-simpul) yang saling terhubung. Setiap element dihubungkan dengan element lain menggunakan sebuah Pointer, Pointer (penunjuk) adalah sebuah variabel yang digunakan sebagai penunjuk alamat dari variabel lain. Dalam Java, LinkedList mewarisi AbstractSequentialList serta mengimplementasi interface List dan Deque.

Belajar Menggunakan LinkedList pada Java

LinkedList pada Java, digunakan untuk strukturisasi data, fungsinya hampir sama dengan ArrayList. Yang membedakannya adalah terletak pada cara menyimpan serta memaintain suatu objek. Jika pada ArrayList, lebih fokus ke dalam aspek , menyimpan ,dan mengakses. Di LinkedList, lebih fokus ke dalam aspek , memanipulasi data, seperti insert dan delete.

Materi Lainnya Yang Direkomendasikan:

Jika kalian masih bingung, akan saya ilustrasikan sedikit mengenai LinkList, LinkList dapat diilustrasikan seperti kereta api, dimana kereta api terdiri dari gerbong-gerbong yang saling terhubung yang dapat mengangkut penumpang (Data). Gerbong (Node/Simpul) disini berfungsi untuk menyimpan data.

Misalnya jika kita menyimpan data 89, 12, 40 dan 24 dalam Array, contoh gambar konsep dari Single LinkedList seperti berikut ini:

Contoh gambar dari Konsep Single LingkedList pada Java

Setiap Node pada LinkedList mempunyai field yang berisi Pointer yang menghubungkan ke node berikutnya dan juga memiliki field yang berisi Data.

Akhir dari LinkedList ditandai dengan Node terakhir akan menunjuk ke Null yang akan digunakan sebagai kondisi berhenti pada LingkedList.

Selain Single LinkedList, pada umumnya terdapat 3 jenis LinkedList yaitu, Single LinkedList, Double LinkedList, dan Circular LinkedList:

Double LinkedList:

LinkedList dengan menggunakan pointer, dimana setiap node memiliki 3 field, yaitu: 1 field pointer yang menunjuk ke pointer berikutnya, 1 field pointer yang menunjuk ke pointer sebelumnya dan field yang berisi data dari node tersebut.

Pointer next dan prev-nya menunjuk ke null.

Single Circular LinkedList:

Single LinkedList yang pointer next-nya menunjuk ke dirinya sendiri, jika terdiri dari beberapa node maka pointer terakhirnya akan menunjuk ke pointer terdepannya.

Double Circular LinkedList:

Double LinkedList yang pointer next dan prev-nya menunjuk ke dirinya sendiri secara circular.

Contoh 1, Membuat Program Sederhan dengan LinkedList

Pada tutorial kali ini, saya akan mengajarkan pada kalian, bagaimana cara menggunakan LinkedList pada Java, disini kita akan membuat program sederhana, dengan menggunakan LinkedList.

Di dalam program tersebut, kita akan membuat sebuah objek dari LinkedList, dimana pada objek tersebut akan kita tambahkan beberapa data, untuk kita manipulasi. Contoh source codenya seperti berikut ini:

package WILDAN_TECHNO_ART;

import java.util.LinkedList;

public class latihan_java {
    
    public static void main(String[] args){
        //Membuat Instance/Objek dari LinkedList
        LinkedList<String> buah = new LinkedList<>();
        
        //Menambahkan Data pada Objek buah
        buah.add("Jeruk");
        buah.add("Jambu");
        buah.add("Apel");
        buah.add("Melon");
        buah.add("Semangka");
        buah.add("Nanas");
        buah.add("Sirsak");
        
        //Mencetak/Menampilkan Data
        System.out.println("Nama Buah: "+buah);
        
        //Menghitung Jumlah/Ukuran pada Objek LinkedList
        System.out.println("Jumlah Buah: "+buah.size());
    }
}

Demo:

Contoh sederhana penggunaan LinkedList pada Java

Untuk menambahkan data pada Objek buah, kita menggunakan fungsi add(), lalu menampilkan nilainya pada statement System.out.println(), dan untuk melihat ukuran atau jumlah data yang terdapat pada Objek buah, kita bisa menggunakan fungsi size().

Contoh 2, Menambahkan Element pada Objek LinkedList

Pada contoh program berikut ini, kita dapat menambahkan data pada urutan nomor index paling atas dan paling bawan, dengan menggunakan fungsi addFirst() dan addLast(), serta kita juga dapat menambahkan dan mengubah data berdasarkan nomor index tertentu, menggunakan fungsi set(). Seperti berikut ini:

buah.addFirst("Paling Atas");//Menambahkan Data pada Index Teratas 
buah.addLast("Paling Bawah");//Menambahkan Data pada Index Tebawah
        
buah.set(2, "Diubah");// Mengubah Data pada No Index 2
buah.set(5, "Diubah");// Mengubah Data pada No Index 5
        
//Mencetak/Menampilkan Data
System.out.println("Nama Buah: "+buah);

Demo:

Mengubah data pada Objek LingkedList

Pada program tersebut, kita menambahkan data pada index paling atas dan paling bawah, serta mengubah data Jambu (No Index 2) dan Semangka (No Index 5), menggunakan fungsi set().

Contoh 3 Mengambil Element pada LinkedList

Selain menambahkan data sesuai dengan no index tertentu, kita juga dapat mengambil element atau data pada urutan pertama dan terakhir, menggunakan getFirst() dan getLast(), serta mengambil data sesuai dengan no index tertentu, menggunakan fungsi get(), seperti berikut ini:

//Menambahkan Data pada Objek buah
buah.add("Jeruk"); //No Index 0
buah.add("Jambu"); //No Index 1
buah.add("Apel"); //No Index 2
buah.add("Melon"); //No Index 3
buah.add("Semangka"); //No Index 4
        
//Mengambil Data pada Urutan Teratas
System.out.println("Data Teratas: "+buah.getFirst());
//Mengambil Data pada Urutan Terbawah
System.out.println("Data Terbawah: "+buah.getLast());
//Mengambil Data pada Nomor Index 1
System.out.println("Data NoIndex 1: "+buah.get(1)); 
//Mengambil Data pada Nomor Index 3
System.out.println("Data NoIndex 3: "+buah.get(3)); 

Demo:

Mengambil data pada LingkedList

Contoh 4, Menghapus Element pada LinkedList

Selain menambahkan dan mengambil data, pada LingkedList, kita juga dapat menghapus data pada urutan paling atas dan bawah, menggunakan fungsi removeFirs() dan removeLast(), atau sesuai dengan no index tertentu, menggunkan fungsi remove():

//Menambahkan Data pada Objek buah
buah.add("Jeruk");
buah.add("Jambu");
buah.add("Apel");
buah.add("Melon");
        
buah.removeFirst(); //Menghapus Data pada Urutan Paling Atas
buah.removeLast(); //Menghapus Data pada Urutan Paling Bawah
buah.remove(1); //Menghapus Data pada No Index 1
        
//Mencetak Data
System.out.println(buah);

Demo:

Menghapus Data pada Objek LinkedList

Contoh 5, Mecek Kondisi Element pada LinkedList

Terakhir, ada beberapa fungsi lainnya yang bisa kalian gunakan untuk mengecek sebuah element, apakah ada atau tidak, dengan menggunakan fungsi isEmpty() dan contains(), seperti berikut ini:

public static void main(String[] args){
        //Membuat Instance/Objek dari LinkedList
        LinkedList<String> barang = new LinkedList<>();
        
        //Menambahkan Data pada Objek buah
        barang.add("Laptop");
        barang.add("Komputer");
        barang.add("Radio");
        
        //Mengecek Apakah Data pada Objek barang, Kosong
        if(barang.isEmpty()){
            System.out.println("Data Kosong");
        }else{
            System.out.println("Data Penuh");
        }
        
        //Mengecek Apakah Sebuah Element ada Didalam LingkedList
        if(barang.contains("Komputer")){
            System.out.println("Barang Ditemukan");
        }else{
            System.out.println("Barang Tidak Ditemukan");
        }
    }

Demo:

Mengecek Elament yang terdapat pada LinkedList

Terimakasih atas kunjungannya, semoga meteri yang saya berikan bisa bermanfaat untuk kalian semua, selebihnya, mohon maaf bila ada kesalahan.

Wassalamualaikum Warahmatullahi Wabarakatuh.

Belajar Menggunakan Iterator pada Java

Belajar Menggunakan Iterator pada Java


Assalamualaikum Warahmatullahi Wabarakatuh.

Iterator adalah salah satu interface yang tersedia di dalam library Java, yang berlokasi di java.util package. Iterator digunakan untuk mengakses dan menampilkan nilai beserta tambahan method lain yang didefinisikan di dalam interface Iterator. Pada umumya untuk mengakses seluruh elemen yang ada pada ArrayList, kita menggunakan perulangan seperti for each, dengan menggunakan Iterator, kita dapat menambahkan beberapa method tambahan lainnya.

Belajar Menggunakan Iterator pada Java

Jika kalian masih bingung mengenai pengertian serta fungsi dari Iterator, pada materi ini , kita akan mencoba menggunakan Iterator, menggunakan bahasa pemrograman Java. Kalo begitu, mari kita simak tutorial berikut ini.

Materi Lainnya Yang Direkomendasikan:

Belajar Menggunakan Iterator pada Java

Pada program berikut ini, kita akan membuat sebuah objek ArrayList, yang akan saya berinama hewan, objek hewan tersebut digunakan untuk menyimpan nilai dengan tipe data String, lalu menginisialisasi method Iterator yang terdapat pada objek hewan dari collection ArrayList.

package WILDAN_TECHNO_ART;

//Package Yang Digunakan Untuk Membuat Array List
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class latihan_java {
    
    public static void main(String[] args){
        //Membuat Instance/Objek hewan Dari ArrayList
        List<String> hewan = new ArrayList<>();
        
        //Menambahkan Data atau Nilai pada Objek hewan
        hewan.add("Kucing");
        hewan.add("Kambing");
        hewan.add("Domba");
        hewan.add("Ayam");
        hewan.add("Sapi");
        hewan.add("Unta");
        hewan.add("Komodo");
        hewan.add("Singa");
        hewan.add("Macan");
        hewan.add("Jerapah");
        
        /*
        *Menginisialisasi Method Iterator yang Terdapat 
        *Pada Objek hewan dari Collection ArrayList
        */
        
        Iterator iterator = hewan.iterator();
        
        //Mengecek Iterator Apakah Mempunyai Elemen Selanjutnya atau Tidak
        while(iterator.hasNext()){
            //Jika Iya/True Maka Iterator Akan Mengambil Nilai Selanjutnya
            System.out.println(iterator.next());
        }
    }
}

Demo:

Contoh sederhana penggunaan Iterator pada Java

Untuk mencetak semua data pada objek hewan, disana kita menggunakan statement perulangan while, method hashNext() digunakan untuk mengecek kondisi objek itarator, apakah masih terdapat eleman selanjutnya atau tidak, jika bernilai true, maka iterator akan mengambil element selanjutnya menggunakan fungsi next().

Memodifikasi Nilai Menggunakan Interface ListIterator

Pada Java, kita juga dapat menggunakan Interface ListIterator ,yang mengextend atau mewarisi interface dari Iterator. Dengan begitu, Kita dapat memodifikasi nilai pada elementt yang akan ditampilkan. Berikut contoh code ,beserta penjelasanya:

package WILDAN_TECHNO_ART;

//Package Yang Digunakan Untuk Membuat List/ArrayList
import java.util.ArrayList;
import java.util.List;

//Package Yang Digunakan Untuk Membuat Iterator/ListIterator
import java.util.Iterator;
import java.util.ListIterator;

public class latihan_java {
    
    public static void main(String[] args){
        //Membuat Instance/Objek angka Dari ArrayList
        List<Integer> angka = new ArrayList<>();
        
        //Menambahkan Data atau Nilai pada Objek angka
        angka.add(672);
        angka.add(324);
        angka.add(902);
        angka.add(160);
        angka.add(238);
        angka.add(539);
        angka.add(357);
        
        //Menginisialisasi ListIterator pada objek angka
        ListIterator<Integer> listIterator = angka.listIterator();
        
        //Mengecek ListIterator Apakah Mempunyai Elemen Selanjutnya atau Tidak
        while(listIterator.hasNext()){
            int element = listIterator.next();
            
            //Memodifikasi Nilai, Sebelum di Iterasi
            listIterator.set(element+1000);
        }
        
        System.out.println("====== NILAI YANG SUDAH DIMODIFIKASI ======");
        
        //Menginisialisasi Iterator pada objek angka
        Iterator iterator = angka.iterator();
        
        
        while(iterator.hasNext()){
            //Melakukan Iterasi atau Perulangan
            Object element = iterator.next();
            System.out.println("Nilai: "+element);
            //Mencetak Nilai Yang Sudah Dimodifikasi
        }
        
        System.out.println("==== MENGURUTKAN NILAI SECARA TERBALIK ====");
        
        //Mengurutkan Nilai Cecara Terbalik
         while(listIterator.hasPrevious()){
            Object element = listIterator.previous();
            System.out.println("Nilai: "+element);
        }
    }
}

Demo:

Memodifikasi Nilai Menggunakan ListIterator pada Java

Penjelasan:

Pada contoh program diatas, kita menggunakan contoh variable angka , untuk menginstansi objek dari class ArrayList() dengan tipe data Integer.

Lalu kita tambahkan nilainya ke dalam list, menggunakan fungsi add(). Selanjutnya, kita deklarasikan terlebih dahulu variable ListIterator, yang digunakan untuk memodifikasi nilai pada element.

Sebelum melakukan iterasi atau perulangan , kita memodifikasi nilai pada objek angka terlebih dahulu, dengan menambahkan nilai 1000, pada variable element. Lalu menggunakan method set(), pada objek yang terdapat di class ListIterator.

Setelah itu ,kita lakukan proses iterasi atau perulangan, untuk mencetak nilai yang sudah dimodifikasi

Kita juga bisa memodifikasi nilai pada list ,secara terbalik dengan method hasPrevious(), untuk mengecek kondisi nilai atau elementt pada list. Lalu gunakan method previous(), untuk mengurutkanya secara terbalik.

Terimakasih atas kunjungannya, semoga meteri yang saya berikan bisa bermanfaat untuk kalian semua, selebihnya, mohon maaf bila ada kesalahan.

Wassalamualaikum Warahmatullahi Wabarakatuh.

Belajar Menggunakan Wrapper Class pada Java

Belajar Menggunakan Wrapper Class pada Java


Assalamualaikum Warahmatullahi Wabarakatuh.

Di dalam bahasa pemrograman Java, Wrapper Class (Kelas Pembungkus) adalah suatu mekanisme yang digunakan untuk mengconvert atau mengubah suatu nilai yang di definisikan, dari tipe data primitif menjadi sebuah nilai dengan tipe data referensi (Objek). Selain itu, Wrapper Class mendukung method dari tipe data primitif, contohnya seperti Boolean, Character, Integer, Long, Float, dsb.

Belajar Menggunakan Wrapper Class pada Java

Pada materi kali ini , kita akan belajar mengenai fungsi serta contoh penggunaan dari Wrapper Class, menggunakan bahasa pemrograman Java. Silakan kalian simak tutorial berikut ini.

Materi Lainnya Yang Direkomendasikan:

Pada bahasa pemrograman Java, terdapat 2 jenis tipe data, yaitu primitif dan referensi (objek), Tipe Data Primitif adalah tipe data yang tidak memiliki method, hanya memiliki data saja. Tipe data ini bukanlah sebuah object, sedangkan Tipe Data Referensi adalah tipe data yang digunakan untuk memegang referensi dari sebuah object ( instance dari class).

Dan berikut ini merupakan table yang menjelaskan macam-macam tipe data primitif dan referensi pada Java:
Tipe Data Primitif Tipe Data Referensi
char Character
byte Byte
short Short
int Integer
long Long
boolean Boolean
float Float
double Double
Contoh Sederhana PenggunanWrapper Class pada Java

Pada contoh program berikut ini, kita menggunakan Wrapper Class serta mambuat objek dari class tersebut, dengan tipe data, seperti Character,, Integer, Long, Boolean Float dan Double. Lalu mendefinisikan nilainya pada argumen didalam Constructornya.

package WILDAN_TECHNO_ART;

public class latihan_java {
    
    public static void main(String[] args){
        
        /* Menginstansi Objek Dari Wrapper Class Dan
         * Menggunakan Argumen Dari Tipe Data Primitif
         */
        
        Character objChar = new Character('W');
        Byte objByte = new Byte("12");
        Short objShort = new Short("100");
        Integer objInt = new Integer(523);
        Long objLong = new Long(7689);
        Boolean objBoolean = new Boolean(true);
        Float objFloat = new Float(82.89f);
        Double objDouble = new Double(34.67);
        
        //Menampilkan Output dari Class Wrapper
        System.out.println("Character: "+objChar);
        System.out.println("Byte: "+objByte);
        System.out.println("Short: "+objShort);
        System.out.println("Integer: "+objInt);
        System.out.println("Long: "+objLong);
        System.out.println("Boolean: "+objBoolean);
        System.out.println("Float: "+objFloat);
        System.out.println("Double: "+objDouble);
    }
}

Demo:

Contoh sederhana penggunaan Wrapper Class

Sedikit penjelasan, pada tipe data Byte dan Short, kalian harus memasukan argumen berupa String, selain menggunakan constructor dengan kata kunci new, kalian juga dapat membuat objek serta argumennya seperti berikut ini:

Character objChar = 'W';
Integer objInt = 523;
Boolean objBoolean = true;
Float objFloat = 82.89f;
Double objDouble = 34.67;

Kecuali pada Byte, Short dan Long.

Selain menampilkan nilai dari argumen tersebut, kita juga dapat melihat batasan nilai maximal dan minimal dari tipe data Byte, Short, Integer, Long, Float, Double. Menggunakan fungsi MAX_VALUE dan MIN_VALUE, seperti berikut ini:

public static void main(String[] args){
        
        System.out.println("=============== MAXIMUM VALUE ==============");
        
        //Melihat Batas Maximal Pada Tipe Data Angka (Bilangan Bulat & Floating)
        System.out.println("Max Value Pada Byte: "+Byte.MAX_VALUE);
        System.out.println("Max Value Pada Short: "+Short.MAX_VALUE);
        System.out.println("Max Value Pada Integer: "+Integer.MAX_VALUE);
        System.out.println("Max Value Pada Long: "+Long.MAX_VALUE);
        System.out.println("Max Value Pada Float: "+Float.MAX_VALUE);
        System.out.println("Max Value Pada Double: "+Double.MAX_VALUE);
        
        System.out.println("=============== MINIMUM VALUE ==============");
        
        //Melihat Batas Minimal Pada Tipe Data Angka (Bilangan Bulat & Floating)
        System.out.println("Max Value Pada Byte: "+Byte.MIN_VALUE);
        System.out.println("Max Value Pada Short: "+Short.MIN_VALUE);
        System.out.println("Max Value Pada Integer: "+Integer.MIN_VALUE);
        System.out.println("Max Value Pada Long: "+Long.MIN_VALUE);
        System.out.println("Max Value Pada Float: "+Float.MIN_VALUE);
        System.out.println("Max Value Pada Double: "+Double.MIN_VALUE);
    }

Demo:

Melihat Jumlah Maximal serta Minimal pada Tipe Data Angka

Konversi Tipe Data Primitif ke Wrapper Class (Referensi), dan sebaliknya:

Pada contoh program selanjutnya, kita akan mengubah atau mengkonvert tipe data Primitif ke Referensi atau sebaliknya, seperti char ke Character, int ke Integer, boolean ke Boolean, double ke Double dan Sebaliknya:

public static void main(String[] args){
        
        //Mengkonversi Tipe Data Primitif ke Wrapper Class (Referensi)
        char karakter = 'W';
        int angka = 256;
        boolean status = true;
        double pecahan = 67.3;
        
        Character ConvChar = Character.valueOf(karakter); //Konversi char ke Charcter
        Integer ConvInt = Integer.valueOf(angka); //Konversi int ke Integer
        Boolean ConvBoolaen = Boolean.valueOf(status); //Konversi boolean ke Boolean
        Double ConvDouble = Double.valueOf(pecahan); //Konversi double ke Double
        
        //Mengkonversi Tipe Data Wrapper Class (Referensi) ke Primitif
        Character refChar = new Character('W');
        Integer refInt = new Integer(332);
        Boolean refBoolean = new Boolean(true);
        Double refDouble = new Double(84.63);
        
        char primChar = refChar.charValue(); //Konversi Charcter ke char
        int primInt = refInt.intValue(); //Konversi Integer ke int
        boolean primBoolean = refBoolean.booleanValue(); //Boolean char ke boolean
        double primDouble = refDouble.doubleValue(); //Konversi Double ke double
    }

Pada contoh program tersebut, untuk mengubah tipe data Primitif ke Wrapper Class, kalian dapat menggunakan fungsi valueOf() dan untuk sebaliknya, kalian dapat menggunakan fungsi charValue, intValue, booleanValue, dsb. Tergantung dengan tipe data yang kalian gunakan

Terimakasih atas kunjungannya, semoga meteri yang saya buat bisa bermanfaat untuk kalian semua, selebihnya, mohon maaf bila ada kesalahan.

Wassalamualaikum Warahmatullahi Wabarakatuh.