Beranda blog Halaman 170

Gokil! Ini Besaran Gaji Lamine Yamal di Usia 17 Tahun

0

Lamine Yamal sedang menjadi sorotan setelah penampilan impresifnya bersama Timnas Spanyol di Piala Eropa 2024. Bahkan, ia dinobatkan sebagai pemain muda terbaik Euro 2024 setelah kompetisi berakhir.

Meskipun baru berulang tahun yang ke-17, Lamine Yamal sudah memiliki kekayaan sebesar 3 juta USD atau sekitar Rp 48,54 miliar, yang sebagian besar diperoleh dari gajinya sebagai pemain Barcelona.

Pada usia 15 tahun, 9 bulan, dan 16 hari, Yamal membuat debutnya sebagai pemain termuda dalam sejarah Barcelona, saat Blaugrana mengalahkan Betis 4-0 di La Liga pada 29 April 2023.

Menurut laporan dari Essentially Sports, Lamine Yamal menerima gaji pokok tahunan sebesar 1,79 juta USD atau sekitar Rp 29 miliar saat pertama kali ia bermain untuk Barcelona dengan kontrak selama tiga tahun.

Dengan penghasilan ini, dalam seminggu Lamine Yamal bisa mengantongi sekitar 35 ribu USD atau sekitar Rp 564 juta. Totalnya mencapai 5,37 juta USD atau sekitar Rp 87 miliar hingga berakhirnya kontrak pertamanya di Barcelona.

Besaran gaji ini belum termasuk bonus yang mungkin diterimanya atas pencapaian gol atau assist selama bermain.

Dalam kontraknya, terdapat klausul yang menyatakan bahwa setiap klub yang ingin membeli Lamine Yamal sebelum kontraknya habis di Barcelona harus membayar 1,07 miliar USD atau sekitar Rp 17,31 triliun.

Selain penghasilan dari gaji di Barcelona, Yamal juga mendapat pemasukan dari Adidas setelah menjalin kerjasama selama 10 tahun dengan nilai 34 juta USD atau sekitar Rp 550 miliar pada Februari 2024. (*)

Lisa Blackpink Gabung dalam Lineup ‘2024 Global Citizen Festival’

0

Global Citizen, organisasi advokasi internasional terkemuka yang berfokus pada pengentasan kemiskinan ekstrem, mengumumkan bahwa Lisa, rapper, penyanyi, penari, dan ikon gaya dunia, akan tampil sebagai salah satu headliner di ‘2024 Global Citizen Festival’.

Lisa baru saja merilis single terbarunya, “Rockstar”, bulan lalu, dan ini akan menjadi penampilan solo pertamanya di festival musik. Dia akan bergabung dengan headliner lain seperti Post Malone, Doja Cat, Jelly Roll, Rauw Alejandro, serta Hugh Jackman, yang akan menjadi pembawa acara pada tanggal 28 September di Central Park, New York.

Tiket untuk Global Citizen Festival tidak dikenakan biaya dan dapat diperoleh dengan melakukan tindakan melalui aplikasi Global Citizen atau di globalcitizenfestival.com, dalam upaya memberantas kemiskinan, menjaga kelestarian planet, dan menuntut kesetaraan.

Saat para pemimpin dunia berkumpul di New York untuk Sidang Umum PBB, festival ini bertujuan untuk mengadvokasi kesetaraan bagi semua orang. Festival ini menyerukan kepada pemerintah, dermawan, dan sektor swasta untuk memastikan bahwa kebutuhan dasar komunitas marginal di seluruh dunia, seperti imunisasi, sistem kesehatan yang kuat, pendidikan berkualitas, dan makanan bergizi, terpenuhi.

“Kami sangat bersemangat dapat bekerja sama dengan Lisa untuk penampilan solo pertamanya di sebuah festival musik,” ujar Katie Hill, SVP, Kepala Musik, Hiburan, dan Hubungan Artis Global Citizen.

“Lisa bukan hanya artis yang luar biasa, tetapi juga advokat yang kuat, menggunakan suara dan platformnya untuk mendorong tindakan terhadap tantangan-tantangan mendesak di dunia kita. Kami menantikan kehadirannya, serta para penggemar Lilies dan Blinks, di Central Park pada bulan September! Bergabunglah dengan kami dengan mengambil tindakan melalui aplikasi Global Citizen, dan bersama-sama kita bisa memberikan dampak besar untuk mengakhiri kemiskinan ekstrem.” (*)

Rekomendasi Film Bencana Alam Terbaik (3)

0

Industri film Hollywood selalu menemukan cara untuk menggetarkan hati penontonnya, dan salah satu tema yang berhasil menarik perhatian global adalah film bencana alam.

