Minggu, 08 Desember 2019

Tugas 2 & 3 Teknik Kompilasi STMIK ERESHA Kelas 06TPLP001

Postingan berikut adalah untuk mengumpulkan Tugas 2 dan Tugas 3 Mata Kuliah Teknik Kompilasi.

Nama : Muhammad Rizqi Nadjima
Kelas : 06TPLP001
NIM  : 161021450141

Berikut adalah screenshoot Tugas 2 :


Soal, Source Code & Output dari Tugas 3 :

Soal : Buat Program Untuk Membentuk 
           P : {aⁿ bⁿ cⁿ | ⁿ adalah bilangan bulat ≥ 1}

Screenshoot Source Code :

Screenshoot Output :

Sekian jawaban dari saya, kurang lebihnya saya mohon maaf. Wassallam :)

Rabu, 20 November 2019

Tugas Mingguan Mata Kuliah Mobile Programing Kelas 06TPLP001

1. Deskripsi Aplikasi

Aplikasi ini dibuat untuk memenuhi tugas mingguan, Aplikasi pemutar musik ini dibuat menggunakan Android studio, menggunakan custom listview dan juga dapat membaca lagu dengan sendirinya tanpa harus memasukan lagu pada saat pembuatan aplikasi.

2. Screenshoot Interface Aplikasi



3. Source Code XML dan Java


PlayerActivity.java

package com.heavenstudio.Multimedia;
import android.annotation.SuppressLint;import android.content.Intent;import android.graphics.PorterDuff;import android.media.MediaPlayer;import android.net.Uri;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.MenuItem;import android.view.View;import android.widget.Button;import android.widget.SeekBar;import android.widget.TextView;
import java.io.File;import java.util.ArrayList;
public class PlayerActivity extends AppCompatActivity{
    static MediaPlayer mp;//assigning memory loc once or else multiple songs will play at once    int position;    SeekBar sb;    ArrayList<File> mySongs;    Thread updateSeekBar;    Button pause,next,previous;    TextView songNameText;
    String sname;    @SuppressLint("NewApi")    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.music_player_ui);
        songNameText = (TextView) findViewById(R.id.txtSongLabel);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);        getSupportActionBar().setDisplayShowHomeEnabled(true);        getSupportActionBar().setTitle("Now Playing");
        pause = (Button)findViewById(R.id.pause);
        previous = (Button)findViewById(R.id.previous);        next = (Button)findViewById(R.id.next);
        sb=(SeekBar)findViewById(R.id.seekBar);

        updateSeekBar=new Thread(){            @Override            public void run(){                int totalDuration = mp.getDuration();                int currentPosition = 0;                while(currentPosition < totalDuration){                    try{                        sleep(500);                        currentPosition=mp.getCurrentPosition();                        sb.setProgress(currentPosition);                    }                    catch (InterruptedException e){
                        }                }            }        };



        if(mp != null){            mp.stop();            mp.release();        }        Intent i = getIntent();        Bundle b = i.getExtras();

        mySongs = (ArrayList) b.getParcelableArrayList("songs");
        sname = mySongs.get(position).getName().toString();
        String SongName = i.getStringExtra("songname");        songNameText.setText(SongName);        songNameText.setSelected(true);
        position = b.getInt("pos",0);        Uri u = Uri.parse(mySongs.get(position).toString());
        mp = MediaPlayer.create(getApplicationContext(),u);        mp.start();        sb.setMax(mp.getDuration());        updateSeekBar.start();        sb.getProgressDrawable().setColorFilter(getResources().getColor(R.color.colorPrimary), PorterDuff.Mode.MULTIPLY);        sb.getThumb().setColorFilter(getResources().getColor(R.color.colorPrimary), PorterDuff.Mode.SRC_IN);

        sb.setOnSeekBarChangeListener(new                                              SeekBar.OnSeekBarChangeListener() {                                                  @Override                                                  public void onProgressChanged(SeekBar seekBar, int i,                                                                                boolean b) {                                                  }                                                  @Override                                                  public void onStartTrackingTouch(SeekBar seekBar) {                                                  }                                                  @Override                                                  public void onStopTrackingTouch(SeekBar seekBar) {                                                      mp.seekTo(seekBar.getProgress());
                                                  }                                              });        pause.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                sb.setMax(mp.getDuration());                if(mp.isPlaying()){                    pause.setBackgroundResource(R.drawable.ic_play_arrow_black_24dp);                    mp.pause();
                }                else {                    pause.setBackgroundResource(R.drawable.pause);                    mp.start();                }            }        });
        next.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                mp.stop();                mp.release();                position=((position+1)%mySongs.size());                Uri u = Uri.parse(mySongs.get( position).toString());               // songNameText.setText(getSongName);                mp = MediaPlayer.create(getApplicationContext(),u);
                sname = mySongs.get(position).getName().toString();                songNameText.setText(sname);
                try{                    mp.start();                }catch(Exception e){}
            }        });        previous.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                //songNameText.setText(getSongName);                mp.stop();                mp.release();
                position=((position-1)<0)?(mySongs.size()-1):(position-1);                Uri u = Uri.parse(mySongs.get(position).toString());                mp = MediaPlayer.create(getApplicationContext(),u);                sname = mySongs.get(position).getName().toString();                songNameText.setText(sname);                mp.start();            }        });

    }
     @Override    public boolean onOptionsItemSelected(MenuItem item) {        if(item.getItemId()==android.R.id.home){           onBackPressed();        }
        return super.onOptionsItemSelected(item);    }}

