BAB 2 TINJAUAN PUSTAKA 2.1 Teori Umum 2.1.1 Pengertian Internet Internet (International Network) adalah jaringan komputer yang menghubungkan antara jaringan secara global, internet dapat juga disebut jaringan dalam suatu jaringan yang luas (Sibero, 2011: 6). Internet juga menggunakan protokol komunikasi yang sama yaitu TCP/IP (Transmission Control Protocol / Internet Protocol), Struktur protokol internet terdiri dari 4 lapisan (Layer) yaitu : 1
Application Layer. Lapisan yang berisi semua protokol dan metode yang mengatur antar proses layanan komunikasi.
2
Transport Layer Lapisan yang berfungsi untuk mengatur lalu lintas pengiriman dan penerimaan data
3
Internet Layer Lapisan yang berfungsi mengatur proses dari fragmentasi dan defragmentasi paket, bergantung dari jenis protokol lapisan internet
4
Link Layer Lapisan yang berfungsi mengatur hubungan antara host dan node. Dimana host sebagai pengirim data, sedangkan node adalah lokasi tujuan dari host.
2.1.2 Pengertian Jaringan Pengertian jaringan berdasarkan buku TCP/IP Protocol Suite adalah sekelompok peralatan yang terhubung dan dapat berkomunikasi, seperti komputer dan printer (Forouzan, 2010: 7). Jaringan dibagi menjadi 2 yaitu: 1. Stand Alone Adalah suatu istilah bagi keadaan komputer yang tidak terhubung dengan komputer lain. 8
9 2. Network Network adalah kebalikan dari Stand Alone, dimana komputer terhubung dengan komputer dan peralatan lainnya sehingga membentuk suatu group. 2.1.2.1
Jenis-Jenis Jaringan
Pengertian dari jenis-jenis jaringan terbagi berdasarkan Forouzan (2010: 10): 1. LAN(Local Area Network) LAN adalah jaringan yang dibatasi oleh area yang relatif kecil, umumnya area lingkungan seperti perkantoran, sebuah gedung, atau sekolah, dan biasanya tidak jauh dari 1 kilometer persegi. 2. MAN(Metropolitan Area Network) MAN adalah jaringan yang areanya lebih luas dari LAN, MAN biasanya meliputi area yang lebih besar seperti area propinsi, antar gedung. Jaringan MAN terhubung dari dari beberapa jaringan LAN yang dihubungkan melalui switch. 3. WAN(Wide Area Network) WAN adalah jaringan - jaringan yang lingkupnya sudah menggunakan satelit maupun kabel bawah laut, sebagai contohnya bank – bank yang ada di Indonesia ataupun yang ada di negara-negara lain, menggunakan sarana WAN. 2.1.3 Router Berdasarkan sumber dari Ghifari (2012: 23) Router adalah perangkat jaringan yang digunakan untuk membagi protocol kepada anggota jaringan yang lainnya, dengan adanya router maka sebuah protocol dapat dibagikan kepada perangkat jaringan lain. Contoh aplikasinya adalah jika ingin membagi IP Address kepada anggota jaringan maka dapat menggunakan router ini, ciri-ciri router adalah adanya fasilitas DHCP (Dynamic Host Configuration Procotol), dengan men-setting DHCP, maka dapat membagi IP Address, fasilitas lain dari Router adalah adanya NAT (Network Address
10 Translator) yang dapat memungkinkan suatu IP Address atau jaringan internet dibagikan ke IP Address lain. Contohnya jika pada suatu perangkat jaringan (komputer) memiliki IP Adress 192.168.0.1, maka agar komputer lain dapat berkomunikasi, harus diberikan IP Address dengan Network Identification 192.168.0 dan dengan Host Identification 2-254, contoh 192.168.0.10, 192.168.0.11 dan seterusnya. 2.1.4 Gateway (Controler Device Wireless) Berdasarkan sumber yang terdapat di dalam website resmi uSmartHome (PT. Telkom Indonesia). Wireless gateway adalah perangkat yang diperlukan untuk mendeteksi dan mengontrol perangkat uSmartHome lainnya, sehingga dapat dikontrol melalui mobile application atau website. Serta dilengkapi dengan Ethernet interface, perangkat inilah yang menghubungkan perangkat uSmartHome dengan internet atau LAN. Prinsip kerja wireless gateway merupakan perangkat penghubung yang menjembatani antara perangkat uSmartHome dengan jaringan internet. Kelebihan dari wireless gateway ini antara lain memiliki transmisi data cepat dan aman, harga murah, proses networking simpel dan fleksibel, serta terpercaya. Selain itu, konsumsi listrik rendah dan support fungsi control. Fitur Utama dari wireless gateway: a) Support CSMA/CA hardware b) Access via TCP/IP c) Stuktur simpel, instalasi mudah, dan mudah digunakan d) Dilengkapi dengan lampu LED untuk status perangkat e) Support TCP/IP, DHCP, UDP(Selectable) f) Koordinator seluruh perangkat uSmartHome Berikut contoh arsitektur wireless gateway
11
Gambar 2.1 Arsitektur Gateway(wireless) Sumber: Mayhoneys (2008)
2.1.5 Controller Bersumber dari makalah pengendalian diskontinyu, controller adalah elemen yang mengerjakan tiga dari empat tahap langkah pengendalian yang membandingkan set point dengan measurement variable, menghitung berapa banyak koreksi yang perlu dilakukan, dan mengeluarkan sinyal koreksi sesuai dengan hasil perhitungan tadi. Controller sepenuhnya
menggantikan
peran
manual
dalam
mengendalikan sebuah proses. Controller merupakan alat pengendali (Dwi, 2008).
2.1.6 Teori Interaksi Manusia dan Komputer 2.1.6.1 Pengertian User Interface Desain user interface adalah menciptakan media komunikasi yang efektif antara manusia dan komputer (Pressman, 2010: 312). Menurut
Shneiderman
and
Plaisant,
dijelaskan
bahwa
perancangan user interface, harus sesuai dengan delapan aturan emas (Shneiderman & Plaisant, 2010: 88-89) yaitu sebagai berikut:
12 1. Konsisten Rangkaian yang konsisten harus digunakan pada menu, prompts, dan help serta semua perintah yang harus konsisten. 2. Universal usability Desain informasi, komunikasi produk, dan layanan yang dapat digunakan oleh semua kalangan user. 3. Umpan balik yang informatif Untuk setiap aksi yang dilakukan, sebaiknya disediakan fasilitas umpan balik yang jelas dan memadai, agar user mengerti apa yang telah dilakukannya. 4. Dialog penutupan Ketika telah mencapai bagian akhir hendaknya user diberitahu melalui umpan balik. Tanpa adanya dialog pemberitahuan
telah
mencapai
keadaan
akhir,
maka
pengguna akan menjadi bingung. 5. Menawarkan penanganan kesalahan sederhana Sebaiknya desainlah sistem sehingga pengguna tidak bisa melakukan kesalahan yang serius di dalam aplikasi yang dibuat. Jika kesalahan
terjadi, sistem
harus
mampu
memberikan solusi penanganan kesalahan tersebut. 6. Memungkinkan pembalikan aksi yang mudah Fitur ini berguna untuk mengurangi kecemasan, karena user tahu sebuah kesalahan dapat dibatalkan sehingga akan mendorong user untuk mengexplorasi fungsi-fungsi lainnya. 7. Mendukung pusat kendali internal lebih memadai Dengan adanya fungsi ini user dapat mengubah pengaturan secara menyeluruh sehingga user dapat menggunakan sistem sesuai kebutuhan user, dan mengunakan sistem lebih maksimal. 8. Mengurangi beban ingatan jangka pendek Manusia memiliki keterbatasan dalam mengolah informasi dalam jangka waktu pendek, dan ini adalah hal yang harus diperhatikan dalam membuat tampilan sehingga tidak menyulitkan user.
13
2.1.7 Teori Development Software 2.1.7.1 Metode perancangan Waterfall Pengertian waterfall model adalah proses pengembangan software sekuensial, di mana kemajuan
dipandang sebagai terus
mengalir ke bawah (seperti air terjun) melalui beberapa tahapan konsepsi, inisiasi, analisis, konstruksi, pengujian, dan perawatan (Pressman, 2010: 39).
Gambar 2.2 Tahapan Waterfall Sumber: Pressman, 2010 Waterfall model ditunjukan dengan pendekatan yang sistematis dan berurutan, digunakan untuk pengembangan software yang diawali dengan spesifikasi atau tahapan sebagai berikut: 1. Komunikasi Permodelan ini diawali dengan komunikasi dan berkolaborasi dengan perusahaan atau pelanggan untuk mencari kebutuhan dari keseluruhan sistem yang akan diaplikasikan ke dalam bentuk software. 2.
Perencanaan Proses
ini
software,
menetapkan meliputi
perencanaan
tugas-tugas
dalam
programmer
pengerjaan yang
akan
dilakukan, resiko yang mungkin akan terjadi, sumber-sumber yang dibutuhkan, serta hasil yang akan dibuat, dan juga jadwal pengerjaannya.
14 3.
Modeling Proses ini meliputi
pembuatan model yang berguna untuk
developer dan customer atau perusahaan lebih memahami kebutuhan software dan desain yang akan mencapai kebutuhan tersebut. 4.
Konstruksi Proses ini merupakan gabungan antara coding dan testing. Untuk mengetahui error atau bug yang terjadi di dalam aplikasi atau software yang sedang dibangun.
5.
Penyebaran Dalam proses ini, software dikirimkan ke perusahaan atau customer untuk dilakukan evaluasi dan memberikan umpan balik berdasarkan hasil evaluasi tersebut.
2.1.7.2 Unifed Modeling Language (UML) UML adalah sebuah bahasa visual yang menyediakan sebuah cara untuk orang yang menganalisa dan mendesain Object-oriented sistem untuk divisualisasikan, dibangun dan mendokumentasikan the Artefact dari sistem software dan untuk memodelkan organisasi bisnis yang menggunakan sistem
(Bennett, 2006: 108). Dengan membuat
diagram-diagram UML dapat membantu software developer dalam membangun sebuah software. Bila mengerti kosa kata UML (elemenelemen gambar diagram dan maknanya), seorang software developer dapat dengan mudah memahami dan mengspesifikasikan sistem dan menjelaskan desain sistem tersebut kepada orang lain.
Kelebihan UML 1) Jika dibandingkan dengan metode SSAD, dan OOAD, UML lebih mudah digunakan dalam pembangunan sistem. 2) Waktu pengembangan, level organisasi, penggunaan kembali code dalam program lebih tinggi dibandingkan dengan metode OOAD.
15 3) Antara fase design dan analisis tidak ada terjadi pemisahan, hingga menyebabkan tingkat komunikasi antara user dan developer menjadi meningkat dari awal hingga akhir. 4) Tidak adanya batasan implementasi system untuk analis dan programer. 5) Relasi objek dan entitas umumnya dapat di-mapping dengan baik seperti kondisi dunia nyata dan keterkaitan dengan sistem. Hal ini memudahkan dalam memahami desain. 6) Kepercayaan diri yang tinggi terhadap kebenaran software dan memungkinkan adanya perubahan yang membantu untuk mengurangi resiko membangun sistem yang kompleks. 7) Memperingan proses desain, pemograman dan reduksi harga, sebab method dan enkapsulasi data, memungkinkan pengguna kembali pada proyek lain. 8) Memungkinkan memudahkan
adanya memahami
standarisasi desain
dan
object
yang
mengurangi
akan resiko
pelaksanaan project. 9) Kode program dapat dijalankan bersama-sama, metode ini memungkinkan pembangunan aplikasi dapat berjalan lebih cepat, sehingga dapat segera dipasarkan, hal ini disebabkan dekomposisi obyek, yang memungkinkan seorang analis untuk memecah masalah menjadi pecah-pecahan, dan bagian-bagian yang dapat disusun secara terpisah. Kekurangan UML: 1) Pada awal desain OOAD, mungkin sistem akan terlihat sangat simple. 2) OOAD lebih fokus pada code dibandingkan dengan SSAD 3) OOAD tidak menekankan pada kinerja team seperti pada SSAD 4) Pada OOAD tidak mudah mendefinisikan class dan objek yang dibutuhkan sistem 5) Pemograman berorientasi obyek sering kali digunakan untuk melakukan analisis terhadap fungsional site, sementara metode OOAD tidak berbasis pada fungsional sistem.
16 6) OOAD masih tergolong baru, yang berbeda dengan metode analisis terstruktur. Konsekuensinya adalah team developer butuh waktu lebih lama untuk pindah ke OOAD karena sudah terbiasa menggunakan SSAD dalam waktu yang lama. 7) Metodologi pengembangan sistem dengan OOAD menggunakan konsep re-use. Re-use merupakan keuntungan utama yang menjadi alasan menggunakan OOAD, namun tanpa prosedur yang emplisit terhadap re-use, akan mengalami kesulitan untuk menerapkan konsep ini pada skala besar.
2.1.7.3 Use Case Diagram Use case adalah spesifikasi dari urutan aksi sebuah sistem, sub sistem, atau class dapat dilakukan dengan aktor luar (Bennett, 2006: 145). Beberapa komponen use case adalah sebagai berikut:
Gambar 2.3 Use Case Diagram Sumber: Bennett, 2006 1. Actors Entitas yang menggunakan atau yang digunakan sistem. Umumnya orang, namun bisa saja sistem eksternal. 2. Connections. Penghubung antara aktor dan use case. 3. Relationship. Hubungan antara aktor dan use case.
17 2.1.7.2
Use Case Narative Pengertian use case narrative adalah sebuah deskripsi tekstual dari suatu event yang menjelaskan bagaimana user berinteraksi dengan sistem untuk menjalankan tugas (Whitten & Bentley, 2007: 246). Use Case Narrative berguna untuk menerangkan isi use case diagram secara rinci dan menjelaskan bagaimana pengguna berinteraksi dengan sistem. Use Case Narrative adalah penggambaran secara tulisan mengenai event dan penjelasan bagaimana pengguna berinteraksi dengan sistem dalam menyelesaikan tugas.
2.1.7.4 Class Diagram Class diagram merupakan model utama untuk menggambarkan sruktur internal dari sistem yang akan dibuat (Bennett, 2006: 171), atau juga gambaran grafis mengenai struktur objek statis dari suatu sistem, menunjukan class-class objek yang menyusun sebuah sistem dan juga hubungan antara class objek.
Gambar 2.4 Class diagram Sumber: Bennett, 2006 Class diagram dibagi menjadi 3 bagian yaitu: Tabel 2.1 : Contoh Class Diagram Class Attribute Method
18 Attribute dan Method dapat diakses dengan Class lain, dan itu ditentukan Visibility. Terdapat 3 Visibility yaitu: 1. Public dilambangkan dengan simbol (+), atribute dan method dapat diakses dengan class lain. 2. Private dilambangkan dengan simbol (-), atribute dan method hanya dapat diakses oleh class tertentu. 3. Protected dilambangkan dengan simbol (#), atribute dan method hanya dapat diakses oleh class turunannya.
2.1.7.5 Sequence Diagram Sequence diagram merupakan salah satu contoh dari diagram interaksi yang menunjukan interaksi antar objek yang disusun dalam satuan waktu (Bennett, 2006: 252-253). Sequence diagram secara grafis menggambarkan objek-objek yang berorientasi satu dengan yang lainnya melalui pesan-pesan yang dilakukan dari suatu operasi, Sequence diagram menggambarkan bagaimana pesan-pesan dikirim dan diterima antara objek – objek tersebut dan dalam urutan-urutan yang akan ditampilkan. Dalam sebuah sequence diagram satuan waktu ditunjukan dengan dimensi vertikal, semua objek yang terlibat di dalam interaksi sebuah sequence diagram tergabung secara horizontal pada diagram. Pada sebuah Sequence diagram terdapat lifeline, lifeline adalah sebuah garis yang terbentuk secara vertikal dan terputus-putus dengan objek pada bagian atas. Sebuah pesan diberikan dengan garis panah horizontal yang menghubungkan sebuah lifeline dengan lifeline yang lainnya, setiap pesan antara lifeline diberikan sebuah message.
19
Gambar 2.5 Sequence Diagram Sumber: Bennett, 2006 2.1.7.6 Activity Diagram Activity Diagram berarti mendeskripsikan proses kerja yang biasa digunakan dengan berbagai cara (Bennett, 2006: 113). Activity diagram
digunakan
untuk
menampilkan
model aktifitas
dan
fungsionalitas sistem yang direpresentasikan pada use case, Activity diagram juga dapat menggambarkan aksi-aksi yang akan dilakukan ketika operasi dikerjakan dan juga hasil dari aksi operasi tersebut.
Gambar 2.6 Activity Diagram Sumber: Bennett, 2006 2.1.7.7 Teknik pengendalian I/O (Input/Output) Menurut Purwanto and Hergarini (2013: 8-13) teknik pemrograman perangkat I/O terdapat 3 yaitu:
20 1. I/O terprogram atau polling system. Ketika perangkat I/O menerima perintah, perangkat mengatur bit status di dalam register perangkat, setelah perintah selesai dikerjakan perangkat tidak akan mengirim notifikasi ke pemroses bahwa perintah telah selesai dikerjakan sehingga pemroses harus selalu memeriksa register tersebut secara periodik, dan melakukan tindakan berdasarkan status yang dibaca. Driver yang berada di dalam pemroses harus mentransfer data dari pengendali. Driver menjalankan perintah yang berkomunikasi dengan adapter di dalam perangkat dan menunggu sampai operasi yang sedang diproses selesai. Driver berisi kumpulan instruksi: a) Pengendalian b) Pengujian c) Pembacaan atau penulisan 2. I/O dikendalikan interupsi Teknik I/O dikendalikan interupsi, mempunyai mekanisme kerja sebagai berikut. a) Pemroses memberi instruksi keperangkat-perangkat inputoutput dan kemudian melanjutkan melakukan pekerjaan yang lainnya. b) Perangkat akan meninterupsi meminta layanan saat perangkat siap melakukan transfer data dengan pemroses. c) Saat menerima interupsi perangkat, pemroses segera mengeksekusi transfer data.
3. DMA (direct memory access) DMA berfungsi membebaskan pemroses menunggu transfer data yang dilakukan perangkat I/O. Saat pemroses ingin membaca atau menulis data, pemroses memerintahkan DMA controller dengan mengirim informasi-informasi sebagai berikut: a) Perintah write/read b) Alamat perangkat I/O
21 c) Awal lokasi memori yang ditulis/dibaca d) Jumlah word (byte) yang ditulis/dibaca Setelah mengirim informasi-informasi tersebut ke DMA controller, pemroses dapat melanjutkan kerja lain. Pemroses mendelegasikan operasi I/O ke DMA. DMA mentransfer data yang diterima dari memori secara langsung tanpa melewati pemroses. Ketika transfer data selesai, DMA mengirim sinyal interupsi ke pemroses, sehingga pemroses hanya dilibatkan pada awal dan akhir transfer data. Operasi transfer data antara perangkat dan memory utama dilakukan sepenuhnya oleh DMA lepas dari pemroses dan hanya melakukan interupsi bila operasi telah selesai.
2.1.8 Pengertian Java Java adalah bahasa pemograman yang yang dapat digunakan untuk keperluan sehari-hari untuk mengembangkan aplikasi dengan fungsi tertentu. Java mempunyai fleksibilitas yang tinggi karena dapat berjalan di dalam semua platform sehingga penggunaannya tidak hanya meliputi web programming namun sekarang mulai merambah aplikasi desktop, server, dan perangkat mobile (Liang, 2011: 7).
2.1.9 Pengertian JSON(JavaScript Object Notation) Pengertian JSON menurut buku Maintable JavaScript adalah (JavaScript Object Notation) dibuat dengan menggunakan pola dari JavaScript untuk merepresentasikan data terstruktur. JSON bukanlah bagian dari JavaScript walaupun saling berbagi syntax, JSON tidak semata-mata digunakan oleh JavaScript, jadi JSON memiliki parsers dan serializers yang ada dalam banyak bahasa pemograman (Zakas, 2012: 12).
2.1.10 Faktor manusia Terukur Berdasarkan buku Designing the User Interface: Strategies for Effective Human-Computer Interaction pengertian dari Lima faktor manusia terukur yang dapat mendukung yang dapat mendukung perancangan interface terdiri dari (Shneiderman & Plaisant, 2010: 32):
22 1. Time to Learn Waktu yang dibutuhkan user untuk memahami atau menguasai sistem. 2. Speed of Performance Kecepatan user dalam menjalankan aksi yang terdapat di dalam sistem. 3. Rate of Error Tingkat kesalahan dan jenis kesalahan yang dapat dilakukan oleh user. 4. Retentation Over Time Kemampuan pengguna untuk mengingat informasi yang diterima dari sistem dalam jangka waktu tertentu. 5. Subject Statisfaction Keberhasilan suatu sistem yang dirancang, dapat diukur melalui pengguna terhadap sistem tersebut.
2.2 Teori Khusus 2.2.1 Pengertian Android Dalam buku Professional Android 4 Application Development didapatkan android adalah sebuah kumpulan perangkat lunak yang bersifat open source yang meliputi, operating system, middleware, dan key application yang termasuk sebuah set API libraries untuk pengembangan aplikasi mobile untuk tampilan dan fungsi dari perangkat mobile (Meier, 2012: 7). Android terdiri dari bagian-bagian yang saling dibutuhkan dan saling bergantung, contohnya seperti : 1. Sebuah
desain
referensi
hardware
yang
menggambarkan
kemampuan yang dibutuhkan untuk sebuah perangkat mobile yang mendukung software stack. 2. Sebuah kernel sistem operasi Linux yang menyediakan tampilan tingkat rendah dengan hardware, pengaturan memori, dan pengontrolan proses, semua dioptimalkan di dalam perangkat mobile.
23 3. Run Time yang digunakan untuk mengeksekusi dan host aplikasi Android. run time ini dirancang kecil dan efisien untuk digunakan perangkat mobile. 4. Framework aplikasi yang menghadapkan layanan sistem ke lapisan aplikasi, termasuk window manager dan location manager, penyedia konten, telephony, dan sensor. 2.2.2 Pengertian iOS Pengertian iOS berdasarkan buku Developing Mobile Applications for Apple iPhone, iPad, and iPod Touch. iOS adalah operating system dari Apple yang bersifat close source. iOS menggunakan Objective-C sebagai bahasa pemograman untuk pengembangan aplikasinya. Apple hanya memberi izin lisensi hanya untuk pengguna Mac, operating system untuk personal computer dari Apple (Languedoc & McGovern, 2013: 5).
2.3 Perangkat yang digunakan 2.3.1 Xamarin(Framework) Berdasarkan sumber dari website resmi xamarin, didefinisikan bahwa xamarin digunakan untuk pengembangan aplikasi mobile. dengan menggunakan xamarin, user dapat mengembangkan aplikasi mobile pada 3 sistem operasi yang berbeda dengan menggunakan 1 kode inti. Xamarin menggunakan bahasa pemograman C# atau kombinasi dengan java untuk beberapa sistem operasi tertentu, sehingga dapat menghemat waktu dan SDM(Sumber Daya Manusia). Kemudian dikombinasikan dengan user interface yang menggunakan bahasa pemograman sesuai dengan sistem operasi yang dituju, setelah itu semua akan diproses oleh xamarin untuk menjadi aplikasi mobile dengan masing-masing format sesuai dengan sistem operasi yang diinginkan. Xamarin adalah unik karena menggabungkan semua kekuatan platform dan menambahkan sejumlah fitur canggih sendiri, yaitu: a) Complete Binding for the Indigenous SDKs Xamarin mengandung binding untuk hampir seluruh SDK platform yang mendasari baik iOS dan android. Selain itu, binding ini kuat
24 dalam implementasinya, yang berarti mudah dinavigasi dan digunakan, dan menyediakan waktu kompilasi memeriksa jenis code selama pengembangan. Hal ini menyebabkan kesalahan runtime yang lebih sedikit dan kualitas yang lebih tinggi dari aplikasi yang dibuat. b) Objective-C, Java, C, and C++ Interop Xamarin menyediakan fasilitas untuk langsung memanggil Objective-C, Java, C, dan C++ library, dan memberikan user kesempatan
untuk
menggunakan
beragam
code.
Hal
ini
memungkinkan user mengambil keuntungan dari iOS yang ada dan library android ditulis di dalam Objective-C, Java atau C/C++. Selain
itu,
xamarin
menawarkan
binding
project
yang
memungkinkan user untuk dengan mudah mengaitkan native Objective-C dan Java library menggunakan sintaks deklaratif. c) Modern Language Constructs Aplikasi xamarin ditulis dalam C #, bahasa modern yang mencakup perbaikan yang signifikan atas Objective-C dan Java seperti fitur Dynamic Language, konstruktur fungsional seperti lambdas, LINQ, fitur pemrograman paralel, generik canggih, dan banyak lagi. d) Amazing Base Class Library (BCL) Aplikasi xamarin menggunakan. NET BCL, koleksi besar dari kelas yang memiliki fitur yang lengkap dan efisien seperti XML yang kuat, database, serialisasi, IO, string, dan jaringan dukungan, hanya untuk beberapa nama. Selain itu, C # kode yang ada dapat dikompilasi
untuk
digunakan
dalam
aplikasi
user,
yang
menyediakan akses ke ribuan library yang akan membiarkan user melakukan hal-hal yang belum tercakup dalam BCL. e) Modern Integrated Development Environment (IDE) Xamarin menggunakan Xamarin Studio di Mac OSX, dan juga Xamarin Studio atau Visual Studio 2010 pada Windows. Ini adalah
25 kedua IDE modern yang mencakup fitur seperti kode auto completion, Proyek canggih dan sistem manajemen Solution, sebuah project template library yang komprehensif, kontrol sumber terintegrasi, dan banyak lainnya. f) Mobile Cross Platform Support Xamarin menawarkan dukungan cross-platform canggih untuk tiga platform mobile utama iOS, Android, dan Windows Phone. Aplikasi dapat ditulis untuk berbagi hingga 90% dari kode, dan library Xamarin. Xamarin menyediakan API untuk mengakses sumber daya umum di dalam semua tiga platform. Hal ini dapat secara signifikan mengurangi baik biaya pengembangan dan waktu, untuk mobile pengembangan ditargetkan tiga platform mobile yang paling populer. Karena sangat berguna dan komprehensif, dapat mengisi kemudahan untuk pengembang aplikasi yang ingin menggunakan bahasa modern dan platform untuk mengembangkan aplikasi mobile crossplatform.