Simpul atau node adalah satuan dasar yang digunakan untuk merepresentasikan unsur dalam berbagai struktur pada ilmu komputer, terutama dalam struktur data, teori graf, jaringan komputer, dan Document Object Model (DOM). Dalam struktur data, simpul umumnya memuat data dan satu atau lebih rujukan ke simpul lain. Rujukan tersebut dapat diwujudkan sebagai penunjuk, referensi objek, indeks larik, atau bentuk hubungan lain yang bergantung pada bahasa pemrograman dan model penyimpanan yang digunakan.[1]

Makna simpul tidak selalu sama pada setiap bidang. Dalam senarai berantai, simpul adalah unsur yang menyimpan nilai dan rujukan ke unsur berikutnya. Dalam pohon, simpul membentuk hubungan hierarkis seperti akar, anak, induk, dan daun. Dalam teori graf, simpul disebut juga verteks dan dihubungkan oleh sisi. Dalam pengembangan web, simpul merujuk kepada objek dalam pohon DOM yang merepresentasikan bagian-bagian dokumen HTML atau XML.[2][3][4]

Dalam teori graf, setiap titik dapat disebut simpul atau verteks, sedangkan garis yang menghubungkannya disebut sisi.

Dalam struktur data

sunting

Dalam struktur data, simpul adalah wadah logis yang menyimpan informasi. Informasi tersebut dapat berupa nilai tunggal, kumpulan atribut, objek, status, atau rujukan ke struktur lain. Sebuah simpul dapat berdiri sendiri, tetapi lebih sering digunakan sebagai bagian dari struktur yang lebih besar.

Secara umum, sebuah simpul dapat memuat:

  • data, yaitu nilai atau informasi yang disimpan;
  • rujukan, yaitu hubungan ke simpul lain;
  • metadata, seperti bobot, indeks, warna, tanda kunjungan, atau status tertentu;
  • rujukan balik, jika struktur data memerlukan hubungan dua arah.

Dalam bahasa pemrograman tingkat rendah seperti C dan C++, hubungan antarsimpul lazim diimplementasikan dengan penunjuk. Dalam bahasa pemrograman yang menggunakan manajemen memori otomatis, seperti Java, Python, JavaScript, atau Dart, hubungan tersebut biasanya diwujudkan sebagai referensi objek.

Contoh sederhana simpul dalam senarai berantai dapat digambarkan sebagai berikut:

struct Node {
    int data;
    struct Node *next;
};

Pada contoh tersebut, setiap simpul menyimpan sebuah nilai bertipe bilangan bulat dan sebuah penunjuk ke simpul berikutnya. Jika tidak ada simpul berikutnya, penunjuk tersebut biasanya bernilai kosong atau null.

Dalam senarai berantai

sunting

Dalam senarai berantai, simpul merupakan unsur penyusun utama. Setiap simpul menyimpan data dan rujukan ke simpul lain. Senarai berantai tunggal memiliki rujukan ke simpul berikutnya, sedangkan senarai berantai ganda memiliki rujukan ke simpul sebelumnya dan simpul berikutnya.[5]

Sebuah senarai berantai biasanya diakses melalui simpul pertama yang disebut kepala atau head. Dari simpul kepala, program dapat menelusuri simpul-simpul berikutnya sampai mencapai akhir senarai. Karena aksesnya mengikuti rujukan satu per satu, pencarian pada senarai berantai biasa umumnya bersifat linear.[5]

Struktur simpul pada senarai berantai dapat digunakan untuk membangun struktur data lain, seperti tumpukan, antrean, dan beberapa bentuk struktur data dinamis lainnya.[5]

Dalam pohon

sunting
Contoh pohon biner yang terdiri atas beberapa simpul. Simpul paling atas disebut akar.

Dalam pohon, simpul-simpul disusun secara hierarkis. Satu simpul khusus disebut akar atau root, yaitu simpul yang tidak memiliki simpul induk. Simpul lain berada di bawah akar dan dapat memiliki hubungan induk-anak dengan simpul lain.[2][6]

Dalam pohon, setiap simpul selain akar memiliki tepat satu induk. Simpul yang memiliki anak disebut simpul internal, sedangkan simpul yang tidak memiliki anak disebut daun atau leaf.[2][7]

