Drupal

**Drupal** adalah sebuah perangkat lunak sistem manajemen konten yang bebas dan terbuka yang di distribusikan di bawah lisensi GPL, pengembangan dan perawatannya dilakukan oleh ribuan komunitas pengguna dan pengembang di seluruh dunia. Dibuat dengan bahasa pemrograman PHP, Drupal dapat dipasang pada beberapa jenis database seperti MySQL, PostgreSQL, SQLite,MariaDB dan juga MsSQL. Web server yang mendukung diantaranya Apache, Nginx, IIS yang berjalan pada sistem operasi Cross-platform seperti Microsoft Windows, Mac OS X, Linux dan FreeBSD. Drupal dapat diunduh secara bebas dan dapat digunakan secara bebas, sehingga memungkinkan setiap orang baik secara individu maupun komunitas untuk mempublikasi, mengatur, mengelola dan mengorganisir berbagai jenis dari isi/konten pada website.
Kemampuannya tidak sekadar sebagai CMS, namun dengan modul API-nya Drupal juga dapat digunakan sebagai CMF dalam membangun aplikasi berbasis Web.

Drupal versi terbaru adalah versi 8 yang pertama kali diluncurkan pada tanggal 9 November 2015, 2 bulan setelah versi kandidat (RC1) diperkenalkan.

**Drupal** dapat digunakan untuk membangun:
* Portal Web Komunitas
* Forum Diskusi
* Website Perusahaan
* Aplikasi Internal
* Website Personal atau Blog
* Aplikasi Komersial E-commerce
* Kumpulan Sumber Informasi
* Situs Jaringan Sosial
* Jaringan intranet
* Surat Kabar (Newsletter)
* Galeri multimedia Multimedia

## Core
Di komunitas Drupal, 'core' mengacu pada basis kode bersama yang dapat diperluas dengan modul pembantu dan, untuk versi sebelum Drupal 8, disimpan di luar folder 'situs web' dari instalasi Drupal. (Sejak versi 8, core disimpan dalam subdirektori 'core' sendiri.) Core Drupal adalah elemen standar Drupal. Pustaka bersama khusus Drupal serta proses bootstrap didefinisikan sebagai core dari Drupal; semua fungsi lain didefinisikan sebagai modul Drupal, termasuk modul sistem itu sendiri.
Dalam konfigurasi default situs web Drupal, pembuat dapat menyumbangkan konten baik sebagai pengguna terdaftar maupun anonim (atas kebijakan administrator). Konten ini tersedia untuk pengunjung web berdasarkan berbagai kriteria yang dapat dipilih. Mulai dari Drupal 8, Drupal telah mengadopsi beberapa pustaka Symfony ke dalam core Drupal.
Modul utama juga menyertakan sistem taksonomi hierarkis yang memungkinkan developer untuk mengklasifikasikan konten atau menandainya dengan kata kunci untuk memudahkan akses.
Terdapat dua versi yang dianggap stabil terbaru, yaitu 7.84 dan 9.3.3. Drupal memiliki log perubahan terperinci dari fitur-fitur utama untuk versi masing-masing.

## Fitur Unggulan
* CMS (Content Management Systems) Sistem Manajemen Konten
* CMF (Content Management Framework) Sistem Platform
* Blog Pengguna tunggal dan pengguna jamak
* *Built-in* Forums *engine*
* Multi situs hanya dengan satu instalasi
* Multi bahasa, sudah mendukung Bahasa Indonesia dan Bahasa Jawa.
* Konten Multimedia
* Mendukung banyak jenis database seperti MySQL, PostgreSQL, SQLite, MsSQL dan MariaDB
* Bisa dipasang dengan webserver Apache, Nginx, IIS dan Lighttpd
* Pengaturan hak akses pengguna tak terbatas, bukan hanya pengaturan hak akses jenis konten bahkan bisa memberikan hak akses tiap field data
* Bisa membuat jenis konten baru yang tipe datanya sesuai keinginan pengguna

