Showing posts with label PHP. Show all posts
Showing posts with label PHP. Show all posts

Friday, 8 August 2014

Symfony2 for Beginner Part 6 - Generate Crud

Hai Readers ,
Bagaimana belajarnyaa? Seru kan belajar symfony :)
Kali ini yuk kita lanjutkan tutorial nya.
Nah , project sekarang asik lo karena kita membuat simple project yakni CRUD project hihi

Kalo di symfony pembuatan CRUD sangatlah gampang. Yuk langsung aja.

Step 1.
Buat database dengan nama : symfony_3
Insertkan field seperti dibawah ini :


Step 2.
Setelah membuat database, kita lanjutkan ke terminal.
Masuk ke /webrootKalian/NamaFolderSymfony

Step 3.
Ketikkan
php app/console generate:bundle



Step 4.
Setelah membuat bundle sukses, yuk kita membuat file ORM untuk membuat field-field di view nya.

Ketikkan
php app/console doctrine:mapping:import --force CrudNewsBundle xml


Step 5.
Setelah berhasil, kita meminta Doctrine untuk membangunkan relasi class entitas
Ketikkan
php app/console doctrine:mapping:convert annotation ./src
php app/console doctrine:generate:entities CrudNewsBundle



Step 6.
Dibagian ini, kita men-generate CRUD


Step 7.
Untuk menjalankannya, masuk ke app/config/routing.yml
Ganti script menjadi seperti dibawah ini :


Step 8.
Cek browser ketik http://localhost/semangat/Symfony/web/app_dev.php/news/


yeay, gimana? Punya kalian kagak ada errornya kan? :)
Thanks for visited my blog :)
Semoga bermanfaat :)

Friday, 1 August 2014

Symfony2 for Beginner Part 5 - Create a page

Hello sahabat beautiful Thing ! Hello para pemulanya Symfony :)
Yuk kita belajar lagi tentang Symfony.
Kali ini , kita belajar tentang cara membuat sebuah Page di Symfony2.
Ternyata gampang banget kok buatnya.
Langsung aja deh

Step 1.
Cek pada app/config/routing.yml
Apa dia sudah membentuk sebuah bundle apa belum? Kalo routing.yml kosong, silahkan membuat bundle terlebih dahulu.


Step 2.
Setelah mengecek app/config/routing.yml , buka file src/namespaceKalian/namaBundle/Resource/config
Dan akan muncul seperti ini :


Ubahlah syntax diatas menjadi seperti yang diinginkan untuk mencoba membuat page sendiri, contoh seperti berikut :


Step 3.
Buka file src/namespaceKalian/namaBundle/Controller/DefaultController.php

hapus "$name" dan ", array('name' => $name)"


Step 4. 
Buka file : src/namespaceKalian/namaBundle/Resource/view/Default/index.html.twig
Ubahlah dengan sesuka Kalian.
contoh seperti dibawah ini :


Step 5.
Buka browser, ketik url : webroot/project/app_dev.php/salam

Step 6.
Untuk lebih lanjut, Buka src/namespaceKalian/namaBundle/Resource/config/routing.yml , lalu tambahkan script seperti berikut.


Step 7.
Tambahkan juga script dibawah ini pada src/namespaceKalian/namaBundle/Controller/DefaultController.php


Step 8. 
Tambahkan juga pada src/namespaceKalian/namaBundle/Resource/view/Default/index.html.twig
contoh seperti berikut :


Step 9. 
Nah, buka browser ketikan webroot/project/app_dev.php/salam

Maka yang muncul seperti ini :

Tambahkan /Palestine pada url . 
Nah liat perubahannya seperti berikut.


Hari ini kita udah belajar membuat Page lhoo.
Yuk ikuti lanjutan tutorialnyaa.
See you ! Salam BeautifulThing!
widyaratnasari

Thursday, 31 July 2014

Symfony2 for Beginner Part 4 - Create a bundle

Hai !
Gimana instalasi symfonynyaa? sukses kah??
kalo sudah sukses yuk mari kita buat bundle
Bundle ? Apa itu bundle ?
Bundle adalah sebuah direktori yang terstruktur, digunakan untuk menyimpan resource (sumber daya) seperti class Controller, View, Model, CSS, JS, dan file configurasi yang lainnya pada symfony.
Sudah paham kan? Yuk, mulai saja membuat bundle nya :)

