Minggu, 20 Juni 2021

Membuat apps media player dan vidio player pada android studio

 Assalamualaikum, semoga kita semua dalam lindungan Allah SWT, aamiin. Kali ini akan membahas sesuai judul blog yaitu Membuat apps media player dan video player pada android studio.

1. Pelaksanaan praktikum ( membuat apps MusicPlayer menggunakan API MediaPlayer)
a. buka aplikasi android studio
b. Jalankan aplikasi Android studio, caranya :
Pilih start (android studio) -> start A new Android studio project -> Empty activiti -> Next.
Konfigurasikan Project dengan:
– Name = MusicPlayer
– Save Location = Pilih tempat dimana Project akan disimpan
– Languange = Java
– Minimum API level 14, Jika sudah, klik Finish.
c. Siapkan file musik/suara dengan format file .mp3 dan file gambar handphone dengan jenis file .png
d. Buat sebuah direktori/foler dengan nama raw di dalam folder ../res/raw dengan cara klik kanan pada folder res baru pilih New-directori
e. Copy file musik .mp3 tadi kedalam folder ../raw dengan cara klik kanan pada folder raw lalu pilih Show in Explore
f. Copy file handphone.png tadi ke dalam folder ../res/drawable sehingga akan tampil struktur projek
g. Ketikan script file activity_main.xml

Maka akan terlihat desain tampilan seperti gambar di bawah ini

h. Buka dan ubah script MainActivity.java

i. Lalu jalankan, kurang lebih hasilnya seperti gambar di bawah ini.

2. Pelaksanaan praktikum
a. buka aplikasi android studio
b. Jalankan aplikasi Android studio, caranya :
Pilih start (android studio) -> start A new Android studio project -> Empty activiti -> Next.
Konfigurasikan Project dengan:
– Name = VideoPlayer
– Save Location = Pilih tempat dimana Project akan disimpan
– Languange = Java
– Minimum API level 14, Jika sudah, klik Finish.
c. Siapakan sebuah file video, buat sebuah direktori/folder dengan nama raw di dalam folder ../res/raw dengan cara klik kanan pada folder lalu pilih raw lalu klik New_directory
d. Copy file video yang telah disiapkan kedalam folder ../raw dengan cara klik kanan pada folder raw lalu pilih Show in Explore, lalu paste ke dalam folder raw file blockchain.mp4. Sehingga Kan tampil struktur projek
e. Ketikan script file activity_main.xml

Maka akan terlihat desain tampilan seperti gambar di bawah ini

f. Buka dan ubah script MainActivity.java

g. Lalu jalankan, kurang lebih hasilnya seperti gambar di bawah ini.

Sekian, mohon maaf bila ada salah pengetikan maupun bahasa yang digunakan. Wassalamu’alaikum wr wb

Sabtu, 12 Juni 2021

Pengenalan Asyntask dan AsyntaskLoader pada android studio

 Assalamualaikum, semoga kita semua dalam lindungan Allah SWT, aamiin. Kali ini akan membahas sesuai judul blog yaitu Pengenalan Asyntask dan AsyntaskLoader pada android studio.

1. Pelaksanaan praktikum
a. buka aplikasi android studio
b. Jalankan aplikasi Android studio, caranya :
Pilih start (android studio) -> start A new Android studio project -> Empty activiti -> Next.
Konfigurasikan Project dengan:
– Name = AsyncTaskDownload
– Save Location = Pilih tempat dimana Project akan disimpan
– Languange = Java. Jika sudah, klik Finish.
c. Ubah script file activity_main.xml

<?xml version=”1.0″ encoding=”utf-8″?>
<RelativeLayout xmlns:android=”http://schemas.android.com/apk/res/android&#8221;
xmlns:app=”http://schemas.android.com/apk/res-auto&#8221;
xmlns:tools=”http://schemas.android.com/tools&#8221;
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:orientation=”vertical”
android:paddingLeft=”10dp”
android:paddingTop=”10dp”
android:paddingRight=”10dp”
android:paddingBottom=”10dp”
tools:context=”.MainActivity”>

<Button
android:id=”@+id/button1″
android:layout_width=”match_parent”
android:layout_height=”wrap_content”
android:text=”Download” />

<TextView
android:id=”@+id/attrs”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:layout_alignParentRight=”true”
android:layout_alignParentBottom=”true”
android:layout_marginBottom=”15dp”
android:layout_marginRight=”15dp”
android:text=”objectoprogramming.wordpress.com
android:textStyle=”bold” />