## Paket Distribusi Drupal
* Open Atrium, paket drupal ditujukan untuk pembuatan situs intranet
* Open Publish, paket drupal ditujukan untuk pembuatan situs berita
* Acquia Common, paket drupal ditujukan untuk pembuatan situs jaringan sosial
* UberDrupal, paket drupal ditujukan untuk pembuatan situs e-commerces
* Pressflow, paket drupal ditujukan untuk pembuatan situs yang mengutamakan kinerja yang lebih cepat
* dll

## Perbandingan Fitur dengan CMS lain

## Konsep

* **Node**. Node adalah satuan konten yang terdapat dalam Drupal. Sebuah node dapat merupakan blog, topik forum, berita, halaman statis, gambar, video, audio, maupun Flash. Kumpulan node inilah yang membentuk keseluruhan konten dalam sebuah website berbasis Drupal.
* **Taxonomy**. Node yang begitu banyak perlu dikategorikan sesuai topik masing-masing. Dalam Drupal terdapat modul Taxonomy yang digunakan untuk mengkategorisasikan konten. Nama Taxonomy diambil dari ilmu klasifikasi. Dengan demikian setiap satuan konten bisa disebutkan apakah berkategori Politik, Ekonomi, Sains, atau Agama. Cara mengklasifikasikan konten sepenuhnya diserahkan kepada pengguna yang punya hak untuk mengatur Taksonomi. Modul-modul lain juga menggunakan modul Taxonomy untuk mengklasifikasikan konten tertentu, seperti misalnya Forum dan Image Gallery.
* **Comment**. Comment merupakan tanggapan terhadap sebuah node yang dituliskan oleh user (Komentar).
* **Menu**. Sistem menu dalam drupal adalah sistem penanganan request melalui URL. Jika Clean URL tidak diaktifkan, maka setiap query string yang berbentuk ?q= akan ditangani oleh sistem menu.
* **Module**. Website Drupal dapat ditambah dengan modul-modul tertentu sesuai keperluan. Modul adalah satuan program yang ditulis dalam PHP yang jika diaktifkan akan menambah fungsi tertentu. Misalnya modul Organic Groups untuk memberi fungsi group/mailing list seperti layaknya Google Groups ataupun Yahoo Groups. Modul Images untuk mengizinkan user mengupload gambar sebagai node.
* **Theme**. Theme adalah penampakan luar dari sebuah website Drupal. Sistem theme akan mengatur bagaimana website ditampilkan, layout halaman, penempatan block, style, dan sebagainya. Theme dapat diubah-ubah dengan memilih theme yang tersedia dalam direktori /themes maupun /sites/all/themes.
* **Hook**. User tidak pernah menyadari keberadaan konsep ini dalam Drupal, kecuali mereka adalah developer. Hook adalah metode yang digunakan Drupal agar setiap modul dapat menambahkan fungsi tertentu, dengan cara mengaitkan fungsi tertentu tersebut pada hook yang dimiliki sistem Drupal. Sebagai contoh, setiap modul dapat menambah menu baru dengan cara mendefinisikan fungsi modul_menu, yang akan menjamin Drupal tidak lupa memperhitungkan keberadaan menu tersebut ketika diperlukan.
* **Entity**. Pengguna tidak menyadari keberadaan konsep ini dalam Drupal, kecuali mereka adalah developer. konsep ini mulai muncul di Drupal 7. Entitas digunakan untuk menyimpan dan menampilkan data, yang dapat menjadi node, user, istilah, taksonomi atau pengembangan secara kustom. Entitas memiliki daftar fungsi pembantu yang dapat memudahkan pengembangan dan adalah mungkin untuk menambahkan field ke entitas melalui antar muka, seperti yang digunakan untuk membuat suatu node.

## Modul inti

## Tema Standar Drupal 6
* Bluemarine
* Chamelon
* Garland
* Marvin
* Minelli
* Pushbutton

## Tema Standar Drupal 7
* Bartik
* Garland
* Seven
* Stark

## Lihat pula
* Joomla
* Wordpress
* Plone
* VBulletin
* Moodle
* Vieris

## Referensi

## Pranala luar
* Situs web resmi internasional
* Situs Drupal Indonesia
* Dokumentasi resmi untuk pengembang
* Buku Panduan untuk pengguna baru
* Asosiasi Drupal
* Tutorial Video
* Blog gratis berbasis Drupal