Panduan Dasar Pemrograman Tizen

Post on 17-Jan-2017

652 views 2 download

Transcript of Panduan Dasar Pemrograman Tizen

0

1

2

3

3.1

3.2

3.3

4

4.1

4.2

4.3

4.4

4.5

4.6

4.7

5

5.1

5.2

5.3

5.4

5.5

5.6

5.7

6

6.1

6.2

6.3

6.4

6.5

6.6

TableofContentsIntroduction

KataPengantar

Pendahuluan

MengenalTizendanPenerapannya

ArsitekturUmumTizen

PenerapandanPenggunaanTizen

PengembanganaplikasiTizen

PemrogramanTizenuntukPlatformWindows

PersiapanInstalasi

InstalasiTizen

KonfigurasiSetelahInstalasiTizen

MengenalTizenDevelopmentIDE

MengenalTizenEmulator

HelloWorldTizen

ProyekTizenPertamaku

PemrogramanTizenuntukPlatformLinux

PersiapanInstalasi

InstalasiTizen

KonfigurasiSetelahInstalasiTizen

MengenalTizenDevelopmentIDE

MengenalTizenEmulator

HelloWorldTizen

ProyekTizenPertamaku

PemrogramanTizenuntukPlatformMac

PersiapanInstalasi

InstalasiTizen

KonfigurasiSetelahInstalasiTizen

MengenalTizenDevelopmentIDE

MengenalTizenEmulator

HelloWorldTizen

PanduanDasarPemrogramanTizen

2

6.7

7

8

ProyekTizenPertamaku

Resouces

ProfilPenulis

PanduanDasarPemrogramanTizen

3

TizenmerupakanopensourceprojectuntuksistemoperasiyangberbasismodifikasiLinuxKerneldanWebKitruntime.DenganTizen,kitadapatmenjalankanaplikasidiatasSmartphone,WearableataupuncomplaisancedevicesyangmengusungOSTizen.

BukuPanduanDasarPemrogramanTizendibuatdenganmaksuddantujuanuntukmembantuparadeveloperpemulaataudeveloperyangsudahmemilikiketrampilanmemprogramaplikasimobilebaikituWindowsPhone,AndroidataupuniOSdalammembuataplikasimobilediatasplatformTizen.

PanduanDasarPemrogramanTizen

4Introduction

KataPengantarTizenadalahsistemoperasiterbuka,efisiendanfleksibelyangdibangununtukbekerjapadasemuakategoridevices.SaatiniTizentelahmenjadibagianpentingpadaekosistemdevicemanufacture,mobileoperators,appdevelopersdanISV,karenajumlahdanjenisdeviceyangmenggunakansistemoperasiiniterusbertambah,termasukdiIndonesia.Tizendirancanguntukmemenuhikebutuhanberbagaijenisindustri,sepertiautomotiveIVI(In-VehicleInfotainment),mobile,TVdanWearable.ManufacturedapatmemodifikasiTizensesuaidengankebutuhan,untukberjalandiatasspesifikasihardwareyangterbatas,sepertimemory,processordanpower.EfisiensiadalahsalahsatukeunggulanTizendibandingsistemoperasilainnya.

UntukappdevelopersdanISV,Tizenmenyediakanfasilitasuntukmembangunaplikasimenggunakannative(C/C++)danweb(HTML5/JavaScript)secaraproduktif.Karenacakupannyayangluas,developerdapatmembuataplikasiyangterkoneksiantarasemuasmartdevices,sepertiwearables,consumerelectronics(TVs,gamingconsoles,DVRs,danlain-lain),mobildanIoTappliances.BukuiniakansangatmembantudevelopersuntukmemulaieksplorasitentangTizensebagaiplatformdevelopment.DengangayapenulisanyangpraktikalbukuinidapatmempercepatprosespembelajaranhinggaandadapatmembuatprogramTizenpertamamenggunakantoolsetsepertiTizenIDE,emulatordanSDK.

PengembanganaplikasidiTizendapatdilakukandenganpendekatannative(C/C++)maupunweb(HTML5/JavaScript).DalambukuiniandaakanmencobapendekatanpertamamenggunakanANSICdanEnlightenmentFrameworkLibrary(EFL)untukmembuatprogramkalkulatorsederhana.NantikanbukuselanjutnyayangakanmengupaslebihdalammengenaiEFLobjects.

SemogabukuinimembantueksplorasiTizenanda.

RismanAdnan,Director,SamsungR&DIndonesia.

PanduanDasarPemrogramanTizen

5KataPengantar

PendahuluanTizenmerupakanopensourceprojectuntuksistemoperasiyangberbasismodifikasiLinuxKerneldanWebKitruntime.DenganTizen,kitadapatmenjalankanaplikasidiatasSmartphone,WearableataupuncomplaisancedevicesyangmengusungOSTizen.

BukuPanduanDasarPemrogramanTizendibuatdenganmaksuddantujuanuntukmembantuparadeveloperpemulaataudeveloperyangsudahmemilikiketrampilanmemprogramaplikasimobilebaikituWindowsPhone,AndroidataupuniOSdalammembuataplikasimobilediatasplatformTizen.

Adaempatbabyangakandibahaspadabukuini,antaralain:

MengenalTizendanpenerapannyaPemrogramanTizenuntukPlatformWindowsPemrogramanTizenuntukPlatformLinuxPemrogramanTizenuntukPlatformMac

PanduanDasarPemrogramanTizen

6Pendahuluan

PendahuluanTizenadalahperangkatlunak(software)platformberbasisopensourceyangdiperuntukanuntukberbagaiplatformsepertismartphone,wearable,tablet,netbook,smartTVdanlain-lainnya.

TizenhadirsebagaialternatifplatformlaindariAndroiddaniOSyangdiusungolehSamsung.TizendibangundariKernel-linuxmemilikiflesibilitasyangtinggisepertiAndroid.

PadababinikitaakanmengeksplorasiapadanbagaimanaTizenitusendiri.

Marikitalanjutkan.

PanduanDasarPemrogramanTizen

7MengenalTizendanPenerapannya

ArsitekturUmumTizenSepertidiketahuibahwaTizendibangundiatasKernelLinux.SelanjutnyadiatasnyadibangunbeberapalibraryAPIgunamendukungaplikasiyangberjalandiatasplatformTizen.

LibraryAPIinidipergunakanuntukoperasionaldankontroldariTizenitusendiri.Komponeninimeliputi:

BaseContentLocationMessagingMultimediaSocialSystemTelephonyUIWebApplicationFrameworkNetworkSecurity

Secaraumum,pembacadapatmelihatpadagambardibawahini.

Masing-masingAPIiniakandibahaspadabukuselanjutnya.

PanduanDasarPemrogramanTizen

8ArsitekturUmumTizen

PenerapandanPenggunaanTizenSepertidijelaskandiawalbahwaTizentidakhanyadiperuntukanuntukplatformsmartphonetetapiperalatanlainnya.

SalahsatuprodukTizenyangdiluncurkanuntukplatformsmartphoneadalahSamsungZ1.Andadapatmembacaspesifikasinyapadaalamatwebsitedibawahini.

http://www.samsung.com/in/consumer/mobile-devices/smartphones/others/SM-Z130HZKDINS

PanduanDasarPemrogramanTizen

9PenerapandanPenggunaanTizen

SelainSamsungZ1,SamsungjugameluncurkanSamsungZ3dimanapembacadapatmelakukanreviewspesifikasinyapadaalamatini.http://www.samsung.com/in/consumer/mobile-devices/smartphones/others/SM-Z300HZKDINS

SemuaSamsungSmartTVjugamenggunakanTizenOSsebagaibagianoperationalnya.

SelainSamsungSmartTV,SamsungWearablejugamenggunakanTizenOSsebagaisistemyangditanampadaperalatantersebut.

Kalaukitabolehmenarikbenangmerahnya,denganinvestasidalammengembangkanaplikasiTizen,kitadapatmelakukaninstalasikebeberapaperalatanplatform.

PanduanDasarPemrogramanTizen

10PenerapandanPenggunaanTizen

PengembanganAplikasiTizenTizendevelopmentmenawarkanbeberapatargetplatformperalatanyangcukupbanyak.Untukpengembangan,Tizenmenawarkanduaopsidalamdevelopmentyaitu:

NativeApplicationWebApplication

PadaNativeapplicationkitaakanmengembangkanaplikasiTizendalambahasaC.Keuntunganyangdidapatkanpadaopsiiniadalahkecepatandankeandalan.HalinidisebabkankitasecaralangsungmengaksesTizenAPI.

SedangkanWebapplicationdiperuntukanbagiparadeveloperyangmemilikidasarHTML5.SepertidiketahuiHTML5inijugadidukungolehplatformlainsepertiAndroid,iOS,WindowsPhone,FireOS.Keuntunganopsiini,kitadapatmempergunakantemplateHTML5yangsudahadasehinggainidapatdipakaiolehplatformlainyangberbasisHTML5.

PanduanDasarPemrogramanTizen

11PengembanganaplikasiTizen

PendahuluanSDKTizenterdiridaribeberapaperangkatutamayangdibutuhkanuntukmembuatdanmenjalankanaplikasiTizen.

PadasesiinikitaakanmelakukaninstalasidankonfigurasigunamembuatdanmenjalankanaplikasiTizendiatasplatformWindows.DisinipenulisakanmenggunakansistemoperasiWindows10sebagaitestingnya.

PanduanDasarPemrogramanTizen

12PemrogramanTizenuntukPlatformWindows

PersiapanuntukInstalasiSebelummemulaimelakukaninstalasiTizenpadakomputer,berikutbeberapahalyangperludisiapkanuntukmembuatdanmenjalankanaplikasiTizenpadaplatformwindows.

PerangkatKerasUntukmembuataplikasiTizenpadaplatformWindows,berikutperangkatkerasyangdibutuhkanuntukmempersiapkanenvironmentpembuatanaplikasiTizen.

Komponen Minimum Rekomendasi

KecepatanProsesor 2GHz 3GHz

TipeProsesor IntelDual-Core IntelCorei5

Memori(RAM) 3GB 4GB

KapasitasDiskkosong 6GB 10GB

SistemOperasiProsespembuatanaplikasiTizendapatberjalandenganbaikpadasistemoperasiWindows7/8/10dengantipesistemoperasi32bitmaupun64bit.

MicrosoftWindows® Minimum Rekomendasi

Windows®7 32bit 64bit

Windows®8 32bit 64bit

Windows®10 32bit 64bit

JavaDevelopmentKit(JDK)UntukmembuatdanmenjalankanaplikasiTizen,dibutuhkanJavaDevelopmentKit(JDK)versi7atausetelahnya.JDKdapatdiunduhdihalamanresmiOraclepadatautanhttp://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html.PilihdanunduhJDKyangsesuaidengantipesistemoperasiwindowsyangdigunakan.Padasaatbukuiniditulis,versiterakhirJDKadalahversi80.

PanduanDasarPemrogramanTizen

13PersiapanInstalasi

BerikutmerupakantautanuntukmengunduhJDKuntukplatformWindows.

MicrosoftWindows® NamaFile Link

32Bitjdk-7u80-windows-i586.exe

http://download.oracle.com/otn-pub/java/jdk/7u80-b15/jdk-7u80-windows-i586.exe

64Bitjdk-7u80-windows-x64.exe

http://download.oracle.com/otn-pub/java/jdk/7u80-b15/jdk-7u80-windows-x64.exe

SetelahberhasilmengunduhfileJDKyangsesuai,jalankanfile.exedanikutiperintahyangditampilkan.

TizenEmulatorBerikutmerupakankomponenyangdibutuhkanagarbisamenjalankanTizenEmulatorpadaplatformWindows.

PanduanDasarPemrogramanTizen

14PersiapanInstalasi

Komponen Rekomendasi

CPUCPUyangmendukungteknologiIntel®VT-x,suatuteknologivirtualisasiuntukmengemulasikanataumenjalankanTizenEmulator.Jikateknologiinitidakada,makaTizenEmulatorakanberjalandengansangatlambat.

ResolusiLayar 1280x1024

KartuGrafis

BerikutbeberapakartugrafisyangtelahdicobadandibuktikanberhasilmenjalankanTizenEmulator:

NVIDIA:GeForce8300GS,GeForce8500GT,GeForceGT220,GeForceGT430,GeForceGT530,GeForceGT330M,GeForceGTX550Ti,QuadroNVS290.

ATI:RADEONHD4850,RADEONHD5450.

Intel:HDGraphics2000,HDGraphics2500,HDGraphics4000.

Catatan:

JikakomputeryangdigunakanuntukmembuataplikasiTizenmenggunakanteknologiNvidiaOptimus,makaEmulatorakanbekerjadenganmenggunakankartugrafison-board.

KartugrafisintegratedyangterletakpadamotherboardIntelQ33/Q35/Q43/Q45tidakmendukunguntukmenjalankanemulatorTizen.

GenerasipertamakartugrafisIntelHDjugatidakmendukunguntukmenjalankanemulator.

Driver

Untukmemastikansetiapperangkatkerasyangdibutuhkandapatberjalandenganbaik,periksadaninstalldriver-driveruntuktiap-tiapperangkatkerasyangdibutuhkan.UntukWindows7/8/10,instalasidanupdatedriverbisadilakukanmelaluiControlPanel>SystemandSecurity>WindowsUpdate.

Intel®VT-x

TerdapatduacarauntukmemeriksaapakahprosesoryangdigunakanmendukungIntelVT-x.

1. PeriksaapakahprosesoryangdigunakanmendukungIntelVT-xmelaluihalamanhttp://ark.intel.com/.

2. UnduhdaninstallperangkatlunakbernamaIntelProcessorIdentificationUtilitypadatautanhttps://downloadcenter.intel.com/download/7838/Intel-Processor-Identification-Utility-Windows-VersiondanpastikanprosesormendukungIntelVT-x.

PanduanDasarPemrogramanTizen

15PersiapanInstalasi

3.

BIOS(BasicInputOutputSystem)

PastikanpengaturanpadaBIOSmemungkinkansistemoperasiuntukmenggunanakanIntelVT-x.PastikanduapengaturandibawahinienabledpadaBIOS.

