Meta tag dinamis adalah meta tag yang kontennya dapat berubah-ubah sesuai dengan halaman atau sub halaman website yang sedang dibuka. Meta tag dinamis sangat berguna dalam optimisasi mesin pencari atau SEO.
Jika website Anda fokus pada niche atau topik tertentu dan memiliki jumlah halaman yang sedikit, maka Anda tidak perlu memasang meta tag dinamis dan cukup menaruh meta tag secara statis dengan mengetikkannya secara manual.
Namun, jika website Anda tidak fokus pada niche tertentu atau berupa portal berita yang memiliki jumlah halaman dan postingan yang sangat banyak dengan topik yang berbeda-beda atau berupa blog gado-gado yang memiliki konten blog campur sari seperti portal berita, maka Anda perlu mempertimbangkan untuk menggunakan meta tag dinamis.
Mengapa demikian? Karena akan sangat sulit memasang meta tag pada halaman dan postingan yang jumlahnya sangat banyak tersebut secara manual satu-persatu.
Langkah pertama, buatlah tabel tbl_artikel dengan mengimpor kode SQL berikut pada database Anda.
-- phpMyAdmin SQL Dump
-- version 4.8.3
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Generation Time: Apr 02, 2020 at 12:21 PM
-- Server version: 10.1.37-MariaDB
-- PHP Version: 7.2.12
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Database: `pd_testdb`
--
-- --------------------------------------------------------
--
-- Table structure for table `tbl_artikel`
--
CREATE TABLE `tbl_artikel` (
`id_artikel` int(5) NOT NULL,
`tanggal_publish` date DEFAULT NULL,
`waktu_publish` time DEFAULT NULL,
`penulis` varchar(50) CHARACTER SET latin1 COLLATE latin1_general_ci DEFAULT NULL,
`judul_berita` varchar(200) CHARACTER SET latin1 COLLATE latin1_general_ci DEFAULT NULL,
`slug` varchar(200) CHARACTER SET latin1 COLLATE latin1_general_ci DEFAULT NULL,
`isi_berita` text CHARACTER SET latin1 COLLATE latin1_general_ci,
`status` varchar(20) CHARACTER SET latin1 COLLATE latin1_general_ci DEFAULT NULL,
`kategori` varchar(100) NOT NULL,
`tags` varchar(100) CHARACTER SET latin1 COLLATE latin1_general_ci DEFAULT NULL,
`gambar` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
`alt_text` varchar(255) NOT NULL,
`deskripsi` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_ci DEFAULT NULL,
`pengantar` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_ci DEFAULT NULL,
`keyword` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_ci DEFAULT NULL,
`klik` int(5) NOT NULL,
`topnews` int(1) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Dumping data for table `tbl_artikel`
--
INSERT INTO `tbl_artikel` (`id_artikel`, `tanggal_publish`, `waktu_publish`, `penulis`, `judul_berita`, `slug`, `isi_berita`, `status`, `kategori`, `tags`, `gambar`, `alt_text`, `deskripsi`, `pengantar`, `keyword`, `klik`, `topnews`) VALUES
(1, '2020-01-11', '17:20:01', 'putra dirgantara', 'Selalu Lebay, Reaksi Jokowi terhadap Masalah Natuna', 'reaksi-jokowi-terhadap-natuna', '
GARDA NASIONAL, JAKARTA — Pelanggaran ZEE Laut Natuna yang terus terjadi selalu disikapi dengan lebay oleh Presiden Jokowi. Jajaran pemerintahan Jokowi selalu menafsirkan kehadiran negara di Natuna adalah dengan menghadirkan presiden di daerah yang sedang diperselisihkan tersebut.
Hal ini mengundang tanda-tanya para pengamat: apakah dengan menghadirkan presiden di daerah konflik tersebut lantas akan menyelesaikan persoalan? Hal ini menunjukkan bahwa pemerintahan Jokowi tidak mengerti persoalan Natuna yang sebenarnya.
Keadaan ini menunjukkan Indonesia sungguh-sungguh darurat pemimpin kharismatik yang mengerti geopolitik dan diplomasi di kawasan regional.
Dilansir dari TRIBUNNEWS.COM (10/1), pengamat militer dan keamanan Connie Rahakundinie Bakrie menilai kehadiran jokowi di perairan Natuna pada Rabu (8/1) adalah suatu reaksi yang berlebihan.
Menurut Connie, untuk mengirimkan pesan yang kuat supaya Cina hengkang dari perairan Natuna, Jokowi tidak perlu harus hadir secara langsung ke Natuna.
“Seolah-olah negara ini tidak punya lagi orang yang dikirimkan ke sana. Dan setiap saat ada yang memanas di sana itu Pak Presiden diminta ke sana..” jelasnya.
Mencuatnya persoalan Natuna bukan kali ini saja terjadi, namun sebelumnya juga pernah terjadi pada periode pertama pemerintahan Jokowi.
Pada waktu itu, Cina mengirimkan kapal melalui perairan Indonesia yang diakui sebagai miliknya sehingga terjadi insiden Natuna yang melibatkan kapal nelayan Cina dengan kapal perang KRI Imam Bonjol-383.
Negara-negara lain di sepanjang laut juga membenci pengurukan pulau-pulau kecil oleh Cina untuk pembangunan fasilitas militer yang mampu mendukung sistem tempur dan radar tempur.
Reaksi Jokowi kala itupun sama saja, yaitu dengan hadir di perairan Natuna dan menggelar rapat di atas KRI Imam Bonjol yang melepas tembakan ke kapal ikan milik Cina, Han Tan Cou.
Terus berulangnya persoalan Natuna ini menunjukkan bahwa pemerintahan Jokowi beserta antek-anteknya tidak benar-benar mengerti permasalahan Natuna dan solusi permanen terhadap masalah tersebut.
Terbukti, kehadiran presiden di perairan Natuna bukanlah cara yang ampuh untuk mengatasi pelanggaran wilayah oleh Cina di perairan Natuna.
Jadi, memanasnya situasi di perairan Natuna tidak harus selalu disikapi dengan kehadiran presiden secara lebay dan sporadis.
Namun, yang lebih penting adalah bagaimana menunjukkan kepada kawasan bahwa perairan Natuna adalah milik Indonesia secara de facto.
Hal ini dapat dilakukan dengan memperkuat kehadiran kapal nelayan tradisional, kapal coast guard dan kapal perang dengan alutsista yang gahar di perairan Natuna sehari-hari.
Oleh karena itu, pemerintahan Jokowi perlu mempertimbangkan untuk mengakuisisi setidaknya satu kapal perang sekelas destroyer dengan alutsista yang gahar sehingga menimbulkan efek deterrent terhadap kapal asing yang ingin melakukan pelanggaran terhadap wilayah kedaulatan Indonesia.
Lagipula, Indonesia adalah negara maritim dengan wilayah laut yang sangat luas sehingga sangatlah urgen bagi Indonesia untuk memiliki kapal perang sekelas destroyer tersebut.
Kehadiran kapal nelayan tradisional, kapal coast guard dan kapal perang dengan alutsista yang gahar sehari-hari di perairan Natuna akan menunjukkan kepada dunia bahwa perairan Natuna adalah milik Indonesia secara de facto tanpa perlu harus menghadirkan presiden setiap kali wilayah Natuna memanas.
Duh, kasihan sekali jadi presiden Indonesia kalo gitu.. (kata pengamat).
(pdlabs)
', 'publish', 'nasional', 'natuna', 'reaksi-jokowi-terhadap-natuna.jpg', '', 'Presiden Joko Widodo meninjau peralatan tempur TNI-AU saat latihan Angkasa Yudha 2016 di kawasan Natuna. (Foto: Flickr)', 'Menurut Connie, untuk mengirimkan pesan yang kuat supaya Cina hengkang dari perairan Natuna, Jokowi tidak perlu harus hadir secara langsung ke Natuna.', 'jokowi natuna', 43, 1),GARDA NASIONAL, JAKARTA - Kabar terbaru datang dari industri alutsista dan persenjataan militer Indonesia yang mulai mandiri dan menunjukkan efek penggentar melalui produksi dan pengembangan roket berhulu ledak R-Han 122.
Mengutip sebuah laporan dari Jane's, baru-baru ini Indonesia telah menyelesaikan serangkaian uji coba multi-tahun pada roket R-Han 122B yang dikembangkan berdasarkan riset dan penelitian yang dilakukan secara mandiri.
Rincian laporan tersebut mengatakan bahwa pabrik senjata milik negara Indonesia PT Pindad telah menyelesaikan serangkaian uji coba multi-tahun pada roket 122 mm yang dikembangkan sendiri yang dikenal sebagai roket R-Han 122B, dan sedang mempersiapkan fasilitasnya untuk mulai memproduksinya secara massal.
Menurut catatan, roket R-Han 122 milik Indonesia merupakan pengembangan roket sebelumnya, yaitu roket D-230 tipe RX 1210 yang dapat melebihi kecepatan suara. Roket tersebut berfungsi sebagai senjata berdaya ledak optimal dengan sasaran darat dan jarak tembak sampai 26 kilometer.
Laporan juga menyebutkan bahwa PT Pindad sebagai salah satu vendor alutsista Indonesia sedang bersiap untuk memproduksi senjata roket tersebut secara massal yang diproyeksikan untuk penggunaan oleh Korps Marinir Indonesia.
"Persiapan sedang dilakukan untuk mengantisipasi pesanan dari Korps Marinir Indonesia (Korps Marinir: KORMAR), kata PT Pindad dalam pernyataan resmi pada 28 Juni untuk menandai penyelesaian persidangan." urai Jane's Navy International.
Ini merupakan sebuah isyarat bahwa upaya untuk mencapai kemandirian alutsista yang gahar dan disegani kawasan mulai menampakkan hasilnya.
R-Han 122 merupakan alutsista yang dikembangkan dalam mengejar ketertinggalan teknologi persenjataan Indonesia terhadap negara asing. Menurut Gridhot, R-Han 122 memiliki bobot 64 kg yang di dalamnya dapat diisi hulu ledak sebanyak 18 kg.
Varian R-Han 122B mempunyai panjang 2.820 mm dan lebar 122 mm dengan bahan bakar solid propelan yang mampu melesat sampai kecepatan Mach 2.95 sehingga melebihi kecepatan suara.
Sedangkan jangkauan R-Han 122B bisa mencapai sasaran sejauh 20-30 km sehingga cocok untuk menggasak berbagai jenis kendaraan lapis baja dan konsentrasi perkubuan musuh dan meratakan sasaran.
Sesuai perencanaan, R-Han 122B nantinya akan dipakai oleh Artileri Medan Korps Marinir yang bisa diaplikasikan di Multiple Launch Rocket System (MLRS) seperti RM70 Grad, RM70 Vampire dan Norinco Type 90B buatan Cina.
(pdlabs)
', 'publish', 'nasional', 'r-han-122', 'indonesia-siap-produksi-roket-r-han-122.png', '', 'Peluncuran roket R-Han 122 di Baturaja, Sumatra Selatan.', 'Ini merupakan sebuah isyarat bahwa upaya untuk mencapai kemandirian alutsista yang gahar dan disegani kawasan mulai menampakkan hasilnya.', 'berita r-han 122 terbaru ', 242, 0),Garda Nasional, Jakarta - Duta Besar Rusia untuk Indonesia, Lyudmila Georgievna Vorobieva mengatakan, proses pembelian pesawat Sukhoi antara Rusia dan Indonesia tetap berjalan meski dibayangi sanksi Amerika Serikat.
"Negara-negara tidak takut (terhadap sanksi AS). Turki dan India masih membeli peralatan militer kita, begitu juga Indonesia," ujarnya di Jakarta, Rabu (17/10/2018).
Vorobieva menambahkan, kesepakatan pembelian 11 jet Sukhoi SU-35 antara Rusia-Indonesia masih berlangsung, bahkan sudah melakukan penandatanganan kesepakatan. Meski begitu, belasan jet tempur militer berteknologi canggih itu kemungkinan baru diterima Indonesia tahun depan, setidaknya sebelum akhir 2019.
"Kontrak (pembelian) memang sudah ditandatangani. Tapi pesawat-pesawatnya masih harus diproduksi sehingga butuh waktu untuk selesai," katanya.
Tidak hanya itu, Indonesia juga memerlukan waktu untuk melatih sejumlah pilot-pilotnya agar dapat menerbangkan jet-jet tempurt tersebut. Juga masih ada beberapa detil yang perlu difinalisasi antara kedua negara.
Wacana pembelian alat utama sistem persenjataan (alutsista) ini memicu kekhawatiran bahwa Indonesia akan terkena imbas embargo Negeri Paman Sam.
Seteru Rusia dan AS membuat negara Paman Sam itu kerap menjatuhkan sanksi kepada negara-negara yang memiliki relasi atau kerja sama pertahanan dengan musuh-musuhnya. Sebelumnya, AS sudah menjatuhi sanksi bagi Cina.
Indonesia juga pernah terkena embargo AS. Embargo ketika itu dijatuhkan lantaran Indonesia dianggap melanggar hak asasi manusia dengan menembaki demonstran di Dili, Timor Timur (kini Timor Leste), pada 12 November 1991.
Gedung Putih juga sempat menjatuhkan embargo militer untuk Indonesia pada pada 1995 sampai 2005. Paman Sam menyetop penjualan senjata dan suku cadang untuk meremajakan pesawat-pesawat TNI yang dibeli dari mereka.
Pada 2017 lalu, Presiden Donald Trump memberlakukan Undang-Undang Penerpan Sanksi untuk Melawan Musuh-Musuh AS (Countering America's Adversaries Through Sanctions Act/CAATSA). UU tersebut melegalkan AS memberlakukan sanksi ekonomi terhadap negara-negara yang melakukan bisnis pertahanan dan intelijen dengan Rusia, Korea Utara, dan Iran.
September lalu, Cina terkena imbas CAATSA lantaran membeli senjata dari Rusia. Sementara itu, India juga disebut terancam sanksi AS tersebut lantaran sepakat membeli sistem pertahanan rudal senilai US$5 miliar dari Moskow.
"Tentu sanksi-sanksi tersebut adalah bentuk campur tangan AS terhadap urusan internal negara lain dan juga hubungan bilateral negara lain," jelas Vorobieva.
Menurutnya, sanksi AS adalah ilegal, meski begitu di sisi lain, Rusia bisa menyediakan berbagai jenis peralatan militer apa pun yang dibutuhkan Indonesia dengan kualitas tinggi namun harga terjangkau.
', 'publish', 'Alutsista', 'su-35', 'websu-27sk-indonesian-air-force.jpg', '', 'Ilustrasi jet tempur sukhoi Su-35.', 'Proses pembelian Sukhoi ke Rusia tetap berjalan meski berbagai sanksi Amerika menanti.', 'indonesia beli sukhoi', 375, 0);
--
-- Indexes for dumped tables
--
--
-- Indexes for table `tbl_artikel`
--
ALTER TABLE `tbl_artikel`
ADD PRIMARY KEY (`id_artikel`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table `tbl_artikel`
--
ALTER TABLE `tbl_artikel`
MODIFY `id_artikel` int(5) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Pada tutorial ini saya menggunakan database pd_testdb untuk mengimpor tabel tbl_artikel tersebut. Setelah proses impor tabel tbl_artikel berhasil, tampilan database akan menjadi seperti berikut.
Selanjutnya, buatlah model dengan nama NewsModel dan simpan dengan nama file NewsModel.php di dalam folder models seperti berikut.
class NewsModel extends CI_Model {
public function __construct() {
parent::__construct();
$this->load->database();
}
public function getLatestNews($limit=0) {
if ($limit > 0) {
$sql = "SELECT * FROM tbl_artikel ORDER BY tanggal_publish DESC LIMIT " . $limit;
}
$query = $this->db->query($sql);
return $query->result_array();
}
public function getNewsDetail($slug) {
return $this->db->get_where('tbl_artikel', array('slug'=>$slug))->row();
}
}
Kemudian, buatlah controller dengan nama Home dan simpan dengan nama file Home.php di dalam folder controllers seperti berikut.
class Home extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->model("NewsModel");
}
public function index() {
$data["content_page"] = "home_layout";
$data["latest_news"] = $this->NewsModel->getLatestNews(7);
$this->load->view("index", $data);
}
public function detail($slug) {
$id_article = $this->NewsModel->getNewsDetail($slug)->id_artikel;
$data["content_page"] = "news_detail_layout";
$data["news_detail"] = $this->NewsModel->getNewsDetail($slug);
$this->load->view("index", $data);
}
}
Lalu, buatlah beberapa file views untuk melengkapi tampilan website kita, yaitu index.php, home_layout.php dan news_detail_layout.php.
File views tersebut dapat Anda download pada link di bawah ini.
Selain itu, file-file pelengkap lainnya dapat Anda download pada link berikut.
Sedangkan untuk file gambar bisa Anda download pada link berikut.
Berikutnya, kita perlu menambahkan route pada file routes.php seperti berikut.
defined('BASEPATH') OR exit('No direct script access allowed');
$route['default_controller'] = 'home';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
$route['(:any)'] = 'Home/detail/$1';
Jika kita lakukan pengujian dan menjalankannya pada browser, maka akan menghasilkan tampilan seperti berikut.
Jika salah satu link artikel tersebut diklik, maka akan memberikan tampilan seperti berikut.
Namun, meta tag kedua tampilan tersebut masih statis atau sama, yaitu seperti tampilan source code berikut.
Oleh karena itu, agar meta tag tersebut lebih dinamis, maka kita perlu modifikasi kode meta tag pada file index.php seperti berikut.
Setelah itu simpan file tersebut dan jalankan kembali dengan menyegarkan browser. Hasilnya, jika kita buka source code halaman index atau base_url(), maka akan menampilkan tag title dan meta tag default seperti berikut.
Sedangkan jika kita buka source code halaman detail, maka akan menampilkan tag title dan meta tag sesuai dengan data title, keyword dan description artikel tersebut pada database seperti berikut.
Dengan demikian, tag title dan meta tag pada website kita menjadi lebih dinamis sesuai dengan halaman atau sub halaman yang kita buka. Sampai jumpa pada tutorial berikutnya dan semoga bermanfaat.
(pdlabs)