J3.x

Creating a simple module/Using the Database/id: Difference between revisions

From Joomla! Documentation

Created page with "Membuat sebuah modul sederhana/Menggunakan Basisdata"
 
No edit summary
 
(68 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<noinclude><languages /></noinclude>
<noinclude><languages /></noinclude>
{{J3.x:Creating_a_simple_module/en}}
{{J3.x:Creating_a_simple_module/id}}
Many modules in Joomla require using a database. It is assumed in this tutorial that you already understand the basics of using the JDatabase class. If you don't please read the documentation on [[S:MyLanguage/Accessing_the_database_using_JDatabase/3.1|accessing the database using JDatabase]] before continuing this tutorial.
Banyak modul-modul di Joomla yang membutuhkan pemakaian database. Di tutorial ini, diasumsikan bahwa anda telah mengerti dasar cara pemakaian kelas JDatabase. Kalau belum, silakan baca dokumentasi [[S:MyLanguage/Accessing_the_database_using_JDatabase/3.1|cara mengakses database dengan JDatabase]] sebelum melanjutkan tutorial.


== Creating a table on install ==
== Membuat tabel pada pemasangan ==
To create the xml table on install we are going to add the following lines into <tt>''mod_helloworld.xml''</tt>:
Untuk membuat tabel xml pada pemasangan, kita perlu menambahkan baris berikut ini ke <tt>''mod_helloworld.xml''</tt>:


<source lang="xml">
<source lang="xml">
Line 29: Line 29:
</source>
</source>


There are 3 sections to this code:
Ada 3 bagian untuk kode ini:
*The ''install'' tag adds the database table.
*Tag ''install'' untuk menambahkan tabel database.
*The ''uninstall'' tag removes the database table if the module is uninstalled. Note that not all modules will want to use this feature (and it's not required).
*Tag ''uninstall'' untuk menghapus tabel database tersebut kalau modulnya dilepas. Sebagai catatan, tidak semua modul akan membutuhkan fitur ini (dan ini tidak diwajibkan).
*The ''update'' tag will update the databases if a database needs to be amended when updating the module.
*Tag ''update'' akan mengupdate database jika suatu database perlu perubahan pada saat memperbarui modul tersebut.


Note that we have both schemas for MySQL and Microsoft SQL - again you can choose to tailor your module for one or both of these systems.
Berikutnya, anda harus tentukan tag ''folder'' di bagian ''files'' guna memastikan file sql telah disalin dari paket zip instalasi anda:


In this example we will just show the example files for the MySQL database. Creating the Microsoft SQL Server will be left as an exercise for the reader.
<source lang="xml">
<folder>sql</folder>
</source>
 
Mohon dicatat bahwa di sini kita menerapkan dua skema, MySQL dan Microsoft SQL - sekali lagi, anda bisa memilih salah satu atau kedua sistem ini sesuai kebutuhan.
 
Dalam contoh ini, kami hanya akan menunjukkan contoh database MySQL. Membuat Microsoft SQL Server akan diabaikan sebagai latihan bagi para pembaca.


In our <tt>install.mysql.utf8.sql</tt> file we will create the table and place some hellos into it.
Di dalam file <tt>install.mysql.utf8.sql</tt>, kita akan membuat tabel dan menuliskan hello.


<source lang="sql">
<source lang="sql">
Line 47: Line 53:


   PRIMARY KEY (`id`)
   PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
) ENGINE=INNODB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;


INSERT INTO `#__helloworld` (`hello`, `lang`) VALUES ('Hello World', 'en-GB');
INSERT INTO `#__helloworld` (`hello`, `lang`) VALUES ('Hello World', 'en-GB');
Line 54: Line 60:
</source>
</source>


In the uninstall file we'll just remove the table.
Di file pelepasannya, kita hanya perlu menghapus tabel tersebut.


<source lang="sql">
<source lang="sql">
Line 60: Line 66:
</source>
</source>


Finally we'll just leave a placeholder in the updates file. There is an SQL file for each component version. Each file name must match the version string in the manifest file for that version. Joomla uses this string to determine which SQL files(s) to execute, and in what order they will be executed.
Setelah itu, kita hanya akan membuat placeholder di dalam file update. Ada file SQL khusus untuk masing-masing versi komponen. Setiap nama file harus sesuai dengan string versi yang terdapat di dalam file manifes versi tersebut. Joomla memanfaatkan string ini guna menentukan file SQL mana yang akan dieksekusi serta bagaimana urutannya.


''Important Note:'' These files are also used to set the version number in the #__schemas table. This version number must be present in the current version of the component in order for the new SQL files to be run during the update. For example, if you have version 1.0 and are updating to version 1.1, the 1.1.sql file will not be executed if there was no 1.0.sql file in the 1.0 release. For this reason, it is good practice to have a SQL update file for each version, even if there is no SQL change in that version.
''Catatan Penting:'' File-file ini juga dipakai untuk menentukan angka versi di dalam tabel #__schemas. Angka versi harus tercantum di dalam komponen terkini agar file SQL baru dapat dieksekusi pada saat update. Sebagai contoh, apabila anda memiliki versi 1.0 dan mengupdate ke versi 1.1, file sql 1.1 tidak akan dieksekusi jika tidak ada file sql 1.0 di dalam rilis 1.0 anda. Karena alasan inilah alangkah baiknya jika ada file update SQL untuk masing-masing versi, bahkan ketika tidak ada perubahan SQL di versi itu.


<source lang="sql">
<source lang="sql">
Line 68: Line 74:
</source>
</source>


== Making the request in the helper file ==
== Membuat permintaan di file helper ==
Now on installing our module we should find that there is a helloworld database set up in our database schema with our hello's in. We must now retrieve this from the database to display to the user. We will now amend the ''getHello'' function we placed in the helper file in the last part.
Pada saat pemasangan modul, kita harus temukan database helloworld yang mengandung hello di dalam skema database. Kita harus mendapatkannya dari database sebelum kita bisa menampilkannya ke pengguna. Sekarang, kita akan mengubah fungsi ''getHello'' yang dibuat di file helper sebelumnya.


For now we'll ignore using form fields to choose a hello and just retrieve the English shout.
Untuk sekarang, kita akan abaikan dulu pemakaian bidang-bidang formulir untuk hello dan hanya mengambil versi bahasa Inggris saja.


<source lang="php">
<source lang="php">
Line 89: Line 95:
</source>
</source>


== Conclusion ==
== Kesimpulan ==
Using modules with database connections for Joomla! is a fairly simple, straightforward process. Using the techniques described in this tutorial, a lot of modules can be developed with little hassle, with updates easy to manage.
Pemakaian modul yang terhubung ke database di Joomla cukup sederhana, sebuah proses yang mudah. Melalui teknik-teknik yang dijelaskan di dalam tutorial ini, banyak modul yang dapat dikembangkan dengan sedikit berusaha, dengan update yang mudah untuk dikelola.


<div class="row">  
<div class="row">  
<div class="large-6 columns">{{Basic button|S:MyLanguage/J3.x:Creating_a_simple_module/Developing_a_Basic_Module|Prev: Developing a Basic Module|class=expand success}}</div>
<div class="large-6 columns">{{Basic button|S:MyLanguage/J3.x:Creating_a_simple_module/Developing_a_Basic_Module|Sebelumnya: Mengembangkan Modul Dasar|class=expand success}}</div>
<div class="large-6 columns">{{Basic button|S:MyLanguage/J3.x:Creating_a_simple_module/Adding_Form_Fields|Next: Adding Form Fields|class=expand}}</div>
<div class="large-6 columns">{{Basic button|S:MyLanguage/J3.x:Creating_a_simple_module/Adding_Form_Fields|Berikutnya: Menambahkan Bidang Formulir|class=expand}}</div>
</div>
</div>
__NOTOC__
__NOTOC__
<noinclude>
<noinclude>
[[Category:Tutorials]]
[[Category:Tutorials/id|Tutorial]]
[[Category:Tutorials in a Series]]
[[Category:Tutorials in a Series/id|Tutorial dalam Seri]]
[[Category:Module Development]]
[[Category:Module Development/id|Pengembangan Modul]]
[[Category:Beginner Development]]
[[Category:Beginner Development/id|Pengembangan Pemula]]
[[Category:Joomla! 3.x]]
[[Category:Joomla! 3.x/id|Joomla! 3.x]]
[[Category:Joomla! 3.0]]
[[Category:Joomla! 3.0/id|Joomla! 3.0]]
[[Category:Joomla! 3.1]]
[[Category:Joomla! 3.1/id|Joomla! 3.1]]
[[Category:Joomla! 3.2]]
[[Category:Joomla! 3.2/id|Joomla! 3.2]]
[[Category:Joomla! 3.3]]
[[Category:Joomla! 3.3/id|Joomla! 3.3]]
[[Category:Joomla! 3.4]]
[[Category:Joomla! 3.4/id|Joomla! 3.4]]
</noinclude>
</noinclude>

Latest revision as of 00:44, 29 March 2020

Joomla! 
3.x
Tutorial
Membuat modul sederhana

Ini adalah seri artikel mengenai cara membuat modul untuk Joomla! Versi Joomla 3.x. Anda dapat menelusuri artikel-artikel yang terdapat di dalam seri ini melalui menu dropdown.

Mulai dari Pendahuluan, lalu telusuri artikel-artikel di dalam seri ini melalui tombol navigasi di bagian bawah atau dari kotak di samping (Artikel dalam seri ini)




Banyak modul-modul di Joomla yang membutuhkan pemakaian database. Di tutorial ini, diasumsikan bahwa anda telah mengerti dasar cara pemakaian kelas JDatabase. Kalau belum, silakan baca dokumentasi cara mengakses database dengan JDatabase sebelum melanjutkan tutorial.

Membuat tabel pada pemasangan

Untuk membuat tabel xml pada pemasangan, kita perlu menambahkan baris berikut ini ke mod_helloworld.xml:

<install>
     <sql>
         <file driver="mysql" charset="utf8">sql/mysql/install.mysql.utf8.sql</file>
         <file driver="sqlazure" charset="utf8">sql/sqlazure/install.sqlazure.utf8.sql</file>
     </sql>
</install>

<uninstall>
     <sql>
         <file driver="mysql" charset="utf8">sql/mysql/uninstall.mysql.utf8.sql</file>
         <file driver="sqlazure" charset="utf8">sql/sqlazure/uninstall.sqlazure.utf8.sql</file>
     </sql>
</uninstall>

<update> 
    <schemas>
        <schemapath type="mysql">sql/mysql/updates</schemapath> 
	<schemapath type="sqlazure">sql/sqlazure/updates</schemapath> 
    </schemas> 
</update>

Ada 3 bagian untuk kode ini:

  • Tag install untuk menambahkan tabel database.
  • Tag uninstall untuk menghapus tabel database tersebut kalau modulnya dilepas. Sebagai catatan, tidak semua modul akan membutuhkan fitur ini (dan ini tidak diwajibkan).
  • Tag update akan mengupdate database jika suatu database perlu perubahan pada saat memperbarui modul tersebut.

Berikutnya, anda harus tentukan tag folder di bagian files guna memastikan file sql telah disalin dari paket zip instalasi anda:

<folder>sql</folder>

Mohon dicatat bahwa di sini kita menerapkan dua skema, MySQL dan Microsoft SQL - sekali lagi, anda bisa memilih salah satu atau kedua sistem ini sesuai kebutuhan.

Dalam contoh ini, kami hanya akan menunjukkan contoh database MySQL. Membuat Microsoft SQL Server akan diabaikan sebagai latihan bagi para pembaca.

Di dalam file install.mysql.utf8.sql, kita akan membuat tabel dan menuliskan hello.

CREATE TABLE IF NOT EXISTS `#__helloworld` (
	`id` int(10) NOT NULL AUTO_INCREMENT,
	`hello` text NOT NULL,
	`lang` varchar(25) NOT NULL,

  PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

INSERT INTO `#__helloworld` (`hello`, `lang`) VALUES ('Hello World', 'en-GB');
INSERT INTO `#__helloworld` (`hello`, `lang`) VALUES ('Hola Mundo', 'es-ES');
INSERT INTO `#__helloworld` (`hello`, `lang`) VALUES ('Bonjour tout le monde', 'fr-FR');

Di file pelepasannya, kita hanya perlu menghapus tabel tersebut.

DROP TABLE IF EXISTS `#__helloworld`

Setelah itu, kita hanya akan membuat placeholder di dalam file update. Ada file SQL khusus untuk masing-masing versi komponen. Setiap nama file harus sesuai dengan string versi yang terdapat di dalam file manifes versi tersebut. Joomla memanfaatkan string ini guna menentukan file SQL mana yang akan dieksekusi serta bagaimana urutannya.

Catatan Penting: File-file ini juga dipakai untuk menentukan angka versi di dalam tabel #__schemas. Angka versi harus tercantum di dalam komponen terkini agar file SQL baru dapat dieksekusi pada saat update. Sebagai contoh, apabila anda memiliki versi 1.0 dan mengupdate ke versi 1.1, file sql 1.1 tidak akan dieksekusi jika tidak ada file sql 1.0 di dalam rilis 1.0 anda. Karena alasan inilah alangkah baiknya jika ada file update SQL untuk masing-masing versi, bahkan ketika tidak ada perubahan SQL di versi itu.

# Placeholder file for database changes for version 1.0.0

Membuat permintaan di file helper

Pada saat pemasangan modul, kita harus temukan database helloworld yang mengandung hello di dalam skema database. Kita harus mendapatkannya dari database sebelum kita bisa menampilkannya ke pengguna. Sekarang, kita akan mengubah fungsi getHello yang dibuat di file helper sebelumnya.

Untuk sekarang, kita akan abaikan dulu pemakaian bidang-bidang formulir untuk hello dan hanya mengambil versi bahasa Inggris saja.

// Obtain a database connection
$db = JFactory::getDbo();
// Retrieve the shout
$query = $db->getQuery(true)
            ->select($db->quoteName('hello'))
            ->from($db->quoteName('#__helloworld'))
            ->where('lang = ' . $db->Quote('en-GB'));
// Prepare the query
$db->setQuery($query);
// Load the row.
$result = $db->loadResult();
// Return the Hello
return $result;

Kesimpulan

Pemakaian modul yang terhubung ke database di Joomla cukup sederhana, sebuah proses yang mudah. Melalui teknik-teknik yang dijelaskan di dalam tutorial ini, banyak modul yang dapat dikembangkan dengan sedikit berusaha, dengan update yang mudah untuk dikelola.