IntelVirtualisationTechnologyVT-xIntelExecuteDisableBit

KebanyakanpengaturanBIOSpadakomputerterkinitelahmembuatduapengaturandiatasmenjadienabled.NamuntidakadasalahnyamemastikanbahwaBIOSsudahdiatiragartizenemulatordapatberjalandenganbaik.

Microsoft®Hyper-V

TizenemulatortidakdapatberjalanbersamaandenganMicrosoftHyper-VyangdigunakanuntukmenjalankanWindowsPhoneEmulator.UntukmenjalankanTizenEmulator,pastikanMicrosoftHyper-Vdalamkondisioff/disable.UntukmematikanMicrosoftHyper-V,bukaControlPanel>Programs>TurnWindowsfeaturesonoroff>Disable(uncheck)Hyper-V>OK.

PanduanDasarPemrogramanTizen

16PersiapanInstalasi

Tunggubeberapasaathinggawindowsmemintauntukrestartkomputer.KliktomblokRestartnowuntukmenghidupkanulangkomputer.

Intel®HardwareAcceleratedExecutionManager(HAXM)

PanduanDasarPemrogramanTizen

17PersiapanInstalasi

IntelHardwareAcceleratedExecutionManager(Intel®HAXM)adalahmesinvirtualisasiyangmenggunakanIntelVirtualizationTechnology(VT)untukoptimisasiprosesemulasiTizenpadakomputerdengansistemoperasiWindows®atauMacOS®.DengankombinasiTizenEmulatordanTizenSDK,Intel®HAXMmempercepatkinerjaTizenEmulator,dengankatalainTizenEmulatormenjadilebihlancar/smooth.

Intel®HAXMversi1.1.1secaradefaulttelahdiinstallbersamaandenganTizenSDK.NamunjikaTizenEmulatortidakberhasildijalankan,kitaharusinstalasiulangkembaliIntel®HAXM.

UntukinstalasiIntel®HAXM,

1. UnduhfileinstallerIntel®HAXMversi1.1.9padatautanhttp://download.tizen.org/sdk/haxm/1.1.9/win/intelhaxm-tizen.exe.

2. JalankanfileinstallerdanklikYespadadialogUserAccountControl(UAC)yang

muncul.

3. KarenaIntel®HAXMversi1.1.1secaradefaulttelahterinstalbersamaandenganTizenSDK,makaakanmunculdialogkonfirmasisepertidibawahini.KlikYesuntuk

melanjutkan.

PanduanDasarPemrogramanTizen

18PersiapanInstalasi

4. KliktombolNextuntukmemulaiprosesinstalasi

KitadapatmengaksesdokumentasidenganmenekantombolIntel®HAXMDocumentation.

5. Sesuaikanjumlahmemory(RAM)yangdialokasikanuntukIntel®HAXM.

FileinstallerjugaberfungsisebagaialatkonfigurasiuntukIntel®HAXM.Jikainginmengubahpengaturanalokasimemory(RAM)yangingindigunakan,jalankankembalifileinstaller.

PanduanDasarPemrogramanTizen

19PersiapanInstalasi

6. Konfirmasimemori(RAM)yangtelahdialokasikanuntukIntel®HAXMdankliktombol

Install.

7. TunggubeberapasaathinggaIntel®HAXMterinstaldengansmepurna.

PanduanDasarPemrogramanTizen

20PersiapanInstalasi

8. SaatprosesinstalasiIntel®HAXMselesai,kliktombolFinishuntukmenyelesaikandankeluardariprosesinstalasi.Intel®HAXMtelahberhasildiinstaldansiapuntuk

digunakan.

UntukmemastikanIntel®HAXMberjalandenganbaik,bukaCommandPromptpadawindowsdanmasukkanperintah:scqueryintelhaxm

JikaIntel®HAXMberjalandenganbaik,CommandPromptakanmenampilkanpesanstatusyangmengindikasikanstateadalah“4RUNNING”.

KebutuhanTambahan(Opsional)

PanduanDasarPemrogramanTizen

21PersiapanInstalasi

UntukmembantumengoptimisasiperformansidariaplikasiTizenyangdibuat,kitadapatmenggunakansuatuprofilingtoolbernamaT-trace.DenganT-tracepeningkatanperformansiaplikasitizendapatdilakukandenganlebihmudah.

UntukmenggunakanT-tracedisistemoperasiWindows®7/8/10,dibutuhkansuatuperangkatlunakbernamaPythondenganversi2.7.X.Padasaatbukuiniditulis,versiterkahirPythonadalahversi2.7.11.

UnduhPython2.7.11,kemudianjalankanfiledanikutiinstruksiyangditampilkan.

Catatan:AgarbisamenggunakanPythonsecaranyamandanmudahpadacommandprompt,kitaharusmembuatvariabel%PATH%padaenvironmentvariable.TambahkanvariabelbarutersebutmelaluiMyComputer>Properties>Advanced>EnvironmentVariables.

PanduanDasarPemrogramanTizen

22PersiapanInstalasi

InstalasiTizenSDKPadatopikini,kitaakanmembahasprosesinstalasiTizenSDK(SoftwareDevelopmentKit)padasistemoperasiWindows.TerdapatduacarauntukmenginstalasiTizenSDK,yaituGUIInstallerdanCLIInstaller.PadatopikiniakandibahasprosesinstalasidenganGUIInstalleryangmerupakanprosesinstalasipalingmudah.

UnduhSDKTizenSDKadalahseperangkatalatyangdigunakanuntukmembuatAplikasiTizenWebdnaTizenNative.TizenSDKterdiridariIDE(IntegratedDevelopmentEnvironment),Emulator,toolchain,contohkodeprogram,anddokumentasi.AplikasiTizendapatdibuattanpaharusbergantungpadaTizenIDE,selamaaplikasiTizenmengikutiaturanpadapackagingaplikasiTizen(TizenPackagingRules).Padasaatbukuinidibuat,versiterakhirTizenSDKadalah2.4Rev3.

UntukmengunduhTizenSDK,pilihfileGUIInstallerberdasarkantipesistemoperasi.

MicrosoftWindows

®NamaFile Link

32Bittizen-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

64Bittizen-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

GUIInstallerSetelahberhasilmengunduhfileinstallerTizenSDK,instalasiTizenSDKdengancaradouble-clickpadaiconfileinstaller.

PanduanDasarPemrogramanTizen

23InstalasiTizen

InstalasiSetelahberhasilmengunduhTizenSDK,jalankanfileinstallerdengancaradouble-clickpadaicon/fileinstaller.

Setelahmenjalankanfileinstaller,makaakanmunculsecuritywarning.PilihYesuntukmelanjutkanprosesinstalasi.Setelahitufileinstallerakanmengekstraksibeberapakomponenfileuntukprosesinstalasi.

PanduanDasarPemrogramanTizen

24InstalasiTizen

Setelahfileinstallerselesaimengekstraksisemuakomponenyangdiperlukan,makakitaakanmendapatkanwindowpengaturaninstalasisepertidibawahini.

Padawindowpengaturaninstalasi,kitadapatmengaturlokasidirektoridimanaTizenSDKakanterinstalasi.Secaradefault,lokasiinstalasiTizenSDKuntuksistemoperasiwindowsadalahdiC:\tizen-sdk.

Pastikanlokasidirektoriyangdipilihadalahlokasidirektoriyangvalig.Jikadirektoritersebuttidakadaatautidakvalid,makafileinstallerakanmenampilkanbahwalokasidirektoritidakvalidsepertigambardibawahini.

Jikatelahselesaimengaturlokasiinstalasi,klikcheckboxAcceptuntukmenyetujuisyaratdanketentuan.Untukmemulaiinstalasi,kliktombolUnduh,tombolyangmemilikigambarpanahkebawahdikelilingiolehlingkaranberwarnabiru.

PanduanDasarPemrogramanTizen

25InstalasiTizen

Setelahmenekantombolunduh,tungguprosesinstalasisampaiselesai.Jikaprosesinstalasisudahselesaimakakitaakanmelihatadabeberapaprogrambaru,yaitu

No. Nama Fungsi

1 UpdateManager

PerangkatlunakuntukmengaturdanmengunduhSDKyangdiperlukan.

2 TizenWebSimulator

Tizensimulator,mensimulasikanperangkatTizenpadawebbrowseruntukmenjalankanTizenWebApps.

3 TizenIDE PerangkatlunakuntukmembuataplikasiTizen.

DenganmenekantombolQuit,TizenSDKtelahberhasildiinstaldansiapuntukdigunakan.

PanduanDasarPemrogramanTizen

26InstalasiTizen

KonfigurasiSetelahInstalasiTizenUntukmelengkapiprosesinstalasi,kitaharusmenjalankanUpdateManageruntukmengunduhSDKyangdiperlukan,terutamaTizenNativeSDK.KarenafileinstallerhanyamemberikankitaSDKTizenWeb.CaridanjalankanUpdateManager.SetelahUpdateManagerdijalankan,makakitaakanmendpaatkankotadialogsepertipadagambardibawahini.

UpdatemanagermemberikaninformasibeberapaTizenSDKyangbisadiunduhsebelummemulaiprosespembuatanaplikasi.Secaraumum,UpdateManagermemberikanTizenSDKuntukbeberapaperangkat,yaituSmartphone,SmartTVdanWearableDevice(SmartWatch).UnduhSDKyangdiinginkan,namunpastikankitamengunduhSDKterbaruuntuktiap-tiapperangkat.Pastikankomputerterhubungkeinternetsebelummemulaiinstalasi/unduhTizenSDK.

PanduanDasarPemrogramanTizen

27KonfigurasiSetelahInstalasiTizen

JikakitatidakmemilikikoneksiinternetyangbaikmengunduhTizenSDK,kitadapatmelakukaninstalasiSDKmelalumenusettingdipojokkananatas.

Setelahdiklik,kitaakanmendapatkotakdialogdibawahini.KlikbagianInstallOption,danpilihSDKImage.KemudianisidenganfileSDKImageyangtelahdiunduhsebelumnya.

PanduanDasarPemrogramanTizen

28KonfigurasiSetelahInstalasiTizen

PanduanDasarPemrogramanTizen

29KonfigurasiSetelahInstalasiTizen

MengenalTizenDevelopmentIDEUntukmembukaTizenIDE,cariaplikasipadaApplicationListataudenganmenekantombolstartpadakeyboarddanmasukankatakunciTizenIDE.SetelahmembukaTizenIDE,makakitaakanmendapatkansplashscreensepertipadagambardibawahini.

Padasaatawalkitaakanditanyakanlokasidirektoriuntukbekerja(workspace).Secaradefault,TizenIDEakanmemberikanlokasiawaluntukworkspace.Pilihlokasiworkspaceyangdiinginkan,danklikcheckbox'Usethisasthedefaultanddonotaskagain'agarTizenIDEtidakmenanyakankembaliworkspacesetiapkitamembukaTizenIDE.

KliktombolOKuntukmembukaTizenIDE.DanakhirnyakitamendapatkanTizenIDEsepertiyangterlihatpadagambardibawahini.

PanduanDasarPemrogramanTizen

30MengenalTizenDevelopmentIDE

Secaraumum,TizenIDEmiripdenganEclipse.Ya!karenaTizenIDEdikembangkandariEclipseIDE.PadasetiapawalmemulaiTizenIDE,kitaakandiberikanbeberapatipssepertigambardibawahini.

PanduanDasarPemrogramanTizen

31MengenalTizenDevelopmentIDE

PanduanDasarPemrogramanTizen

32MengenalTizenDevelopmentIDE

TizenEmulatorTidakperlumemilikiperangkatberbasisTizenuntukmengujiaplikasiTizenyangkitabuat.TizenEmulatormemungkingkankitamembuataplikasiTizendanmencobanyadengancepat.

EmulatoryangdisediakanolehTizenSDKmeniruenvironmentyangadapadaTizenDevice.DenganmenggunakanreplikasienvironmentpadaTizenEmulator,kitadapatmengujicobaaplikasiyangkitabuatsebelummendeployketargetdeviceTizenyangsesungguhnyasepertiSmartphone,Wearable(SmartWatch)danSmartTV.

UntukmembuatdanmenjalankanTizenEmulator,caridanbukaEmulatorManagerdariApplicationList.SetelahmembukaEmulatorManager,makakitaakanmendapatkanwindowsepertipadagambardibawahini.

MembuatSmartphoneTizenEmulatorUntukmembuatTizenEmulatoruntuksmartphone,pilihtabmobile,kemudiantekantombolCreateNewVM.

PanduanDasarPemrogramanTizen

33MengenalTizenEmulator

Lakukanpengaturanuntuktizenemulatoryangingindibuat.Berikutbeberapapengaturanyangperludilakukan.

Pengaturan NamaAtribut Rekomendasi

NamaEmulator Name

TizenEmulator24

Kitabebasmemberikannamauntukemulatoryangakandibuat.

VersiEmulator BaseImage 2.4-mobile

Resolusi Display>Resolution HD(720x1280)

JumlahProsesor Processor 4

UkuranMemory RAMSize 1024MB

PastikanpengaturanHWSupportuntukCPUVTdanGPUadalahON/Enable.

PanduanDasarPemrogramanTizen

34MengenalTizenEmulator

KliktombolConfirmuntukmenyimpankonfigurasidanmembuatemulatorbaru.Berikutgambarjikaberhasilmembuatemulatorbaru.

JikakitainginmengubahkonfogurasidariTizenEmulator,kliktomboleditpadapojokkananatas.

PanduanDasarPemrogramanTizen

35MengenalTizenEmulator

MenjalankanSmartphoneTizenEmulatorUntukmenjalankanTizenEmulator,kliktombolrunpadaemulatoryangtelahdibuat.

SecurityalertakanmunculsaatmencobamenjalankanTizenEmulatoruntukpertamakali.KliktombolAllowaccessuntukmenjalankanemulator.

PanduanDasarPemrogramanTizen

36MengenalTizenEmulator

Tunggubeberapasaat.TizenemulatorakanmenampilkansplashscreensaatsebagaipertandabahwaemulatorsedangmemuatresourceyangdibutuhkanuntukmenjalankanTizenOSpadaemulator.

