Senin, 28 April 2014

Tugas Android 5 (Quick Response Code (QR Code)

Nama : Mona Cindo
Nim : 09031981317002
Tugas Android 5

Teknologi bergerak

Quick Response Code (QR Code)

 Kode QR adalah suatu jenis kode matriks atau kode batang dua dimensi yang dikembangkan oleh Denso Wave, sebuah divisi Denso Corporation yang merupakan sebuah perusahaan Jepang dan dipublikasikan pada tahun 1994 dengan fungsionalitas utama yaitu dapat dengan mudah dibaca oleh pemindai QR merupakan singkatan dari quick response atau respons cepat, yang sesuai dengan tujuannya  adalah untuk menyampaikan informasi dengan cepat dan mendapatkan respons yang cepat pula. Berbeda dengan kode batang, yang hanya menyimpan informasi secara horizontal, kode QR mampu menyimpan informasi secara horizontal dan vertikal, oleh karena itu secara otomatis Kode QR dapat menampung informasi yang lebih banyak daripada kode batang.

Berikut langkah-langkah membuat aplikasi android untuk membuat QR Code Generator dengan Google Chart API :

1. Buat project baru dengan cara klik File > New > Android Application Project
2. Setelah itu buka, isi form nama proyek, nama aplikasi dan nama package serta Minimum required SDK, target SDK, compile with dan theme > klik Next.


3. Centang beberapa pilihan yang ingin dipilih misalkan Create custom launcher icon dan create activity serta create project in workspace [default] > Lalu klik Next.
4. Tampilan selanjutnya adalah tampilan untuk mengatur icon, background dan lain-lain untuk aplikasi kita > Lalu klik Next.
5. Pilih dan conteng Create Activity lalu pilih Blank Activity > Lalu klik Next.


6. Isi Activity Name, Layout Name dan lain-lainnya. Lalu klik Finish.
7. Buka dan modifikasi file yang bernama 'AndroidManifest.xml' yang ada pada project kita lalu di-save.


8. Lalu buat file xml baru di file 'res>layout bernama qrmona.xml' yang isinya


9. dan juga buat file di folder yang sama yaitu qrview.xml yang isinya




10. edit main.xml pada folder res>menu


11. edit res>values>string.xml


12. Source code untuk 'MainActivity.java' :
package com.example.monaqrcode;

import java.net.URLEncoder;
 
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
 
public class MainActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.qrmona);
       
        final EditText qrMessage = (EditText)findViewById(R.id.qr_message);
        final Button convertButton = (Button)findViewById(R.id.convert_button);
        convertButton.setOnClickListener(new OnClickListener() {
                        @Override
                        public void onClick(View v) {
                                String message = qrMessage.getText().toString();
                                String url = "http://chart.apis.google.com/chart?cht=qr&chs=350x350&chl="
                                        + URLEncoder.encode(message);
                               
                                Intent intent = new Intent(MainActivity.this, QRDisplay.class);
                                intent.putExtra("IMAGE_URL", url);
                                startActivity(intent);
                        }
                });
    }
} 



13. buat class baru yaitu QRDisplay.java
package com.example.monaqrcode;



import java.net.URL;



import android.app.Activity;

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.os.Bundle;

import android.util.Log;

import android.view.Menu;

import android.view.MenuInflater;

import android.view.MenuItem;

import android.widget.ImageView;



public class QRDisplay extends Activity {

        @Override

        protected void onCreate(Bundle savedInstanceState) {

                super.onCreate(savedInstanceState);

                setContentView(R.layout.qrview);

               

                String url = getIntent().getStringExtra("IMAGE_URL");

               

                ImageView imageView = (ImageView)findViewById(R.id.qr_image);

        try {

                URL imageURL = new URL(url);

            Bitmap qrBitmap = BitmapFactory.decodeStream(imageURL.openStream());

            imageView.setImageBitmap(qrBitmap);

                } catch (Exception e) {

                        Log.d("QRDisplay", e.getMessage());

                }

        }

       

        @Override

        public boolean onCreateOptionsMenu(Menu menu) {

                MenuInflater inflater = getMenuInflater();

                inflater.inflate(R.menu.main, menu);

                return true;

        }

       

        @Override

