Halaman Widget Admin WordPress Tidak Berjalan / Not Working

Selamat pagi teman-teman 🙂 lama gag jumpa di sasana WP ini :). Kali ini aku ingin sharing mengenai pengalaman saat developing sebuah website menggunakan WordPress sebagai core-nya. Sebuah website portal berita sederhana namun sarat dengan plugin dan fitur-fitur lain bawaan dari theme-nya. Developing aku lakukan Offline (localhost), nah setelah rasanya sudah siap terbang (online), akhirnya masuk tahap Upload. Masalah pun mulai muncul ketika selesai proses upload, dari mulai link yang tidak bekerja, beberapa konfigurasi berbeda dan lain sebagainya.

Namun, hal yang paling menyiksaku adalah, saat mengakses halaman Widget di Admin WordPress, segala fitur nya (Drag & Drop, Add, Edit Widget) sama sekali tidak bisa digunakan. Beberapa saat aku analisa menggunakan Firebug, disana disebutkan bahwa ada beberapa file javascript yang tidak bisa diakses (403 Forbidden). Aku mulai kebingungan, padahal folder permission sudah 777.

Lari kesana kemari, kutemukan berbagai solusi diantaranya adalah :

  1. Non-aktifkan semua widget, kemudian aktifkan kembali
  2. Hapus/non-aktifkan widget logic
  3. Tambahkan konfigurasi khusus di wp-config.

Dari ketiga solusi tersebut, yang saya coba adalah poin 3, dan syukur alhamdulillah setelah aku melakukan setting tambahan di wp-config, masalah tersebut diatas langsung bisa teratasi !!! Well Done :mrgreen:.

Oke, yang perlu dilakukan adalah :

  1. Buka file wp-config.php
  2. Tambahkan baris kode berikut ini
    define('CONCATENATE_SCRIPTS', false);

    setelah baris kode ini

    define('DB_NAME', 'database');
  3. Kemudian simpan
  4. Selesai

Semoga kalian beruntung :), solusi ini aku temukan dari : http://alohathemes.com/blog/wordpress-widgets-not-working/

Contoh Function Di Oracle Menghitung Jumlah Huruf Konsonan Dan Vokal Dari Inputan

Soal ini didapat dari Praktikum Basis Data Lanjut mengenai pembahasan Function dan Procedure di Database Oracle. Okey, berikut ini merupakan sintaks function untuk menghitung karakter selain angka serta membedakan mana yang termasuk huruf vokal dan konsonan berdasarkan inputan user :

CREATE OR REPLACE FUNCTION VOKAL_KONSONAN (KATA IN VARCHAR2)
RETURN VARCHAR2 IS HASIL VARCHAR2(255);
KONSONAN NUMBER;
VOKAL NUMBER;
BEGIN
IF LENGTH(TRIM(TRANSLATE(KATA, '+-.0123456789', ' '))) IS NULL THEN
HASIL := 'Teks yang kamu masukkan mengandung karakter angka';
ELSE
KONSONAN := LENGTH(REPLACE(TRANSLATE(KATA, 'aAeEiIoOuU', ' '), ' ', NULL));
VOKAL := LENGTH(REPLACE(KATA, ' ', NULL)) - KONSONAN;
END IF;
RETURN HASIL;
END;
/

Untuk menjalankan atau mencoba sintaks diatas setelah dieksekusi dan berhasil membuat function, bisa memakai sintaks atau query berikut ini :

SELECT VOKAL_KONSONAN('Rendra Kurniawan') FROM DUAL;

Semoga bermanfaat 🙂

Praktikum Basis Data (Oracle) – Part 3

Ini merupakan lanjutan dari postingan sebelumnya yaitu Praktikum Basis Data Oracle Part 2. Mohon maaf kepada teman-teman jika upload-nya telat, maklum karena banyak kegiatan di luar :). Oke langsung saja, berikut ini yang bisa aku sharing untuk Part 3 :

  1. Insert record baru dalam jumlah banyak menggunakan 1 query
  2. Merubah date format pada saat eksekusi query
  3. Melihat constraint yang ada pada suatu tabel
  4. Menampilkan seluruh tabel yang ada pada schema tertentu
  5. Menampilkan semua user dan schema yang ada
  6. Menggabungkan data antara 2 tabel menggunakan “Merge” dilengkapi berbagai kondisi (When Matched, Delete When Not Matched, dll)