BerikuttampilanlockscreenTizenOSyangberjalandiatasTizenEmulator.

PanduanDasarPemrogramanTizen

37MengenalTizenEmulator

GeserpadalayarTizenEmulatordenganmenggunakanMouseuntukmelihatisidariTizenOS.BerikutbeberapatampilandariTizenOS.

PanduanDasarPemrogramanTizen

38MengenalTizenEmulator

Layaknyasebuahsmartphone,TizenEmulatorinidilengkapidengantombolmenu,home,back,powerdanjugavolume.

PanduanDasarPemrogramanTizen

39MengenalTizenEmulator

HelloTizenSesiinimenjelaskanbagaimanacaramembuataplikasiTizensederhanayaituHelloWorld.TutorialinimembantukitamengenaliprosespembuatanaplikasiTizensecaraNative(TizenNativeApplication),menggunakanTizenSDKdaninstalasiaplikasiyangtelahdibuatpadaemulatorataupadaTizenDevice.

Saatkitamembuataplikasiyangrumit,kitadapatmenggunakantoolsyangtelahdisertakanpadaTizenSDKuntukmemudahkanprosespembuatanfitursertadesainantarmukaaplikasi(UserInterface).

Berikutlangkah-langkahyangdiperlukanuntukmembuataplikasiTizensederhana"HelloWorld".

MembuatProyekBaruUntukmembuatproyekbaru,jalankanaplikasiTizenIDE.

PadaTizenIDE,pilihmenuFile>New>Project...

PanduanDasarPemrogramanTizen

40HelloWorldTizen

PilihTizenNativeProjectsebagaitipeproyek.KemudiankliktombolNext.

PilihBasicUIsebagaitemplateproject.BerikannamauntukProjectnamedanPackagename.PilihmobilesebagaiProfile.Gunakanversi2.4sebagaiVersiondariaplikasiTizenyangakandibuat.KliktombolFinishuntukmengkonfirmasipembuatanproyekTizenbaru.

PanduanDasarPemrogramanTizen

41HelloWorldTizen

Apabilaprosespembuatanprojectbarusudahselesai,kitaakanmendapatkankodeprogramsesuaidengantemplateyangdipakai.

ProyekbaruHelloWorldtelahterlihatdiProjectExplorerpadaTizenIDE.Padaprojectexplorer,terdapatfilekonfigurasiprojectbernamatizen-manifest.xmldanbeberapafilekodeprogramlainnyaseperti:

PanduanDasarPemrogramanTizen

42HelloWorldTizen

folderinc:direktoriheaderfileuntukaplikasifoldersrc:direktoriCfileuntukimplementasikodeprogram

KonfigurasiAplikasiUntukkonfigurasiaplikasi,adaduahalyangbisadilakukan:

Mengubahprojectpropertiesdenganmemodifikasifiletizen-manifest.xml.Berikutmerupakanisidaritizen-manifest.xml.

Implementasikodeuntukaplikasipadahelloworld.c

SaatmembuatkodeprogramuntukaplikasiTizen,harapdiingatbahwaTizenAPImengikutibeberapaprinsipdasarberikutini:

Ownershipofreturnedstrings

Semuavariabeldengantipedatastringyangdi-returnsebagaipointerharusdihapusolehcallerkecualidibutuhkanolehbagianprogramlain.

Tidakmenghapusstringpadamemoridapatmenyebabkanmemoryleaks.Sistemmemoriyangtidakcukupdapatmemicunotifikasi'systemlowmemory',sebuahnotifikasiyangmemberikaninformasibahwamemoripadasistemtidakcukupuntuk

PanduanDasarPemrogramanTizen

43HelloWorldTizen

menjalankanoperasipadaaplikasi.SistemoperasiTizenmenggunakanalgoritmaheuristicuntukmemilihdanmenghentikanaplikasiyangmenggunakanbanyakmemorikarenapenggunaanmemoriyangbesardapatmenyebabkansistemoperasimenjaditidakstabil.

char*app_id_string=NULL;

if(!app_get_id(&app_id_string))

{

//Useapp_id_string

if(app_id_string!=NULL)

free(app_id_string);

}

Handle

Sebuahhandlemenyediakansaranauntukmengelolasebuahinstanceyangterasosiasidenganhandle.HandledigunakansangatbanyakpadaTizenNativeAPIuntukalasankompatibilitas.Pembuatan(creation)danpenghancuran(destruction)fungsidisediakanuntuksetiaptipehandle.Fungsitidakmembuatdanmenghancurkanhandledengansendirinya,tetapimengasosiasikanpadainstanceyangterasosiasidenganhandleyangdiberikan.Iniberarti,handletidakvalidsampaifungsiyangdibuattelahdipanggil.Accessorfungsi(getters/setters)jugadisediakanuntukmengaksesmembersvalriabledaristrukturtersembunyiyangdiidentifikasiolehhandleyangdiberikan.

//Textmessagedirepresentasikanolehhandle

messages_message_hsms_msg;

//Buatmessagedanasosiasikandenganhandle

messages_create_message(MESSAGES_TYPE_SMS,&sms_msg);

//hapusmessage

messages_destroy_message(sms_msg);

//Mengubahpropertidaritextmessage

messages_set_text(sms_msg,"Hello,howareyou?");

messages_add_address(sms_msg,"01020157919",MESSAGE_RECIPIENT_TO);

PemanggilanfungsiAsynchronous

BeberapafungsipadaTizenNativeAPIadalahasynchronous.Sebuahfungsiasynchronousmulaimengeksekusiprosesdanreturn/kembalisebelumprosesselesaidijalankan.Padakasusini,perludibuatsuatunotifikasikepadacallersaatfungsiasynchronoustelahmenyelesaikansemuaprosesnya.

PanduanDasarPemrogramanTizen

44HelloWorldTizen

Codeassist

TizenIDEmenyediakanfiturAPIassistdanAPIhoverfeaturesuntukmembuatkodeprogrampadaeditorsemakincepatdanefisien.

Saatmengubahkodeprogram,tekantombolCTRL+SPACEuntukmelihatketersediaanAPIyangdapatdigunakan.

MembuatUserInterfacedenganEFLEFLadalahsingkatandariEnlightenmentFoundationLibrary,kumpulantoolkitgrafisyangdigunakanuntukmembuataplikasiTizen.Berikutlangkah-langkahyangdilakukanuntukmembuatuserinterfaceuntukaplikasitizendenganmenggunakanEFL.

1. MenambahkanUserInterface

Untukmenambahkanuserinterfacekedalamaplikasi,perludiketahuicontainerdancomponentyangdiperlukan.Padatutorialiniadabeberapacontainerdancomponentyangdigunakan.

Sebuahwindowuntukmenyimpansemuacontainerdancomponentdiatasnya

PanduanDasarPemrogramanTizen

45HelloWorldTizen

Sebuahconformant,yangmenampilkankeyboardvirtualSebuahnaviframeuntukmenampilkanbeberapascreen/tampilandiatasnyabesertatransisiantarscreen/tampilan.Sebuahboxhorizontalyangberisisebuahlabeldenganbeberapabaristeksdansebuahbutton.

2. MenambahkanApplicationSkeletondenganAppcore

Sebuahpointeruntukobjekyangpenting,baikobjekcontrol(containerataucomponent)ataupunobjekdatadalamaplikasidisimpanpadastrukturdataberikut.

typedefstructappdata

{

Evas_Object*win;

Evas_Object*conform;

Evas_Object*naviframe;

}appdata_s;

Strukturdatadiatasdidesainsebagaipointeruntukmenyimpanalamatmemoriuntukobjek-objekyangakandigunakanpadaaplikasi.DaristrukturdatadiatasdapatdiketahuibahwasemuacontainerdancomponentpadaaplikasiTizenbertipeEvas_Object.

*win

Digunakanuntukmenyimpanalamatmemoridariobjekwindowyangdibuat

*conform

Digunakanuntukmenyimpanalamatmemoridariobjekconformantyangdibuat

*naviframe

Digunakanuntukmenyimpanalamatmemoridariobjeknaviframeyangdibuat

Pointeruntukstrukturdatadiatasdibuatdandiinisialisasihanyadengannilai0(nol)padafungsimain().Carayangsamajugadigunakanuntukmembuatdanmenginisialisasistrukturdatadengantipeapp_event_callback_s,yangmenyimpanfungsi-fungsicallbacksdaricoreaplikasi(app-core).

PanduanDasarPemrogramanTizen

46HelloWorldTizen

staticbool

app_create(void*data)

{

appdata_s*ad=data;

create_base_gui(ad);

returntrue;

}

int

main(intargc,char*argv[])

{

appdata_sad={0,};

intret=0;

ui_app_lifecycle_callback_sevent_callback={0,};

app_event_handler_hhandlers[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_low_battery,&ad);

ui_app_add_event_handler(&handlers[APP_EVENT_LOW_MEMORY],APP_EVENT_LOW_MEMORY,ui_app_low_memory,&ad);

ui_app_add_event_handler(&handlers[APP_EVENT_DEVICE_ORIENTATION_CHANGED],APP_EVENT_DEVICE_ORIENTATION_CHANGED,ui_app_orient_changed,&ad);

ui_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED],APP_EVENT_LANGUAGE_CHANGED,ui_app_lang_changed,&ad);

ui_app_add_event_handler(&handlers[APP_EVENT_REGION_FORMAT_CHANGED],APP_EVENT_REGION_FORMAT_CHANGED,ui_app_region_changed,&ad);

ret=ui_app_main(argc,argv,&event_callback,&ad);

if(ret!=APP_ERROR_NONE)

{

dlog_print(DLOG_ERROR,LOG_TAG,"app_main()isfailed.err=%d",ret);

}

returnret;

}

Catatan:

UntukinformasilainnyatentangAppcore,bukaHandlingtheApplicationFundamentalspadalinkhttps://developer.tizen.org/development/tutorials/native-application/application-framework/application#fundamentals.

3. MembuatobjekGUI

PanduanDasarPemrogramanTizen

47HelloWorldTizen

GUI(GraphicalUserInterface)dibuatpadafungsicreate_base_gui().Fungsitersebutmenerimasebuahpointerdengannamaaduntukdiisidenganobjek-objekdengantipeyangsesuaidengantipe-tipeyangtelahdideklarasikanpadastrukturdataappdata_s.

Buatfungsicreate_base_gui()sebagaifungsistatickarenafungsiinihanyadapatdicapaidariunitkompilasisaatini(yangmemungkinkancompileruntukmenghasilkanlebihcepatdanukurankodeprogramlebihkecil).

Didalamfungsicreate_base_gui(),buatobjekwindowdanbuat"HelloWorld"sebagainamadantitledariwindow.Tambahkansebuahcallbackpadaevent"delete,request".Callbackuntukevent"delete,request"iniakandieksekusisaatobjekwindowakanditutupolehsistem.

staticvoid

create_base_gui(appdata_s*ad)

