Senin, 30 April 2018

Mengenal RESTful API.RESTful API / REST API

banyak yang bertanya-tanya apa itu RESTful API.RESTful API / REST API merupakan implementasi dari API (Application Programming Interface). REST (Representional State Transfer) adalah suatu arsitektur metode komunikasi yang menggunakan protokol HTTP untuk pertukaran data dan metode ini sering diterapkan dalam pengembangan aplikasi. Dimana tujuannya adalah untuk menjadikan sistem yang memiliki performa yang baik, cepat dan mudah untuk di kembangkan (scale) terutama dalam pertukaran dan komunikasi data.

RESTful API memiliki 4 komponen penting di dalamnya diantaranya adalah

URL Design
HTTP Verbs
HTTP Response Code
Format Response
URL Design

RESTful API diakses menggunakan protokol HTTP. Penamaan dan struktur URL yang konsisten akan menghasilkan API yang baik dan mudah untuk dimengerti developer. URL API biasa disebut endpoint dalam pemanggilannya. Contoh penamaan URL / endpoint yang baik adalah seperti berikut :

/users
/users/1
/users/1/photos
/users/1/photos/abc

HTTP Verbs
Setiap request yang dilakukan terdapat metode yang dipakai agar server mengerti apa yang sedang di request client, diantaranya yang umum dipakai adalah :

GET
GET adalah metode HTTP Request yang paling simpel, metode ini digunakan untuk membaca atau mendapatkan data dari sumber.
Contoh :
GET /users : Mengembalikan daftar user
GET /users/1 : Mengembalikan data user dengan ID 1

POST
POST adalah metode HTTP Request yang digunakan untuk membuat data baru dengan menyisipkan data dalam body saat request dilakukan.
Contoh :
POST /users : Membuat data user baru

PUT
PUT adalah metode HTTP Request yang biasanya digunakan untuk melakukan update data resource.
Contoh :
PUT /users/1 : Mengupdate data user dengan ID 1

DELETE
DELETE adalah metode HTTP Request yang digunakan untuk menghapus suatu data pada resource.
Contoh :
DELETE /users/1 : Menghapus data user dengan ID 1

Selain HTTP Verbs diatas, masih ada metode HEAD dan PATCH dalam HTTP Request, tetapi jarang sekali digunakan.

HTTP Response Code
HTTP response code adalah kode standarisasi dalam menginformasikan hasil request kepada client. Secara umum terdapat 3 kelompok yang biasa kita jumpai pada RESTful API yaitu :

2XX : adalah response code yang menampilkan bahwa request berhasil.
4XX : adalah response code yang menampilkan bahwa request mengalami kesalahan pada sisi client.
5XX : adalah response code yang menampilkan bahwa request mengalami kesalahan pada sisi server.

Dan berikut ini adalah response code yang biasa digunakan pada REST :

200 OK
Response code ini menandakan bahwa request yang dilakukan berhasil.

201 Created
Response code ini menandakan bahwa request yang dilakukan berhasil dan data telah dibuat. Kode ini digunakan untuk mengkonfirmasi berhasilnya request PUT atau POST.

400 Bad Request
Response code ini menandakan bahwa request yang dibuat salah atau data yang dikirim tidak ada.

401 Unauthorized
Response code ini menandakan bahwa request yang dibuat membutuhkan authentication sebelum mengakses resource.

404 Not Found
Response Code ini menandakan bahwa resource yang di dipanggil tidak ditemukan.

405 Method Not Allowed
Response code ini menandakan bahwa request endpoint ada tetapi metode HTTP yang digunakan tidak diizinkan.

409 Conflict
Response code ini menandakan bahwa request yang dibuat terdapat duplikasi, biasanya informasi yang dikirim sudah ada sebelumnya.

500 Internal Server Error
Response code ini menandakan bahwa request yang dilakukan terdapat kesalahan pada sisi server atau resource.