Pertama (Insert Banyak Record Dengan 1 Query)

Maksudnya adalah jika ingin memasukkan data ke dalam suatu tabel lebih dari 1 record menggunakan 1 query yang bisa dieksekusi dalam 1 waktu. Berikut ini adalah source code nya :

INSERT ALL
INTO MATKUL_04900 VALUES (7, 1, ‘Alpro’, 3, ‘Dosen’)
INTO MATKUL_04900 VALUES (8, 1, ‘English’, 3, ‘Dosen’)
INTO MATKUL_04900 VALUES (9, 1, ‘Agama’, 3, ‘Dosen’)
INTO MATKUL_04900 VALUES (10, 1, ‘PBO’, 3, ‘Dosen’)
INTO MATKUL_04900 VALUES (11, 1, ‘KP’, 3, ‘Ibu Dosen’)
INTO MATKUL_04900 VALUES (12, 1, ‘KKN’, 3, ‘Dosen’)
SELECT * FROM DUAL;

Kedua (Merubah Date Format Query)

Penjelasan singkat dari judul kedua ini adalah, jika pada waktu eksekusi sebuah query entah itu untuk insert record atau select query, jika salah satu field merupakan parameter yang dibutuhkan untuk suatu kondisi, pastinya format tanggal perlu diatur sesuai value parameter yang diinginkan. Misalkan begini, di dalam record mempunyai value seperti “10/31/2012” namun kita ingin merubah formatnya menjadi “31/10/2012” tanpa harus merubah value (semoga bisa paham yang sebenarnya aku maksudkan, :mrgreen:), berikut ini adalah source-nya (Contoh untuk insert record) :

-- Inilah poin pentingnya --
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY/MM/DD';
-- Poin penting --

INSERT ALL
INTO TAB_MOD3_02 VALUES ('1001','Rendra','1990/01/23','P','Surabaya','SMPN 2 Mojosari',100)
INTO TAB_MOD3_02 VALUES ('1002','Kurniawan','1990/02/23','P','Mojokerto','SMPN 2 Mojosari',100)
INTO TAB_MOD3_02 VALUES ('1003','Rain','1990/03/23','P','Sidoarjo','SMPN 2 Mojosari',100)
SELECT * FROM DUAL;

Ketiga (Menampilkan Constraint)

Berikut ini adalah contoh query untuk menampilkan constraint yang ada pada tabel :

SELECT CONSTRAINT_NAME, R_CONSTRAINT_NAME, CONSTRAINT_TYPE, TABLE_NAME FROM USER_CONSTRAINTS ORDER BY CONSTRAINT_TYPE ASC;

Keempat (Menampilkan Seluruh Tabel Pada Schema)

SELECT TABLE_NAME, COLUMN_NAME FROM USER_TAB_COLUMNS ORDER BY TABLE_NAME ASC;

Kelima (Menampilkan User & Schema)

Berikut adalah contoh query untuk menampilkan daftar user dan schema yang ada pada Oracle :

SELECT SYS_CONTEXT('userenv','db_name') AS NAMA_DB, SYS_CONTEXT('userenv','session_user') AS NAMA_SCHEMA FROM DUAL;

Keenam (Merge Data)

Dibawah ini merupakan contoh query untuk menggabungkan data dari beberapa tabel menggunakan fungsi Merge.

