Jumat, 01 Mei 2020

ANTI ALIASING

ANTI ALIASING

by dawud al fauzi


Assalamualaikum Warahmatullahi Wabarakatuh

Marhaban ya Ramadhan


Anti-aliasing dalam pengolahan sinyal digital adalah teknik mengurangi artifak distorsi dalam merepresentasikan citra resolusi tinggi pada resolusi yang lebih rendah. Artifak distorsi disebut aliasing. Anti-aliasing digunakan dalam fotografi digital, grafik komputer, audio digital, dan bidang lainnya.

Anti-aliasing berarti menghilangkan komponen sinyal yang memiliki frekuensi lebih tinggi dari yang dapat diterima oleh alat perekam (sampling). Jika perekaman dilakukan tanpa menghilangkan bagian sinyal ini, maka dapat menyebabkan tampilan citra yang tidak diinginkan (noise).

Sebelum membahas Anti-Aliasing, ada yang sudah tahu arti dari aliasing? Ya, aliasing adalah garis tidak halus yang terjadi akibat gambar beresolusi rendah, menghasilkan pixel yang kurang rapat dan menyebabkan adanya garis yang kurang halus. Nah, jadi anti-aliasing adalah anti agar tidak terjadi aliasing. Ada 2 jenis anti-aliasing yang digunakan dalam game yaitu:

Spatial Anti-aliasing: Anti-aliasing ini menggunakan metode me-render gambar atau grafis di resolusi yang paling tinggi lalu dikonversi ke resolusi yang kamu pakai. Inilah yang akan menyebabkan gambar/frame yang ditampilkan pada game berupa gambar/frame yang ada di resolusi lebih tinggi dari resolusi yang kamu pakai. Anti-aliasing hanya berpengaruh pada garis di sekeliling objek. Biasanya memiliki pilihan pengaturan seperti MSAA (Multisample Anti-Aliasing) dan SSAA (Super Sample Anti-Aliasing, dikenal juga sebagai FSAA atau Full Screen Anti-Aliasing).

Post-Processing Anti-aliasing: Anti-aliasing ini menggunakan metode menghaluskan tepi gambar setelah gambar di-render atau diproses. Yang dihaluskan adalah semua pixel yang ada di dalam game, termasuk shaders, dan miliki beberapa pengaturan seperti Nvidia s FXAA (Fast Approximate Anti-Aliasing), TXAA (Temporal Anti-Aliasing), SMAA, dan AMD s MLAA (Morphological Anti-Aliasing).

Kebanyakan game tidak memiliki pengaturan untuk memilih tipe anti-aliasing mana yang akan dipakai. Jadi, untuk mengubahnya kamu bisa mengandalkan driver VGA milikmu untuk mengatur tipe anti-aliasing yang ingin kamu pakai.



Contoh grafik yang menggunakan Anti Aliasing dan Non AA


Anti-Aliasing ini kerjanya hanya menambahkan sampel yang percis dengan grafis yang terkena jaggies lalu ditambahkan semacam manipulasi warna atau teknik manipulasi gambar pada celah celah di jaggies agar terlihat mulus atau Smooth. Jika Celah celah itu tertutupi maka objek akan terlihat lebih mulus, walaupun sebenarnya kalau di zoom kembali masih terdapat celah yang kecil kecil. tapi teknik ini sangat akurat agar pengguna dapat melihatnya lebih smooth. Maka dari itu Jika kamu bermain game pada pixel yang sedikit misalkan resolusi 1280×720 yang berarti hanya terdapat 720 pixel pada satu scene, maka pixel yang membentuk objek otomatis besar besar untuk menempati semua lebar layar mu. karena besar besar akhirnya “jaggies” ini terlihat.

Minggu, 07 April 2019

UAS Mobile Programing

DAWUD AL FAUZI
NIM 161011401110
STMIK ERESHA


UAS MOBILE PROGRAMING

Bismillahirrohmanirrohiim


Kita mulai dari melakukan navigasi ke res/layout, dan buatlah sebuat layout resource file baru dengan file nameactivity_listview dan Root LinearLayout, lantas klik OK. Setelah itu seperti biasa pindahlah ke Text Tab dan masukan kode berikut :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
<ListView
    android:id="@+id/list1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"></ListView>