</RelativeLayout>

d. Buka dan ubah script mainActivity.java

package objectoprogramming.wordpress.com.asynctaskdownload;

import androidx.appcompat.app.AppCompatActivity;
import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Bundle;
import java.io.BufferedInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLDecoder;
import java.util.Map;
import java.util.concurrent.TimeUnit;

import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Environment;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
import android.util.Log;

public class MainActivity extends AppCompatActivity implements OnClickListener {
public static final int download_progress = 0;
private String file_url = “http://adi.unggasid.com/wp-content/upload/2021/01/Ringkasan-Tesis-Adi-Muhamad.pdf&#8221;;
Button btn_download;
ProgressDialog prgDialog;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_download = (Button) findViewById(R.id.button1);
btn_download.setOnClickListener(this);
}

@Override
public void onClick (View view) {
if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
Log.i(“Permission”, “Permission is Denied”);
ActivityCompat.requestPermissions(MainActivity.this, new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE},101);
} else {
new DownloadFileAsync().execute(file_url);
}
}

@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case download_progress:
prgDialog = new ProgressDialog(this);
prgDialog.setMessage(“Download file…”);
prgDialog.setIndeterminate(false);
prgDialog.setMax(100);
prgDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
prgDialog.setCancelable(false);
prgDialog.show();
return prgDialog;
default:
return null;
}
}

class DownloadFileAsync extends AsyncTask<String, Integer, String> {
@Override
protected void onPreExecute() {
showDialog(download_progress);
}

@Override
protected String doInBackground(String… aurl) {
Log.i(“testing”, “url download : ” + aurl[0]);
URL url = null;
int count;
try {
url = new URL(aurl[0]);
URLConnection conexion = url.openConnection();
Log.i(“koneksi”, “koneksi berhasil”);
int lenghtOfFile = conexion.getContentLength();
Log.i(“UkuranFile”, “ukuran : ” + String.valueOf(lenghtOfFile));
InputStream input = new BufferedInputStream(url.openStream(),10*1024);
String fileName = conexion.getHeaderField(“Content-Disposition”);
if (fileName == null || fileName.length() < 1) {
URL downloadUrl = conexion.getURL();
fileName = downloadUrl.getFile();
fileName = fileName.substring(fileName.lastIndexOf(“/”) + 1);
} else {
fileName = URLDecoder.decode(fileName.substring(fileName.indexOf(“filename=”) + 9),”UTF-8″);
fileName = fileName.replaceAll(“\””, “”);
}

OutputStream output = new FileOutputStream(Environment.getExternalStorageDirectory().getPath() + “/Download” + fileName);

byte data[] = new byte[1024];
long total = 0;
while ((count = input.read(data)) != -1) {
total += count;
publishProgress((int) ((total*100)/lenghtOfFile));
output.write(data, 0, count);
}
output.flush();
output.close();
input.close();
} catch (Exception e) {
e.printStackTrace();
Log.d(“koneksi”, “koneksi gagal”);
}

return null;
}

protected void onProgressUpdate(Integer… progress) {
prgDialog.setProgress(progress[0]);
}

protected void onPostExecute(String result) {
dismissDialog(download_progress);
Toast.makeText(getApplicationContext(), “Download complete. FIle in /sdcard/Download”, Toast.LENGTH_SHORT).show();
}
}
}

e. Buat sebuah file dengan nama network_security_config.xml di dalam folder/res/html kemudian ketikkan kode seperti di bawah ini

<?xml version=”1.0″ encoding=”utf-8″?>
<network-security-config
xmlns:android=”http://schemas.android.com/apk/res/android”&gt;
<base-config cleartextTrafficPermitted = “true”/>
</network-security-config>

f. Sesuaikan Script AndroidManifest.xml seperti di bawah ini untuk mendaftarkan komponen intent filter dan mendaftarkan permission akses internet dan write external storage yang dibutuhkan

<?xml version=”1.0″ encoding=”utf-8″?>
<manifest xmlns:android=”http://schemas.android.com/apk/res/android&#8221;
package=”objectoprogramming.wordpress.com.asynctaskdownload”>
<uses-permission android:name=”android.permission.INTERNET” />
<uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE” />