Format Response
Setiap request yang dilakukan client akan menerima data response dari server, response tersebut biasanya berupa data XML ataupun JSON. Setelah mendapatkan data response tersebut barulah client bisa menggunakannya dengan cara memparsing data tersebut dan diolah sesuai kebutuhan.
Contoh :
XML

HTTP/1.1 200 OK
Date: Sat, 06 Oct 2001 23:20:04 GMT
Server: Apache.2.3.12 (Unix)
Connection: close
Content-Type: text/xml
Content-Length: 124

<?xml version=”1.0″?>
<methodResponse>
<params>
<param>
<value><double>18.24668429131</double></value>
</param>
</params>
</methodResponse>
JSON

GET /users/1

HTTP/1.1 200 OK
Content-Type: application/vnd.api+json

{
“id”: “1”,
“first_name”: “namadepan”,
“last_name”: “nama_akhir”,
“created”: “2018-05-22T14:56:29.000Z”,
“updated”: “2018-05-22T14:56:29.000Z”
}


enjoy your code

Sabtu, 28 April 2018

pengertian MVP, Retrofit, JSON, Dagger

ada yang bertanya-tanya apa itu MVP nah disini saya akan menjelaskan sedikit tentang MVP. 


Pola MVP (Model View Presenter) adalah turunan dari MVC terkenal (Model View Controller), yang untuk sementara sekarang semakin penting dalam pengembangan aplikasi Android. Semakin banyak orang membicarakannya, tetapi sangat sedikit informasi yang dapat diandalkan dan terstruktur. Itulah mengapa saya ingin menggunakan blog ini untuk mendorong diskusi dan membawa semua pengetahuan kami untuk menerapkannya dengan cara sebaik mungkin untuk proyek kami.

Apa itu MVP?
Pola MVP memungkinkan memisahkan lapisan presentasi dari logika , sehingga segala sesuatu tentang bagaimana antarmuka bekerja dipisahkan dari bagaimana kita merepresentasikannya di layar. Idealnya pola MVP akan mencapai logika yang sama mungkin memiliki pandangan yang sama sekali berbeda dan dapat dipertukarkan.
Hal pertama yang harus diklarifikasi adalah bahwa MVP bukanlah pola arsitektur , itu hanya bertanggung jawab untuk lapisan presentasi. Dalam hal apapun itu selalu lebih baik untuk menggunakannya untuk arsitektur Anda yang tidak menggunakannya sama sekali.

Mengapa menggunakan MVP?
Di Android, kami memiliki masalah yang timbul dari fakta bahwa aktivitas Android sangat terkait erat dengan antarmuka dan mekanisme akses data. Kita dapat menemukan contoh ekstrim seperti CursorAdapter, yang mencampur adaptor, yang merupakan bagian dari tampilan, dengan kursor, sesuatu yang harus diturunkan ke kedalaman lapisan akses data.
Agar aplikasi dapat diperluas dan dipelihara dengan mudah, kita perlu mendefinisikan lapisan yang terpisah dengan baik. Apa yang kita lakukan besok jika, daripada mengambil data yang sama dari database, kita perlu melakukannya dari layanan web? Kami harus mengulang seluruh pandangan kami.
MVP membuat tampilan independen dari sumber data kami. Kami membagi aplikasi ke setidaknya tiga lapisan yang berbeda, yang memungkinkan kami mengujinya secara independen. Dengan MVP kita dapat mengambil sebagian besar logika dari kegiatan sehingga kita dapat mengujinya tanpa menggunakan pengujian instrumentasi.

