Kamis, 08 November 2018

TugasAndroid


Konektivitas Android

Menentukan dan Memantau Status Konektivitas
Beberapa penggunaan paling umum untuk alarm berulang dan layanan latar belakang adalah menjadwalkan pembaruan rutin data aplikasi dari sumber daya Internet, data cache, atau mengeksekusi unduhan yang berlangsung lama. Namun jika Anda tidak terhubung ke Internet, atau koneksi terlalu lambat untuk menyelesaikan unduhan, bukankah lebih baik membangunkan perangkat untuk menjadwalkan pembaruan?
Anda bisa menggunakan ConnectivityManager untuk memeriksa apakah Anda benar-benar terhubung ke Internet, dan jika demikian, dan apakah tipe koneksi yang ada.
Menentukan apakah Anda memiliki Koneksi Internet
Anda tidak perlu menjadwalkan pembaruan berdasarkan sumber daya Internet jika tidak terhubung ke Internet. Cuplikan berikut menampilkan cara menggunakan ConnectivityManager untuk melakukan kueri jaringan yang aktif dan menentukan apakah jaringan memiliki konektivitas Internet
ConnectivityManager cm =
        (
ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork != null &&
                      activeNetwork.isConnectedOrConnecting();
Menentukan Tipe Koneksi Internet Anda
Bisa juga menentukan tipe koneksi Internet yang saat ini tersedia.
Konektivitas perangkat, bisa disediakan oleh data seluler, WiMAX, Wi-Fi, dan koneksi ethernet. Dengan melakukan kueri tipe jaringan aktif, seperti yang ditampilkan di bawah ini, Anda bisa mengubah laju penyegaran berdasarkan bandwidth yang tersedia.
boolean isWiFi = activeNetwork.getType() == ConnectivityManager.TYPE_WIFI;
Biaya data seluler cenderung lebih mahal daripada Wi-Fi, jadi biasanya kecepatan pembaruan aplikasi Anda akan lebih lambat daripada koneksi seluler. Demikian pula, pengunduhan berukuran besar akan ditangguhkan hingga Anda mendapatkan koneksi Wi-Fi.
Setelah menonaktifkan pembaruan, Anda harus memantau perubahan dalam konektivitas agar dapat melanjutkannya setelah terhubung dengan koneksi Internet.

Memantau Perubahan dalam Konektivitas
ConnectivityManager menyiarkan aksi CONNECTIVITY_ACTION("android.net.conn.CONNECTIVITY_CHANGE") bila detail konektivitas berubah. Anda bisa mendaftarkan penerima siaran dalam manifes untuk memantau perubahan ini dan melanjutkan (atau menangguhkan) pembaruan latar belakang Anda sebagaimana mestinya.
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
Perubahan pada konektivitas perangkat bisa sangat sering terjadi siaran ini terpicu setiap kali Anda beralih antara data seluler dan Wi-Fi. Karena itu sebaiknya pantau siaran ini hanya jika sebelumnya Anda telah menangguhkan pembaruan atau unduhan agar dapat melanjutkannya. Umumnya cukup dengan memeriksa konektivitas Internet sebelum memulai pembaruan dan, jika tidak ada, menangguhkan pembaruan lebih lanjut sampai konektivitas pulih.



HTTP
Hypertext Transfer Protocol (HTTP) adalah sebuah protokol jaringan lapisan aplikasi yang digunakan untuk sistem informasi terdistribusi, kolaboratif, dan menggunakan hipermedia. Penggunaannya banyak pada pengambilan sumber daya yang saling terhubung dengan tautan, yang disebut dengan dokumen hiperteks, yang kemudian membentuk World Wide Web pada tahun 1990 oleh fisikawan InggrisTim Berners-Lee. Hingga kini, ada dua versi mayor dari protokol HTTP, yakni HTTP/1.0 yang menggunakan koneksi terpisah untuk setiap dokumen, dan HTTP/1.1 yang dapat menggunakan koneksi yang sama untuk melakukan transaksi. Dengan demikian, HTTP/1.1 bisa lebih cepat karena memang tidak usah membuang waktu untuk pembuatan koneksi berulang-ulang.
Pengembangan standar HTTP telah dilaksanakan oleh Konsorsium World Wide Web (World Wide Web Consortium/W3C) dan juga Internet Engineering Task Force (IETF), yang berujung pada publikasi beberapa dokumen Request for Comments (RFC), dan yang paling banyak dirujuk adalah RFC 2616 (yang dipublikasikan pada bulan Juni 1999), yang mendefinisikan HTTP/1.1.
Dukungan untuk HTTP/1.1 yang belum disahkan, yang pada waktu itu RFC 2068, secara cepat diadopsi oleh banyak pengembang penjelajah Web pada tahun 1996 awal. Hingga Maret 1996, HTTP/1.1 yang belum disahkan itu didukung oleh Netscape 2.0Netscape Navigator Gold 2.01Mosaic 2.7Lynx 2.5, dan dalam Microsoft Internet Explorer 3.0. Adopsi yang dilakukan oleh pengguna akhir penjelajah Web pun juga cepat. Pada bulan Maret 2006, salah satu perusahaan Web hosting melaporkan bahwa lebih dari 40% dari penjelajah Web yang digunakan di Internet adalah penjelajah Web yang mendukung HTTP/1.1. [1]Perusahaan yang sama juga melaporkan bahwa hingga Juni 1996, 65% dari semua penjelajah yang mengakses server–server mereka merupakan penjelajah Web yang mendukung HTTP/1.1. Standar HTTP/1.1 yang didefinisikan dalam RFC 2068 secara resmi dirilis pada bulan Januari 1997. Peningkatan dan pembaruan terhadap standar HTTP/1.1 dirilis dengan dokumen RFC 2616 pada bulan Juni 1999.



Socket ?
Socket adalah mekanisme komunikasi untuk pertukaran data antar aplikasi yang terdapat di dalam sebuah mesin maupun beda mesin dan pertukaran ini terjadi pada sebuah jaringan komputer.
Untuk membangun sebuah aplikasi yang berbasis socket, kita dapat menggunakan 2 jenis socket yang berbeda yaitu :
·         TCP Socket : menggunakan konsep connection oriented dan reliable data transfer sehingga aplikasi yang dibangun dengan TCP Socket tidak mempedulikan lama waktu sebuah pengiriman data akan tetapi sangat mementingkan ketepatan data. Konsep connection oriented adalah suatu proses pengiriman data disertai dengan tanggung jawab sehingga ketika data sampai pada tujuan akan ada pemberitahuan atau jika terjadi kesalahan pada saat pengiriman data maka data tersebut akan dikirim kembali ke tujuannya. Konsep reliable data transfer adalah sebuah proses pengiriman data dengan menggunakan nomor urut sehingga pada saat diterima, data akan tersusun berdasarkan nomor urut tersebut.

·         UDP Socket : menggunakan konsep connectionless oriented dan unreliable data transfer sehingga aplikasi yang dibangun dengan UDP Socket tidak mementingkan ketepatan data tetapi lebih mementingkan akan delay waktu pada saat proses pengiriman data. Konsep connectionless oriented adalah suatu proses pengiriman data tidak disertai dengan tanggung jawab sehingga jika terjadi kesalahan pada saat proses pengiriman maka data tersebut tidak akan dikirim ulang ke tujuan. Konsep unreliable data transfer adalah sebuah proses pengiriman data dalam bentuk datagram tanpa nomor urut.
  https://www.stikom.edu/s
referensi
https://developer.android.com/training/monitoring-device-state/connectivity-monitoring?hl=id
https://ilmanberimanpoenya.wordpress.com/tugasss-2/penjelasan-http-html-url-www-ftp-domain-hosting/
https://rizkimufrizal.github.io/belajar-socket-programming/