Hanilia Purba
122406104
Kom C112
D3 TEKNIK INFORMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2014
Kata Pengantar
Puji syukur kepada Tuhan Yang Maha Esa, atas segala rahmat dan hidayah-Nya
sehingga kami dapat menyelesaikan modul Mobile Programming dengan tepat waktu.
Besar harapan kami semoga hasil modul ini dapat memberikan manfaat yang besar
buat saya maupun orang lain.
Ucapan terima kasih tak lupa kami sampaikan kepada aslab atas bimbingan dan
arahan beliau, kepada teman-teman dan pihak yang mendukung untuk terciptanya
modul ini.
Akhir kata penulis menyadari makalah ini memiliki banyak kekurangan, karena itu
sangat diharapkan kritik dan saran dari pembaca demi perbaikan dan sekaligus
memperbesar manfaat tulisan ini sebagai referensi.
Hanilia Purba
Daftar Isi
KataPengantar
Daftar Isi
BAB 1 PENDAHULUAN
1.1 Latar Belakang ...........................................................................................
BAB 2 PEMBAHASAN
2.1 Pengertian Java ..........................................................................................
10
11
13
15
16
17
17
17
18
19
22
24
24
25
26
26
BAB 3 PENUTUP
3.1Kesimpulan .................................................................................................
29
30
30
DAFTAR PUSTAKA
BAB I
PENDAHULUAN
Dalam
dunia
pemrograman
komputer,
dikenal
banyak
bahasa
pemrograman, seperti C, C++, Pascal, Basic, Java, dan lain-lain. Di antara banyaknya
bahasa pemrograman, Java adalah salah satu yang paling diminati. Oleh karena itulah,
yang akan dibahas dalam makalah ini adalah bahasa pemrograman Java.
BAB II
PEMBAHASAN
Pada rentang waktu ini juga ditetapkan pemakaian Internet sebagai medium yang
menjembatani kerja dan ide di antara mereka.
Pada awal tahun 1990-an, Internet masih merupakan rintisan, yang dipakai
hanya di kalangan akademisi dan militer. Mereka menjadikan perambah (browser)
Mosaic sebagai landasan awal untuk membuat perambah Java pertama yang dinamai
Web Runner, terinsipirasi dari film 1980-an, Blade Runner. Pada perkembangan rilis
pertama, Web Runner berganti nama menjadi Hot Java. Pada sekitar bulan Maret
1995, untuk pertama kali kode sumber Java versi 1.0a2 dibuka.
Kesuksesan mereka diikuti dengan untuk pemberitaan pertama kali pada surat
kabar San Jose Mercury News pada tanggal 23 Mei 1995. Sayang terjadi perpecahan
di antara mereka suatu hari pada pukul 04.00 di sebuah ruangan hotel Sheraton Palace.
Tiga dari pimpinan utama proyek, Eric Schmidt dan George Paolini dari Sun
Microsystems bersama Marc Andreessen, membentuk Netscape. Nama Oak, diambil
dari pohon oak yang tumbuh di depan jendela ruangan kerja "bapak java", James
Gosling. Nama Oak ini tidak dipakai untuk versi release Java karena sebuah perangkat
lunak sudah terdaftar dengan merek dagang tersebut, sehingga diambil nama
penggantinya menjadi "Java". Nama ini diambil dari kopi murni yang digiling
langsung dari biji (kopi tubruk) kesukaan Gosling.
2. Bahkan jika kasus label termasuk semua hasil yang mungkin dalam sebuah
pernyataan dari switch tertentu, itu masih merupakan praktik yang baik untuk
menyertakan bagian default digunakan untuk kesalahan output pesan, misalnya
3. Ketika mengendalikan ekspresi lalu dievaluasi, kode untuk label yang nilainya
sesuai dengan kasus mengendalikan ekspresi dieksekusi
4. Jika label tidak cocok dengan kasus ini, maka laporan hanya dilakukan oleh
mereka dengan mengikuti label default (jika ada satu)
5. Pernyataan Switch berakhir ketika menjalankan sebuah pernyataan istirahat,
atau ketika akhir pernyataan switch dicapai
6. Ketika komputer menjalankan laporan setelah label kasus, terus sampai break
tercapai
7. Jika melanggar diabaikan, maka setelah melaksanakan kode untuk satu kasus,
komputer akan melanjutkan untuk mengeksekusi kode untuk kasus berikutnya
8. Jika break tidak sengaja mengabaikan, compiler tidak akan mengeluarkan
pesan kesalahan
sendiri, JRE saja tidak cukup. Untuk lebih meningkatkan produktivitas pengembang
perangkat lunak, Sun juga meluncurkan SDK (Standard Development Kit) yang berisi
kakas dan API untuk membuat program aplikasi berbasis Java. Pada tahun 1999 Sun
meluncurkan J2EE (Java 2 Enterprise Edition) sebagai framework untuk membuat
aplikasi enterprais berskala besar. Pada tahun 2001, Sun meluncurkan J2ME yang
kelak menjadi salah satu standard pemrograman di dalam PDA maupun handphone.
Komunitas OpenSource sendiri mempunyai platform yang disebut dengan Jini untuk
merealisasikan visi awal dari Java.
penyembunyian
informasi
dari
pihak-pihak
yang
tidak
10
VisualBasic, Delphi dan Visual C++. Hal ini mungkin disebabkan oleh tidak adanya
kemauan yang kuat dari kita untuk menjadi mandiri dalam bidang software. Tahukah
anda bahwa tidak kurang dari 50% software-software di Amerika di impor dari
negara-negara Asia terutama India dan Cina. Visual Basic dan Delphi masih
memegang posisi teratas untuk client-side programming, sedangkan untuk server-side,
Java telah mengambil alih hampir seluruh market.
Bisa dilihat dari produk-produk Application Server yang semuanya harus
memenuhi persyaratan J2EE compliance seperti IBM Web Sphere, Oracle Application
Server, BEA WebLogic, Sun iPlanet ApplicationServer, JBoss dan lain-lain. Karena
portabilitasnya yang sangat tinggi maka Java merupakan platform yang ideal untuk
dapat beralih ke OpenSource. Ini berarti perusahaan tidak kehilangan investasinya
dalam perangkat lunak yang mahal dan sulit untuk di buat ulang. Contohnya sekarang
ini banyak sekali perusahan yang memakai sistem operasi maupun aplikasi umum
yang illegal (bajakan), kemudian perusahaan itu mengembangkan aplikasi sendiri
yang berjalan pada sistem operasi maupun pada aplikasi office bajakan tersebut.
Seandainya nanti peraturan semakin ketat, hukum ditegakkan maka perusahaan itu
mempunyai pilihan untuk membayar lisensi atau menggunakan produk-produk gratis
dari OpenSource, seperti Linux dan OpenOffice.
Java merupakan bahasa yang powerfull yang bisa digunakan dalam hampir
semua bentuk pengembangan software. Anda dapat menggunakan Java untuk
membuat game, aplikasi desktop, aplikasi web, aplikasi enterprise, aplikasi jaringan
dan lain-lain. Yang menarik adalah bahwa Java bisa digunakan untuk membuat
program yang dapat berjalan di atas HP, PDA, dan peralatan yang dilengkapi dengan
Java Virtual Machine (JVM). Tidak hanya powerfull pengembangan software dengan
Java juga lebih mudah dan Java sangat membantu terutama jika anda mengembangkan
sofware berskala besar, multiplafform, dan mulitiinteerface. Ini dikarenakan Java
memiliki standar yang komperhensif, integral dan jauh lebih terorganisasi dibanding
bahasa pemrograman lain. Dan yang tidak kalah penting berkaitan dengan kelebihan
Java adalah dukungan yang tinggi dari pengembang-pengembang di seluruh dunia.
Hal ini menberikan keuntungan bagi pengembang Java yang lain untuk memanfaatkan
aplikasi/pustaka (library) Java yang telah mereka kembangkan. Dukungan yang tinggi
ini tak lain disebabkan karena bahasa Java cukup lama berkembang. Java sebagai
12
salah satu bahasa pemrograman baru menjanjikan banyak kemudahan bagi programer
junior maupun senior. Tutorial ini akan membawa Anda mengenal lebih jauh bahasa
ini melalui pembahasan konsep model perancangan dan petunjuk sederhana
penggunaannya. Pemrograman merupakan proses penanaman instruksi ke dalam
komputer sedemikian rupa sehingga dalam operasinya, computer tersebut akan
mengacu kepada instruksi yang telah diberikan. Proses pemrograman akan
menghasilkan suatu produk yang disebut program. Program yang berbeda akan
menyebabkan computer memberikan hasil yang berbeda untuk suatu input yang sama.
Contohnya, anggap saja kita mempunyai 2 buah program java sebagai berikut :
1. Penjuamlahan class, yaitu suatu program yang akan menjumlahkan 2 buah
input yang diberikan kepadanya, dan mencetaknya kelayar monitor.
2. Perkalian class, yaitu suatu program yang akan mengalikan 2 buah input yang
diberikan kepadanya dan mencetaknya ke layer monitor. Misalnya kita
memasukkan pasangan 2 buah input {1,5} ke dalam masing-masing program.
Maka :
1. Penjumlahan.class akan mencetak nilai 6 ke layer monitor.
2. Perkalian.class akan mencetak niali 5 ke layer monitor.
13
Sebuah Aplikasi
Aplikasi dengan teknologi Java secara umum adalah aplikasi serba guna yang dapat
dijalankan pada seluruh mesin yang memiliki Java Runtime Environment (JRE).
4.
Terdapat dua komponen utama dari Deployment Environment. Yang pertama adalah
JRE, yang terdapat pada paket J2SDK, mengandung kelas-kelas untuk semua paket
teknologi Java yang meliputi kelas dasar dari Java, komponen GUI dan sebagainya.
Komponen yang lain terdapat pada Web Browser. Hampir seluruh Web Browser
komersial menyediakan interpreter dan runtime environment dari teknologi Java.
14
15
16
keamanan
menagani
keamanan
tingkat
aplikasi
dengan
Windows
NT/2000/XP
Anda
cukup
menambahkan
direktori
C:\jdk1.4\bin pada variabel path di System Environment. Caranya: klik kanan ikon My
Computer, pilih Properties. Kemudian pilih tab Advanced. Lalu klik tombol
Environment Variables, cari variabel path, kemudian tambahkan path direktori JDK
Anda ke dalam variabel tersebut. Untuk Linux, tambahkan baris perintah SET
CLASSPATH=(direktori jdk Anda) ke file profile Anda.
Untuk mencoba JDK, ketikkan perintah java dan javac pada shell prompt (atau
DOS Command Prompt). Jika perintah tersebut sudah dikenali maka program java
atau javac akan menampilkan sintaks penggunaan. Untuk kemudahan dan berbagai
fasilitas tambahan Anda dapat menggunakan Integrated Development Environment
(IDE) untuk bahasa Java seperti Visual Caf dari Symantec atau JBuilder dari
Borland.
Urutan langkah-langkah yang harus Anda lakukan untuk membuat sebuah program
Java sederhana adalah:
1. Membuat source code program dengan editor teks apapun. Ingat, file tersebut
harus berekstensi .java dan case sensitive.
2. Mengkompile source code dengan perintah javac. Misalnya: jav
Secara gamblang dapat diperhatikan bahwa struktur kedua program sangat mirip, dan
hanya berbeda dalam konteks eksekusi. Kedua program ini akan dibahas lebih lanjut
setelah kita membahas cara mengkompile dan mengeksekusi program tersebut. Perlu
18
diingat bahwa bahasa Java bersifat case sensitive, sehingga Anda harus
memperhatikan penggunaan huruf besar dan kecil. Selain itu penulisan source code
program tidak harus memperhatikan bentuk tertentu, sehingga Anda bisa saja
menuliskan semua baris source code tersebut dalam satu baris asal Anda tidak lupa
membubuhkan tanda titik koma (;), atau menuliskan tiap kata dalam satu baris
tersendiri. Namun dianjurkan Anda mengikuti layout seperti pada contoh agar
program Anda mudah dibaca dan dimengerti. Kompilasi setelah kedua file disave
dengan nama HelloWorld.java dan HelloWorldApplet.java, kita akan mengkompile
kedua program tersebut dengan perintah:
prompt> javac HelloWorld.java
prompt> javac HelloWorldApplet.java
Perlu diperhatikan bahwa direktori aktif Anda saat ini adalah direktori tempat Anda
meletakkan file-file program tersebut. Anda tetap dapat mengkompile program Anda
dari direktori berbeda dengan perintah
prompt> javac (direktori program)/namafile.java
Setelah perintah ini selesai, Anda akan melihat bahwa telah tercipta dua buah file
.class, yaitu bytecode hasil kompilasi source code kita.
depannya berfungsi agar kelas tersebut dapat diakses oleh semua program lain. Untuk
saat ini anggaplah objek sebagai suatu item yang dapat dimanipulasi oleh sebuah
program. Dalam Listing 2 terdapat tambahan kata extends. Hal ini berarti kelas yang
kita buat akan mewarisi sifat-sifat dari kelas yang kita extends. Dengan kata lain kita
menjadikan kelas yang kita extends sebagai himpunan bagian dari kelas kita buat.
Kemudian kita menemukan baris pernyataan public static void main(String[]
args) dan public void paint(Graphics g). Keduanya adalah pernyataan pembuka
sebuah metode. Metode sendiri adalah kumpulan pernyataan untuk melakukan suatu
tugas tertentu dalam kelas. Keduanya sebenarnya mempunyai fungsi yang sama
namun dalam konteks yang berbeda. Dalam setiap aplikasi harus ada sebuah metode
yang bernama main yang akan dieksekusi pertama kali saat program tersebut
dieksekusi. Sementara dalam applet, metode yang pertama kali akan dieksekusi ketika
applet diload adalah paint. Kata public di depannya mempunyai fungsi yang sama
dengan kata public yang ada di depan baris permulaan kelas. Namun nantinya Anda
akan menemukan juga bentuk lain seperti private dan protect yang akan kita bahas
nanti.
Pada Listing 1 terdapat kata static pada pernyataan pembuka metode main. Hal
ini berarti metode main tidak mengubah atau menggunakan objek yang diciptakan
oleh kelas tersebut, sehingga dapat dikatakan berdiri sendiri dan tidak terikat dengan
objek. Dalam metode main dalam aplikasi, parameternya adalah selalu String[] args,
di mana args hanyalah sebuah nama dari objek array dari String. Array ini nantinya
akan berisi parameter-parameter yang diberikan user sebagai argumen command line.
Sementara Anda tidak perlu mengerti mengenai parameter tersebut, cukup diingat
bahwa bentuk metode main harus selalu demikian.
Kemudian di dalam kedua metode pada kedua listing tersebut, kita
menemukan sebuah pernyataan. Anda tentu dapat saja meletakkan lebih dari satu
pernyataan dalam sebuah metode. Setiap pernyataan dalam sebuah metode dipisahkan
oleh titik koma dan akan dieksekusi satu persatu. Kedua pernyataan pada listing
ternyata memanggil sebuah metode lain yaitu metode println dan paint. Tentunya
dapat Anda perhatikan bahwa untuk memanggil sebuah metode diperlukan tiga
20
komponen yaitu: Objek yang ingin kita pakai. Dalam hal ini objek System.out dan
Graphics.
1. Nama metode yang ingin kita pakai. Dalam hal ini println dan paint.
2. Sepasang tanda kurung yang berisi informasi tambahan yang diperlukan oleh
metode yang dipanggil, yaitu parameter.
Dalam Listing 1, pernyataan System.out.println("Apa Kabar Dunia?"); berarti carilah
objek out dalam kelas System kemudian panggil metode println dari objek out dengan
parameter berupa string "Apa Kabar Dunia?". Sedang dalam Listing 2, pernyataan
g.drawString("Apa Kabar Dunia?", 5, 25); berarti carilah objek g kemudian panggil
metode drawString pada objek g dengan parameter "Apa Kabar Dunia?, 5, 25);.
Setelah selesai membahas sintaks dasar Java dalam kedua listing, selanjutnya
kita akan mencoba mengeksekusi kedua program ini. Untuk program pertama yang
berupa aplikasi biasa, kita tinggal mengetikkan perintah java HelloWorld pada prompt
dan pesan Apa Kabar Dunia? akan tampil di layar (atau mungkin di tempat lain,
bergantung sistem operasi Anda). Sedangkan untuk applet kita mesti membuat sebuah
file HTML sebagai pembungkusatau pemanggilnya. Berikut diberikan contoh file
HTML untuk membungkus applet yang kita buat.
<HTML>
<HEAD>
<TITLE>Coba Applet</TITLE>
</HEAD>
<BODY>
<APPLET CODE="HelloWorldApplet.class" WIDTH=150 HEIGHT=25>
</APPLET>
</BODY>
</HTML>
Beri nama helloword.html dan simpanlah di direktori yang sama dengan lokasi filefile .java dan .class sebelumnya. Untuk mengeksekusi applet kita cukup membuka file
HTML tersebut di browser yang Java-enabled atau mengetikkan perintah appletviewer
namafile.html di prompt.
21
sendiri-sendiri
(yang
dapat
diunduh
dari
situs
Java)
untuk
perpustakaan-perpustakaan
baru
untuk
melingkupi
seluruh
dibangun pada format file ZIP dan memiliki ekstensi file. Jar. Pengguna komputer
dapat membuat atau mengekstrak file JAR menggunakan perintah jar yang datang
dengan JDK. Mereka juga dapat menggunakan alat zip untuk melakukannya, namun,
urutan entri dalam header file zip yang penting ketika mengompresi, seperti
mewujudkan seringkali perlu menjadi yang pertama
23
JAD adalah singkatan dari Java Application Descriptor. Dari namanya saja kita
bisa tahu bahwa JAD adalah file yang mendeskripsikan tentang aplikasi Java
(MIDlet). Aplikasi Java yang mana? Tentu saja aplikasi yang ada didalam file JAR,
karena file JAD sendiri sebetulnya hanya sebuah file teks biasa, yang bila dilihat
isinya mirip sekali dengan MANIFEST yang ada didalam file JAR. Class
Class merupakan suatu blueprint atau cetakan untuk menciptakan suatu instant
dari object.
class
juga merupakan
attributes/properties,
behaviour
grup
dan
suatu object
relasi
ke
dengan
kemiripan
object
lain.
Tool
Hasil
Text editor
Kompilasi program
Java compiler
Berkas
berekstensi
.class
(Java Bytecode)
Menjalankan program
Java Interpreter
Program Output
25
menggunakan
komponen,
juga
dikenal
sebagai
modul,
untuk
java
desktop
menggunakan
vusial
GUI
designer.
Matisse
memanfaatkan Group layout yang dikembangkan oleh swing engineer untuk menjadi
fondasi layouting bagi aplikasi Swing. Dengan adanya Matisse kita bisa mengucapkan
selamat tinggal cara lama membuat aplikasi swing, yaitu dengan mengetik satu-satu
proses layouting dan pembuatan komponen GUI. Matisse memotong nyaris 90%
waktu yang digunakan untuk membuat layout aplikasi swing di masa lalu. Sangat
mudah dan menyenangkan.
26
Netbeans Mobility Pack bersama Matisse GUI builder adalah mahkota netbeans,
dua module ini menjadi feature yang banyak dicari user dan tidak ada IDE lainya yang
mempunyai feature sebagus ini. Development Java ME menggunakan Mobility Pack
sangat mudah dan menyenangkan, Netbeans menyediakan komponen yang dapat
ditambahkan dengan mudah. Flow Editor memudahkan user untuk merancang aliran
aplikasi Java ME secara visual, hanya perlu operasi drag-n-drop sederhana untuk
merancang aliran aplikasi Java ME. Dalam beberapa kesempatan, terutama dari
form pendaftaran Nectar, sebagian besar peserta menjawab pertanyaan Netbeans
dugunakan untuk? dengan jawaban Develop Aplikasi Java ME atau Develop
aplikasi Java Desktop.
Yang menarik adalah bahwa Java bisa digunakan untuk membuat program yang
dapat berjalan di atas HP, PDA, dan peralatan yang dilengkapi dengan Java Virtual
Machine (JVM). Java juga lebih mudah dan Java sangat membantu terutama jika anda
mengembangkan sofware berskala besar, multiplafform, dan mulitiinteerface. Ini
dikarenakan Java memiliki standar yang komperhensif, integral dan jauh lebih
terorganisasi dibanding bahasa pemrograman lain.
Salah satu contoh program java menggunakan Netbeans.
import java.util.Scanner;
public class SOAL2{
public static void main(String [] args)
{
Scanner in = new Scanner(System.in);
int alas,tinggi,sisi;
sisi
miring
segitiga
siku-siku
adalah
"+(Math.sqrt(sisi)));
}
}
28
BAB III
PENUTUP
3.1 Kesimpulan
1. NetBeans IDE adalah IDE open source yang ditulis sepenuhnya dengan bahasa
pemrograman Java menggunakan platform NetBeans. NetBeans IDE
mendukung pengembangan semua tipe aplikasi Java (J2SE, web, EJB, dan
aplikasi mobile). Fitur lainnya adalah sistem proyek berbasis Ant, kontrol
versi, dan refactoring.
2. Versi terbaru saat ini adalah NetBeans IDE 5.5.1 yang dirilis Mei 2007
mengembangkan fitur-fitur Java EE yang sudah ada (termasuk Java
Persistence support, EJB-3 dan JAX-WS). Sementara paket tambahannya,
NetBeans Enterprise Pack mendukung pengembangan aplikasi perusahaan
Java EE 5, meliputi alat desain visual SOA, skema XML, web service dan
pemodelan UML. NetBeans C/C++ Pack mendukung proyek C/C++.
3. Modularitas: Semua fungsi IDE disediakan oleh modul-modul. Tiap modul
menyediakan fungsi yang didefinisikan dengan baik, seperti dukungan untuk
bahasa pemrograman Java, editing, atau dukungan bagi CVS. NetBeans
memuat semua modul yang diperlukan dalam pengembangan Java dalam
sekali download, memungkinkan pengguna untuk mulai bekerja sesegera
mungkin.
4. Modul-modul juga mengijinkan NetBeans untuk bisa dikembangkan. Fiturfitur baru, seperti dukungan untuk bahasa pemrograman lain, dapat
ditambahkan dengan menginstal modul tambahan. Sebagai contoh, Sun Studio,
Sun Java Studio Enterprise, dan Sun Java Studio Creator dari Sun
Microsystem semuanya berbasis NetBeans IDE.
5. Bahasa Pemrograman Java pertama lahir dari The Green Project, yang berjalan
selama 18 bulan, dari awal tahun 1991 hingga musim panas 1992.
29
6. Di dalam pemrograman java terdapat beberapa fitur. Adapun fitur itu meliputi
Java Virtual Machine (JVM), Garbage Colletion dan Code Security. Java
Virtual Machine (JVM) adalah sebuah mesin imajiner (maya) yang bekerja
dengan menyerupai aplikasi pada sebuah mesin nyata. garbage collection yang
berarti program tidak perlu menghapus sendiri obyek-obyek yang tidak perlu
digunakan lagi. Sedangkan Code Security Code Security terimplementasi pada
Java
melalui
pengguanan
Java
Runtime
Environment
(JRE).
Java
3.2 Saran
Dikarenakan cukup rumitnya bahasa pemrograman Java dan semakin banyaknya
pesaing yang berkompetisi di bidang pemrograman Java, maka Penyusun
menyarankan kepada pembaca (khususnya pemula), untuk sejak dini mempelajari
bahasa pemrograman tersebut.
Demikian yang dapat saya paparkan mengenai materi yang menjadi pokok
bahasan dalam makalah ini, tentunya masih kelemahannya, kerena terbatasnya
pengetahuan dan kurangnya rujukan atau referensi yang ada hubungannya dengan
judul modul ini.
Penulis banyak berharap para pembaca yang budiman dusi memberikan
kritik dan saran yang membangun kepada penulis demi sempurnanya modul ini
dan penulisan modul di kesempatan-kesempatan berikutnya. Semoga modul ini
berguna bagi penulis pada khususnya juga para pembaca yang budiman pada
umumnya.
30
Daftar Pustaka
Rijalul Fikri, Ipam Fuadim Adam, Imam Prakoso.Pemrograman Java.2005.Penerbit
Andi Offset. Yogyakarta.
http://poss.ipb.ac.id/files/JENI-Intro1-Bab04-Dasar-dasar%20Pemrograman.pdf.
http://library.gunadarma.ac.id/50401909-ssm_fti.pdf
http://poss.ipb.ac.id/files/JENI-Intro2-Bab01-Review%20Konsep%20Dasar.pdf
http://javastudy.wordpress.com/category/netbeans/ (Diakses tanggal 30 Desember
2012)
http://netbeans.org/index_id.html (Diakses tanggal 30 Desember 2012)
31