Tunes.Java

package com.heavenstudio.Multimedia;
import android.Manifest;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.content.Intent;import android.os.Environment;import android.view.View;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.ListView;
import com.karumi.dexter.Dexter;import com.karumi.dexter.PermissionToken;import com.karumi.dexter.listener.PermissionDeniedResponse;import com.karumi.dexter.listener.PermissionGrantedResponse;import com.karumi.dexter.listener.PermissionRequest;import com.karumi.dexter.listener.single.PermissionListener;

import java.io.File;import java.util.ArrayList;public class Tunes extends AppCompatActivity {    ListView listView;    String[] items;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_tunes);        listView = (ListView) findViewById(R.id.listView);

        Dexter.withActivity(this)                .withPermission(Manifest.permission.READ_EXTERNAL_STORAGE)                .withListener(new PermissionListener() {                    @Override                    public void onPermissionGranted(PermissionGrantedResponse response) {
                        display();                    }
                    @Override                    public void onPermissionDenied(PermissionDeniedResponse response) {                        // check for permanent denial of permission                        if (response.isPermanentlyDenied()) {
                        }                    }
                    @Override                    public void onPermissionRationaleShouldBeShown(PermissionRequest permission, PermissionToken token) {                        token.continuePermissionRequest();                    }                }).check();

    }
    public ArrayList<File> findSong(File root){        ArrayList<File> at = new ArrayList<File>();        File[] files = root.listFiles();        for(File singleFile : files){            if(singleFile.isDirectory() && !singleFile.isHidden()){                at.addAll(findSong(singleFile));            }            else{                if(singleFile.getName().endsWith(".mp3") ||                        singleFile.getName().endsWith(".wav")){                    at.add(singleFile);                }            }        }        return at;    }    void display(){        final ArrayList<File> mySongs = findSong(Environment.getExternalStorageDirectory());        items = new String[ mySongs.size() ];        for(int i=0;i<mySongs.size();i++){            //toast(mySongs.get(i).getName().toString());            items[i] = mySongs.get(i).getName().toString().replace(".mp3","").replace(".wav","");        }        ArrayAdapter<String> adp = new                ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,items);        listView.setAdapter(adp);

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> adapterView, View view, int                    position, long l) {
                String songName = listView.getItemAtPosition(position).toString();                startActivity(new Intent(getApplicationContext(),PlayerActivity.class)
                        .putExtra("pos",position).putExtra("songs",mySongs).putExtra("songname",songName));            }        });    }


}

activity_tunes.xml

<?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:id="@+id/activity_tune"    android:layout_width="match_parent"    android:layout_height="match_parent"
    tools:context="com.heavenstudio.Multimedia.Tunes">
    <ListView        android:layout_width="match_parent"        android:layout_height="match_parent"        android:layout_alignParentTop="true"        android:layout_alignParentLeft="true"        android:layout_alignParentStart="true"        android:id="@+id/listView" />
</RelativeLayout>