        public boolean onOptionsItemSelected(MenuItem item) {

                switch (item.getItemId()) {

                case R.id.save_image:

                        // Homework: save bitmap to file in external storage

                        return true;

                }

               

                return super.onOptionsItemSelected(item);

        }

}


14.Setelah itu hasil dari tampil isi dari aplikasi yang kita buat tadi :



15. setelah itu bila di sceen hasilnya akan menjadi seperti tampilan berikut :



Selasa, 15 April 2014

Session Initiation Protocol (SIP)

Nama : Mona Cindo 
Nim : 09031981317002 
UTS SIP (Session Initiation Protocol) Teknologi bergerak


 Session Initiation Protocol (SIP)

 

1. Pengertian SIP  
SIP adalah suatu signalling protokol pada layer aplikasi yang berfungsi untuk membangun, memodifikasi, dan mengakhiri suatu sesi multimedia yang melibatkan satu atau beberapa pengguna. Sesi multimedia adalah pertukaran data antar pengguna yang meliputi suara, video, atau text. SIP tidak menyediakan layanan secara langsung, tetapi menyediakan fondasi yang dapat digunakan oleh protokol aplikasi lainnya untuk memberikan layanan yang lebih lengkap bagi pengguna, misalnya dengan RTP ( Real Time Tr ansport Protocol ) untuk transfer data secara real - time , dengan SDP ( Session Description Protocol ) untuk mendeskripsikan sesi multimedia, dengan MEGACO ( Media Gateway Control Protocol ) untuk komunikasi dengan PSTN (Public Switch Telephone Network). Meskipun demikian, fungsi dan operasi dasar SIP tidak tergantung pada protokol tersebut. SIP juga tidak tergantung pada protokol layer transport yang digunakan. 

Pembangunan suatu komunikasi multimedia dengan SIP dilakukan melalui beberapa tahap :
User location : menentukan lokasi pengguna yang akan berkomunikasi.
User availability : menentukan tingkat keinginan pihak yang dipanggil untuk terlibat
 dalam komunikasi.
User capability : menentukan media maupun parameter yang berhubungan dengan media yang 
akan digunakan untuk komunikasi.
Session setup : “ringing”, pembentukan hubungan antara pihak pemanggil dan pihak
 yang dipanggil.
Session management : meliputi transfer, modifikasi, dan pemutusan sesi.

2. Komunikasi dengan SIP  
Komunikasi pada SIP dilakukan dengan mengirimkan message yang berbasis HTTP. 
Setiap pengguna mempunyai alamat yang dinyatakan dengan SIP-URI 
(Uniform Resource Identification).
Contoh SIP URI : sip: mona@palembang.com
Selain itu, alamat juga dapat dituliskan dalam tel-URL yang kemudian dikonversikan 
menja di SIP -URI dengan parameter‘user’ diisi ‘phone’.
Contoh : tel: +62-21-2567011
ekivalen dengan
sip: +62-21-2567011@palembang.com ; user=phone
 Isi pesan di dalam SIP didefinisikan dalam 2 format (RFC 3261)[14], seperti :
1. Request (dikirim dari client to server), berisi operasi yang diminta oleh client.
2. Response (dikirim dari server ke client), berisi informasi tentang permintaan status dari client.

Ada 6 tipe utama pesan permintaan seperti di bawah ini[14] :
1) INVITE : mengindikasikan jika user atau layanan sedang diundang untuk bergabung dengan sesi.
2) ACK : mengkonfirmasi jika client sudah menerima respon terakhir untuk permintaan INVITE, dan hanya digunakan di permintaan REQUEST.
3) OPTION : digunakan untuk mempertanyakan server tentang kemampuannya
4) BYE : dikirim oleh client user agent untuk mengindikasikan server jika percakapan akan segera dimatikan.
5) CANCEL : untuk membatalkan permintaan yang sedang menunggu keputusan
6) REGISTER : digunakan oleh client untuk mendaftarkan informasi kontak Respon pesan berisi kode status dan informasi tentang kondisi permintaan.
  Dan kode ini dibagi menjadi 6 macam:
1) 1xx : Provisional, permintaan sudah diterima dan sedang diproses
2) 2xx : Success, permintaan sudah diterima, dimengerti dan disetujui.
3) 3xx : Redirection, butuh tindakan lebih lanjut untuk memproses permintaan
4) 4xx : Client Error, permintaan salah syntax dan tidak bisa diidentifikasi jadi server tidak bisa memprosesnya.
5) 5xx : Server Error, server gagal untuk memproses permintaan.
6) 6xx : Global Failure, permintaan sama sekali tidak bisa diproses di server manapun