MERGE INTO TAB_MOD3_02 b USING(
SELECT nopes, nmsis, ttl, jk, almtsis,
asalsek, bindo, bing, mat, ipa, poin
FROM TAB_MOD3_01
WHERE nopes = '1001') a ON (b.nopes = a.nopes)
WHEN MATCHED THEN UPDATE SET b.danem = ((a.bindo + a.bing + a.mat + a.ipa + a.poin)/5)
DELETE WHERE (a.nmsis = '') WHEN NOT MATCHED THEN
INSERT (b.nopes, b.nmsis, b.ttl, b.jk, b.almtsis, b.asalsek, b.danem)
VALUES (a.nopes, a.nmsis, a.ttl, a.jk, a.almtsis, a.asalsek,
((a.bindo + a.bing + a.mat + a.ipa + a.poin)/5))
WHERE (a.nopes <> '');

Yap, sekian untuk Part 3 ini, semoga bisa bermanfaat… sampai ketemu di Part 4 selanjutnya 🙂

Praktikum Basis Data (Oracle) – Part 2

Well well,,, kali ini aku mau share lanjutan dari post sebelumnya yaitu Praktikum Basis Data Oracle Part 1 dimana sebelumnya membahas mengenai pembuatan user, tablespace dan syart-syarat awal yang diperlukan untuk memulai pembahasan/pembelajaran pada umumnya mengenai Oracle Database.

Di Part 2 ini aku ingin share mengenai beberapa hal, diantaranya adalah :

  1. Membuat sebuah tabel dilengkapi dengan constraint
  2. Mengubah nama tabel (rename table)
  3. Merubah nama field/kolom dari sebuah tabel
  4. Menghapus tabel
  5. Menambahkan index, menambah constraint pada tabel
  6. Membuat tabel dengan meng-copy / berdasarkan struktur dari tabel lain
  7. Melihat constraint yang ada pada suatu tabel

Yah,,, lumayan poin yang akan dibahas kali ini, semoga bisa bermanfaat bagi semua 🙂

Pertama (Membuat Tabel Dilengkapi Constraint)

Berikut ini contoh untuk membuat suatu tabel dengan nama TaMod2 dengan 5 field/kolom, lihat script query berikut :

CREATE TABLE TaMod2 (
kode_user INT,
nama_user VARCHAR(30) NOT_NULL,
telepon VARCHAR(12),
email VARCHAR(25),
alamat VARCHAR(100),
CONSTRAINT pk_user PRIMARY KEY(kode_user));

Kedua (Merubah Nama Tabel)

Misalkan dari tabel diatas, kita akan merubah namanya dari TaMod2 menjadi TabMod2, maka bisa menggunakan query seperti berikut ini :

RENAME TaMod2 TO TabMod2;

Ketiga (Merubah Nama Kolom & Merubah Tipe Data Field/Kolom)

-- Query untuk merubah nama field / kolom
-- Contohnya untuk merubah kolom nama_user menjadi nama_pengguna
ALTER TABLE TabMod2 RENAME COLUMN nama_user TO nama_pengguna;

-- Query untuk merubah tipe data dari field tertentu pada tabel
-- Contoh berikut adalah merubah tipe data dari field kode_user
-- yang mana awalnya bertipe data INT, dirubah menjadi VARCHAR
ALTER TABLE TabMod2 MODIFY (kode_user VARCHAR(10));

Keempat (Menghapus Tabel)

Untuk menghapus tabel di Oracle, ada 2 metode yang perlu diketahui, yaitu dihapus secara biasa tapi masih tersisa di Recycle Bin-nya Oracle, atau benar-benar dihapus tanpa bekas. Berikut ini adalah query yang bisa kalian pakai, pertama adalah menghapus secara biasa dan query yang kedua untuk benar-benar menghapus tabel tanpa sisa di BIN (Recycle Bin Oracle).

DROP TABLE TabMod2;

Dengan query diatas (Drop), kita masih bisa mengembalikan atau meng-undo agar tabel bisa kembali lagi, gag jadi terhapus, bisa pakai query ini :

FLASHBACK TABLE TabMod2 TO BEFORE DROP;

Dan berikut ini query untuk melihat isi RECYCLE BIN-nya Oracle, jika ada tabel yang dihapus dengan query DROP pasti masuk disini.

SELECT * FROM RECYCLEBIN;