{

//buatobjekwindow

//simpanobjekwindowyangdibuatkedalampointerad->win

ad->win=elm_win_util_standard_add(PACKAGE,PACKAGE);

elm_win_autodel_set(ad->win,EINA_TRUE);

//tambahkanjenisrotasiyangakandidukungpadaaplikasi

if(elm_win_wm_rotation_supported_get(ad->win))

{

introts[4]={0,90,180,270};

elm_win_wm_rotation_available_rotations_set(ad->win,(constint*)(&rots),4

}

//tambahkancallbackuntukevent"delete,request".

//callbackiniakandieksekusisaatsistemakanmenutupobjekwindow

evas_object_smart_callback_add(ad->win,"delete,request",win_delete_request_cb,

//tambahkancallbackuntukevent"backkey"

//callbackiniakandieksekusisaatusermenekantombol'back'

eext_object_event_callback_add(ad->win,EEXT_CALLBACK_BACK,win_back_cb,ad);

Selanjutnyakitaakanmembuatobjekconformantdanmeletakkannyadidalamobjekwindow.Mulaisaatini,baikcontainerdancomponentakandiletakkandidalamconformant.

PanduanDasarPemrogramanTizen

48HelloWorldTizen

//buatobjekconformant

//danjadikanwindowsebagaiparentdariconformant

//simpanobjectconformantyangdibuatkedalampointerad->conform

ad->conform=elm_conformant_add(ad->win);

//buatconformantagarbisamenampilkanphoneindicator

elm_win_indicator_mode_set(ad->win,ELM_WIN_INDICATOR_SHOW);

elm_win_indicator_opacity_set(ad->win,ELM_WIN_INDICATOR_OPAQUE);

//buatagarobjekconformantmenempatisemuaspaceyangadasecaraverticaldanhorizontal

evas_object_size_hint_weight_set(ad->conform,EVAS_HINT_EXPAND,EVAS_HINT_EXPAND);

//buatconformantsebagairesizeobjectdariwindow

//ukuranconformantakanberubahbersamaandenganukuranwindow

elm_win_resize_object_add(ad->win,ad->conform);

//tampilkanobjekconformant

//karenasemuaUIcontainerdancomponentsecaradefaultadalahhidden/collapsed(tersembunyi)

evas_object_show(ad->conform);

Selanjutkankitaakanmenambahkanobjectnaviframekedalamconformant.Naviframeadalahcontainersangatbergunauntukaplikasiagardapatmenampilkanbeberapascreen/tampilansecarabergantian.Naviframememungkinkanuntukmenampilkansatuscreen,mengantikescreenlainnya,kembalimenampilakanlagiscreenpertama,danbisamelakukantransisidenganbeberapascreenlainnya.

Padatutorialini,hanyaakanadasatuscreenyangdibuat.Naviframeakandibuatdandiletakkandidalamconformant.

//buatobjeknaviframe,danjadikanconformantsebagaiparentdarinaviframe

ad->naviframe=elm_naviframe_add(ad->conform);

//jadikannaviframesebagaicontentdariconformant

elm_object_content_set(ad->conform,ad->naviframe);

//tampilkannaviframe

evas_object_show(ad->conform);

Selanjutnyakitaakanmenambahkancontainerbox,yangdapatmenampungcomponentataucontainerlainnyasecaraverticalmaupunhorizontal.BoxadalahcontaineryangserupadenganLinearLayoutpadaAndroiddanStackPanelpadaWindowsPhone.Padatutorialini,satucontainerboxakandiletakkandidalamnaviframe.

PanduanDasarPemrogramanTizen

49HelloWorldTizen

//buatobjekboxdanjadikannaviframesebagaiparentnya

Evas_Object*box=elm_box_add(ad->naviframe);

//setobjekboxagarmenampilanelementdidalamnyasecaravertical

elm_box_horizontal_set(box,EINA_FALSE);

//buatagarboxmerentangsaatcontentnyamembutuhkanlebihbanyakspace

evas_object_size_hint_weight_set(box,EVAS_HINT_EXPAND,EVAS_HINT_EXPAND);

//buatboxagarmengisispaceyangadapadaparent

evas_object_size_hint_align_set(box,EVAS_HINT_FILL,EVAS_HINT_FILL);

//tambahkanboxsebagaicontainerpadanaviframe

elm_naviframe_item_push(ad->naviframe,"HelloWorld",NULL,NULL,box,NULL);

//tampilkanobjekbox

evas_object_show(box);

SelanjutnyakitaakanmenambahkansatuobjeklabelyangdapatmenampilkanteksdalambeberapabarisdenganformatmenggunakantagHTML.

//buatobjeklabeldanjadikanboxsebagaiparentdarilabel

Evas_Object*label=elm_label_add(box);

//SetteksuntuklabeldansetformatyangdigunakandengantagHTML:

//-teks"HelloWorld!"diletakkanditengahpadabarispertama

//-tambahkansatubariskosong(tag<br>)

//-Tambahkanteksyanglebihpanjangyangtidakcukupuntuksatubaris,

//teksakandiwrapkebarisberikutnya

elm_object_text_set(label,

"<align=center>HelloWorld!</align><br>"

"<br>"

"<wrap=word>Clickingonthebuttonbelowclosestheapplication.</wrap>"

//setagarlabeldapatmerentangsaat

//contentnyamembutuhkanlebihbanyakspace

evas_object_size_hint_weight_set(label,EVAS_HINT_EXPAND,

EVAS_HINT_EXPAND);

//setagarboxmengisispaceyangtersediapadahorizontalaxisdan

//terletakditengahsecaravertical(diletakkandi0.5secaravertical,

//ataudiletakkanditengahsecaravertical

evas_object_size_hint_align_set(label,EVAS_HINT_FILL,0.5);

//tambahkanlabelsebagaielementdaribox

elm_box_pack_end(box,label);

//tampilkanobjeklabel

evas_object_show(label);

PanduanDasarPemrogramanTizen

50HelloWorldTizen

UIcomponentterakhiryangakanditambahkanadalahButton.Buttoniniakanmembuatkeluardariaplikasisaatditekan.

//buatobjekbuttondanjadikanboxsebagaiparent

Evas_Object*button=elm_button_add(box);

//buttonakanmerentangsaatcontentnyamembutuhkanlebihbanyakspace

evas_object_size_hint_weight_set(button,EVAS_HINT_EXPAND,

EVAS_HINT_EXPAND);

//setagarbuttonmengisispaceyangtersediapadahorizontalaxisdan

//terletakdiakhirsecaravertical(1berartibuttondiletakkan

//diakhirboxsecaravertical,

//koordinatmulaipada(0,0)dipojokkiriatas

evas_object_size_hint_align_set(button,EVAS_HINT_FILL,1);

//setteks'Close!'sebagaicontentdaributton

elm_object_text_set(button,"Close!");

//Tambahkansebuahcallbackpadabuttonuntukevent"clicked";

//fungsicallbackbernamaclicked_cb

evas_object_smart_callback_add(button,"clicked",clicked_cb,NULL);

//tambahkanbuttonsebagaielementdaribox;karenakoordinatdimulaidaripojokkiriatas,

//danboxadalahvertical,buttonakanberadadibawahlabel

elm_box_pack_end(box,button);

//tampilkanobjekbutton

evas_object_show(button);

Selanjutnyakitaakanmembuatwindowmenampilkansemuacontainerdancomponentdiatasnyapadascreen.

/*Tampilkanwindowsetelahsemuabaseguidibuat*/

evas_object_show(ad->win);

}

4. KeluardariAplikasi(GUI)

Fungsicallbackclicked_cb()harusdibuatagarkitabisamenghentikan/keluardariaplikasisaatbuttonditekan.Fungsicallbackuntukbuttondiberikanmelauiperintahevas_object_smart_callback_add().Letakkanfungsiclicked_cb()diatasfungsicreate_base_gui()karenabahasapemrogramanCtidakdapatmemanggilfungsiyangdideklarasikansetelah/dibawahfungsipemanggilnya.

PanduanDasarPemrogramanTizen

51HelloWorldTizen

PenjelasanlebihdetailtentangcallbacksdapatmelihathalamanEvasSmartObjectEventsguidepadalinkhttps://developer.tizen.org/development/ui-practices/native-application/efl/event-handling/event-types#evas_smart_object.

Berikutmerupakanimplementasidarifungsicallbackclicked_cb().

staticvoidclicked_cb(void*user_data,Evas_Object*obj,void*event_info)

{

//menghentikan/keluardariaplikasi

elm_exit();

}

BuildingandPackagingtheApplicationSetelahsemuakodeprogramuntukaplikasiselesaidiimplementasidansebelummenjalankanaplikasi,kitaharusmelakukankompilasipadakodeprojectkitadengancaraklikkananpadafolderprojectdiProjectExplorer,kemudianbuildproject.Tunggubeberapasaatdanpastikantidakadaerrorpadakodeprogramyangkitabuat.

MenjalankanAplikasiKitadapatmenjalankanaplikasiyangtelahkitabuatpadaemulatorataupunpadaTizenDevicesepertiSmartphone,Wearable(SmartWatch),ataupunSmartTV.

SigningApplication

PanduanDasarPemrogramanTizen

52HelloWorldTizen

Sebelumkitamenjalankanaplikasi,kitaharusmelakukansignpadaaplikasiyangkitabuatdenganmeng-generateauthorcertificatedanmendaftarkannyapadaTizenIDE.

JikakitatelahmemilikisertifikatyangteregistrasididalamTizenIDE,prosessignaplikasiakandilakukansecaraotomatissaatmenjalankanaplikasi.

BerikuttahapanmembuatsertifikatuntukaplikasiTizen.

1. BukapengaturanSecurityProfilesmelaluimenuWindow->Preferences>TizenSDK>SecurityProfiles.

PanduanDasarPemrogramanTizen

53HelloWorldTizen

2. KemudiankliktombolAdduntukmenambahkanprofile

3. MasukkanProfileName,kemudiankliktombolOK.

4. Setelahprofileselesaidibuat,klikGenerateuntukmembuatAuhtorCertificate.KemudianisisemuafieldyangdibutuhkanpadadialogCertificateGenerator.KemudiankliktombolOKuntukmembuatcertificate.

PanduanDasarPemrogramanTizen

54HelloWorldTizen

5. KlikYespadakotakdialogyangmuncul.

PanduanDasarPemrogramanTizen

55HelloWorldTizen

6. Prosespembuatanprofiledanauthorcertificatetelahselesai.KemudiankliktombolApplyuntukmenggunakannya.

7. KliktombolOKuntukmengaktifkansecurityprofiledanauthorcertificateyangtelahdibuat.Kemudianlakukancleanprojectdengancaraklikkananpadafolderutama

project.

PanduanDasarPemrogramanTizen

56HelloWorldTizen

8. Setelahcleanproject,makaprosespembuatandanpengaktifansecurityprofilesdanauthorcertificatetelahselesai.

MenjalankanAplikasipadaTizenEmulator

UntukmenjalankanaplikasipadaTizenEmulator,klikkananpadafolderutamaproject,kemudianpilihRunAs>TizenNativeApplication.

KemudiankotakdialoguntukTizenemulatorakanmuncul.Jikasudahpernahmembuattizenemulator,makapilihtizenemulatoryangpernahdibuat,laluklikLaunch.

PanduanDasarPemrogramanTizen

57HelloWorldTizen

KlikAllowaccessjikamunculFirewallException.

TunggubeberapasaathinggaTizenOSdimuatdalamemulatordanemulatorsiapuntukdigunakan.Berikuttampilandarikodeprogramyangtelahkitabuat.

PanduanDasarPemrogramanTizen

58HelloWorldTizen

JalankanProgramkeTizenDevice

Berikutmerupakanlangkah-langkahuntukmenjalankanAplikasiTizenpadaTizenDevice.

1. HubungkanSmartphoneTizenkekomputerdengankabelUSB.

PanduanDasarPemrogramanTizen

59HelloWorldTizen

2. SmartphoneTizenyangdihubungkankekomputerakanterdeteksipadaConnection

ExplorerdiTizenIDE. Padagambardiatas,SamsungZ1telahterdeteksiterhubungdengankomputer.

3. PilihSmartphoneTizenyangterhubungkekomputerpadaConnectionExplorer.

4. PadaProjectExplorer,klikkananpadafolderproject,danpilihRunAs>TizenNativeApplication.Sebagaialternatif,untukmenjalankanaplikasipadaSmartphoneTizen,tekantombolPlaypadatoolbaratautekanCtrl+F11padakeyboard.Tunggubeberapasaat,makaaplikasiakanberjalanpadaSmartphoneTizen.

PanduanDasarPemrogramanTizen

60HelloWorldTizen

DebuggingAplikasiBagipembacayangsudahpernahmemilikipengalamanmenggunakanIDEEclipsemakaprosesdebuggingpadaTizenIDEakanmemilikipengalamanyangsama.

PanduanDasarPemrogramanTizen

61HelloWorldTizen

Cukupklikkananpadakodeprogramyangakandianalisadannantiakankeluarmenu,pilihAddBreakPoint.

Kemudianakanadabulatanwarnabirudisampingkodeprogramyangakankitalakukandebugging.

PanduanDasarPemrogramanTizen

62HelloWorldTizen

SekarangkitamelakukandebuggingdengancaraklikkananpadafolderutamaprojectdanpilihmenuDebugAs>TizenNativeApplication-Attach.

CheckataucentangpadacheckboxRemembermydecision,kemudiankliktombolYes.

PanduanDasarPemrogramanTizen

63HelloWorldTizen

KemudianTizenDebuggerakanberjalan.

Prosesdebuggingakanberhentipadasetiapbreakpointyangtelahkitatentukan/buat.

PanduanDasarPemrogramanTizen

64HelloWorldTizen

Kliktombolikonmerah(stop)untukmengakhiriprosesdebugging.

KlikTizenNativepadabagiankananatasuntukkembalikemodecodeeditor.

Ok,cukupmudahbukanprosesdebuggingnya?

PanduanDasarPemrogramanTizen

65HelloWorldTizen

ProjectTizenPertamaku:KalkulatorSederhanaPadasesiinikitaakanmembuataplikasiTizensederhanayaitukalkulatordenganmenggunakanTizenNativeApplication.

TujuanTujuandaripembuatanprojectkalkulatorsederhanainiadalahuntukbelajarbagaimanamemanfaatkankomponen-kompunenUIstandardyangdisediakanolehTizenSDKsepertilabel,grid,buttondancomponentlainnya.

MembuatProyekBaruUntukmemulaimembuatkalkulator,buatprojectbarumelaluimenuFile->New->TizenNativeProject.PilihtemplateBasicUIpadakategoriMOBILE.Berinamaprojectdanpackagename,misalkanMyCalculator.

KliktombolFinishuntukmenyelesaikanpembuatanprojectbaru.

Setelahprosespemnbuatanprojectbaruselesai,akanadaduafileyaituheaderfiledenganekstensi.hdancfiledenganekstensi.c.DengannamaprojectMyCalculatormakaakandihasilkanfilemycalculator.hdanmycalculator.c.

PanduanDasarPemrogramanTizen

66ProyekTizenPertamaku

MembuatTampilan(UI)TizenPadapembuatanUIuntukaplikasikalkulator,kitaakanmenggunakanEFL(EnlightenmentFoundationLibrary)sebagaiNativeUIyangdisediakanolehTizenSDK.SemuakomponenuntukUIakandibuatpadafilemycalculator.c.

Berikutmerupakanhasilakhirdariaplikasikalkulatoryangakankitabuat.

BerikutmerupakanprosespembuatanaplikasiKalkulator.

MembuatProgramTizenBukafilemycalculator.c.Ubahstructappdatayangsemula.

PanduanDasarPemrogramanTizen

67ProyekTizenPertamaku

typedefstructappdata

{

Evas_Object*win;

Evas_Object*conform;

Evas_Object*label;

}appdata_s;

Menjadi.

typedefstructappdata

{

constchar*name;

Evas_Object*win;

Evas_Object*bg;

Evas_Object*conform;

Evas_Object*entry;

Evas_Object*basic_content;

Evas_Object*advanced_content;

}appdata_s;

SelanjutnyakitamembuatfungsiuntukmembuatbeberapakomponenUIsepertibeberapatombolpadakalkulatorsepertitombol0,1,2...9dantombol+,-,/sejenisnya.

staticEvas_Object*

create_bg(Evas_Object*parent)

{

Evas_Object*bg;

if(parent==NULL)returnNULL;

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);

returnbg;

}

staticEvas_Object*

create_conform(Evas_Object*parent)

{

Evas_Object*conform,*bg;

if(parent==NULL)returnNULL;

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);

PanduanDasarPemrogramanTizen

68ProyekTizenPertamaku

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);

returnconform;

}

staticvoid

rotation_cb(void*data,Evas_Object*obj,void*event_info)

{

appdata_s*ad=data;

intcurrent_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);

}

}

staticvoid

clicked_0_cb(void*data,Evas_Object*objEINA_UNUSED,void*event_infoEINA_UNUSED)

{

Evas_Object*entry=data;

elm_entry_entry_append(entry,"<font_size=50>0</font_size>");

}

staticvoid

clicked_1_cb(void*data,Evas_Object*objEINA_UNUSED,void*event_infoEINA_UNUSED)

{

Evas_Object*entry=data;

elm_entry_entry_append(entry,"<font_size=50>1</font_size>");

}

staticvoid

