Penggunaan fungsi CODEPOINT pada PHP

PHP adalah bahasa pemrograman yang berjalan di server, atau server-script scripting utamanya digunakan untuk pengembangan website tapi digunakan pula untuk berbagai tujuan dalam programming lainnya. Pertama kali diperkenalkan oleh Rasmus Lerdorf pada tahun 1994, dan kemudian dengan cepat menjadi sangat populer. PHP adalah akronim berulang dari, PHP: Hypertext Preprocessing.

Dan saat ini versi terakhir yang dirilis adalah PHP 7. Dirilis tahun 2015, PHP 7 adalah sebuah lompatan besar dengan diperkenalkannya benyak fitur baru dan peningkatan kinerja. Ada juga fungsi-fungsi yang dihapus, sehingga membuat proses upgrade menjadi tidak mudah. Seperti kita ketahui, PHP 5 dirilis pada tahun 2004 dan selama lebih dari 10 tahun tidak ada versi mayor yang dirilis. Tapi kemana PHP 6? PHP 6 tidak pernah dirilis, dan kemudian langsung loncat ke versi 7. Alasannya, PHP 6 tidak pernah mencapai versi yang stabil, terlalu banyak sumber daya yang tersedia. Sehingga komunitas PHP memilih PHP 5.6 langsung ke PHP 7.

Kemudian apa yang membuat PHP 7 sangat menarik saat ini?

Performa Yang Lebih Baik.

PHP 7 mengalami perbaikan yang sangat signifikan dalam hal performa dibandingkan dengan versi sebelumnya. Ketika diuji, PHP 7 lebih cepat 2 kali lipat dari PHP 5 secara rata-rata. Begitupun dalam hal konsumsi memori yang 50% lebih efesien dibandingkan sebelumnya. Sehingga ini membuat PHP 7 menjadi saingan utama dari Facebook HHVM. Hasil benchmark bisa dilihat di sini.

Parameter Skalar dan Tipe Return

Selama ini programmer PHP mendeklarasikan tipe dari nilai return dalam fungsi. Secara default, PHP 7 akan memungkinkan para programmer untuk menyatakan apa nilai return dari fungsi yang diharapkan untuk mengembalikan nilai. Seperti contoh :

public function isValidUser(int $id) : bool 
   {
     return isset($this->users[$id]) ? true : false;
   }

Operator Spacehip

Operator spaceship <=> memungkinkan tiga cara perbandingan untuk 2 nilai. Tidak hanya mencari nilai sama, tetapi juga mencari nilai yang lebih besar dan yang lebih kecil. Seperti ini :

switch ($bar <=> $foo) {
    case 0:
        echo '$bar and $foo are equal';
    case -1:
        echo '$foo is bigger';
    case 1:
        echo '$bar is bigger';
}

Lebih lengkapnya bisa di baca di sini.

Penambahan Fitur

Saya hanya merangkum sedikit :

  1. Abstract Syntax Tree : Perubahan basar pada PHP core yang membuat parsing kode PHP menjadi lebih mudah, mengurangi kesalahan dan salah satu cara membuat sesuatu yang lebih baik di masa yang akan datang.
  2. Null Coalesce Operator : Penyatuan operator or, yang mengembalikan operan pertama jika ada atau null.
    //Sebelum PHP7:
    $id = isset($_GET['id']) ? $_GET['id'] : null;
    
    //Sesudah PHP7:
    $id = $_GET['id'] ?? null;
  3. Anonymous Classes : Bisa digunakan dalam kebutuhan jangka pendek, sangat mudah dibuat dan digunakan seperti objek reguler.
    $pusher->setLogger(new class {
      public function log($msg) {
        print_r($msg . "\n");
      }
    });
  4. Unicode Codepoint Escape Syntax : PHP 7 memperkenalkan sintak untuk mencetak unicode codepoint.
    echo "\u{1F602}";

Apa Yang Hilang?

Ada beberapa fungsi atau kode yang tidak bisa digunakan lagi, seperti :

  1. Ekstensi mysql : Sehingga kita tidak bisa lagi menggunakan fungsi-fungsi mysql_*, karena memang dari sebelumnya telah disarankan untuk beralih ke mysqli atau PDO.
  2. Multiple default pada switch: Hanya bisa menggunakan 1 default pada fungsi switch.
  3. Dukungan tag ASP (<%) dan tag skrip () telah dihapus berarti bahwa Anda tidak dapat menggunakan tag tersebut di PHP.