Dan ini adalah query untuk menghapus Tabel tanpa masuk di RECYCLE BIN, hampir sama dengan fungsi Shift+Del, querynya adalah :

PURGE TABLE TabMod2;
-- Contoh untuk menghapus tabel di RECYCLE BIN
PURGE TABLE "BIN$KIkRl/BNTzmEdg9BW4Z3Pg==$0";
-- Dan beberapa pengetahuan lain yang hampir sama dengan PURGE ALL
PURGE RECYCLEBIN;
PURGE DBA_RECYCLEBIN;
PURGE USER_RECYCLEBIN;

Kelima (Menambahkan Index / Constraint di Suatu Tabel)

CREATE INDEX FK_EMAIL ON TabMod2 (email ASC);

ALTER TABLE TabMod2
	ADD CONSTRAINT FK_EMAIL FOREIGN KEY (KD_EMAIL)
		REFERENCES TB_EMAIL (ID_EMAIL);

Keenam (Membuat Tabel Dengan Copy Struktur Tabel Lain)

Sebelumnya, misalkan kita buat tabel baru dengan nama Tab_Nama_01 dengan query berikut ini :

CREATE TABLE Tab_Nama_01 (
nomor_peserta varchar(12) PRIMARY KEY NOT NULL,
CONSTRAINT nopes CHECK(LENGTH(nomor_peserta)=12),
nama_siswa varchar(50) NOT NULL,
t_lahir varchar(20) NOT NULL, ttl DATE NOT NULL,
gender char(1) NOT NULL, nama_ayah varchar(50) NOT NULL,
nama_ibu varchar(50) NOT NULL,
nama_wali varchar(50) NOT NULL,
telepon varchar(15) NOT NULL,
almt_sis varchar(150) NOT NULL, kota varchar(50) NOT NULL,
kab varchar(50) NOT NULL, n_b_indo NUMBER NOT NULL,
n_b_ingg NUMBER NOT NULL, n_mat NUMBER NOT NULL,
n_ipa NUMBER NOT NULL, asal_sek varchar(70) NOT NULL,
tahun NUMBER(4) NOT NULL,
CONSTRAINT th CHECK(LENGTH(tahun)=4));

Kemudian, kita akan membuat tabel baru dengan nama Tab_Nama_02 dengan beberapa field yang meniru struktur dari tabel pertama yaitu Tab_Nama_01, berikut ini contoh querynya :

CREATE TABLE Tab_Nama_02 AS SELECT
a.*,
((a.n_b_indo + a.n_b_ingg + a.n_mat + a.n_ipa)/4) danem,
TO_DATE(a.TTL, 'MONTH') bulan,
TO_DATE(a.TTL, 'DD') tanggal,
TO_DATE(a.TTL, 'YYYY') tahun_lahir,
SUBSTR(nama_siswa,1, INSTR(nama_siswa,',')-1) nama_depan,
SUBSTR(nama_siswa,(INSTR(nama_siswa,',')+1),LENGTH(nama_siswa)) nama_belakang
FROM TAB_NAMA_01 a;

Ketujuh (Melihat Constraint Dari Tabel)

Beriku ini adalah contoh query untuk melihat atau menampilkan constarint apa aja pada table yang udah pernah kita buat sebelumnya. Ada beberapa cara :

-- 1
SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME = 'Tab_Nama_02';
-- 2
SELECT * FROM ALL_CONSTRAINTS WHERE TABLE_NAME = 'Tab_Nama_02';
-- 3
SELECT CONSTRAINT_NAME, COLUMN_NAME FROM USER_CONS_COLOM WHERE TABLE_NAME = 'Tab_Nama_01';

Yap… akhirnya sampai ujung juga. Capek juga ya, haha.. oke deh semoga bermanfaat bagi teman-teman. Sampai jumpa lagi ya di PART 3.

Praktikum Basis Data (Oracle) – Part 1

Dengan dimulainya tahun ajaran baru untuk Praktikum Basis Data Semester ini, aku punya ide untuk share pengalaman tentang hal terkait yang mana sudah pernah aku jalani di semester sebelumnya. Aku harap bisa bermanfaat khususnya bagi yang sedang Praktikum Basis Data Oracle atau bagi teman-teman lainnya yang lagi belajar mengenai Oracle 🙂