<application
android:requestLegacyExternalStorage=”true”
android:usesCleartextTraffic=”true”
android:networkSecurityConfig=”@xml/network_security_config”
android:allowBackup=”true”
android:icon=”@mipmap/ic_launcher”
android:label=”@string/app_name”
android:roundIcon=”@mipmap/ic_launcher_round”
android:theme=”@style/Theme.AppCompat”
android:supportsRtl=”true”>
<activity android:name=”.MainActivity”>
<intent-filter>
<action android:name=”android.intent.action.MAIN” />

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

</manifest>

g. Lalu coba jalankan menggunakan emulator yang tersedia di Android studio.

Sekian, mohon maaf bila ada salah pengetikan maupun bahasa yang digunakan. Wassalamu’alaikum wr wb

Sabtu, 01 Mei 2021

Pengenalan Layouting lanjutan (FrameLayout, ListView, GridView, ConstrainLayout) pada android strudio

 Assalamualaikum, semoga kita semua dalam lindungan Allah SWT, aamiin. Kali ini akan membahas sesuai judul blog yaitu Pengenalan Layouting lanjutan (FrameLayout, ListView, GridView, ConstrainLayout) pada android strudio.


1. FrameLayout
FrameLayout adalah layout sederhana, layout ini bisa berisi satu atau lebih View child, dan bisa tumpang tindih satu sama lain. Oleh karena itu, atribut android:layout_gravity digunakan untuk menemukan ViewChild.
Contoh 1 :
a. buka aplikasi android studio
b. Jalankan aplikasi Android studio, caranya :
Pilih start (android studio) -> start A new Android studio project -> Empty activiti -> Next.
Konfigurasikan Project dengan:
– Name = FrameLayout
– Save Location = Pilih tempat dimana Project akan disimpan
– Languange = Java. Jika sudah, klik Finish.
c. Ubah script file activity_main.xml

<?xml version=”1.0″ encoding=”utf-8″?>
<FrameLayout xmlns:android=”http://schemas.android.com/apk/res/android&#8221;
xmlns:app=”http://schemas.android.com/apk/res-auto&#8221;
xmlns:tools=”http://schemas.android.com/tools&#8221;
android:layout_width=”match_parent”
android:layout_height=”match_parent”
tools:context=”.MainActivity”>

<Button
android:layout_width=”320dp”
android:layout_height=”400dp”
android:layout_gravity=”center”
android:id=”@+id/button1″
android:text=”Button 1″/>
<Button
android:layout_width=”140dp”
android:layout_height=”200dp”
android:layout_gravity=”center_horizontal”
android:id=”@+id/button2″
android:text=”Button 2″/>

</FrameLayout>

d. Jika sudah lalu jalankan, kurang lebih seperti gambar di bawah ini :

Contoh 2 :
Buat Project baru dengan cara pilih Start a new Android Studio Project. Selanjutnya pada menu Template kita pilih Empty Activity.
Konfigurasikan Project dengan:
– Name = FrameLayout2
– Save Location = Pilih tempat dimana Project akan disimpan
– Languange = Java. Jika sudah, klik Finish.
c. Ubah script file activity_main.xml
<?xml version=”1.0″encoding=”utf-8″?>
<FrameLayout xmlns:android=”http://schemas.android.com/apk/res/android&#8221;
xmlns:app=”http://schemas.android.com/apk/res-auto&#8221;
xmlns:tools=”http://schemas.android.com/tools&#8221;
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:padding=”11dp”
tools:context=”.MainActivity”>

<TextView
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”LeftTop”/>
<TextView
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”RightTop”
android:layout_gravity=”top|right”/>
<TextView
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”CenterTop”
android:layout_gravity=”top|center_horizontal”/>
<TextView
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”Left”
android:layout_gravity=”left|center_vertical”/>
<TextView
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”Right”
android:layout_gravity=”right|center_vertical”/>
<TextView
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”Center”
android:layout_gravity=”center”/>
<TextView
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”LeftBottom”
android:layout_gravity=”left|bottom”/>
<TextView
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”RightBottom”
android:layout_gravity=”right|bottom”/>
<TextView
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”CenterBottom”
android:layout_gravity=”center|bottom”/>

</FrameLayout>

d. Jika sudah lalu jalankan, kurang lebih seperti gambar di bawah ini :

2. ListView
ListView adalah salah satu widget yang digunakan untuk menampilkan data atau nilai dalam bentuk daftar/list, nilai atau data yang ditampilkan pada ListView tersebut didapat dari sebuah Array atau Database yang sudah ditentukan.