Arsitektur dari SIP terdiri dari dua komponen yaitu user agent dan servers. User agent merupakan end point dari sistem dan memuat dua sub sistem yaitu user agent client (UAC) yang membangkitkan request, dan user agent server (UAS) yang merespon request. SIP server adalah kesatuan fungsi logic, dimana tidak perlu memisahkan alat secara fisik. Fungsi dari empat server tersebut yaitu:
  1. Proxy Server : merupakan host jaringan yang berperan sebagai perantara yang bertujuan untuk meminta request atas nama client yang lain. Proxy harus bertindak sebagai server dan client, dia harus mengarahkan SIP request pada user agent server, dan mengarahkan SIP respons pada user agent client . Proxy server juga berfungsi untuk melakukan routing, memastikan request disampaikan pada yang berhak menerima, dan juga membuat kebijakan seperti menyakinkan bahwa pemakai tertentu diijinkan untuk melakukan panggilan.
  2. Redirect Server: merupakan kesatuan logika yang mengarahkan satu klien pada perangkat pengganti dari Uniform Resorce indicators (URIs) untuk menyelesaikan tugas request.
  3. Registrar Server : menerima dan memproses pesan pendaftaran yang mengijinkan lokasi dari suatu endpoint dapat diketahui keberadaannya. Registrar Server ini kerjanya berhubungan dengan Location Server.
  4. Location Server : menyediakan service untuk database abstrak yang berfungsi mentranslasikan alamat dengan kata / keterangan yang ada pada domain jaringan.
Protokol SIP didukung oleh beberapa protokol, diantara lain:
  • IETF Session Description Protokol (SDP), merupakan protokol yang mendeskripsikan media dalam suatu komunikasi. Tujuan protokol SDP adalah untuk memberikan informasi aliran media dalam satu sesi komunikasi agar penerima yang menerima informasi tersebut dapat berkomunikasi.
  • IETF Session Annoucement Protocol (SAP), merupakan suatu protocol yang setiap periode waktu tertentu mengumumkan parameter dari suatu sesi konferensi.
  • IETF Real-Time transport protocol (RTP), menyediakan transfer media secara real time.
  • Real-Time Control Protokol (RTCP), mengatur sesi secara periodik mentrasmit paket yang berisi feedback atas kualitas dari distribusi data.
  • ITU_T Codec merupakan algoritma pengkodean yang direkomendasikan, seperti G.723.1, G711, G.728, dan G.729 untuk audio, atau H.261 untuk video.
     
3. Aplikasi dan Kelebihan SIP 

Aplikasi
- Voice over Internet Protocol (VoIP)
- Konferensi multimedia
- Text - messaging
- Event - notification  -> voicemail notification, callback notification
- Unified Messaging - > voicemail2email

Kelebihan 
1) General - purpose

SIP dapat diintegrasikan dengan protokol stadar IETF lainnya untuk membuat
suatu aplikasi yang berbasis SIP.
2) Arsitektur yang terdistribusi dan scalable  
-> Proxy - server
-> Redirect - server
-> Registrar - server
-> Location - server
3) Sederhana 
Pengiriman message berbasis HTTP (text-based), bukan binary - based.
Hal ini menyebabkan SIP mudah diimplementasikan.
4) Mobility
-> Seorang pengguna dapat menerima message/call yang ditujukan kepadanya.
meskipun berpindah dari satu lokasike lokasi lainnya. Proxy - server akan 
meneruskan call ke lokasi pengguna pada saat ini.
-> Device yang digunakan dapat berupa PC, baik di rumah maupun di kantor,
 wireless phone, IP - phone, ataupun telepon biasa.
5) Layanan dapat dibuat dengan Call Processing Language 
(CPL) dan Common Gateway Interface (CGI), antara lain :
-> call waiting, call forwarding, call blocking (basic feature)
-> call - forking (melakukan call kepada beberapa endpoint)
-> Instant - messaging
-> Find - me / follow-me