Pada bagian pertama ini, aku ingin share mengenai beberapa hal berikut :

  1. Membuat User baru di Oracle
  2. Membuat Tablespace untuk User tertentu di Oracle
  3. Memberikan hak akses agar user bisa login, bisa membuat Table, user bisa membuat Tablespace,  user dapat membuat View, Store Procedure, Trigger dan komponen DBMS lainnya.
  4. Contoh sederhana untuk membuat tabel baru dan insert record baru pada tabel tersebut.

Pertama (Membuat Tablespace Oracle)

Tablespace yang dibuat tersendiri ini nantinya berguna untuk user tertentu sebagai lokasi penyimpanan datanya, seperti tabel, view dan lain sebagainya. Tablespace ini berupa suatu file dengan ekstensi / bertipe file “.ora“, yang disimpan pada lokasi sesuai pilihan kita. Misalkan kita akan membuat suatu tablespace dengan nama praktikum yang disimpan pada file praktikum.ora, berikut ini query-nya :

CREATE TABLESPACE praktikum DATAFILE 'D:\Oracle\praktikum.ora'
SIZE 1M
AUTOEXTEND ON NEXT 500K
MAXSIZE 3M;

Script diatas bisa dijalankan melalui SQL Plus atau Interface lainnya yang mendukung operasi database Oracle. Keterangan dari script diatas adalah sebagai berikut :

  1. Baris pertama adalah untuk membuat tablespace dengan nama tersebut yang disimpan pada Drive D:/ dengan path tersebut.
  2. Baris kedua untuk menentukan berapa besar kapasitas file tablespace ini
  3. Baris ketiga merupakan ketentuan untuk file tablespace tersebut jika kapasitas penyimpanan melampaui batas yang ditentukan di baris kedua, istilahnya akan membengkak sebesar 500Kb tiap kali terjadi pembengkakan
  4. Baris terakhir adalah ketentuan berapa besar maksimal ukuran tablespace ini (Tidak bisa bengkak lagi).

Kedua (Membuat User Baru di Oracle)

Berikut ini contoh query untuk membuat user baru di Oracle menggunakan tablespace yang sudah dibuat pada poin pertama tadi.

CREATE USER rendra IDENTIFIED BY kurniawan DEFAULT TABLESPACE praktikum;

Ketiga (Memberi Hak Akses Pada User Oracle)

Setelah berhasil membuat user baru, sekarang diberi hak akses agar bisa melakukan beberapa hal seperti, login, membuat table, membuat view dan membuat tablespace. Sintaks yang bisa digunakan adalah sebagai berikut :

GRANT CONNECT, RESOURCE TO rendra;
GRANT CREATE VIEW TO rendra;
GRANT TRIGGER TO rendra;

Konsep untuk memberi hak akses adalah seperti script diatas, jika pemberian hak akses diatas masih kurang, bisa ditambahkan sendiri sesuai format seperti tersebut diatas.

Keempat (Membuat Table Baru & Insert Record)

Setelah pemberian hak akses, silahkan coba masuk/login sebagai user yang baru dibuat tadi dengan perintah conn rendra kemudian masukkan passwordnya. Setelah berhasil masuk/login, mencoba untuk membuat 2 buah tabel yaitu tabel mhs dan jurusan. Contoh perintahnya seperti ini :

CREATE TABLE MHS(NPM VARCHAR(15) NOT NULL,NAMA_LENGKAP VARCHAR(70),GENDER CHAR(1) NOT NULL,
TTL VARCHAR(50),
PRIMARY KEY(NPM) USING INDEX);

CREATE TABLE JURUSAN(
KD_JURUSAN INT NOT NULL,
NM_JURUSAN VARCHAR(50),
CONSTRAINT NM_JURUSAN_U PRIMARY KEY(KD_JURUSAN) USING INDEX);