music_player_ui.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:weightSum="10"    android:layout_height="match_parent">
    <LinearLayout        android:layout_width="match_parent"        android:layout_height="0dp"        android:gravity="center"        android:padding="10dp"        android:orientation="vertical"        android:layout_weight="7">
        <ImageView            android:layout_width="250dp"            android:layout_height="250dp"            android:src="@drawable/cover_art"            android:id="@+id/album_art"
            />
        <TextView            android:id="@+id/txtSongLabel"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:text="song name"            android:singleLine="true"            android:marqueeRepeatLimit="marquee_forever"            android:layout_marginTop="20dp"            android:textSize="22sp"            android:textAlignment="center"            android:ellipsize="marquee"            android:scrollHorizontally="true"            android:textColor="@color/colorPrimary"            />
    </LinearLayout>
    <LinearLayout        android:layout_width="match_parent"        android:layout_height="0dp"        android:layout_weight="3"        >        <RelativeLayout            android:layout_width="match_parent"            android:layout_height="match_parent"            android:padding="5dp">
            <SeekBar                android:layout_alignParentBottom="true"                android:id="@+id/seekBar"                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:layout_marginBottom="40dp"                />            <Button                android:layout_marginTop="5dp"                android:layout_width="60dp"                android:layout_height="60dp"                android:layout_centerHorizontal="true"                android:background="@drawable/pause"                android:id="@+id/pause"
               />
            <Button
                android:id="@+id/next"                android:layout_width="40dp"                android:layout_height="40dp"                android:layout_toRightOf="@+id/pause"                android:background="@drawable/ic_skip_next_black_24dp"                android:layout_marginTop="15dp"                android:layout_marginLeft="20dp"                />
            <Button                android:id="@+id/previous"                android:layout_width="40dp"                android:layout_height="40dp"                android:layout_marginTop="15dp"                android:layout_marginRight="20dp"                android:layout_toLeftOf="@+id/pause"                android:background="@drawable/ic_skip_previous_black_24dp" />
        </RelativeLayout>
    </LinearLayout>
</LinearLayout>

Sekian dari saya, kurang lebihnya mohon maaf. Wassallam :)

Rabu, 30 Oktober 2019

Tugas UTS Semester 6 Kelas 06TPLP001

Aplikasi Nama Buah Berbasis Android


Deskripsi Program :
Program ini dibuat untuk membantu anak - anak dalam belajar dan mengenal buah - buahan. Di dalamnya juga ada deskripsi mengenai buah tersebut. Program ini menggunakan Firebase untuk memberi autentikasi pada saat user login maupun register.

1. Foto Lembar Kertas Saat Tatap Muka.

2. Screenshoot dan Source Code Java & XML.


Form Login : 
MainActivity.Java

package com.heavenstudio.aplikasinamabuah;

import android.annotation.SuppressLint;import android.content.Intent;import android.os.Bundle;import android.text.TextUtils;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.ProgressBar;import android.widget.TextView;import android.widget.Toast;
import androidx.annotation.NonNull;import androidx.appcompat.app.AppCompatActivity;import com.google.android.gms.tasks.OnCompleteListener;import com.google.android.gms.tasks.Task;import com.google.firebase.auth.AuthResult;import com.google.firebase.auth.FirebaseAuth;
public class Login extends AppCompatActivity {    EditText mEmail,mPassword;    Button mLoginBtn;    TextView mRegisterText;    ProgressBar progressBar;    FirebaseAuth fAuth;
    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_login);
        mEmail = findViewById(R.id.email);        mPassword = findViewById(R.id.password);        progressBar = findViewById(R.id.progressBar);        fAuth = FirebaseAuth.getInstance();        mLoginBtn = findViewById(R.id.loginBtn);        mRegisterText = findViewById(R.id.registerText);
        mLoginBtn.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {
                String email = mEmail.getText().toString().trim();                String password = mPassword.getText().toString().trim();
                if(TextUtils.isEmpty(email)){                    mEmail.setError("Email is Required.");                    return;                }
                if(TextUtils.isEmpty(password)){                    mPassword.setError("Password is Required.");                    return;                }
                if(password.length() < 6){                    mPassword.setError("Password Must be More Than 6 Characters");                    return;                }
                progressBar.setVisibility(View.VISIBLE);
                // authenticate the user
                fAuth.signInWithEmailAndPassword(email,password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {                    @Override                    public void onComplete(@NonNull Task<AuthResult> task) {                        if(task.isSuccessful()){                            Toast.makeText(Login.this, "Logged in Successfully", Toast.LENGTH_SHORT).show();                            startActivity(new Intent(getApplicationContext(),MainActivity.class));                        }else {                            Toast.makeText(Login.this, "Error ! " + task.getException().getMessage(), Toast.LENGTH_SHORT).show();                            progressBar.setVisibility(View.GONE);                        }
                    }                });
            }        });


        mRegisterText.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                startActivity(new Intent(getApplicationContext(),Register.class));            }        });

    }}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:aapt="http://schemas.android.com/aapt"    android:layout_width="match_parent"    android:layout_height="match_parent">
    <ListView        android:id="@+id/listview"        android:layout_width="match_parent"        android:layout_height="wrap_content"        app:layout_constraintBottom_toBottomOf="parent"        app:layout_constraintEnd_toEndOf="parent"        app:layout_constraintStart_toStartOf="parent"        app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout>