Dengan kemampuan mereka menghadirkan visual yang spektakuler, wajar jika kita selalu antusias setiap kali mendengar tentang film bencana. Berikut beberapa rekomendasi film tentang bencana alam yang wajib kamu saksikan.

 Only the Brave

Ketika seorang pemadam kebakaran dari California mengabaikan peringatan Inspektur Eric Marsh mengenai kebakaran hutan, ia memutuskan untuk mencari pengakuan bagi timnya.

Independence Day

Seorang jagoan komputer, pilot ulung, Presiden AS, dan sekelompok orang yang dianggap sampah masyarakat bersatu untuk menyelamatkan umat manusia ketika ras alien menyerang Bumi dan menghancurkan semua kota besar.

Cloverfield

Setelah monster raksasa menyerang kota New York, enam pemuda berusaha bertahan hidup sambil melarikan diri dari monster tersebut dan makhluk kecil lainnya.

The Wave

Film ini mengisahkan Kristian Eikjord, seorang geolog yang berjuang melawan waktu untuk menyelamatkan keluarganya dan penduduk Geiranger ketika bencana longsor batu memicu tsunami setinggi 80 meter yang dapat menghancurkan segalanya.

The Perfect Storm

Film ini mengisahkan petualangan tragis kapal penangkap ikan komersial, Andrea Gail, yang terjebak dalam kengerian Badai Perfect pada tahun 1991. Dibintangi oleh bintang-bintang ternama seperti George Clooney dan Mark Wahlberg, film ini menawarkan pengalaman sinematik yang mendalam.

Deep Impact

Film ini mengisahkan Leo Biederman, seorang pemuda astronomi amatir yang menemukan komet mematikan yang mengarah ke Bumi. Ketika upaya untuk menghentikan komet tersebut gagal, keputusan dramatis harus diambil untuk menyelamatkan sebagian kecil umat manusia.

Karakter-karakternya, seperti Jenny Lerner yang bergelut dengan dilema etika jurnalistik dan Presiden Tom Beck yang menghadapi pilihan sulit, memberikan nuansa emosional yang mendalam.

Extinction

Cerita ini mengikuti perjalanan seorang insinyur bernama Peter yang sering dihantui oleh mimpi buruk tentang invasi alien dan kehancuran. Keluarganya, termasuk istrinya Alice dan dua putrinya, Hanna dan Lucy, merasakan dampak dari ketegangan yang dialami Peter akibat visi misterius ini.

The Midnight Sky

Pada tahun 2049, bencana besar melanda dunia, meninggalkan Augustine sebagai satu-satunya manusia di pangkalan Arktik. Augustine berusaha menghubungi pesawat Aether yang kembali dari eksplorasi bulan Jupiter, K-23.

Dalam perjalanan yang sulit dan dengan kesehatan yang semakin memburuk, Augustine bertemu dengan seorang gadis bisu bernama Iris, dan bersama-sama mereka menjalani perjalanan yang mengubah nasib mereka. (*)

Sambangi Pelosok Bone, Kapolres Beri Bantuan ke Murid SD 5/81 Desa Tapong

0

Memasuki dua pekan menjabat Kepala Kepolisian Resor Bone, AKBP Erwin Syah didampingi oleh Waka Polres Kompol Antonius Tuleta dan pejabat utama Polres Bone melakukan kunjungan ke Desa Tapong, Kecamatan Tellu Limpoe, Kabupaten Bone, Jum’at (19/7/2024).

Dengan mengendarai sepeda motor trail bersama rombongan dari Desa Gaya Baru, Kapolres Bone menempuh jarak waktu kurang lebih 1 Jam dengan jalur yang bebatuan, pegunungan dan turunan untuk dapat sampai ke Sekolah Dasar Inpres 5/81 Desa Tapong.

Kunjungan Kapolres Bone ke Desa Tapong di sambut langsung oleh Kepala Sekolah SD Inpres 5/81 Desa Tapong bapak Saharuddin bersama orang tua dan murid sekolah Dasar.

Pada kesempatan tersebut, Kapolres Bone AKBP Erwin Syah memberikan bantuan perlengkapan sekolah seperti Meja belajar, 32 tas sekolah, Buku dan bea siswa kepada murid sekolah yang berprestasi.

“Dengan adanya bantuan yang diberikan ini, diharapkan dapat bermanfaat dan menambah semangat belajar para siswa-siswi yang di berikan bantuan serta dapat meringankan sedikit beban orang tuanya,” Ujar Kapolres Bone.

Kapolre bone
Kapolre bone

Usai melakukan penyerahan Bantuan Kepada siswa-siswi Sekolah Dasar Inpres 5/81 Desa Tapong, Kapolres Bone bersama Waka Polres, Pejabat Utama, Personel Polres/Polsek serta rombongan melakukan Penanaman Pohon Rambutan.