clicked_2_cb(void*data,Evas_Object*objEINA_UNUSED,void*event_infoEINA_UNUSED)

{

Evas_Object*entry=data;

elm_entry_entry_append(entry,"<font_size=50>2</font_size>");

}

staticvoid

clicked_3_cb(void*data,Evas_Object*objEINA_UNUSED,void*event_infoEINA_UNUSED)

{

Evas_Object*entry=data;

elm_entry_entry_append(entry,"<font_size=50>3</font_size>");

}

staticvoid

PanduanDasarPemrogramanTizen

69ProyekTizenPertamaku

clicked_4_cb(void*data,Evas_Object*objEINA_UNUSED,void*event_infoEINA_UNUSED)

{

Evas_Object*entry=data;

elm_entry_entry_append(entry,"<font_size=50>4</font_size>");

}

staticvoid

clicked_5_cb(void*data,Evas_Object*objEINA_UNUSED,void*event_infoEINA_UNUSED)

{

Evas_Object*entry=data;

elm_entry_entry_append(entry,"<font_size=50>5</font_size>");

}

staticvoid

clicked_6_cb(void*data,Evas_Object*objEINA_UNUSED,void*event_infoEINA_UNUSED)

{

Evas_Object*entry=data;

elm_entry_entry_append(entry,"<font_size=50>6</font_size>");

}

staticvoid

clicked_7_cb(void*data,Evas_Object*objEINA_UNUSED,void*event_infoEINA_UNUSED)

{

Evas_Object*entry=data;

elm_entry_entry_append(entry,"<font_size=50>7</font_size>");

}

staticvoid

clicked_8_cb(void*data,Evas_Object*objEINA_UNUSED,void*event_infoEINA_UNUSED)

{

Evas_Object*entry=data;

elm_entry_entry_append(entry,"<font_size=50>8</font_size>");

}

staticvoid

clicked_9_cb(void*data,Evas_Object*objEINA_UNUSED,void*event_infoEINA_UNUSED)

{

Evas_Object*entry=data;

elm_entry_entry_append(entry,"<font_size=50>9</font_size>");

}

staticvoid

clicked_c_cb(void*data,Evas_Object*objEINA_UNUSED,void*event_infoEINA_UNUSED)

{

Evas_Object*entry=data;

elm_entry_entry_set(entry,"<align=right>");

}

staticvoid

clicked_divide_cb(void*data,Evas_Object*objEINA_UNUSED,void*event_infoEINA_UNUSED)

{

Evas_Object*entry=data;

elm_entry_entry_append(entry,"<font_size=50>/</font_size>");

PanduanDasarPemrogramanTizen

70ProyekTizenPertamaku

}

staticvoid

clicked_multi_cb(void*data,Evas_Object*objEINA_UNUSED,void*event_infoEINA_UNUSED)

{

Evas_Object*entry=data;

elm_entry_entry_append(entry,"<font_size=50>X</font_size>");

}

staticvoid

clicked_plus_cb(void*data,Evas_Object*objEINA_UNUSED,void*event_infoEINA_UNUSED)

{

Evas_Object*entry=data;

elm_entry_entry_append(entry,"<font_size=50>+</font_size>");

}

staticvoid

clicked_minus_cb(void*data,Evas_Object*objEINA_UNUSED,void*event_infoEINA_UNUSED)

{

Evas_Object*entry=data;

elm_entry_entry_append(entry,"<font_size=50>-</font_size>");

}

staticvoid

clicked_dot_cb(void*data,Evas_Object*objEINA_UNUSED,void*event_infoEINA_UNUSED)

{

Evas_Object*entry=data;

elm_entry_entry_append(entry,"<font_size=50>.</font_size>");

}

staticEvas_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);

PanduanDasarPemrogramanTizen

71ProyekTizenPertamaku

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);

PanduanDasarPemrogramanTizen

72ProyekTizenPertamaku

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);

PanduanDasarPemrogramanTizen

73ProyekTizenPertamaku

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);

returntable;

}

staticEvas_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);

PanduanDasarPemrogramanTizen

74ProyekTizenPertamaku

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);

PanduanDasarPemrogramanTizen

75ProyekTizenPertamaku

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);

returntable;

}

staticEvas_Object*

PanduanDasarPemrogramanTizen

76ProyekTizenPertamaku

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);

/*Panelbasiccontent*/

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);

/*Paneladvancedcontent*/

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);

returnpanel;

}

staticEvas_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);

returnentry;

}

Kemudianmodifikasicreate_base_gui()dantuliskodeprogramdibawahini.

PanduanDasarPemrogramanTizen

77ProyekTizenPertamaku