Form Register

Register.java

package com.heavenstudio.aplikasinamabuah;
import android.annotation.SuppressLint;import android.content.Intent;import android.os.Bundle;import android.text.TextUtils;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.ProgressBar;import android.widget.TextView;import android.widget.Toast;
import androidx.annotation.NonNull;import androidx.appcompat.app.AppCompatActivity;import com.google.android.gms.tasks.OnCompleteListener;import com.google.android.gms.tasks.Task;import com.google.firebase.auth.AuthResult;import com.google.firebase.auth.FirebaseAuth;
public class Register extends AppCompatActivity {    EditText mFullName,mEmail,mPassword,mPhone;    Button mRegisterBtn;    TextView mLoginText;    FirebaseAuth fAuth;    ProgressBar progressBar;
    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_register);
        mFullName   = findViewById(R.id.fullName);        mEmail      = findViewById(R.id.email);        mPassword   = findViewById(R.id.password);        mPhone      = findViewById(R.id.phone);        mRegisterBtn= findViewById(R.id.registerBtn);        mLoginText   = findViewById(R.id.loginText);
        fAuth = FirebaseAuth.getInstance();        progressBar = findViewById(R.id.progressBar);
        if(fAuth.getCurrentUser() != null){            startActivity(new Intent(getApplicationContext(),MainActivity.class));            finish();        }

        mRegisterBtn.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                String email = mEmail.getText().toString().trim();                String password = mPassword.getText().toString().trim();
                if(TextUtils.isEmpty(email)){                    mEmail.setError("Email is Required.");                    return;                }
                if(TextUtils.isEmpty(password)){                    mPassword.setError("Password is Required.");                    return;                }
                if(password.length() < 6){                    mPassword.setError("Password Must be More Than 6 Characters");                    return;                }
                progressBar.setVisibility(View.VISIBLE);
                // register the user in firebase
                fAuth.createUserWithEmailAndPassword(email,password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {                    @Override                    public void onComplete(@NonNull Task<AuthResult> task) {                        if(task.isSuccessful()){                            Toast.makeText(Register.this, "User Created.", Toast.LENGTH_SHORT).show();                            startActivity(new Intent(getApplicationContext(),MainActivity.class));
                        }else {                            Toast.makeText(Register.this, "Error ! " + task.getException().getMessage(), Toast.LENGTH_SHORT).show();                            progressBar.setVisibility(View.GONE);                        }                    }                });            }        });


        mLoginText.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                startActivity(new Intent(getApplicationContext(),Login.class));            }        });
    }}