Pada umumnya ada 3 tahapan implementasi SIP yang dapat dijelaskan sebagai berikut :
Menghubungkan SIP Proxy ke existing PBX
Migrasi User dan terminal ke SIP Proxy
Migrasi koneksi ke PSTN dari existing PBX ke SIP

Step 1: Tahap pertama adalah menghubungkan SIP proxy dengan PBX system existing sebagai gateway ke PSTN. Untuk menghubungkan dari IP Network ke PSTN, SIP proxy akan me-routing-kan seluruh panggilan dari panggilan VoIP ke PSTN. Link koneksi bisa menggunakan PRI ISDN maupun T1. Pertama yang harus dilakukan adalah setup SIP proxy (SIP call manager), setelah set-up berjalan dengan baik, selanjutnya tinggal menghubungkan ke PBX existing dengan link ISDN, E1 atau T1.
Step 2 : Tahap selanjutnya adalah migrasi existing user dan services ke SIP. Migrasi semua handset ke SIP baik menggunakan gateway maupun mengganti dengan handset yang native SIP. Pendekatan dengan menggabungkan keduanya biasanya menjadi pilihan yang baik. Selanjutnya adalah set-up SIP application server untuk mengakomodasi fitur-fitur yang dibutuhkan user seperti voice mail, multi-party conferencing, IVR, fine me follow me dan masih banyak lagi fitur yang disupport SIP.
Step 3 : Tahap 3 adalah melakukan routing panggilan ke luar melalui koneksi internet.Banyak  operator memulai menjual SIP based dengan menawarkan layanan long distance dengan harga yang lebih murah. Yang perlu diantisipasi adalah nature network  internet yang unpredictable (seperti jitter dan error rate) dan tentu saja security. Sebagai tahap awal SIP dapat digunakan sebagai alternatif untuk melakukan panggilan ketika diluar kantor atau teleworkers


Aplikasi yang Mengimplementasi SIP  


KakaoTalk

KakaoTalk



 Mengingat popularitasnya yang semakin mendunia, anda mungkin pernah mendengar tentang Kakao Talk ini sebelumnya. Ini aplikasi VoIP memungkinkan anda untuk membuat panggilan dan mengirim pesan teks melalui jaringan mereka secara gratis. Sesuai aturannya, anda akan perlu mendaftar untuk dapat menggunakan layanan, yang berarti teman-teman anda pun harus melakukan hal yang sama unutk bisa menikmati layanan mereka.
Membuat panggilan dan mengirim pesan teks atau SMS bukanlah satu-satunya hal bisa Kakao Talk dapat lakukan. Anda dapat mengubah tema, bermain game, melihat pemberitahuan dari teman, dan bahkan memeriksa barang-barang yang dijual disana. Untuk dapat menikmati beberapa fitur tertentu mereka,  anda harus mengeluarkan biaya, dan tentu ini tidak menjadi masalah. Bagaimana pun juga, aplikasi ini harus mendukung dirinya sendiri agar tetap eksis dalam beberapa cara.
Selain itu, antarmuka yang disajikannya pun sangat user friendly, dan saya yakin tidak akan ada yang kesulitan untuk mencoba berbagai aplikasi dari layanan mereka.


Tango

Tango




Anda mungkin akan terkejut oleh aplikasi Tango ini karena fokus utama aplikasi ini adalah tidak benar-benar sebagai VoIP atau SIP, karena aplikasi tersebut dibuat dengan tujuan utama sebagai jaringan sosial. Meskipun demikian, anda masih dapat nelpon gratis dan kirim sms gratis ke sesama pengguna. Aplikasi ini juga memiliki dukungan untuk pesan gambar dan video, yang membuatnya menonjol dari aplikasi ini. Anda dapat mengharapkan Tango untuk memiliki kualitas yang terbaik juga. Aplikasi ini memenangkan sejumlah penghargaan, dan aplikasi itu sendiri dibanggakan karena memiliki "kualitas yang hebat" melalui koneksi  3G, 4G, dan Wi-Fi.
Seperti sebagian besar aplikasikami sajikan ini, Tango sangat mudah digunakan. Pembuatan accountnya pun sederhana dan navigasi di sekitar aplikasi terasa sangat alami. Sayangnya anda hanya dapat berkomunikasi dengan orang-orang yang memiliki account di Tango, mungkin  meyakinkan teman-teman anda untuk mencoba aplikasi ini yang agak sulit.


Viber

Viber