Dan script dibawah ini adalah untuk insert data di tabel yang barusan dibuat tadi :

INSERT INTO MHS VALUES ('06.2009.1.04900', 'Rendra Kurniawan', 'L', 'Mojokerto, 23 Mei 1990', 1);

Bonus, script ini adalah contoh untuk membuat View di Oracle :

CREATE VIEW lihat_mhs AS
SELECT MHS.NPM, MHS.NAMA_LENGKAP, JURUSAN.NM_JURUSAN
FROM MHS INNER JOIN
JURUSAN ON MHS.KD_JURUSAN = JURUSAN.KD_JURUSAN
ORDER BY MHS.NPM ASC;

Okelah,,, sekian semoga bermanfaat… sampai ketemu di PART selanjutnya ya…
Thanks

My Big Project – Kreasi Garuda

Well well,,, kali ini aku mau sedikit promosi sama temen-temen 🙂 tentang Big Project yang perlu segera “dimulai” dan terus dikembangkan :mrgreen: Dan semoga ini menjadi langkah awal yang baik dan bermanfaat, Amin 🙂

Apa itu projectnya, ialah Kreasi Garuda

Kreasi Garuda

Suatu organisasi (semoga segera bisa disebut sebagai perusahaan) yang kami (Aku dan beberapa temenku disini) bentuk yang memberikan produk dan pelayanan di bidang teknologi informasi (IT). Mempunyai visi menjadi suatu organisasi/perusahaan IT yang terpadu dan bisa menjadi kebanggaan.
Semoga satu langkah awal ini dapat memberikan manfaat dan semangat kepada semuanya :mrgreen:

Visit Us : http://www.kreasigaruda.com

Perbedaan Antara “Baseline JPEG” dan “Progressive JPEG”

Bagi para editor, khususnya yang sering mengoperasikan Photoshop, pasti pernah melihat / kenal dengan istilah Baseline & Progressive waktu menyimpan gambar hasil olah menjadi tipe JPEG/JPG. Pernah terpikirkah apa ya perbedaan diantara keduanya ???

Berikut adalah sedikit penjelasan mengenai perbandingan / perbedaan diantara keduanya. Pengetahuan ini juga aku dapat dari sixrevision.com mengenai panduan dasar tentang file gambar bertipe JPEG/JPG.

Baseline JPEG adalah gambar yang dibuat menggunakan algoritma kompresi JPEG yang mulai menampilkan gambar sebagai data yang tersedia per baris pixel gambar.
Gambar Baseline JPEG disamping dikompresi menggunakan metode transformasi kosinus diskrit & pengkodean Huffman, juga menggunakan presisi sampel 8-bit.
Komponen gambarnya mungkin terdiri dari 24-bit warna (tiga komponen per pixel) atau grayscale (salah satu komponen per pixel).
Di browser, saat kamu mengakses suatu situs bisa kamu lihat suatu image yang formatnya “baseline” akan tampil / di-load secara lambat, gambar ini di-load dari atas gambar, hingga ke bawah sampai gambar penuh di-load. Tampak seperti di-load per baris.

Sedangkan Progressive JPEG akan menampilkan gambar secara penuh sedemikian rupa tapi menunjukkan image/gambar terlihat agak blur, kurang jelas / berkualitas rendah secara keseluruhan, dan kemudian dengan perlahan menjadi lebih jelas dan lebih jelas sebagai data gambar asli yang menunjukkan gambar tersebut selesai di-load. Format ini membagi file gambar menjadi serangkaian scan saat di-load. Scan pertama menunjukkan gambar dengan kualitas yang sangat rendah. Setelah scan secara bertahap meningkatkan kualitas gambar tersebut.  Setiap scan menambah kualitas pixel yang telah disediakan hingga mencapai kualitas scan akhir (Pada dasarnya, progresif JPEG hanya penataan ulang dari data yang sama ke dalam suatu tatanan yang lebih rumit.)
Keuntungan dari progresif JPEG adalah bahwa jika gambar sedang dilihat on-the-fly ketika dikirimkan, orang dapat melihat perkiraan untuk seluruh gambar yang sangat cepat, dengan peningkatan secara bertahap kualitas sebagai salah satu menunggu lebih lama, ini jauh lebih bagus daripada tampilan atas-ke-bawah lambat gambar.