activity_register.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:aapt="http://schemas.android.com/aapt"    android:background="@drawable/wallpaper"    android:layout_width="match_parent"    android:layout_height="match_parent">
    <TextView        android:id="@+id/textView"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_marginStart="24dp"        android:layout_marginTop="8dp"        android:layout_marginEnd="24dp"        android:layout_marginBottom="17dp"        android:fontFamily="@font/aclonica"        android:text="Aplikasi Nama Buah"        android:textAlignment="center"        android:textColor="#2962ff"        android:textSize="25sp"        app:layout_constraintBottom_toTopOf="@+id/textView2"        app:layout_constraintEnd_toEndOf="parent"        app:layout_constraintHorizontal_bias="0.494"        app:layout_constraintStart_toStartOf="parent"        app:layout_constraintTop_toBottomOf="@+id/imageView3" />
    <TextView        android:id="@+id/textView2"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_marginStart="140dp"        android:layout_marginTop="8dp"        android:layout_marginEnd="140dp"        android:fontFamily="@font/aclonica"        android:text="Create New Account"        android:textColor="#ffffff"        android:textSize="13sp"        app:layout_constraintEnd_toEndOf="parent"        app:layout_constraintHorizontal_bias="0.533"        app:layout_constraintStart_toStartOf="parent"        app:layout_constraintTop_toBottomOf="@+id/textView" />
    <EditText        android:id="@+id/fullName"        android:layout_width="0dp"        android:layout_height="wrap_content"        android:layout_marginStart="16dp"        android:layout_marginTop="16dp"        android:layout_marginEnd="16dp"        android:background="@android:color/black"        android:ems="10"        android:fontFamily="@font/aclonica"        android:hint="Full Name"        android:inputType="textPersonName"        android:padding="10sp"        android:textColor="#ffffff"        android:textColorHint="#ffffff"        android:textSize="14sp"        app:layout_constraintEnd_toEndOf="parent"        app:layout_constraintStart_toStartOf="parent"        app:layout_constraintTop_toBottomOf="@+id/textView2" />
    <EditText        android:id="@+id/email"        android:layout_width="0dp"        android:layout_height="wrap_content"        android:layout_marginStart="16dp"        android:layout_marginTop="16dp"        android:layout_marginEnd="16dp"        android:background="@android:color/black"        android:ems="10"        android:fontFamily="@font/aclonica"        android:hint="Email"        android:inputType="textEmailAddress"        android:padding="10sp"        android:textColor="#ffffff"        android:textColorHint="#ffffff"        android:textSize="14sp"        app:layout_constraintEnd_toEndOf="parent"        app:layout_constraintStart_toStartOf="parent"        app:layout_constraintTop_toBottomOf="@+id/fullName" />
    <EditText        android:id="@+id/password"        android:layout_width="0dp"        android:layout_height="wrap_content"        android:layout_marginStart="16dp"        android:layout_marginTop="16dp"        android:layout_marginEnd="16dp"        android:background="@android:color/black"        android:ems="10"        android:fontFamily="@font/aclonica"        android:hint="Password"        android:inputType="textPassword"        android:padding="10sp"        android:textColor="#ffffff"        android:textColorHint="#ffffff"        android:textSize="14sp"        app:layout_constraintEnd_toEndOf="parent"        app:layout_constraintStart_toStartOf="parent"        app:layout_constraintTop_toBottomOf="@+id/email" />
    <EditText        android:id="@+id/phone"        android:layout_width="0dp"        android:layout_height="wrap_content"        android:layout_marginStart="16dp"        android:layout_marginTop="16dp"        android:layout_marginEnd="16dp"        android:background="@android:color/black"        android:ems="10"        android:fontFamily="@font/aclonica"        android:hint="Phone Number"        android:inputType="textPhonetic"        android:padding="10sp"        android:textColor="#ffffff"        android:textColorHint="#ffffff"        android:textSize="14sp"        app:layout_constraintEnd_toEndOf="parent"        app:layout_constraintStart_toStartOf="parent"        app:layout_constraintTop_toBottomOf="@+id/password" />
    <Button        android:id="@+id/registerBtn"        android:layout_width="0dp"        android:layout_height="wrap_content"        android:layout_marginStart="16dp"        android:layout_marginTop="32dp"        android:layout_marginEnd="16dp"        android:background="#2962ff"        android:fontFamily="@font/aclonica"        android:text="Register"        android:textColor="#000000"        android:textSize="18sp"        android:textStyle="bold"        app:layout_constraintEnd_toEndOf="parent"        app:layout_constraintStart_toStartOf="parent"        app:layout_constraintTop_toBottomOf="@+id/phone" />
    <TextView        android:id="@+id/loginText"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_marginTop="16dp"        android:text="Already Have an Account? Login Here!"        android:textAlignment="center"        android:textColor="#ff0000"        android:textSize="18sp"        android:textStyle="bold"        app:layout_constraintEnd_toEndOf="parent"        app:layout_constraintStart_toStartOf="parent"        app:layout_constraintTop_toBottomOf="@+id/registerBtn" />
    <ProgressBar        android:id="@+id/progressBar"        style="?android:attr/progressBarStyle"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:visibility="invisible"        app:layout_constraintBottom_toBottomOf="parent"        app:layout_constraintEnd_toEndOf="parent"        app:layout_constraintStart_toStartOf="parent"        app:layout_constraintTop_toBottomOf="@+id/loginText" />
    <ImageView        android:id="@+id/imageView3"        android:layout_width="120dp"        android:layout_height="120dp"        android:layout_marginTop="32dp"        app:layout_constraintEnd_toEndOf="parent"        app:layout_constraintHorizontal_bias="0.498"        app:layout_constraintStart_toStartOf="parent"        app:layout_constraintTop_toTopOf="parent"        app:srcCompat="@mipmap/logo" /></androidx.constraintlayout.widget.ConstraintLayout>

Form MainActivity


MainActivity.java

