Guideline Ngoding di Android Studio dengan Code Convention – Salah satu aspek utama yang dipentingkan oleh para Dicoding Reviewer dalam menilai submission adalah code convention. Banyak submission yang diberi catatan untuk merevisi kode karena terdapat bagian yang tidak sesuai dengan code convention. Wah, apa sih code convention ini? Sebegitu pentingnya kah? Apa yang harus kita tahu untuk ngoding di Android Studio?
Bila dibahasa-Indonesiakan, code convention berarti konvensi kode. Dalam KBBI konvensi memiliki arti permufakatan atau kesepakatan, yaitu suatu kumpulan norma yang diterima umum. Bisa dibilang, code convention adalah standar pengkodean. Oleh karena itu, seringkali code convention dianggap sebagai guideline atau petunjuk untuk ngoding, karena ia memberikan aturan-aturan yang harus diikuti oleh developer ketika mengembangkan aplikasinya.
Kenapa penting? Karena code convention akan mempermudah perawatan atau maintenance dari suatu aplikasi. Maintenance sendiri merupakan suatu lifetime cost, alias harus dilakukan selama aplikasi tersebut masih dipergunakan. Apalagi, hampir tidak ada maintenance aplikasi yang hanya dilakukan oleh pembuatnya, pasti akan berpindah kepada engineer yang lain. Nggak mau kan, membuat engineer lain bingung karena kodemu melenceng dari aturan?
💻 Mulai Belajar Pemrograman
Belajar pemrograman di Dicoding Academy dan mulai perjalanan Anda sebagai developer profesional.
Daftar SekarangDalam Android Studio, petunjuk ini mencakupi banyak hal, yaitu struktur projek, penamaan file, peraturan ngoding dan peraturan style dalam bahasa Java, style dalam XML, dan peraturan dalam testing. Nah, kita akan membahas yang paling umum, yaitu mengenai penamaan file, style dalam Java, dan style dalam XML.
Satu hal utama yang berlaku untuk seluruh aturan dalam Android Studio adalah: selalu gunakan bahasa Inggris untuk menamakan sesuatu. Mengapa demikian? Karena bila tidak, lint akan mendeteksi kata yang tidak terdapat dalam bahasa Inggris sebagai spelling error.
Tips dan pedoman yang akan kita bahas adalah,
- Penamaan File yang Benar
- Style dalam Java yang Benar
- Style dalam XML yang Benar
- Tips Mengatasi Warning
Penamaan File
-
Penamaan file kelas (class)
Setiap nama kelas haruslah menggunakan UpperCamelCase, yaitu pemberian huruf kapital di setiap awal kata tanpa spasi. Contoh : MatchData, MatchRepository, RecyclerViewAdapter.
Apabila kelas tersebut meng-extend komponen Android, maka di akhir nama kelas harus ditambahkan nama dari komponen yang dipakai. Contoh : MatchFragment, SplashActivity, ImageUploaderService, ChangeAvatarDialog.
-
Penamaan file resources
Resources adalah apapun yang berada dalam folder res di proyek Android Studio. Penamaan dari setiap file resources yang ada haruslah dalam lowercase_underscore. Artinya, nama dari file resources memiliki huruf kecil secara keseluruhan, dan menggunakan underscore ( _ ) di antara kata yang dipakai.
-
Penamaan file drawable
Berikut adalah konvensi dari penamaan file drawable. File-file ini diletakkan dalam folder res -> drawable. Usahakan mengikuti style seperti yang dicontohkan di bawah ketika ingin memberi nama pada file drawable yang kamu buat.
Tipe aset Awalan Contoh Action bar ab_ ab_stacked.9.png Button btn_ btn_send_pressed.9.png Dialog dialog_ dialog_top.9.png Divider divider_ divider_horizontal.9.png Icon ic_ ic_star.png Menu menu_ menu_submenu_bg.9.png Notification notification_ notification_bg.9.png Tabs tab_ tab_pressed.9.png Untuk ikon, terdapat naming convention lebih lanjut, yaitu:
Tipe Aset Awalan Contoh Icons ic_ ic_star.png Launcher icons ic_launcher ic_launcher_calendar.png Menu icons dan Action Bar icons ic_menu ic_menu_archive.png Status bar icons ic_stat_notify ic_stat_notify_msg.png Tab icons ic_tab ic_tab_recent.png -
File layout
Untuk menamakan file layout, kita harus melihat nama komponen Android dari kelas yang memiliki mereka. Kemudian nama komponen tersebut diletakkan di awal dari nama layout dilanjutkan dengan nama kelas. Ingat, masih menggunakan style lowercase_underscore dan berbahasa Inggris. Contoh : apabila kita ingin membuat layout untuk kelas PreviousMatchActivity, maka namanya seharusnya activity_previous_match.
Komponen Nama Kelas Nama Layout Activity UserProfileActivity activity_user_profile.xml Fragment SignUpFragment fragment_sign_up.xml Dialog ChangePasswordDialog dialog_change_password.xml Item dari Adapter — item_person.xml Partial layout — partial_stats_bar.xml Terdapat sedikit perbedaan ketika membuat layout yang akan diisi (inflate) oleh Adapter. Nama layout-nya tidak diawali dengan adapter_ melainkan dengan item_.
Bagaimana dengan penamaan layout yang merupakan bagian dari layout lain? Dalam kasus ini, aturan di atas tidak bisa diterapkan. Oleh karena itu, gunakan partial_ di awal nama layout yang kamu buat.
-
File menu
Praktik yang baik dari pemberian nama pada file menu adalah dengan tidak menggunakan menu_ di awal nama, karena file tersebut sudah diletakkan di direktori menu. Penamaan dari file menu memiliki aturan yang sama dengan penamaan file layout. Contohnya, bila menu tersebut akan digunakan di kelas UserActivity, maka nama file menunya adalah activity_user.xml.
-
File values
Nama file dalam folder res->value menggunakan kata jamak (plural) dan pastinya dalam bahasa Inggris. Contoh : strings.xml, styles.xml, colors.xml, dimens.xml, attrs.xml.
Style dalam Java
-
Penamaan dan deklarasi fields
Fields dalam Java adalah variabel yang berada di dalam suatu kelas. Fields ini harus diletakkan di bagian paling atas dari suatu file, dan harus menerapkan peraturan penamaan seperti di bawah ini :
- Field yang private dan non-static diberi nama yang berawal dari m
- Field yang private dan static diberi nama yang berawal dari s
- Field lain diberi nama yang berawal dari kata dengan lowercase
- Field yang static dan final (constants) diberi nama dengan style ALL_CAPS_WITH_UNDERSCORES.
- Contoh :
12345678public class MyClass {public static final int SOME_CONSTANT = 42;public int publicField;private static MyClass sSingleton;int mPackagePrivate;private int mPrivate;protected int mProtected;}
-
Penulisan akronim
Penulisan akronim (gabungan huruf atau suku kata) juga diatur dengan baik. Berikut adalah good practice nya.
Good Bad XmlHttpRequest XMLHTTPRequest getCustomerId getCustomerID String url String URL long id long ID -
Pemberian spasi untuk indent
Untuk membuat block, gunakan 4 kali spasi:
123if (x == 1) {x++;}
8 kali spasi digunakan untuk line wraps:
12Instrument i =someLongExpression(that, wouldNotFit, on, one, line); -
Penggunaan brace style standar
Brace atau yang sering disebut juga curly brackets ( {} ) memiliki aturan sendiri ketika digunakan dalam bahasa Java. Beberapa aturan tersebut adalah:
- ( { ) diletakkan di baris yang sama dengan kode sebelumnya
- ( {} ) hanya diperlukan apabila condition dan body tidak cukup berada pada satu baris (memerlukan lebih dari satu baris). Contoh: curly brackets tidak diperlukan pada kode berikut:
1if (condition) body();
Penulisan seperti:
12if (condition)body();
bukanlah merupakan praktik yang baik.
Style dalam XML
-
Penggunaan tag penutup ( < /> )
Suatu elemen XML haruslah memiliki self-closing tag apabila ia tidak memiliki elemen anak ataupun konten yang lain.
YES : …”wrap_content” />
1234<TextViewandroid:id="@+id/text_view_profile"android:layout_width="wrap_content"android:layout_height="wrap_content" />
NO : …”wrap_content” > </TextView>
123456<!-- Don\'t do this! --><TextViewandroid:id="@+id/text_view_profile"android:layout_width="wrap_content"android:layout_height="wrap_content" ></TextView> -
Penamaan resource
Seluruh pemberian penamaan ID dan nama ditulis dalam lorewercase_underscore.
-
Penamaan ID
Nama ID harus diawali dengan nama elemen diikuti underscore dilanjutkan dengan penjelasan mengenai elemen tersebut. Contoh :
Elemen Awalan TextView text_ ImageView image_ Button button_ Menu menu_ Contoh :
1234<ImageViewandroid:id="@+id/image_profile"android:layout_width="wrap_content"android:layout_height="wrap_content" />
12345<menu><itemandroid:id="@+id/menu_done"android:title="Done" /></menu> -
Penamaan string
String yang dimiliki oleh suatu bagian harus dinamakan dengan diawali nama bagian tersebut. Contohnya adalah registration_email_hint, registration_name_hint, dialog_error_message. Namun apabila suatu string tidak dimiliki oleh apapun, maka aturan-aturan di bawah harus kamu ikuti:
Awalan Deskripsi error_ suatu pesan error msg_ suatu pesan informasi biasa title_ suatu judul, misal judul dari suatu dialog action_ suatu aksi, seperti “menyimpan” atau “membuat” -
Penamaan style dan themes
Nah, aturan dari penamaan style and themes ini berbeda dengan resources yang lain. Nama dari suatu style ditulis dengan UpperCamelCase. Contoh :
123456<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"><!-- Customize your theme here. --><item name="colorPrimary">@color/colorPrimary</item><item name="colorPrimaryDark">@color/colorPrimaryDark</item><item name="colorAccent">@color/colorAccent</item></style>
-
-
Pengurutan atribut
Aturan dasarnya adalah, atribut yang mirip harus dikelompokkan bersama. Nah, cara terbaik untuk mengurutkan atribut-atribut yang paling sering digunakan dapat seperti berikut ini:
- View Id,
- Style,
- Layout width dan layout height,
- Atribut layout lain dengan diurutkan secara alphabet,
- Atribut lain yang tersisa, juga diurutkan secara alphabet.
Contoh :
12345678910111213<ProgressBarandroid:id="@+id/progressbar_team_list"style="?android:attr/progressBarStyle"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginBottom="8dp"android:layout_marginEnd="8dp"android:layout_marginRight="8dp"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"android:max="@android:integer/config_longAnimTime"/>
Tips mengatasi warning
Sedikit tips, jangan lupa untuk selalu Analyze -> Inspect Code sebelum mengumpulkan submission. Dengan begitu, semua warning akan ditampilkan sehingga beberapa kode dapat kita ubah menjadi lebih baik.
Nah, coba cek satu persatu. Akan muncul beberapa saran yang dapat dilakukan setiap warning tersebut dibuka.
Begini jadinya bila kita menggunakan bahasa Indonesia di dalam proyek Android Studio.
Oh iya, ada tips tambahan. Daripada berulang kali menekan CTRL + SHIFT + O untuk mengoptimalkan imports, coba atur menjadi optimize imports on the fly, sehingga tidak ada lagi imports yang tidak terpakai di kodemu. Caranya adalah buka menu File -> Settings -> Editor -> General -> Auto Import lalu berikan check pada checkbox optimize imports on the fly.
Dicermati dan diterapkan ya, teman-teman. Sekali lagi, selalu gunakan bahasa Inggris dalam menamakan sesuatu. Semoga bermanfaat. Salam ngoding!
Baru mulai belajar pakai Android Studio? Ada modul pengenalan gratis di kelas Belajar Membuat Aplikasi Android untuk Pemula
Simak juga tips lain mengenai coding dan android di:
“Android Studio: Aplikasi Error! Apa yang harus dilakukan?” https://www.dicoding.com/blog/android-studio-aplikasi-error-apa-yang-harus-dilakukan/
“Tips Bertanya Coding dengan Baik” https://www.dicoding.com/blog/tips-bertanya-coding-baik/
“Tips RecyclerView – Frequently Asked Question” https://www.dicoding.com/blog/recyclerview-frequently-asked-question/