Gambar tersebut menggambarkan lebih jelas mengenai perbedaan/perbandingan dari baseline & progressive jpeg.

  • Baseline : image ditampilkan per baris dari atas ke bawah hingga gambar selesai di-load
  • Baseline Optimized : hampir sama dengan baseline biasa, namun disini diperlengkap dengan metode encoding huffman
  • Progressive : kamu bisa memilih tingkat scanning dari 3 hingga 5 fase, itu adalah fase scanning gambar hingga selesai load gambar tersebut

Konfigurasi Apache PHP Koneksi Dengan Oracle Database

Selamat siang semua :D, kali ini aku (yang barusan belajar ulang tentang Oracle) mencoba berbagi pengalaman mengenai Database Oracle dan Apache PHP MySql bagaimana bisa saling terhubung/terkoneksi di Sistem Operasi Windows. Saat kalian install PHP+Apache atau yang biasanya pake Xampp atau AppServ pasti extension oci8 (suatu extension yang digunakan untuk mengkomunikasikan Apache+PHP dengan Database Oracle) belum terinstall, namun sudah ada di dalam file konfigurasi PHPnya. Nah, bagaimana cara install / meng-koneksikan Database Oracle dengan Apache PHP ?

Berikut adalah langkah-langkah yang harus ditempuh (berlaku bagi pengguna Xampp maupun AppServ) :

  1. Pastikan Oracle Database server dan Webserver (PHP, Apache) kalian sudah diinstal dan berjalan dengan baik.
  2. Setelah itu silahkan kalian download Instant Oracle Client. Sesuaikan dengan PC kalian dan sesuaikan dengan versi berapa Oracle Database kalian. Juga tidak lupa sesuaikan kebutuhan Oracle Client nya, karena banyak versi. Ada yang Basic, Basic Lite dan sebagainya.
  3. Setelah selesai download, extract file tadi ke drive C:. Misalkan hasil extractnya jadi seperti ini C:\instantclient_10_2
  4. Setelah itu buka Environment Variables di Account kalian. Disitu ada dua area, yang satu untuk environment variables user, yang satunya lagi untuk system. Fokus di Environment Variables User saja.
  5. Disitu ada Variable PATH, edit variable tadi, tambahkan path yang sesuai dengan hasil extract file Instant Client Oracle tadi yaitu “C:\instantclient_10_2”
  6. Setelah itu OK. Kemudian mari kita masuk ke folder hasil extract tadi, disana ada file oraociei10.dll, orannzsbb10.dll, oci.dll. Nah 3 file tersebut copy ke dalam folder Apache kalian (C:\AppServ\Apache2.2\bin) atau bisa kalian sesuaikan dengan PATH dimana kalian install Apache.
  7. Kemudian, sekarang buka file php.ini yang ada di C:\Windows\php.ini, cari kata extension=php_oci8.dll. Hilangkan tanda “;” semicolon yang ada di depannya. Setelah itu save file tersebut.
  8. Terakhir, tinggal restart service Apache nya 🙂

Dan,,,, sekarang coba cek di phpinfo(), tadaaaaa… bisa kan :mrgreen:. Selamat mencoba!

Oracle yang aku pakai adalah Oracle 10g XE.

Apa itu AOP?

Aspect Oriented Programming (AOP)

Secara sederhana AOP (Aspect Oriented Programming) merupakan sebuah metodologi sebagai tambahan untuk melengkapi metodologi OOP, nah mengapa ?
Salah satu alasannya adalah OOP dianggap tidak cukup baik untuk memecahkan masalah crosscutting concern yang umumnya digunakan untuk aplikasi enterprise.
Apa itu crosscutting concern ? Contoh umum crosscutting concern adalah logging, validation, transaction dan sebagainya.

Perbedaan OOP dan AOP

