Guideline ngoding di Android Studio

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?

Dalam 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

  1. Penamaan file

    1. 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.

    2. 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.

      https://jeroenmols.com/blog/2016/03/07/resourcenaming/

      1. 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 asetAwalanContoh
        Action barab_ab_stacked.9.png
        Buttonbtn_btn_send_pressed.9.png
        Dialogdialog_dialog_top.9.png
        Dividerdivider_divider_horizontal.9.png
        Iconic_ic_star.png
        Menumenu_menu_submenu_bg.9.png
        Notificationnotification_notification_bg.9.png
        Tabstab_tab_pressed.9.png

        Untuk ikon, terdapat naming convention lebih lanjut, yaitu:

        Tipe AsetAwalanContoh
        Iconsic_ic_star.png
        Launcher iconsic_launcheric_launcher_calendar.png
        Menu icons dan Action Bar iconsic_menuic_menu_archive.png
        Status bar iconsic_stat_notifyic_stat_notify_msg.png
        Tab iconsic_tabic_tab_recent.png
      2. 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.

        KomponenNama KelasNama Layout
        ActivityUserProfileActivityactivity_user_profile.xml
        FragmentSignUpFragmentfragment_sign_up.xml
        DialogChangePasswordDialogdialog_change_password.xml
        Item dari Adapter item_person.xml
        Partial layoutpartial_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.

      3. 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.

      4. 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.

  2. Style dalam Java

    1. 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 :
    2. Penulisan akronim

      Penulisan akronim (gabungan huruf atau suku kata) juga diatur dengan baik. Berikut adalah good practice nya.

      GoodBad
      XmlHttpRequestXMLHTTPRequest
      getCustomerIdgetCustomerID
      String urlString URL
      long idlong ID
    3. Pemberian spasi untuk indent 

      Untuk membuat block, gunakan 4 kali spasi: 

      8 kali spasi digunakan untuk line wraps

    4. 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:

        Penulisan seperti:

        bukanlah merupakan praktik yang baik.
  3. Style dalam XML

    1. Penggunaan tag penutup ( < /> )

      Suatu elemen XML haruslah memiliki self-closing tag apabila ia tidak memiliki elemen anak ataupun konten yang lain.

      YES : …”wrap_content” />

      NO : …”wrap_content” > </TextView>

    2. Penamaan resource 

      Seluruh pemberian penamaan ID dan nama ditulis dalam lorewercase_underscore.

      1. Penamaan ID

        Nama ID harus diawali dengan nama elemen diikuti underscore dilanjutkan dengan penjelasan mengenai elemen tersebut. Contoh :

        ElemenAwalan
        TextViewtext_
        ImageViewimage_
        Buttonbutton_
        Menumenu_

        Contoh :

      2. 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:

        AwalanDeskripsi
        error_suatu pesan error
        msg_suatu pesan informasi biasa
        title_suatu judul, misal judul dari suatu dialog
        action_suatu aksi, seperti “menyimpan” atau “membuat”
      3. 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 :

    3. 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: 

      1. View Id,
      2. Style,
      3. Layout width dan layout height,
      4. Atribut layout lain dengan diurutkan secara alphabet,
      5. Atribut lain yang tersisa, juga diurutkan secara alphabet.

      Contoh :

  4. 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!

Belajar mengembangkan aplikasi atau game dengan kurikulum yang telah divalidasi langsung oleh industri dengan Dicoding Academy.

Belajar di Dicoding Sekarang →
Share this:

Android Developer

Leave a comment