Beberapa istilah penting dalam pohon antara lain:

  • Akar atau root, yaitu simpul tertinggi yang menjadi titik awal pohon.
  • Anak atau child, yaitu simpul yang berada langsung di bawah simpul lain.
  • Induk atau parent, yaitu simpul yang memiliki rujukan langsung ke simpul anak.[8]
  • Saudara atau sibling, yaitu simpul-simpul yang memiliki induk yang sama.
  • Daun atau leaf, yaitu simpul tanpa anak.
  • Simpul internal, yaitu simpul yang memiliki setidaknya satu anak.
  • Derajat simpul, yaitu jumlah anak yang dimiliki sebuah simpul.
  • Kedalaman atau depth, yaitu jarak sebuah simpul dari akar.
  • Tinggi atau height, yaitu panjang lintasan terjauh dari simpul tersebut menuju daun.
  • Subpohon atau subtree, yaitu pohon yang terbentuk dari suatu simpul beserta seluruh keturunannya.
  • Hutan atau forest, yaitu kumpulan satu atau lebih pohon yang terpisah.

Pohon digunakan dalam berbagai struktur dan algoritme, misalnya pohon biner, pohon pencarian biner, heap, B-tree, trie, pohon sintaks, pohon keputusan, dan struktur direktori pada sistem berkas.

Dalam graf

sunting

Dalam teori graf, simpul adalah unsur yang merepresentasikan objek, entitas, titik, keadaan, atau lokasi. Hubungan antara simpul direpresentasikan oleh sisi. Secara formal, graf dapat dinyatakan sebagai pasangan , dengan sebagai himpunan simpul dan sebagai himpunan sisi yang menghubungkan simpul-simpul tersebut.[3][9]

Dalam konteks graf, istilah simpul sering disamakan dengan verteks. Jika dua simpul dihubungkan oleh sebuah sisi, keduanya disebut bertetangga atau bersebelahan. Jumlah sisi yang bersisian dengan sebuah simpul disebut derajat simpul. Pada graf berarah, dikenal pula istilah derajat masuk dan derajat keluar.[3][9]

Graf dapat bersifat:

  • tak berarah, jika hubungan antarsimpul tidak memiliki arah;
  • berarah, jika sisi memiliki arah dari satu simpul ke simpul lain;
  • berbobot, jika sisi atau simpul memiliki nilai tertentu;
  • berlabel, jika simpul atau sisi memiliki nama atau identitas tambahan;
  • siklik, jika terdapat lintasan yang kembali ke simpul awal;
  • asiklik, jika tidak memiliki siklus.

Representasi graf dalam program dapat dilakukan dengan beberapa cara, antara lain:

  • senarai ketetanggaan atau adjacency list, yaitu setiap simpul menyimpan senarai simpul tetangganya;
  • matriks ketetanggaan atau adjacency matrix, yaitu hubungan antarsimpul dinyatakan dalam bentuk matriks;
  • senarai sisi atau edge list, yaitu graf disimpan sebagai kumpulan pasangan simpul.

Graf digunakan untuk memodelkan berbagai sistem, seperti jaringan komputer, jaringan sosial, peta jalan, hubungan dependensi, alur kerja, rute pengiriman, sistem rekomendasi, dan struktur hubungan dalam basis data graf.[9]

Dalam jaringan komputer

sunting

Dalam jaringan komputer, simpul jaringan atau network node adalah perangkat, titik koneksi, atau sistem yang dapat berpartisipasi dalam komunikasi jaringan. Contohnya adalah komputer, peladen, pencetak jaringan, switch, router, titik akses nirkabel, dan perangkat Internet of Things. Dalam konteks ini, simpul tidak harus berarti struktur data di memori, melainkan entitas fisik atau logis yang dapat mengirim, menerima, meneruskan, atau memproses data.[10][11]

Pada jaringan berbasis protokol internet, sebuah simpul biasanya memiliki identitas jaringan, seperti alamat IP atau alamat lapisan taut data, agar dapat dikenali dalam proses komunikasi. Namun, alamat IP lebih tepat dipahami sebagai alamat antarmuka jaringan atau hos, bukan sebagai simpul struktur data.

Istilah simpul jaringan sering digunakan dalam pembahasan:

Dalam Document Object Model

sunting

Dalam Document Object Model atau DOM, simpul adalah objek yang menyusun struktur pohon dokumen. Ketika peramban web membaca dokumen HTML atau XML, dokumen tersebut direpresentasikan sebagai pohon DOM. Setiap bagian dokumen, seperti elemen, atribut, teks, komentar, dan dokumen itu sendiri, dapat direpresentasikan sebagai simpul.[4][12]

DOM memungkinkan program, terutama JavaScript, untuk membaca, mengubah, menambah, atau menghapus bagian-bagian dokumen secara dinamis. Misalnya, sebuah elemen paragraf dalam HTML dapat diperlakukan sebagai simpul elemen, sedangkan teks di dalam paragraf tersebut dapat diperlakukan sebagai simpul teks.