Step 1.
Masuk ke directory root kalian menggunakan terminal / command prompt. /var/www/html/namaProject

Step 2.
Ketikkan : php app/console generate:bundle
Dan ikutilah langkah-langkanyaa.




Nah , kalian berhasil apa tidakkk ?

Yuk ikuti terus tutorial ini . Semoga bermanfaat . Xoxo :)

Wednesday, 16 July 2014

Symfony2 for Beginner Part 3 - Exploring Symfony's Code

Hai readers setiaku !
Apa kabar nih ? Gimana latihan Symfony nya? Kalo belum tahu Symfony itu makanan apa , yuk baca dulu Latihan 1 - Symfony dan Latihan 2 - Symfony

Setelah kemarin kita latihan tentang instalasi dan konfigurasi, yuk kita pelajari lagi tentang Symfony Code ..

Pada pandangan pertama, ketika kita membuka folder Symfony , kita pasti akan bertanya-tanya dengan muka sedikit terkejut. Karena di folder Symfony ini banyak terdapat folder yang menakutkan yang berisi file-file php atau html atau keduanya atau file-file lainnya.
Seram banget kaan ?
tapi tenang saja, yuk mari bahas satu persatu !

POLA MVC

Inget tentang MVC ?
Symfony didasarkan pada pola desain klasik web yang dikenal sebagai arsitektur MVC, yang terdiri dari tiga tingkatan :
  1. Model :  mewakili informasi yang mana aplikasi beroperasi dengan logika yang berisi query.
  2. View : membuat model ke dalam halaman web yang cocok untuk interaksi dengan pengguna.
  3. Controller : merespon aksi pemakai dan mengaplikasikan perubahan pada model ataupun view. 
Arsitektur MVC memisahkan logika bisnis (model) dan presentasi (tampilan), sehingga menghasilkan kemudahan pemeliharaan. Misalnya, jika aplikasi Anda harus bisa berjalan pada browser web standar dan perangkat genggam, Anda hanya perlu mengubah View. Anda dapat membiarkan controller dan model sesuai aslinya. Controller membantu menyembunyikan detail dari protokol yang digunakan untuk request (HTTP, mode konsol, mail, dan sebagainya) dari model dan view. Dan model mengabstraksi logika data, yang membuat pandangan dan independen tindakan, misalnya, jenis database yang digunakan oleh aplikasi. 

Penggunaan MVC di Symfony 

  












Pertama-tama, front controller dan tata letak yang umum untuk semua tindakan dalam sebuah aplikasi. Kita dapat memiliki beberapa controller dan layout, tetapi kita hanya perlu satu masing-masing. Front controller adalah komponen logika MVC murni, dan kita tidak akan pernah perlu menulis satu pun, karena symfony akan menghasilkan untuk kita.

Kabar baik lainnya adalah bahwa kelas model juga diciptakan otomatis, berdasarkan struktur data kita. Ini adalah pekerjaan dari perpustakaan Propel, yang menyediakan kerangka kelas dan kode generasi. Jika Propel menemukan kendala utama atau bidang tanggal, maka akan memberikan accessor dan mutator metode khusus yang akan membuat manipulasi data. Dan abstraksi database sama sekali tidak terlihat oleh kita, karena ditangani oleh komponen lain, yang disebut Creole. Jadi jika kita memutuskan untuk mengubah database pada satu saat, kita tidak memiliki kode untuk menulis ulang. Kita hanya perlu mengubah parameter konfigurasi.

Dan hal terakhir adalah logika view dapat dengan mudah diterjemahkan sebagai file konfigurasi sederhana, tanpa perlu pengetahuan pemrograman.
 
 


Pada symfony, sebuah proyek merupakan satu set layanan dan operasi yang tersedia di bawah nama domain yang diberikan dan berbagi obyek model yang sama.

Di dalam sebuah proyek, operasi dikelompokkan secara logis ke dalam aplikasi. Sebuah aplikasi biasanya dapat berjalan secara independen dari aplikasi lain dari proyek yang sama. Dalam kebanyakan kasus, sebuah proyek berisi dua aplikasi yaitu satu untuk front-office dan satu untuk back-office, serta mempunyai database yang sama. Tapi kita juga dapat memiliki satu proyek yang mengandung banyak situs mini, dengan masing-masing situs sebagai aplikasi yang berbeda. Perhatikan bahwa hyperlink antara aplikasi harus dalam bentuk absolut.