“Penanaman Bibit pohon bukan sekadar menghasilkan oksigen atau sekadar mengikat tanah supaya tidak erosi. Tetapi juga bisa memberi dampak pada kualitas hidup manusia”, Jelas Kapolres Bone.

Kegiatan ini di diikuti oleh Ketua DPRD Bone Irwandi Burhan, Kepala dmDinas PU H. Askar, Kadis Pendidikan Drs Andi Fajaruddin, Para Pejabat Utama Polres Bone, Kapolsek Tellu Limpoe Ipda Sirajuddin dan Kepala Desa Tapong.

BRUS: KUA Ulaweng Asah Bakat Pelajar dan Cegah Nikah Dini

0
Kantor Urusan Agama (KUA) Kecamatan Ulaweng, Kabupaten Bone, Sulawesi Selatan, tengah aktif menggalakkan program Bimbingan Remaja Usia Sekolah (BRUS). Program ini bertujuan untuk mengasah bakat dan minat pelajar, menjauhi narkotika dan judi, serta menghindari pernikahan dini.

Kepala KUA Kecamatan Ulaweng, Muhammad Saleh, bersama jajarannya, aktif melaksanakan BRUS di sekolah-sekolah menengah di wilayah kerjanya. Pekan ini, mereka telah mengunjungi Desa Mulamenree untuk melaksanakan program tersebut.

“Baru-baru ini kami telah mendatangi MTs DDI Mulamenree untuk melaksanakan BRUS. Ke depan, kami akan mengirim surat dan menjadwalkan kegiatan di sekolah-sekolah lainnya. Kami akan berkoordinasi dengan sekolah-sekolah di Kecamatan Ulaweng,” ungkap Muhammad Saleh kepada FAJAR PENDIDIKAN, Jumat (18/7/2024).

Muhammad Saleh berharap program BRUS ini mendapatkan dukungan dari berbagai pihak agar dapat berjalan lancar dan mencapai tujuan yang diharapkan. Program ini diharapkan dapat membuka cara pandang pelajar untuk memahami diri, mengetahui bahaya judi dan narkotika, serta risiko pernikahan dini.

Salah satu guru MTs DDI Mulamenree, Siti Rahmah, mengucapkan terima kasih dan mengapresiasi program BRUS yang digalakkan oleh Kepala KUA Kecamatan Ulaweng bersama jajarannya. Menurutnya, BRUS sangat relevan dengan perkembangan zaman.

Dalam modul BRUS, peserta diberikan sejumlah materi yang dibagi dalam beberapa sesi. Salah satu materi yang diberikan adalah “Remaja yang Sehat”. Sesi ini merupakan sesi pertama yang membantu remaja memahami dan memiliki konsep diri yang sehat, memahami karakter diri dan potensinya, serta mampu menyusun harapan hidup secara lebih jelas.

Remaja yang memiliki konsep diri yang sehat adalah mereka yang memahami totalitas dirinya dengan tepat, memegang nilai-nilai yang baik, dan menyadari kelebihan serta kekurangan diri. Dengan mengenal diri sendiri secara tepat, remaja dapat mengembangkan sisi positif dan mengatasi sisi negatif.

Setelah peserta memahami diri dengan lebih baik, mereka diajak berdiskusi untuk menyadari pentingnya menghindari bahaya-bahaya seperti narkotika, judi, dan pernikahan dini.

Cara Menguasai ReactJS : Memahami Struktur Direktori

ReactJS adalah salah satu library JavaScript paling populer untuk membangun antarmuka pengguna (UI). Dalam tutorial ini, kita akan membahas struktur direktori project React yang dihasilkan oleh Create React App.

Memahami struktur ini sangat penting untuk mengelola project dengan baik dan memastikan bahwa semua file dan folder berada di tempat yang tepat.

Menginisialisasi Project React

Sebelum kita memulai, pastikan Anda telah menginstal Node.js dan npm (Node Package Manager). Jika belum, Anda dapat mengunduh dan menginstalnya dari situs resmi Node.js.

  1. Membuat Project Baru

Gunakan Create React App untuk membuat project React baru. Jalankan perintah berikut di terminal:

npx create-react-app my-react-app

 

Setelah selesai, masuk ke direktori project:

cd my-react-app

 

  1. Menjalankan Development Server

Untuk memulai development server dan melihat aplikasi React yang telah dibuat, jalankan perintah:

npm start

 

Development server akan berjalan di http://localhost:3000.

 

Memahami Struktur Direktori Project React

Berikut adalah struktur direktori default yang dihasilkan oleh Create React App:

struktur direktori default
struktur direktori default

