Penyaratan fungsi atau penyaratan kaedah (bahasa Inggeris: function overload, method overload) ialah satu ciri dalam sesetengah bahasa pengaturcaraan yang membolehkan beberapa subrutin dibina dengan nama yang sama namun berbeza pelaksanaannya.

Contoh dalam Java:

public class Contoh {
  public String beriSapaan(Lelaki lelaki) {
    return "Hai Encik " + lelaki.getName() + ", anda apa khabar?";
  }

  public String beriSapaan(Cikgu cikgu) {
    return "Selamat sejahtera Cikgu " + cikgu.getName() + "."; 
  }
}

Dalam contoh di atas, ada dua kaedah dengan nama yang sama, iaitu beriSapaan, dan kedua-duanya menerima jenis data yang berbeza. Ini membolehkan kaedah beriSapaan mengeluarkan hasil berlainan bergantung kepada hujah yang diberi kepadanya.