More Related Content Similar to Programming Basics guide Tizen (20) More from TizenExperts (20) Programming Basics guide Tizen5. Kata Pengantar
Tizen adalah sistem operasi terbuka, efisien dan fleksibel yang dibangun untuk bekerja pada
semua kategori devices. Saat ini Tizen telah menjadi bagian penting pada ekosistem device
manufacture, mobile operators, app developers dan ISV, karena jumlah dan jenis device
yang menggunakan sistem operasi ini terus bertambah, termasuk di Indonesia. Tizen
dirancang untuk memenuhi kebutuhan berbagai jenis industri, seperti automotive IVI (In-
Vehicle Infotainment), mobile, TV dan Wearable. Manufacture dapat memodifikasi Tizen
sesuai dengan kebutuhan, untuk berjalan di atas spesifikasi hardware yang terbatas, seperti
memory, processor dan power. Efisiensi adalah salah satu keunggulan Tizen dibanding
sistem operasi lainnya.
Untuk app developers dan ISV, Tizen menyediakan fasilitas untuk membangun aplikasi
menggunakan native (C/C++) dan web (HTML5/JavaScript) secara produktif. Karena
cakupannya yang luas, developer dapat membuat aplikasi yang terkoneksi antara semua
smart devices, seperti wearables, consumer electronics (TVs, gaming consoles, DVRs, dan
lain-lain), mobil dan IoT appliances. Buku ini akan sangat membantu developers untuk
memulai eksplorasi tentang Tizen sebagai platform development. Dengan gaya penulisan
yang praktikal buku ini dapat mempercepat proses pembelajaran hingga anda dapat
membuat program Tizen pertama menggunakan toolset seperti Tizen IDE, emulator dan
SDK.
Pengembangan aplikasi di Tizen dapat dilakukan dengan pendekatan native (C/C++)
maupun web (HTML5/JavaScript). Dalam buku ini anda akan mencoba pendekatan pertama
menggunakan ANSI C dan Enlightenment Framework Library (EFL) untuk membuat
program kalkulator sederhana. Nantikan buku selanjutnya yang akan mengupas lebih dalam
mengenai EFL objects.
Semoga buku ini membantu eksplorasi Tizen anda.
Risman Adnan, Director, Samsung R&D Indonesia.
Panduan Dasar Pemrograman Tizen
5Kata Pengantar
15. Komponen Rekomendasi
CPU
CPU yang mendukung teknologi Intel® VT-x, suatu teknologi virtualisasi
untuk mengemulasikan atau menjalankan Tizen Emulator. Jika teknologi
ini tidak ada, maka Tizen Emulator akan berjalan dengan sangat lambat.
Resolusi
Layar
1280 x 1024
Kartu
Grafis
Berikut beberapa kartu grafis yang telah dicoba dan dibuktikan berhasil
menjalankan Tizen Emulator:
NVIDIA: GeForce 8300 GS, GeForce 8500 GT, GeForce GT 220,
GeForce GT 430, GeForce GT 530, GeForce GT 330M, GeForce GTX
550Ti, Quadro NVS 290.
ATI: RADEON HD 4850, RADEON HD 5450.
Intel: HD Graphics 2000, HD Graphics 2500, HD Graphics 4000.
Catatan:
Jika komputer yang digunakan untuk membuat aplikasi Tizen
menggunakan teknologi Nvidia Optimus, maka Emulator akan bekerja
dengan menggunakan kartu grafis on-board.
Kartu grafis integrated yang terletak pada motherboard Intel
Q33/Q35/Q43/Q45 tidak mendukung untuk menjalankan emulator Tizen.
Generasi pertama kartu grafis Intel HD juga tidak mendukung untuk
menjalankan emulator.
Driver
Untuk memastikan setiap perangkat keras yang dibutuhkan dapat
berjalan dengan baik, periksa dan install driver-driver untuk tiap-tiap
perangkat keras yang dibutuhkan. Untuk Windows 7/8/10, instalasi dan
update driver bisa dilakukan melalui Control Panel > System and
Security > Windows Update.
Intel® VT-x
Terdapat dua cara untuk memeriksa apakah prosesor yang digunakan mendukung Intel VT-
x.
1. Periksa apakah prosesor yang digunakan mendukung Intel VT-x melalui halaman
http://ark.intel.com/.
2. Unduh dan install perangkat lunak bernama Intel Processor Identification Utility pada
tautan https://downloadcenter.intel.com/download/7838/Intel-Processor-Identification-
Utility-Windows-Version dan pastikan prosesor mendukung Intel VT-x.
Panduan Dasar Pemrograman Tizen
15Persiapan Instalasi
23. Instalasi Tizen SDK
Pada topik ini, kita akan membahas proses instalasi Tizen SDK (Software Development Kit)
pada sistem operasi Windows. Terdapat dua cara untuk menginstalasi Tizen SDK, yaitu GUI
Installer dan CLI Installer. Pada topik ini akan dibahas proses instalasi dengan GUI Installer
yang merupakan proses instalasi paling mudah.
Unduh SDK
Tizen SDK adalah seperangkat alat yang digunakan untuk membuat Aplikasi Tizen Web
dna Tizen Native. Tizen SDK terdiri dari IDE (Integrated Development Environment),
Emulator, toolchain, contoh kode program, and dokumentasi. Aplikasi Tizen dapat dibuat
tanpa harus bergantung pada Tizen IDE, selama aplikasi Tizen mengikuti aturan pada
packaging aplikasi Tizen (Tizen Packaging Rules). Pada saat buku ini dibuat, versi terakhir
Tizen SDK adalah 2.4 Rev 3.
Untuk mengunduh Tizen SDK, pilih file GUI Installer berdasarkan tipe sistem operasi.
Microsoft
Windows
®
Nama File Link
32 Bit
tizen-web-
ide_TizenSDK_2.4.0_Rev3_windows-
32.exe
http://download.tizen.org/sdk/Installer/tizen-
sdk-2.4-rev3/tizen-web-
ide_TizenSDK_2.4.0_Rev3_windows-
32.exe
64 Bit
tizen-web-
ide_TizenSDK_2.4.0_Rev3_windows-
64.exe
http://download.tizen.org/sdk/Installer/tizen-
sdk-2.4-rev3/tizen-web-
ide_TizenSDK_2.4.0_Rev3_windows-
64.exe
GUI Installer
Setelah berhasil mengunduh file installer Tizen SDK, instalasi Tizen SDK dengan cara
double-click pada icon file installer.
Panduan Dasar Pemrograman Tizen
23Instalasi Tizen
47. static bool
app_create(void *data)
{
appdata_s *ad = data;
create_base_gui(ad);
return true;
}
int
main(int argc, char *argv[])
{
appdata_s ad = {0,};
int ret = 0;
ui_app_lifecycle_callback_s event_callback = {0,};
app_event_handler_h handlers[5] = {NULL, };
event_callback.create = app_create;
event_callback.terminate = app_terminate;
event_callback.pause = app_pause;
event_callback.resume = app_resume;
event_callback.app_control = app_control;
ui_app_add_event_handler(&handlers[APP_EVENT_LOW_BATTERY], APP_EVENT_LOW_BATTERY, ui_app_l
ui_app_add_event_handler(&handlers[APP_EVENT_LOW_MEMORY], APP_EVENT_LOW_MEMORY, ui_app_low
ui_app_add_event_handler(&handlers[APP_EVENT_DEVICE_ORIENTATION_CHANGED], APP_EVENT_DEVICE
ui_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED
ui_app_add_event_handler(&handlers[APP_EVENT_REGION_FORMAT_CHANGED], APP_EVENT_REGION_FORM
ret = ui_app_main(argc, argv, &event_callback, &ad);
if (ret != APP_ERROR_NONE)
{
dlog_print(DLOG_ERROR, LOG_TAG, "app_main() is failed. err = %d", ret);
}
return ret;
}
Catatan:
Untuk informasi lainnya tentang Appcore, buka Handling the Application
Fundamentals pada link https://developer.tizen.org/development/tutorials/native-
application/application-framework/application#fundamentals.
3. Membuat objek GUI
Panduan Dasar Pemrograman Tizen
47Hello World Tizen
48. GUI (Graphical User Interface) dibuat pada fungsi create_base_gui(). Fungsi tersebut
menerima sebuah pointer dengan nama ad untuk diisi dengan objek-objek dengan tipe
yang sesuai dengan tipe-tipe yang telah dideklarasikan pada struktur data appdata_s.
Buat fungsi create_base_gui() sebagai fungsi static karena fungsi ini hanya dapat
dicapai dari unit kompilasi saat ini (yang memungkinkan compiler untuk menghasilkan
lebih cepat dan ukuran kode program lebih kecil).
Didalam fungsi create_base_gui(), buat objek window dan buat "Hello World" sebagai
nama dan title dari window. Tambahkan sebuah callback pada event "delete,request".
Callback untuk event "delete,request" ini akan dieksekusi saat objek window akan
ditutup oleh sistem.
static void
create_base_gui(appdata_s *ad)
{
// buat objek window
// simpan objek window yang dibuat kedalam pointer ad->win
ad->win = elm_win_util_standard_add(PACKAGE, PACKAGE);
elm_win_autodel_set(ad->win, EINA_TRUE);
// tambahkan jenis rotasi yang akan didukung pada aplikasi
if (elm_win_wm_rotation_supported_get(ad->win))
{
int rots[4] = { 0, 90, 180, 270 };
elm_win_wm_rotation_available_rotations_set(ad->win, (const int *)(&rots), 4
}
// tambahkan callback untuk event "delete,request".
// callback ini akan dieksekusi saat sistem akan menutup objek window
evas_object_smart_callback_add(ad->win, "delete,request", win_delete_request_cb,
// tambahkan callback untuk event "back key"
// callback ini akan dieksekusi saat user menekan tombol 'back'
eext_object_event_callback_add(ad->win, EEXT_CALLBACK_BACK, win_back_cb, ad);
Selanjutnya kita akan membuat objek conformant dan meletakkannya didalam objek
window. Mulai saat ini, baik container dan component akan diletakkan didalam
conformant.
Panduan Dasar Pemrograman Tizen
48Hello World Tizen
49. // buat objek conformant
// dan jadikan window sebagai parent dari conformant
// simpan object conformant yang dibuat kedalam pointer ad->conform
ad->conform = elm_conformant_add(ad->win);
// buat conformant agar bisa menampilkan phone indicator
elm_win_indicator_mode_set(ad->win, ELM_WIN_INDICATOR_SHOW);
elm_win_indicator_opacity_set(ad->win, ELM_WIN_INDICATOR_OPAQUE);
// buat agar objek conformant menempati semua space yang ada secara vertical dan horizontal
evas_object_size_hint_weight_set(ad->conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
// buat conformant sebagai resize object dari window
// ukuran conformant akan berubah bersamaan dengan ukuran window
elm_win_resize_object_add(ad->win, ad->conform);
// tampilkan objek conformant
// karena semua UI container dan component secara default adalah hidden/collapsed (tersembun
evas_object_show(ad->conform);
Selanjutkan kita akan menambahkan object naviframe kedalam conformant. Naviframe
adalah container sangat berguna untuk aplikasi agar dapat menampilkan beberapa
screen/tampilan secara bergantian. Naviframe memungkinkan untuk menampilkan satu
screen, menganti ke screen lain nya, kembali menampilakan lagi screen pertama, dan
bisa melakukan transisi dengan beberapa screen lain nya.
Pada tutorial ini, hanya akan ada satu screen yang dibuat. Naviframe akan dibuat dan
diletakkan didalam conformant.
// buat objek naviframe, dan jadikan conformant sebagai parent dari naviframe
ad->naviframe = elm_naviframe_add(ad->conform);
// jadikan naviframe sebagai content dari conformant
elm_object_content_set(ad->conform, ad->naviframe);
// tampilkan naviframe
evas_object_show(ad->conform);
Selanjutnya kita akan menambahkan container box, yang dapat menampung
component atau container lainnya secara vertical maupun horizontal. Box adalah
container yang serupa dengan LinearLayout pada Android dan StackPanel pada
Windows Phone. Pada tutorial ini, satu container box akan diletakkan didalam
naviframe.
Panduan Dasar Pemrograman Tizen
49Hello World Tizen
50. // buat objek box dan jadikan naviframe sebagai parent nya
Evas_Object *box = elm_box_add(ad->naviframe);
// set objek box agar menampilan element didalamnya secara vertical
elm_box_horizontal_set(box, EINA_FALSE);
// buat agar box merentang saat content nya membutuhkan lebih banyak space
evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
// buat box agar mengisi space yang ada pada parent
evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
// tambahkan box sebagai container pada naviframe
elm_naviframe_item_push(ad->naviframe, "Hello World", NULL, NULL, box, NULL);
// tampilkan objek box
evas_object_show(box);
Selanjutnya kita akan menambahkan satu objek label yang dapat menampilkan teks
dalam beberapa baris dengan format menggunakan tag HTML.
// buat objek label dan jadikan box sebagai parent dari label
Evas_Object* label = elm_label_add(box);
// Set teks untuk label dan set format yang digunakan dengan tag HTML:
// - teks "Hello World!" diletakkan ditengah pada baris pertama
// - tambahkan satu baris kosong (tag <br>)
// - Tambahkan teks yang lebih panjang yang tidak cukup untuk satu baris,
// teks akan di wrap ke baris berikutnya
elm_object_text_set(label,
"<align=center>Hello World!</align><br>"
"<br>"
"<wrap = word>Clicking on the button below closes the application.</wrap>"
// set agar label dapat merentang saat
// content nya membutuhkan lebih banyak space
evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND,
EVAS_HINT_EXPAND);
// set agar box mengisi space yang tersedia pada horizontal axis dan
// terletak ditengah secara vertical (diletakkan di 0.5 secara vertical,
// atau diletakkan ditengah secara vertical
evas_object_size_hint_align_set(label, EVAS_HINT_FILL, 0.5);
// tambahkan label sebagai element dari box
elm_box_pack_end(box, label);
// tampilkan objek label
evas_object_show(label);
Panduan Dasar Pemrograman Tizen
50Hello World Tizen
51. UI component terakhir yang akan ditambahkan adalah Button. Button ini akan
membuat keluar dari aplikasi saat ditekan.
// buat objek button dan jadikan box sebagai parent
Evas_Object *button = elm_button_add(box);
// button akan merentang saat content nya membutuhkan lebih banyak space
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND,
EVAS_HINT_EXPAND);
// set agar button mengisi space yang tersedia pada horizontal axis dan
// terletak diakhir secara vertical (1 berarti button diletakkan
// diakhir box secara vertical,
// koordinat mulai pada (0, 0) dipojok kiri atas
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, 1);
// set teks 'Close!' sebagai content dari button
elm_object_text_set(button, "Close!");
// Tambahkan sebuah callback pada button untuk event "clicked";
// fungsi callback bernama clicked_cb
evas_object_smart_callback_add(button, "clicked", clicked_cb, NULL);
// tambahkan button sebagai element dari box; karena koordinat dimulai dari pojok kiri atas,
// dan box adalah vertical, button akan berada dibawah label
elm_box_pack_end(box, button);
// tampilkan objek button
evas_object_show(button);
Selanjutnya kita akan membuat window menampilkan semua container dan component
diatasnya pada screen.
/* Tampilkan window setelah semua base gui dibuat */
evas_object_show(ad->win);
}
4. Keluar dari Aplikasi (GUI)
Fungsi callback clicked_cb() harus dibuat agar kita bisa menghentikan/keluar dari
aplikasi saat button ditekan. Fungsi callback untuk button diberikan melaui perintah
evas_object_smart_callback_add(). Letakkan fungsi clicked_cb() diatas fungsi
create_base_gui() karena bahasa pemrograman C tidak dapat memanggil fungsi yang
dideklarasikan setelah/dibawah fungsi pemanggil nya.
Panduan Dasar Pemrograman Tizen
51Hello World Tizen
68. typedef struct appdata
{
Evas_Object *win;
Evas_Object *conform;
Evas_Object *label;
} appdata_s;
Menjadi.
typedef struct appdata
{
const char *name;
Evas_Object *win;
Evas_Object *bg;
Evas_Object *conform;
Evas_Object *entry;
Evas_Object *basic_content;
Evas_Object *advanced_content;
} appdata_s;
Selanjutnya kita membuat fungsi untuk membuat beberapa komponen UI seperti beberapa
tombol pada kalkulator seperti tombol 0,1,2...9 dan tombol +, -, / sejenisnya.
static Evas_Object *
create_bg(Evas_Object *parent)
{
Evas_Object *bg;
if (parent == NULL) return NULL;
bg = elm_bg_add(parent);
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_win_resize_object_add(parent, bg);
evas_object_show(bg);
return bg;
}
static Evas_Object *
create_conform(Evas_Object *parent)
{
Evas_Object *conform, *bg;
if (parent == NULL) return NULL;
conform = elm_conformant_add(parent);
evas_object_size_hint_weight_set(conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_win_resize_object_add(parent, conform);
Panduan Dasar Pemrograman Tizen
68Proyek Tizen Pertamaku
69. bg = elm_bg_add(conform);
elm_object_style_set(bg, "indicator/headerbg");
elm_object_part_content_set(conform, "elm.swallow.indicator_bg", bg);
evas_object_show(bg);
evas_object_show(conform);
return conform;
}
static void
rotation_cb(void *data, Evas_Object *obj, void *event_info)
{
appdata_s *ad = data;
int current_degree = elm_win_rotation_get(obj);
if (current_degree != 0 && current_degree != 180) {
elm_grid_pack_set(ad->basic_content, 45, 3, 52, 94);
elm_grid_pack_set(ad->advanced_content, 3, 3, 36, 94);
} else {
elm_grid_pack_set(ad->basic_content, 3, 3, 94, 94);
elm_grid_pack_set(ad->advanced_content, -100, -100, 94, 94);
}
}
static void
clicked_0_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Evas_Object *entry = data;
elm_entry_entry_append(entry, "<font_size=50>0</font_size>");
}
static void
clicked_1_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Evas_Object *entry = data;
elm_entry_entry_append(entry, "<font_size=50>1</font_size>");
}
static void
clicked_2_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Evas_Object *entry = data;
elm_entry_entry_append(entry, "<font_size=50>2</font_size>");
}
static void
clicked_3_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Evas_Object *entry = data;
elm_entry_entry_append(entry, "<font_size=50>3</font_size>");
}
static void
Panduan Dasar Pemrograman Tizen
69Proyek Tizen Pertamaku
70. clicked_4_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Evas_Object *entry = data;
elm_entry_entry_append(entry, "<font_size=50>4</font_size>");
}
static void
clicked_5_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Evas_Object *entry = data;
elm_entry_entry_append(entry, "<font_size=50>5</font_size>");
}
static void
clicked_6_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Evas_Object *entry = data;
elm_entry_entry_append(entry, "<font_size=50>6</font_size>");
}
static void
clicked_7_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Evas_Object *entry = data;
elm_entry_entry_append(entry, "<font_size=50>7</font_size>");
}
static void
clicked_8_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Evas_Object *entry = data;
elm_entry_entry_append(entry, "<font_size=50>8</font_size>");
}
static void
clicked_9_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Evas_Object *entry = data;
elm_entry_entry_append(entry, "<font_size=50>9</font_size>");
}
static void
clicked_c_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Evas_Object *entry = data;
elm_entry_entry_set(entry, "<align=right>");
}
static void
clicked_divide_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Evas_Object *entry = data;
elm_entry_entry_append(entry, "<font_size=50>/</font_size>");
Panduan Dasar Pemrograman Tizen
70Proyek Tizen Pertamaku
71. }
static void
clicked_multi_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Evas_Object *entry = data;
elm_entry_entry_append(entry, "<font_size=50>X</font_size>");
}
static void
clicked_plus_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Evas_Object *entry = data;
elm_entry_entry_append(entry, "<font_size=50>+</font_size>");
}
static void
clicked_minus_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Evas_Object *entry = data;
elm_entry_entry_append(entry, "<font_size=50>-</font_size>");
}
static void
clicked_dot_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Evas_Object *entry = data;
elm_entry_entry_append(entry, "<font_size=50>.</font_size>");
}
static Evas_Object *
create_panel_basic_content(Evas_Object *parent, appdata_s *ad)
{
Evas_Object *table, *button;
table = elm_table_add(parent);
elm_table_padding_set(table, 10, 10);
button = elm_button_add(table);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "<font_size = 50>C</font_size>");
evas_object_smart_callback_add(button, "clicked", clicked_c_cb, ad->entry);
evas_object_show(button);
elm_table_pack(table, button, 0, 0, 1, 1);
button = elm_button_add(table);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "<font_size = 50>/</font_size>");
evas_object_smart_callback_add(button, "clicked", clicked_divide_cb, ad->entry);
evas_object_show(button);
elm_table_pack(table, button, 1, 0, 1, 1);
Panduan Dasar Pemrograman Tizen
71Proyek Tizen Pertamaku
72. button = elm_button_add(table);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "<font_size = 50>X</font_size>");
evas_object_smart_callback_add(button, "clicked", clicked_multi_cb, ad->entry);
evas_object_show(button);
elm_table_pack(table, button, 2, 0, 1, 1);
button = elm_button_add(table);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "<font_size = 50>Back</font_size>");
evas_object_show(button);
elm_table_pack(table, button, 3, 0, 1, 1);
button = elm_button_add(table);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "<font_size = 50>7</font_size>");
evas_object_smart_callback_add(button, "clicked", clicked_7_cb, ad->entry);
evas_object_show(button);
elm_table_pack(table, button, 0, 1, 1, 1);
button = elm_button_add(table);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "<font_size = 50>8</font_size>");
evas_object_smart_callback_add(button, "clicked", clicked_8_cb, ad->entry);
evas_object_show(button);
elm_table_pack(table, button, 1, 1, 1, 1);
button = elm_button_add(table);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "<font_size = 50>9</font_size>");
evas_object_smart_callback_add(button, "clicked", clicked_9_cb, ad->entry);
evas_object_show(button);
elm_table_pack(table, button, 2, 1, 1, 1);
button = elm_button_add(table);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "<font_size = 50>-</font_size>");
evas_object_smart_callback_add(button, "clicked", clicked_minus_cb, ad->entry);
evas_object_show(button);
elm_table_pack(table, button, 3, 1, 1, 1);
button = elm_button_add(table);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "<font_size = 50>4</font_size>");
evas_object_smart_callback_add(button, "clicked", clicked_4_cb, ad->entry);
Panduan Dasar Pemrograman Tizen
72Proyek Tizen Pertamaku
73. evas_object_show(button);
elm_table_pack(table, button, 0, 2, 1, 1);
button = elm_button_add(table);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "<font_size = 50>5</font_size>");
evas_object_smart_callback_add(button, "clicked", clicked_5_cb, ad->entry);
evas_object_show(button);
elm_table_pack(table, button, 1, 2, 1, 1);
button = elm_button_add(table);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "<font_size = 50>6</font_size>");
evas_object_smart_callback_add(button, "clicked", clicked_6_cb, ad->entry);
evas_object_show(button);
elm_table_pack(table, button, 2, 2, 1, 1);
button = elm_button_add(table);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "<font_size = 50>+</font_size>");
evas_object_smart_callback_add(button, "clicked", clicked_plus_cb, ad->entry);
evas_object_show(button);
elm_table_pack(table, button, 3, 2, 1, 1);
button = elm_button_add(table);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "<font_size = 50>1</font_size>");
evas_object_smart_callback_add(button, "clicked", clicked_1_cb, ad->entry);
evas_object_show(button);
elm_table_pack(table, button, 0, 3, 1, 1);
button = elm_button_add(table);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "<font_size = 50>2</font_size>");
evas_object_smart_callback_add(button, "clicked", clicked_2_cb, ad->entry);
evas_object_show(button);
elm_table_pack(table, button, 1, 3, 1, 1);
button = elm_button_add(table);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "<font_size = 50>3</font_size>");
evas_object_smart_callback_add(button, "clicked", clicked_3_cb, ad->entry);
evas_object_show(button);
elm_table_pack(table, button, 2, 3, 1, 1);
button = elm_button_add(table);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
Panduan Dasar Pemrograman Tizen
73Proyek Tizen Pertamaku
74. evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "<font_size = 50>( )</font_size>");
evas_object_show(button);
elm_table_pack(table, button, 3, 3, 1, 1);
button = elm_button_add(table);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "<font_size = 50>0</font_size>");
evas_object_smart_callback_add(button, "clicked", clicked_0_cb, ad->entry);
evas_object_show(button);
elm_table_pack(table, button, 0, 4, 1, 1);
button = elm_button_add(table);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "<font_size = 50>.</font_size>");
evas_object_smart_callback_add(button, "clicked", clicked_dot_cb, ad->entry);
evas_object_show(button);
elm_table_pack(table, button, 1, 4, 1, 1);
button = elm_button_add(table);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "<font_size = 50>+/-</font_size>");
evas_object_show(button);
elm_table_pack(table, button, 2, 4, 1, 1);
button = elm_button_add(table);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "<font_size = 50>=</font_size>");
evas_object_show(button);
elm_table_pack(table, button, 3, 4, 1, 1);
evas_object_show(table);
return table;
}
static Evas_Object *
create_panel_advanced_content(Evas_Object *parent, appdata_s *ad)
{
Evas_Object *table, *button;
table = elm_table_add(parent);
elm_table_padding_set(table, 10, 10);
button = elm_button_add(table);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "<font_size = 50>x!</font_size>");
evas_object_show(button);
Panduan Dasar Pemrograman Tizen
74Proyek Tizen Pertamaku
75. elm_table_pack(table, button, 0, 0, 1, 1);
button = elm_button_add(table);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "<font_size = 50>sqrt</font_size>");
evas_object_show(button);
elm_table_pack(table, button, 1, 0, 1, 1);
button = elm_button_add(table);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "<font_size = 50>%</font_size>");
evas_object_show(button);
elm_table_pack(table, button, 2, 0, 1, 1);
button = elm_button_add(table);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "<font_size = 50>sin</font_size>");
evas_object_show(button);
elm_table_pack(table, button, 0, 1, 1, 1);
button = elm_button_add(table);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "<font_size = 50>cos</font_size>");
evas_object_show(button);
elm_table_pack(table, button, 1, 1, 1, 1);
button = elm_button_add(table);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "<font_size = 50>tan</font_size>");
evas_object_show(button);
elm_table_pack(table, button, 2, 1, 1, 1);
button = elm_button_add(table);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "<font_size = 50>ln</font_size>");
evas_object_show(button);
elm_table_pack(table, button, 0, 2, 1, 1);
button = elm_button_add(table);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "<font_size = 50>log</font_size>");
evas_object_show(button);
elm_table_pack(table, button, 1, 2, 1, 1);
button = elm_button_add(table);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
Panduan Dasar Pemrograman Tizen
75Proyek Tizen Pertamaku
76. evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "<font_size = 50>1/x</font_size>");
evas_object_show(button);
elm_table_pack(table, button, 2, 2, 1, 1);
button = elm_button_add(table);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "<font_size = 50>e^x</font_size>");
evas_object_show(button);
elm_table_pack(table, button, 0, 3, 1, 1);
button = elm_button_add(table);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "<font_size = 50>X^2</font_size>");
evas_object_show(button);
elm_table_pack(table, button, 1, 3, 1, 1);
button = elm_button_add(table);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "<font_size = 50>Y^x</font_size>");
evas_object_show(button);
elm_table_pack(table, button, 2, 3, 1, 1);
button = elm_button_add(table);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "<font_size = 50>| X |</font_size>");
evas_object_show(button);
elm_table_pack(table, button, 0, 4, 1, 1);
button = elm_button_add(table);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "<font_size = 50>PI</font_size>");
evas_object_show(button);
elm_table_pack(table, button, 1, 4, 1, 1);
button = elm_button_add(table);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "<font_size = 50>e</font_size>");
evas_object_show(button);
elm_table_pack(table, button, 2, 4, 1, 1);
evas_object_show(table);
return table;
}
static Evas_Object *
Panduan Dasar Pemrograman Tizen
76Proyek Tizen Pertamaku
77. create_panel(Evas_Object *parent, appdata_s *ad)
{
Evas_Object *panel, *grid;
/* Panel */
panel = elm_panel_add(parent);
elm_panel_orient_set(panel, ELM_PANEL_ORIENT_BOTTOM);
evas_object_show(panel);
/* Grid */
grid = elm_grid_add(panel);
evas_object_size_hint_weight_set(grid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(grid, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_content_set(panel, grid);
/* Panel basic content */
ad->basic_content = create_panel_basic_content(grid, ad);
evas_object_size_hint_weight_set(ad->basic_content, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(ad->basic_content, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_grid_pack(grid, ad->basic_content, 3, 3, 94, 94);
/* Panel advanced content */
ad->advanced_content = create_panel_advanced_content(grid, ad);
evas_object_size_hint_weight_set(ad->advanced_content, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(ad->advanced_content, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_grid_pack(grid, ad->advanced_content, -100, -100, 94, 94);
return panel;
}
static Evas_Object *
create_entry(Evas_Object *parent)
{
Evas_Object *entry;
entry = elm_entry_add(parent);
elm_entry_editable_set(entry, EINA_FALSE);
elm_entry_entry_set(entry, "<font_size=50><align=right></font_size>");
evas_object_show(entry);
return entry;
}
Kemudian modifikasi create_base_gui() dan tulis kode program dibawah ini.
Panduan Dasar Pemrograman Tizen
77Proyek Tizen Pertamaku
78. static void
create_base_gui(appdata_s *ad)
{
Evas_Object *grid, *panel;
ad->win = elm_win_util_standard_add(PACKAGE, PACKAGE);
elm_win_autodel_set(ad->win, EINA_TRUE);
if (elm_win_wm_rotation_supported_get(ad->win)) {
int rots[4] = { 0, 90, 180, 270 };
elm_win_wm_rotation_available_rotations_set(ad->win, (const int *)(&rots), 4);
}
evas_object_smart_callback_add(ad->win, "wm,rotation,changed", rotation_cb, ad);
evas_object_smart_callback_add(ad->win, "delete,request", win_delete_request_cb, NULL
eext_object_event_callback_add(ad->win, EEXT_CALLBACK_BACK, win_back_cb, ad);
ad->bg = create_bg(ad->win);
ad->conform = create_conform(ad->win);
elm_win_conformant_set(ad->win, EINA_TRUE);
elm_win_indicator_mode_set(ad->win, ELM_WIN_INDICATOR_SHOW);
elm_win_indicator_opacity_set(ad->win, ELM_WIN_INDICATOR_OPAQUE);
/* Grid */
grid = elm_grid_add(ad->conform);
evas_object_size_hint_weight_set(grid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(grid, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_content_set(ad->conform, grid);
/* Entry */
ad->entry = create_entry(grid);
elm_grid_pack(grid, ad->entry, 5, 5, 90, 25);
/* Panel */
panel = create_panel(grid, ad);
elm_grid_pack(grid, panel, 0, 35, 100, 65);
/* Show window after base gui is set up */
evas_object_show(ad->win);
}
Simpan (save) semua kode program yang telah ditulis dengan menekan Ctrl+s pada
keyboard.
Menjalankan Program Tizen ke Emulator
Panduan Dasar Pemrograman Tizen
78Proyek Tizen Pertamaku
86. Persiapan untuk Instalasi
Berikut beberapa hal yang perlu disiapkan untuk membuat dan menjalankan aplikasi Tizen
pada platform Ubuntu.
Perangkat Keras
Berikut merupakan perngkat keras yang dibutuhkan untuk mempersiapkan environment
pembuatan aplikasi Tizen.
Komponen Minimum Rekomendasi
Kecepatan Prosesor 2 GHz 3 GHz
Tipe Prosesor Intel Dual-Core Intel Core i5
Memori (RAM) 3 GB 4 GB
Kapasitas Disk kosong 6 GB 10 GB
Perangkat Lunak
Sistem Operasi
Untuk pengguna Operating System Ubuntu, instalasi Tizen SDK (Software Development Kit)
dapat dilakukan melalui website resmi Tizen Developer pada
https://developer.tizen.org/development/tools/download. SDK ini telah mencakup IDE,
Emulator, toolchain, sample code dan juga dokumentasi.
Pada halaman tersebut, pilihlah versi Ubuntu yang sesuai dengan PC atau laptop anda. Di
sini telah disediakan installer untuk Ubuntu 32 bits dan juga 64 bits. Jika Anda tidak
mengetahui versi bit Ubuntu anda, anda bisa mengikuti langkah-langkah berikut:
Buka terminal anda
Ketikkan perintah Uname -a , diikuti dengan karakter enter
Jika menggunakan Ubuntu 32 bit, maka output dari instruksi ini = i686 GNU/Linux
Jika menggunakan Ubuntu 64 bit, maka output dari instruksi ini = x86 64 GNU/Linux
Adapun Tizen SDK yang dibahas pada buku ini merupakan Tizen 2.4 Rev3 SDK yang
merupakan SDK versi terbaru untuk bulan Februari 2016. Pada tampilan website Tizen
tersebut, file utama yang perlu di-download adalah installer IDE (Integrated Development
Panduan Dasar Pemrograman Tizen
86Persiapan Instalasi
88. 1. Download installer JRE pada website Oracle JRE 7 dengan link sebagai berikut:
http://www.oracle.com/technetwork/java/javase/downloads/jre7-downloads-
1880261.html
2. Pilih installer yang sesuai dengan versi Ubuntu anda.
i. Linux x86 untuk Ubuntu 32 bit
ii. Linux x64 untuk Ubuntu 64 bit
3. Anda bisa memilih salah satu dari dua tipe file yang disediakan (rpm atau tar.gz). Pada
buku ini kami menggunakan file tar.gz untuk Linux x64 ( jre-7u79-linux-x64.tar.gz )
4. Setelah selesai melakukan download, buka kembali terminal anda dan ketikkan
perintah-perintah berikut pada lokasi file yang sama dengan installer anda
Untuk mengekstrak file installer
tar -xvf jre-7u79-linux-x64.tar.gz
Buatlah sebuah direktori khusus untuk Java dan pindahkan file JRE ke dalamnya
sudo mkdir -p /usr/lib/jvm/jre1.7.0
sudo mv jre1.70_79/* /usr/lib/jvm/jre1.7.0/
Install / update java
sudo update-alternatives --install /usr/bin/java java
/usr/lib/jvm/jre1.7.0/bin/java 0
Install dependencies
sudo apt-get install expect
sudo apt-get install gtk2-engines-pixbuf
sudo apt-get install libgnome2-0
sudo apt-get install qemu-user-static
sudo apt-get install libwebkitgtk-1.0-0
sudo apt-get install gettext
sudo apt-get install gksudo
sudo apt-get install module-init-tools
sudo apt-get install libudev-dev
Panduan Dasar Pemrograman Tizen
88Persiapan Instalasi
102. Anda bisa
melakukan konfigurasi terhadap properti aplikasi dengan memanfaatkan tab yang berada di
bawah manifest editor
Overview: Digunakan untuk mendefinisikan informasi umum, seperti, application
package, version, author, dan deskripsi
Features: Digunakan untuk mendefinisikan fitur software dan hardware yang harus
dimiliki agar aplikasi bisa dijalankan dengan baik.
Privileges: Digunakan untuk mengatur privileges
Localization: Digunakan untuk mengatur supported locales, seperti label, deskripsi, dan
icon.
Advanced: Digunakan untuk mendefinisikan advanced feature dari aplikasi, seperti
metadata, data control, application control functionalities, account, dan miscellaneous
option.
tizen-manifest.xml: Digunakan untuk melakukan konfigurasi manual pada fie xml.
Menjalankan Program
Sebelum kita mempelajari potongan kode dari aplikasi kita, mari kita jalankan aplikasi kita
dengan memilih button Run.
Panduan Dasar Pemrograman Tizen
102Hello World Tizen
110. Tampilan pertama dari IDE anda adalah window WYSIWYG dengan sebuah file bernama
layout.tuml. Pada bagian kiri terdapat Palette yang berisikan Button, Display UI Component,
Input UI, Item Container, UI Component Container, View Container, dan Snippets.
Tahap 1 - Mendesain User Interface
Perlu anda ketahui, bahwa sebelum meletakkan berbagai item berupa button, label, textview
dsb, diperlukan sebuah object container yang digunakan untuk menampung semua item-
item ini. Penjelasan terkait container yang disediakan oleh Tizen SDK, bisa ditemukan pada
website tizen development, atau buku panduan kita pada series berikutnya.
Untuk menyederhanakan program yang akan kita buat, mari kita gunakan UI Component
Component berupa Grid. Container Grid ini memungkinkan kita untuk meletakkan berbagai
item pada setiap zona screen layar device. Langkah-langkahnya, Pilih UI Component
Container yang ada pada tab Palette, kemudian drag dan drop icon Grid ke layar design.
Sebagai hasilnya, secara otomatis, seluruh screen layar menjadi container Grid. Memang
tidak ada perubahan yang terlihat, tapi pada tab Outline di bagian bawah, bisa dilihat bahwa
View layout kita memiliki anak berupa container Grid.
Untuk membuat kalkulator sederhana, kita akan menggunakan tiga item utama, yaitu
Button, Label, dan Entry
Panduan Dasar Pemrograman Tizen
110Proyek Tizen Pertamaku
111. Ketika anda melakukan drag dan drop untuk setiap item dari Palette, perhatikan tab
properties yang ada pada pojok kanan IDE. Untuk setiap item anda bisa memodifikasi ID
dari item, text yang tertulis, style, dsb pada tab Attributes dari Properties.
Pada tampilan di atas, adapun button, label, dan Entry yang digunakan menggunakan ID
dan text sebagai berikut:
ID Text ID Text ID Text
Button1 1 Button7 7 ButtonKurang -
Button2 2 Button8 8 ButtonKali x
Button3 3 Button9 9 ButtonBagi /
Button4 4 Button0 0 ButtonSamaDengan =
Button5 5 EntryLayar 0 ButtonReset C
Button6 6 ButtonTambah + label1
KALKULATOR
SAYA
Tahap 2 - Mengimplementasikan Event Listener
Pada tahap ini, User Interface yang anda inginkan telah selesai dibangun. Pada tahap
kedua kita akan mengimplementasikan kode program terkait Event handler ketika button di-
click. Pada mekanisme WYSIWYG ini anda bisa melakukannya dengan cara memanfaatkan
Tab Event yang ada pada Tab Properties, seperti gambar berikut:
Untuk setiap button yang di-klik (clicked), kita implementasikan event handler nya dengan
memilih tanda + pada tab Properties / Event sesuai dengan gambar di atas dan dilanjutkan
dengan memilih tanda → sehingga IDE akan menampilkan potongan fungsi yang dapat diisi
Panduan Dasar Pemrograman Tizen
111Proyek Tizen Pertamaku
112. sesuai dengan kebutuhan.
Untuk setiap button angka dari 1, 2, 3, 4, 5, 6, 7, 8, 9, dan 0 bisa diimplementasikan dengan
potongan kode berikut:
EntryLayar merupakan ID dari layar kalkulator kita. Pada fungsi di atas, ketika button angka
1 diklik maka kita akan melakukan update kepada layar. Lakukan hal serupa untuk angka-
angka lainnya. Untuk ButtonReset, atur layar menjadi 0 seperti potongan kode berikut:
Anda bisa menyesuaikan implementasi fungsi sesuai dengan kebutuhan anda. Untuk
program kalkulator sederhana ini, kita menggunakan beberapa global variabel yang bisa
diakses dari berbagai folder program.
Panduan Dasar Pemrograman Tizen
112Proyek Tizen Pertamaku