package com.heavenstudio.aplikasinamabuah;
import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.ListView;import android.widget.TextView;import android.widget.Toolbar;import androidx.appcompat.app.AppCompatActivity;import com.google.firebase.auth.FirebaseAuth;
public class MainActivity extends AppCompatActivity {    private FirebaseAuth auth;    String[] fruitNames = {"Alpukat", "Anggur", "Apel", "Ceri", "Durian", "Jambu Air", "Jeruk", "Mangga", "Manggis", "Strawberry"};    int[] fruitImages = {R.drawable.alpukat, R.drawable.anggur, R.drawable.apel, R.drawable.ceri, R.drawable.durian, R.drawable.jambuair, R.drawable.jeruk, R.drawable.mangga, R.drawable.manggis, R.drawable.strawberry};    String[] fruitDesc = {            "Buah alpukat atau yang di dalam bahasa Inggrisnya dikenal dengan Avocado mempunyai cukup banyak manfaat. Di antaranya adalah ia mampu menangkal adanya radikal bebas atau berbagai jenis racun di dalam tubuh manusiaBuah alpukat sendiri kerap dipakai untuk membuat jus. Campuran untuk es campur dan berbagai hidangan untuk jenis minuman segar yang lain.Untuk ukurannya sendiri, buah alpukat memiliki kisaran ukuran 7 sampai dengan 20 cm. Ia memiliki berat sekitar 100 hingga 1000 gram untuk setiap bijinya. Buah ini juga mempunyai biji cukup besar, yaitu antara 5 sampai dengan 6,4 cm.",            "Buah atau tanaman anggur hidup di kawasan daratan rendah. Jenis tanaman satu ini memerlukan musim kemarau, yakni antara bulan empat sampai bulan tujuh. Dan agar jenis tanaman satu ini bisa tumbuh, dibutuhkanlah yang namanya sinar matahari. Dengan demikian, maka akan menghasilkan buah anggur yang lezat. Buah anggur sendiri terdiri atas beberapa warna dan jenis yang cukup bervariasi. Di antaranya adalah kaiji grape atau anggur merah agak putih bening. Selain itu juga ada anggur jenis Auxerrois Grape yang berwarna kuning terang keputihan, Dan juga Carbernet Franc Grape yang warnanya relatif biru gelap.",            "Apel merupakan jenis buah-buahan yang bagian luarnya biasanya berwarna merah saat sudah matang dan siap untuk dimakan. Akan tetapi, ada juga buah apel yang warnanya kuning atau hijau saja sudah matang. Pohon apel sendiri biasanya tumbuh pada daerah-daerah yang mempunyai suhu udara sejuk dan dingin. Pohonnya sendiri sekitar tiga sampai dua belas meter dan menghasilkan jenis buah yang manis. Di samping itu, ia juga memiliki biji yang ukurannya kecil di dalam daging buahnya.",            "Buah ceri kerap disebut sebagai jenis buah kersen. Buah satu ini hidup di kawasan yang mempunyai iklim sedang. Buah ini cukup banyak ditemukan di Indonesia, khususnya di daerah pinggir jalanan. Buah satu ini memiliki pohon yang sangat rindang sehingga sangat pas untuk dijadikan tempat untuk berteduh. Berdasarkan sebuah penelitian yang dilakukan, buah ceri ini memiliki kandungan yang amat beragam. Selain kandungannya yang beragam, manfaatnya juga sangat beragam. Misalnya adalah ia bisa dijadikan sebagai antiseptik, kemudian membantu meringankan gejala flu, sakit kepala, diabetes dan juga bisa dijadikan sebagai bahan anti peradangan.",            "Buah durian merupakan salah satu jenis buah yang mempunyai kulit buah dengan lekuk yang tajam menyerupai duri. Buah ini memiliki rasa yang cukup unik dan lezat. Sedangkan untuk teksturnya sendiri bisa dibilang sangat pulen dan tidak keras. Selain itu, ia juga tidak melumer. Buah ini cukup banyak disukai oleh masyarakat, namun tidak sedikit masyarakat yang kurang suka terhadap jenis buah yang satu ini, salah satunya karena aroma yang dimilikinya. Di Indonesia sendiri, ada cukup banyak jenis buah durian. Di antara jenis buah durian yang terkenal di Indonesia adalah durian montong, durian bawor, durian bokor, durian merah, durian matahari dan lain sebagainya.",            "Ini adalah jenis buah yang memiliki kandungan air cukup banyak sehingga ia dikenal dengan jambu air. Saat matang, buah satu ini umumnya mempunyai warna merah muda. Buah satu ini sangat cocok untuk dimakan khususnya saat hawanya sedang panas serta dahaga. Buah jambu air ini sangat sering dipakai untuk campuran rujak buah atau untuk manisan. Di samping jenis jambu air, ternyata masih ada lagi jenis varietas yang lain misalnya jambu batu, jambu bol dan lain sebagainya.",            "Buah jeruk adalah salah satu jenis buah yang di dalamnya banyak terkandung Vitamin C, kalsium dan juga mineral. Buah ini terdiri dari beberapa jenis, di antaranya adalah jeruk lemon, jeruk nipis. Jeruk mandarin, jeruk Sunkist, jeruk bali dan masih banyak lagi yang lainnya. Buah satu ini cenderung memiliki rasa asam, segar dan juga manis. Rasanya tersebut ditentukan berdasarkan jenis jeruknya sendiri. Selain itu juga ditentukan berdasarkan kematangannya. Hasil olahan dari jeruk sendiri sangatlah mudah dan sederhana. Baik itu olahan di dalam bentuk cair ataupun dalam bentuk bubuk.",            "Buah mangga adalah salah satu jenis buah yang cukup favorit di Indonesia. Hal itu dikarenakan buah satu ini memiliki rasa yang manis dan juga daging yang cukup tebal. Bentuk dan juga tingkatan rasa manis dari buah satu ini cukup berbeda, tergantung dari jenis mangga apa. Karena buah satu ini memiliki beberapa jenis.Di Indonesia ada beberapa jenis buah mangga yang amat terkenal dengan rasanya yang lezat, misalnya adalah mangga ponding, mangga arum manis, mangga madu, simanalagi, dan beberapa jenis yang lainnya.",            "Buah manggis memiliki warna merah yang agak keunguan ketika buah ini matang. Buah ini biasa dikenal sebagai si ratu buah. Sedangkan untuk raja buahnya disematkan kepada jenis buah durian. Buah manggis memiliki kandungan antioksidan dan juga antininflamasi. Beberapa jenis penelitian menyatakan bahwa buah manggis merupakan jenis buah yang kandungan antioksidannya tinggi dibandingkan dengan berbagai jenis buah lain di dunia.",            "Ini adalah jenis buah yang ketika matang berwarna merah. Namun saat proses berkembang, buah ini mempunyai warna hijau keputihan. Buah ini ada yang rasanya manis dan ada yang rasanya asam manis. Biasanya, jenis buah ini mudah ditemui di daerah-daerah yang iklimnya sejuk."    };    ListView listView;
    private class CustomAdapter extends BaseAdapter {        private CustomAdapter() {        }
        public int getCount() {            return MainActivity.this.fruitImages.length;        }
        public Object getItem(int i) {            return null;        }
        public long getItemId(int i) {            return 0;        }
        public View getView(int i, View view, ViewGroup viewGroup) {            View view1 = MainActivity.this.getLayoutInflater().inflate(R.layout.row_data, null);            ImageView image = view1.findViewById(R.id.images);            TextView desc = view1.findViewById(R.id.desc);            ((TextView) view1.findViewById(R.id.fruits)).setText(MainActivity.this.fruitNames[i]);            image.setImageResource(MainActivity.this.fruitImages[i]);            desc.setText(MainActivity.this.fruitDesc[i]);            return view1;        }    }
    /* access modifiers changed from: protected */    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        this.listView = findViewById(R.id.listview);        this.listView.setAdapter(new CustomAdapter());        this.listView.setOnItemClickListener(new OnItemClickListener() {            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {                Intent intent = new Intent(MainActivity.this.getApplicationContext(), ListdataActivity.class);                intent.putExtra("name", MainActivity.this.fruitNames[i]);                intent.putExtra("image", MainActivity.this.fruitImages[i]);                intent.putExtra("desc", MainActivity.this.fruitDesc[i]);                MainActivity.this.startActivity(intent);            }        });        this.auth = FirebaseAuth.getInstance();    }
    private void setSupportActionBar(Toolbar toolbar) {    }
    /* access modifiers changed from: protected */    public void onPause() {        super.onPause();        this.auth.signOut();    }}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:aapt="http://schemas.android.com/aapt"    android:layout_width="match_parent"    android:layout_height="match_parent">
    <ListView        android:id="@+id/listview"        android:layout_width="match_parent"        android:layout_height="wrap_content"        app:layout_constraintBottom_toBottomOf="parent"        app:layout_constraintEnd_toEndOf="parent"        app:layout_constraintStart_toStartOf="parent"        app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout>