Untuk panduan upgrade ke PHP 7, bisa dibaca secara lebih detail di sini.

Saya sudah mengupgrade ke PHP 7 untuk kebutuhan di kantor, dimana AWS  Elastic Beanstalk sudah mulai mendukung PHP 7 awal Agustus tahun ini. Hasilnya? Luar Biasa!

Dari Wikipedia bahasa Indonesia, ensiklopedia bebas

Table of Contents

  • Deskripsi[sunting | sunting sumber]
  • Contoh[sunting | sunting sumber]
  • Lihat pula[sunting | sunting sumber]
  • Referensi[sunting | sunting sumber]
  • Pranala luar[sunting | sunting sumber]

UTF-8 (Universal Character Set (UCS) Transformation Format — 8-bit[1]) adalah sebuah pengkodean karakter dengan lebar variabel tertentu (variable-width encoding) yang mewakili setiap karakter komputer (character) dalam himpunan karakter Unicode. Didesain untuk backward compatibility dengan ASCII dan untuk menghindari komplikasi endianness dan byte order mark dalam UTF-16 dan UTF-32.

UTF-8 telah menjadi metode pengkodean karakter (character encoding) yang dominan untuk World Wide Web, meliputi lebih dari setengah jumlah seluruh halaman Web.[2][3][4] Internet Engineering Task Force (IETF) mengharuskan semua protokol Internet untuk mengidentifikasi encoding yang dipakai untuk data karakter, dan pengkodean karakter yang didukung (supported character encoding) untuk menyertakan UTF-8.[5] Internet Mail Consortium (IMC) merekomendasi seluruh program e-mail dapat menayangkan dan membuat e-mail menggunakan UTF-8.[6] UTF-8 juga terus meningkat penggunaannya sebagai default character encoding dalam sistem operasi, bahasa pemrograman, API, dan aplikasi perangkat lunak.

Deskripsi[sunting | sunting sumber]

Desain UTF-8 dapat dilihat di tabel berikut yaitu skema yang asalnya diusulkan oleh Dave Prosser dan selanjutnya dimodifikasi oleh Ken Thompson (x diganti dengan bit dari code point):

Bit
code point
Code point
pertama
Code point
terakhir
Byte dalam
sequence
Byte 1Byte 2Byte 3Byte 4Byte 5Byte 6
  7 U+0000 U+007F 1 0xxxxxxx
11 U+0080 U+07FF 2 110xxxxx 10xxxxxx
16 U+0800 U+FFFF 3 1110xxxx 10xxxxxx 10xxxxxx
21 U+10000 U+1FFFFF 4 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
26 U+200000 U+3FFFFFF 5 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
31 U+4000000 U+7FFFFFFF 6 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

Contoh[sunting | sunting sumber]

Mari melihat bagaimana membuat pengkodean tanda mata uang Euro, €.

  1. 'Unicode code point untuk "€" adalah U+20AC.
  2. Menurut tabel skema di atas, dibutuhkan 3 bita (byte) untuk pengkodean, karena terletak di antara U+0800 dan U+FFFF.
  3. Kode heksadesimal 20AC adalah sama dengan kode biner (binary) 0010000010101100. Dua angka nol di depan ditambahkan karena, seperti dalam tabel, suatu pengkodean tiga-bita (three-byte encoding) membutuhkan tepat enam belas bit dari the code point.
  4. Karena berupa pengkodean tiga-bita, bita pendahulu dimulai dengan tiga angka "1", kemudian satu angkat "0" (1110...)
  5. Bit sisanya dari bita ini diambil dari code point (11100010), menyisakan ...000010101100.
  6. Setiap kelanjutan bita dimulai dengan 10 dan dibutuhkan enam bit code point (maka 10000010, lalu 10101100).

Tiga bita11100010 10000010 10101100 dapat ditulis lebih singkat dalam heksadesimal, sebagai E2 82 AC.

Tabel berikut adalah ikhtisar pengubahan ini, juga yang lain dengan panjang berbeda dalam UTF-8. Warna-warna mengindikasikan bagaiman bit dari code point didistribusikan di antara byte-byte UTF-8. Bit tambahan yang ditambahkan oleh proses encoding UTF-8 diberi warna hitam.