Buat Project baru dengan cara pilih Start a new Android Studio Project. Selanjutnya pada menu Template kita pilih Empty Activity.
Konfigurasikan Project dengan:
– Name = ListView
– Save Location = Pilih tempat dimana Project akan disimpan
– Languange = Java. Jika sudah, klik Finish.
c. Ubah script file activity_main.xml

<?xml version=”1.0″ encoding=”utf-8″?>
<RelativeLayout xmlns:android=”http://schemas.android.com/apk/res/android&#8221;
xmlns:app=”http://schemas.android.com/apk/res-auto&#8221;
xmlns:tools=”http://schemas.android.com/tools&#8221;
android:layout_width=”match_parent”
android:layout_height=”match_parent”
tools:context=”.MainActivity”>

<TextView
android:layout_width=”match_parent”
android:layout_height=”wrap_content”
android:id=”@+id/daftarMHS”
android:layout_marginTop=”10dp”
android:layout_marginBottom=”10dp”
android:gravity=”center”
android:background=”@color/colorPrimary”
android:textStyle=”bold”
android:textSize=”20sp”
android:text=”Mahasiswa Teladan STIKOM”/>
<ListView
android:layout_width=”match_parent”
android:layout_height=”wrap_content”
android:id=”@+id/listKarakter”
android:layout_below=”@+id/daftarMHS”/>

</RelativeLayout>

Ubah script MainActivity.java


package objectoprogramming.wordpress.com.listview;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String[] MahasiswaTeladan = {“Dikdik Yanbagilaha Pangestu”, “Faizal Anwar”, “Ananda Ariwibawa”, “Darin Maulana”, “Sultan Bisri”, “Andrew Darwis”, “Mardigu Wowik Prasetyo”, “Kirdi Putra”, “William Tanuwijaya”, “Nadiem Makarim”, “Achmad Zaky”, “Ferry Unardi”, “Muhammad Alfatih Timur”, “Kevin Aluwi”, “Adamas Belva Syah Devara”, “Gita Wirjawan”, “Brick Thohir”, “Chairul Tanjung”, “Muhammad Debian AN-Nizami”, “Muhammad Bilal Al-Khawirizmi”};
ListView daftar = findViewById(R.id.listKarakter);
ArrayAdapter<String> adaptor = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, MahasiswaTeladan);
daftar.setAdapter(adaptor);
daftar.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int posisi, long id) {
switch (posisi){
case 0:
Toast t = Toast.makeText(MainActivity.this, “Didik Merupakan Mhas Kelas TI 3 Semseter 4 yang memiliki Skill Desain Grafis ” + “https://didikpangestu311.wixsite.com/dikynbghlh&#8221;, Toast.LENGTH_SHORT);
t.setGravity(Gravity.CENTER, 0, 0);
t.show();
break;
case 1:
Toast t1 = Toast.makeText(MainActivity.this, “Faizal Anwar Merupakan Mhs TI 2 Semester 6 yang berprofesi sebagai Copywriter di ” + “https://www.naskahkode.com&#8221;, Toast.LENGTH_SHORT);
t1.setGravity(Gravity.CENTER, 0, 0);
t1.show();
break;
case 2:
Toast t2 = Toast.makeText(MainActivity.this, “Ananda Ariwibawa Merupakan Hhs TI 1 semester 6 yang meiliki Skill Web Desain ” + “https://ariwibawa.my.id&#8221;, Toast.LENGTH_SHORT);
t2.setGravity(Gravity.CENTER, 0, 0);
t2.show();
break;
case 3:
Toast t3 = Toast.makeText(MainActivity.this, “Darin Maulana Merupakan Aslab terbaik tahun 2021 versi Majalah FORBES”, Toast.LENGTH_SHORT);
t3.setGravity(Gravity.CENTER, 0, 0);
t3.show();
break;
case 4:
Toast t4 = Toast.makeText(MainActivity.this, “Sultan Bisri merupakan Runner Up Terbaik tahun 2021 versi Majalah FORBES”, Toast.LENGTH_SHORT);
t4.setGravity(Gravity.CENTER, 0, 0);
t4.show();
break;
case 5:
Toast t5 = Toast.makeText(MainActivity.this, “Andrew Darwis merupakan CEO https://www.kaskus.co.id/&#8221;, Toast.LENGTH_SHORT);
t5.setGravity(Gravity.CENTER, 0, 0);
t5.show();
break;
case 6:
Toast t6 = Toast.makeText(MainActivity.this, “Mardigu WP Merupakan CEO https://santara.co.id dan https://dinaran.id/&#8221;, Toast.LENGTH_SHORT);
t6.setGravity(Gravity.CENTER, 0, 0);
t6.show();
break;
case 7:
Toast t7 = Toast.makeText(MainActivity.this, “Kirdi Putra Merupakan CEO https://shiokaya.id/&#8221;, Toast.LENGTH_SHORT);
t7.setGravity(Gravity.CENTER, 0, 0);
t7.show();
break;
case 8:
Toast t8 = Toast.makeText(MainActivity.this, “William Tanuwijaya Merupakan CEO https://www.tokopedia.com/&#8221;, Toast.LENGTH_SHORT);
t8.setGravity(Gravity.CENTER, 0, 0);
t8.show();
break;
case 9:
Toast t9 = Toast.makeText(MainActivity.this, “Nadiem Makarin Merupakan CEO https://www.gojek.com/&#8221;, Toast.LENGTH_SHORT);
t9.setGravity(Gravity.CENTER, 0, 0);
t9.show();
break;
}
}
});
}
}

d. Jika sudah lalu jalankan, kurang lebih seperti gambar di bawah ini :

3. GridView

GridView adalah salah satu container yang digunakan untuk menampilkan konten View.

Buat Project baru dengan cara pilih Start a new Android Studio Project. Selanjutnya pada menu Template kita pilih Empty Activity.
Konfigurasikan Project dengan:
– Name = GridView
– Save Location = Pilih tempat dimana Project akan disimpan
– Languange = Java. Jika sudah, klik Finish.
c. Ubah script file activity_main.xml

<?xml version=”1.0″ encoding=”utf-8″?>
<GridView xmlns:android=”http://schemas.android.com/apk/res/android&#8221;
xmlns:app=”http://schemas.android.com/apk/res-auto&#8221;
xmlns:tools=”http://schemas.android.com/tools&#8221;
android:layout_width=”match_parent”
android:layout_height=”match_parent”
tools:context=”.MainActivity”

android:id=”@+id/gridview”
android:paddingTop=”10dp”
android:background=”#FFF5F5F5″
android:columnWidth=”90dp”
android:gravity=”center”
android:horizontalSpacing=”10dp”
android:numColumns=”auto_fit”
android:stretchMode=”columnWidth”
android:verticalSpacing=”10dp”>

</GridView>

Ubah script MainActivity.java

package objectoprogramming.wordpress.com.gridview;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Context;
import android.os.BadParcelableException;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
protected GridView TampilanGrid;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getSupportActionBar().setTitle(“Menu Gallery”);
TampilanGrid = findViewById(R.id.gridview);

TampilanGrid.setAdapter(new ImageAdapter(this));

TampilanGrid.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View v, int position, long id) {
Toast.makeText(MainActivity.this, “” + position, Toast.LENGTH_SHORT).show();
}
});
}
}

