[{"data":1,"prerenderedAt":193},["ShallowReactive",2],{"site-header":3,"site-footer-license":37,"article-return-statement-pada-python-with-latest":41},{"navigations":4},[5,20],{"collection":6,"item":7},"series",{"__typename":6,"title":8,"slug":9,"children_series":10},"Artikel","all",[11,14,17],{"title":12,"slug":13},"Algoritma dan Struktur Data","algoritma-struktur-data",{"title":15,"slug":16},"Konsep Dasar Pemrograman","konsep-dasar-pemrograman",{"title":18,"slug":19},"Kecerdasan Artifisial","kecerdasan-artifisial",{"collection":6,"item":21},{"__typename":6,"title":22,"slug":23,"children_series":24},"Tutorial","tutorial",[25,28,31,34],{"title":26,"slug":27},"Belajar Java","belajar-java",{"title":29,"slug":30},"Belajar Pascal","belajar-pascal",{"title":32,"slug":33},"Belajar Python","belajar-python",{"title":35,"slug":36},"Belajar Golang","belajar-golang",{"name":38,"url":39,"show":40},"CC BY-SA","https://creativecommons.org/licenses/by-sa/4.0/",false,{"article":42,"renderedBody":119,"renderedTakeaway":120,"latestArticles":121,"toc":172},{"id":43,"title":44,"slug":45,"excerpt":46,"published_at":47,"thumbnail_image":48,"tags":50,"reading_time":54,"takeway":55,"body":56,"authors":57,"series":63},"99","Return Statement pada Python","return-statement-pada-python","Return statement memungkinkan kita mengembalikan nilai yang sudah diproses pada fungsi ke pemanggil.","2022-01-03T03:40:03.000Z",{"id":49},"84ba6cca-3cf8-4eec-a71b-841c9beec237",[51,52,53],"python","fungsi","syntax",6,null,"Pada kesempatan kali ini kita akan membahas tentang `return` statement pada Python 3, statement yang memungkinkan kita mengembalikan nilai dari sebuah fungsi.\n\n## Tentang Return Statement\n\nReturn statement merupakan statement spesial yang hanya bisa digunakan di dalam [fungsi](https://invasikode.com/fungsi-python/). Statement ini memungkinkan kita mengembalikan nilai yang sudah diproses pada fungsi ke pemanggil.\n\nSebagai gambaran, return statement memungkinkan kita melakukan hal ini:\n\n```python\n# hitung sisi miring segitiga\n\n# tanpa fungsi:\nc = (a*a + b*b)**.5\n\n# dengan fungsi:\nc = hitung_sisi_miring(a, b)\n```\n\nKira kira bagaimana caranya? sebelumnya kita perlu bahas dulu format pembuatannya.\n\n## Format Penulisan Return Statement\n\nStatement ini terdiri dari keyword `return` diikuti dengan nilai opsional yang ingin dikembalikan. Nilai kembalian ini bisa berisi apapun, bisa data [numerik](https://invasikode.com/tipe-data-numerasi-python/), [string](https://invasikode.com/tipe-data-string-python/), [list](https://invasikode.com/tipe-data-list-python/), atau tidak mengembalikan nilai sama sekali.\n\n```\ndef nama_fungsi([parameter]):\n    tubuh_fungsi\n    ...\n    ...\n    return [nilai_kembalian]\n```\n\n* `nilai_kembalian`: nilai yang akan dikembalikan pada pemanggil (opsional)\n\nUdah, gitu aja.. satu baris kode yang akan sangat berguna 😌.\n\n## Contoh Penggunaan Return Statement\n\nPada kesempatan kali ini kita akan coba menggunakan `return` statement dalam 2 kasus. Yang pertama adalah untuk mengembalikan sebuah nilai, dan yang kedua kita coba menggunakan `return` statement untuk keluar paksa dari eksekusi fungsi.\n\n### Mengembalikan Nilai dengan Return Statement\n\nSeperti yang sudah disebutkan sebelumnya, kegunaan `return` statement adalah untuk mengembalikan nilai dari fungsi ke pemanggil. Nah sekarang kita akan coba buat implementasi kodenya.\n\nSemisal kita ingin menghitung sisi miring segitiga. Seperti yang kita tahu, perhitungan ini dapat diselesaikan menggunakan teorema pythagoras. Masih ingat kan ya?\n\n$$c=\\sqrt{a^2+b^2}$$\n\nPersamaannya cukup sederhana, jika diterjemahkan ke kode python maka akan seperti ini:\n\n```python\nc = (a*a + b*b)**.5\n```\n\nNah, sekarang katakanlah kita punya 3 segitiga yang akan dicari sisi miringnya dengan panjang sisi yang berbeda.\n\n| Nama segitiga | Alas (a) | Tinggi (b) |\n| ------------- | -------- | ---------- |\n| segitiga 1    | 3        | 4          |\n| segitiga 2    | 5        | 12         |\n| segitiga 3    | 7        | 24         |\n\nKalau kita ingin mencari masing-masing sisi miringnya (c) dengan kode python yang telah kita buat sebelumnya maka jadinya akan seperti ini:\n\n```python\na1, a2, a3 = 3, 5, 7\nb1, b2, b3 = 4, 12, 24\n\nc1 = (a1*a1 + b1*b1)**.5\nc2 = (a2*a2 + b2*b2)**.5\nc3 = (a3*a3 + b3*b3)**.5\n\nprint(\"sisi miring segitiga 1:\", c1)\nprint(\"sisi miring segitiga 2:\", c2)\nprint(\"sisi miring segitiga 3:\", c3)\n```\n\noutput:\n\n```\nsisi miring segitiga 1: 5\nsisi miring segitiga 2: 13\nsisi miring segitiga 3: 25\n```\n\nKode tersebut valid memang, tapi coba perhatikan lagi, ada 3 baris kode yang diulang dengan logika yang sama namun variablenya berbeda. Bisa dilihat pada perhitungan variable `c1`, `c2`, dan `c3`. Nah, hal ini sebenarnya bisa kita persingkat dengan memanfaatkan fungsi.\n\nKita akan membuat fungsi dengan nama `hitung_sisi_miring` yang menerima 2 parameter yaitu `a` (alas) dan `b` (tinggi). Selanjutnya, tubuh fungsi berisi perhitungan sisi miring (`c`) sesuai rumus yang ada lalu kita kembalikan nilainya menggunakan `return` statement.\n\nSehingga kodenya menjadi seperti ini:\n\n```python\ndef hitung_sisi_miring(a, b):\n    c = (a*a + b*b)**.5\n    return c\n\nc1 = hitung_sisi_miring(3, 4)\nc2 = hitung_sisi_miring(5, 12)\nc3 = hitung_sisi_miring(7, 24)\n\nprint(\"sisi miring segitiga 1:\", c1)\nprint(\"sisi miring segitiga 2:\", c2)\nprint(\"sisi miring segitiga 3:\", c3)\n```\n\noutput:\n\n```\nsisi miring segitiga 1: 5\nsisi miring segitiga 2: 13\nsisi miring segitiga 3: 25\n```\n\nSipp, dengan begini kita tidak perlu menuliskan rumus panjang berkali-kali dan bisa dilihat kodenya jadi lebih mudah dibaca — kan?\n\nAlih-alih menuliskan rumus perhitungan satu-persatu, sekarang kita hanya perlu memanggil fungsi `hitung_sisi_miring` dengan argumen/parameter yang sesuai. Ini karena rumus logika perhitungan sudah dipindahkan dalam tubuh fungsi.\n\nSekarang kita coba bedah apa yang terjadi ketika pemanggilan `hitung_sisi_miring(3, 4)`\n\n```python\n# pemanggilan fungsi hitung_sisi_miring(3, 4)\n\ndef hitung_sisi_miring(a, b):\n\t# sekarang nilai a = 3 dan b = 4\n    # melakukan perhitungan sesuai rumus\n    c = (a*a + b*b)**.5 # nilai c = 5\n    return c            # mengembalikan nilai c pada pemanggil\n```\n\nKetika fungsi sudah sampai pada keyword `return` maka nilai terkait akan dikembalikan (dalam hal ini `c`). Sehingga nilai dari `hitung_sisi_miring(3, 4)` adalah 5. Hal ini menyebabkan assignment `c1 = hitung_sisi_miring(3, 4)` secara otomatis menjadi `c1 = 5`. Begitu pula untuk `c2` dan `c3`.\n\n### Menggunakan Return Statement untuk Menghentikan Eksekusi Fungsi\n\nKalau sebelumnya kita sudah coba menuliskan `return` statement di akhir tubuh fungsi, bagaimana jika kita menuliskannya di tengah-tengah? mari kita cari tahu.\n\nCoba perhatikan lagi fungsi yang sudah kita buat sebelumnya. Bisa kita lihat bahwa fungsi `hitung_sisi_miring` dapat menerima parameter apa saja, termasuk bilangan negatif. Nah, karena panjang sisi segitiga tidak mungkin negatif maka harus ada pengaman dari fungsi tersebut. Katakanlah kita akan mengembalikan nilai -1 jika ada salah satu dari parameter bernilai negatif, maka kodenya bisa ditulis seperti ini:\n\n```python\ndef hitung_sisi_miring(a, b):\n    if a \u003C 0 or b \u003C 0:\n        return -1\n\n    c = (a*a + b*b)**.5\n    return c\n```\n\nBisa dilihat ya terdapat 2 return statement pada fungsi tersebut, tapi kita-kira bagaimana proses eksekusinya? `return` mana yang akan dieksekusi? Mari kita coba jalankan.\n\n```python\ndef hitung_sisi_miring(a, b):\n    if a \u003C 0 or b \u003C 0:\n        return -1\n\n    c = (a*a + b*b)**.5\n    return c\n\nc1 = hitung_sisi_miring(3, 4)   # a dan b positif\nc2 = hitung_sisi_miring(-3, 4)  # a negatif, b positif\nc3 = hitung_sisi_miring(3, -4)  # a positif, b negatif\nc4 = hitung_sisi_miring(-3, -4) # a dan b negatif\n\nprint(\"nilai c1:\", c1)\nprint(\"nilai c2:\", c2)\nprint(\"nilai c3:\", c3)\nprint(\"nilai c4:\", c4)\n```\n\nOutput:\n\n```\nnilai c1: 5\nnilai c2: -1\nnilai c3: -1\nnilai c4: -1\n```\n\nPada output tersebut terlihat bahwa jika kita memasukkan nilai negatif pada salah satu atau kedua parameter, nilai yang dikembalikan adalah -1 atau pada kasus ini nilai dari `return` statement yang pertama. Lalu bagaimana dengan `return` statement selanjutnya?\n\nPada Python, ketika sebuah fungsi menyentuh keyword `return` maka hal yang akan dilakukan adalah keluar dari fungsi dan mengembalikan nilai pada saat itu juga. Karena sudah ada nilai yang dikembalikan, maka eksekusi fungsi dinyatakan selesai sehingga seluruh kode selanjutnya tidak akan dieksekusi.\n\nOleh karena itulah kita mendapatkan output seperti yang ada diatas.\n\n`return` statement ini juga bisa bertindak seperti [keyword `break`](https://invasikode.com/break-dan-continue-pada-python/) yang ada pada [perulangan](https://invasikode.com/for-loop-python/). Tetapi alih-alih menghentikan iterasi, dengan `return` statement kita bisa keluar paksa dan menghentikan alur fungsi. Caranya adalah dengan memanggil `return` tanpa memberikan nilai kembalian. Coba perhatikan kode berikut:\n\n```python\n# definisi fungsi cetak\ndef cetak():\n    print(\"Halo, Inva!\")\n    print(\"Ini adalah perintah sebelum return dipanggil\")\n    print(\"Setelah return dieksekusi maka fungsi dinyatakan selesai\")\n    return\n    print(\"Baris ini tidak akan dieksekusi\")\n    print(\"Baris ini juga tidak\")\n    print(\"Apalagi ini!!\")\n\ncetak() # memanggil fungsi cetak\n```\n\nOutput:\n\n```\nHalo, Inva!\nIni adalah perintah sebelum return dipanggil\nSetelah return dieksekusi maka fungsi dinyatakan selesai\n```\n\nBisa dilihat ya, semua perintah `print` setelah keyword `return` tidak dieksekusi.\n\n## Selanjutnya apa?\n\nCukup sekian untuk kesempatan kali ini, semoga bermanfaat 😉\n\nPada kesempatan selanjutnya kita akan membahas satu lagi keyword khusus pada fungsi yaitu tentang [`pass` statement pada Python 3](https://invasikode.com/pass-python/).\n\nSee ya 👋",[58],{"authors_id":59},{"name":60,"slug":61,"role":62,"profile_picture":55},"Daffa Izzuddin","izzudd","Writer",{"id":64,"title":65,"slug":66,"articles":67,"parent_series":97},"20","Pemrograman Fungsional dengan Python","python-pemrograman-fungsional",[68,77,80,89],{"id":69,"title":70,"slug":71,"excerpt":72,"thumbnail_image":73,"tags":75},"98","Fungsi dan Sub Program pada Python","fungsi-dan-sub-program-pada-python","Fungsi atau dalam istilah pemrograman disebut dengan “function” merupakan blok kode yang digunakan untuk menyelesaikan masalah spesifik.",{"id":74},"7c341146-fd71-44a9-9685-3d9514f997c8",[51,52,76],"sub-program",{"id":43,"title":44,"slug":45,"excerpt":46,"thumbnail_image":78,"tags":79},{"id":49},[51,52,53],{"id":81,"title":82,"slug":83,"excerpt":84,"thumbnail_image":85,"tags":87},"100","Pass Statement pada Python","pass-statement-pada-python","pass statement pada python merupakan statement spesial yang hanya bisa digunakan di dalam compound statement",{"id":86},"88e549d9-dca0-408d-9eae-4763fcf32848",[51,53,88],"struktur-kontrol",{"id":90,"title":91,"slug":92,"excerpt":93,"thumbnail_image":94,"tags":96},"101","Default Argument dan Keyword Argument pada Python","default-argument-pada-python","Default argument merupakan argument fungsi yang memiliki nilai asal, dengan ini kita bisa membuat argument opsional",{"id":95},"ee745ec6-eddf-4d26-bb05-2edb858286b1",[51,52,53],{"id":98,"title":32,"slug":33,"parent_series":99,"children_series":101},"10",{"id":100,"title":22,"slug":23,"parent_series":55},"1",[102,106,110,114,118],{"id":103,"title":104,"slug":105,"cover_image":55},"16","Berkenalan dengan Bahasa Python","python-intro",{"id":107,"title":108,"slug":109,"cover_image":55},"17","Variabel, Tipe Data, dan Operasi","python-variabel-tipe-data",{"id":111,"title":112,"slug":113,"cover_image":55},"18","Menggunakan Script Python","python-pemrograman-dengan-script",{"id":115,"title":116,"slug":117,"cover_image":55},"19","Struktur Kontrol","python-struktur-kontrol",{"id":64,"title":65,"slug":66,"cover_image":55},"\u003Cp>Pada kesempatan kali ini kita akan membahas tentang \u003Ccode>return\u003C/code> statement pada Python 3, statement yang memungkinkan kita mengembalikan nilai dari sebuah fungsi.\u003C/p>\n\u003Ch2 id=\"tentang-return-statement\">Tentang Return Statement\u003C/h2>\n\u003Cp>Return statement merupakan statement spesial yang hanya bisa digunakan di dalam \u003Ca href=\"https://invasikode.com/fungsi-python/\">fungsi\u003C/a>. Statement ini memungkinkan kita mengembalikan nilai yang sudah diproses pada fungsi ke pemanggil.\u003C/p>\n\u003Cp>Sebagai gambaran, return statement memungkinkan kita melakukan hal ini:\u003C/p>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">PYTHON\u003C/span>\n    \u003C/div>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"%23%20hitung%20sisi%20miring%20segitiga%0A%0A%23%20tanpa%20fungsi%3A%0Ac%20%3D%20(a*a%20%2B%20b*b)**.5%0A%0A%23%20dengan%20fungsi%3A%0Ac%20%3D%20hitung_sisi_miring(a%2C%20b)\" title=\"Salin kode\">\n      \u003Csvg class=\"w-3.5 h-3.5 copy-icon-svg\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n        \u003Cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\">\u003C/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># hitung sisi miring segitiga\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># tanpa fungsi:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">c \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> (a\u003C/span>\u003Cspan style=\"color:#F97583\">*\u003C/span>\u003Cspan style=\"color:#E1E4E8\">a \u003C/span>\u003Cspan style=\"color:#F97583\">+\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> b\u003C/span>\u003Cspan style=\"color:#F97583\">*\u003C/span>\u003Cspan style=\"color:#E1E4E8\">b)\u003C/span>\u003Cspan style=\"color:#F97583\">**\u003C/span>\u003Cspan style=\"color:#79B8FF\">.5\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># dengan fungsi:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">c \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> hitung_sisi_miring(a, b)\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Kira kira bagaimana caranya? sebelumnya kita perlu bahas dulu format pembuatannya.\u003C/p>\n\u003Ch2 id=\"format-penulisan-return-statement\">Format Penulisan Return Statement\u003C/h2>\n\u003Cp>Statement ini terdiri dari keyword \u003Ccode>return\u003C/code> diikuti dengan nilai opsional yang ingin dikembalikan. Nilai kembalian ini bisa berisi apapun, bisa data \u003Ca href=\"https://invasikode.com/tipe-data-numerasi-python/\">numerik\u003C/a>, \u003Ca href=\"https://invasikode.com/tipe-data-string-python/\">string\u003C/a>, \u003Ca href=\"https://invasikode.com/tipe-data-list-python/\">list\u003C/a>, atau tidak mengembalikan nilai sama sekali.\u003C/p>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">TEXT\u003C/span>\n    \u003C/div>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"def%20nama_fungsi(%5Bparameter%5D)%3A%0A%20%20%20%20tubuh_fungsi%0A%20%20%20%20...%0A%20%20%20%20...%0A%20%20%20%20return%20%5Bnilai_kembalian%5D\" title=\"Salin kode\">\n      \u003Csvg class=\"w-3.5 h-3.5 copy-icon-svg\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n        \u003Cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\">\u003C/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\">\u003Ccode>def nama_fungsi([parameter]):\n    tubuh_fungsi\n    ...\n    ...\n    return [nilai_kembalian]\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cul>\n\u003Cli>\u003Ccode>nilai_kembalian\u003C/code>: nilai yang akan dikembalikan pada pemanggil (opsional)\u003C/li>\n\u003C/ul>\n\u003Cp>Udah, gitu aja.. satu baris kode yang akan sangat berguna 😌.\u003C/p>\n\u003Ch2 id=\"contoh-penggunaan-return-statement\">Contoh Penggunaan Return Statement\u003C/h2>\n\u003Cp>Pada kesempatan kali ini kita akan coba menggunakan \u003Ccode>return\u003C/code> statement dalam 2 kasus. Yang pertama adalah untuk mengembalikan sebuah nilai, dan yang kedua kita coba menggunakan \u003Ccode>return\u003C/code> statement untuk keluar paksa dari eksekusi fungsi.\u003C/p>\n\u003Ch3 id=\"mengembalikan-nilai-dengan-return-statement\">Mengembalikan Nilai dengan Return Statement\u003C/h3>\n\u003Cp>Seperti yang sudah disebutkan sebelumnya, kegunaan \u003Ccode>return\u003C/code> statement adalah untuk mengembalikan nilai dari fungsi ke pemanggil. Nah sekarang kita akan coba buat implementasi kodenya.\u003C/p>\n\u003Cp>Semisal kita ingin menghitung sisi miring segitiga. Seperti yang kita tahu, perhitungan ini dapat diselesaikan menggunakan teorema pythagoras. Masih ingat kan ya?\u003C/p>\n\u003Cp>$$c=\\sqrt{a^2+b^2}$$\u003C/p>\n\u003Cp>Persamaannya cukup sederhana, jika diterjemahkan ke kode python maka akan seperti ini:\u003C/p>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">PYTHON\u003C/span>\n    \u003C/div>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"c%20%3D%20(a*a%20%2B%20b*b)**.5\" title=\"Salin kode\">\n      \u003Csvg class=\"w-3.5 h-3.5 copy-icon-svg\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n        \u003Cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\">\u003C/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">c \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> (a\u003C/span>\u003Cspan style=\"color:#F97583\">*\u003C/span>\u003Cspan style=\"color:#E1E4E8\">a \u003C/span>\u003Cspan style=\"color:#F97583\">+\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> b\u003C/span>\u003Cspan style=\"color:#F97583\">*\u003C/span>\u003Cspan style=\"color:#E1E4E8\">b)\u003C/span>\u003Cspan style=\"color:#F97583\">**\u003C/span>\u003Cspan style=\"color:#79B8FF\">.5\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Nah, sekarang katakanlah kita punya 3 segitiga yang akan dicari sisi miringnya dengan panjang sisi yang berbeda.\u003C/p>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Nama segitiga\u003C/th>\n\u003Cth>Alas (a)\u003C/th>\n\u003Cth>Tinggi (b)\u003C/th>\n\u003C/tr>\n\u003C/thead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>segitiga 1\u003C/td>\n\u003Ctd>3\u003C/td>\n\u003Ctd>4\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>segitiga 2\u003C/td>\n\u003Ctd>5\u003C/td>\n\u003Ctd>12\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>segitiga 3\u003C/td>\n\u003Ctd>7\u003C/td>\n\u003Ctd>24\u003C/td>\n\u003C/tr>\n\u003C/tbody>\u003C/table>\n\u003Cp>Kalau kita ingin mencari masing-masing sisi miringnya (c) dengan kode python yang telah kita buat sebelumnya maka jadinya akan seperti ini:\u003C/p>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">PYTHON\u003C/span>\n    \u003C/div>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"a1%2C%20a2%2C%20a3%20%3D%203%2C%205%2C%207%0Ab1%2C%20b2%2C%20b3%20%3D%204%2C%2012%2C%2024%0A%0Ac1%20%3D%20(a1*a1%20%2B%20b1*b1)**.5%0Ac2%20%3D%20(a2*a2%20%2B%20b2*b2)**.5%0Ac3%20%3D%20(a3*a3%20%2B%20b3*b3)**.5%0A%0Aprint(%22sisi%20miring%20segitiga%201%3A%22%2C%20c1)%0Aprint(%22sisi%20miring%20segitiga%202%3A%22%2C%20c2)%0Aprint(%22sisi%20miring%20segitiga%203%3A%22%2C%20c3)\" title=\"Salin kode\">\n      \u003Csvg class=\"w-3.5 h-3.5 copy-icon-svg\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n        \u003Cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\">\u003C/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">a1, a2, a3 \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#79B8FF\"> 3\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#79B8FF\">5\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#79B8FF\">7\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">b1, b2, b3 \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#79B8FF\"> 4\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#79B8FF\">12\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#79B8FF\">24\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">c1 \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> (a1\u003C/span>\u003Cspan style=\"color:#F97583\">*\u003C/span>\u003Cspan style=\"color:#E1E4E8\">a1 \u003C/span>\u003Cspan style=\"color:#F97583\">+\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> b1\u003C/span>\u003Cspan style=\"color:#F97583\">*\u003C/span>\u003Cspan style=\"color:#E1E4E8\">b1)\u003C/span>\u003Cspan style=\"color:#F97583\">**\u003C/span>\u003Cspan style=\"color:#79B8FF\">.5\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">c2 \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> (a2\u003C/span>\u003Cspan style=\"color:#F97583\">*\u003C/span>\u003Cspan style=\"color:#E1E4E8\">a2 \u003C/span>\u003Cspan style=\"color:#F97583\">+\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> b2\u003C/span>\u003Cspan style=\"color:#F97583\">*\u003C/span>\u003Cspan style=\"color:#E1E4E8\">b2)\u003C/span>\u003Cspan style=\"color:#F97583\">**\u003C/span>\u003Cspan style=\"color:#79B8FF\">.5\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">c3 \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> (a3\u003C/span>\u003Cspan style=\"color:#F97583\">*\u003C/span>\u003Cspan style=\"color:#E1E4E8\">a3 \u003C/span>\u003Cspan style=\"color:#F97583\">+\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> b3\u003C/span>\u003Cspan style=\"color:#F97583\">*\u003C/span>\u003Cspan style=\"color:#E1E4E8\">b3)\u003C/span>\u003Cspan style=\"color:#F97583\">**\u003C/span>\u003Cspan style=\"color:#79B8FF\">.5\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"sisi miring segitiga 1:\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, c1)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"sisi miring segitiga 2:\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, c2)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"sisi miring segitiga 3:\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, c3)\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>output:\u003C/p>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">TEXT\u003C/span>\n    \u003C/div>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"sisi%20miring%20segitiga%201%3A%205%0Asisi%20miring%20segitiga%202%3A%2013%0Asisi%20miring%20segitiga%203%3A%2025\" title=\"Salin kode\">\n      \u003Csvg class=\"w-3.5 h-3.5 copy-icon-svg\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n        \u003Cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\">\u003C/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\">\u003Ccode>sisi miring segitiga 1: 5\nsisi miring segitiga 2: 13\nsisi miring segitiga 3: 25\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Kode tersebut valid memang, tapi coba perhatikan lagi, ada 3 baris kode yang diulang dengan logika yang sama namun variablenya berbeda. Bisa dilihat pada perhitungan variable \u003Ccode>c1\u003C/code>, \u003Ccode>c2\u003C/code>, dan \u003Ccode>c3\u003C/code>. Nah, hal ini sebenarnya bisa kita persingkat dengan memanfaatkan fungsi.\u003C/p>\n\u003Cp>Kita akan membuat fungsi dengan nama \u003Ccode>hitung_sisi_miring\u003C/code> yang menerima 2 parameter yaitu \u003Ccode>a\u003C/code> (alas) dan \u003Ccode>b\u003C/code> (tinggi). Selanjutnya, tubuh fungsi berisi perhitungan sisi miring (\u003Ccode>c\u003C/code>) sesuai rumus yang ada lalu kita kembalikan nilainya menggunakan \u003Ccode>return\u003C/code> statement.\u003C/p>\n\u003Cp>Sehingga kodenya menjadi seperti ini:\u003C/p>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">PYTHON\u003C/span>\n    \u003C/div>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"def%20hitung_sisi_miring(a%2C%20b)%3A%0A%20%20%20%20c%20%3D%20(a*a%20%2B%20b*b)**.5%0A%20%20%20%20return%20c%0A%0Ac1%20%3D%20hitung_sisi_miring(3%2C%204)%0Ac2%20%3D%20hitung_sisi_miring(5%2C%2012)%0Ac3%20%3D%20hitung_sisi_miring(7%2C%2024)%0A%0Aprint(%22sisi%20miring%20segitiga%201%3A%22%2C%20c1)%0Aprint(%22sisi%20miring%20segitiga%202%3A%22%2C%20c2)%0Aprint(%22sisi%20miring%20segitiga%203%3A%22%2C%20c3)\" title=\"Salin kode\">\n      \u003Csvg class=\"w-3.5 h-3.5 copy-icon-svg\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n        \u003Cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\">\u003C/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">def\u003C/span>\u003Cspan style=\"color:#B392F0\"> hitung_sisi_miring\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(a, b):\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    c \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> (a\u003C/span>\u003Cspan style=\"color:#F97583\">*\u003C/span>\u003Cspan style=\"color:#E1E4E8\">a \u003C/span>\u003Cspan style=\"color:#F97583\">+\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> b\u003C/span>\u003Cspan style=\"color:#F97583\">*\u003C/span>\u003Cspan style=\"color:#E1E4E8\">b)\u003C/span>\u003Cspan style=\"color:#F97583\">**\u003C/span>\u003Cspan style=\"color:#79B8FF\">.5\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">    return\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> c\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">c1 \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> hitung_sisi_miring(\u003C/span>\u003Cspan style=\"color:#79B8FF\">3\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#79B8FF\">4\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">c2 \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> hitung_sisi_miring(\u003C/span>\u003Cspan style=\"color:#79B8FF\">5\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#79B8FF\">12\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">c3 \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> hitung_sisi_miring(\u003C/span>\u003Cspan style=\"color:#79B8FF\">7\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#79B8FF\">24\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"sisi miring segitiga 1:\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, c1)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"sisi miring segitiga 2:\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, c2)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"sisi miring segitiga 3:\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, c3)\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>output:\u003C/p>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">TEXT\u003C/span>\n    \u003C/div>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"sisi%20miring%20segitiga%201%3A%205%0Asisi%20miring%20segitiga%202%3A%2013%0Asisi%20miring%20segitiga%203%3A%2025\" title=\"Salin kode\">\n      \u003Csvg class=\"w-3.5 h-3.5 copy-icon-svg\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n        \u003Cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\">\u003C/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\">\u003Ccode>sisi miring segitiga 1: 5\nsisi miring segitiga 2: 13\nsisi miring segitiga 3: 25\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Sipp, dengan begini kita tidak perlu menuliskan rumus panjang berkali-kali dan bisa dilihat kodenya jadi lebih mudah dibaca — kan?\u003C/p>\n\u003Cp>Alih-alih menuliskan rumus perhitungan satu-persatu, sekarang kita hanya perlu memanggil fungsi \u003Ccode>hitung_sisi_miring\u003C/code> dengan argumen/parameter yang sesuai. Ini karena rumus logika perhitungan sudah dipindahkan dalam tubuh fungsi.\u003C/p>\n\u003Cp>Sekarang kita coba bedah apa yang terjadi ketika pemanggilan \u003Ccode>hitung_sisi_miring(3, 4)\u003C/code>\u003C/p>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">PYTHON\u003C/span>\n    \u003C/div>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"%23%20pemanggilan%20fungsi%20hitung_sisi_miring(3%2C%204)%0A%0Adef%20hitung_sisi_miring(a%2C%20b)%3A%0A%09%23%20sekarang%20nilai%20a%20%3D%203%20dan%20b%20%3D%204%0A%20%20%20%20%23%20melakukan%20perhitungan%20sesuai%20rumus%0A%20%20%20%20c%20%3D%20(a*a%20%2B%20b*b)**.5%20%23%20nilai%20c%20%3D%205%0A%20%20%20%20return%20c%20%20%20%20%20%20%20%20%20%20%20%20%23%20mengembalikan%20nilai%20c%20pada%20pemanggil\" title=\"Salin kode\">\n      \u003Csvg class=\"w-3.5 h-3.5 copy-icon-svg\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n        \u003Cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\">\u003C/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># pemanggilan fungsi hitung_sisi_miring(3, 4)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">def\u003C/span>\u003Cspan style=\"color:#B392F0\"> hitung_sisi_miring\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(a, b):\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">\t# sekarang nilai a = 3 dan b = 4\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">    # melakukan perhitungan sesuai rumus\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    c \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> (a\u003C/span>\u003Cspan style=\"color:#F97583\">*\u003C/span>\u003Cspan style=\"color:#E1E4E8\">a \u003C/span>\u003Cspan style=\"color:#F97583\">+\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> b\u003C/span>\u003Cspan style=\"color:#F97583\">*\u003C/span>\u003Cspan style=\"color:#E1E4E8\">b)\u003C/span>\u003Cspan style=\"color:#F97583\">**\u003C/span>\u003Cspan style=\"color:#79B8FF\">.5\u003C/span>\u003Cspan style=\"color:#6A737D\"> # nilai c = 5\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">    return\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> c            \u003C/span>\u003Cspan style=\"color:#6A737D\"># mengembalikan nilai c pada pemanggil\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Ketika fungsi sudah sampai pada keyword \u003Ccode>return\u003C/code> maka nilai terkait akan dikembalikan (dalam hal ini \u003Ccode>c\u003C/code>). Sehingga nilai dari \u003Ccode>hitung_sisi_miring(3, 4)\u003C/code> adalah 5. Hal ini menyebabkan assignment \u003Ccode>c1 = hitung_sisi_miring(3, 4)\u003C/code> secara otomatis menjadi \u003Ccode>c1 = 5\u003C/code>. Begitu pula untuk \u003Ccode>c2\u003C/code> dan \u003Ccode>c3\u003C/code>.\u003C/p>\n\u003Ch3 id=\"menggunakan-return-statement-untuk-menghentikan-eksekusi-fungsi\">Menggunakan Return Statement untuk Menghentikan Eksekusi Fungsi\u003C/h3>\n\u003Cp>Kalau sebelumnya kita sudah coba menuliskan \u003Ccode>return\u003C/code> statement di akhir tubuh fungsi, bagaimana jika kita menuliskannya di tengah-tengah? mari kita cari tahu.\u003C/p>\n\u003Cp>Coba perhatikan lagi fungsi yang sudah kita buat sebelumnya. Bisa kita lihat bahwa fungsi \u003Ccode>hitung_sisi_miring\u003C/code> dapat menerima parameter apa saja, termasuk bilangan negatif. Nah, karena panjang sisi segitiga tidak mungkin negatif maka harus ada pengaman dari fungsi tersebut. Katakanlah kita akan mengembalikan nilai -1 jika ada salah satu dari parameter bernilai negatif, maka kodenya bisa ditulis seperti ini:\u003C/p>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">PYTHON\u003C/span>\n    \u003C/div>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"def%20hitung_sisi_miring(a%2C%20b)%3A%0A%20%20%20%20if%20a%20%3C%200%20or%20b%20%3C%200%3A%0A%20%20%20%20%20%20%20%20return%20-1%0A%0A%20%20%20%20c%20%3D%20(a*a%20%2B%20b*b)**.5%0A%20%20%20%20return%20c\" title=\"Salin kode\">\n      \u003Csvg class=\"w-3.5 h-3.5 copy-icon-svg\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n        \u003Cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\">\u003C/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">def\u003C/span>\u003Cspan style=\"color:#B392F0\"> hitung_sisi_miring\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(a, b):\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">    if\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> a \u003C/span>\u003Cspan style=\"color:#F97583\">&#x3C;\u003C/span>\u003Cspan style=\"color:#79B8FF\"> 0\u003C/span>\u003Cspan style=\"color:#F97583\"> or\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> b \u003C/span>\u003Cspan style=\"color:#F97583\">&#x3C;\u003C/span>\u003Cspan style=\"color:#79B8FF\"> 0\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">        return\u003C/span>\u003Cspan style=\"color:#F97583\"> -\u003C/span>\u003Cspan style=\"color:#79B8FF\">1\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    c \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> (a\u003C/span>\u003Cspan style=\"color:#F97583\">*\u003C/span>\u003Cspan style=\"color:#E1E4E8\">a \u003C/span>\u003Cspan style=\"color:#F97583\">+\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> b\u003C/span>\u003Cspan style=\"color:#F97583\">*\u003C/span>\u003Cspan style=\"color:#E1E4E8\">b)\u003C/span>\u003Cspan style=\"color:#F97583\">**\u003C/span>\u003Cspan style=\"color:#79B8FF\">.5\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">    return\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> c\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Bisa dilihat ya terdapat 2 return statement pada fungsi tersebut, tapi kita-kira bagaimana proses eksekusinya? \u003Ccode>return\u003C/code> mana yang akan dieksekusi? Mari kita coba jalankan.\u003C/p>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">PYTHON\u003C/span>\n    \u003C/div>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"def%20hitung_sisi_miring(a%2C%20b)%3A%0A%20%20%20%20if%20a%20%3C%200%20or%20b%20%3C%200%3A%0A%20%20%20%20%20%20%20%20return%20-1%0A%0A%20%20%20%20c%20%3D%20(a*a%20%2B%20b*b)**.5%0A%20%20%20%20return%20c%0A%0Ac1%20%3D%20hitung_sisi_miring(3%2C%204)%20%20%20%23%20a%20dan%20b%20positif%0Ac2%20%3D%20hitung_sisi_miring(-3%2C%204)%20%20%23%20a%20negatif%2C%20b%20positif%0Ac3%20%3D%20hitung_sisi_miring(3%2C%20-4)%20%20%23%20a%20positif%2C%20b%20negatif%0Ac4%20%3D%20hitung_sisi_miring(-3%2C%20-4)%20%23%20a%20dan%20b%20negatif%0A%0Aprint(%22nilai%20c1%3A%22%2C%20c1)%0Aprint(%22nilai%20c2%3A%22%2C%20c2)%0Aprint(%22nilai%20c3%3A%22%2C%20c3)%0Aprint(%22nilai%20c4%3A%22%2C%20c4)\" title=\"Salin kode\">\n      \u003Csvg class=\"w-3.5 h-3.5 copy-icon-svg\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n        \u003Cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\">\u003C/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">def\u003C/span>\u003Cspan style=\"color:#B392F0\"> hitung_sisi_miring\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(a, b):\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">    if\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> a \u003C/span>\u003Cspan style=\"color:#F97583\">&#x3C;\u003C/span>\u003Cspan style=\"color:#79B8FF\"> 0\u003C/span>\u003Cspan style=\"color:#F97583\"> or\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> b \u003C/span>\u003Cspan style=\"color:#F97583\">&#x3C;\u003C/span>\u003Cspan style=\"color:#79B8FF\"> 0\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">        return\u003C/span>\u003Cspan style=\"color:#F97583\"> -\u003C/span>\u003Cspan style=\"color:#79B8FF\">1\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    c \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> (a\u003C/span>\u003Cspan style=\"color:#F97583\">*\u003C/span>\u003Cspan style=\"color:#E1E4E8\">a \u003C/span>\u003Cspan style=\"color:#F97583\">+\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> b\u003C/span>\u003Cspan style=\"color:#F97583\">*\u003C/span>\u003Cspan style=\"color:#E1E4E8\">b)\u003C/span>\u003Cspan style=\"color:#F97583\">**\u003C/span>\u003Cspan style=\"color:#79B8FF\">.5\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">    return\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> c\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">c1 \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> hitung_sisi_miring(\u003C/span>\u003Cspan style=\"color:#79B8FF\">3\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#79B8FF\">4\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)   \u003C/span>\u003Cspan style=\"color:#6A737D\"># a dan b positif\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">c2 \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> hitung_sisi_miring(\u003C/span>\u003Cspan style=\"color:#F97583\">-\u003C/span>\u003Cspan style=\"color:#79B8FF\">3\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#79B8FF\">4\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)  \u003C/span>\u003Cspan style=\"color:#6A737D\"># a negatif, b positif\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">c3 \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> hitung_sisi_miring(\u003C/span>\u003Cspan style=\"color:#79B8FF\">3\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#F97583\">-\u003C/span>\u003Cspan style=\"color:#79B8FF\">4\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)  \u003C/span>\u003Cspan style=\"color:#6A737D\"># a positif, b negatif\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">c4 \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> hitung_sisi_miring(\u003C/span>\u003Cspan style=\"color:#F97583\">-\u003C/span>\u003Cspan style=\"color:#79B8FF\">3\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#F97583\">-\u003C/span>\u003Cspan style=\"color:#79B8FF\">4\u003C/span>\u003Cspan style=\"color:#E1E4E8\">) \u003C/span>\u003Cspan style=\"color:#6A737D\"># a dan b negatif\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"nilai c1:\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, c1)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"nilai c2:\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, c2)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"nilai c3:\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, c3)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"nilai c4:\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, c4)\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Output:\u003C/p>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">TEXT\u003C/span>\n    \u003C/div>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"nilai%20c1%3A%205%0Anilai%20c2%3A%20-1%0Anilai%20c3%3A%20-1%0Anilai%20c4%3A%20-1\" title=\"Salin kode\">\n      \u003Csvg class=\"w-3.5 h-3.5 copy-icon-svg\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n        \u003Cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\">\u003C/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\">\u003Ccode>nilai c1: 5\nnilai c2: -1\nnilai c3: -1\nnilai c4: -1\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Pada output tersebut terlihat bahwa jika kita memasukkan nilai negatif pada salah satu atau kedua parameter, nilai yang dikembalikan adalah -1 atau pada kasus ini nilai dari \u003Ccode>return\u003C/code> statement yang pertama. Lalu bagaimana dengan \u003Ccode>return\u003C/code> statement selanjutnya?\u003C/p>\n\u003Cp>Pada Python, ketika sebuah fungsi menyentuh keyword \u003Ccode>return\u003C/code> maka hal yang akan dilakukan adalah keluar dari fungsi dan mengembalikan nilai pada saat itu juga. Karena sudah ada nilai yang dikembalikan, maka eksekusi fungsi dinyatakan selesai sehingga seluruh kode selanjutnya tidak akan dieksekusi.\u003C/p>\n\u003Cp>Oleh karena itulah kita mendapatkan output seperti yang ada diatas.\u003C/p>\n\u003Cp>\u003Ccode>return\u003C/code> statement ini juga bisa bertindak seperti \u003Ca href=\"https://invasikode.com/break-dan-continue-pada-python/\">keyword \u003Ccode>break\u003C/code>\u003C/a> yang ada pada \u003Ca href=\"https://invasikode.com/for-loop-python/\">perulangan\u003C/a>. Tetapi alih-alih menghentikan iterasi, dengan \u003Ccode>return\u003C/code> statement kita bisa keluar paksa dan menghentikan alur fungsi. Caranya adalah dengan memanggil \u003Ccode>return\u003C/code> tanpa memberikan nilai kembalian. Coba perhatikan kode berikut:\u003C/p>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">PYTHON\u003C/span>\n    \u003C/div>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"%23%20definisi%20fungsi%20cetak%0Adef%20cetak()%3A%0A%20%20%20%20print(%22Halo%2C%20Inva!%22)%0A%20%20%20%20print(%22Ini%20adalah%20perintah%20sebelum%20return%20dipanggil%22)%0A%20%20%20%20print(%22Setelah%20return%20dieksekusi%20maka%20fungsi%20dinyatakan%20selesai%22)%0A%20%20%20%20return%0A%20%20%20%20print(%22Baris%20ini%20tidak%20akan%20dieksekusi%22)%0A%20%20%20%20print(%22Baris%20ini%20juga%20tidak%22)%0A%20%20%20%20print(%22Apalagi%20ini!!%22)%0A%0Acetak()%20%23%20memanggil%20fungsi%20cetak\" title=\"Salin kode\">\n      \u003Csvg class=\"w-3.5 h-3.5 copy-icon-svg\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n        \u003Cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\">\u003C/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># definisi fungsi cetak\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">def\u003C/span>\u003Cspan style=\"color:#B392F0\"> cetak\u003C/span>\u003Cspan style=\"color:#E1E4E8\">():\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Halo, Inva!\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Ini adalah perintah sebelum return dipanggil\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Setelah return dieksekusi maka fungsi dinyatakan selesai\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">    return\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Baris ini tidak akan dieksekusi\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Baris ini juga tidak\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Apalagi ini!!\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">cetak() \u003C/span>\u003Cspan style=\"color:#6A737D\"># memanggil fungsi cetak\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Output:\u003C/p>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">TEXT\u003C/span>\n    \u003C/div>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"Halo%2C%20Inva!%0AIni%20adalah%20perintah%20sebelum%20return%20dipanggil%0ASetelah%20return%20dieksekusi%20maka%20fungsi%20dinyatakan%20selesai\" title=\"Salin kode\">\n      \u003Csvg class=\"w-3.5 h-3.5 copy-icon-svg\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n        \u003Cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\">\u003C/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\">\u003Ccode>Halo, Inva!\nIni adalah perintah sebelum return dipanggil\nSetelah return dieksekusi maka fungsi dinyatakan selesai\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Bisa dilihat ya, semua perintah \u003Ccode>print\u003C/code> setelah keyword \u003Ccode>return\u003C/code> tidak dieksekusi.\u003C/p>\n\u003Ch2 id=\"selanjutnya-apa\">Selanjutnya apa?\u003C/h2>\n\u003Cp>Cukup sekian untuk kesempatan kali ini, semoga bermanfaat 😉\u003C/p>\n\u003Cp>Pada kesempatan selanjutnya kita akan membahas satu lagi keyword khusus pada fungsi yaitu tentang \u003Ca href=\"https://invasikode.com/pass-python/\">\u003Ccode>pass\u003C/code> statement pada Python 3\u003C/a>.\u003C/p>\n\u003Cp>See ya 👋\u003C/p>\n","",[122,135,150,162],{"id":123,"title":124,"slug":125,"excerpt":126,"thumbnail_image":127,"tags":129},"46","Mengapa C Mulai Ditinggalkan: Duel Filosofi Keamanan Rust vs Kesederhanaan Zig","mengapa-c-mulai-ditinggalkan-duel-filosofi-rust-vs-zig","Pernah denger kalau sekitar 70% celah keamanan kritis software modern itu asalnya dari bahasa C? Iya, bahasa yang udah jadi fondasi internet ini 😅. Yuk, kita bedah duel filosofi Rust vs Zig dan cari tahu mana yang pas buat proyek kalian!",{"id":128},"1942a5c9-c1f6-476d-9913-768f78d9d8eb",[130,131,132,133,134],"system-programming","rust","zig","c","memory-safety",{"id":136,"title":137,"slug":138,"excerpt":139,"thumbnail_image":140,"tags":142},"45","Rate Limiting Algorithms: Token Bucket vs Leaky Bucket vs Sliding Window","rate-limiting-algorithms-token-bucket-leaky-bucket-sliding-window","Udah tahu kenapa *rate limiting* itu wajib, tapi masih bingung beda Token Bucket, Leaky Bucket, Fixed Window, dan Sliding Window? Yuk, kita adu empat algoritma ini bareng-bareng dan cari tahu mana yang paling pas buat API kalian!",{"id":141},"0e0ed26d-20c6-443c-bde1-4a6200f6f801",[143,144,145,146,147,148,149],"backend","system-design","rate-limiting","redis","api-gateway","architecture","traffict-management",{"id":151,"title":152,"slug":153,"excerpt":154,"thumbnail_image":155,"tags":157},"44","Transactional Outbox Pattern: Solusi Konsistensi Database dan Message Broker Tanpa 2PC","transactional-outbox-pattern-konsistensi-database-message-broker","Pernah nggak kalian lihat pesanan udah masuk database, tapi email konfirmasinya nggak pernah kekirim? Itu gejala *dual-write problem*. Yuk, kita bedah Transactional Outbox Pattern biar data dan *event* kalian nggak lagi berselisih paham!",{"id":156},"e3c617fd-1486-4b82-b937-94fbec846c77",[143,158,148,159,160,144,161],"microservices","database","message-broker","postgresql",{"id":163,"title":164,"slug":165,"excerpt":166,"thumbnail_image":167,"tags":169},"43","Dead Letter Queue (DLQ) & Retry Policy: Menyelamatkan Pesan Nyasar di RabbitMQ Tanpa Bikin Worker Macet","dead-letter-queue-retry-policy-rabbitmq-resilient-messaging","Pernah nggak sih, *worker* kalian nolak satu pesan terus-terusan sampai CPU melonjak 100%? Itu namanya *poison message loop*, jebakan klasik di RabbitMQ. Yuk, kita bahas cara pasang *retry policy* dan *dead letter queue* yang bener!",{"id":168},"6c0a7ead-4841-4073-b29e-df7ae0f2aa3c",[170,160,143,148,158,171,51],"rabbitmq","async",[173,177,180,183,187,190],{"text":174,"depth":175,"id":176},"Tentang Return Statement",2,"tentang-return-statement",{"text":178,"depth":175,"id":179},"Format Penulisan Return Statement","format-penulisan-return-statement",{"text":181,"depth":175,"id":182},"Contoh Penggunaan Return Statement","contoh-penggunaan-return-statement",{"text":184,"depth":185,"id":186},"Mengembalikan Nilai dengan Return Statement",3,"mengembalikan-nilai-dengan-return-statement",{"text":188,"depth":185,"id":189},"Menggunakan Return Statement untuk Menghentikan Eksekusi Fungsi","menggunakan-return-statement-untuk-menghentikan-eksekusi-fungsi",{"text":191,"depth":175,"id":192},"Selanjutnya apa?","selanjutnya-apa",1791045067993]