Penjelasan Direktori dan File

  1. node_modules/
    • Direktori ini berisi semua dependencies atau paket yang diinstall melalui npm. Anda tidak perlu mengedit apapun di sini.
  2. public/
    • Berisi file-file statis yang tidak akan diolah oleh Webpack. File yang ada di sini akan disajikan sebagaimana adanya.
    • index.html: Template HTML utama. React akan di-mount ke elemen <div id=”root”></div> di file ini.
    • favicon.ico: Ikon kecil yang muncul di tab browser.
    • manifest.json: Mengatur bagaimana aplikasi Anda akan berperilaku jika diinstal sebagai Progressive Web App (PWA).
  3. src/
    • Berisi semua kode sumber aplikasi React Anda.
    • App.css: Styling CSS untuk komponen App.
    • App.js: Komponen utama aplikasi React Anda.
    • App.test.js: File untuk unit testing pada komponen App.
    • index.css: Styling global untuk aplikasi Anda.
    • index.js: File entry point utama untuk aplikasi React Anda. File ini merender komponen App ke DOM.
    • logo.svg: Logo React yang digunakan dalam komponen App.
    • reportWebVitals.js: Digunakan untuk mengukur performa aplikasi.
    • setupTests.js: File konfigurasi untuk testing menggunakan Jest.
  4. .gitignore
    • File ini berisi daftar file dan direktori yang akan diabaikan oleh Git. Ini termasuk node_modules/ dan file lainnya yang tidak perlu dimasukkan ke dalam version control.
  5. package.json
    • File ini berisi metadata project serta daftar dependencies dan skrip yang dapat dijalankan dengan npm. Misalnya, npm start, npm test, npm build.
  6. README.md
    • File ini berisi informasi dasar tentang project Anda. Secara default, Create React App akan menghasilkan README dengan instruksi dasar untuk memulai.
  7. yarn.lock / package-lock.json
    • File ini berisi versi spesifik dari setiap package yang diinstal. Ini memastikan bahwa semua orang yang menginstal dependencies untuk project Anda mendapatkan versi yang sama.

Memahami struktur direktori project React adalah langkah penting untuk mengelola dan mengembangkan aplikasi Anda dengan efektif.

Dengan mengetahui fungsi setiap file dan direktori, Anda dapat dengan mudah menavigasi project Anda, menambahkan fitur baru, dan menjaga kode Anda tetap terorganisir.

Dalam tutorial berikutnya, kita akan mulai membangun komponen dan menambahkan interaktivitas ke aplikasi React Anda. Selamat belajar dan selamat mencoba!

 

 

Helper URL di CodeIgniter : pengertian, fungsi dan cara penggunaanya

Dalam artikel ini, kita akan membahas secara mendalam tentang salah satu helper yang paling sering digunakan, yaitu URL Helper. Berikut pengertian, Fungsi-Fungsi dan cara penggunaan  URL Helper.

CodeIgniter adalah salah satu framework PHP yang populer dan banyak digunakan untuk mengembangkan aplikasi web. Salah satu fitur yang membuat CodeIgniter sangat berguna adalah koleksi helper-nya yang kaya. Helper adalah sekumpulan fungsi yang membantu Anda menyelesaikan tugas-tugas tertentu dengan mudah.

 URL Helper adalah bagian dari CodeIgniter yang menyediakan serangkaian fungsi untuk memudahkan Anda dalam menangani URL. Dengan menggunakan URL Helper, Anda dapat dengan mudah membuat link, mengarahkan pengguna, dan mendapatkan informasi tentang URL saat ini.

Mengaktifkan URL Helper

Sebelum menggunakan fungsi-fungsi dari URL Helper, Anda harus memuat helper tersebut. Anda dapat melakukannya di file controller Anda atau mengonfigurasinya agar selalu dimuat.

  1. Memuat di Controller

Anda bisa memuat URL Helper di dalam controller dengan menggunakan fungsi load:

$this->load->helper(‘url’);

 

  1. Memuat Secara Global

Untuk memuat URL Helper di seluruh aplikasi, tambahkan di file application/config/autoload.php:

$autoload[‘helper’] = array(‘url’);

 

Fungsi-Fungsi dalam URL Helper

Berikut adalah beberapa fungsi penting yang disediakan oleh URL Helper:

  1. base_url()

Fungsi base_url() mengembalikan URL dasar dari aplikasi Anda. URL ini berguna ketika Anda perlu membuat link atau mengarahkan pengguna ke halaman tertentu dalam aplikasi Anda.

echo base_url();

// Output: http://localhost/your_project/

 

Anda juga dapat menggunakannya untuk membangun link ke file atau halaman tertentu:

echo base_url(‘assets/css/style.css’);

// Output: http://localhost/your_project/assets/css/style.css

 

  1. site_url()

Fungsi site_url() bekerja mirip dengan base_url(), tetapi dirancang untuk membuat URL yang mencakup index.php atau file pengontrol dasar lainnya yang mungkin Anda gunakan.