Dalam standar DOM, objek yang mengimplementasikan antarmuka Node dapat berupa beberapa jenis objek yang lebih khusus, antara lain Document, DocumentType, DocumentFragment, Element, Attr, Text, Comment, CDATASection, dan ProcessingInstruction.[4][13]

Jenis simpul DOM

sunting

Beberapa jenis simpul dalam DOM antara lain:

Jenis simpul Keterangan
Document Merepresentasikan keseluruhan dokumen.
DocumentType Merepresentasikan deklarasi tipe dokumen.
DocumentFragment Merepresentasikan fragmen dokumen ringan yang dapat berisi beberapa simpul.
Element Merepresentasikan elemen, seperti <html>, <body>,

, atau

.
Attr Merepresentasikan atribut pada elemen.
Text Merepresentasikan isi teks dalam elemen atau atribut.
Comment Merepresentasikan komentar dalam dokumen.
CDATASection Merepresentasikan bagian CDATA dalam dokumen XML.
ProcessingInstruction Merepresentasikan instruksi pemrosesan dalam dokumen XML.

Beberapa implementasi DOM juga menyediakan nilai numerik untuk properti nodeType. Nilai tersebut digunakan untuk membedakan jenis simpul, misalnya ELEMENT_NODE untuk simpul elemen, TEXT_NODE untuk simpul teks, dan DOCUMENT_NODE untuk simpul dokumen.[13]

Nilai nodeType Konstanta
1 ELEMENT_NODE
2 ATTRIBUTE_NODE
3 TEXT_NODE
4 CDATA_SECTION_NODE
7 PROCESSING_INSTRUCTION_NODE
8 COMMENT_NODE
9 DOCUMENT_NODE
10 DOCUMENT_TYPE_NODE
11 DOCUMENT_FRAGMENT_NODE

Beberapa nilai lama seperti ENTITY_REFERENCE_NODE, ENTITY_NODE, dan NOTATION_NODE pernah digunakan dalam spesifikasi DOM terdahulu, tetapi tidak lagi digunakan dalam DOM modern.[13]

Perbedaan penggunaan istilah

sunting

Istilah simpul memiliki makna yang saling berdekatan, tetapi tidak identik. Dalam struktur data, simpul biasanya merujuk pada unit penyimpanan data. Dalam graf, simpul adalah titik abstrak yang dihubungkan oleh sisi. Dalam jaringan komputer, simpul adalah perangkat atau titik koneksi. Dalam DOM, simpul adalah objek yang menjadi bagian dari pohon dokumen.

Bidang Makna simpul Contoh
Struktur data Unit yang menyimpan data dan rujukan Simpul pada senarai berantai
Pohon Elemen hierarkis dalam struktur akar-anak Akar, anak, daun
Graf Verteks yang dihubungkan oleh sisi Kota dalam graf peta jalan
Jaringan komputer Perangkat atau titik koneksi jaringan Komputer, router, peladen
DOM Objek dalam pohon dokumen Elemen HTML, teks, komentar

Operasi umum

sunting

Operasi yang melibatkan simpul bergantung pada struktur yang digunakan. Beberapa operasi umum antara lain:

  • membuat simpul baru;
  • menyisipkan simpul ke dalam struktur;
  • menghapus simpul;
  • mencari simpul berdasarkan nilai atau kunci;
  • menelusuri simpul;
  • menghubungkan dua simpul;
  • memutus hubungan antarsimpul;
  • memperbarui data dalam simpul.

Pada pohon dan graf, penelusuran simpul sering dilakukan dengan algoritme seperti pencarian melebar dan pencarian mendalam. Pada senarai berantai, penelusuran biasanya dilakukan secara berurutan dari kepala menuju simpul berikutnya.

Representasi dalam memori

sunting

Representasi simpul dalam memori dapat berbeda-beda. Pada struktur berbasis penunjuk, setiap simpul disimpan sebagai objek atau rekaman yang memiliki alamat tersendiri. Hubungan antarsimpul disimpan sebagai alamat atau referensi. Pendekatan ini fleksibel, tetapi dapat menimbulkan biaya tambahan karena setiap simpul memerlukan ruang untuk menyimpan rujukan.

Pada struktur berbasis larik, simpul dapat direpresentasikan dengan indeks. Misalnya, sebuah graf dapat disimpan dalam matriks ketetanggaan, sedangkan sebuah pohon biner lengkap dapat disimpan dalam larik dengan rumus indeks tertentu. Pendekatan berbasis larik dapat lebih efisien dalam penggunaan lokalitas memori, tetapi kurang fleksibel untuk struktur yang sering berubah ukuran.