FormListdata


ListdataActivity.java

package com.heavenstudio.aplikasinamabuah;
import android.content.Intent;import android.os.Bundle;import android.view.MenuItem;import android.widget.ImageView;import android.widget.TextView;import androidx.appcompat.app.AppCompatActivity;
public class ListdataActivity extends AppCompatActivity {    ImageView imageView;    TextView listdata;    TextView listdesc;
    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_listdata);        this.listdata = findViewById(R.id.listdata);        this.imageView = findViewById(R.id.imageView);        this.listdesc = findViewById(R.id.listDesc);        Intent intent = getIntent();        String receivedName = intent.getStringExtra("name");        int receivedImage = intent.getIntExtra("image", 0);        String receivedDesc = intent.getStringExtra("desc");        this.listdata.setText(receivedName);        this.imageView.setImageResource(receivedImage);        this.listdesc.setText(receivedDesc);        getSupportActionBar().setDisplayHomeAsUpEnabled(true);    }
    public boolean onOptionsItemSelected(MenuItem item) {        if (item.getItemId() == 16908332) {            onBackPressed();        }        return super.onOptionsItemSelected(item);    }
    public void onBackPressed() {        super.onBackPressed();    }}

activity_listdata.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:aapt="http://schemas.android.com/aapt"    android:background="#0016ff"    android:layout_width="match_parent"    android:layout_height="match_parent">    <TextView        android:textSize="30dp"        android:textColor="#000"        android:id="@+id/listdata"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_marginTop="40dp"        android:text="Apple"        android:layout_centerHorizontal="true"/>    <ImageView        android:id="@+id/imageView"        android:layout_width="100dp"        android:layout_height="100dp"        android:layout_marginTop="27dp"        android:src="@drawable/apel"        android:layout_below="@+id/listdata"        android:layout_centerHorizontal="true"/>    <TextView        android:textSize="14sp"        android:textStyle="bold"        android:textColor="#000"        android:id="@+id/listDesc"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_marginTop="27dp"        android:text="Apel merupakan jenis buah-buahan yang bagian luarnya biasanya berwarna merah saat sudah matang dan siap untuk dimakan. Akan tetapi, ada juga buah apel yang warnanya kuning atau hijau saja sudah matang. Pohon apel sendiri biasanya tumbuh pada daerah-daerah yang mempunyai suhu udara sejuk dan dingin. Pohonnya sendiri sekitar tiga sampai dua belas meter dan menghasilkan jenis buah yang manis. Di samping itu, ia juga memiliki biji yang ukurannya kecil di dalam daging buahnya." android:layout_below="@+id/imageView" android:layout_centerHorizontal="true" android:fontFamily="@font/aclonica"/></RelativeLayout>