echo site_url();

// Output: http://localhost/your_project/index.php

 

Anda dapat menambahkan segmen ke URL ini untuk membangun link ke fungsi controller tertentu:

echo site_url(‘controller/function’);

// Output: http://localhost/your_project/index.php/controller/function

 

  1. current_url()

Fungsi current_url() mengembalikan URL penuh dari halaman saat ini. Fungsi ini sangat berguna ketika Anda perlu membuat link atau formulir yang mengarah ke halaman saat ini.

echo current_url();

// Output: http://localhost/your_project/index.php/current_controller/current_function

 

  1. uri_string()

Fungsi uri_string() mengembalikan string URI dari halaman saat ini, tanpa domain atau index.php.

echo uri_string();

// Output: current_controller/current_function

 

  1. anchor()

Fungsi anchor() digunakan untuk membuat link HTML dengan mudah. Fungsi ini menerima URL dan teks link sebagai argumen, dan menghasilkan tag <a>.

echo anchor(‘controller/function’, ‘Klik di sini’);

// Output: <a href=”http://localhost/your_project/index.php/controller/function”>Klik di sini</a>

 

  1. redirect()

Fungsi redirect() mengarahkan pengguna ke halaman lain. Anda dapat menggunakan fungsi ini di dalam controller untuk mengarahkan pengguna setelah tindakan tertentu.

redirect(‘controller/function’);

// Pengguna akan diarahkan ke http://localhost/your_project/index.php/controller/function

 

Contoh Penggunaan URL Helper

Berikut adalah contoh penggunaan fungsi-fungsi URL Helper dalam sebuah controller:

Helper URL
Helper URL

URL Helper di CodeIgniter menyediakan serangkaian fungsi yang sangat berguna untuk menangani URL dalam aplikasi web Anda. Dengan menggunakan helper ini, Anda dapat dengan mudah membuat link, mengarahkan pengguna, dan mendapatkan informasi tentang URL saat ini.

Menguasai penggunaan URL Helper akan membantu Anda mengembangkan aplikasi web yang lebih dinamis dan responsif. Itulah penjelasan mengenai pengertian, Fungsi-Fungsi dan cara penggunaan  URL Helper.

Cara Instal PHP 8 di Linux, Ini Step by Stepnya

PHP 8 adalah versi terbaru dari bahasa pemrograman PHP yang menawarkan berbagai peningkatan kinerja dan fitur baru. Instalasi PHP 8 di Linux cukup mudah dan dapat dilakukan melalui beberapa langkah. Berikut adalah panduan langkah demi langkah untuk menginstal PHP 8 di distribusi Linux berbasis Debian/Ubuntu dan CentOS/RHEL.

Prasyarat

Sebelum memulai instalasi, pastikan bahwa sistem Anda telah memenuhi prasyarat berikut:

  • Akses root atau sudo ke sistem.
  • Koneksi internet yang stabil.

Instalasi PHP 8 di Ubuntu/Debian

  1. Perbarui Sistem

Mulailah dengan memperbarui daftar paket dan paket yang ada di sistem Anda.

sudo apt update

sudo apt upgrade

  1. Tambahkan PPA untuk PHP 8

Ondřej Surý menyediakan PPA yang berisi paket PHP 8. Tambahkan PPA tersebut ke sistem Anda.

sudo apt install software-properties-common

sudo add-apt-repository ppa:ondrej/php

sudo apt update

  1. Instal PHP 8

Instal PHP 8 menggunakan perintah berikut:

sudo apt install php8.0

  1. Verifikasi Instalasi

Periksa versi PHP yang terinstal untuk memastikan instalasi berhasil.

php -v

Anda harus melihat output seperti ini:

PHP 8.0.x (cli) (built: …)

  1. Instal Ekstensi PHP Tambahan (Opsional)

Anda mungkin perlu menginstal ekstensi PHP tambahan sesuai kebutuhan aplikasi Anda. Berikut adalah beberapa ekstensi yang umum digunakan:

sudo apt install php8.0-cli php8.0-fpm php8.0-mysql php8.0-xml php8.0-mbstring php8.0-curl php8.0-zip php8.0-gd

Instalasi PHP 8 di CentOS/RHEL

  1. Perbarui Sistem

Mulailah dengan memperbarui paket yang ada di sistem Anda.

sudo yum update

  1. Tambahkan Remi Repository

Remi repository menyediakan paket PHP terbaru untuk CentOS dan RHEL. Tambahkan repository tersebut ke sistem Anda.

sudo yum install epel-release

sudo yum install http://rpms.remirepo.net/enterprise/remi-release-8.rpm

sudo yum install yum-utils