staticvoid

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)){

introts[4]={0,90,180,270};

elm_win_wm_rotation_available_rotations_set(ad->win,(constint*)(&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);

/*Showwindowafterbaseguiissetup*/

evas_object_show(ad->win);

}

Simpan(save)semuakodeprogramyangtelahditulisdenganmenekanCtrl+spadakeyboard.

MenjalankanProgramTizenkeEmulator

PanduanDasarPemrogramanTizen

78ProyekTizenPertamaku

Untukmemastikankodeprogramyangditulissudahbenardantidakadakesalahanlakukankompilasipadaprojectyangdibuat.Untukmelakukankompilasi,klikkananpadarootfolderproject,kemudianpilihBuildProject.

HasilkompilasinyaakanterlihatpadaConsolediTizenIDE.

Jikatidakadaerror,klikRununtukmenjalankanaplikasi.Padakotakdialogyangmuncul,pilihemulatoryangakandigunakanuntukmenjalankanaplikasi,kemudiankliktombolLaunchuntukmenjalankanaplikasipadaemulatoryangdipilih.

PanduanDasarPemrogramanTizen

79ProyekTizenPertamaku

Tunggubeberapasaatuntukmenjalankanaplikasipadaemulator.BerikuttampilanaplikasiKalkulatoryangberjalanpadaemulator.

PanduanDasarPemrogramanTizen

80ProyekTizenPertamaku

Lakukanpengujiandenganmenekantombolyangadapadakalkulator.

PanduanDasarPemrogramanTizen

81ProyekTizenPertamaku

MenjalankanProgramTizenkeSmartphoneTizenBerikutmerupakanlangkah-langkahuntukmenjalankanAplikasiTizenpadaSmartphoneTizen.

1. HubungkanSmartphoneTizenkekomputerdengankabelUSB.

PanduanDasarPemrogramanTizen

82ProyekTizenPertamaku

2. SmartphoneTizenyangdihubungkankekomputerakanterdeteksipadaConnection

ExplorerdiTizenIDE. Padagambardiatas,SamsungZ1telahterdeteksiterhubungdengankomputer.

3. PilihSmartphoneTizenyangterhubungkekomputerpadaConnectionExplorer.

4. PadaProjectExplorer,klikkananpadafolderproject,danpilihRunAs>TizenNativeApplication.Sebagaialternatif,untukmenjalankanaplikasipadaSmartphoneTizen,tekantombolPlaypadatoolbaratautekanCtrl+F11padakeyboard.Tunggubeberapasaat,makaaplikasiakanberjalanpadaSmartphoneTizen.

PanduanDasarPemrogramanTizen

83ProyekTizenPertamaku

PanduanDasarPemrogramanTizen

84ProyekTizenPertamaku

PendahuluanPadasesiinikitaakanmelakukaninstalasidankonfigurasigunamembuataplikasiTizendiatasplatformUbuntu.DisinipenulisakanmenggunakanUbuntu14.04.4LTS64bitsebagaitestingnya.

PanduanDasarPemrogramanTizen

85PemrogramanTizenuntukPlatformLinux

PersiapanuntukInstalasiBerikutbeberapahalyangperludisiapkanuntukmembuatdanmenjalankanaplikasiTizenpadaplatformUbuntu.

PerangkatKerasBerikutmerupakanperngkatkerasyangdibutuhkanuntukmempersiapkanenvironmentpembuatanaplikasiTizen.

Komponen Minimum Rekomendasi

KecepatanProsesor 2GHz 3GHz

TipeProsesor IntelDual-Core IntelCorei5

Memori(RAM) 3GB 4GB

KapasitasDiskkosong 6GB 10GB

PerangkatLunak

SistemOperasi

UntukpenggunaOperatingSystemUbuntu,instalasiTizenSDK(SoftwareDevelopmentKit)dapatdilakukanmelaluiwebsiteresmiTizenDeveloperpadahttps://developer.tizen.org/development/tools/download.SDKinitelahmencakupIDE,Emulator,toolchain,samplecodedanjugadokumentasi.

Padahalamantersebut,pilihlahversiUbuntuyangsesuaidenganPCataulaptopanda.DisinitelahdisediakaninstalleruntukUbuntu32bitsdanjuga64bits.JikaAndatidakmengetahuiversibitUbuntuanda,andabisamengikutilangkah-langkahberikut:

BukaterminalandaKetikkanperintahUname-a,diikutidengankarakterenterJikamenggunakanUbuntu32bit,makaoutputdariinstruksiini=i686GNU/LinuxJikamenggunakanUbuntu64bit,makaoutputdariinstruksiini=x8664GNU/Linux

AdapunTizenSDKyangdibahaspadabukuinimerupakanTizen2.4Rev3SDKyangmerupakanSDKversiterbaruuntukbulanFebruari2016.PadatampilanwebsiteTizentersebut,fileutamayangperludi-downloadadalahinstallerIDE(IntegratedDevelopment

PanduanDasarPemrogramanTizen

86PersiapanInstalasi

Environment).Agarprosesdownloadbisaberjalanlebihcepat,AndabisamemilihmirroruntuknegaraChina.

JavaRuntimeEnvironment(JRE)padaUbuntu

SebelummelakukaninstalasiSDK,perluandaketahuibahwaTizenSDKinimembutuhkanJavaRuntimeEnvironment(JRE)agarbisadijalankanpadaPC/laptopanda.Olehkarenaitu,andaharusmemastikanperangkatandatelahdilengkapiolehJRE.Inidapatdilakukandenganmudahdenganmengetikkanperintahjavapadaterminalanda.LaptopyangtelahterinstallJREakanmenampilkanoutputsepertigambardibawah.Sebaliknya,jikaperintahinitidakdikenal,terminalakanmenuliskan“Nocommand‘java’found”.

InstalasiJREbisadilakukandenganmengikutilangkah-langkahberikut:

PanduanDasarPemrogramanTizen

87PersiapanInstalasi

1. DownloadinstallerJREpadawebsiteOracleJRE7denganlinksebagaiberikut:http://www.oracle.com/technetwork/java/javase/downloads/jre7-downloads-1880261.html

2. PilihinstalleryangsesuaidenganversiUbuntuanda.i. Linuxx86untukUbuntu32bitii. Linuxx64untukUbuntu64bit

3. Andabisamemilihsalahsatudariduatipefileyangdisediakan(rpmatautar.gz).Padabukuinikamimenggunakanfiletar.gzuntukLinuxx64(jre-7u79-linux-x64.tar.gz)

4. Setelahselesaimelakukandownload,bukakembaliterminalandadanketikkanperintah-perintahberikutpadalokasifileyangsamadenganinstalleranda

Untukmengekstrakfileinstallertar-xvfjre-7u79-linux-x64.tar.gz

BuatlahsebuahdirektorikhususuntukJavadanpindahkanfileJREkedalamnyasudomkdir-p/usr/lib/jvm/jre1.7.0

sudomvjre1.70_79/*/usr/lib/jvm/jre1.7.0/

Install/updatejavasudoupdate-alternatives--install/usr/bin/javajava

/usr/lib/jvm/jre1.7.0/bin/java0

Installdependenciessudoapt-getinstallexpect

sudoapt-getinstallgtk2-engines-pixbuf

sudoapt-getinstalllibgnome2-0

sudoapt-getinstallqemu-user-static

sudoapt-getinstalllibwebkitgtk-1.0-0

sudoapt-getinstallgettext

sudoapt-getinstallgksudo

sudoapt-getinstallmodule-init-tools

sudoapt-getinstalllibudev-dev

PanduanDasarPemrogramanTizen

88PersiapanInstalasi

InstalasiTizenPadatahapini,andatelahsiapuntukmenginstallTizenSDK.Padaterminalanda,ketikanperintahberikut

chmod+xtizen-web-ide_TizenSDK_2.4.0_Rev3_singapore_ubuntu-64.bin

./tizen-web-ide_TizenSDK_2.4.0_Rev3_singapore_ubuntu-64.bin

PastikanandaberadapadadirektoridimanaandamenyimpaninstallerTizenSDK.Outputdaricommandlinetersebutakanmemberikantampilansebagaiberikut:

Untuklangkahpertama,pilihAcceptsebagaitandapersetujuanandaterhadapSoftwareLicense.Kemudianpilihbuttonlingkaranbiru,untukmemulaiprosesinstalasi.Tahapanpenginstalanakanberlangsungdengancepat.Jikaprosesinitelahselesai,pilihlahbuttonDone,danuntukselanjutnyaakanmuncultampilansebagaiberikut:

PanduanDasarPemrogramanTizen

89InstalasiTizen

WindowyangmunculmerupakanpertanyaanseputarUpdateManager.PilihYes,karenapadatahapinikitaakanmelakukankonfigurasiinstalasilibrary-libraryyangdibutuhkan

PanduanDasarPemrogramanTizen

90InstalasiTizen

KonfigurasiSetelahInstalasiTizen

Padabagianini,kitaakanmelakukaninstalldanupdateterhadapTizen-SDKkitamenggunakanTizenUpdateManager.Pilihcontinueuntukmelanjutkanprosesinstalasi,sehinggakomputerandamemberikantampilansebagaiberikut:

Jikaandatidakmemilikisdk-image,andabisamelakukaninstalasidenganmemilihpackageinstalasiyangandabutuhkansesuaidengangambardiatas.DisarankanandamemilihbuttoninstalluntukpackageSDKterbaru,seperti2.4Mobiledan2.31.Wearable.

BagiandayangmemilikiSDKimage,prosesinstalasibisadilakukandengancaramembukamenukonfigurasipadawindowTizenUpdateManagerpadapojokkananatas.

PanduanDasarPemrogramanTizen

91KonfigurasiSetelahInstalasiTizen

Kemudian,gantiInstalloptiondengan“SDKImage”danpilihlahfileisoyangandamilikiuntukmelanjutkanprosesinstalasi.Pilihbuttonconfirmuntukmemulaiinstalasi.

PanduanDasarPemrogramanTizen

92KonfigurasiSetelahInstalasiTizen

MengenalTizenDevelopmentIDEPadatahapiniandatelahberhasilmelakukaninstalasiTizenSDK.

Programyangtelahterinstaldapatdilihatpadafolderhome/tizen-sdk/ide.AndabisamenjalankanTizenIDEdenganmemilihiconeclipsepadafiletersebut.Opsikedua,andajugabisamenjalankanaplikasidenganmencarinyapadamenusearchUbuntu,denganmengetikkankata“tizen”.Semuaaplikasitizenyangtelahterinstallakandimunculkan,seperti,IDE,WebSimulator,Emulator,UpdateManagerdanDynamicAnalyzer.

PanduanDasarPemrogramanTizen

93MengenalTizenDevelopmentIDE

Untuktahappertamaandadimintauntukmelakukankonfigurasialamatworkspace.Jikaandaberkenanuntukmenyimpanprojectpadadirektoridefaultsepertiyangditampilkan,pilihOK.Namun,jikatidak,pilihBrowsedanatursedemikianlokasiworkspaceyangandainginkan.

Makaakanmuncultampilanwindowsebagaiberikut:

PanduanDasarPemrogramanTizen

94MengenalTizenDevelopmentIDE

PanduanDasarPemrogramanTizen

95MengenalTizenDevelopmentIDE

TizenEmulatorTizenSDKtelahdilengkapidenganemulatorsehinggamemungkinkankitauntukbisamelakukansimulasiprogramtanpaharusmemilikideviceSamsungdenganOSTizen.KonfigurasiemulatorTizenDevicebisadilakukandengancaramenjalankanEmulatorManageryangtelahter-instalseiringdenganinstalasiTizenSDK.

Untukmempermudahpencarian,padamenusearchaplikasiyangadapadaUbuntuanda,ketik“Emulatormanager”,sepertigambarberikut:

PilihiconEmulatorManagertersebut,yangselanjutnyaakanmemberikantampilansebagaiberikut:

PanduanDasarPemrogramanTizen

96MengenalTizenEmulator

UntukmembuatEmulator/VirtualMachine(VM)baru,pilihbutton“CreateNew”yangadapadawindowdiatas,sehinggamemberikantampilansebagaiberikut:

AndabisamelakukankonfigurasisepertiName,Display,Processor,danRAMsesuaidengankebutuhandevelopment.Jikatelahsesuaidengankonfigurasiyangdiinginkanpilihconfirm

PanduanDasarPemrogramanTizen

97MengenalTizenEmulator

Untukmenjalankanemulator,klikbuttonpanahyangberadapadaicontizen-01diatas.SecaraotomatisemulatormanagerakanmenampilkanVMdarideviceyangtelahandasettingsebelumnyasepertigambardibawahini:

Layaknyasebuahsmartphone,emulatorTizeninidilengkapidenganbuttonmenu,home,back,powerdanjugavolume.

PanduanDasarPemrogramanTizen

98MengenalTizenEmulator

HelloTizenPadabagianiniakandijelaskanprosedursederhanauntukmembuatsebuahprogram“Helloworld”padaTizenSDK.

MembuatProyekBaruUntuklangkahpertama,bukaTizenIDEanda,danbuatlahprojectbarudengannama“HelloWorld”.InidilakukandenganmemilihmenuFile->New->Project.Kemudianpadawindow“NewProject”,pilihlahTizenNativeProject.

Padawindowberikutnya,andabisamenemukanbeberapatemplateyangtelahdipersiapkanolehTizenIDE.Untuktahapini,marikitagunakantemplateprojectyangpalingsederhana,yaituBasicUIApplication.Untukprojectawalkaliini,gantinamaprojectmenjadi“HelloWorld”,kemudianklikbuttonFinish.

PanduanDasarPemrogramanTizen

99HelloWorldTizen

TizenIDEandaakanmemberikantampilansebagaiberikut:

PanduanDasarPemrogramanTizen

100HelloWorldTizen

Projectbaruyangbarusajaandabentuk,dapatdilihatpadatabProjectExplorerdenganbeberapafolderdefault,diantaranya:

inc,merupakanfolderuntukdefaultincludepathlib,merupakanfolderuntukexternallibraryfilesres,merupakanfolderuntukresourcesfilesshared,merupakanfolderresourcefilesyangbisadi-sharedenganaplikasilainnya.src,merupakanfolderutamayangberisikankodeaplikasitizen-manifest.xml,merupakanmanifestfiledariaplikasianda.

MembuatProgramJikaandainginmelakukankonfigurasiterhadapinformasiumumaplikasianda,andabisamelakukannyadenganmemilihtizen-manifest.xmlyangadapadaProjectExplorer.TizenIDEakanmemberikantampilansebagaiberikut:

PanduanDasarPemrogramanTizen

101HelloWorldTizen

Andabisamelakukankonfigurasiterhadappropertiaplikasidenganmemanfaatkantabyangberadadibawahmanifesteditor

Overview:Digunakanuntukmendefinisikaninformasiumum,seperti,applicationpackage,version,author,dandeskripsiFeatures:Digunakanuntukmendefinisikanfitursoftwaredanhardwareyangharusdimilikiagaraplikasibisadijalankandenganbaik.Privileges:DigunakanuntukmengaturprivilegesLocalization:Digunakanuntukmengatursupportedlocales,sepertilabel,deskripsi,danicon.Advanced:Digunakanuntukmendefinisikanadvancedfeaturedariaplikasi,sepertimetadata,datacontrol,applicationcontrolfunctionalities,account,danmiscellaneousoption.tizen-manifest.xml:Digunakanuntukmelakukankonfigurasimanualpadafiexml.

MenjalankanProgramSebelumkitamempelajaripotongankodedariaplikasikita,marikitajalankanaplikasikitadenganmemilihbuttonRun.

PanduanDasarPemrogramanTizen

102HelloWorldTizen

BagiandayangbarupertamakalimenjalankanaplikasidiTizenIDE,andaakanmendapatipesanwarninguntukmelakukanprosesSigningsepertidibawahini:

Olehkarenaitu,aturlahkonfigurasiSigningandaterlebihdahuludenganpertama-tamamengklikPreferences>TizenSDK>SecurityPoliciesyangtertulispadawindowdiatas.Sehinggamemberikantampilanberikut:

Pertama,pilihbuttonAdd,sehinggamemunculkanwindow“ProfileName”.IsikannamaprofileyangandainginkandankemudianpilihOK.Langkahselanjutnya,pilihbuttonGenerateuntukmendapatkanAuthorCertificate.Setelahmengisikandatayangdiminta,pilihOK.DanterakhirpilihApplydanOK.

JalankanProgramkeTizenEmulator

Jalankanprogramandasekalilagi,makaakanmunculpilihanemulatorsebagaiberikut:

PanduanDasarPemrogramanTizen

103HelloWorldTizen

Jikasebelumnyaandabelumpernahmembuatemulator,andabisamemilihbuttonEmulatorManagerdanmelakukankonfigurasiemulatorberdasarkanpenjelasansub-babsebelumini.Jikaandatelahmeilikiemulator,makajalankanaplikasidenganmemilihbuttonLaunch.TizenSDKsecaraotomatisakanmenjalankanaplikasiandapadaemulatoryangtelahandapilih.

JalankanProgramkePeralatanTizen

UntukmenjalankanaplikasihubungkandeviceTizenandaterlebihdahuludengankomputermenggunakankabelUSB.KemudianjalankanprogramsepertibiasadenganmenekantombolrunningpadaIDE.Padapilihantargetrunning,deviceandaakanmunculsebagai

PanduanDasarPemrogramanTizen

104HelloWorldTizen

salahsatuopsi.Pilihdeviceanda,danpilihbuttonLaunch.

Penjelasantentangkodeprogram

KarenaTizenSDKdibangundenganbahasaCyangtidakmendukungkonsepOOPlayaknyajava,makakonsepstructdanpointerdiimplementasikanagarmempermudahketerbacaanprogram.

appdata_s

appdata_smerupakanobjectberupastructyangmenampungsemuakebutuhanakanEvas_Objectdariaplikasikita.AdatigaEvas_Objectyangdibutuhkanuntukmenampilkan“HelloTizen”padadeviceTizenkita,yaitu:win,conformdanlabel.

ui_app_lifecycle_callback_s

Sepertiyangdilihatpadapotongankodediatas,event_callbackmerupakanvariabledaritipedatastructbernamaui_app_lifecycle_callback_s.Structinimemilikibeberapaatributcallbackfunctionyangharusdiinisialiasiseperti:

create,fungsiyangakandipanggilketikaaplikasipertamakalidijalankanterminate,fungsiyangdijalankansekali,saataplikasiberhentidigunakanpause,fungsiyangdijalankansaataplikasitidakdigunakandalamwaktutertentudanmenjadiinvisibleterhadapuser

PanduanDasarPemrogramanTizen

105HelloWorldTizen

resume,fungsiyangdipanggilsetelahfasepauseyaitusaataplikasikembalidigunakan.app_control,fungsiyangdipanggilsaataplikasilainmengirimkanrequestuntukmenjalankanaplikasiini.

Padapotongankodediatas,setiapatributinidiinisialisasidenganfungsi-fungsiyangdidefinisikanpadahelloworld.c.Sebagaicontoh,atributecreatediinisialisasidenganfungsiapp_create.

Fungsiapp_createyangadapadagambardiatasbertujuanuntukmelakukaninisialisasiUIketikaaplikasibarusajadijalankan.Padagambardiatasterlihatbahwafungsiapp_creatememanggilfungsicreate_base_gui()yangberfungsisebagaikonfigurasiUIberupawindow,conformant,danlabel“HelloTizen”yangdimunculkanpadaaplikasiHelloWorldini.

PanduanDasarPemrogramanTizen

106HelloWorldTizen

Padafungsidiatas,parameterfungsiyangberupapointeryangmenunjukstructappdata_sdigunakanuntukmenginisialisasiwindowdanconformantdariaplikasiTizenkita.WindowmerupakanlayerpalingbawahdariaplikasiTizen.Untukmengisiwindowdenganelemen-elemenberupabutton,text,radiobuttondsb,diperlukansuatubaselayerbernamaconformant.

Sesuaidengankebutuhanaplikasipertamakitaini,elemenyangcukupditambahkandiatasbaselayeradalahlabel.Labelinibertuliskan<align=center>HelloTizen</align>yangkemudianditampilkansebagaicontentdiatasconformant.

app_event_handler_h

Variabelinidigunakansebagaieventhandleryangdigunakanuntukmenampungalamatfungsi-fungsihandleryangkitainginkan.Secaradefault,terdapat5eventyangdidefinisikanpadafungsimain,yaitu:

eventuntukmeng-handlekondisilowbatteryeventuntukmeng-handlekondisilowmemoryeventuntukmeng-handleperubahanorientasideviceeventuntukmeng-handleperubahanbahasa

PanduanDasarPemrogramanTizen

107HelloWorldTizen

eventuntukmeng-handleperubahanformatregionatauzonawilayah

PanduanDasarPemrogramanTizen

108HelloWorldTizen

ProjectTizenPertamaku:KalkulatorSederhanaMenggunakanUIBuilderPadasub-babkaliini,kitaakanmembuatsebuahprogramkalkulatorsederhanadenganmemanfaatkanfiturWYSIWYG(WhatYouSeeisWhatYouGet)dariTizenSDK.MetodeWYSIWYGinimemungkinkankitauntukmembangunUItizensecaradrag-and-drop.

MembuatProyekBaruUntuklangkahpertama,marikitabuatprojectbarubernamakalkulator.Pertama,pilihMenu>New>Project>TizenNativeProjectdankemudianpilihbuttonNext.KemudianpilihtemplateUIBuilder-SingleViewyangdiperuntukkanuntukdeveloperyanginginmembangunaplikasidengansatutampilanview.GantinamaProjectandadengan“Kalkulator”dankemudianpilihFinish.

MembuatTampilan(UI)Tizen

PanduanDasarPemrogramanTizen

109ProyekTizenPertamaku

TampilanpertamadariIDEandaadalahwindowWYSIWYGdengansebuahfilebernamalayout.tuml.PadabagiankiriterdapatPaletteyangberisikanButton,DisplayUIComponent,InputUI,ItemContainer,UIComponentContainer,ViewContainer,danSnippets.

Tahap1-MendesainUserInterface

Perluandaketahui,bahwasebelummeletakkanberbagaiitemberupabutton,label,textviewdsb,diperlukansebuahobjectcontaineryangdigunakanuntukmenampungsemuaitem-itemini.PenjelasanterkaitcontaineryangdisediakanolehTizenSDK,bisaditemukanpadawebsitetizendevelopment,ataubukupanduankitapadaseriesberikutnya.

Untukmenyederhanakanprogramyangakankitabuat,marikitagunakanUIComponentComponentberupaGrid.ContainerGridinimemungkinkankitauntukmeletakkanberbagaiitempadasetiapzonascreenlayardevice.Langkah-langkahnya,PilihUIComponentContaineryangadapadatabPalette,kemudiandragdandropiconGridkelayardesign.Sebagaihasilnya,secaraotomatis,seluruhscreenlayarmenjadicontainerGrid.Memangtidakadaperubahanyangterlihat,tapipadatabOutlinedibagianbawah,bisadilihatbahwaViewlayoutkitamemilikianakberupacontainerGrid.

Untukmembuatkalkulatorsederhana,kitaakanmenggunakantigaitemutama,yaituButton,Label,danEntry

PanduanDasarPemrogramanTizen

110ProyekTizenPertamaku

KetikaandamelakukandragdandropuntuksetiapitemdariPalette,perhatikantabpropertiesyangadapadapojokkananIDE.UntuksetiapitemandabisamemodifikasiIDdariitem,textyangtertulis,style,dsbpadatabAttributesdariProperties.

Padatampilandiatas,adapunbutton,label,danEntryyangdigunakanmenggunakanIDdantextsebagaiberikut:

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 KALKULATORSAYA

Tahap2-MengimplementasikanEventListener

Padatahapini,UserInterfaceyangandainginkantelahselesaidibangun.PadatahapkeduakitaakanmengimplementasikankodeprogramterkaitEventhandlerketikabuttondi-click.PadamekanismeWYSIWYGiniandabisamelakukannyadengancaramemanfaatkanTabEventyangadapadaTabProperties,sepertigambarberikut:

Untuksetiapbuttonyangdi-klik(clicked),kitaimplementasikaneventhandlernyadenganmemilihtanda+padatabProperties/Eventsesuaidengangambardiatasdandilanjutkandenganmemilihtanda→sehinggaIDEakanmenampilkanpotonganfungsiyangdapatdiisi

PanduanDasarPemrogramanTizen

111ProyekTizenPertamaku

sesuaidengankebutuhan.

Untuksetiapbuttonangkadari1,2,3,4,5,6,7,8,9,dan0bisadiimplementasikandenganpotongankodeberikut:

EntryLayarmerupakanIDdarilayarkalkulatorkita.Padafungsidiatas,ketikabuttonangka1diklikmakakitaakanmelakukanupdatekepadalayar.Lakukanhalserupauntukangka-angkalainnya.UntukButtonReset,aturlayarmenjadi0sepertipotongankodeberikut:

Andabisamenyesuaikanimplementasifungsisesuaidengankebutuhananda.Untukprogramkalkulatorsederhanaini,kitamenggunakanbeberapaglobalvariabelyangbisadiaksesdariberbagaifolderprogram.

PanduanDasarPemrogramanTizen

112ProyekTizenPertamaku

Globalvariabelinidideklarasikanpadasebuahheaderfile(disinikitameletakkannyadiapp_main.h).Adabeberapaglobalvariabelyangdigunakansepertiangka,numberIsClicked,operatorIsClicked,danlength.Variabelinidigunakanuntukmembantuprosesperhitungandanvalidasibuttonketikadiklikolehuser.

Nahmudahbukan?Lakukanpulahalyangserupauntukmengimplementasikanbuttonoperatortambah,kurang,bagi,kalidanjugasamadengan.Selamatberlatih:)

PanduanDasarPemrogramanTizen

113ProyekTizenPertamaku

PendahuluanPadasesiinikitaakanmelakukaninstalasidankonfigurasigunamembuataplikasiTizendiatasplatformMac.DisinipenulisakanmenggunakanMacOSXElCapitan(10.11.x)sebagaitestingnya.

PanduanDasarPemrogramanTizen

114PemrogramanTizenuntukPlatformMac

PersiapanuntukInstalasiSecaraumum,halyangperludisiapkandalammembangunlingkunganpengembanganTizensebagaiberikut:

Perangkatkeras:MesinMac,sebisamungkindenganspesifikasiyangmemangdirancanguntukdevelopmentKapasitasmemorysebaiknyaminimal4GBataulebihKetersediahardiskkuranglebih5GB

Perangkatlunak:JavaLegacyuntukMac.InidapatdiunduhdiwebsiteApple.Sebagaicontohinihttps://support.apple.com/kb/dl1572TizenSDK.Inidapatdiunduhdihttps://developer.tizen.org/development/tools/download.DirekomendasikanunduhSDKyangterbaruuntukMac

SebelummelakukaninstalasiSDKTizen,pastikanMacandasudahterinstallXcodeuntukmemastikansemuaprasyaratdevelopmentpadaMacterpenuhi.

Langkahselanjutnya,kitaakanmelakukaninstalasiSDKTizen.

PanduanDasarPemrogramanTizen

115PersiapanInstalasi

InstalasiTizenSetelahunduhfileSDKTizenuntukMacdihttps://developer.tizen.org/development/tools/download,andadapatmenjalankanfilesetup(*.dmg)sehinggaakanmendapatkankotakdialogsepertidibawahini

ProsesinstalasiinimemerlukankoneksiInternetuntukprosesupdatenya.Opsilain,andadapatunduhfileSDKImageterlebihdulu.

Padagambardiatas,klikfileinstallersehinggaandamendapatkankotakdialogsepertipadagambardibawahini.

Pilihlokasiinstalasinya.Jikasudah,klikcheckboxAccept.

PanduanDasarPemrogramanTizen

116InstalasiTizen

Untukmemulaiinstalasi,kliktombollingkanyangdidalamnyaadapanahkebawah.

ProsesinstalasicukuplamauntukandayangmemilikikoneksiInternetyangpelan.

Jikasudahselesaiprosesinstalasinya,andadapatmelihatmenuUpdateManager-x.ydimanax.yadalahversidariTizenUpdateManager.

Langkahselanjutnya,kitaharusmelakukankonfigurasiTizenSDKdanEmulatornya.

PanduanDasarPemrogramanTizen

117InstalasiTizen

KonfigurasiSetelahInstalasiTizenUntukmelengkapidevelopment,kitaharusmenjalankanUpdateManagersebagaibagianpostinstallation.TujuannyauntukinstalasiSDKTizenyangdidalamnyaadaDevelopmenttooldanEmulator.

KetikaUpdateManagerinidijalankan,kitaakanmendapatkankotakdialogsepertidibawahini.

PanduanDasarPemrogramanTizen

118KonfigurasiSetelahInstalasiTizen

PadatabAllPackages,installbagianyangingindiinstall.SebaiknyacentangbagianyangterbarumisalkanuntukMobileatauWearableataukeduanyajikakitainginmembuataplikasidengantargetMobiledanWearable.

ProsesiniakanmemerlukanwaktusesuaidengankecepatanInternetyangdimiliki.

JikapembacamelakukanunduhduluSDKimagesupayamemangkasprosesunduhdariinstalasimakakitabisakonfigurasibagiansettingnya.

Klikikonsettingsepertiyangditunjukkanpanahdigambardibawahini.

PanduanDasarPemrogramanTizen

119KonfigurasiSetelahInstalasiTizen

Setelahdiklik,kitaakanmendapatkotakdialogdibawahini.KlikbagianInstallOption,danpilihSDKImage.KemudianisidenganfileSDKImageyangtelahdiunduhsebelumnya.

PanduanDasarPemrogramanTizen

120KonfigurasiSetelahInstalasiTizen

Jikasudahprosesinstalasinya,andasudahsiapmembangunaaplikasiTizen.

PanduanDasarPemrogramanTizen

121KonfigurasiSetelahInstalasiTizen

MengenalTizenDevelopmentIDESetelahdiinstallsemuaSDKTizentermasukIDEnya,kitaakanmelihatmenuTizenIDEsepertiyangterlihatpadagambardibawahini.

KlikmenuTizenIDE-x.ypadamenuanda.

PanduanDasarPemrogramanTizen

122MengenalTizenDevelopmentIDE

Pertamakalikitaakanditanyakanfolderuntukworking.Pilihfolderkerjaanda.

Jikasudah,kliktombolOK.DanakhirnyakitamendapatkanTizenIDEsepertiyangterlihatpadagambardibawahini.

Secaraumum,TizenIDEmiripdenganEclipse.Ya!!,karenaTizenIDEdikembangkandariEclipseIDE.

PanduanDasarPemrogramanTizen

123MengenalTizenDevelopmentIDE

TizenEmulatorTidakperlumemilikiperangkatberbasisTizenuntukmengujiaplikasiTizenkitaberhasilatautidak.

TizenEmulatormemungkingkankitamembuataplikasiTizendengancepat.

DenganmengklikmenuEmulatorManager-x.ydimanax.yadalahversiaplikasi,kitaakanmendapatkanaplikasiTizenEmulatorManagersepertiyangterlihatpadagambardibawahini.

PanduanDasarPemrogramanTizen

124MengenalTizenEmulator

MembuatTizenEmulatorBaruKitadapatmembuatEmulatorbarumelaluiEmulatorManager.CukupklikCreateNewpadaformmenudepandibagiantabmobile.

Jikasudahdiklik,kitaakanmelihatpropertidariTizenEmulatorini.Contohtampilansepertiyangterlihatpadagambardibawahini.

PanduanDasarPemrogramanTizen

125MengenalTizenEmulator

IsinamaEmulatordanbeberapafiturlainnyasepertiresolusidanMemory.SesuaikandengankapasitasMacyangdimiliki.

Jikasudah,kliktombolConfirmuntukmenyimpannya.Contohhasilnyadapatdilihatpadagambardibawahini.

PanduanDasarPemrogramanTizen

126MengenalTizenEmulator

PanduanDasarPemrogramanTizen

127MengenalTizenEmulator

ApabilakitainginmengeditTizenEmulator,kitacukupklikikonEmulatordanklikikoneditsebelahkanansepertiyangterlihatpanahwarnamerahdigambardibawahini.

MenjalankanTizenEmulatorUntukmenjalankanTizenEmulator,kitadapatlangsungmengklikpanahdariEmulatoryangtelahdibuatsepertiyangterlihatpadagambardibawahini.

PanduanDasarPemrogramanTizen

128MengenalTizenEmulator

SelanjutnyakitaakanmelihatkotakdialogTizenEmulator.ButuhwaktuuntukmenampilkanisidariTizenOSini.

PanduanDasarPemrogramanTizen

129MengenalTizenEmulator

Contohhasilnyadapatdilihatpadagambardibawahini.

GeserpadalayarTizenEmulatordenganmenggunakanMouseuntukmelihatisidariTizenEmulatorini.ContohTizenSmartphoneEmulatoryangmenampilkanisibeberapaaplikasiTizen.

PanduanDasarPemrogramanTizen

130MengenalTizenEmulator

PanduanDasarPemrogramanTizen

131MengenalTizenEmulator

HelloTizenPadasesiinikitaakanmembuatapliaksisederhanayaitu"helloworld"yangmenampilkantulisanpadaaplikasiTizenMobile.

MembuatProyekBaruPadasesiinikitamenggunakanTizenIDEuntukmembuataplikasiTizendengantargetplatformMobile.

PadaTizenIDEklikmenuFile->New->Project.

Setelahdiklikmenunya,kitaakanmelihatkotakdialogpembuatanprojectbaru.PilihTizenNativeProjectpadakategoriTizen.Contohtampilannyasepertipadagambardibawahini.

PanduanDasarPemrogramanTizen

132HelloWorldTizen

KemudianakanmelihatbeberapatemplateprojectyangdisediakanolehTizen.Padakasusini,kitamemilihBasicUIyangberadapadakategoriMobile-x.ydimanax.yversidariSDKnya.

Berinamaprojectsesuaikeinginan,misalkanHelloTizen.Jikasudah,kliktombolFinish.

PanduanDasarPemrogramanTizen

133HelloWorldTizen

Apabilaprojectpembuatanprojectbarusudahselesai,kitaakanmendapatkankodeprogramsesuaidengantemplateyangdipakai.

PanduanDasarPemrogramanTizen

134HelloWorldTizen

MembuatProgramKalaukitaperhatikan,dengantemplateBasicUI,kitaakanmelihatduafile,misalkannamaprojectHelloTizen,yaituhellotizen.hdanhellotizen.c.

PanduanDasarPemrogramanTizen

135HelloWorldTizen

Kalaukitabukafilehellotizen.cdankitaperhatikanfunctioncreate_base_gui(),kitaakanmelihataplikasiiniakanmembuatGUIdanmemasukkansebuahobjeklabeldimanainidibuatdengancaramemanggilelm_label_add().

Kemudianpemberiannilaitextpadaobjeklabel,kitamenggunakanfungsielm_object_text_set().

PanduanDasarPemrogramanTizen

136HelloWorldTizen

Berikutinipotongankodeprogramnya.

PanduanDasarPemrogramanTizen

137HelloWorldTizen

staticvoid

create_base_gui(appdata_s*ad)

{

/*Window*/

/*Createandinitializeelm_win.

elm_winismandatorytomanipulatewindow.*/

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)){

introts[4]={0,90,180,270};

elm_win_wm_rotation_available_rotations_set(ad->win,(constint*)(&rots),4);

}

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);