</LinearLayout>

Kita definisikan ListView baru dengan id list1. Sekarang pindah ke MainActivity  dan kita buat Activity menjadi seperti berikut :
package com.example.uasdawudalfauzi.161011401110;
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.util.ArrayList;

public class MainActivity extends ActionBarActivity {

    //tambahkan global variable
    ArrayList<String> mArrayList;
    ArrayAdapter<String> mAdapter;
    ListView mListView;

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

        //1.inisiasi listview
        mListView = (ListView) findViewById(R.id.list1);

        //2.inisiasi ArrayList sebagai wadah dari List kita
        mArrayList = new ArrayList<String>();

        //3.Inisiasi Adapter
        mAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,mArrayList);
        
        //4.Set Adapter
        mListView.setAdapter(mAdapter);
        
        //5.Coba isi data
        mArrayList.add("Apple");
        mArrayList.add("Windows");
        mArrayList.add("Linux");
        mArrayList.add("Android");
        mArrayList.add("iOS");
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
    
}


Berikut adalah hasil Run nya:


Langkah selanjutnya adalah membuat supaya ListView kita dapat kita klik untuk membuka Activity baru.













TambahkanmListView.setOnItemClickListener(this); pada metode onCreate pada MainActivity anda. Kata-katathis akan mengalami error seperti pada tutorial sebelumnya. Double klik pada this dan pilih menu "MainActivity' implement 'android.widget.AdapaterView.OnItemClickListener'. Lantas klik OK pada pop up. Fungsi onItemClickakan dibuat secara otomatis.
Selanjutnya isi kode berikut ke dalam fungsi onItemClick yang dibuat secara otomatis :

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Intent intent = new Intent(this,SecondActivity.class);
        String txt = (String) mArrayList.get(position);
        intent.putExtra("name", txt);
        startActivity(intent);
    }

Nah sekarang Item dari List akan dapat di klik untuk berpindah ke SecondActivity. Perhatikan kodeintent.putExtra("name",txt); . Kode ini dipergunakan untuk mengirimkan data yang bisa dipergunakan pada Activity penerima, disini adalah SecondActivity.  
Sekarang kita akan buat supaya SecondActivity dapat menampilkan data yang dikirim oleh MainActivity. Masukkan kode berikut ke SecondActivity Anda :

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.secondactivity_layout);
    text2 = (TextView) findViewById(R.id.text2);
    // dari tutorial sebelumnya
    //text2.setText("Ini Second Activity");

    //ambil putExtra
    String name = this.getIntent().getExtras().getString("name");
    text2.setText(name);
}

Yang terjadi disini adalah, kita mengambil data yang dikirim menggunakan metode getExtras dan memasukan data tersebut ke dalam variabel name, yang akhirnya kita print menggunakan setText
Sekarang mari kita run App kita. 

Jika kita klik "Apple" akan membuka SecondActivity dengan isi "apple" pula. 

Mohon Maaf sekian dari saya, dan ke depannya Insya Allah akan saya terus asah kemampuan saya

Senin, 25 Maret 2019

UTS Dawud Al Fauzi 161011401110

DAWUD AL FAUZI
161011401110

Assalamualaikum. Wr.Wb.

Berikut ini adalah contoh aplikasi pemesanan di  DAUD Cafe
adapun software yang saya gunakan adalah android studio
baiklah kita langsung saja


ini adalah source code nya

activity_main.xml

 /