Bagaimana menerapkan MVP untuk Android
Nah, di sinilah semuanya mulai menjadi lebih menyebar. Ada banyak variasi MVP dan setiap orang dapat menyesuaikan ide pola dengan kebutuhan mereka dan cara mereka merasa lebih nyaman. Polanya bervariasi, tergantung pada besarnya tanggung jawab yang kita delegasikan kepada presenter.
Apakah pandangan bertanggung jawab untuk mengaktifkan atau menonaktifkan bilah kemajuan, atau haruskah itu dilakukan oleh presenter? Dan siapa yang memutuskan tindakan mana yang harus ditampilkan di Bilah Tindakan? Di situlah keputusan sulit dimulai. Saya akan menunjukkan bagaimana saya biasanya bekerja, tetapi saya ingin artikel ini menjadi tempat diskusi lebih lanjut tentang pedoman ketat tentang cara menerapkan MVP, karena hingga tahu tidak ada cara "standar" untuk menerapkannya.

Presenter
Presenter bertanggung jawab untuk bertindak sebagai perantara antara tampilan dan model . Ini mengambil data dari model dan mengembalikannya diformat ke tampilan. Namun tidak seperti MVC biasa, ia juga memutuskan apa yang terjadi ketika Anda berinteraksi dengan tampilan.

Pandangan
Tampilan, biasanya diimplementasikan oleh Activity (mungkin berupa Fragment, View ... tergantung pada bagaimana aplikasi terstruktur), akan berisi referensi ke presenter. Presenter idealnya akan disediakan oleh injektor ketergantungan seperti Dagger , tetapi jika Anda tidak menggunakan sesuatu seperti ini, itu akan bertanggung jawab untuk membuat objek presenter. Satu-satunya hal yang akan dilakukan oleh tampilan adalah memanggil metode dari presenter setiap kali ada aksi antarmuka (misalnya klik tombol).

Model
Dalam aplikasi dengan arsitektur berlapis yang baik, model ini hanya akan menjadi gerbang ke lapisan domain atau logika bisnis, model mungkin akan menjadi interactor yang mengimplementasikan use case. Tapi ini topik lain yang ingin saya bahas di artikel mendatang. Untuk saat ini, cukup untuk melihatnya sebagai penyedia data yang ingin kami tampilkan dalam tampilan.

Kesimpulan
Memisahkan antarmuka dari logika di Android bukanlah hal yang mudah, tetapi pola Model-Tampilan-Presenter membuat sedikit lebih mudah untuk mencegah aktivitas kami akhirnya merosot menjadi kelas-kelas yang sangat berpasangan yang terdiri atas ratusan atau bahkan ribuan baris. Dalam aplikasi besar sangat penting untuk mengatur kode kita dengan baik. Jika tidak, itu menjadi tidak mungkin untuk dipertahankan dan diperluas.



Tambahan

Retrofit adalah Client REST untuk Android dan Java. Itu membuatnya relatif mudah untuk mengambil dan mengunggah JSON. Retrofit menggunakan pustaka OkHttp untuk permintaan HTTP.

JSON (dilafalkan "Jason"), singkatan dari JavaScript Obyek Notasi (bahasa Indonesia: notasi objek JavaScript), adalah format gabungan data komputer. Formatnya berdasarkan teks dan terbaca-manusia sekarang untuk merepresentasikan struktur data sederhana dan larik asosiatif (disebut objek).

Dagger adalah injector. Anda dapat melihat detail lebih lanjut tentang Dagger di situs ini

Jumat, 27 April 2018

conferter video on linux mint 18

goto  link for download shofware

then extract file then you can choice one for your system 32bit or 64bit


enjoy your video confert

Kamis, 26 April 2018

how to install xampp (lampp) for linux mint 18

first open xampp download then download any file you can choice one.

finish download.
open terminal and type this comand sudo chmod +x name file
or sudo chmod  sudo chmod +x xampp-linux-x64-7.0.29-0-installer.run
then Enter input your password Enter

than runing xampp with sudo ./xampp-linux-x64-7.0.29-0-installer.run
  if cant runing this comand. you can try this command

sudo /opt/lampp/lampp start
then there will be a command like this:

Starting XAMPP for Linux 7.1.13-0...
XAMPP: Starting Apache...fail.
XAMPP:  Another web server is already running.
XAMPP: Starting MySQL...ok.

