Lewati ke konten utama

Cara Memperbaiki builtin_function_or_method' object is not subscriptable

Untuk memperbaiki error "'builtin_function_or_method' object is not subscriptable", pastikan Anda memanggil fungsi atau metode dengan tanda kurung () alih-alih tanda kurung siku [].
Diperbarui 28 Sep 2026  · 6 mnt Baca

Jelajahi bersama AI

ChatGPTClaudePerplexity

Di Python, pesan error yang umum adalah sebagai berikut:

'builtin_function_or_method' object is not subscriptable

Python menampilkan error ini ketika sebuah fungsi atau metode diikuti oleh notasi tanda kurung siku []. Namun, fungsi adalah objek yang dapat dipanggil (callable). Karena itu, fungsi memerlukan tanda kurung (), yang kadang juga disebut tanda kurung bulat.

Mari lihat contoh saat Python menampilkan error ini:

numbers = [2, 4, 6, 8]
numbers.append[10]
Traceback (most recent call last):
  ...
TypeError: 'builtin_function_or_method' object is not subscriptable

Bagian berikut membahas error ini lebih lanjut.

Memahami Error

Fungsi Python adalah objek yang dapat dipanggil, yang berarti kita dapat menggunakan tanda kurung setelah nama fungsi untuk mengeksekusi kode dalam definisi fungsi. Salah satu contoh paling umum dari fungsi bawaan di Python adalah print():

print("This is a built-in function")
This is a built-in function

Tanda kurung digunakan untuk memanggil fungsi di Python. Namun, menggunakan tanda kurung siku alih-alih tanda kurung akan menimbulkan error:

print["This is a built-in function"]
Traceback (most recent call last):
  ...
TypeError: 'builtin_function_or_method' object is not subscriptable

Mari kita uraikan pesan error tersebut menjadi bagian-bagian kuncinya:

  • Objek 'builtin_function_or_method'
  • Tidak dapat di-subscript (not subscriptable)

Pada contoh di atas, print() adalah fungsi bawaan. Deskripsinya juga merujuk pada metode, yaitu fungsi yang menjadi bagian dari sebuah kelas. Python memiliki banyak metode bawaan yang terkait dengan tipe datanya. Mari lihat contoh lain yang menimbulkan pesan error ini:

name = "DataCamp"
print(name.count["a"])
Traceback (most recent call last):
  ...
TypeError: 'builtin_function_or_method' object is not subscriptable

Metode .count(), seperti halnya fungsi pada umumnya, memerlukan tanda kurung:

print(name.count("a"))
3

Skenario ini mirip dengan contoh pada bagian pendahuluan, yang menggunakan metode list .append(). Berikut versi yang benar dengan tanda kurung:

numbers = [2, 4, 6, 8]
numbers.append(10)
print(numbers)
[2, 4, 6, 8, 10]

TypeError: 'function' object is not subscriptable

Python menampilkan error serupa pada fungsi yang didefinisikan pengguna:

def greet_person(name):
    print(f"Hello {person}")
   
greet_person["James"]
Traceback (most recent call last):
  ...
TypeError: 'function' object is not subscriptable

Namun, fungsi greet_person() bukan salah satu fungsi bawaan di Python. Pesan error menyatakan ini adalah 'function' bukan 'builtin_function_or_method'.

Bagian kedua dari pesan error merujuk pada istilah 'subscriptable'. Sebuah objek Python bersifat subscriptable jika kita dapat menggunakan tanda kurung siku untuk mengakses salah satu elemennya. Contoh umum objek yang subscriptable adalah sebuah urutan (sequence), yang bisa diindeks menggunakan tanda kurung siku:

print(numbers[0])
print(numbers[-1])
print(numbers[1:4])
2
10
[4, 6, 8]

Tuple dan string adalah contoh lain dari urutan. Oleh karena itu, keduanya juga subscriptable:

more_numbers = 10, 30, 50
print(more_numbers[0])
name = "DataCamp"
print(name[0])
10
'D'

Python mapping juga bersifat subscriptable. Mapping yang paling umum di Python adalah dictionary:

points = {"James": 10, "Mary": 14}
print(points["Mary"])
14

Kunci dictionary digunakan alih-alih indeks di dalam tanda kurung siku.

Python: Callable vs. Subscriptable

Urutan (sequence) dan mapping adalah contoh objek Python yang subscriptable. Kita dapat menggunakan tanda kurung siku setelah nama objek untuk mengakses objek dari dalam struktur data. Sebuah kelas Python membuat objek yang subscriptable jika ia mendefinisikan metode khusus .__getitem__().

Fungsi dan metode adalah contoh objek yang dapat dipanggil (callable). Kita dapat menggunakan tanda kurung setelah nama objek untuk memanggilnya. Memanggil fungsi atau metode akan mengeksekusi kode dalam definisi fungsi.