Setiap aplikasi merupakan seperangkat satu atau lebih modul. Sebuah modul biasanya mewakili sebuah halaman atau sekelompok halaman dengan tujuan yang sama. Sebagai contoh, Anda mungkin memiliki modul rumah, artikel, bantuan, shoppingCart, akun, dan sebagainya.

Modul melakukan aksi, yang mewakili berbagai tindakan yang dapat dilakukan dalam modul. Sebagai contoh, modul shoppingCart dapat memiliki add, show, dan memperbarui tindakan. Secara umum, tindakan dapat digambarkan dengan kata kerja. Berurusan dengan tindakan hampir seperti berurusan dengan halaman dalam sebuah aplikasi web klasik, meskipun dua action dapat menghasilkan halaman yang sama (misalnya, menambahkan komentar ke posting dalam weblog akan menampilkan posting dengan komentar baru)

  
Semoga bacaan diatas membantu memahami APA YANG DIMAKSUD MVC DI SYMFONY .
Salam BeautifulThing! 
widyaratnasari



 

Thursday, 10 July 2014

Symfony2 for Beginner Part 2 - Instalation and Configuration menggunakan Composer dan Command Line interface


Belum mengenal symfony2, yuk baca symfony2 for beginner part 1 :)
kali ini kita akan belajar tentang cara instalasi dan konfigurasi Symfony2 !

Symfony sendiri memiliki libraries yang utama yang mengatur proses request, routing, hingga respon yang disebut Symfony Component. Symfony Component ini dipakai oleh beberapa Framework lainnya seperti Laravel dan Drupal - See more at: http://blog.khodam.org/symfony-2/symfony-framework-instalation-using-composer-and-cli.php#sthash.LJhifTwZ.dpuf
Symfony sendiri memiliki libraries yang utama yang mengatur proses request, routing, hingga respon yang disebut Symfony Component. Symfony Component ini dipakai oleh beberapa Framework lainnya seperti Laravel dan Drupal - See more at: http://blog.khodam.org/symfony-2/symfony-framework-instalation-using-composer-and-cli.php#sthash.LJhifTwZ.dpuf
Symfony sendiri memiliki libraries yang utama yang mengatur proses request, routing, hingga respon yang disebut Symfony Component. Symfony Component ini dipakai oleh beberapa Framework lainnya seperti Laravel dan Drupal - See more at: http://blog.khodam.org/symfony-2/symfony-framework-instalation-using-composer-and-cli.php#sthash.LJhifTwZ.dpuf
Symfony sendiri memiliki libraries yang utama yang mengatur proses request, routing, hingga respon yang disebut Symfony Component. Symfony Component ini dipakai oleh beberapa Framework lainnya seperti Laravel dan Drupal - See more at: http://blog.khodam.org/symfony-2/symfony-framework-instalation-using-composer-and-cli.php#sthash.LJhifTwZ.dpuf
Symfony sendiri memiliki libraries yang utama yang mengatur proses request, routing, hingga respon yang disebut Symfony Component. Symfony Component ini dipakai oleh beberapa Framework lainnya seperti Laravel dan Drupal - See more at: http://blog.khodam.org/symfony-2/symfony-framework-instalation-using-composer-and-cli.php#sthash.LJhifTwZ.dpuf
Symfony sendiri mempunyai libraries yang utama untuk mengatur proses request, routing, hingga respon yang disebut Symfony Component. Symfony Component ini juga dipakai oleh framework yang lumayan keren seperti laravel dan Drupal.

Selain itu, Symfony juga mempunyai profiler yang terletak di footbar dan muncul hanya pada mode development. Dengan profiler kita bisa melihat proses-proses saat request hingga respone, routing yang dieksekusi, memori yang digunakan, dan lain-lain yang sangat membantu kita dalam menentukan optimasi yang kita inginkan.

Penginstalan dan konfigurasi saya memakai linux Ubuntu. Untuk OS lainnya silahkan menyesuaikan yaa hihi