apache is fail but apache in running state
now you can stop running your apache with comand:
sudo /etc/init.d/apache2 stop
then there will be a command like this:
[ ok ] Starting apache2 (via systemctl): apache2.service.
apache is stop
then run again  sudo /opt/lampp/lampp start
and there will be a command like this
Starting XAMPP for Linux 7.1.13-0...
XAMPP: Starting Apache...ok.
XAMPP: Starting MySQL...already running.

oke now you can open your browser. and type 127.0.0.1
dan you will be find file htdocs in /opt/lampp/htdocs

put your php configuration in htdocs
if u want to stop runing lampp you can type comand
sudo /opt/lampp/lampp stop
and there will be a command like this
Stopping XAMPP for Linux 7.1.13-0...
XAMPP: Stopping Apache...ok.
XAMPP: Stopping MySQL...ok.

now you can open dasbord PhpMyadmind with type the ip 127.0.0.1 or you can type your ip to acces your htdocs folder  

if you cant open your folder project database you can use the comand to change mode your folder
sudo chmod 777 -R /opt/lampp/htdocs/foldername

anable acces copy and paste data ini htdocs:


sudo chmod 777 -R /opt/lampp/htdocs

 knowladge for comand with type:
 sudo /opt/lampp/lampp 
and there will be a command like this
Usage: lampp <action>

start         Start XAMPP (Apache, MySQL and eventually others)

startapache   Start only Apache
startmysql    Start only MySQL
startftp      Start only ProFTPD

stop          Stop XAMPP (Apache, MySQL and eventually others)

stopapache    Stop only Apache
stopmysql     Stop only MySQL
stopftp       Stop only ProFTPD

reload        Reload XAMPP (Apache, MySQL and eventually others)

reloadapache  Reload only Apache
reloadmysql   Reload only MySQL
reloadftp     Reload only ProFTPD

restart       Stop and start XAMPP

security      Check XAMPP's security

enablessl     Enable SSL support for Apache

disablessl    Disable SSL support for Apache

backup        Make backup file of your XAMPP config, log and data files


oci8          Enable the oci8 extenssion



panel         Starts graphical XAMPP control panel







Kamis, 19 April 2018

web view.. langsung dengan hml didalamnya

w = findViewById(R.id.web);String about ="<html>\n" +
        "<body>\n" +
        "\t<h6>PLAY</h6>\n" +
        "\t<br>\n" +
        "<audio class=\"audio\" style=\"width: 100%;display: block;
         height: auto !important;padding-bottom:0;\" controls=\"\">\n" +
        "\t<source src="+ul+
        "type=\"audio/mpeg\">\n" +
        "\t</audio>\n" +
        "\t</body>\n" +
        "</html>";TypedArray ta = obtainStyledAttributes(
new int[]{android.R.attr.textColorPrimary, R.attr.colorAccent});
String textColor = String.format("#%06X", (0xFFFFFF & ta.getColor(1, Color.WHITE)));
String accentColor = String.format("#%06X", (0xFFFFFF & ta.getColor(9, Color.BLUE)));
ta.recycle();about = "<style media=\"screen\" type=\"text/css\">" +
        "body {\n" +
        "    color:" + textColor + ";\n" +
        "}\n" +
        "a:link {color:" + accentColor + "}\n" +
        "</style>" +
about;w.setBackgroundColor(Color.TRANSPARENT);w.loadData(about, "text/html", "UTF-8");
w.getSettings().setJavaScriptEnabled(true);w.setWebViewClient(new WebViewClient() {
    @Override    public boolean shouldOverrideUrlLoading(WebView view, String Url) {
        return super.shouldOverrideUrlLoading(view, Url);}});
w.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
w.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
w.getSettings().setAllowUniversalAccessFromFileURLs(true);

how to update playonlinux? || bagaimana update playonlinux di linux mint

open terminal wget -q "http://deb.playonlinux.com/public.gpg" -O - | sudo apt-key add - sudo wget http://deb.playonlinux.com/pla...