Kelas adalah objek Python lain yang callable. Memanggil kelas akan membuat sebuah instance. Secara umum, sebuah objek Python bersifat callable jika kelasnya mendefinisikan metode khusus .__call__().

Python menampilkan pesan error serupa ketika kita mencoba memanggil objek yang tidak callable:

numbers = [2, 4, 6, 8]
print(numbers(0))
Traceback (most recent call last):
  ...
TypeError: 'list' object is not callable

Variabel numbers adalah list, yang tidak callable. Cara yang benar untuk mengakses item pertama dari list adalah menggunakan tanda kurung siku: numbers[0]. Fungsi, metode, dan kelas adalah objek callable yang paling umum di Python.

Memperbaiki 'builtin_function_or_method' object is not subscriptable`

Python menampilkan pesan error ``'builtin_function_or_method' object is not subscriptable` ketika sebuah fungsi atau metode diikuti oleh tanda kurung siku. Perhatikan apakah ada tanda kurung siku tepat setelah nama fungsi atau metode dan gantilah dengan tanda kurung.

Dalam beberapa kasus, sebuah fungsi atau metode memiliki argumen berupa list, yang didefinisikan menggunakan tanda kurung siku. Namun, perhatikan bahwa list tersebut didefinisikan di dalam tanda kurung:

number_of_values = len([10, 30, 50])
print(number_of_values)
numbers = [2, 4, 6, 8]
numbers.extend([10, 12])
print(numbers)
3
[2, 4, 6, 8, 10, 12]

Dalam contoh-contoh ini, nama fungsi atau metode diikuti oleh tanda kurung. Argumen di dalam tanda kurung adalah sebuah list. Notasi tanda kurung siku untuk mendefinisikan list berbeda dengan notasi tanda kurung siku yang digunakan pada sequence, mapping, dan objek subscriptable lainnya.

Tips Debugging

Salah satu hal yang bisa Anda lakukan adalah memeriksa tipe objek menggunakan fungsi bawaan type():

print(type(print))
numbers = [2, 4, 6, 8]
print(type(numbers.append))
<class 'builtin_function_or_method'>

Output mengonfirmasi bahwa objek tersebut adalah fungsi atau metode bawaan, yang bersifat callable. Ada juga fungsi bawaan bernama callable() yang mengembalikan True jika argumennya dapat dipanggil:

print(callable(numbers.append))
True

Tips debugging lain yang perlu dipertimbangkan:

  • Periksa jenis tanda kurung. Objek callable, seperti fungsi dan metode, harus diikuti oleh tanda kurung. Tanda kurung siku digunakan untuk sequence, mapping, dan objek subscriptable lainnya.
  • Cari petunjuk dalam pesan error yang merujuk pada fungsi atau metode bawaan dan objek subscriptable. Nomor baris dalam pesan error menunjuk ke baris yang berisi error.

Kesimpulan

Bahasa pemrograman seperti Python menggunakan tanda yang berbeda untuk tujuan yang berbeda. Tanda kurung siku digunakan tepat setelah nama objek untuk mengakses elemen dari struktur data. Notasi tanda kurung siku ini bekerja pada objek yang subscriptable. Tanda kurung siku juga digunakan untuk membuat list ketika tidak langsung mengikuti nama objek.

Tanda kurung digunakan setelah nama objek untuk memanggil objek tersebut. Fungsi dan metode adalah contoh objek callable di Python. Tanda kurung juga terkait dengan tuple di Python, dan digunakan untuk mengelompokkan bagian-bagian pernyataan saat diperlukan.

Python akan menampilkan pengecualian 'builtin_function_or_method' object is not subscriptable ketika sebuah fungsi atau metode bawaan diikuti oleh tanda kurung siku. Cara yang benar untuk memanggil fungsi atau metode adalah dengan menggunakan tanda kurung.

Anda dapat membaca lebih lanjut tentang fungsi dalam Python Functions: How to Call & Write Functions di DataCamp.


Stephen Gruppetta's photo
Author
Stephen Gruppetta
LinkedIn
Twitter

Saya belajar Fisika dan Matematika pada tingkat sarjana di University of Malta. Kemudian, saya pindah ke London dan meraih gelar PhD dalam bidang Fisika dari Imperial College. Saya meneliti teknik optik baru untuk memindai retina manusia. Sekarang, saya berfokus menulis tentang Python, berkomunikasi tentang Python, dan mengajar Python.

Topik
Python

Pelajari Python dengan kursus-kursus ini!

Kursus

Pengantar Python

4 jam
7M
Kuasai dasar-dasar analisis data dengan Python dalam 4 jam. Kursus online ini memperkenalkan antarmuka Python dan pustaka populer.
Lihat DetailRight Arrow
Mulai Kursus
Lihat SelengkapnyaRight Arrow
Terkait

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

Lihat SelengkapnyaLihat Selengkapnya