Instalasi versi 1 
  1. Buka Terminal
  2. Pindah ke web root
  3. $ cd var/www
  4. Install composer
  5.  $ curl -s https://getcomposer.org/installer | php 
  6. Install Symfony Framework
  7. //Tempat Instalasi di /var/www/Symfony
    $ php composer.phar create-project symfony/framework-standard-edition ./Symfony 2.1.7
  8. Cek config server
  9. //Sesuaikan config dengan kebutuhan Symfony, install segala yang diperlukan terlebih dahulu :-)
    http://localhost/Symfony/web/config.php
  10. Dan cek pada browser
  11. http://localhost/Symfony/web/app_dev.php
  12. Cobain demonya
     http://localhost/Symfony/web/app_dev.php/demo/hello/Ganteng 
Instalasi versi 2
  1. Install Composer

  2. sudo apt-get install curl git
    curl -s https://getcomposer.org/installer | php
  3. Install Symfony2 standart edition

  4. sudo apt-get install php5-cli
    php composer.phar create-project symfony/framework-standard-edition ./Symfony2 2.2.1
  5. (untuk OS yang support symbolic Link) Install assets menggunakan symbolic Link pada composer .json
  6. "extra": {
        "symfony-app-dir": "app",
        "symfony-web-dir": "web",
        "symfony-assets-install": "symlink"//tambahkan ini :-)
    }
  7. Setting permission
    sudo apt-get install acl
  8. sudo setfacl -R -m u:www-data:rwX -m u:`whoami`:rwX app/cache app/logs
    sudo setfacl -dR -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs
  9. Check konfigurasi PHP dan sesuaikan

  10. http://localhost/Symfony2/web/config.php
  11. Buka welcome page
  12. http://localhost/Symfony2/web/app_dev.php
  13. Hello world (demo)
  14. http://localhost/Symfony/web/app_dev.php/demo/hello/Symfony2
    Symfony merupakan modular based framework dan decoupling loo , yang artinya komponen dan libraries di dalam symfony dapat dibongkar pasang sesuai hati kita. Tapi untuk para pemula seperti kita tidak dianjurkan karena pemula bisa bongkar gak bisa pasang :p

    Sekian tutorial instalasi dan konfigurasi Symfony2 ini , Semoga Bermanfaat :)
    Salam BeautifulThing!

    sumber : http://blog.khodam.org/symfony-2/symfony-framework-instalation-using-composer-and-cli.php
    Symfony sendiri memiliki libraries yang utama yang mengatur proses request, routing, hingga respon yang disebut Symfony Component. Symfony Component ini dipakai oleh beberapa Framework lainnya seperti Laravel dan Drupal - See more at: http://blog.khodam.org/symfony-2/symfony-framework-instalation-using-composer-and-cli.php#sthash.LJhifTwZ.dpuf

    Symfony2 for Beginner Part 1 - What's is Symfony Framework?




    Symfony adalah sebuah framework MVC untuk pengembangan aplikasi berbasis web. Symfony merupakan salah satu framework open source.
    Pada awalnya, Symfony dipahami oleh lembaga SensioLabs agen interaktif untuk pengembangan situs web untuk pelanggannya sendiri.

    Symfony pertama diterbitkan pada tahun 2005 dibawah lisensi MIT Open Source. Dan pada saat itu, Symfony merupakan salah satu framework kerja yang terkemuka untuk pengembangan bahasa pemrograman PHP.

    Tidak hanya didukung oleh SensioLabs , Symfony juga mempunyai banyak dukungan dari berbagai komunitas besar seperti dukungan dari komunitas mailing list, IRC, dll. Juga mendapat dukungan dari professional seperti konsultasi, pelatihan, dll.

    Symfony telah mengambangkan berbagai situs dan aplikasi bergengsi seperti yahoo! , dailyMotion , opensky.com , exercise.com , phpDB , atau Drupal.

    Tujuan Symfony :
    1. Mempercepat penciptaan dan pemeliharaan aplikasi web dan untuk menggantikan tugas-tugas coding berulang-ulang. 
    2. Membangun aplikasi yang kuat dalam konteks perusahaan. 
    3. Memberikan pengembang kontrol penuh atas konfigurasi.
    Symfony dibundel dengan alat tambahan untuk membantu pengembangan , pengujian debug dan proyek dokumen .


    Symfony sangat terinspirasi oleh Framework Aplikasi Web lainnya seperti Ruby On Rails, Django, dan Spring.
     
    Symfony membuat penggunaan PHP proyek open-source yang ada sebagai bagian dari kerangka kerjanya, termasuk:

    • Propel or Doctrine as Object Relational Mapping layers
    • PDO Database abstraction layer (1.1, with Doctrine and Propel 1.3)
    • PHPUnit, sebuah unit pengecekan framework
    • Twig, a templating engine
    • Swift Mailer, an e-mail library

    Symfony juga memanfaatkan komponennya sendiri yang tersedia secara gratis di situs Symfony Component untuk berbagai proyek lainnya, seperti :
    • Symfony YAML , a YAML parser based upon Spyc
    • Symfony Event Dispatcher
    • Symfony Dependency Injector, a Dependency Injector
    • Symfony Templating, a templating engine

    Monday, 7 January 2013

    Dealing with inputs from HTML forms

    I want to use HTML/PHP so that users can select how to order and filter the data provided to them. However I've been having a few issues with different steps. My data is basically a list of people with dates of birth and dates of death (latter is NULL if living). 


    1. 
    I'm having trouble with MySQL recognising a variable from PHP as a date. I have the input from a text field being sent to $date (checked this and the value is being stored here), and I want to use this in the query so that it calculates ages as of $date (though only if $date < date of death). 

    $date = mysql_real_escape_string($_GET['date']); 

    I had been using the following to calculate ages from birth-death or birth-now (if living) in the query. This formula works: 

    DATE_FORMAT(ifnull(date_death,Curdate()), '%Y') - DATE_FORMAT(date_birth, '%Y') - (DATE_FORMAT(ifnull(date_death,Curdate()), '00-%m-%d') < DATE_FORMAT(date_birth, '00-%m-%d')) AS age 

    Which I changed to the following hoping to calculate ages from birth-$date (ie. current age for people alive on $date) or birth-death (for people already deceased by $date): 

    DATE_FORMAT(if($date>date_death,date_death,$date), '%Y') - DATE_FORMAT(date_birth, '%Y') - (DATE_FORMAT(if($date>date_death,date_death,$date), '00-%m-%d') < DATE_FORMAT(date_birth, '00-%m-%d')) AS age 

    However, the age column just ends up completely blank, and I don't understand why. I changed Curdate() in the first formula to $date and it results in blank values. $date is specified before the query, and when echoing $date, it prints the date (which is in the format YYYY-MM-DD (as are date_birth and date_death)). Could it be that MySQL isn't recognising $date as a date even though it's in the correct format? 


    2. 
    My idea was that the users would select various radio buttons/dropdowns/checkboxes/text input to provide the information about how the ORDER BY and WHERE parts of the query are specified. I had no problem with the ORDER BY since they may only select one option. However for WHERE, the users may have multiple options selected and I'm not sure how to combine these (especially when dealing with multiple values from checkboxes. 

    $sort = $_GET['sort']; 
    if($sort == "dob") 
    $sorttype = "date_birth"; 
    else if($sort == "dod") 
    $sorttype = "dodliving"; 
    else if($sort == "age") 
    $sorttype = "totaldays"; 
    $order = $_GET['order']; 
    if($order == "a") 
    $ordertype = "ASC"; 
    else if($order == "d") 
    $ordertype = "DESC"; 

    $where = ""; 
    $orderby = "ORDER BY $sorttype $ordertype"; 
    $query = "SELECT * FROM everyone $where $orderby "; 

    And my html form: 
    <form action="search.php" method="get"> 
    <label>Sort by: </label> 
    <input type="radio" name="sort" value="dob">dob 
    <input type="radio" name="sort" value="dod">dod 
    <input type="radio" name="sort" value="age">age 
    <label>Order: </label> 
    <input type="radio" name="order" value="a">ASC 
    <input type="radio" name="order" value="d">DESC 
    <label>Filters, Age: </label> 
    <input type="checkbox" name="age" value="50">50 
    <input type="checkbox" name="age" value="51">51 
    <input type="checkbox" name="age" value="52">52 
    <input type="checkbox" name="age" value="53">53 
    <input type="checkbox" name="age" value="54">54 
    <input type="checkbox" name="age" value="55">55 
    <input name="submit" type="submit" /> 
    </form> 

    So, for example if someone selected 50, 54 and 55, I'd want to have the output as age=('50' OR '54' OR '55'), but then leave the open possibility for other factors to be added to build the query. eg. another filter might be male/female, in which case I'd want 'WHERE age=('50' OR '54' OR '55') AND sex='F'. None of the groups should have no option selected (though I'd need to add a clause so that if none were selected, it either filters everything out). 

    The problem with the checkboxes for me is that I have multiple values being input for one thing. The options for ORDER BY were all mutually exclusive so it was no problem. But I don't know how to deal with this for checkboxes. I've looked around and some people suggest using arrays. I did try, but the suggestions I read didn't seem to work for me. 


    3. 
    Lastly, a minor problem. I have some columns with a URL and I want to display this as a HTML link in the table that is output. The only problem is that some rows are NULL in this column, so when I decided to put the HTML tags around the column value, it created blank links <a href="">Link</a>. If there's no link in the database for that entry, then I don't want there to be a link at all in the output. 

    I'm sorry if any mistakes. Thank you for your visiting ☺
    regret,

    beautiful thing!

    Saturday, 1 September 2012

    Script PHP : Konversi Bilangan Desimal ke Hexa, Biner, dan Oktal

    Nah, readers kita sekarang akan belajar tentang Konversi Bilangan Desimal ke Hexa, Biner, dan Oktal tapi mengunakan PHP kalau kemarin kan menggunakan JAVA . Nah gini kronologinya kita harus memasukkan data dulu yaitu nama dan jenis kelamin. Data itu harus lengkap. Kemudian, setelah masuk ke Konversi Bilangan , kita diharuskan untuk mengisi data. Dan data tersebut juga harus lengkap.


    Friday, 10 August 2012

    Script PHP : Konversi Bilangan Desimal ke Biner





    Konversi Bilangan Desimal ke Oktal

    Hai readers, selain Konversi Desimal ke Hexadesimal ada juga Konversi Desimal ke Oktal
    Ini adalah coding PHP webpage nya :






    Konversi Bilangan Desimal ke Hexadesimal



    Ini adalah coding PHP untuk menampikan Konversi Bilangan Desimal ke Hexadesimal

    Wednesday, 1 August 2012

    Belajar Array di PHP


    Array adalah semacam variabel yang mempunyai index/key, karena terindex, maka mudah bagi kita untuk mengolah variabel yang bertipe array.
    Index/key array secara default dimulai dari nol (0), kecuali anda langsung menentukannya sendiri, seperti contoh #1 di bawah

    Bagaimana cara membuat dan menampilkan array?
    Ada berbagai macam cara membuat dan menampilkan array

    Membuat Aplikasi PHP Sederhana -- Kalkulator

    Hai readers, sekarang kita coba buat aplikasi sederhana lagi yaaa. . 
    Kita coba buat aplikasi kalkulator dengan PHP. ^_^
    Ini code nya readers, mohon maaf kalo cuma print screen soalnya kita sama-sama belajar ^_^

    Tutorial PHP (mengubah nilai uang(dollar)-kalimat)


    Tutorial php membuat aplikasi sederhana yaitu mengubah nilai uang (dollar) menjadi sebuah kalimat terbilang, misalnya dari suatu inputan bernilai angka 5000 maka setelah dikonversi menjadi sebuah kalimat “five thousand dollars”. bagaimana cara membuatnya?

    Tuesday, 31 July 2012

    about PHP


    PHP dikatakan sebagai sebuah server-side embedded script language artinya sintaks-sintaks dan perintah yang kita berikan akan sepenuhnya dijalankan oleh server tetapi disertakan pada halaman HTML biasa. Aplikasi-aplikasi yang dibangun oleh PHP pada umumnya akan memberikan hasil pada web browser, tetapi prosesnya secara keseluruhan dijalankan di server.
    Pada prinsipnya server akan bekerja apabila ada permintaan dari client. Dalam hal ini client menggunakan kode-kode PHP untuk mengirimkan permintaan ke server (dapat dilihat pada gambar dibawah). 

    Friday, 20 July 2012

    Pemrograman-PHP



    Sedikit tentang Pemrograman-PHP



    hehehe disini saya akan menulis tentang secuil pengertian PHP . Jika ini bermanfaat buat kalian , yaa alhamdulillah :)
    Jika ada salah pengertian saya minta maaf ya guys :)