sudo yum-config-manager –enable remi-php80

  1. Instal PHP 8

Instal PHP 8 menggunakan perintah berikut:

sudo yum install php

  1. Verifikasi Instalasi

Periksa versi PHP yang terinstal untuk memastikan instalasi berhasil.

php -v

Anda harus melihat output seperti ini:

PHP 8.0.x (cli) (built: …)

  1. Instal Ekstensi PHP Tambahan (Opsional)

Anda mungkin perlu menginstal ekstensi PHP tambahan sesuai kebutuhan aplikasi Anda. Berikut adalah beberapa ekstensi yang umum digunakan:

sudo yum install php-cli php-fpm php-mysqlnd php-xml php-mbstring php-curl php-zip php-gd

Konfigurasi PHP 8

Setelah instalasi selesai, Anda mungkin perlu melakukan beberapa konfigurasi tambahan. File konfigurasi utama PHP adalah php.ini, yang terletak di /etc/php/8.0/cli/php.ini untuk Debian/Ubuntu dan /etc/php.ini untuk CentOS/RHEL.

  1. Edit File Konfigurasi

Gunakan editor teks favorit Anda untuk mengedit file php.ini.

sudo nano /etc/php/8.0/cli/php.ini

atau

sudo nano /etc/php.ini

  1. Sesuaikan Konfigurasi

Sesuaikan pengaturan seperti memory_limit, upload_max_filesize, dan max_execution_time sesuai kebutuhan Anda.

Contoh:

memory_limit = 256M

upload_max_filesize = 50M

max_execution_time = 300

  1. Restart Web Server

Jika Anda menggunakan PHP dengan web server seperti Apache atau Nginx, pastikan untuk me-restart web server setelah mengubah konfigurasi PHP.

Untuk Apache:

sudo systemctl restart apache2

Untuk Nginx:

sudo systemctl restart nginx

Kesimpulan

Menginstal PHP 8 di Linux melibatkan beberapa langkah sederhana. Dengan mengikuti panduan ini, Anda dapat dengan mudah menginstal dan mengkonfigurasi PHP 8 di sistem Debian/Ubuntu atau CentOS/RHEL Anda.

Setelah instalasi selesai, Anda siap untuk mulai mengembangkan aplikasi web dengan PHP 8 dan memanfaatkan fitur-fitur terbaru yang ditawarkan.

 

Memahami Preprocessor dan Macro dalam Pemrograman

Artikel ini akan mengulas secara mendalam apa itu preprocessor dan macro, cara kerjanya, serta manfaat dan contoh penggunaannya dalam pengembangan perangkat lunak.

Dalam dunia pemrograman, preprocessor dan macro adalah dua elemen yang sangat penting dan sering digunakan, terutama dalam bahasa pemrograman seperti C dan C++.

Kedua konsep ini membantu meningkatkan efisiensi dan fleksibilitas kode, memungkinkan programmer untuk menulis kode yang lebih modular dan mudah dikelola.

Preprocessor adalah tahap awal dalam proses kompilasi program yang bertugas memproses instruksi-instruksi khusus sebelum kode utama dikompilasi oleh compiler.

Preprocessor membaca kode sumber dan melakukan berbagai operasi, seperti menggantikan makro, menyertakan file lain, dan menghilangkan komentar. Instruksi-instruksi ini dikenal sebagai direktif preprocessor dan biasanya diawali dengan tanda #.

Fungsi Utama Preprocessor

  1. Penggantian Makro (Macro Replacement): Mengganti makro dengan nilai atau kode yang ditentukan.
  2. Penyertaan Berkas (File Inclusion): Menyertakan isi dari berkas lain ke dalam berkas sumber.
  3. Pengondisian Kompilasi (Conditional Compilation): Mengizinkan bagian tertentu dari kode hanya dikompilasi jika kondisi tertentu terpenuhi.
  4. Penghapusan Komentar (Comment Removal): Menghapus komentar dari kode sumber.

Direktif Preprocessor yang Umum

  1. #define: Digunakan untuk mendefinisikan makro.

#define PI 3.14

  1. #include: Digunakan untuk menyertakan file header atau file lain.

#include <stdio.h>

#include “myheader.h”

  1. #if, #ifdef, #ifndef, #else, #elif, #endif: Digunakan untuk kompilasi bersyarat.

#ifdef DEBUG

printf(“Debug mode\n”);

#endif

  1. #undef: Digunakan untuk membatalkan definisi makro.

#undef PI

  1. #pragma: Digunakan untuk memberikan instruksi khusus kepada compiler.

#pragma once

Apa Itu Macro?

Macro adalah sekumpulan instruksi yang dapat didefinisikan dan digunakan kembali dalam kode program.