<?xml version="1.0" encoding="utf-8"?>
<ScrollView android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="30dp"
tools:context=".MainActivity">
<EditText
android:id="@+id/edt_name"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:hint="Nama Costumer"
android:inputType="text" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tambahkan Topping"
android:textSize="25dp"/>
<RadioButton
android:id="@+id/WhippedCream_checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="16dp"
android:text="Almond Khas Cafe Daud"
android:textSize="15sp" />
<RadioButton
android:id="@+id/Chocolate_checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="16dp"
android:text="Special Mix Kacang Mede"
android:textSize="15sp" />
<View
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="2dp"
android:background="@color/colorAccent"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="jumlah"
android:textSize="25dp"
android:textAllCaps="true"
android:layout_marginBottom="16dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:layout_width="48dp"
android:onClick="increment"
android:text="+"
android:layout_height="48dp" />
<TextView
android:textColor="#212121"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"
android:paddingRight="8dp"
android:paddingLeft="8dp"
android:id="@+id/quantity_textview"
android:textSize="25dp"/>
<Button
android:layout_width="48dp"
android:onClick="decrement"
android:text="-"
android:layout_height="48dp" />
</LinearLayout>
<View
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="2dp"
android:background="@color/colorAccent"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Harga"
android:textSize="30dp"
android:textAllCaps="true"
android:layout_marginBottom="16dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"
android:textColor="#212121"
android:id="@+id/price_textview"
android:textSize="25dp"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:onClick="Submitorder"
android:text="Order Now" />
</LinearLayout>
</ScrollView>
maka akan tampilan seperti ini



Selanjutnya adalah ....
tulis kode java ini
































mainActivity.java


package com.example.programuts;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import java.text.NumberFormat;
import static android.R.string.no;
import static android.os.Build.VERSION_CODES.N;
/** * This app displays an order form to order coffee.
*/public class MainActivity extends AppCompatActivity {
int quantity=0;
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void increment(View view){//perintah tombol tambah
if(quantity==100){
Toast.makeText(this,"pesanan maximal 100",Toast.LENGTH_SHORT).show();
return;
}
quantity = quantity+1 ;
display(quantity);
}
public void decrement(View view){//perintah tombol tambah
if (quantity==1){Toast.makeText(this,"pesanan minimal 1",
Toast.LENGTH_SHORT).show();
return;
}
quantity = quantity -1;
display(quantity);
}
public void Submitorder(View view) {
EditText nameEditText=(EditText)findViewById(R.id.edt_name);
String name=nameEditText.getText().toString();
Log.v("MainActivity","Nama:"+name);
CheckBox whippedcreamChekBox= (CheckBox) findViewById(R.id.WhippedCream_checkbox);
boolean haswhippedcream=whippedcreamChekBox.isChecked();//mengidentifikasi check
Log.v("MainActivity","has whippedcream:"+haswhippedcream);
CheckBox chocolateChekBox= (CheckBox) findViewById(R.id.Chocolate_checkbox);
boolean haschocolate=chocolateChekBox.isChecked();//mengidentifikasi check
Log.v("MainActivity","has whippedcream:"+haschocolate);
int price=calculateprice(haswhippedcream,haschocolate);
//memanggil method jumlah harga
String pricemessage=createOrderSummary(price,name,haswhippedcream,haschocolate);
displayMessage(pricemessage); }
private int calculateprice(boolean addwhipedcream,boolean addchocolate)
{//jumlah pesanan * harga int harga=20000;
if(addwhipedcream){
harga=harga+1000;//harga tambahan toping }
if (addchocolate){
harga=harga+2000;
}
return quantity * harga;
}
private String createOrderSummary(int price, String name, boolean addChocolate,
boolean addWhippedCream)
{//hasil pemesanan String pricemessage=" Nama = "+name;
pricemessage+="\n Tambahkan Coklat =" +addWhippedCream;
pricemessage+="\n Tambahkan Krim =" +addChocolate;
pricemessage+="\n Jumlah Pemesanan =" +quantity;
pricemessage+="\n Total = Rp " +price;
pricemessage+="\n Terimakasih";
return pricemessage;
}
//method ini untuk mencetak hasil perintah yang
di tampilkan dengan inisial quantity_textview di textview 0
private void displayMessage(String message) {
TextView priceTextView = (TextView) findViewById(R.id.price_textview);
priceTextView.setText(message);
}
private void display(int number) {
TextView quantityTextView = (TextView) findViewById(R.id.quantity_textview);
quantityTextView.setText("" + number);
}
private void displayPrice(int number) {
TextView priceTextView = (TextView) findViewById(R.id.price_textview);
priceTextView.setText(NumberFormat.getCurrencyInstance().format(number));
}
}
Tampilan Hasilnya
sekian dari saya, semoga bermanfaat
mohon maaf dengan segala kekurangan saya,
semoga kedepannya bisa dikembangkan lagi
terima kasih