Contoh penggunaan

sunting

Simpul digunakan dalam banyak bidang ilmu komputer, antara lain:

  • implementasi senarai berantai;
  • struktur pohon pencarian;
  • struktur direktori sistem berkas;
  • representasi dokumen HTML dan XML;
  • pemodelan jaringan sosial;
  • algoritme pencarian rute;
  • basis data graf;
  • sistem rekomendasi;
  • kompilator, terutama pada pohon sintaks abstrak;
  • kecerdasan buatan, terutama pada ruang keadaan dan pohon keputusan.

Lihat pula

sunting

Referensi

sunting
  1. ^ Black, Paul E. (17 Desember 2004). "node". Dictionary of Algorithms and Data Structures (dalam bahasa Inggris). National Institute of Standards and Technology. Diakses tanggal 2 Juni 2026.
  2. ^ a b c Black, Paul E. (15 Desember 2017). "tree". Dictionary of Algorithms and Data Structures (dalam bahasa Inggris). National Institute of Standards and Technology. Diakses tanggal 2 Juni 2026.
  3. ^ a b c Black, Paul E.; Tanenbaum, Paul J. (18 Juli 2022). "graph". Dictionary of Algorithms and Data Structures (dalam bahasa Inggris). National Institute of Standards and Technology. Diakses tanggal 2 Juni 2026.
  4. ^ a b c "DOM Standard" (dalam bahasa Inggris). WHATWG. Diakses tanggal 2 Juni 2026.
  5. ^ a b c Black, Paul E. (24 Januari 2022). "linked list". Dictionary of Algorithms and Data Structures (dalam bahasa Inggris). National Institute of Standards and Technology. Diakses tanggal 2 Juni 2026.
  6. ^ "General Trees". OpenDSA Data Structures and Algorithms Modules Collection (dalam bahasa Inggris). Virginia Tech. Diakses tanggal 2 Juni 2026.
  7. ^ Black, Paul E. (3 Juni 2005). "leaf". Dictionary of Algorithms and Data Structures (dalam bahasa Inggris). National Institute of Standards and Technology. Diakses tanggal 2 Juni 2026.
  8. ^ Black, Paul E. (4 November 2004). "parent". Dictionary of Algorithms and Data Structures (dalam bahasa Inggris). National Institute of Standards and Technology. Diakses tanggal 2 Juni 2026.
  9. ^ a b c "Graphs Chapter Introduction". OpenDSA Data Structures and Algorithms Modules Collection (dalam bahasa Inggris). Virginia Tech. Diakses tanggal 2 Juni 2026.
  10. ^ Forouzan, Behrouz A. (2013). Data Communications and Networking (Edisi 5th). McGraw-Hill. ISBN 978-0-07-337622-6.
  11. ^ "network". Computer Security Resource Center Glossary (dalam bahasa Inggris). National Institute of Standards and Technology. Diakses tanggal 2 Juni 2026.
  12. ^ "Document Object Model (DOM)". MDN Web Docs (dalam bahasa Inggris). Mozilla. Diakses tanggal 2 Juni 2026.
  13. ^ a b c "Node". MDN Web Docs (dalam bahasa Inggris). Mozilla. Diakses tanggal 2 Juni 2026.

Pranala luar

sunting

📚 Artikel Terkait di Wikipedia

Unitarianisme

became corrupted. It would contradict the love and justice of God to attribute to us the sin of others, because sin is one's own personal action" (Ferencz

React

dibuat oleh Jordan Walke yang dipengaruhi oleh XHP, sebuah library component HTML untuk bahasa pemrograman PHP. XHP pertama kali digunakan pada fitur News

HTTP 404

404.7 – File extension denied. 404.8 – Hidden namespace. 404.9 – File attribute hidden. 404.10 – Request header too long. 404.11 – Request contains double

Ayyub

of mind, and he curses the day he was born. His false friends come and attribute his afflictions to sin. These "Job's comforters" are no comforters at

Mitos penciptaan

us are impossible. Nevertheless, all cultures celebrate such myths and attribute to them various degrees of literal or symbolic truth." (Leeming 2010,

XMLHttpRequest

XMLHttpRequest, W3C Editor's Draft". W3.org. 2012-02-06. "The responseXML attribute of the XMLHttpRequest object explained by the W3C Working Draft". W3.org

Diagram kano

(1999). "Evaluating Satisfaction with Media Products and Services: An Attribute Based Approach". European Media Management Review. Ullman, David G. (1997)

Atom (standar web)

Registry of Link-Relations – Official registry of atom:link element "rel" attribute values RFC 4685 – Atom Threading Extensions RFC 4946 – Atom License Extension