{"id":1169,"date":"2022-03-22T16:14:49","date_gmt":"2022-03-22T09:14:49","guid":{"rendered":"https:\/\/duniacoding.info\/?p=1169"},"modified":"2022-04-26T14:12:16","modified_gmt":"2022-04-26T07:12:16","slug":"belajar-laravel-import-excel-pada-laravel","status":"publish","type":"post","link":"https:\/\/duniacoding.id\/blog\/belajar-laravel-import-excel-pada-laravel\/","title":{"rendered":"Belajar Laravel 8 #13 : Import Excel pada Laravel 8"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/duniacoding.info\/wp-content\/uploads\/2021\/12\/laravel_logo_icon_170314.png\" alt=\"import-excel-pada-laravel\" class=\"wp-image-762\" width=\"841\" height=\"421\" srcset=\"https:\/\/duniacoding.id\/blog\/wp-content\/uploads\/2021\/12\/laravel_logo_icon_170314.png 512w, https:\/\/duniacoding.id\/blog\/wp-content\/uploads\/2021\/12\/laravel_logo_icon_170314-300x150.png 300w\" sizes=\"(max-width: 841px) 100vw, 841px\" \/><\/figure>\n\n\n\n<p>Okay, setelah sebelumnya kita membuat sebuah Fitur dimana kita bisa <a href=\"https:\/\/duniacoding.info\/belajar-laravel-export-pdf-pada-laravel-part-2\/\" target=\"_blank\" rel=\"noopener\">Export Pdf<\/a> dari Laravel, kali ini kita akan membuat Fitur untuk <code>Import Excel <\/code>pada Laravel. <\/p>\n\n\n\n<p>Nah, Fitur ini tentunya akan memudahkan kita untuk menginput Data yang banyak kedalam Sistem kita, jadi kita tidak harus memasukkan data tersebut satu-persatu. Cukup satu kali <code>Import<\/code>, dan semua Data sudah ter-input di <code>Database <\/code>kita.  <\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Penjelasan Sistem Import Excel pada Laravel<\/strong><\/h2>\n\n\n\n<p>Untuk membuat sistem Import ini, ada beberapa hal yang akan kita lakukan. Pertama, kita akan menginstal <code>Projek Laravel <\/code>kita, setelah itu kita siapkan <code>Database <\/code>dan <code>Tampilannya<\/code>. Setelah selesai <code>Database <\/code>dan <code>Tampilannya<\/code>, kita tinggal install sebuah <code>Liblary <\/code>untuk Import Excel ini dan di-setting sesuai kebutuhan kita. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Praktek<\/strong><\/h2>\n\n\n\n<p>Disini kita akan mempraktekkan sedari instalasi, untuk detail dari instalasi sampai membuat Database bisa kalian lihat di Atikel-artikel sebelumnya.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Instalasi Laravel via Composer <\/strong><\/h3>\n\n\n\n<p>Disini kita bisa install Laravel 8 kita, untuk nama dari Projek yang kita install ini bebas sesuai keinginan Teman-teman. Setelah selesai <code>install<\/code>, jangan lupa langsung buka Folder dimana <code>Projek Laravel <\/code>ini kita <code>install<\/code>. Bisa install dengan syntax dibawah ini.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ncomposer create-project laravel\/laravel:^8.0 import-excel\n<\/pre><\/div>\n\n\n<p>jangan lupa setelah selesai instalasi jalankan Laravel nya ya dengan <code>php artisan serve<\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Install Liblary<\/strong><\/h3>\n\n\n\n<p>Setelah selesai melakukan instalasi Laravel, berikutnya kita akan menginstall Liblary untuk <code>Sistem Import Excel <\/code>kita. Kalian bisa melihat detail dokumentasi dari Liblary ini disini <a href=\"https:\/\/docs.laravel-excel.com\/3.1\/getting-started\/installation.html\" target=\"_blank\" rel=\"noopener\">docs.laravel-excel.com\/3.1\/getting-started\/installation.html<\/a>. Langsung saja, instalasi dengan syntax dibawah ini<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ncomposer require maatwebsite\/excel\n<\/pre><\/div>\n\n\n<p>Setelah selesai instalasi, buka file config\/app.php lalu tambahkan 2 syntax dibawah ini didalam <code>providers <\/code>dan <code>aliases<\/code><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n&#039;providers&#039; =&gt; &#91;\n\n    Maatwebsite\\Excel\\ExcelServiceProvider::class,\n]\n\n&#039;aliases&#039; =&gt; &#91;\n   \n    &#039;Excel&#039; =&gt; Maatwebsite\\Excel\\Facades\\Excel::class,\n]\n<\/pre><\/div>\n\n\n<p>Setelah itu, kalian bisa menjalankan syntax dibawah ini untuk membuat sebuah <code>config <\/code>file khusus untuk excel yhang kalian <code>import <\/code>nanti. File nya akan bernama <code>excel.php<\/code><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nphp artisan vendor:publish --provider=&quot;Maatwebsite\\Excel\\ExcelServiceProvider&quot; --tag=config\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\"><strong>Buat Database<\/strong><\/h3>\n\n\n\n<p>Berikutnya, tentu kita akan membuat dan setting <code>Database <\/code>untuk mealkukan import Excel pada Laravel kita. Lansgung saja pertama buat <code>Database <\/code>dulu dengan nama <code>data_karyawan<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"233\" height=\"99\" src=\"https:\/\/duniacoding.info\/wp-content\/uploads\/2022\/03\/Lar-13-1.png\" alt=\"\" class=\"wp-image-1174\"><\/figure>\n\n\n\n<p>Pastikan kalian mengatur <code>.env<\/code> kalian agar connect ke database yang sudah kita buat<\/p>\n\n\n\n<p>Setelah selesai membuat <code>Database<\/code>, berikutnya kita atur <code>Model<\/code>, <code>Controller<\/code>, <code>View <\/code>dan <code>Migrations Database <\/code>nya.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Setting Model, dan Migrations<\/strong><\/h3>\n\n\n\n<p>Berikutnya, kita akan setting <code>Model <\/code>kita. Tapi sebelum setting jelas kita harus membuat <code>Model <\/code>terlebih dahulu. <code>Model <\/code>yang akan kita buat ini nantinya akan disertai dengan <code>Controller <\/code>dan <code>Migrations<\/code>. <\/p>\n\n\n\n<p>Pastikan teman-teman sudah install Exstensi <code>Laravel Artisan<\/code> lalu kalian cukup klik&nbsp;<code>Ctrl + Shift + P<\/code>. Lalu pilih&nbsp;<code>&gt;Make Model<\/code>, Setelah itu buat Nama Model&nbsp;<code>Employee<\/code>, setelah itu akan ada pilihan untuk membuat&nbsp;<code>Migrations, Resource, dan Factory<\/code>? Kita pilih&nbsp;<code>Yes<\/code>&nbsp;saja. Setelah itu kita sudah memiliki Migrations, Model, dan Controller yang kita butuhkan. <\/p>\n\n\n\n<p>Disini kita akan mulai setting Model terlebih dahulu, cukup tambahkan syntax <code>protected $guarded = ['id']<\/code> saja.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nclass Employee extends Model\n{\n    use HasFactory;\n\n    protected $guarded = &#91;&#039;id&#039;];\n}\n<\/pre><\/div>\n\n\n<p>Setelah itu, kita setting migrations kita. Disini kita akan membuat <code>Data Karyawan (Employee) <\/code>ini, cukup buat berisi Nama dan Pekerjaan saja<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\npublic function up()\n    {\n        Schema::create(&#039;employees&#039;, function (Blueprint $table) {\n            $table-&gt;id();\n            $table-&gt;string(&#039;name&#039;);\n            $table-&gt;string(&#039;works&#039;);\n            $table-&gt;timestamps();\n        });\n    }\n<\/pre><\/div>\n\n\n<p>Nah, apabila sudah jangan lupa jalankan syntax untuk migrasi <code>Database <\/code>kita dengan syntax<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nphp artisan migrate\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\"><strong>Setting Import<\/strong><\/h3>\n\n\n\n<p>Nah, sekarang kita akan terfokus kepada File yang akan kita gunakan untuk Import, File import ini kurang lebih seperti File yang akan kita akses agar Sistem Import Excel pada Laravel kita berjalan. <\/p>\n\n\n\n<p>Pertama, buat terlebih dahulu dengan syntax<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nphp artisan make:import EmployeeImport --model=Employee\n<\/pre><\/div>\n\n\n<p>Setelah itu kalian akan mendapatkan sebuah File baru bernama <code>EmployeeImport.php<\/code>, buka File itu lalau tambahkan syntax didalam <code>return new Employee<\/code> jadi seperti ini<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nreturn new Employee(&#91;\n            &#039;name&#039; =&gt; $row&#91;0],\n            &#039;works&#039; =&gt; $row&#91;1]\n        ]);\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\"><strong>Setting View<\/strong><\/h3>\n\n\n\n<p>Setelah selesai mensetting Import, berikutnya kita kan setting Tampilan atau View. Ditampilan ini akan berisi dua Hal, yang pertama adalah <code>tabel <\/code>untuk menampilkan Data, dan yang kedua adalah <code>Form <\/code>untuk Menginputkan Data. Sekarang, buat file <code>index.blade.php<\/code> didalam <code>views<\/code><\/p>\n\n\n\n<p>index.blade.php<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: xml; title: ; notranslate\" title=\"\">\n&lt;!doctype html&gt;\n&lt;html lang=&quot;en&quot;&gt;\n\n&lt;head&gt;\n    &lt;!-- Required meta tags --&gt;\n    &lt;meta charset=&quot;utf-8&quot;&gt;\n    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;\n\n    &lt;!-- Bootstrap CSS --&gt;\n    &lt;link href=&quot;https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.1.3\/dist\/css\/bootstrap.min.css&quot; rel=&quot;stylesheet&quot;\n        integrity=&quot;sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3&quot; crossorigin=&quot;anonymous&quot;&gt;\n\n    &lt;title&gt;Import Excel&lt;\/title&gt;\n&lt;\/head&gt;\n\n&lt;body&gt;\n    &lt;div class=&quot;container mt-5&quot;&gt;\n        &lt;h1 class=&quot;mt-5 display-4&quot;&gt;Table&lt;\/h1&gt;\n        &lt;table class=&quot;table&quot;&gt;\n            &lt;thead&gt;\n                &lt;tr&gt;\n                    &lt;th scope=&quot;col&quot;&gt;Name&lt;\/th&gt;\n                    &lt;th scope=&quot;col&quot;&gt;Work As&lt;\/th&gt;\n                &lt;\/tr&gt;\n            &lt;\/thead&gt;\n            &lt;tbody&gt;\n                @foreach ($employees as $item)\n                    &lt;tr&gt;\n                        &lt;td&gt;{{ $item-&gt;name }}&lt;\/td&gt;\n                        &lt;td&gt;{{ $item-&gt;works }}&lt;\/td&gt;\n                    &lt;\/tr&gt;\n                @endforeach\n            &lt;\/tbody&gt;\n        &lt;\/table&gt;\n        &lt;div class=&quot;row&quot;&gt;\n            &lt;div class=&quot;col-sm-3&quot;&gt;\n                &lt;form action=&quot;\/&quot; method=&quot;post&quot; enctype=&quot;multipart\/form-data&quot;&gt;\n                    @csrf\n                    &lt;input type=&quot;file&quot; name=&quot;excel&quot; class=&quot;form-control&quot; placeholder=&quot;Recipient&#039;s username&quot;\n                        aria-label=&quot;Recipient&#039;s username&quot; aria-describedby=&quot;button-addon2&quot;&gt;\n                    &lt;button class=&quot;btn btn-primary mt-3&quot; type=&quot;submit&quot; id=&quot;button-addon2&quot;&gt;Import&lt;\/button&gt;\n                &lt;\/form&gt;\n            &lt;\/div&gt;\n        &lt;\/div&gt;\n    &lt;\/div&gt;\n    &lt;script src=&quot;https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.1.3\/dist\/js\/bootstrap.bundle.min.js&quot;\n        integrity=&quot;sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p&quot; crossorigin=&quot;anonymous&quot;&gt;\n    &lt;\/script&gt;\n&lt;\/body&gt;\n\n&lt;\/html&gt;\n<\/pre><\/div>\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"220\" src=\"https:\/\/duniacoding.info\/wp-content\/uploads\/2022\/03\/Lar-13-3-1024x220.png\" alt=\"\" class=\"wp-image-1176\" srcset=\"https:\/\/duniacoding.id\/blog\/wp-content\/uploads\/2022\/03\/Lar-13-3-1024x220.png 1024w, https:\/\/duniacoding.id\/blog\/wp-content\/uploads\/2022\/03\/Lar-13-3-300x64.png 300w, https:\/\/duniacoding.id\/blog\/wp-content\/uploads\/2022\/03\/Lar-13-3-768x165.png 768w, https:\/\/duniacoding.id\/blog\/wp-content\/uploads\/2022\/03\/Lar-13-3.png 1385w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Setting Controller<\/strong><\/h3>\n\n\n\n<p>Nah di Controller ini, kita akan membuat 2 Fungsi. Pertama fungsi untuk menampilkan Tampilan kita, yang kedua adalah fungsi untuk mengakses <code>EmployeeImport <\/code>kita. Kurang lebih akan seperti ini<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\npublic function index()\n    {\n        return view(&#039;index&#039;, &#91;\n            &#039;employees&#039; =&gt; Employee::all()\n        ]);\n    }\n\npublic function import(Request $request)\n    {\n        Excel::import(new EmployeeImport, $request-&gt;excel);\n        return redirect(&#039;\/&#039;);\n    }\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\"><strong>Setting Web.php<\/strong><\/h3>\n\n\n\n<p>Terakhir yang harus kita setting adalah file routes\/web.php, didalam File ini kita akan mengakses link untuk Menampilkan data menggunakan <code>get <\/code>dan mengirim data menggunakan <code>post<\/code>, jangan lupa diarahkan ke <code>Fungsi Controller<\/code> yang kita butuhkan.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nRoute::get(&#039;\/&#039;, &#91;EmployeeController::class, &#039;index&#039;]);\nRoute::post(&#039;\/&#039;, &#91;EmployeeController::class, &#039;import&#039;]);\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\"><strong>Penggunaan<\/strong><\/h2>\n\n\n\n<p>Sekarang kita tinggal mempraktekkan Sistem import excel pada Laravel kita. Ada hal yang harus diperhatikan dalam import excel pada Laravel ini, yaitu isi dari File Excel yang kita Import. <\/p>\n\n\n\n<p>Didalam File Excel yang kita Import, akan berbentuk tabel, dengan detail Row sesuai dengan EmployeeImport kita. Kalau dilihat di EmployeeImport memiliki 2 Row, pertama untuk name, kedua untuk works, detialnya seperti ini<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"232\" height=\"140\" src=\"https:\/\/duniacoding.info\/wp-content\/uploads\/2022\/03\/Lar-13-2.png\" alt=\"\" class=\"wp-image-1175\"><\/figure>\n\n\n\n<p>Jadi Row A untuk name, dan Row B untuk works. Pastikan saat ingin Import tidak salah Row ya.<\/p>\n\n\n\n<p>Selanjutnya tinggal lakukan Import File ini<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"284\" src=\"https:\/\/duniacoding.info\/wp-content\/uploads\/2022\/03\/Lar-13-4-1024x284.png\" alt=\"\" class=\"wp-image-1177\" srcset=\"https:\/\/duniacoding.id\/blog\/wp-content\/uploads\/2022\/03\/Lar-13-4-1024x284.png 1024w, https:\/\/duniacoding.id\/blog\/wp-content\/uploads\/2022\/03\/Lar-13-4-300x83.png 300w, https:\/\/duniacoding.id\/blog\/wp-content\/uploads\/2022\/03\/Lar-13-4-768x213.png 768w, https:\/\/duniacoding.id\/blog\/wp-content\/uploads\/2022\/03\/Lar-13-4.png 1347w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Okay, setelah sebelumnya kita membuat sebuah Fitur dimana kita bisa Export Pdf dari Laravel, kali ini kita akan membuat Fitur untuk Import Excel pada Laravel. Nah, Fitur ini tentunya akan memudahkan&#46;&#46;&#46;<\/p>\n","protected":false},"author":2,"featured_media":762,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[176,93,94,49],"class_list":["post-1169","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorial","tag-import","tag-laravel","tag-laravel-8","tag-tutorial"],"_links":{"self":[{"href":"https:\/\/duniacoding.id\/blog\/wp-json\/wp\/v2\/posts\/1169","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/duniacoding.id\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/duniacoding.id\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/duniacoding.id\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/duniacoding.id\/blog\/wp-json\/wp\/v2\/comments?post=1169"}],"version-history":[{"count":3,"href":"https:\/\/duniacoding.id\/blog\/wp-json\/wp\/v2\/posts\/1169\/revisions"}],"predecessor-version":[{"id":1314,"href":"https:\/\/duniacoding.id\/blog\/wp-json\/wp\/v2\/posts\/1169\/revisions\/1314"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/duniacoding.id\/blog\/wp-json\/wp\/v2\/media\/762"}],"wp:attachment":[{"href":"https:\/\/duniacoding.id\/blog\/wp-json\/wp\/v2\/media?parent=1169"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/duniacoding.id\/blog\/wp-json\/wp\/v2\/categories?post=1169"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/duniacoding.id\/blog\/wp-json\/wp\/v2\/tags?post=1169"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}