Halo dan selamat datang.
Kami memulai bagian baru.
Bagian kami didasarkan pada fungsi.
Jadi kita akan berbicara tentang beberapa dasar-dasar fungsi terlebih dahulu.
Sebuah fungsi adalah sebuah self-contained unit kode
program yang dirancang untuk menyelesaikan tugas tertentu, itu definisi tingkat tinggi.
Fungsi pada dasarnya akan menjadi sesuatu yang dapat Anda panggil
yang membantu Anda mengurangi duplikasi kode.
Tapi apa yang dilakukannya adalah itu mandiri
di dalam kode itu sendiri, dan hanya memiliki beberapa tugas yang akan dicapai.
Aturan sintaks akan menentukan struktur suatu fungsi dan
bagaimana fungsi itu dapat digunakan.
Jadi tergantung pemrograman apa bahasa yang Anda gunakan, fungsi
dapat didefinisikan secara berbeda.
Untuk c, kita akan bicara tentang aturan khusus untuk c.
Sebagian besar bahasa pemrograman mendukung konsep fungsi ini, dan saya akan memberi tahu
Anda kelebihannya dan mengapa mereka didukung.
Fungsi di c sama dengan subrutin atau prosedur dalam
bahasa pemrograman lain.
Jadi sering kali Anda mendengar ini istilah subrutin dan prosedur, hal
yang sama sebagai fungsi.
Unit mandiri yang mengeksekusi beberapa kode, yang dapat Anda hubungi.
Beberapa fungsi menyebabkan tindakan yang akan dilakukan.
Jadi kita akrab dengan pasangan berfungsi hingga saat ini.
Kami telah mempelajari printf fungsi yang menampilkan output
ke layar Anda yang mengambil tindakan, melakukan sesuatu untuk Anda.
Dan kemudian hasilnya kami juga melihat pada fungsi scanf yang
mengambil input dari keyboard.
Sekali lagi, itu semacam melakukan tindakan lain.
Fungsi lain meskipun sebenarnya hanya dapat menemukan nilai
untuk digunakan oleh suatu program.
Jadi misalnya ketika kita belajar string dan array karakter, kita akan
melihat fungsi untuk string manipulasi dan mengubah sesuatu.
Ada fungsi khususnya disebut panjang aduk dan itu akan memberi
tahu programmer caranya panjang string tertentu.
Itu tidak melakukan tindakan itu hanya memberikan informasi kembali kepada Anda.
Jadi fungsi akan dijalankan tugas tergantung pada tugas apa yang perlu
Anda capai dalam program, itu akan
menyebabkan suatu tindakan atau itu akan mengubah a nilai program atau mengembalikan nilai atau memberi tahu Anda
beberapa informasi status.
Keuntungan dari fungsi.
Kita akan menggunakan fungsi karena memiliki segudang kelebihan.
Fungsi memungkinkan untuk membagi dan menaklukkan strategi.
Jadi jika Anda ingin menulis dan pergi dan menulis program
menengah atau program besar, itu akan menjadi sangat, sangat sulit untuk dipertahankan.
Ini akan sulit untuk diuji, debug dan temukan serta perbaiki kesalahan apa pun jika Anda
memiliki satu fungsi besar.
Jadi mogok dan lakukan ini membagi strategi penaklukan akan
membuatnya jauh lebih mudah untuk temukan dan perbaiki bug dalam kode Anda.
Dan dapatkah Anda membayangkan satu program c yang saya miliki hanyalah fungsi utama dan
ada 5000 baris di dalamnya.
Kami tidak akan tahu caranya untuk menyerang masalah itu.
Ini benar-benar organisasi yang buruk.
Anda tidak memiliki kohesi dan Anda hanya menyelam di sana untuk
mencoba memecahkan masalah.
Jadi kita akan menggunakan fungsi.
Membagi dan menaklukkan pada dasarnya berarti bahwa tugas dapat dibagi menjadi
beberapa subtugas independen.
Ini mengurangi keseluruhan kompleksitas kode.
Anda dapat membuat fungsi terpisah untuk setiap subtugas, dan kemudian Anda bahkan
dapat membuat lebih banyak fungsi untuk dibagi subtugas menjadi subtugas yang lebih kecil.
Setiap kali Anda membuat tambahan ini fungsi, itu mengurangi kompleksitas.
Tujuan Anda seharusnya ketika Anda membuat fungsi-fungsi
ini dan menggunakan bagi dan taklukkan Strateginya adalah membuat
fungsi Anda sekohesif mungkin.
Dan itu artinya pastikan setiap fungsi hanya melakukan satu tugas, tidak memiliki fungsi melakukan 5
tugas yang berbeda atau 10 tugas yang berbeda.
Jika Anda menulis fungsi yang berbunyi input dari keyboard,
minta dibaca input dari keyboard, jangan mintalah untuk memeriksa string atau
menampilkan output atau semacamnya.
Fungsi harus kecil, dan mereka harus sangat kompak.
Tapi membagi dan menaklukkan strategi sangat bagus karena
mengurangi kerumitan itu.
Alih-alih memiliki fungsi utama dengan 5000 baris kode, Anda dapat memiliki
banyak fungsi yang melakukan tugas-tugas tertentu dan Anda dapat mengidentifikasi
mereka dengan sangat cepat.
Jadi fungsi akan mengurangi duplikasi kode.
Dan ketika Anda mengurangi duplikasi kode, ini akan menghemat waktu
Anda saat menulis, menguji dan men-debug kode itu.
Ini juga akan kembali berkurang ukuran kode sumber.
Dan mengapa fungsi berkurang duplikasi kode karena jika
Anda memiliki tugas alih-alih melakukan itu tugas berulang-ulang dan menulis kode
yang sama berulang-ulang dan lagi, Anda merangkum tugas itu menjadi sebuah
fungsi dan Anda hanya aktifkan fungsi tersebut, dan fungsi tersebut akan melakukannya
untuk Anda setiap kali, Anda tidak memiliki duplikasi di sana.
Jika Anda harus melakukan tugas tertentu beberapa kali
dalam sebuah program, Anda hanya perlu menulis yang sesuai berfungsi sekali,
seperti yang saya sebutkan. Anda tidak perlu menulis kode itu beberapa kali.
Jadi sebuah program kemudian dapat menggunakan fungsi itu kapan pun dibutuhkan.
Dan Anda juga dapat menggunakan hal yang sama fungsi dalam program yang berbeda,
dan itulah yang merupakan perpustakaan.
Kami telah melakukan itu, kami
telah menggunakan fungsi printf, yang berasal dari perpustakaan input-output standar.
Dan itu hanya ditulis sekali, dan kita memanggilnya berulang-ulang.
Jika fungsi itu tidak ada, kami akan
harus mengambil implementasi fungsi itu dan memasukkannya ke dalam program dan terus mengulanginya.
Jadi fungsi bisa menghemat banyak waktu dan
mereka dapat mengurangi kode sumber Anda dan Anda dapat menggunakannya kembali lagi dan lagi.
Jadi itu juga perangkat lunak teknik penggunaan kembali.
Ini juga membantu dengan keterbacaan.
Saat Anda memodulasi program Anda itulah yang Anda
lakukan saat membuat fungsi terpisah ini untuk melakukan tugas-tugas tertentu, program
menjadi jauh lebih terorganisir.
Seperti yang saya sebutkan, jika Anda memiliki main rutin, fungsi utama dan
memiliki banyak kode di dalamnya, itu akan jauh lebih sulit untuk
diikuti daripada rutinitas utama yang memanggil 5 fungsi dan fungsi-fungsi itu melakukan tugas-tugas tertentu.
Jadi itu membantu dengan organisasi program.
Ini membantu dengan pemeliharaan program.
Jauh lebih mudah dibaca dan lebih mudah untuk mengubah atau memperbaiki kode sumber apa pun.
Dan ingat, perawatannya fase adalah fase paling mahal dari siklus
hidup perangkat lunak, ini adalah tempat Anda memperbaiki
bug, program telah dirilis dan tempat Anda menambahkan fitur baru.
Anda lebih terorganisir program ini, semakin
mudah untuk mempertahankannya.
Jadi organisasi ini, ini keterbacaan, ini bisa mengikuti apa
yang terjadi di kode sumber Anda sangat penting
dan fungsinya sangat membantu.
Pendekatan membagi dan menaklukkan juga memungkinkan
bagian dari program untuk dikembangkan, diuji dan di-debug secara independen.
Ketika Anda keluar di sana secara nyata
dunia dan Anda mulai mengerjakan kode, Anda akan menyadarinya program benar-benar besar.
Dan ada banyak orang mengerjakan program-program ini,
ratusan bahkan mungkin ribuan.
Ketika Anda memiliki semua orang ini bekerja pada sebuah program, akan lebih mudah untuk
mengerjakan program tersebut jika Anda lakukan pendekatan taklukkan yang membagi ini jika Anda
memiliki tugas kecil yang orang lakukan dan itu independen.
Anda tidak menyentuh hal yang sama kode sumber dan Anda dapat melanjutkan
dan mengimplementasikan tugas dengan lebih mudah.
Dan ketika Anda melakukan ini dan Anda memiliki banyak orang yang
mengerjakan suatu proyek, itu dapat mengurangi pengembangan secara keseluruhan waktu yang sekali
lagi mengurangi biaya pemeliharaan, mengurangi biaya pengembangan.
Fungsinya juga dapat digunakan kembali yang lagi-lagi akan mempersingkat waktu.
Dan sekali lagi kita melakukannya dengan fungsi printf, gunakan kembali itu.
Tetapi Anda ketika Anda menulis pengguna Anda sendiri fungsi yang ditentukan, Anda dapat menggunakannya
kembali berulang kali dalam program.
Jadi penggunaan kembali perangkat lunak adalah hal yang besar, keuntungan besar dari fungsi.
Ketika Anda sedang berpikir tentang fungsi-fungsi tersebut.
Hal menyenangkan lainnya tentang mendesain program Anda pada fungsi adalah Anda ingin
menganggapnya sebagai kotak hitam.
Apa artinya ketika Anda ketika Anda anggap saja itu sebagai kotak hitam,
yang Anda pikirkan hanyalah input dengan fungsi dan outputnya.
Dan ketika Anda fokus hanya pada masukan dalam output, memungkinkan Anda
untuk melihat desain secara keseluruhan sebelum Anda mulai menerapkan.
Dan fungsi secara umum akan membuat Anda dalam jenis pemikiran ini di mana
Anda dapat fokus pada desain.
Dan saya sebutkan desain itu penting.
Desain adalah saat Anda mulai merencanakan keluarkan program Anda, bagaimana
Anda akan mengaturnya, bagaimana Anda akan menulis kode.
Dan penting untuk melakukan perencanaan ini bahkan sebelum Anda memulai implementasi
yang menulis kode.
Dan dengan memikirkan fungsi dan hanya memikirkan input
dan output, Anda dapat memikirkan bagaimana program akan diatur dan fungsi apa
yang perlu Anda buat.
Jadi Anda tidak perlu khawatir tentang hanya implementasi secara detail.
Dan ini penting karena hal pertama yang ingin
Anda lakukan sebelum menulis kode hanyalah berpikir tentang desain, Anda tidak ingin mulai
berpikir untuk mengimplementasikannya.
Banyak masalah yang siswa miliki ketika mereka menulis kode untuk pertama
kalinya adalah mereka baru mulai implementasi.
Mereka bahkan tidak memikirkan masalah, mereka tidak berpikir
bagaimana mereka akan memecahkan masalah, mereka baru saja mulai menulis kode.
Tidak pernah pendekatan yang baik.
Ketika Anda berpikir untuk menulis kode dan fungsi, anggap
itu hanya sebagai input dan output fungsi dan itu akan membantu
Anda dengan desain Anda.
Jadi mari kita lihat beberapa contoh.
Kami telah menggunakan fungsi bawaan seperti sebagai printf dan scanf, seperti yang saya sebutkan.
Itu ada di standar perpustakaan input output yang disediakan
oleh bahasa pemrograman c.
Jadi kami agak akrab dengan apa sebuah fungsi karena kami telah menggunakannya, tetapi
kami belum melewati denda detail berbutir tentang bagaimana Anda
mendefinisikan suatu fungsi atau bagaimana Anda benar-benar lulus data ke fungsi, tidak seperti itu.
Tetapi dengan fungsi printf, Anda seharusnya memperhatikan
bahwa itu membutuhkan data.
Anda dapat meneruskan data ke fungsi.
Data adalah argumen antara tanda kurung setelah
nama fungsi.
Kita akan memiliki keseluruhan kuliah lain tentang argumen
dan parameter untuk menjelaskannya lebih lanjut.
Tetapi pada tingkat tinggi, pahami itu Anda dapat meneruskan data ke suatu fungsi.
Dan pahami itu dengan melihat pada fungsi printf.
Argumen pertama untuk printf fungsi yang merupakan
data yang kami berikan adalah string literal, hanya itu semua karakter
di dalam tanda kutip ganda.
Dan kemudian kami juga memiliki argumen yang mungkin ada 0 atau banyak
argumen variabel, yaitu serangkaian variabel atau ekspresi yang
nilainya akan ditampilkan.
Jadi ingat, jika kita memiliki format apapun penentu dalam argumen
pertama kita kemudian akan memiliki variabel di ini dalam argumen berikutnya.
Jadi apakah Anda bisa lulus? data ke fungsi printf.
Anda juga harus memperhatikan bagaimana Anda dapat menerima informasi kembali dari
suatu fungsi, data dapat dikembalikan kepada Anda.
Dalam fungsi scanf, satu argumen adalah bagaimana Anda akan
menyimpan data.
Dan Anda akan melewatinya sebagai variabel dan variabel itu akan memiliki
nilai apa pun pengguna mengetik di keyboard.
Jadi itu bisa dipikirkan sebagai nilai balik dalam suatu fungsi.
Jadi fungsi sangat berharga karena mereka dapat mengambil data ke dalamnya dan kemudian mereka
dapat mengembalikan data dari mereka.
Jadi contoh pengkodean suatu fungsi dan ini hanya akan menjadi fungsi yang akan
kita panggil, tapi ini adalah fungsi utamanya.
Kami akrab dengan fungsi utama, titik
masuk program.
Tapi lihatlah betapa indahnya ini.
Kami memanggil fungsi membaca daftar sortir dan rata-rata.
Kami hanya memiliki 3 baris kode.
Kita harus pergi dan mengimplementasikannya fungsi, tetapi membuat program lebih terorganisir karena
kami segera tahu apa yang dilakukan program ini.
Program ini akan membaca daftar, itu kemudian
akan mengurutkan daftar, itu kemudian akan menampilkan rata-rata daftar,
dan daftar berisi float.
Jadi sangat mudah dibaca, itu akan menjadi sangat mudah dirawat.
Jika kami memiliki bug di program, kami akan segera mengetahui cara
menemukan atau mengisolasi bug itu.
Jika bug tidak menyortir, kami bisa pergi ke fungsi sortir.
Jika bug dalam rata-rata, kita bisa pergi ke fungsi rata-rata, sangat
mudah untuk mengisolasi kesalahan.
Jadi ketika kita menerapkannya fungsi di slide sebelumnya,
kami hanya memanggilnya.
Untuk benar-benar mengimplementasikan fungsi, Anda harus menulis kode di
dalam tubuh fungsi.
Anda dapat menggunakan fungsi yang diimplementasikan oleh bahasa c seperti printf
atau Anda dapat membuat fungsi yang ditentukan pengguna Anda sendiri.
Anda tidak harus menerapkan fungsi printf atau salah
satu fungsi di perpustakaan, Anda hanya mengimplementasikan fungsi Anda sendiri.
Jadi dalam contoh sebelumnya ini dengan semacam daftar baca dan rata-rata, kita harus
pergi dan kita akan harus menjalankan fungsi tersebut.
Kami harus menyediakan fungsi header, badan fungsi
yang benar-benar melakukan pembacaan daftar, pengurutan
daftar dan rata-rata daftar.
Kami tidak selesai hanya dengan mendefinisikan fungsi, kita harus mengimplementasikannya.
Dan ketika Anda menerapkan fungsi, Anda selalu
ingin menggunakan nama fungsi deskriptif untuk memperjelas apa yang dilakukan program dan
bagaimana program itu diatur.
Dalam contoh sebelumnya, kami memiliki fungsi bernama daftar baca, cukup jelas apa
yang dilakukannya, sort nama fungsi.
Kami tidak memberi nama fungsi x y atau z.
Kami menggambarkan fungsi itu.
Itu hal yang sama ketika Anda menggambarkan atau
membuat variabel, nama yang bermakna.
Dan juga jika Anda membuat fungsi-fungsi ini di mana mereka
cukup umum di mana mereka benar-benar melakukan sesuatu dan mereka mengambil data
umum, Anda sebenarnya bisa menggunakannya kembali di program
lain, seperti fungsi perpustakaan.
Sekali lagi, mendukung penggunaan kembali perangkat lunak.
Jadi dalam kuliah yang akan datang ini, kita akan berbicara tentang
bagaimana kita dapat mendefinisikan suatu fungsi,, the sintaks tertentu, bagaimana kita dapat memanggil
dan memanggil suatu fungsi dan bagaimana kita bisa meneruskan dan mengembalikan data dari mereka.
Itu yang akan kita fokuskan pada kuliah yang akan datang.
Saya juga ingin menyebutkan itu rutinitas utama kami yang
telah kami lihat berulang kali di setiap c program, itu fungsi.
Fungsi utamanya adalah khusus nama yang dikenali dalam sistem
c, ini menunjukkan di mana program adalah untuk memulai eksekusi.
Semua program c selalu memiliki main.
Fungsi utama dapat mengambil data saat Anda
meneruskannya, argumen baris perintah atau itu tidak harus mengambil data.
Ini juga memiliki opsional data yang dapat dikembalikan.
Anda akan melihat bahwa kami menggunakan fungsi utama yang mengembalikan 0.
Biasanya, itu digunakan ketika kamu ingin mengembalikan kode kesalahan.
Tapi kami telah menggunakan fungsi tertentu sudah dan fungsi
yang paling penting adalah fungsi utama itu dan itu sekali lagi membantu mengatur kode.
Kami selalu tahu di mana program dimulai karena kita
hanya perlu menemukan yang utama.
Ini adalah deskripsi tingkat tinggi jenis fungsi mengidentifikasi keuntungan dari
fungsi dan apa sebenarnya fungsi itu.
Sekarang kita ingin bicara tentang implementasi.
Terima kasih.