/*Conformant*/

/*Createandinitializeelm_conformant.

elm_conformantismandatoryforbaseguitohavepropersize

whenindicatororvirtualkeypadisvisible.*/

ad->conform=elm_conformant_add(ad->win);

elm_win_indicator_mode_set(ad->win,ELM_WIN_INDICATOR_SHOW);

elm_win_indicator_opacity_set(ad->win,ELM_WIN_INDICATOR_OPAQUE);

evas_object_size_hint_weight_set(ad->conform,EVAS_HINT_EXPAND,EVAS_HINT_EXPAND);

elm_win_resize_object_add(ad->win,ad->conform);

evas_object_show(ad->conform);

/*Label*/

/*Createanactualviewofthebasegui.

Modifythisparttochangetheview.*/

ad->label=elm_label_add(ad->conform);

elm_object_text_set(ad->label,"<align=center>HelloTizen</align>");

evas_object_size_hint_weight_set(ad->label,EVAS_HINT_EXPAND,EVAS_HINT_EXPAND);

elm_object_content_set(ad->conform,ad->label);

/*Showwindowafterbaseguiissetup*/

evas_object_show(ad->win);

}

Simpansemuakodeprogramnya.

MenjalankanProgramUntukmenjalankanaplikasi,kitamelakukankompilasiprojectkitadengancaramengklikkananprojectnyasehinggakitaakanmendapatkanmenu.PilihBuildProject.

PanduanDasarPemrogramanTizen

138HelloWorldTizen

JalankanProgramkeTizenEmulator

ApabilakitasudahmembuatTizenEmulator,kitadapatmenjalankandenganmengklikkananprojectdanpilihmenuRunAs.

PanduanDasarPemrogramanTizen

139HelloWorldTizen

KemudiankitakanmendapatkankotakdialogTizenEmulator.PilihEmulatornya.JikasudahkliktombolLaunch.

PanduanDasarPemrogramanTizen

140HelloWorldTizen

AplikasiTizenEmulatorakanrunning.

PanduanDasarPemrogramanTizen

141HelloWorldTizen

Jikatidakmunculaplikasinya,lakukanRunAslagisehinggakitaakanmendapatkanaplikasimunculsepertipadagambardibawahini.