class ImageAdapter extends BaseAdapter{
private int[] gambar = {R.drawable.cash, R.drawable.checkbook, R.drawable.coins, R.drawable.creditcard, R.drawable.discount, R.drawable.gift, R.drawable.insurance, R.drawable.invoice, R.drawable.mobilepayment, R.drawable.payment, R.drawable.paymentsystem, R.drawable.paymentterminal, R.drawable.price, R.drawable.shoppingbag, R.drawable.stats};
private Context mContext;
ImageAdapter(Context c){
mContext = c;
}
public int getCount(){
return gambar.length;
}

public Object getItem(int position) {
return null;
}

public long getItemId(int position) {
return 0;
}

public View getView(int position, View convertView, ViewGroup parent){
ImageView imageView;

if (convertView == null){
imageView = new ImageView(mContext);
imageView.setLayoutParams(new ViewGroup.LayoutParams(240, 240));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(4,4,4,4);
} else {
imageView = (ImageView) convertView;
}

imageView.setImageResource(gambar[position]);
return imageView;
}
}

d. Jika sudah lalu jalankan, kurang lebih seperti gambar di bawah ini :

Sekian, mohon maaf bila ada salah pengetikan maupun bahasa yang digunakan. Wassalamu’alaikum wr wb

Membuat apps media player dan vidio player pada android studio

  Assalamualaikum, semoga kita semua dalam lindungan Allah SWT, aamiin. Kali ini akan membahas sesuai judul blog yaitu Membuat apps media pl...