row_data.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:aapt="http://schemas.android.com/aapt"    android:background="#13a3e6"    android:layout_width="match_parent"    android:layout_height="match_parent">    <RelativeLayout        android:id="@+id/listviewdata"        android:background="#2a11d1"        android:padding="10dp"        android:layout_width="match_parent"        android:layout_height="wrap_content">
        <TextView            android:id="@+id/fruits"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:layout_centerVertical="true"            android:layout_marginEnd="44dp"            android:layout_toStartOf="@+id/imageView"            android:fontFamily="@font/aclonica"            android:text="Apple"            android:textColor="#000"            android:textSize="25dp"            android:textStyle="bold" />        <ImageView            android:id="@+id/images"            android:layout_width="60dp"            android:layout_height="60dp"            android:src="@drawable/apel"            android:layout_centerVertical="true"            android:layout_marginEnd="27dp"            android:layout_alignParentEnd="true"/>        <TextView            android:textSize="1dp"            android:textColor="#000"            android:id="@+id/desc"            android:visibility="invisible"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_marginLeft="0dp"            android:layout_marginTop="0dp"            android:text="Apel merupakan jenis buah-buahan yang bagian luarnya biasanya berwarna merah saat sudah matang dan siap untuk dimakan. Akan tetapi, ada juga buah apel yang warnanya kuning atau hijau saja sudah matang. Pohon apel sendiri biasanya tumbuh pada daerah-daerah yang mempunyai suhu udara sejuk dan dingin. Pohonnya sendiri sekitar tiga sampai dua belas meter dan menghasilkan jenis buah yang manis. Di samping itu, ia juga memiliki biji yang ukurannya kecil di dalam daging buahnya." android:layout_below="@+id/fruits" android:fontFamily="@font/aclonica"/>    </RelativeLayout></RelativeLayout>

row_data.xml Digunakan untuk mengatur layout pada listview di MainActivity, sehingga dapat menampilkan text dan gambar seperti pada MainActivity atau bisa disebut sebagai Homepage dari aplikasi tersebut.

Sekian postingan saya kali ini. Wassallam :)