Makro memungkinkan programmer untuk mendefinisikan pengganti untuk potongan kode yang panjang atau sering digunakan, sehingga mengurangi duplikasi dan meningkatkan keterbacaan kode.

Jenis-Jenis Makro

  1. Object-like Macros: Makro yang menggantikan nama dengan nilai sederhana.

#define PI 3.14

  1. Function-like Macros: Makro yang menggantikan nama dengan fungsi yang lebih kompleks.

#define SQUARE(x) ((x) * (x))

Contoh Penggunaan Macro

Berikut adalah contoh penggunaan macro untuk menghitung luas lingkaran:

#include <stdio.h>

#define PI 3.14

#define AREA_OF_CIRCLE(r) (PI * (r) * (r))

 

int main() {

float radius = 5.0;

printf(“Luas lingkaran dengan jari-jari %.2f adalah %.2f\n”, radius, AREA_OF_CIRCLE(radius));

return 0;

}

Dalam contoh ini, makro PI dan AREA_OF_CIRCLE digunakan untuk menghitung luas lingkaran dengan cara yang lebih singkat dan mudah dipahami.

Keuntungan Menggunakan Preprocessor dan Macro

  1. Meningkatkan Keterbacaan Kode: Makro memungkinkan penggunaan nama yang lebih deskriptif untuk nilai atau fungsi tertentu, membuat kode lebih mudah dibaca dan dipahami.
  2. Mengurangi Duplikasi Kode: Dengan menggunakan makro, kode yang sama tidak perlu ditulis berulang kali.
  3. Mempermudah Perubahan Kode: Jika ada perubahan nilai atau fungsi, cukup mengubah definisi makro tanpa perlu mencari dan mengganti semua kemunculannya di kode.
  4. Pengendalian Kompilasi: Preprocessor memungkinkan kompilasi bersyarat, yang berguna untuk membuat kode yang portabel dan dapat dikonfigurasi.
  5. Meningkatkan Modularitas: Dengan direktif preprocessor seperti #include, kode dapat dibagi menjadi beberapa file, membuatnya lebih modular dan terstruktur.

Contoh Lebih Lanjut

Kompilasi Bersyarat

Kompilasi bersyarat memungkinkan bagian tertentu dari kode hanya dikompilasi jika kondisi tertentu terpenuhi. Ini sangat berguna untuk menangani berbagai lingkungan kompilasi atau mode (seperti debug dan release).

#include <stdio.h>

 

#define DEBUG

 

int main() {

printf(“Program dimulai\n”);

 

#ifdef DEBUG

printf(“Mode debug diaktifkan\n”);

#endif

 

printf(“Program berakhir\n”);

return 0;

}

Dalam contoh ini, jika DEBUG didefinisikan, pesan “Mode debug diaktifkan” akan dicetak. Jika DEBUG tidak didefinisikan, pesan tersebut tidak akan dicetak.

Menyertakan File Header

Menyertakan file header adalah cara untuk membagi kode menjadi beberapa file, meningkatkan modularitas dan keteraturan kode.

file header: myheader.h

#define PI 3.14

 

float area_of_circle(float radius);

file sumber: main.c

#include <stdio.h>

#include “myheader.h”

 

float area_of_circle(float radius) {

return PI * radius * radius;

}

 

int main() {

float radius = 5.0;

printf(“Luas lingkaran dengan jari-jari %.2f adalah %.2f\n”, radius, area_of_circle(radius));

return 0;

}

Dengan membagi kode ke dalam file header dan file sumber, kode menjadi lebih terstruktur dan lebih mudah dikelola.

Preprocessor dan macro adalah alat yang kuat dalam pemrograman yang membantu meningkatkan efisiensi dan keterbacaan kode. Dengan memahami dan menggunakan preprocessor dan macro dengan benar, programmer dapat menulis kode yang lebih terstruktur, mudah dipelihara, dan lebih efisien.

Preprocessor menyediakan berbagai fungsi seperti penggantian makro, penyertaan berkas, dan pengondisian kompilasi, sementara macro memungkinkan pendefinisian pengganti untuk potongan kode yang panjang atau sering digunakan.

Pemahaman yang mendalam tentang kedua konsep ini sangat penting bagi siapa pun yang ingin menguasai pemrograman, terutama dalam bahasa seperti C dan C++.

 

Memahami Fungsi untuk Alokasi Memori Secara Dinamis dalam Pemrograman

Alokasi memori dinamis adalah teknik yang memungkinkan program untuk meminta memori tambahan dari sistem selama waktu eksekusi. Hal ini sangat berguna dalam banyak aplikasi di mana ukuran data tidak dapat diprediksi selama waktu kompilasi. Artikel ini akan menjelaskan konsep alokasi memori dinamis, fungsi-fungsi yang digunakan, serta cara penggunaannya dalam bahasa pemrograman C.

