{"id":621,"date":"2020-05-27T15:21:48","date_gmt":"2020-05-27T15:21:48","guid":{"rendered":"https:\/\/unydevelopernetwork.com\/?p=621"},"modified":"2020-05-27T15:22:14","modified_gmt":"2020-05-27T15:22:14","slug":"tutorial-method-setter-getter-dan-hubungannya-dengan-enkapsulasi-java","status":"publish","type":"post","link":"https:\/\/unydevelopernetwork.com\/index.php\/2020\/05\/27\/tutorial-method-setter-getter-dan-hubungannya-dengan-enkapsulasi-java\/","title":{"rendered":"Tutorial: Method Setter &#038; Getter dan Hubungannya dengan Enkapsulasi (Java)"},"content":{"rendered":"<span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Reading Time: <\/span> <span class=\"rt-time\"> 3<\/span> <span class=\"rt-label rt-postfix\">minutes<\/span><\/span>\n<p>Kita pernah belajar tentang <a rel=\"noreferrer noopener\" href=\"https:\/\/unydevelopernetwork.com\/index.php\/2020\/04\/08\/tutorial-private-protected-dan-public-java\/\" target=\"_blank\">modifier private, protected, maupun public<\/a>. Kesemuanya berfungsi untuk membatasi akses sebuah <em>class<\/em>, <em> constructor, data, <\/em>dan <em>method <\/em>ke <em>class <\/em>lain. Sekarang kita akan lebih fokus ke modifier <em>private<\/em>. Kita tahu bahwa sebuah variabel dengan <em>private modifier<\/em> hanya bisa diakses oleh<em> <\/em>semua anggota di dalam <em>class <\/em>yang sama. Lalu, bagaimanakah jika kita ingin mengakses variabel tersebut? <\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Baik,  sebelum lebih dalam lagi, Saya ingin membahas sedikit tentang enkapsulasi. Enkapsulasi secara sederhana adalah menyembunyikan data yang sensitif dari user. Intinya, data yang tersimpan di sebuah variabel harus benar &#8211; benar tersembunyi dan tidak dapat diakses oleh user. Untuk mencapai hal ini, satu &#8211; satunya cara adalah dengan mendeklarasikan variabel atau atribut <em>class<\/em> dengan <em>private modifier<\/em>. <\/p>\n\n\n\n<p>Sekarang, barulah kita berpikir. Jika variabel &#8211; variabel tersebut memiliki <em>private modifier<\/em>, bisakah kita mendapatkan datanya, bahkan mengubah datanya? Jawabnya, Ya, tentu bisa. Caranya adalah dengan menggunakan method <strong>GET <\/strong>dan <strong>SET<\/strong> dengan <em>public modifier<\/em>. Kedua method ini, pada umumnya disebut method <strong>GETTER <\/strong>and <strong>SETTER<\/strong>.<\/p>\n\n\n\n<p>Untuk lebih memahamkan lagi tentang method <strong>GETTER <\/strong>dan <strong>SETTER<\/strong> ini, perhatikanlah contoh berikut.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public class SimpleMethod {\n\tprivate static GeneralVariable gv = new GeneralVariable();\n\t\n\tpublic static void main(String&#91;] args) {\n\t\tgv.setText(\"Halo Nama Saya Irfan\");\n\t\tSystem.out.println(gv.getText());\n\t}\n}\n\npublic class GeneralVariable {\n\tprivate String inputText = \"\";\n\t\t\n\tpublic void setText(String text) {\n\t\tinputText = text;\n\t}\n\t\n\tpublic String getText(){\n\t\treturn inputText;\n\t}\n}<\/code><\/pre>\n\n\n\n<p>Pertama, perhatikan <em>class<\/em> GeneralVariable terlebih dahulu. Di dalam <em>class<\/em> GeneralVariable terdapat satu buah variabel dengan <em>private modifier <\/em>yakni <strong>inputText<\/strong>. Variabel ini akan menyimpan data yang dimasukkan oleh User dan kemudian disembunyikan. Secara default, variabel ini tidak dapat diakses dari luar <em>class<\/em>.  Untuk dapat mengaksesnya maka ditambahkanlah dua method dengan <em>public modifier<\/em>: <strong>setText<\/strong> dan <strong>getText<\/strong>. Di dalam method ini, terdapat baris kode yang bertugas untuk memasukkan <em>value<\/em> ke dalam variabel, dan mengembalikan nilai dari variabel. <\/p>\n\n\n\n<p>Kedua, pada <em>class<\/em> SimpleMethod, untuk dapat menggunakan method <strong>setText <\/strong>dan <strong>getText<\/strong> kita buat dulu class <strong>GeneralVariable<\/strong> sebagai <em>object<\/em>. Selanjutnya, kita hanya perlu memanggil method <strong>setText<\/strong> dan <strong>getText <\/strong>tersebut ke dalam method main. Berikut adalah hasilnya.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"700\" height=\"287\" src=\"https:\/\/unydevelopernetwork.com\/wp-content\/uploads\/2020\/05\/image-47-700x287.png\" alt=\"\" class=\"wp-image-623\" srcset=\"https:\/\/unydevelopernetwork.com\/wp-content\/uploads\/2020\/05\/image-47-700x287.png 700w, https:\/\/unydevelopernetwork.com\/wp-content\/uploads\/2020\/05\/image-47-300x123.png 300w, https:\/\/unydevelopernetwork.com\/wp-content\/uploads\/2020\/05\/image-47-768x314.png 768w, https:\/\/unydevelopernetwork.com\/wp-content\/uploads\/2020\/05\/image-47.png 860w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/figure><\/div>\n\n\n\n<p>Masih belum clear? mari kita coba dengan yang lebih rumit. Kita akan membuat <em>class <\/em>baru yang mengimplementasikan inputan dari user. Kita tetap akan menggunakan <em>class<\/em> GeneralVariable, dan kita akan membuat <em>class <\/em>baru untuk inputannya. Berikut adalah <em>class<\/em> nya.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import java.util.Scanner;\n\npublic class SetterGetter {\n\t\n\tprivate static GeneralVariable gv = new GeneralVariable();\n\t\n\tprivate static Scanner initInput() {\n\t\treturn new Scanner(System.in);\n\t}\n\t\n\tprivate static void getInput() {\n\t\tSystem.out.print(\"Masukkan Sesuatu: \");\n\t\tString x = initInput().nextLine();\n\t\tgv.setText(x);\n\t}\n\t\n\tprivate static void displayInput() {\n\t\tSystem.out.println(\"Anda baru saja memasukkan: \" + gv.getText());\n\t}\n\t\n\tprivate static boolean end() {\n\t\tboolean status = true;\n\t\tboolean appStatus = true;\n\t\tString alpha = \"\";\n\t\twhile(status) {\n\t\t\tSystem.out.print(\"Lanjutkan? (Y\/N): \");\n\t\t\talpha = initInput().next();\n\t\t\tif(alpha.equalsIgnoreCase(\"Y\") || alpha.equalsIgnoreCase(\"N\")) {\n\t\t\t\tstatus = false;\n\t\t\t\tif(alpha.equalsIgnoreCase(\"Y\")) appStatus = true;\n\t\t\t\telse appStatus = false;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tstatus = true;\n\t\t\t\tSystem.out.println(\"Masukan hanya Y\/N!\");\n\t\t\t}\n\t\t}\n\t\treturn appStatus;\n\t}\n\t\n\tpublic static void main(String&#91;] args) {\n\t\tboolean continyu = true;\n\t\twhile(continyu) {\n\t\t\tgetInput();\n\t\t\tdisplayInput();\n\t\t\tcontinyu = end();\n\t\t}\n\t}\n}<\/code><\/pre>\n\n\n\n<p>Mari kita perhatikan sejenak <em>class<\/em> di atas. Sekilas, <em>class <\/em>di atas tampak rumit. Namun, jika Anda perhatikan dua method: <strong>getInput<\/strong> dan <strong>displayInput<\/strong> maka sekarang akan terlihat tampak lebih sederhana. Ya, method <strong>getInput<\/strong> berfungsi untuk mendapatkan masukan dari user dan menyimpannya ke dalam variabel <strong>inputText<\/strong>, sedangkan method <strong>displayInput<\/strong> berfungsi untuk menampilkan isian variabel <strong>inputText<\/strong>. <\/p>\n\n\n\n<p>Lalu, apa fungsi dari method <strong>initInput<\/strong> dan <strong>end<\/strong>? Dapat Anda perhatikan, method <strong>initInput<\/strong> hanya berisi kembalian yang berupa object scanner. Artinya method ini berfungsi sebagai instansiasi object Scanner yang akan digunakan untuk menerima masukan dari user. Sedangkan method <strong>end<\/strong> berfungsi untuk menghandle <em>lifetime<\/em> dari program dengan pertanyaan sederhana yakni berupa <strong>&#8220;Lanjutkan? (Y\/N):&#8221; <\/strong>dan user diharuskan memilih diantara huruf Y atau N yang dimana apabila user memilih huruf &#8220;Y&#8221; maka program akan diulang, sedangkan apabila user memilih huruf &#8220;N&#8221; maka program akan selesai. <\/p>\n\n\n\n<p>Berikut adalah penampakan program ketika di run<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"525\" height=\"238\" src=\"https:\/\/unydevelopernetwork.com\/wp-content\/uploads\/2020\/05\/image-48.png\" alt=\"\" class=\"wp-image-624\" srcset=\"https:\/\/unydevelopernetwork.com\/wp-content\/uploads\/2020\/05\/image-48.png 525w, https:\/\/unydevelopernetwork.com\/wp-content\/uploads\/2020\/05\/image-48-300x136.png 300w\" sizes=\"auto, (max-width: 525px) 100vw, 525px\" \/><\/figure><\/div>\n\n\n\n<p>Dapat kita lihat dari run program di atas, value dari variabel <strong>inputText<\/strong> pasti akan terus berubah ketika method <strong>setText<\/strong> dipanggil.<\/p>\n\n\n\n<p>Demikianlah artikel tutorial tentang &#8220;Method Setter &amp; Getter dan Hubungannya dengan Enkapsulasi&#8221; untuk bahasa pemrograman Java. Semoga Anda paham &amp; mengerti.  Apabila Anda masih memiliki kesulitan dalam memahami artikel ini, Anda sangat diperbolehkan untuk meninggalkan pertanyaan pada kolom komentar. Saya akan berusaha secepatnya menjawab pertanyaan Anda. <\/p>\n\n\n\n<p>Apabila Anda ingin mencuplik artikel ini, jangan lupa juga sertakan URL nya. <\/p>\n\n\n\n<p>Terima kasih&#8230;. ^_^<\/p>\n\n\n\n<p><strong>UNDUH PROJECT<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/github.com\/milstrike\/UNYDeveloperNetwork\/tree\/master\/SetterGetter\">https:\/\/github.com\/milstrike\/UNYDeveloperNetwork\/tree\/master\/SetterGetter<\/a><\/li><\/ul>\n\n\n\n<p><strong>REFERENSI<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/www.w3schools.com\/java\/java_encapsulation.asp\">https:\/\/www.w3schools.com\/java\/java_encapsulation.asp<\/a><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p><span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Reading Time: <\/span> <span class=\"rt-time\"> 3<\/span> <span class=\"rt-label rt-postfix\">minutes<\/span><\/span>Kita pernah belajar tentang modifier private, protected, maupun public. Kesemuanya berfungsi untuk membatasi akses sebuah class, constructor, data, dan method ke class lain. Sekarang kita akan lebih fokus ke modifier private. Kita&#8230;<\/p>\n","protected":false},"author":1,"featured_media":623,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[3,2],"tags":[99,213,212,215,207,5,214,141,204,209,211,208,210,59,206],"class_list":["post-621","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-java","category-tutorial","tag-eclipse","tag-encapsulation","tag-enkapsulasi","tag-enkapsulasi-java","tag-getter","tag-java","tag-java-encapsulation","tag-java-programming","tag-method","tag-method-getter","tag-method-getter-java","tag-method-setter","tag-method-setter-java","tag-programming","tag-setter"],"featured_image_src":"https:\/\/unydevelopernetwork.com\/wp-content\/uploads\/2020\/05\/image-47.png","author_info":{"display_name":"Muhammad Irfan Luthfi","author_link":"https:\/\/unydevelopernetwork.com\/index.php\/author\/admin\/"},"jetpack_featured_media_url":"https:\/\/unydevelopernetwork.com\/wp-content\/uploads\/2020\/05\/image-47.png","jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/unydevelopernetwork.com\/index.php\/wp-json\/wp\/v2\/posts\/621","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/unydevelopernetwork.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/unydevelopernetwork.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/unydevelopernetwork.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/unydevelopernetwork.com\/index.php\/wp-json\/wp\/v2\/comments?post=621"}],"version-history":[{"count":1,"href":"https:\/\/unydevelopernetwork.com\/index.php\/wp-json\/wp\/v2\/posts\/621\/revisions"}],"predecessor-version":[{"id":625,"href":"https:\/\/unydevelopernetwork.com\/index.php\/wp-json\/wp\/v2\/posts\/621\/revisions\/625"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/unydevelopernetwork.com\/index.php\/wp-json\/wp\/v2\/media\/623"}],"wp:attachment":[{"href":"https:\/\/unydevelopernetwork.com\/index.php\/wp-json\/wp\/v2\/media?parent=621"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/unydevelopernetwork.com\/index.php\/wp-json\/wp\/v2\/categories?post=621"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/unydevelopernetwork.com\/index.php\/wp-json\/wp\/v2\/tags?post=621"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}