{"id":11810,"date":"2022-09-09T07:05:00","date_gmt":"2022-09-09T00:05:00","guid":{"rendered":"https:\/\/www.jetorbit.com\/blog\/?p=11810"},"modified":"2022-09-08T10:57:17","modified_gmt":"2022-09-08T03:57:17","slug":"apa-itu-rpc-dan-cara-kerja","status":"publish","type":"post","link":"https:\/\/www.jetorbit.com\/blog\/apa-itu-rpc-dan-cara-kerja\/","title":{"rendered":"Apa Itu RPC, Kelebihan, dan Cara Kerja"},"content":{"rendered":"\n<p>Singkatan RPC ini ada beberapa kepanjangan nih makanya di sini kami ingin membahas salah satu kepanjangan RPC, yakni <em>Remote Procedure Calls<\/em>. Tak usah kelamaan bingungnya, simak sampai tuntas saja yuk <strong>Apa Itu RPC, Kelebihan, dan Cara Kerja<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Apa Itu RPC<\/strong><\/h2>\n\n\n\n<p><em>Remote Procedure Call<\/em> (RPC) adalah sebuah metode yang memungkinkan kita untuk mengakses sebuah prosedur yang berada di komputer lain. Untuk dapat melakukan ini, sebuah <em>server <\/em>harus menyediakan layanan <em>remote procedure<\/em>.<\/p>\n\n\n\n<p>Pendekatan yang dilakukan adalah sebuah <em>server <\/em>membuka <em>socket<\/em> lalu menunggu <em>client <\/em>yang meminta prosedur yang disediakan oleh <em>server<\/em>. Jika <em>client <\/em>tidak tahu harus menghubungi <em>port <\/em>yang mana, <em>client <\/em>bisa me-<em>request<\/em> kepada sebuah <em>matchmaker <\/em>pada sebuah RPC <em>port <\/em>yang tetap. <em>Matchmaker <\/em>akan memberikan <em>port <\/em>apa yang digunakan oleh prosedur yang diminta <em>client<\/em>.<\/p>\n\n\n\n<p>RPC masih menggunakan cara primitif dalam pemrograman, yaitu menggunakan paradigma <em>procedural programming<\/em>. Hal itu membuat kita sulit ketika menyediakan banyak <em>remote procedure<\/em>. RPC menggunakan <em>socket <\/em>untuk berkomunikasi dengan proses lainnya. Pada sistem seperti SUN, RPC secara <em>default <\/em>sudah ter-<em>install<\/em> ke dalam sistemnya.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Implementasi RPC<\/strong><\/h2>\n\n\n\n<p>Untuk prosesnya kurang lebih sama dengan RMI. Kalau RMI kita mengenal <em>proxy <\/em>dan <em>skeleton<\/em>, pada RPC dikenal dengan Stub (<em>Client stub<\/em> dan <em>Server stub<\/em>)<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/www.jetorbit.com\/blog\/wp-content\/uploads\/2022\/08\/RPC-Kelebihan-dan-Cara-Kerja-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"313\" height=\"201\" src=\"https:\/\/www.jetorbit.com\/blog\/wp-content\/uploads\/2022\/08\/RPC-Kelebihan-dan-Cara-Kerja-1.png\" alt=\"implementasi RPC\" class=\"wp-image-11812\" \/><\/a><\/figure><\/div>\n\n\n<p>Remote Reference Modul dan Communication Modul berada pada tatanan sistem operasi. Contoh implementasinya adalah Sun Microsystems Open Network Computing (ONC): RPC specification, XDR (<em>eXternal Data Representation<\/em>) standard, UDP, atau TCP transport protocol.&nbsp;<\/p>\n\n\n\n<p>Courier: RPC model, data representation standard, XNS (<em>Xerox Network Systems<\/em>), SPP (<em>Sequenced Packet Protocol<\/em>) sebagai <em>transport protocol<\/em>, Apollo s Network Computing Architecture (NCA), RPC <em>protocol<\/em>, NDR (Network Data Representation).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Cara Kerja RPC<\/strong><\/h2>\n\n\n\n<p>Tiap prosedur yang dipanggil dalam RPC maka proses ini harus berkoneksi dengan <em>server remote<\/em> dengan mengirimkan semua parameter yang dibutuhkan, menunggu balasan dari <em>server, <\/em>melakukan proses kemudian selesai. Proses di atas disebut juga dengan stub pada sisi klien. Sedangkan stub pada sisi server adalah proses menunggu tiap <em>message <\/em>yang berisi permintaan mengenai prosedur tertentu.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/www.jetorbit.com\/blog\/wp-content\/uploads\/2022\/08\/RPC-Kelebihan-dan-Cara-Kerja-2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"360\" height=\"181\" src=\"https:\/\/www.jetorbit.com\/blog\/wp-content\/uploads\/2022\/08\/RPC-Kelebihan-dan-Cara-Kerja-2.png\" alt=\"apa itu RPC\" class=\"wp-image-11813\" \/><\/a><\/figure><\/div>\n\n\n<p>Diagram di atas memberikan gambaran mengenai <em>flow <\/em>dari eksekusi dalam proses RPC. Berikut ini adalah diagram yang akan menjelaskan secara rinci mengenai proses yang terjadi pada klien dan <em>server <\/em>dalam eksekusi suatu prosedur RPC:<\/p>\n\n\n\n<p>Berikut adalah penjelasan dari diagram di atas:<\/p>\n\n\n\n<ol class=\"wp-block-list\" type=\"1\"><li>Klien memanggil prosedur stub lokal. Prosedur Stub akan memberikan parameter dalam suatu paket yang akan dikirim ke jaringan. Proses ini disebut sebagai <em>marshalling<\/em>.<\/li><li>Fungsi Network pada O\/S (Operating system \u2013 Sistem Operasi) akan dipanggil oleh stub untuk mengirim suatu <em>message<\/em>.<\/li><li>Kemudian Kernel ini akan mengirim <em>message <\/em>ke sistem <em>remote<\/em>. Kondisi ini dapat berupa <em>connectionless <\/em>atau <em>connection-oriented<\/em>.<\/li><li>Stub pada sisi <em>server <\/em>akan melakukan proses <em>unmarshals <\/em>pada paket yang dikirim pada <em>network<\/em>.<\/li><li>Stub pada <em>server <\/em>kemudian mengeksekusi prosedur panggilan lokal.<\/li><li>Jika eksekusi prosedur ini telah selesai maka eksekusi diberikan kembali ke stub pada <em>server<\/em>.<\/li><li>Stub <em>server <\/em>akan melakukan proses <em>marshals <\/em>lagi dan mengirimkan <em>message <\/em>nilai balikan (hasilnya) kembali ke jaringan.<\/li><li><em>Message <\/em>ini akan dikirim kembali ke klien.<\/li><li>Stub klien akan membaca <em>message <\/em>ini dengan menggunakan fungsi pada jaringan.<\/li><li>Proses <em>unmarshalled <\/em>kemudian dilakukan pada message ini dan nilai balikan akan diambil untuk kemudian diproses pada proses lokal.<\/li><\/ol>\n\n\n\n<p>Proses di atas akan dilakukan berulang-ulang (rekursif) dalam pengeksekusian RPC dalam suatu <em>remote <\/em>sistem. Contoh aplikasi untuk meremote pada teknik RPC (<em>Remote Procedure Call<\/em>) adalah menggunakan <em>putty <\/em>untuk melakukan SSH.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Kelebihan RPC<\/strong><\/h2>\n\n\n\n<p>Berikut ada beberapa kelebihan dari RPC:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Relatif mudah digunakan.<\/li><li>Pemanggilan <em>remote procedure<\/em> tidak jauh berbeda dibandingkan pemanggilan <em>local procedure<\/em>. Sehingga, pemrogram dapat berkonsentrasi pada <em>software logic<\/em>, tidak perlu memikirkan <em>low level details<\/em>, seperti soket, <em>marshalling, <\/em>dan <em>unmarshalling<\/em>.<\/li><li>Robust (sempurna).<\/li><li>Sejak th 1980-an RPC telah banyak digunakan dalam pengembangan <em>mission-critical application<\/em> yang membutuhkan <em>scalability<\/em>, <em>fault tolerance<\/em>, dan <em>reliability<\/em>.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Kelemahan RPC<\/strong><\/h2>\n\n\n\n<p>Berikut beberapa kelemahan dari RPC:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Tidak fleksibel terhadap perubahan.<\/li><li><em>Static relationship between client<\/em> &amp; <em>server at run-time<\/em>.<\/li><li>Berdasarkan prosedural\/<em>structured programming <\/em>yang sudah ketinggalan jaman dibandingkan <em>Object Oriented Proggraming<\/em>.<\/li><li>Kurangnya<em> location transparency<\/em>.<\/li><li>Misalnya pemrogram hanya boleh melakukan<em> pass by value<\/em>, bukan pass by reference.<\/li><li>Komunikasi hanya antara 1 klien &amp; 1 server (<em>one-to-one at a time<\/em>).<\/li><li>Komunikasi antara 1 klien &amp; beberapa <em>server <\/em>membutuhkan beberapa koneksi yang terpisah.<\/li><\/ul>\n\n\n\n<p>Okay, jadi bisa disimpulkan bahwa <em>Remote Procedure Call <\/em>(RPC) merupakan sebuah metode yang memungkinkan kita untuk mengakses sebuah prosedur yang berada di komputer lain. Nah, untuk dapat melakukan ini, sebuah <em>server <\/em>harus menyediakan layanan <em>remote procedure<\/em>.&nbsp;<\/p>\n\n\n\n<p>Oia, bagi kalian yang ingin membuat website khususnya bagi pemula, santuy, Jetorbit punya ebook spesial untuk kalian. Kalian bisa download ebook<a href=\"https:\/\/www.jetorbit.com\/langkah-membuat-website\/\"> Panduan Mengenal Website untuk Pemula<\/a> dengan GRATIS! Kami juga menyediakan<a href=\"https:\/\/www.jetvm.com\/\" target=\"_blank\" rel=\"noopener\"> VPS<\/a> yang bisa kalian pilih sesuai kebutuhan kalian, lho.<\/p>\n\n\n\n<p>Semoga bermanfaat dan tunggu info-info menarik lainnya dari kami, ya \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Singkatan RPC ini ada beberapa kepanjangan nih makanya di sini kami ingin membahas salah satu kepanjangan RPC, yakni Remote Procedure Calls. Tak usah kelamaan bingungnya, simak sampai tuntas saja yuk Apa Itu RPC, Kelebihan, dan Cara Kerja Apa Itu RPC Remote Procedure Call (RPC) adalah sebuah metode yang memungkinkan kita untuk mengakses sebuah prosedur yang &#8230; <a title=\"Apa Itu RPC, Kelebihan, dan Cara Kerja\" class=\"read-more\" href=\"https:\/\/www.jetorbit.com\/blog\/apa-itu-rpc-dan-cara-kerja\/\" aria-label=\"Read more about Apa Itu RPC, Kelebihan, dan Cara Kerja\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":12088,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"generate_page_header":"","footnotes":""},"categories":[25],"tags":[3676,3680,283,7,3679,3681,3682,3677,3678],"class_list":["post-11810","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-info","tag-apa-itu-rpc","tag-cara-kerja-rpc","tag-domain-murah","tag-hosting-murah","tag-implementasi-rpc","tag-kelebihan-rpc","tag-kelemahan-rpc","tag-remote-procedure-call","tag-rpc-adalah","infinite-scroll-item","generate-columns","tablet-grid-50","mobile-grid-100","grid-parent","grid-33"],"_links":{"self":[{"href":"https:\/\/www.jetorbit.com\/blog\/wp-json\/wp\/v2\/posts\/11810","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jetorbit.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jetorbit.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jetorbit.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jetorbit.com\/blog\/wp-json\/wp\/v2\/comments?post=11810"}],"version-history":[{"count":2,"href":"https:\/\/www.jetorbit.com\/blog\/wp-json\/wp\/v2\/posts\/11810\/revisions"}],"predecessor-version":[{"id":11925,"href":"https:\/\/www.jetorbit.com\/blog\/wp-json\/wp\/v2\/posts\/11810\/revisions\/11925"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jetorbit.com\/blog\/wp-json\/wp\/v2\/media\/12088"}],"wp:attachment":[{"href":"https:\/\/www.jetorbit.com\/blog\/wp-json\/wp\/v2\/media?parent=11810"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jetorbit.com\/blog\/wp-json\/wp\/v2\/categories?post=11810"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jetorbit.com\/blog\/wp-json\/wp\/v2\/tags?post=11810"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}