Konsep Alokasi Memori Dinamis

Alokasi memori dinamis memungkinkan program untuk mengalokasikan dan membebaskan memori sesuai kebutuhan selama eksekusi. Hal ini berbeda dengan alokasi memori statis, di mana ukuran memori dialokasikan pada saat kompilasi dan tidak dapat diubah selama eksekusi program.

Mengapa Alokasi Memori Dinamis Penting?

  1. Fleksibilitas: Program dapat menyesuaikan penggunaan memori sesuai kebutuhan yang tidak dapat diprediksi sebelumnya.
  2. Efisiensi: Menghindari pemborosan memori dengan hanya mengalokasikan memori saat diperlukan.
  3. Pengelolaan Data yang Kompleks: Memungkinkan pembuatan struktur data dinamis seperti linked list, tree, dan graph yang ukuran dan struktur dapat berubah selama eksekusi program.

Fungsi-Fungsi untuk Alokasi Memori Dinamis

  1. malloc

malloc (memory allocation) adalah fungsi yang digunakan untuk mengalokasikan blok memori dengan ukuran tertentu. Fungsi ini mengembalikan pointer ke blok memori yang dialokasikan.

#include <stdlib.h>

 

int *ptr = (int *)malloc(sizeof(int) * 10);

Dalam contoh di atas, malloc mengalokasikan memori untuk 10 elemen integer.

  1. calloc

calloc (contiguous allocation) adalah fungsi yang digunakan untuk mengalokasikan blok memori untuk sejumlah elemen tertentu dan menginisialisasi semua byte menjadi nol.

#include <stdlib.h>

 

int *ptr = (int *)calloc(10, sizeof(int));

Dalam contoh di atas, calloc mengalokasikan memori untuk 10 elemen integer dan menginisialisasi semuanya menjadi nol.

  1. realloc

realloc (re-allocation) adalah fungsi yang digunakan untuk mengubah ukuran blok memori yang sudah dialokasikan sebelumnya. Fungsi ini berguna ketika ukuran memori yang dibutuhkan berubah selama waktu eksekusi.

#include <stdlib.h>

 

int *ptr = (int *)malloc(sizeof(int) * 10);

// Mengubah ukuran blok memori menjadi 20 elemen integer

ptr = (int *)realloc(ptr, sizeof(int) * 20);

  1. free

free adalah fungsi yang digunakan untuk membebaskan blok memori yang telah dialokasikan. Ini penting untuk menghindari kebocoran memori (memory leak).

#include <stdlib.h>

 

int *ptr = (int *)malloc(sizeof(int) * 10);

// Menggunakan memori

free(ptr);

Contoh Penggunaan Alokasi Memori Dinamis

Berikut adalah contoh program yang menggunakan alokasi memori dinamis untuk menyimpan dan mengelola array integer dengan ukuran yang dapat berubah.

#include <stdio.h>

#include <stdlib.h>

 

int main() {

int *array;

int size, newSize;

int i;

 

// Mengalokasikan memori untuk 5 elemen integer

size = 5;

array = (int *)malloc(size * sizeof(int));

 

// Memeriksa apakah alokasi berhasil

if (array == NULL) {

printf(“Alokasi memori gagal\n”);

return 1;

}

 

// Mengisi array dengan nilai

for (i = 0; i < size; i++) {

array[i] = i + 1;

}

 

// Menampilkan isi array

printf(“Isi array:\n”);

for (i = 0; i < size; i++) {

printf(“%d “, array[i]);

}

printf(“\n”);

 

// Mengubah ukuran array menjadi 10 elemen

newSize = 10;

array = (int *)realloc(array, newSize * sizeof(int));

 

// Memeriksa apakah alokasi berhasil

if (array == NULL) {

printf(“Re-alokasi memori gagal\n”);

return 1;

}

 

// Mengisi elemen baru dengan nilai

for (i = size; i < newSize; i++) {

array[i] = i + 1;

}

 

// Menampilkan isi array setelah perubahan ukuran

printf(“Isi array setelah perubahan ukuran:\n”);

for (i = 0; i < newSize; i++) {

printf(“%d “, array[i]);

}

printf(“\n”);

 

// Membebaskan memori yang telah dialokasikan

free(array);

 

return 0;

}

Alokasi memori dinamis adalah teknik penting dalam pemrograman yang memungkinkan program untuk mengelola memori secara efisien selama waktu eksekusi. Dengan menggunakan fungsi-fungsi seperti malloc, calloc, realloc, dan free, programmer dapat mengalokasikan, mengubah ukuran, dan membebaskan memori sesuai kebutuhan.

Pemahaman yang baik tentang alokasi memori dinamis sangat penting untuk menghindari masalah seperti kebocoran memori dan memastikan penggunaan memori yang optimal.