Viber adalah satu lagi VoIP yang memungkinkan untuk menelepon gratis melalui jaringan mereka. Tidak hanya menelepon gratis yang akan anda dapatkan, anda juga dapat mengirim pesan, stiker, emoticon, dan fitur aplikasi lainnya. Seperti aplikasi sebelumnya, teman anda akan memerlukan akun Viber untuk dapan menelepon dan kirim pesan pesan..

Aplikasi ini juga sangat mudah untuk dinavigasidan hanya umumnya memang mudah digunakan. Satu-satunya yang mungkin kekurangan untuk aplikasi ini seperti halnya aplikasi lainnya adalah bahwa anda perlu untuk membuat account anda di Viber menggunakan SMS sebelum memakai aplikasi ini . Ini akan menjadi agak menjengkelkan jika anda tidak memiliki mengatur pesan teks pada perangkat ponsel anda, karena harus menemukan cara lain untuk mengaktifkan Viber.

Selain itu, Viber adalah aplikasi yang sangat luar biasa yang telah didownload di Play Store. Setidaknya, aplikasi ini layak untuk dicoba.

Vox
Vox




Vox adalah salah satu solusi yang lebih sederhana untuk kebutuhan VoIP dan SIP anda. Aplikasi ini juga cukup aplikasi sederhana. anda dapat menelepon dari account Vox anda, yang mana anda harus membayar untuk panggilan tersebut. Vox membuat daftar harga panggilan telepon untuk berbagai negara.
Selain itu, anda akan memiliki dialer sebagai  layar muka utama, dan tombol menu dapat digunakan untuk bernavigasi di seluruh aplikasi. Selain untuk panggilan, ada dukungan SMS juga. Tentu saja, dengan mengirim pesan SMS, harga permenit akan dipotong dari account Anda, yang berarti deposit waktu yang digunakan untuk melakukan panggilan akan berkurang.
Mengingat kesederhanaan aplikasi ini, dibutuhkan hanya sekitar semenit untuk membiasakan diri anda dengan fitur yang ada. Bagaimana pun juga, ini adalah aplikasi yang cukup bagus namun dengan fungsi yang terbatas.


WiCall

Wicall




Daftar terakhir dalam aplikasi ini adalah WiCall. Aplikasi ini mirip dengan vox, dimana aplikasi ini adalah aplikasi dialer antarmuka. Sayangnya aplikasi ini tidak bisa mengirim pesan teks SMS, yang berarti aplikasi ini hanya bisa digunakan untuk menelepon. Seperti vox, WiCall adalah layanan berbayar, sehingga Anda akan perlu menambahkan uang ke account Anda untuk membuat panggilan telepon. Deposit anda akan dipotong ketika anda melakukan panggilan telepon.
Aplikasi WiCall tampaknya agak kurang fitur dibandingkan dengan aplikasi lainnya yang sejenis, yang berarti pula aplikasi ini cukup sederhana dan mudah dipelajari. Yang harus anda cari tahu   adalah bagaimana untuk menambah uang ke akun  WiCall anda. Setelahnya, baru anda dapat menggunakan dialer untuk menelepon orang lain dengan nomor WiCall Anda.


IDE Membuat Aplikasi Android dengan SIP


Aplikasi Android Pemesanan Restaurant Berbasis SIP

Dengan memanfaatkan teknologi SIP kita dapat membuat berbagai macam aplikasi yang dapat memudahkan penggunanya. Salah satu ide yang saya ambil adalah membuat aplikasi android pemesanan restaurant berbasis SIP.

Seperti yang kita ketahui di atas SIP merupakan protokol yang memungkinkan kita untuk melakukan pertukaran suara. Dengan memanfaatkan teknologi SIP ini sangat memungkinkan untuk membuat aplikasi ini. Aplikasi ini menggunakan suara untuk memesan restaurant yang di inginkan, selain itu keunggulan dari aplikasi ini adalah tersedianya data-data restaurant yang menyediakan layanan delivery beserta menu-menu restaurant tersebut sehingga pengguna tidak perlu bingung untuk memesan menu restaurat yang di inginkan.


Di dalam aplikasi ini terdapat dirrect call yaitu melakukan panggilan langsung ke restaurant yang di pilih sehingga pengguna tidak perlu lagi menyimpan no telp dalam kontak smartphone anda.