PanduanDasarPemrogramanTizen

142HelloWorldTizen

JalankanProgramkePeralatanTizen

UntukmenjalankanaplikasikeTizen,kitahubungkanSmartphoneTizenkekomputerdankonfigurasikedevice.

Kemudianprosesrunningsepertibiasa.

DebuggingBagipembacayangsudahpernahmemilikipengalamanmenggunakanEclipsemakaprosesdebuggingpadaTizenIDEmemilikipengalamanyangsama.

Cukupklikkananpadakodeprogramyangakandianalisadannantiakankeluarmenu,pilihAddBreakPoint.

PanduanDasarPemrogramanTizen

143HelloWorldTizen

Jikasudah,kitaakanmelihatbulatanwarnabirudisampingkodeprogram.

PanduanDasarPemrogramanTizen

144HelloWorldTizen

SekarangkitamelakukandebuggingdengancaramengklikkananprojectnyadanpilihmenuDebugAs.

PanduanDasarPemrogramanTizen

145HelloWorldTizen

Prosessebuggingberjalan.UntuktracebisamenggunakanF5atauF6.

Nantiprosesiniakanmasukkebreakpointyangtelahkitatentukan.

PanduanDasarPemrogramanTizen

146HelloWorldTizen

Kliktombolikonmerahuntukmengakhiriprosesdebugging.

KlikTizenNativebagiankananatasuntukkembalikemodecodeeditorawalnya.

PanduanDasarPemrogramanTizen

147HelloWorldTizen

Ok,cukupmudahbukanprosesdebuggingnya?

PanduanDasarPemrogramanTizen

148HelloWorldTizen

ProjectTizenPertamaku:KalkulatorSederhanaPadasesiinikitaakanmembuataplikasisederhanayaitukalkulatordenganmenggunakanNativeApplication.

TujuanHalyangingindicapaidisiniadalahbagaimanakitamemanfaatkankomponenUIstandardyangdisediakanolehTizenSDKsepertilabel,grid,buttondansebagaimanya.

MembuatProyekBaruPertamakalikitamembuatprojectbarumelaluimenuFile->News->TizenNativeProject.PilihtemplateBasicUIpadakategoriMOBILE.isinamaproject,misalkanMyCalculator.

Jikasudah,kliktombolFinish.

Nantihasildariprojectinikitaakanddapatkanduafile.hdan.c.MisalkannamaprojectnyaadalahMyCalculatormakaakandihasilkanfilemycalculator.hdanmycalculator.c.

PanduanDasarPemrogramanTizen

149ProyekTizenPertamaku

MembuatTampilan(UI)TizenPadapembuatanUIuntukaplikasikitaakanmenggunakanNativeUIbawaandariTizenAPI.Tampilanaplikasiakandibuatpadafilemycalculator.c.

Tampilanyangakandibuatsepertiyangdilihatpadagambardibawahini.

Prosesnyaakandijelaskanpadasesiselanjutnya.

MembuatProgramTizenPertamakalikitamodifikasimycalculator.c.Padastructappdatakitamodifikasi.Asalkodeprogramsebagaiberikut.

typedefstructappdata{

Evas_Object*win;

Evas_Object*conform;

Evas_Object*label;

}appdata_s;

Diubahmenjadisebagaiberikut.

PanduanDasarPemrogramanTizen

150ProyekTizenPertamaku

typedefstructappdata{

constchar*name;

Evas_Object*win;

Evas_Object*bg;

Evas_Object*conform;

Evas_Object*entry;

Evas_Object*basic_content;

Evas_Object*advanced_content;

}appdata_s;

SelanjutnyakitamembuatfungsigunamenampilkanUIbeberapatombolkalkulatorsepertitombol0,1,2...9dantombol+,-,/sejenisnya.

staticEvas_Object*

create_bg(Evas_Object*parent)

{

Evas_Object*bg;

if(parent==NULL)returnNULL;

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);

returnbg;

}

staticEvas_Object*

create_conform(Evas_Object*parent)

{

Evas_Object*conform,*bg;

if(parent==NULL)returnNULL;

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);

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);

returnconform;

}

staticvoid

rotation_cb(void*data,Evas_Object*obj,void*event_info)

PanduanDasarPemrogramanTizen

151ProyekTizenPertamaku

{

appdata_s*ad=data;

intcurrent_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);

}

}

staticvoid

clicked_0_cb(void*data,Evas_Object*objEINA_UNUSED,void*event_infoEINA_UNUSED)

{

Evas_Object*entry=data;

elm_entry_entry_append(entry,"<font_size=50>0</font_size>");

}

staticvoid

clicked_1_cb(void*data,Evas_Object*objEINA_UNUSED,void*event_infoEINA_UNUSED)

{

Evas_Object*entry=data;

elm_entry_entry_append(entry,"<font_size=50>1</font_size>");

}

staticvoid

clicked_2_cb(void*data,Evas_Object*objEINA_UNUSED,void*event_infoEINA_UNUSED)

{

Evas_Object*entry=data;

elm_entry_entry_append(entry,"<font_size=50>2</font_size>");

}

staticvoid

clicked_3_cb(void*data,Evas_Object*objEINA_UNUSED,void*event_infoEINA_UNUSED)

{

Evas_Object*entry=data;

elm_entry_entry_append(entry,"<font_size=50>3</font_size>");

}

staticvoid

clicked_4_cb(void*data,Evas_Object*objEINA_UNUSED,void*event_infoEINA_UNUSED)

{

Evas_Object*entry=data;

elm_entry_entry_append(entry,"<font_size=50>4</font_size>");

}

staticvoid

clicked_5_cb(void*data,Evas_Object*objEINA_UNUSED,void*event_infoEINA_UNUSED)

{

Evas_Object*entry=data;

elm_entry_entry_append(entry,"<font_size=50>5</font_size>");

PanduanDasarPemrogramanTizen

152ProyekTizenPertamaku

}

staticvoid

clicked_6_cb(void*data,Evas_Object*objEINA_UNUSED,void*event_infoEINA_UNUSED)

{

Evas_Object*entry=data;

elm_entry_entry_append(entry,"<font_size=50>6</font_size>");

}

staticvoid

clicked_7_cb(void*data,Evas_Object*objEINA_UNUSED,void*event_infoEINA_UNUSED)

{

Evas_Object*entry=data;

elm_entry_entry_append(entry,"<font_size=50>7</font_size>");

}

staticvoid

clicked_8_cb(void*data,Evas_Object*objEINA_UNUSED,void*event_infoEINA_UNUSED)

{

Evas_Object*entry=data;

elm_entry_entry_append(entry,"<font_size=50>8</font_size>");

}

staticvoid

clicked_9_cb(void*data,Evas_Object*objEINA_UNUSED,void*event_infoEINA_UNUSED)

{

Evas_Object*entry=data;

elm_entry_entry_append(entry,"<font_size=50>9</font_size>");

}

staticvoid

clicked_c_cb(void*data,Evas_Object*objEINA_UNUSED,void*event_infoEINA_UNUSED)

{

Evas_Object*entry=data;

elm_entry_entry_set(entry,"<align=right>");

}

staticvoid

clicked_divide_cb(void*data,Evas_Object*objEINA_UNUSED,void*event_infoEINA_UNUSED)

{

Evas_Object*entry=data;

elm_entry_entry_append(entry,"<font_size=50>/</font_size>");

}

staticvoid

clicked_multi_cb(void*data,Evas_Object*objEINA_UNUSED,void*event_infoEINA_UNUSED)

{

Evas_Object*entry=data;

elm_entry_entry_append(entry,"<font_size=50>X</font_size>");

}

staticvoid

clicked_plus_cb(void*data,Evas_Object*objEINA_UNUSED,void*event_infoEINA_UNUSED)

PanduanDasarPemrogramanTizen

153ProyekTizenPertamaku

{

Evas_Object*entry=data;

elm_entry_entry_append(entry,"<font_size=50>+</font_size>");

}

staticvoid

clicked_minus_cb(void*data,Evas_Object*objEINA_UNUSED,void*event_infoEINA_UNUSED)

{

Evas_Object*entry=data;

elm_entry_entry_append(entry,"<font_size=50>-</font_size>");

}

staticvoid

clicked_dot_cb(void*data,Evas_Object*objEINA_UNUSED,void*event_infoEINA_UNUSED)

{

Evas_Object*entry=data;

elm_entry_entry_append(entry,"<font_size=50>.</font_size>");

}

staticEvas_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);

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);

PanduanDasarPemrogramanTizen

154ProyekTizenPertamaku

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);

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);

PanduanDasarPemrogramanTizen

155ProyekTizenPertamaku

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);

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);

PanduanDasarPemrogramanTizen

156ProyekTizenPertamaku

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);

returntable;

}

staticEvas_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);

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);

PanduanDasarPemrogramanTizen

157ProyekTizenPertamaku

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);

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);

PanduanDasarPemrogramanTizen

158ProyekTizenPertamaku

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);

returntable;

}

staticEvas_Object*

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);

PanduanDasarPemrogramanTizen

159ProyekTizenPertamaku

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);

/*Panelbasiccontent*/

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);

/*Paneladvancedcontent*/

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);

returnpanel;

}

staticEvas_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);

returnentry;

}

Kemudiankitamodifikasifungsicreate_base_gui()dantuliskodeprogramdibawahini.

PanduanDasarPemrogramanTizen

160ProyekTizenPertamaku

staticvoid

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)){

introts[4]={0,90,180,270};

elm_win_wm_rotation_available_rotations_set(ad->win,(constint*)(&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);

/*Showwindowafterbaseguiissetup*/

evas_object_show(ad->win);

}

Simpanprogramsemuanya.

MenjalankanProgramTizenkeEmulatorPertamakalidilakukanadalahmelakukankompilasiuntukmemastikantidakadaerrorpadaprogramkita.

PanduanDasarPemrogramanTizen

161ProyekTizenPertamaku

CukupklikkananpadaprojectkitadanpilihBuildProject.

Hasilkompilasinyabisadilihatdibagianbawahnya.

PanduanDasarPemrogramanTizen

162ProyekTizenPertamaku

KlikRununtukmenjalankanemulatorTizen.Danpilihemulatornya.

Jikasudah,kliktombolLaunchuntukmenjalankanemulatornya.

Tekantombolpadakalkulatorsehinggahasilnyaakanmunculdilayar.

PanduanDasarPemrogramanTizen

163ProyekTizenPertamaku

MenjalankanProgramTizenkeSmartphoneTizenUntukmenjalankankeTizensmartphone,kitacukuparahkanketargetperalatanyangsudahterhubung.

Jikasukses,kitaakanmelihataplikasinyamunculpadaTizensmartphonetersebut.

PanduanDasarPemrogramanTizen

164ProyekTizenPertamaku

ResourcesBerikutinibeberapasumberinformasiyangdapatdigunakandalampengembanganaplikasiTizen.

ForumTizen(English),https://developer.tizen.org/forumsKumpulanCodeSnippet,https://developer.tizen.org/community/code-snippetKumpulancontohprogram,https://developer.tizen.org/community/tizen-projectsArtikel(English),https://developer.tizen.org/community/tip-tech

PanduanDasarPemrogramanTizen

165Resouces

PenulisBerikutprofilepenulisdaribukuini.

Fajri

Fajri,S.Kom.M.Kom.lahirdiBukittinggipadatanggal3Oktober1991.IamenyelesaikanstudiSarjanadanMagisterpadaBidangIlmuKomputerdiUniversitasIndonesiadalamwaktu4,5tahundengankeduanyameraihpredikatCumlaude.SampaisaatiniFajrimerupakanseorangpeneliti,developerdanjugadatascientistdiSamsungResearchIndonesiayangaktifbergerakdibidangPerolehanInformasi,PengolahanBahasaManusia,PembelajaranMesindanjugaTizenOperatingSystem.Karya-karyailmiahnyabisadilihatpadajournalIEEE,SpringerdanjugaACM.

PanduanDasarPemrogramanTizen

166ProfilPenulis

Diselawaktunya,Fajrisenangbermainmusikdanbernyanyi(https://soundcloud.com/fajri91),berenang,membacanoveldanjugatraveling.Fajribisadihubungimelaluiakuntwitternya@FajriPhDatauwebpribadinyahttp://fajrikoto.com

GilangKusumaJati

GilangKusumaJati,S.T,M.Kom.LulussebagaiSarjanaTeknikInformatikadariInstitutTeknologiTelkomdanMagisterIlmuKomputerdariUniversitasIndonesia.GilangmemulaikarirnyasebagaiDosendiFakultasIlmuKomputerUniversitasIndonesiadenganmengajarbeberapamatakuliahPemrogramandanStrukturData.BidangketertarikannyaadalahEvolutionaryComputationdanMobileTechnology.Sejakkuliah,GilangaktifikutsertadanmemenangkanbeberapakompetisiITbaiknasionalmaupuninternasional.SaatiniGilangbekerjasebagaiLeadEngineerdiSamsungR&DInstituteIndonesia.Publikasiinternasional

PanduanDasarPemrogramanTizen

167ProfilPenulis

GilangdapatdilihatpadaIEEE,SpringerdanElsevier.AplikasimobilenyajugadapatdiunduhdiGooglePlayStoredanWindowsPhoneStore.Gilangdapatdihubungimelaluiwebsitepribadinyadihttp://gilangkusumajati.com

AgusKurniawan

AgusadalahpengajardanpenelitidiFakultasIlmuKomputer-UniversitasIndonesiadanSamsungR&DInstituteIndonesia.Diajugaseorangpenulisuntuktopikteknologikomputerdaninternet.BidangketertarikannyamengenaiSekuriti,JaringanKomputer,SoftwareEngineeringdanMachineLearning.

Diselawaktunya,diamengajakkeduaanaknyabermaindanmemilikihobbyuntuktravelling,kuliner,danfoto-fotoasalmemotret.

SaatiniAgussedangmenyelesaikankuliahS3,Doktoral,padajurusanComputerScience,FreieUniversitätBerlin,Germany.Diadapatdihubungimelaluiblogpribadinyadihttp://blog.aguskurniawan.net

PanduanDasarPemrogramanTizen

168ProfilPenulis