Karakter code point biner UTF-8 biner UTF-8 heksadesimal
$ U+0024 0100100 00100100 24
¢ U+00A2 000 10100010 11000010 10100010 C2 A2
U+20AC 00100000 10101100 11100010 10000010 10101100 E2 82 AC
𤭢 U+24B62 00010 01001011 01100010 11110000 10100100 10101101 10100010 F0 A4 AD A2

Lihat pula[sunting | sunting sumber]

  • Alt code
  • Pengkodean karakter
  • Comparison of e-mail clients#Features
  • Comparison of Unicode encodings
  • GB 18030
  • Iconv—a standardized API used to convert between different character encodings
  • ISO/IEC 8859
  • Specials (Unicode block)
  • Unicode
  • Unicode and HTML
  • Universal Character Set
  • UTF-8 in URIs
  • UTF-9 and UTF-18
  • UTF-16/UCS-2

Referensi[sunting | sunting sumber]

  1. ^ "Chapter 2. General Structure". The Unicode Standard (edisi ke-6.0). Mountain View, California, USA: The Unicode Consortium. ISBN 978-1-936213-01-6.
  2. ^ Davis, Mark (28 January 2010). "Unicode nearing 50% of the web". Official Google Blog. Google. Diakses tanggal 5 December 2010.
  3. ^ "UTF-8 Usage Statistics". BuiltWith. Diakses tanggal March 28, 2011.
  4. ^ "Usage of character encodings for websites". W3Techs. Diakses tanggal March 30, 2010.
  5. ^ Alvestrand, H. (1998). "RFC 2277". Internet Engineering Task Force.
  6. ^ "Using International Characters in Internet Mail". Internet Mail Consortium. August 1, 1998. Diarsipkan dari versi asli tanggal 2007-10-26. Diakses tanggal November 8, 2007.

Pranala luar[sunting | sunting sumber]

Ada beberapa definisi UTF-8 dalam berbagai dokumen standar:

  • RFC 3629 / STD 63 (2003), yang menetapkan UTF-8 sebagai elemen protokol Internet standar
  • The Unicode Standard, Version 6.0, §3.9 D92, §3.10 D95 (2011)
  • ISO/IEC 10646:2003 Annex D (2003)

Dokumen-dokumen tersebut menggantikan definisi-definisi yang telah usang dalam karya-karya berikut:

  • ISO/IEC 10646-1:1993 Amendment 2 / Annex R (1996)
  • The Unicode Standard, Version 5.0, §3.9 D92, §3.10 D95 (2007)
  • The Unicode Standard, Version 4.0, §3.9–§3.10 (2003)
  • The Unicode Standard, Version 2.0, Appendix A (1996)
  • RFC 2044 (1996)
  • RFC 2279 (1998)
  • The Unicode Standard, Version 3.0, §2.3 (2000) plus Corrigendum #1: UTF-8 Shortest Form (2000)
  • Unicode Standard Annex #27: Unicode 3.1 (2001)

Semua sama dalam mekanika umum, dengan perbedaan pokok pada topik-topik misalnya mengizinkan range nilai code point dan safe handling untuk invalid input.

  • Original UTF-8 paper (or pdf Diarsipkan 2000-09-17 di Wayback Machine.) for Plan 9 from Bell Labs
  • RFC 5198 defines UTF-8 NFC for Network Interchange
  • UTF-8 test pages by Andreas Prilop Diarsipkan 2017-11-30 di Wayback Machine., Jost Gippert and the World Wide Web Consortium
  • How to configure e-mail clients to send UTF-8 text
  • Unix/Linux: UTF-8/Unicode FAQ, Linux Unicode HOWTO Diarsipkan 2005-04-04 di Wayback Machine., UTF-8 and Gentoo
  • The Unicode/UTF-8-character table displays UTF-8 in a variety of formats (with Unicode and HTML encoding information)
  • Unicode and Multilingual Web Browsers from Alan Wood's Unicode Resources describes support and additional configuration of Unicode/UTF-8 in modern browsers
  • JSP Wiki Browser Compatibility page Diarsipkan 2013-05-24 di Wayback Machine. details specific problems with UTF-8 in older browsers
  • Mathematical Symbols in Unicode Diarsipkan 2008-08-21 di Wayback Machine.
  • Graphical View of UTF-8 in ICU's Converter Explorer

Templat:Unicode navigation Templat:Character encoding