Hello guys !
Selamat datang kembali di blog saya, perkenalkan nama saya Rizqi Aryansa yang saat ini sedang menempuh pendidikan di Universitas Brawijaya jurusan Informatika.
Kali ini saya akan berbagi tentang bagaimana cara membuat aplikasi Multi-Platform Mobile dengan menggunakan teknologi Xamarin dan Azure..
Tahukah anda? Selama ini anda menggunakan smartphone hanya sebatas sebagai pengguna saja. Apakah anda tidak ingin untuk mencoba membuat aplikasi keren hasil karya sendiri? Tentu anda bangga bisa membuat aplikasi yang terpasang di smartphone anda sendiri bukan?
Bagaimana sih caranya? eitss.. tunggu dulu, untuk lebih detailnya nanti akan saya bahas satu per satu.
Mungkin dari sebagian anda sudah ada yang pernah membuat aplikasi mobile dengan Android Studio, lantas apa sih kelebihan membuat aplikasi dengan teknologi Xamarin?
Apa Itu Xamarin?
Xamarin adalah sebuah platform pengembangan aplikasi mobile dari Microsoft. Yups, mungkin anda sering mendengarkan produk Microsoft seperti Operating System (OS) Windows dan Office yang anda pakai dalam sehari – hari di pc anda. Tetapi, Microsoft juga mengembangkan sebuah platform Xamarin untuk anda yang ingin membuat Aplikasi Mobile. Apalagi, Xamarin tidak hanya diperuntukkan untuk Platform OS Windows Desktop dan Windows Phone saja. Namun, anda juga bisa membuat aplikasi Multi-Platform di perangkat Android dan IOS. Xamarin menggunakan bahasa pemrograman C#, sedangkan sebagian anda yang pernah menggunakan android studio familiar dengan bahasa pemrograman Java. Tenang, anda tidak perlu khawatir karena bahasa pemrograman C# dan Java mempunyai kemiripan dari penulisan syntax. Sungguh keren bukan ? Anda tidak perlu lagi menginstall banyak software untuk tiap platform mobile. Cukup anda menginstall Visual Studio 2017 Community dan Xamarin di pc anda.
Sebelum menginstall Xamarin, pastikan pc anda memenuhi kualifikasi sebagai berikut :
- Minimum Operating System Windows 7, 8.1, 10 dan Mac OS X El Capitan (10.11)
- Minimum space Harddisk PC anda mempunyai sekitar kurang lebih 40gb
- Minimum RAM disarankan sekitar 4gb
Pada saat install visual studio pilih custom Mobile development with .NET Xamarin seperti contoh gambar dibawah ini
Setelah selesai menginstall Visual Studio 2017 dan Xamarin, anda bisa memulai membuat dan menjalankan project aplikasi xamarin.
Memulai dan Menjalankan Project Aplikasi Xamarin
Langkah – langkah untuk memulai membuat project xamarin form sebagai berikut :
- Buka visual studio 2017 lalu buat new project Cross Platform App, contohnya dengan nama yang saya buat yaitu EduFabel, lalu klik OK.
2. Kemudian akan muncul pop up New Cross Platform App pilih template Blank App dan pilih UI Technology Xamarin.Forms, lalu klik OK.
Setelah project berhasil dibuat maka anda akan melihat tampilan solution explorer pada Visual Studio 2017 yang berisi project sebagai berikut :
- Xamarin Forms: Project utama yang bisa dishared ke beberapa platform secara otomatis.
- Android : Project untuk platform Android.
- IOS : Project untuk platform IOS.
Langkah – langkah Menjalankan Project Aplikasi Xamarin di Platform Android ada 2 cara yaitu :
- Emulator
Untuk menjalankan Project Aplikasi Xamarin di Platform Android, anda dapat menggunakan tools Visual Studio Emulator for Android atau menggunakan Android Emulator Manager (AVD). Jika belum tersedia di Visual Studio, anda dapat melakukan download di link berikut https://www.visualstudio.com/vs/msft-android-emulator/.Cara menjalankan Visual Studio Emulator for Android, anda dapat memilih di menu Tools -> Visual Studio for Android.
Selanjutnya anda dapat memilih tipe dari emulator dan sistem operasi android yang akan dijalankan. Dalam contoh ini menggunakan emulator dengan sistem operasi Android Kitkat (4.4) dengan ukuran device 5″.
Untuk menjalankan project aplikasi Android, pastikan anda merubah target pada project solution explorer. Klik kanan pada solution project -> Pilih properties -> Single Startup project -> Android.
- Device Android anda
Pastikan device anda USB debugging telah aktif, langkah – langkah mengaktifkan USB Debugging, contohnya pada device samsung sebagai berikut. Masuk ke settings -> About Device -> Ketuk Build number 10 kali -> Muncul Developer Options -> Centang USB Debugging.
Setelah itu jalankan aplikasi anda di visual studio, klik tombol play di device anda atau tekan tombol F5 di keyboard pc anda.
Setelah sukses menjalankan aplikasi di visual studio, maka akan muncul tampilan di device atau emulator anda seperti gambar dibawah ini
Langkah – langkah Menjalankan Project Aplikasi Xamarin di Platform IOS yaitu:
Pertama, pastikan di startup project anda mengarahkan ke project IOS. Klik kanan pada solution expolorer -> Pilih properties -> Single Startup project -> IOS.
Kedua, kemudian untuk menjalankan aplikasi pada platform IOS anda membutuhkan PC Mac. Cara terkoneksi dengan PC Mac, pilih tools -> IOS -> Xamarin Mac Agent.
Setelah itu akan muncul tampilan sebagai berikut:
Untuk dapat terinstall aplikasinya di platform IOS, harap diperhatikan beberapa hal yaitu:
-
Komputer Mac yang menjalankan OS X Yosemite (10.10) atau versi yang lebih tinggi.
-
Xamarin Studio 5.10 atau versi yang lebih tinggi.
-
Xamarin.iOS SDK.
-
Apple’s Xcode(7+) IDE dan iOS SDK.
Bagaimana dengan Pengenalan Teknologi Xamarin? cukup menarik bukan?
Setelah ini, saya akan membahas tentang User Interface (UI), membuat Navigasi di Xamarin Forms, menambahkan layanan Azure dan menampilkan data di ListView, dan cara membuat APK pada Xamarin juga disertai dengan penjelasan singkat contoh project yang telah saya buat yaitu Edufabel (Aplikasi Layanan Pesan Les Privat Disabilitas).
Okeeey kita lanjut aja ke pembahasan selanjutnya ya guys..
Bagaimana cara membuat User Interface (UI) Xamarin Forms ?
Dalam User Interface (UI) terdapat 3 komponen yang anda perlu ketahui yaitu:
- Page: Halaman yang terdiri dari komponen layout dan view. Beberapa contoh page yaitu: ContentPage, MasterDetailPage, NavigationPage, TabbedPage, dan CarouselPage.
- Views: Komponen yang berfungsi sebagai kontrol interaktif pada Page. Berikut beberapa contoh jenis view yaitu : Label, Image, Button, BoxView, ListView, Entry, Editor, Picker, DatePicker, TimePicker, Stepper, Slider, Switch, dan Activity.
- Layout : Tatak letak yang digunakan untuk mengatur posisi kontrol view atau layout lain. Berikut beberapa macam layout pada xamarin forms yaitu: StackLayout, AbsoluteLayout, RelativeLayout, dan Grid.
Baik.. diatas merupakan penjelasan singkat mengenai komponen User Interface (UI) pada xamarin form, Selanjutnya saya akan membahas Implementasi User Interface di project yang telah saya buat yaitu Membuat Form Login dan Form Register Siswa Edufabel yang meliputi komponen StackLayout, ScrollView dan Grid, Label, Image, Button, Picker dan Entry.
- StackLayout : digunakan mengatur layout secara horizontal atau vertikal.
- ScrollView : untuk memuat suatu halaman agar ditampilkan secara penuh dengan scrollbar di pojok kanan halaman.
- Grid : membantu ukuran view lebih responsif dengan ukuran yang ditentukan.
- Label : biasanya digunakan menampilkan teks.
- Image : menampilkan sebuah gambar.
- Button : digunakan untuk melakukan sebuah aksi.
- Picker : mirip dengan combobox yang menampilkan sebuah pilihan list.
- Entry : sebuah input pengguna dengan menggunakan keyboard.
Membuat Form Login EduFabel
Pertama, tambahkan halaman baru dengan nama LoginPage.xaml pada project portable. Kemudian tambahkan kode xaml berikut:
<?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="EduFabel.LoginPage"
BackgroundColor="Red">
<ContentPage.Content>
<ScrollView>
<Grid x:Name="gvUser">
<StackLayout>
<StackLayout HorizontalOptions="CenterAndExpand" Margin="0,30,0,0">
<Label Text="Selamat Datang di Edufabel!"
TextColor="White" HorizontalOptions="Center" FontAttributes="Bold" FontSize="Medium" />
<Label Text="Aplikasi Layanan Pesan Les Privat Disabilitas" HorizontalOptions="Center"
TextColor="White" />
<Image Source="logoedufabel.png" Margin="0,10,0,0" HeightRequest="100" WidthRequest="100" HorizontalOptions="Center" />
</StackLayout>
<StackLayout VerticalOptions="StartAndExpand" BackgroundColor="White" Margin="30,15,30,40" Padding="40,25,40,5">
<Label Text="LOGIN" Margin="0,0,0,10" TextColor="Red" FontAttributes="Bold" FontSize="Large"
HorizontalOptions="CenterAndExpand" />
<Label Text="Email" />
<Entry x:Name="emailEntry" Placeholder="Email" Keyboard="Email" />
<Label Text="Password" />
<Entry x:Name="passwordEntry" Placeholder="Password" IsPassword="true" />
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="5*" />
<ColumnDefinition Width="5*"/>
</Grid.ColumnDefinitions>
<Button x:Name="btnLogin" Text="LOGIN SISWA" Clicked="OnLoginButtonClicked" FontSize="Small"
FontAttributes="Bold" TextColor="White" BackgroundColor="Red" HorizontalOptions="Fill"
HeightRequest="55" Grid.Column="0" >
</Button>
<Button x:Name="btnLoginGuru" Text="LOGIN GURU" FontSize="Small" Clicked="OnLoginGuruClicked"
VerticalOptions="Fill" Grid.Column="1" HorizontalOptions="Fill"
FontAttributes="Bold" TextColor="White" BackgroundColor="MediumVioletRed" HeightRequest="55">
</Button>
</Grid>
<Label x:Name="messageLabel" />
<Label x:Name="lblSignUp" Text="BELUM PUNYA AKUN?" FontAttributes="Bold" TextColor="Red"
FontSize="Small" HorizontalOptions="CenterAndExpand" />
</StackLayout>
</StackLayout>
</Grid>
</ScrollView>
</ContentPage.Content>
</ContentPage>
Hasil tampilan ketika project LoginPage.xaml dijalankan dapat dilihat pada gambar berikut:
Membuat Form Register EduFabel
Pertama, tambahkan halaman baru dengan nama SignUpPage.xaml pada project portable. Kemudian tambahkan kode xaml berikut:
<?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:EduFabel;"
x:Class="EduFabel.SignUpPage"
Title="Sign Up Siswa"
BackgroundColor="Red">
<ContentPage.Content>
<ScrollView>
<Grid x:Name="gvUser">
<StackLayout>
<StackLayout HorizontalOptions="CenterAndExpand" Margin="0,30,0,0">
<Label Text="Halaman Pendaftaran Siswa EduFabel!"
TextColor="White" HorizontalOptions="Center" FontAttributes="Bold" FontSize="Medium" />
<Label Text="Silahkan Register terlebih dahulu!"
HorizontalOptions="Center"
TextColor="White" FontSize="Small" />
</StackLayout>
<StackLayout HorizontalOptions="CenterAndExpand" Margin="0,25,0,0">
<Label Text="DAFTAR SEBAGAI GURU" x:Name="lblGuru"
HorizontalOptions="Center" FontAttributes="Bold"
TextColor="Red" BackgroundColor="White" FontSize="Medium" />
</StackLayout>
<StackLayout VerticalOptions="StartAndExpand" BackgroundColor="White"
Margin="30,25,30,30" Padding="40,25,40,5">
<Label Text="REGISTER SISWA" Margin="0,0,0,10" TextColor="Red" FontAttributes="Bold"
FontSize="Large" HorizontalOptions="CenterAndExpand" />
<Label Text="Nama Lengkap" />
<Entry x:Name="namalengkapEntry" Keyboard="Text" Placeholder="Nama Lengkap" />
<Label Text="Email" />
<Entry x:Name="emailEntry" Placeholder="Email" Keyboard="Email" />
<Label Text="Jenis Kelamin" />
<Picker Title="Pilih Jenis Kelamin"
x:Name="jeniskelaminEntry" VerticalOptions="Center">
<Picker.Items>
<x:String>Laki-laki</x:String>
<x:String>Perempuan</x:String>
</Picker.Items>
</Picker>
<Label Text="Jenis Disablitas" />
<Picker Title="Pilih Jenis Disabilitas"
x:Name="jenisdifabelEntry" VerticalOptions="Center">
<Picker.Items>
<x:String>Tunanetra</x:String>
<x:String>Tunarungu</x:String>
<x:String>Tunadaksa</x:String>
<x:String>Tunalaras</x:String>
<x:String>Tunagrahita</x:String>
<x:String>Tunadaksa</x:String>
<x:String>Tunaganda</x:String>
</Picker.Items>
</Picker>
<Label Text="Kelas" />
<Picker Title="Pilih Kelas"
x:Name="kelasEntry" VerticalOptions="Center">
<Picker.Items>
<x:String>Kelas TK/PAUD</x:String>
<x:String>Kelas I</x:String>
<x:String>Kelas II</x:String>
<x:String>Kelas III</x:String>
<x:String>Kelas IV</x:String>
<x:String>Kelas V</x:String>
<x:String>Kelas VI</x:String>
<x:String>Kelas VII</x:String>
<x:String>Kelas VIII</x:String>
<x:String>Kelas IX</x:String>
<x:String>Kelas X</x:String>
<x:String>Kelas XI IPA</x:String>
<x:String>Kelas XI IPS</x:String>
<x:String>Kelas XII IPA</x:String>
<x:String>Kelas XII IPS</x:String>
<x:String>Diploma</x:String>
<x:String>S1</x:String>
<x:String>S2</x:String>
<x:String>S3</x:String>
<x:String>Umum</x:String>
</Picker.Items>
</Picker>
<Label Text="Nomor Handphone" />
<Entry x:Name="nohpEntry" Keyboard="Telephone" Placeholder="NO HP" />
<Label Text="Password" />
<Entry x:Name="passwordEntry" IsPassword="true" Placeholder="Password" />
<Button BorderRadius="50" Text="Sign Up" Clicked="OnSignUpButtonClicked"
FontSize="Small" FontAttributes="Bold" TextColor="White" BackgroundColor="Red"
HeightRequest="55"/>
<Label x:Name="messageLabel" />
<Label x:Name="lblLogin" Text="SUDAH PUNYA AKUN?" FontAttributes="Bold" TextColor="Red"
FontSize="Small" HorizontalOptions="CenterAndExpand" />
</StackLayout>
</StackLayout>
</Grid>
</ScrollView>
</ContentPage.Content>
</ContentPage>
Hasil tampilan ketika project SignUpPage.xaml dijalankan dapat dilihat pada gambar berikut:
Bagaimana ? membuat User Interface sangat menarik bukan ? tetap simak terus ya guys.. masih ada lagi hal menarik yang harus dicoba pada aplikasi anda..
Membuat Navigasi di Xamarin Forms
Navigasi digunakan memudahkan pengguna pindah antar halaman. Fitur Navigasi meliputi yaitu menu, tap icon, tombol, tabs, dan list items.
Ada beberapa jenis navigasi yang dapat digunakan, diantaranya yaitu :
- Hierarchical
- Modal
- Drill-down
- Navigation drawer
- Tab Pages
- Springboard
- Carousel
- Master Pages
Seperti pembahasan sebelumnya, Selanjutnya saya akan membahas Implementasi Navigasi di project yang telah saya buat yaitu Membuat Menu Page dan Account Page yang meliputi komponen Master Pages dan Tab Page.
- Master Pages : Navigasi menu yang letaknya sebelah kiri halaman dan sebelah kanan yang berisi konten halaman
- Tab Pages: Kumpulan halaman yang dijadikan pada satu halaman dengan pindah halaman tanpa muat ulang lagi
Membuat Menu Page Siswa EduFabel
Pertama, tambahkan halaman baru atau sudah ada dengan nama MainPage.xaml pada project portable. Kemudian tambahkan kode xaml berikut:
<?xml version="1.0" encoding="UTF-8"?>
<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:EduFabel;"
x:Class="EduFabel.MainPage">
<MasterDetailPage.Master>
<local:MasterPage x:Name="masterPage" />
</MasterDetailPage.Master>
<MasterDetailPage.Detail>
<NavigationPage>
<x:Arguments>
<local:OrderPage />
</x:Arguments>
</NavigationPage>
</MasterDetailPage.Detail>
</MasterDetailPage>
Keterangan :
*Argument yang di dalamnya terdapat local:OrderPage berfungsi sebagai jika halaman dijalankan maka yang tampil pertama kali halaman OrderPage.
Kedua, membuat class MasterPageItem.cs digunakan untuk berisi data dari menu yang akan ditampilkan. tambahkan sebuah class MasterPageItem.cs pada folder Models pada project portable.
*Jika belum membuat folder Models, buat terlebih dahulu folder Models pada project portable.
public class MasterPageItem
{
public string Title { get; set; }
public string IconSource { get; set; }
public Type TargetType { get; set; }
}
Ketiga, pada MainPage.cs tambahkan kode berikut ini.
public partial class MainPage : MasterDetailPage
{
public MainPage ()
{
InitializeComponent ();
masterPage.ListView.ItemSelected += OnItemSelected;
}
void OnItemSelected (object sender, SelectedItemChangedEventArgs e)
{
var item = e.SelectedItem as MasterPageItem;
if (item != null) {
Detail = new NavigationPage ((Page)Activator.CreateInstance (item.TargetType));
masterPage.ListView.SelectedItem = null;
IsPresented = false;
}
}
}
Keempat, Buat halaman xaml dengan nama MasterPage.xaml di project portable untuk menampilkan daftar menu.
<?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="EduFabel.MasterPage"
xmlns:local="clr-namespace:EduFabel;"
Title="Siswa Page">
<ContentPage.Content>
<StackLayout BackgroundColor="#af0000">
<StackLayout Orientation="Horizontal" Margin="30,30,0,15"
HorizontalOptions="StartAndExpand" >
<Image Source="account.png" Aspect="AspectFit" />
<Label x:Name="lblUser" FontSize="18" FontAttributes="Bold"
VerticalTextAlignment="Center" Margin="10,0,0,0" TextColor="White" />
</StackLayout>
<ListView x:Name="listView" ItemsSource="{Binding ListItems}"
SeparatorVisibility="None" HasUnevenRows="True">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Orientation="Horizontal" Margin="30,15,0,15"
HorizontalOptions="StartAndExpand" >
<Image Source="{Binding IconSource}" Aspect="AspectFit" />
<Label Text="{Binding Title}" FontSize="16"
VerticalTextAlignment="Center" Margin="10,0,0,0" TextColor="White" />
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
</ContentPage.Content>
</ContentPage>
Kelima, tambahkan item kontrol ListView dan Label untuk menampilkan menu. kemudian pada MasterPage.xaml.cs tambahkan kode berikut:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
using EduFabel.Models;
namespace EduFabel
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class MasterPage : ContentPage
{
public ListView ListView { get { return listView; } }
public static string sessionEmail { get; set; }
public MasterPage()
{
InitializeComponent();
var masterPageItems = new List<MasterPageItem>();
masterPageItems.Add(new MasterPageItem
{
Title = "Order",
IconSource = "order.png",
TargetType = typeof(OrderPage)
});
masterPageItems.Add(new MasterPageItem
{
Title = "History",
IconSource = "history.png",
TargetType = typeof(HistorySiswaPage)
});
masterPageItems.Add(new MasterPageItem
{
Title = "List Guru",
IconSource = "guru.png",
TargetType = typeof(ListGuruPage)
});
masterPageItems.Add(new MasterPageItem
{
Title = "Account",
IconSource = "settings.png",
TargetType = typeof(AccountSiswaPage)
});
masterPageItems.Add(new MasterPageItem
{
Title = "Logout",
IconSource = "logout.png",
TargetType = typeof(LoginPage)
});
listView.ItemsSource = masterPageItems;
}
}
}
Untuk menambahkan icon file berupa .png. anda dapat menaruh file project Android pada folder Resources\drawable. File yang dibutuhkan pada project di atas seperti order.png, guru.png, settings.png, guru.png.
Jika terdapat error warna merah pada OrderPage, HistorySiswaPage, ListGuruPage, AccountSiswaPage. Karena halaman tersebut belum dibuat. Setelah itu akan membuat halaman tersebut satu per satu.
Keenam, Buat halaman xaml dengan nama OrderPage.Xaml untuk menampilkan halaman order dengan tambahkan kode berikut:
<?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="EduFabel.OrderPage"
xmlns:local="clr-namespace:EduFabel;"
Title="Order Guru"
BackgroundColor="#e5e5e5">
<ContentPage.Content>
<ScrollView>
<StackLayout BackgroundColor="White" Orientation="Vertical" VerticalOptions="FillAndExpand"
Margin="10,10,10,10" Padding="20,20,20,20" HeightRequest="760" WidthRequest="500" >
<Label Text="Pesan Guru Les Privat
" FontAttributes="Bold" TextColor="Black"
FontSize="Large" HorizontalOptions="CenterAndExpand" />
<Grid x:Name="gvOrder">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="3*" />
<ColumnDefinition Width="0.5*" />
<ColumnDefinition Width="6.5*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Label Text="Nama Lengkap" FontSize="14" TextColor="Black" />
<Label Text=":" FontSize="14" TextColor="Black" Grid.Row="0" Grid.Column="1" />
<Entry x:Name="namalengkapEntry" Keyboard="Text" Grid.Row="0" Grid.Column="2"
Placeholder="Nama Lengkap" />
<Label Text="Jenis Disablitas" FontSize="14" TextColor="Black" Grid.Row="1" Grid.Column="0" />
<Label Text=":" FontSize="14" TextColor="Black" Grid.Row="1" Grid.Column="1" />
<Picker Title="Pilih Jenis Disabilitas" Grid.Row="1" Grid.Column="2"
x:Name="jenisdifabelEntry" VerticalOptions="Center">
<Picker.Items>
<x:String>Tunanetra</x:String>
<x:String>Tunarungu</x:String>
<x:String>Tunadaksa</x:String>
<x:String>Tunalaras</x:String>
<x:String>Tunagrahita</x:String>
<x:String>Tunadaksa</x:String>
<x:String>Tunaganda</x:String>
</Picker.Items>
</Picker>
<Label Text="Nomor Handphone" FontSize="14" TextColor="Black" Grid.Row="2"
Grid.Column="0" />
<Label Text=":" FontSize="14" TextColor="Black" Grid.Row="2" Grid.Column="1" />
<Entry x:Name="nohpEntry" Keyboard="Telephone" Grid.Row="2"
Grid.Column="2" Placeholder="No HP" />
<Label Text="Alamat" FontSize="14" TextColor="Black" Grid.Row="3"
Grid.Column="0" />
<Label Text=":" FontSize="14" TextColor="Black" Grid.Row="3" Grid.Column="1" />
<Entry x:Name="alamatEntry" Grid.Row="3"
Grid.Column="2" Placeholder="Alamat" Keyboard="Text" />
<Label Text="Kota" TextColor="Black" FontSize="14" Grid.Row="4"
Grid.Column="0" />
<Label Text=":" FontSize="14" TextColor="Black" Grid.Row="4" Grid.Column="1" />
<Entry x:Name="kotaEntry" Grid.Row="4"
Grid.Column="2" Placeholder="Kota" Keyboard="Text" />
<Label Text="Kelas" Grid.Row="5" FontSize="14"
Grid.Column="0" TextColor="Black" />
<Label Text=":" FontSize="14" TextColor="Black" Grid.Row="5" Grid.Column="1" />
<Picker Title="Pilih Kelas" Grid.Row="5"
Grid.Column="2"
x:Name="kelasEntry" VerticalOptions="Center">
<Picker.Items>
<x:String>Kelas TK/PAUD</x:String>
<x:String>Kelas I</x:String>
<x:String>Kelas II</x:String>
<x:String>Kelas III</x:String>
<x:String>Kelas IV</x:String>
<x:String>Kelas V</x:String>
<x:String>Kelas VI</x:String>
<x:String>Kelas VII</x:String>
<x:String>Kelas VIII</x:String>
<x:String>Kelas IX</x:String>
<x:String>Kelas X</x:String>
<x:String>Kelas XI IPA</x:String>
<x:String>Kelas XI IPS</x:String>
<x:String>Kelas XII IPA</x:String>
<x:String>Kelas XII IPS</x:String>
<x:String>Diploma</x:String>
<x:String>S1</x:String>
<x:String>S2</x:String>
<x:String>S3</x:String>
<x:String>Umum</x:String>
</Picker.Items>
</Picker>
<Label Text="Mata Pelajaran" FontSize="14" TextColor="Black" Grid.Row="6"
Grid.Column="0" />
<Label Text=":" FontSize="14" TextColor="Black" Grid.Row="6" Grid.Column="1" />
<Picker Title="Pilih Mata Pelajaran" Grid.Row="6" Grid.Column="2"
x:Name="mapelEntry" VerticalOptions="Center">
<Picker.Items>
<x:String>Matematika</x:String>
<x:String>Bahasa Inggris</x:String>
<x:String>Bahasa Indonesia</x:String>
<x:String>IPA</x:String>
<x:String>IPS</x:String>
<x:String>Biologi</x:String>
<x:String>Fisika</x:String>
<x:String>Kimia</x:String>
<x:String>Ekonomi</x:String>
<x:String>Geografi</x:String>
<x:String>Sejarah</x:String>
<x:String>PKN</x:String>
</Picker.Items>
</Picker>
<Label Text="Mulai Belajar" FontSize="14" TextColor="Black" Grid.Row="7"
Grid.Column="0" />
<Label Text=":" FontSize="14" TextColor="Black" Grid.Row="7" Grid.Column="1" />
<DatePicker x:Name="mulaibelajarEntry" Grid.Row="7" Grid.Column="2"
VerticalOptions="CenterAndExpand" MinimumDate="01/01/1990"
MaximumDate="12/31/2030" />
<Label Text="Jumlah Jam" FontSize="14" TextColor="Black" Grid.Row="8"
Grid.Column="0" />
<Label Text=":" FontSize="14" TextColor="Black" Grid.Row="8" Grid.Column="1" />
<Entry x:Name="jumlahjamEntry" Grid.Row="8"
Grid.Column="2" Keyboard="Numeric" Placeholder="Jumlah Jam" />
<Label Text="Email Guru" TextColor="Black" FontSize="14" Grid.Row="9"
Grid.Column="0" />
<Label Text=":" FontSize="14" TextColor="Black" Grid.Row="9" Grid.Column="1" />
<Picker x:Name="guruEntry" Grid.Row="9"
Grid.Column="2" ItemDisplayBinding="{Binding Email}" Title="Pilih Email Guru"
/>
</Grid>
<Button Margin="0,10,0,0" Text="KIRIM" Clicked="OnOrderButtonClicked"
FontSize="Small" FontAttributes="Bold" TextColor="White" BackgroundColor="Red"
/>
<Label Text="*Tarif Les Privat Rp 30.000 / Jam" TextColor="Red" FontAttributes="Bold" />
<Label x:Name="messageLabel" />
</StackLayout>
</ScrollView>
</ContentPage.Content>
</ContentPage>
Ketujuh, Buat halaman xaml dengan nama HistorySiswaPage.Xaml untuk menampilkan halaman history order siswa dengan tambahkan kode berikut:
<?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="EduFabel.HistorySiswaPage"
Title="History">
<ContentPage.Content>
<Grid x:Name="gvAccount">
<ActivityIndicator
HorizontalOptions="Center"
VerticalOptions="Center"
IsVisible="False"
IsEnabled="True"
x:Name="syncIndicator"/>
<ScrollView>
<StackLayout Margin="30,10,30,10">
<ListView x:Name="listViewHistorySiswa" ItemTapped="ListView_OnItemTapped"
IsPullToRefreshEnabled="True" Refreshing="ListView_OnRefreshing"
RowHeight="100">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Grid x:Name="gvAccount">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="4*" />
<ColumnDefinition Width="4*" />
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Label HorizontalOptions="Start" TextColor="Red" FontSize="14"
FontAttributes="Bold" VerticalTextAlignment="Center" Grid.Row="0" Grid.Column="0"
Text="{Binding Guru}"/>
<Label HorizontalOptions="Start" FontSize="12" TextColor="Black"
VerticalTextAlignment="Center" Grid.Row="1"
Grid.Column="0"
Text="{Binding Mapel}"/>
<Label HorizontalOptions="Start" TextColor="Red" FontSize="14" FontAttributes="Bold" Grid.Row="0"
Grid.Column="1" VerticalTextAlignment="Center"
Text="{Binding Mulaibelajar}"/>
<Label HorizontalOptions="Start" FontSize="12" TextColor="Black"
VerticalTextAlignment="Center" Grid.Row="1"
Grid.Column="1"
Text="{Binding Jumlahbayar}"/>
<Image HorizontalOptions="End" Aspect="AspectFit" VerticalOptions="CenterAndExpand"
Source="status.png" IsVisible="{Binding Status}" Grid.Row="1"
Grid.Column="2" />
</Grid>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
</ScrollView>
</Grid>
</ContentPage.Content>
</ContentPage>
Kedelepan, Buat halaman xaml dengan nama ListGuruPage.Xaml untuk menampilkan halaman daftar guru dengan tambahkan kode berikut:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="EduFabel.ListGuruPage"
xmlns:local="clr-namespace:EduFabel;"
Title="List Guru">
<ContentPage.Content>
<Grid x:Name="gvAccount">
<ActivityIndicator
HorizontalOptions="Center"
VerticalOptions="Center"
IsVisible="False"
IsEnabled="True"
x:Name="syncIndicator"/>
<ScrollView>
<StackLayout Margin="30,10,30,10">
<ListView x:Name="listViewListGuru" ItemTapped="ListView_OnItemTapped"
IsPullToRefreshEnabled="True" Refreshing="ListView_OnRefreshing" RowHeight="100">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Grid x:Name="gvAccount">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="3.5*" />
<ColumnDefinition Width="3.5*" />
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Label HorizontalOptions="Start" TextColor="Red" FontSize="14"
FontAttributes="Bold" VerticalTextAlignment="Center" Grid.Row="0" Grid.Column="0"
Text="{Binding Namalengkap}"/>
<Label HorizontalOptions="Start" FontSize="12" TextColor="Black" Grid.Row="1"
Grid.Column="0"
VerticalTextAlignment="Center"
Text="{Binding Nohp}"/>
<Label HorizontalOptions="Start" TextColor="Red" FontSize="14" FontAttributes="Bold" VerticalTextAlignment="Center"
Text="{Binding Kota}" Grid.Row="0" Grid.Column="1" />
<Label HorizontalOptions="Start" FontSize="12" TextColor="Black"
VerticalTextAlignment="Center" Grid.Row="1"
Grid.Column="1"
Text="{Binding Email}"/>
<Label HorizontalOptions="Start" FontSize="14" TextColor="Black" Grid.Row="0"
Grid.Column="2"
VerticalOptions="CenterAndExpand" VerticalTextAlignment="Center"
Text="{Binding Mapel}"/>
</Grid>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
</ScrollView>
</Grid>
</ContentPage.Content>
</ContentPage>
Kesembilan, Buat halaman xaml dengan nama AccountSiswaPage.Xaml untuk menampilkan halaman Akun Siswa dengan tambahkan kode berikut:
<?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="EduFabel.AccountSiswaPage"
Title="Detail Akun"
BackgroundColor="#e5e5e5">
<ContentPage.Content>
<Grid x:Name="gvAccount">
<ScrollView>
<StackLayout BackgroundColor="White" HorizontalOptions="StartAndExpand" Orientation="Vertical"
Margin="10,10,10,10" Padding="20,20,20,20" HeightRequest="760" WidthRequest="600" >
<Label Text="Ubah Detail Akun
" FontAttributes="Bold" TextColor="Black"
FontSize="Large" HorizontalOptions="CenterAndExpand" />
<ActivityIndicator
HorizontalOptions="Center"
VerticalOptions="Center"
IsVisible="False"
IsEnabled="True"
x:Name="syncIndicator"/>
<ListView x:Name="listViewAccountSiswa" ItemTapped="ListView_OnItemTapped" RowHeight="760"
SeparatorVisibility="None"
IsPullToRefreshEnabled="True" Refreshing="ListView_OnRefreshing">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Grid x:Name="gvAccount">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="4.5*" />
<ColumnDefinition Width="0.5*" />
<ColumnDefinition Width="5*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="40"/>
<RowDefinition Height="40"/>
<RowDefinition Height="40"/>
<RowDefinition Height="40"/>
<RowDefinition Height="40"/>
<RowDefinition Height="40"/>
<RowDefinition Height="40"/>
<RowDefinition Height="40"/>
<RowDefinition Height="40"/>
<RowDefinition Height="40"/>
<RowDefinition Height="40"/>
</Grid.RowDefinitions>
<Label Text="Nama Lengkap" HorizontalOptions="Start"
FontSize="14" FontAttributes="Bold" TextColor="Red">
</Label>
<Label Text=":" FontSize="Medium" TextColor="Black" Grid.Row="0" Grid.Column="1" />
<Label HorizontalOptions="Start" Grid.Row="0" Grid.Column="2"
Text="{Binding Namalengkap}" FontSize="14" TextColor="Black" />
<Label Text="Jenis Kelamin" HorizontalOptions="Start" Grid.Row="1"
Grid.Column="0" FontSize="14" FontAttributes="Bold" TextColor="Red">
</Label>
<Label Text=":" FontSize="Medium" TextColor="Black" Grid.Row="1" Grid.Column="1" />
<Label HorizontalOptions="Start" Grid.Row="1" Grid.Column="2"
Text="{Binding Jeniskelamin}" FontSize="14" TextColor="Black" />
<Label Text="Jenis Difabel" HorizontalOptions="Start" Grid.Row="2"
Grid.Column="0" FontSize="14" FontAttributes="Bold" TextColor="Red">
</Label>
<Label Text=":" FontSize="Medium" TextColor="Black" Grid.Row="2" Grid.Column="1" />
<Label HorizontalOptions="Start" Grid.Row="2" Grid.Column="2"
Text="{Binding Jenisdifabel}" FontSize="14" TextColor="Black" />
<Label Text="No HP" HorizontalOptions="Start" Grid.Row="3" Grid.Column="0"
FontSize="14" FontAttributes="Bold" TextColor="Red">
</Label>
<Label Text=":" FontSize="Medium" TextColor="Black" Grid.Row="3" Grid.Column="1" />
<Label HorizontalOptions="Start" Grid.Row="3" Grid.Column="2"
Text="{Binding Nohp}" FontSize="14" TextColor="Black" />
<Label Text="Email" HorizontalOptions="Start" Grid.Row="4" Grid.Column="0"
FontSize="14" FontAttributes="Bold" TextColor="Red">
</Label>
<Label Text=":" FontSize="Medium" TextColor="Black" Grid.Row="4" Grid.Column="1" />
<Label HorizontalOptions="Start" Text="{Binding Email}" Grid.Row="4" Grid.Column="2"
FontSize="14" TextColor="Black" />
<Label Text="Alamat" HorizontalOptions="Start" Grid.Row="5" Grid.Column="0"
FontSize="14" FontAttributes="Bold" TextColor="Red">
</Label>
<Label Text=":" FontSize="Medium" TextColor="Black" Grid.Row="5" Grid.Column="1" />
<Label HorizontalOptions="Start" Grid.Row="5" Grid.Column="2"
Text="{Binding Alamat}" FontSize="14" TextColor="Black" />
<Label Text="Provinsi" HorizontalOptions="Start" Grid.Row="6" Grid.Column="0"
FontSize="14" FontAttributes="Bold" TextColor="Red">
</Label>
<Label Text=":" FontSize="Medium" TextColor="Black" Grid.Row="6" Grid.Column="1" />
<Label HorizontalOptions="Start" Grid.Row="6" Grid.Column="2"
Text="{Binding Provinsi}" FontSize="14" TextColor="Black" />
<Label Text="Kota" HorizontalOptions="Start" Grid.Row="7" Grid.Column="0"
FontSize="14" FontAttributes="Bold" TextColor="Red">
</Label>
<Label Text=":" FontSize="Medium" TextColor="Black" Grid.Row="7" Grid.Column="1" />
<Label HorizontalOptions="Start" Grid.Row="7" Grid.Column="2"
Text="{Binding Kota}" FontSize="14" TextColor="Black" />
<Label Text="Kelas" HorizontalOptions="Start" Grid.Row="8" Grid.Column="0"
FontSize="14" FontAttributes="Bold" TextColor="Red">
</Label>
<Label Text=":" FontSize="Medium" TextColor="Black" Grid.Row="8" Grid.Column="1" />
<Label HorizontalOptions="Start" Grid.Row="8" Grid.Column="2"
Text="{Binding Kelas}" FontSize="14" TextColor="Black" />
<Label Text="Sekolah atau Instansi" HorizontalOptions="Start" Grid.Row="9" Grid.Column="0"
FontSize="14" FontAttributes="Bold" TextColor="Red">
</Label>
<Label Text=":" FontSize="Medium" TextColor="Black" Grid.Row="9" Grid.Column="1" />
<Label HorizontalOptions="Start" Grid.Row="9" Grid.Column="2"
Text="{Binding Sekolah}" FontSize="14" TextColor="Black" />
</Grid>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
</ScrollView>
</Grid>
</ContentPage.Content>
</ContentPage>
Setelah selesai buat beberapa halaman pada master page, sekarang tambahkan kode berikut pada file App.cs untuk menjalankan halaman MainPage ketika applikasi dijalankan pertama kali.
public App ()
{
MainPage = new EduFabel.MainPage();
}
Tekan F5 atau Jalankan pada device anda. hasil tampilan ketika project MainPage.xaml dijalankan dapat dilihat pada gambar berikut:
Membuat Account Siswa Page EduFabel
Pertama, Tambahkan halaman xaml dengan nama TabAcountPage.xml. Kemudian tambahkan kode berikut dibawah ini:
<?xml version="1.0" encoding="utf-8" ?>
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:EduFabel;"
x:Class="EduFabel.TabAccountPage"
Title="Account">
<local:UpdateDetailAkunPage />
<local:UbahPasswordSiswaPage />
</TabbedPage>
Kedua, Pada file class TabAccountPage.xaml.cs tambahkan kode berikut dibawah ini.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
namespace EduFabel
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class TabAccountPage : TabbedPage
{
public TabAccountPage()
{
InitializeComponent();
}
}
}
Ketiga, Tambahkan halaman xaml dengan nama UpdateDetailAkunPage.xaml. kemudian tambahkan kode berikut ini:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="EduFabel.UpdateDetailAkunPage"
xmlns:local="clr-namespace:EduFabel;"
Title="Ubah Detail Akun">
<Grid x:Name="gvUbahAkun">
<ScrollView>
<StackLayout VerticalOptions="FillAndExpand" Orientation="Vertical"
HorizontalOptions="FillAndExpand"
Padding="20,10,20,5">
<Label Text="
Nama Lengkap" />
<Entry x:Name="namalengkapEntry" Text="{Binding Namalengkap}" Keyboard="Text" Placeholder="Nama Lengkap" />
<Label Text="Jenis Kelamin" />
<Picker Title="Pilih Jenis Kelamin" SelectedItem="{Binding Jeniskelamin, Mode=TwoWay}"
x:Name="jeniskelaminEntry" VerticalOptions="Center">
<Picker.Items>
<x:String>Laki-laki</x:String>
<x:String>Perempuan</x:String>
</Picker.Items>
</Picker>
<Label Text="Jenis Disablitas" />
<Picker Title="Pilih Kelas" SelectedItem="{Binding Jenisdifabel, Mode=TwoWay}"
x:Name="jenisdifabelEntry" VerticalOptions="Center">
<Picker.Items>
<x:String>Tunanetra</x:String>
<x:String>Tunarungu</x:String>
<x:String>Tunadaksa</x:String>
<x:String>Tunalaras</x:String>
<x:String>Tunagrahita</x:String>
<x:String>Tunadaksa</x:String>
<x:String>Tunaganda</x:String>
</Picker.Items>
</Picker>
<Label Text="Nomor Handphone" />
<Entry x:Name="nohpEntry" Text="{Binding Nohp}" Keyboard="Telephone" Placeholder="NO HP" />
<Label Text="Alamat" />
<Entry x:Name="alamatEntry" Text="{Binding Alamat}" Placeholder="Alamat" Keyboard="Text" />
<Label Text="Provinsi" />
<Entry x:Name="provinsiEntry" Text="{Binding Provinsi}" Placeholder="Provinsi" Keyboard="Text" />
<Label Text="Kota" />
<Entry x:Name="kotaEntry" Text="{Binding Kota}" Placeholder="Kota" Keyboard="Text" />
<Label Text="Kelas" />
<Picker Title="Pilih Kelas" SelectedItem="{Binding Kelas, Mode=TwoWay}"
x:Name="kelasEntry" VerticalOptions="Center">
<Picker.Items>
<x:String>Kelas TK/PAUD</x:String>
<x:String>Kelas I</x:String>
<x:String>Kelas II</x:String>
<x:String>Kelas III</x:String>
<x:String>Kelas IV</x:String>
<x:String>Kelas V</x:String>
<x:String>Kelas VI</x:String>
<x:String>Kelas VII</x:String>
<x:String>Kelas VIII</x:String>
<x:String>Kelas IX</x:String>
<x:String>Kelas X</x:String>
<x:String>Kelas XI IPA</x:String>
<x:String>Kelas XI IPS</x:String>
<x:String>Kelas XII IPA</x:String>
<x:String>Kelas XII IPS</x:String>
<x:String>Diploma</x:String>
<x:String>S1</x:String>
<x:String>S2</x:String>
<x:String>S3</x:String>
<x:String>Umum</x:String>
</Picker.Items>
</Picker>
<Label Text="Sekolah atau Institusi" />
<Entry x:Name="sekolahEntry" Text="{Binding Sekolah}" Placeholder="Sekolah atau Institusi" />
<Button BorderRadius="50" Text="Save"
FontSize="Small" FontAttributes="Bold" TextColor="White" BackgroundColor="Red"
HeightRequest="55"/>
<Label x:Name="messageLabel" />
</StackLayout>
</ScrollView>
</Grid>
</ContentPage>
Keempat, Tambahkan halaman xaml dengan nama UpdatePasswordSiswaPage.xaml. kemudian tambahkan kode berikut ini:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="EduFabel.UbahPasswordSiswaPage"
Title="Ubah Password"
>
<ContentPage.Content>
<Grid x:Name="gvUser">
<ScrollView>
<StackLayout VerticalOptions="StartAndExpand"
Padding="20,10,20,5">
<Label Text="
Password Baru" />
<Entry x:Name="passwordEntry"
Placeholder="Masukkan Password Baru" Text="{Binding Password}" IsPassword="True" />
<Label Text="Ulang Password Baru" />
<Entry x:Name="repasswordEntry" IsPassword="True"
Placeholder="Masukkan Ulang Password Baru" Keyboard="Text" />
<Button BorderRadius="50" Text="Save"
FontSize="Small" FontAttributes="Bold" TextColor="White" BackgroundColor="Red"
HeightRequest="55"/>
<Label x:Name="messageLabel" />
</StackLayout>
</ScrollView>
</Grid>
</ContentPage.Content>
</ContentPage>
Setelah selesai buat beberapa halaman pada tab page, sekarang tambahkan kode berikut pada file App.cs untuk menjalankan halaman TabAccountPage ketika applikasi dijalankan pertama kali.
public App ()
{
MainPage = new EduFabel.TabAccountPage();
}
Tekan F5 atau Jalankan pada device anda. hasil tampilan ketika project TabAccountPage.xaml dijalankan dapat dilihat pada gambar berikut:
Yups, pembahasan singkat diatas merupakan bagian dari User InterFace (UI) meliputi Navigasi Master Page dan Tab Page yang berfungsi pengguna melakukan pindah antar halaman. Jadi, anda sudah tahu kan bagaimana menghubungkan antar halaman menjadi interaktif? Okay, Semoga anda bisa mencobanya di project lain..
Azure Mobile App
Baik.. sebelumnya tadi sudah membahas bagian UI (User Interface) biasa disebut juga dengan Front End, dalam pembahasan selanjutnya saya akan membahas bagian Back end. Fungsi Back end digunakan bagaimana mengelola data atau melakukan aksi seperti menyimpan, mengupdate, mengambil data, dan menghapus. Bagi kalian kesulitan memanage back end secara manual, anda tidak perlu khawatir karena Microsoft menyediakan layanan Azure Mobile App dikhususkan untuk para pengembang aplikasi mobile yang bekerja dengan data.
Jadi, Azure Mobile App merupakan layanan backend services untuk mendukung aplikasi mobile berbasis infrastruktur cloud. Fitur yang disediakan meliputi Easy Table, Autentikasi, Push Services, dan juga kemampuan sinkronisasi secara offline (offline data sysnc). Cukup lengkap bukan ? Pasti anda tidak rugi dong memakai produknya Microsoft Azure 🙂 Karena Azure mengutamakan layanan kualitas keamanan mulai back up data hinga recovery manager.
Bagaimana Menggunakan Layanan Azure Mobile ?
Pastikan anda sudah mempunyai account microsoft, jika belum silahkan register disini.
Selanjutnya, pastikan anda sudah mempunyai code Microsoft Imagine, untuk langkah -langkah mengaktifkan anda bisa melihat di link berikut : aktivasi microsoft imagine dengan menggunakan verification code dan Bagaimana mengaktifkan azure dari microsoft imagine.
- Masuk ke dalam portal Microsoft Azure (portal.azure.com). Kemudian pilih layanan Mobile Apps Quickstart.
- Tekan tombol Create untuk membuat layanan Mobile Apps Quickstart.
- Input nama Services, saya menggunakan nama edudifabel sesuai project yang saya buat. (anda tidak dapat menggunakan nama yang sudah digunakan)
- Pilih Subscription Microsoft Imagine / Dreamspark
- Buat Resource Group seperti Xamarin digunakan untuk mengelompokkan layanan yang ada di azure
- Pilih Location App Service (Southest Asia)
- Pilih tombol Create untuk membuat layanan
- Setelah berhasil membuat layanan tersebut, masuk Mobile App. Kemudian pilih fitur yaitu Easy tables untuk membuat table.
- Kemudian create table Order
- Untuk membuat kolom Order, Pilih Manage Schema kemudian Add a column.
Setelah selesai membuat Table dan Kolom, anda bisa menghubungan Project Xamarin dengan Azure.
Bagaimana Project Xamarin terhubung dengan Azure Mobile (dengan menampilkan listview) ?
Pastikan Package Microsoft Azure Mobile Client dan Newtonsoft Json sudah terinstall di project anda.
Pada contoh project yang telah saya buat yaitu EduFabel (Aplikasi Layanan Pesan Les Privat Disabilitas). Pembahasan kali ini mengambil beberapa contoh project pada halaman class OrderPage dan ListGuruPage. Pada halaman class ListGuruPage menggunakan kontrol interaktif ListView untuk menampilkan data daftar guru.
- Pertama Buat Class Barang pada project portable yang sesuai nama tabel di Easy Table di Azure. Kemudian tambahkan kode sebagai berikut:
using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
using Microsoft.WindowsAzure.MobileServices;
using Newtonsoft.Json;
namespace EduFabel.Models
{
public class Order
{
private string _id;
[JsonProperty(PropertyName = "id")]
public string Id
{
get { return _id; }
set { _id = value; }
}
private string _namalengkap;
[JsonProperty(PropertyName = "namalengkap")]
public string Namalengkap
{
get { return _namalengkap; }
set { _namalengkap = value; }
}
private string _nohp;
[JsonProperty(PropertyName = "nohp")]
public string Nohp
{
get { return _nohp; }
set { _nohp = value; }
}
private string _jenisdifabel;
[JsonProperty(PropertyName = "jenisdifabel")]
public string Jenisdifabel
{
get { return _jenisdifabel; }
set { _jenisdifabel = value; }
}
private string _email;
[JsonProperty(PropertyName = "email")]
public string Email
{
get { return _email; }
set { _email = value; }
}
private string _alamat;
[JsonProperty(PropertyName = "alamat")]
public string Alamat
{
get { return _alamat; }
set { _alamat = value; }
}
private string _kota;
[JsonProperty(PropertyName = "kota")]
public string Kota
{
get { return _kota; }
set { _kota = value; }
}
private string _kelas;
[JsonProperty(PropertyName = "kelas")]
public string Kelas
{
get { return _kelas; }
set { _kelas = value; }
}
private string _mapel;
[JsonProperty(PropertyName = "mapel")]
public string Mapel
{
get { return _mapel; }
set { _mapel = value; }
}
private string _guru;
[JsonProperty(PropertyName = "guru")]
public string Guru
{
get { return _guru; }
set { _guru = value; }
}
private string _jumlahjam;
[JsonProperty(PropertyName = "jumlahjam")]
public string Jumlahjam
{
get { return _jumlahjam; }
set { _jumlahjam = value; }
}
private string _mulaibelajar;
[JsonProperty(PropertyName = "mulaibelajar")]
public string Mulaibelajar
{
get { return _mulaibelajar; }
set { _mulaibelajar = value; }
}
private string _jumlahbayar;
[JsonProperty(PropertyName = "jumlahbayar")]
public string Jumlahbayar
{
get { return _jumlahbayar; }
set { _jumlahbayar = value; }
}
private bool _status;
[JsonProperty(PropertyName = "status")]
public bool Status
{
get { return _status; }
set { _status = value; }
}
[Version]
public string Version { get; set; }
}
}
- Kemudian buat koneksi dengan nama constrants.cs yang digunakan untuk menyimpan url dari web service azure yang diakses dari mobile apps.
using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
namespace EduFabel
{
public static class Constants
{
public static string ApplicationURL = @"https://edudifabel.azurewebsites.net";
}
}
- Tambahkan class OrderManager.cs pada project portable, tambahkan method digunakan untuk mengambil data, menambah, mengupdate, dan menghapus data dari Mobile App services.
using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.WindowsAzure.MobileServices;
using System.Diagnostics;
using System.Collections.ObjectModel;
using EduFabel;
namespace EduFabel.Models
{
public class OrderManager
{
private IMobileServiceTable<Order> _orderTable;
public OrderManager()
{
var client = new MobileServiceClient(Constants.ApplicationURL);
_orderTable = client.GetTable<Order>();
}
public async Task<ObservableCollection<Order>> GetOrderGuruAsync(string sessionEmail)
{
try
{
IEnumerable<Order> orders = await _orderTable.Where(t => t.Guru == sessionEmail)
.ToEnumerableAsync();
return new ObservableCollection<Order>(orders);
}
catch (MobileServiceInvalidOperationException msioe)
{
Debug.WriteLine("@Invalid sync operation: {0}", msioe.Message);
}
catch (Exception e)
{
Debug.WriteLine(@"Sync error: {0}", e.Message);
}
return null;
}
public async Task<ObservableCollection<Order>> GetOrderSiswaAsync(string sessionEmail)
{
try
{
IEnumerable<Order> orders = await _orderTable.Where(t => t.Email == sessionEmail)
.ToEnumerableAsync();
return new ObservableCollection<Order>(orders);
}
catch (MobileServiceInvalidOperationException msioe)
{
Debug.WriteLine("@Invalid sync operation: {0}", msioe.Message);
}
catch (Exception e)
{
Debug.WriteLine(@"Sync error: {0}", e.Message);
}
return null;
}
public async Task SaveTaskAsync(Order order)
{
if (order.Id == null)
{
await _orderTable.InsertAsync(order);
}
else
{
await _orderTable.UpdateAsync(order);
}
}
public async Task DeleteTaskAsync(Order order)
{
if (order.Id != null)
{
await _orderTable.DeleteAsync(order);
}
}
}
}
- Tambahkan class dengan nama ActivityIndicatorScope.cs. Class ini digunakan untuk memuat ulang pada saat aplikasi mengambil data dari services.
using System;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace SampleMobileAzure
{
public class ActivityIndicatorScope : IDisposable
{
private bool _showIndicator;
private ActivityIndicator _indicator;
private Task _indicatorDelay;
public ActivityIndicatorScope(ActivityIndicator indicator, bool showIndicator)
{
_indicator = indicator;
_showIndicator = showIndicator;
if (showIndicator)
{
_indicatorDelay = Task.Delay(2000);
SetIndicatorActivity(true);
}
else
{
_indicatorDelay = Task.FromResult(0);
}
}
private void SetIndicatorActivity(bool isActive)
{
_indicator.IsVisible = isActive;
_indicator.IsRunning = isActive;
}
public void Dispose()
{
if (_showIndicator)
{
_indicatorDelay.ContinueWith(t => SetIndicatorActivity(false),
TaskScheduler.FromCurrentSynchronizationContext());
}
}
}
}
- Tambahkan halaman xaml dengan nama OrderPage.xaml pada project portable beserta kode berikut dibawah ini. Halaman ini digunakan untuk menambah input data order guru.
<?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="EduFabel.OrderPage"
xmlns:local="clr-namespace:EduFabel;"
Title="Order Guru"
BackgroundColor="#e5e5e5">
<ContentPage.Content>
<ScrollView>
<StackLayout BackgroundColor="White" Orientation="Vertical" VerticalOptions="FillAndExpand"
Margin="10,10,10,10" Padding="20,20,20,20" HeightRequest="760" WidthRequest="500" >
<Label Text="Pesan Guru Les Privat
" FontAttributes="Bold" TextColor="Black"
FontSize="Large" HorizontalOptions="CenterAndExpand" />
<Grid x:Name="gvOrder">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="3*" />
<ColumnDefinition Width="0.5*" />
<ColumnDefinition Width="6.5*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Label Text="Nama Lengkap" FontSize="14" TextColor="Black" />
<Label Text=":" FontSize="14" TextColor="Black" Grid.Row="0" Grid.Column="1" />
<Entry x:Name="namalengkapEntry" Keyboard="Text" Grid.Row="0" Grid.Column="2"
Placeholder="Nama Lengkap" />
<Label Text="Jenis Disablitas" FontSize="14" TextColor="Black" Grid.Row="1" Grid.Column="0" />
<Label Text=":" FontSize="14" TextColor="Black" Grid.Row="1" Grid.Column="1" />
<Picker Title="Pilih Jenis Disabilitas" Grid.Row="1" Grid.Column="2"
x:Name="jenisdifabelEntry" VerticalOptions="Center">
<Picker.Items>
<x:String>Tunanetra</x:String>
<x:String>Tunarungu</x:String>
<x:String>Tunadaksa</x:String>
<x:String>Tunalaras</x:String>
<x:String>Tunagrahita</x:String>
<x:String>Tunadaksa</x:String>
<x:String>Tunaganda</x:String>
</Picker.Items>
</Picker>
<Label Text="Nomor Handphone" FontSize="14" TextColor="Black" Grid.Row="2"
Grid.Column="0" />
<Label Text=":" FontSize="14" TextColor="Black" Grid.Row="2" Grid.Column="1" />
<Entry x:Name="nohpEntry" Keyboard="Telephone" Grid.Row="2"
Grid.Column="2" Placeholder="No HP" />
<Label Text="Alamat" FontSize="14" TextColor="Black" Grid.Row="3"
Grid.Column="0" />
<Label Text=":" FontSize="14" TextColor="Black" Grid.Row="3" Grid.Column="1" />
<Entry x:Name="alamatEntry" Grid.Row="3"
Grid.Column="2" Placeholder="Alamat" Keyboard="Text" />
<Label Text="Kota" TextColor="Black" FontSize="14" Grid.Row="4"
Grid.Column="0" />
<Label Text=":" FontSize="14" TextColor="Black" Grid.Row="4" Grid.Column="1" />
<Entry x:Name="kotaEntry" Grid.Row="4"
Grid.Column="2" Placeholder="Kota" Keyboard="Text" />
<Label Text="Kelas" Grid.Row="5" FontSize="14"
Grid.Column="0" TextColor="Black" />
<Label Text=":" FontSize="14" TextColor="Black" Grid.Row="5" Grid.Column="1" />
<Picker Title="Pilih Kelas" Grid.Row="5"
Grid.Column="2"
x:Name="kelasEntry" VerticalOptions="Center">
<Picker.Items>
<x:String>Kelas TK/PAUD</x:String>
<x:String>Kelas I</x:String>
<x:String>Kelas II</x:String>
<x:String>Kelas III</x:String>
<x:String>Kelas IV</x:String>
<x:String>Kelas V</x:String>
<x:String>Kelas VI</x:String>
<x:String>Kelas VII</x:String>
<x:String>Kelas VIII</x:String>
<x:String>Kelas IX</x:String>
<x:String>Kelas X</x:String>
<x:String>Kelas XI IPA</x:String>
<x:String>Kelas XI IPS</x:String>
<x:String>Kelas XII IPA</x:String>
<x:String>Kelas XII IPS</x:String>
<x:String>Diploma</x:String>
<x:String>S1</x:String>
<x:String>S2</x:String>
<x:String>S3</x:String>
<x:String>Umum</x:String>
</Picker.Items>
</Picker>
<Label Text="Mata Pelajaran" FontSize="14" TextColor="Black" Grid.Row="6"
Grid.Column="0" />
<Label Text=":" FontSize="14" TextColor="Black" Grid.Row="6" Grid.Column="1" />
<Picker Title="Pilih Mata Pelajaran" Grid.Row="6" Grid.Column="2"
x:Name="mapelEntry" VerticalOptions="Center">
<Picker.Items>
<x:String>Matematika</x:String>
<x:String>Bahasa Inggris</x:String>
<x:String>Bahasa Indonesia</x:String>
<x:String>IPA</x:String>
<x:String>IPS</x:String>
<x:String>Biologi</x:String>
<x:String>Fisika</x:String>
<x:String>Kimia</x:String>
<x:String>Ekonomi</x:String>
<x:String>Geografi</x:String>
<x:String>Sejarah</x:String>
<x:String>PKN</x:String>
</Picker.Items>
</Picker>
<Label Text="Mulai Belajar" FontSize="14" TextColor="Black" Grid.Row="7"
Grid.Column="0" />
<Label Text=":" FontSize="14" TextColor="Black" Grid.Row="7" Grid.Column="1" />
<DatePicker x:Name="mulaibelajarEntry" Grid.Row="7" Grid.Column="2"
VerticalOptions="CenterAndExpand" MinimumDate="01/01/1990"
MaximumDate="12/31/2030" />
<Label Text="Jumlah Jam" FontSize="14" TextColor="Black" Grid.Row="8"
Grid.Column="0" />
<Label Text=":" FontSize="14" TextColor="Black" Grid.Row="8" Grid.Column="1" />
<Entry x:Name="jumlahjamEntry" Grid.Row="8"
Grid.Column="2" Keyboard="Numeric" Placeholder="Jumlah Jam" />
<Label Text="Email Guru" TextColor="Black" FontSize="14" Grid.Row="9"
Grid.Column="0" />
<Label Text=":" FontSize="14" TextColor="Black" Grid.Row="9" Grid.Column="1" />
<Picker x:Name="guruEntry" Grid.Row="9"
Grid.Column="2" ItemDisplayBinding="{Binding Email}" Title="Pilih Email Guru"
/>
</Grid>
<Button Margin="0,10,0,0" Text="KIRIM" Clicked="OnOrderButtonClicked"
FontSize="Small" FontAttributes="Bold" TextColor="White" BackgroundColor="Red"
/>
<Label Text="*Tarif Les Privat Rp 30.000 / Jam" TextColor="Red" FontAttributes="Bold" />
<Label x:Name="messageLabel" />
</StackLayout>
</ScrollView>
</ContentPage.Content>
</ContentPage>
- Kemudian tambahkan kode c# pada file OrderPage.xaml.cs untuk menambah input data order guru
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
using EduFabel.Models;
namespace EduFabel
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class OrderPage : ContentPage
{
private OrderManager _orderManager = new OrderManager();
private GuruManager _guruManager = new GuruManager();
private UserManager _userManager = new UserManager();
public static string sessionEmail { get; set; }
public OrderPage()
{
InitializeComponent();
}
protected override async void OnAppearing()
{
base.OnAppearing();
await RefreshItems();
}
private async Task RefreshItems()
{
guruEntry.ItemsSource = await _guruManager.GetAllGuruAsync();
namalengkapEntry.Text = await _userManager.GetNamaUserAsync(sessionEmail);
}
private void ClearAll()
{
foreach (var ctr in gvOrder.Children)
{
if (ctr is Entry)
{
var item = ctr as Entry;
item.Text = string.Empty;
}
}
}
private async void OnOrderButtonClicked(object sender, EventArgs e)
{
int tarif = 30000;
int jam = Convert.ToInt32(jumlahjamEntry.Text);
var order = new Order()
{
Namalengkap = namalengkapEntry.Text,
Email = sessionEmail,
Jenisdifabel = Convert.ToString(jenisdifabelEntry.SelectedItem),
Nohp = Convert.ToString(nohpEntry.Text),
Alamat = alamatEntry.Text,
Kota = kotaEntry.Text,
Kelas = Convert.ToString(kelasEntry.SelectedItem),
Mapel = Convert.ToString(mapelEntry.SelectedItem),
Guru = Convert.ToString(guruEntry.Items[guruEntry.SelectedIndex]),
Jumlahjam = jumlahjamEntry.Text,
Mulaibelajar = mulaibelajarEntry.Date.ToString("dd-MM-yyyy"),
Jumlahbayar = Convert.ToString(tarif * jam)
};
var orderSucceeded = AreDetailsValid(order);
if (orderSucceeded)
{
var rootPage = Navigation.NavigationStack.FirstOrDefault();
if (rootPage != null)
{
await _orderManager.SaveTaskAsync(order);
ClearAll();
await DisplayAlert("Success", "Pesan Guru Privat telah berhasil !", "OK");
Navigation.InsertPageBefore(new HistorySiswaPage(), Navigation.NavigationStack.First());
await Navigation.PopToRootAsync();
}
}
else
{
messageLabel.Text = "Order gagal, Field harap diisi semua!";
}
}
bool AreDetailsValid(Order order)
{
return (!string.IsNullOrWhiteSpace(order.Namalengkap) && !string.IsNullOrWhiteSpace(order.Jenisdifabel) && !string.IsNullOrWhiteSpace(order.Jenisdifabel) && !string.IsNullOrWhiteSpace(order.Nohp) && !string.IsNullOrWhiteSpace(order.Alamat) && !string.IsNullOrWhiteSpace(order.Kota) && !string.IsNullOrWhiteSpace(order.Mapel) && !string.IsNullOrWhiteSpace(order.Guru) && !string.IsNullOrWhiteSpace(order.Jumlahjam) && !string.IsNullOrWhiteSpace(order.Mulaibelajar) && !string.IsNullOrWhiteSpace(order.Guru) && !string.IsNullOrWhiteSpace(order.Email) && order.Email.Contains("@"));
}
}
}
- Tambahkan halaman xaml baru dengan nama ListGuruPage.xaml. Beserta kode berikut dibawah ini. Halaman tersebut digunakan untuk menampilkan data order guru pada kontrol Listview.
-
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="EduFabel.ListGuruPage"
xmlns:local="clr-namespace:EduFabel;"
Title="List Guru">
<ContentPage.Content>
<Grid x:Name="gvAccount">
<ActivityIndicator
HorizontalOptions="Center"
VerticalOptions="Center"
IsVisible="False"
IsEnabled="True"
x:Name="syncIndicator"/>
<ScrollView>
<StackLayout Margin="30,10,30,10">
<ListView x:Name="listViewListGuru" ItemTapped="ListView_OnItemTapped"
IsPullToRefreshEnabled="True" Refreshing="ListView_OnRefreshing" RowHeight="100">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Grid x:Name="gvAccount">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="3.5*" />
<ColumnDefinition Width="3.5*" />
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Label HorizontalOptions="Start" TextColor="Red" FontSize="14"
FontAttributes="Bold" VerticalTextAlignment="Center" Grid.Row="0" Grid.Column="0"
Text="{Binding Namalengkap}"/>
<Label HorizontalOptions="Start" FontSize="12" TextColor="Black" Grid.Row="1"
Grid.Column="0"
VerticalTextAlignment="Center"
Text="{Binding Nohp}"/>
<Label HorizontalOptions="Start" TextColor="Red" FontSize="14" FontAttributes="Bold" VerticalTextAlignment="Center"
Text="{Binding Kota}" Grid.Row="0" Grid.Column="1" />
<Label HorizontalOptions="Start" FontSize="12" TextColor="Black"
VerticalTextAlignment="Center" Grid.Row="1"
Grid.Column="1"
Text="{Binding Email}"/>
<Label HorizontalOptions="Start" FontSize="14" TextColor="Black" Grid.Row="0"
Grid.Column="2"
VerticalOptions="CenterAndExpand" VerticalTextAlignment="Center"
Text="{Binding Mapel}"/>
</Grid>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
</ScrollView>
</Grid>
</ContentPage.Content>
</ContentPage>
Kemudian tambahkan kode c# pada file ListGuruPage.xaml.cs.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
using EduFabel.Models;
namespace EduFabel
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class ListGuruPage : ContentPage
{
private GuruManager _guruManager = new GuruManager();
public ListGuruPage()
{
InitializeComponent();
}
protected override async void OnAppearing()
{
base.OnAppearing();
await RefreshItems(true);
}
private async Task RefreshItems(bool showActivityIndicator)
{
using (var scope = new ActivityIndicatorScope(syncIndicator, showActivityIndicator))
{
listViewListGuru.ItemsSource = await _guruManager.GetAllGuruAsync();
}
}
private async void ListView_OnItemTapped(object sender, ItemTappedEventArgs e)
{
DetailListGuruPage ListGuruPage = new DetailListGuruPage();
Guru item = (Guru)e.Item;
ListGuruPage.BindingContext = item;
((ListView)sender).SelectedItem = null;
await Navigation.PushAsync(ListGuruPage);
}
private async void ListView_OnRefreshing(object sender, EventArgs e)
{
var list = (ListView)sender;
Exception error = null;
try
{
await RefreshItems(false);
}
catch (Exception ex)
{
error = ex;
}
finally
{
list.EndRefresh();
}
if (error != null)
{
await DisplayAlert("Refresh Error !", "Couldn't refresh data (" + error.Message + ")", "OK");
}
}
}
}
Hasil tampilan ketika project OrderPage.xaml dijalankan dapat dilihat pada gambar berikut:
Hasil tampilan ketika project ListGuruPage.xaml dijalankan dapat dilihat pada gambar berikut:
Bagaimana dengan pembahasan diatas ? cukup mudah bukan ? Semoga anda bisa mencoba yaa di project anda sendiri. Mulai mengkombinasikan User Interface Xamarin Forms hingga menghubungkan dengan Azure. Semoga anda menjadi pengembang aplikasi mobile yang hebatt. Lantas, Apakah cukup hanya sampai ini ?
Ohh tentu tidakk, pasti aplikasi anda buat ingin dong dicoba semua orang yaa kan? apalagi nanti publish di play store ? Pasti Jadi kebanggan sendiri kalau aplikasinya dicoba semua orang. Untuk pembahasan selanjutnya bagaimana membuat file .apk di Xamarin Forms ?
Bagaimana sih membuat file APK pada Xamarin Forms?
Langkah – langkah membuat file .apk sebagai berikut:
- Klik kanan pada project Android, kemudian pilih Android Manifesft.
- Lengkapi informasi dari aplikasi anda, seperti gambar dibawah ini:
- Kemudian Save file EduFabel.Android.
- Pada tampilan Android Options – Linker – Pilih SDK Assembly only. Pengaturan ini bertujuan hanya file sdk yang diperlukan saja yang akan ditambahkan pada file .apk.
- Kemudian Klik kanan pada project Android, Pilih Archive.
- Setelah selesai menyiapkan file .apk, silahkan pilih tombol Distribute untuk mendistribusikan .apk yang akan dibuat. Pilih Ad Hoc untuk mendistribusikan .apk tanpa melalui google play.
- Kemudian anda akan diminta membuat sertifikat Android Keystore, masukan data yang dibutuhkan seperti gambar dibawah ini, tekan tombol Create.
- Setelah proses signing identity pada aplikasi yang anda buat, pilih file Edufabel lalu klik tombol Save As.
- Beri nama file .apk misalnya EduFabel.apk
- Kemudian anda akan diminta masukkan password yang anda buat di Android keystore.
- Terakhir anda bisa cek di folder masing – masing pada saat penyimpanan file .apk
Bagaimana dengan pembahasan diatas guys? Apakah anda tertarik untuk mencoba?
Tunggu apa lagi ?? Segera siapkan Xamarin dan Azure di PC anda sekarang juga.
Sekian dari saya, semoga sharing kali ini bermanfaat ya guys..
Bila ada pertanyaan, silahkan comment di post ini atau bisa juga email saya : rizqi.aryansa@gmail.com
Terimakasih yaa guyss..
Regards
Rizqi Aryansa