Misal, saya ingin membuat sebuah aplikasi kalkulator untuk melakukan operasi kali dan bagi.
Pertama-tama saya akan membuat sebuah interface untuk melakukan proses penghitungan tersebut. Continue reading

Contoh Program PCD (Pengolahan Citra Digital)

Selamat pagi semuanya 🙂 semoga dalam keadaan sehat selalu

digital image processing

Pagi ini aku mau berbagi pengetahuan baru mengenai pengolahan citra digital. Disini saya memberi contohnya adalah program untuk menampilkan Histogram dari sebuah image/gambar, mengatur Brightness/Kecerahan gambar, Contrast, efek Negasi/Negate, dan efek Grayscale dari suatu gambar/image yang ditentukan. Program yang akan aku bagikan kali ini menggunakan bahasa pemrograman PHP :).

Dalam melakukan olah gambar, pertama kita harus bisa bagaimana cara mengambil pixel dari suatu gambar, mengetahui komposisi warna RGB dari pixel tersebut, kemudian terakhir harus bisa memberi warna baru/memberi nilai integer baru kepada pixel yang sudah kita mabil kemudian disusun menjadi gambar/image baru sesuai matriks/ukuran resolusi gambar awal.

Oke, pertama akan aku tunjukkan bagaiman cara mengambil pixel dari suatu gambar menggunakan PHP :

$imaged 	= "contoh_gambar.jpg";
$images 	= imagecreatefromjpeg($imaged);
$image_width 	= imagesx($images);
$image_height 	= imagesy($images);
$total_xy 	= $image_width*$image_height;

for($y=0;$y<$image_height;$y++){
	for($x=0;$x<$image_width;$x++){
		# mengambil komposisi warna RGB gambar
		$rgb = imagecolorat($images, $x, $y);
		# mengambil warna Red
		$r = ($rgb >> 16) & 0xFF;
		# mengambil warna Green
		$g = ($rgb >> 8) & 0xFF;
		# mengambil warna Blue
		$b = $rgb & 0xFF;
		# jadi komposisi RGB pixelnya adalah $r $g $b
		# masing-masing bernilai integer
	}
}

Kemudian, script berikut ini adalah contoh untuk mengatur gambar dengan komposisi pixel RGB yang baru, fungsi ini dapat diterapkan untuk pengaturan grayscale, brightness dan sebagainya.

$img = "contoh_gambar.jpg";
$images_source = imagecreatefromjpeg($img);
for($x=0;$x<imagesx($images_source);++$x){
	for($y=0;$y<imagesy($images_source);++$y){
        $index 		= imagecolorat($images_source, $x, $y);
        $rgb   		= imagecolorsforindex($images_source, $index);
		# mengambil warna R menggunakan fungsi imagecolorforindex
		# fungsi tsb hampir sama dengan imagecolorat
		# bedanya hanya return value
		$c_red 		= $rgb['red'];
		$c_green 	= $rgb['green'];
		$c_blue 	= $rgb['blue'];
		# ini berfungsi untuk menyusun komposisi warna baru untuk RGB
        $color 		= imagecolorallocate($images_source, $c_red, $c_green, $c_blue);
		# setelah komposisi baru terbentuk
		# kemudian ditanamkan ke gambar baru
		imagesetpixel($images_source, $x, $y, $color);
	}
}
imagejpeg($images_source, "gambar_baru.jpg", 100);
imagedestroy($images_source);

Cukup mudah bukan :mrgreen:, semoga dari potongan kode diatas bisa memberi pencerahan bagi teman-teman. Untuk bagaiman cara bisa melakukan edit brightness, grayscale dan lainnya, tergantung rumus pada masing-masing efek. ( tiap efek ada rumus matematika nya lho…. 😀 )

Oke, untuk script contoh program pengolaha citra digital yang sudah saya janjikan diatas, silahka download disini

Untuk request password silahkan hubungi saya melalui email atau nomor handphone :D, sengaja aku password karena ini merupakan tugasku, dan kebetulan belum dikumpulkan ke dosen,hehehe.