{"id":3187,"date":"2017-02-12T05:27:13","date_gmt":"2017-02-12T05:27:13","guid":{"rendered":"http:\/\/www.rezafaisal.net\/?p=3187"},"modified":"2017-02-13T13:57:40","modified_gmt":"2017-02-13T13:57:40","slug":"asp-net-core-mvc-mysql-data-core","status":"publish","type":"post","link":"http:\/\/www.rezafaisal.net\/?p=3187","title":{"rendered":"ASP.NET Core MVC &amp; MySQL Data Core"},"content":{"rendered":"<p>Pada posting ini akan diberikan langkah-langkah pembuatan aplikasi web dengan framework ASP.NET Core MVC dengan menggunakan database MySQL.\u00a0 Sebelumnya telah dibuat beberapa posting tentang ASP.NET Core yang dapat dilihat pada website ini.\u00a0 Seperti posting sebelumnya, posting ini juga aka menggunakan Visual Studio Code sebagai source code editor.<\/p>\n<p>{<strong><em>Membuat Project<\/em><\/strong>}<\/p>\n<p>Langkah pertama adalah membuat ASP.NET Core MVC project kosong.\u00a0 Maksud pembuatan project kosong ini agar pembaca dapat mengetahui langkah-langkah pembuatan aplikasi web ASP.NET Core MVC langkah demi langkah.<\/p>\n<p>Jalankan Visual Studio Code. Kemudian pilih menu View &gt; Integrated Terminal. Kemudian pada terminal akan dilakukan pembuatan folder untuk menyimpan project.\u00a0 Pada contoh ini dibuat folder ASPNETCore pada drive D. Kemudian masuk ke folder ASPNETCore tersebut.<\/p>\n<p><a href=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2017\/02\/01-1.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"01\" src=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2017\/02\/01_thumb-1.jpg\" alt=\"01\" width=\"550\" height=\"328\" border=\"0\" \/><\/a><\/p>\n<p>Kemudian ketikkan perintah berikut pada terminal.<\/p>\n<div id=\"codeSnippetWrapper\" style=\"font-size: 8pt; overflow: auto; cursor: text; font-family: 'Courier New', courier, monospace; width: 97.5%; direction: ltr; text-align: left; margin: 20px 0px 10px; line-height: 12pt; max-height: 200px; background-color: #f4f4f4; border: silver 1px solid; padding: 4px;\">\n<pre id=\"codeSnippet\" style=\"font-size: 8pt; overflow: visible; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;\">yo aspnet<\/pre>\n<p>&nbsp;<\/p>\n<\/div>\n<p><a href=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2017\/02\/02-1.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"02\" src=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2017\/02\/02_thumb-1.jpg\" alt=\"02\" width=\"550\" height=\"325\" border=\"0\" \/><\/a><\/p>\n<p>Pada menu pilih \u201cEmpty Web Application\u201d, kemudian ketikkan nama project yaitu ASPNETCoreMySQL kemudian tekan tombol Enter. Hasilnya dapat dilihat pada gambar di bawah ini.<\/p>\n<p><a href=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2017\/02\/04-1.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"04\" src=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2017\/02\/04_thumb-1.jpg\" alt=\"04\" width=\"550\" height=\"328\" border=\"0\" \/><\/a><\/p>\n<p>Kemudian pilih menu File &gt; Open Folder pada Visual Studio Code dan pilih folder D:\\ASPNETCore\\ASPNETCoreMySQL. Akan dapat dilihat ada dua konfirmasi pilih \u201cYes\u201d dan \u201cRestore\u201d.<\/p>\n<p><a href=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2017\/02\/05-1.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"05\" src=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2017\/02\/05_thumb-1.jpg\" alt=\"05\" width=\"550\" height=\"325\" border=\"0\" \/><\/a><\/p>\n<p>Dan proses pembuatan project selesai.<\/p>\n<p>{<strong><em>Membuat Table GuestBook<\/em><\/strong>}<\/p>\n<p>Sebagai latihan akan dibuat aplikasi web super sangat sederhana (hehe) untuk menampilkan daftar buku tamu dan input data buku tamu.\u00a0 Untuk itu terlebih dahulu akan dibuat tabel pada database MySQL.\u00a0 Untuk membuat database dan tabel pada database MySQL dengan menggunakan Visual Studio Code dapat dilihat pada posting berikut <a title=\"http:\/\/www.rezafaisal.net\/?p=3167\" href=\"http:\/\/www.rezafaisal.net\/?p=3167\">http:\/\/www.rezafaisal.net\/?p=3167<\/a>.<\/p>\n<p>Sedangkan query SQL yang digunakan untuk membuat tabel guestbook dapat dilihat pada script berikut.<\/p>\n<div id=\"codeSnippetWrapper\" style=\"font-size: 8pt; overflow: auto; cursor: text; font-family: 'Courier New', courier, monospace; width: 97.5%; direction: ltr; text-align: left; margin: 20px 0px 10px; line-height: 12pt; max-height: 200px; background-color: #f4f4f4; border: silver 1px solid; padding: 4px;\">\n<pre id=\"codeSnippet\" style=\"font-size: 8pt; overflow: visible; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;\"><span style=\"color: #0000ff;\">create<\/span> <span style=\"color: #0000ff;\">table<\/span> guestbook(\r\n  guestbook_id <span style=\"color: #0000ff;\">INT<\/span> <span style=\"color: #0000ff;\">NOT<\/span> <span style=\"color: #0000ff;\">NULL<\/span> AUTO_INCREMENT,\r\n  guest_name <span style=\"color: #0000ff;\">VARCHAR<\/span>(100) <span style=\"color: #0000ff;\">NOT<\/span> <span style=\"color: #0000ff;\">NULL<\/span>,\r\n  guest_email <span style=\"color: #0000ff;\">VARCHAR<\/span>(100) <span style=\"color: #0000ff;\">NOT<\/span> <span style=\"color: #0000ff;\">NULL<\/span>,\r\n  message <span style=\"color: #0000ff;\">VARCHAR<\/span>(256) <span style=\"color: #0000ff;\">NOT<\/span> <span style=\"color: #0000ff;\">NULL<\/span>,\r\n  <span style=\"color: #0000ff;\">PRIMARY<\/span> <span style=\"color: #0000ff;\">KEY<\/span> ( guestbook_id )\r\n);<\/pre>\n<p>&nbsp;<\/p>\n<\/div>\n<p>{<strong><em>Modifikasi File project.json<\/em><\/strong>}<\/p>\n<p>Tujuan modifikasi file project.json adalah untuk menambahkan library atau paket agar project ini dapat menggunakan framework ASP.NET Core dan menggunakan provider MySQL.<\/p>\n<div id=\"codeSnippetWrapper\" style=\"font-size: 8pt; overflow: auto; cursor: text; font-family: 'Courier New', courier, monospace; width: 97.5%; direction: ltr; text-align: left; margin: 20px 0px 10px; line-height: 12pt; max-height: 200px; background-color: #f4f4f4; border: silver 1px solid; padding: 4px;\">\n<pre id=\"codeSnippet\" style=\"font-size: 8pt; overflow: visible; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;\"><span style=\"color: #006080;\">\"Microsoft.AspNetCore.Mvc\"<\/span>: <span style=\"color: #006080;\">\"1.1.0\"<\/span>,\r\n<span style=\"color: #006080;\">\"Microsoft.AspNetCore.StaticFiles\"<\/span>: <span style=\"color: #006080;\">\"1.1.0\"<\/span>,\r\n<span style=\"color: #006080;\">\"MySql.Data.Core\"<\/span>: <span style=\"color: #006080;\">\"7.0.4-IR-191\"<\/span><\/pre>\n<p>&nbsp;<\/p>\n<\/div>\n<p>Baris pertama adalah library untuk implementasi framework ASP.NET Core MVC.\u00a0 Baris kedua adalah library untuk menangani file statik web seperti file image, file CSS dan file script Javascript.\u00a0 Sedangkan baris ketiga untuk penggunaan provider MySQL, sehingga dapat digunakan class dan method untuk mengakses database MySQL.<\/p>\n<p>Berikut adalah kode lengkap file project.json.<\/p>\n<div id=\"codeSnippetWrapper\" style=\"font-size: 8pt; overflow: auto; cursor: text; font-family: 'Courier New', courier, monospace; width: 97.5%; direction: ltr; text-align: left; margin: 20px 0px 10px; line-height: 12pt; max-height: 200px; background-color: #f4f4f4; border: silver 1px solid; padding: 4px;\">\n<pre style=\"font-size: 8pt; overflow: visible; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;\">{\r\n  <span style=\"color: #006080;\">\"dependencies\"<\/span>: {\r\n    <span style=\"color: #006080;\">\"Microsoft.NETCore.App\"<\/span>: {\r\n      <span style=\"color: #006080;\">\"version\"<\/span>: <span style=\"color: #006080;\">\"1.1.0\"<\/span>,\r\n      <span style=\"color: #006080;\">\"type\"<\/span>: <span style=\"color: #006080;\">\"platform\"<\/span>\r\n    },\r\n    <span style=\"color: #006080;\">\"Microsoft.AspNetCore.Diagnostics\"<\/span>: <span style=\"color: #006080;\">\"1.1.0\"<\/span>,\r\n    <span style=\"color: #006080;\">\"Microsoft.AspNetCore.Server.IISIntegration\"<\/span>: <span style=\"color: #006080;\">\"1.1.0\"<\/span>,\r\n    <span style=\"color: #006080;\">\"Microsoft.AspNetCore.Server.Kestrel\"<\/span>: <span style=\"color: #006080;\">\"1.1.0\"<\/span>,\r\n    <span style=\"color: #006080;\">\"Microsoft.Extensions.Logging.Console\"<\/span>: <span style=\"color: #006080;\">\"1.1.0\"<\/span>,\r\n    <span style=\"color: #006080;\">\"Microsoft.Extensions.Configuration.EnvironmentVariables\"<\/span>: <span style=\"color: #006080;\">\"1.1.0\"<\/span>,\r\n    <span style=\"color: #006080;\">\"Microsoft.Extensions.Configuration.FileExtensions\"<\/span>: <span style=\"color: #006080;\">\"1.1.0\"<\/span>,\r\n    <span style=\"color: #006080;\">\"Microsoft.Extensions.Configuration.Json\"<\/span>: <span style=\"color: #006080;\">\"1.1.0\"<\/span>,\r\n    <span style=\"color: #006080;\">\"Microsoft.Extensions.Configuration.CommandLine\"<\/span>: <span style=\"color: #006080;\">\"1.1.0\"<\/span>,\r\n    <span style=\"color: #006080;\">\"Microsoft.AspNetCore.Mvc\"<\/span>: <span style=\"color: #006080;\">\"1.1.0\"<\/span>,\r\n    <span style=\"color: #006080;\">\"Microsoft.AspNetCore.StaticFiles\"<\/span>: <span style=\"color: #006080;\">\"1.1.0\"<\/span>,\r\n    <span style=\"color: #006080;\">\"MySql.Data.Core\"<\/span>: <span style=\"color: #006080;\">\"7.0.4-IR-191\"<\/span>\r\n  },<\/pre>\n<p><span style=\"color: #006080;\">&#8220;tools&#8221;<\/span>: {<br \/>\n<span style=\"color: #006080;\">&#8220;Microsoft.AspNetCore.Server.IISIntegration.Tools&#8221;<\/span>: <span style=\"color: #006080;\">&#8220;1.1.0-preview4-final&#8221;<\/span><br \/>\n},<\/p>\n<p><span style=\"color: #006080;\">&#8220;frameworks&#8221;<\/span>: {<br \/>\n<span style=\"color: #006080;\">&#8220;netcoreapp1.1&#8221;<\/span>: {<br \/>\n<span style=\"color: #006080;\">&#8220;imports&#8221;<\/span>: [<br \/>\n<span style=\"color: #006080;\">&#8220;dotnet5.6&#8221;<\/span>,<br \/>\n<span style=\"color: #006080;\">&#8220;portable-net45+win8&#8221;<\/span><br \/>\n]<br \/>\n}<br \/>\n},<\/p>\n<p><span style=\"color: #006080;\">&#8220;buildOptions&#8221;<\/span>: {<br \/>\n<span style=\"color: #006080;\">&#8220;emitEntryPoint&#8221;<\/span>: <span style=\"color: #0000ff;\">true<\/span>,<br \/>\n<span style=\"color: #006080;\">&#8220;preserveCompilationContext&#8221;<\/span>: <span style=\"color: #0000ff;\">true<\/span><br \/>\n},<\/p>\n<p><span style=\"color: #006080;\">&#8220;runtimeOptions&#8221;<\/span>: {<br \/>\n<span style=\"color: #006080;\">&#8220;configProperties&#8221;<\/span>: {<br \/>\n<span style=\"color: #006080;\">&#8220;System.GC.Server&#8221;<\/span>: <span style=\"color: #0000ff;\">true<\/span><br \/>\n}<br \/>\n},<\/p>\n<p><span style=\"color: #006080;\">&#8220;publishOptions&#8221;<\/span>: {<br \/>\n<span style=\"color: #006080;\">&#8220;include&#8221;<\/span>: [<br \/>\n<span style=\"color: #006080;\">&#8220;wwwroot&#8221;<\/span>,<br \/>\n<span style=\"color: #006080;\">&#8220;web.config&#8221;<\/span><br \/>\n]<br \/>\n},<\/p>\n<p><span style=\"color: #006080;\">&#8220;scripts&#8221;<\/span>: {<br \/>\n<span style=\"color: #006080;\">&#8220;postpublish&#8221;<\/span>: [ <span style=\"color: #006080;\">&#8220;dotnet publish-iis &#8211;publish-folder %publish:OutputPath% &#8211;framework %publish:FullTargetFramework%&#8221;<\/span> ]<br \/>\n},<\/p>\n<p><span style=\"color: #006080;\">&#8220;tooling&#8221;<\/span>: {<br \/>\n<span style=\"color: #006080;\">&#8220;defaultNamespace&#8221;<\/span>: <span style=\"color: #006080;\">&#8220;ASPNETCoreMySQL&#8221;<\/span><br \/>\n}<br \/>\n}<\/p>\n<p>&nbsp;<\/p>\n<\/div>\n<p>Setelah file project.json disimpan, maka Visual Studio Code akan melakukan proses restore project.<\/p>\n<p>{<strong><em>Membuat File appsettings.json<\/em><\/strong>}<\/p>\n<p>File ini dapat digunakan untuk menyimpan nilai-nilai setting yang akan digunakan pada aplikasi.\u00a0 Pada kasus ini, file ini akan digunakan untuk menyimpan connection string ke database.\u00a0 Karena file ini belum ada pada project, maka file ini harus dibuat dahulu.\u00a0 Kemudian digunakan contoh kode di bawah ini sebagai isi file appsettings.json.\u00a0 Dari file di bawah ini dapat dilihat nama database yang akan digunakan ada elibrary.\u00a0 Nama database ini dapat diubah sesuai dengan nama database yang digunakan.<\/p>\n<div id=\"codeSnippetWrapper\" style=\"font-size: 8pt; overflow: auto; cursor: text; font-family: 'Courier New', courier, monospace; width: 97.5%; direction: ltr; text-align: left; margin: 20px 0px 10px; line-height: 12pt; max-height: 200px; background-color: #f4f4f4; border: silver 1px solid; padding: 4px;\">\n<pre id=\"codeSnippet\" style=\"font-size: 8pt; overflow: visible; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;\">{\r\n    <span style=\"color: #006080;\">\"ConnectionStrings\"<\/span>:\r\n    {\r\n        <span style=\"color: #006080;\">\"Default\"<\/span>: <span style=\"color: #006080;\">\"server=localhost; userid=root; password=rahasia; database=elibrary;SslMode=None\"<\/span>\r\n    }\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<\/div>\n<p>{<strong><em>Modifikasi File Startup.cs<\/em><\/strong>}<\/p>\n<p>Class Startup.cs merupakan class penting pada project aplikasi web ASP.NET Core.\u00a0 Class ini dapat digunakan untuk melakukan hal-hal sebelum halaman web yang kita buat dijalankan. Berikut ini adalah isi file class Startup.cs yang telah dimodifikasi.<\/p>\n<div id=\"codeSnippetWrapper\" style=\"font-size: 8pt; overflow: auto; cursor: text; font-family: 'Courier New', courier, monospace; width: 97.5%; direction: ltr; text-align: left; margin: 20px 0px 10px; line-height: 12pt; max-height: 200px; background-color: #f4f4f4; border: silver 1px solid; padding: 4px;\">\n<pre style=\"font-size: 8pt; overflow: visible; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;\"><span style=\"color: #0000ff;\">using<\/span> System;\r\n<span style=\"color: #0000ff;\">using<\/span> System.Collections.Generic;\r\n<span style=\"color: #0000ff;\">using<\/span> System.Linq;\r\n<span style=\"color: #0000ff;\">using<\/span> System.Threading.Tasks;\r\n<span style=\"color: #0000ff;\">using<\/span> Microsoft.AspNetCore.Builder;\r\n<span style=\"color: #0000ff;\">using<\/span> Microsoft.AspNetCore.Hosting;\r\n<span style=\"color: #0000ff;\">using<\/span> Microsoft.AspNetCore.Http;\r\n<span style=\"color: #0000ff;\">using<\/span> Microsoft.Extensions.DependencyInjection;\r\n<span style=\"color: #0000ff;\">using<\/span> Microsoft.Extensions.Logging;\r\n<span style=\"color: #0000ff;\">using<\/span> Microsoft.Extensions.Configuration;<\/pre>\n<p><span style=\"color: #0000ff;\">namespace<\/span> ASPNETCoreMySQL<br \/>\n{<br \/>\n<span style=\"color: #0000ff;\">public<\/span> <span style=\"color: #0000ff;\">class<\/span> Startup<br \/>\n{<br \/>\n<span style=\"color: #0000ff;\">public<\/span> <span style=\"color: #0000ff;\">static<\/span> <span style=\"color: #0000ff;\">string<\/span> ConnectionString {get; <span style=\"color: #0000ff;\">private<\/span> set;}<br \/>\n<span style=\"color: #0000ff;\">public<\/span> <span style=\"color: #0000ff;\">static<\/span> IConfigurationRoot Configuration { get; set; }<\/p>\n<p><span style=\"color: #0000ff;\">public<\/span> Startup(IHostingEnvironment env)<br \/>\n{<br \/>\nvar builder = <span style=\"color: #0000ff;\">new<\/span> ConfigurationBuilder()<br \/>\n.SetBasePath(env.ContentRootPath)<br \/>\n.AddJsonFile(<span style=\"color: #006080;\">&#8220;appsettings.json&#8221;<\/span>, optional: <span style=\"color: #0000ff;\">true<\/span>, reloadOnChange: <span style=\"color: #0000ff;\">true<\/span>)<br \/>\n.AddEnvironmentVariables();<\/p>\n<p>Configuration = builder.Build();<\/p>\n<p>ConnectionString = Configuration[<span style=\"color: #006080;\">&#8220;ConnectionStrings:Default&#8221;<\/span>];<br \/>\n}<\/p>\n<p><span style=\"color: #008000;\">\/\/ This method gets called by the runtime. Use this method to add services to the container.<\/span><br \/>\n<span style=\"color: #008000;\">\/\/ For more information on how to configure your application, visit https:\/\/go.microsoft.com\/fwlink\/?LinkID=398940<\/span><br \/>\n<span style=\"color: #0000ff;\">public<\/span> <span style=\"color: #0000ff;\">void<\/span> ConfigureServices(IServiceCollection services)<br \/>\n{<br \/>\nservices.AddMvc();<br \/>\n}<\/p>\n<p><span style=\"color: #008000;\">\/\/ This method gets called by the runtime. Use this method to configure the HTTP request pipeline.<\/span><br \/>\n<span style=\"color: #0000ff;\">public<\/span> <span style=\"color: #0000ff;\">void<\/span> Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)<br \/>\n{<br \/>\nloggerFactory.AddConsole();<\/p>\n<p><span style=\"color: #0000ff;\">if<\/span> (env.IsDevelopment())<br \/>\n{<br \/>\napp.UseDeveloperExceptionPage();<br \/>\n}<br \/>\n<span style=\"color: #0000ff;\">else<\/span><br \/>\n{<br \/>\napp.UseExceptionHandler(<span style=\"color: #006080;\">&#8220;\/Home\/Error&#8221;<\/span>);<br \/>\n}<\/p>\n<p>app.UseStaticFiles();<\/p>\n<p>app.UseMvc(routes =&gt;<br \/>\n{<br \/>\nroutes.MapRoute(<br \/>\nname: <span style=\"color: #006080;\">&#8220;default&#8221;<\/span>,<br \/>\ntemplate: <span style=\"color: #006080;\">&#8220;{controller=Home}\/{action=Index}\/{id?}&#8221;<\/span>);<br \/>\n});<br \/>\n}<br \/>\n}<br \/>\n}<\/p>\n<p>&nbsp;<\/p>\n<\/div>\n<p>Untuk implementasi framework ASP.NET Core MVC adalah penambahan services.AddMvc(); pada method ConfigureServices.\u00a0 Kemudian untuk aturan routing dapat dilihat pada method Configure.\u00a0 Sedangkan untuk keperluan membaca file konfigurasi pada file appsettings.json dilakukan dua langkah yaitu menambahkan property ConnectionString dan Configuration.\u00a0 Kemudian menambahkan method Startup yang berisi untuk menentukan nama file konfigurasi yang akan dibaca.\u00a0 Dilanjutkan dengan mengisi nilai pada property ConnectionString dengan nilai ConnectionString:Default.<\/p>\n<p>{<strong><em>Models<\/em><\/strong>}<\/p>\n<p>Langkah selanjutnya adalah membuat folder Models pada project.\u00a0 Kemudian dibuat class model dengan nama GuestBook.cs dengan isi sebagai berikut.<\/p>\n<div id=\"codeSnippetWrapper\" style=\"font-size: 8pt; overflow: auto; cursor: text; font-family: 'Courier New', courier, monospace; width: 97.5%; direction: ltr; text-align: left; margin: 20px 0px 10px; line-height: 12pt; max-height: 200px; background-color: #f4f4f4; border: silver 1px solid; padding: 4px;\">\n<pre style=\"font-size: 8pt; overflow: visible; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;\"><span style=\"color: #0000ff;\">using<\/span> System;<\/pre>\n<p><span style=\"color: #0000ff;\">namespace<\/span> ASPNETCoreMySQL.Models<br \/>\n{<br \/>\n<span style=\"color: #0000ff;\">public<\/span> <span style=\"color: #0000ff;\">class<\/span> GuestBook{<br \/>\n<span style=\"color: #0000ff;\">public<\/span> String Email {set; get;}<br \/>\n<span style=\"color: #0000ff;\">public<\/span> String Name {set; get;}<br \/>\n<span style=\"color: #0000ff;\">public<\/span> String Message {set; get;}<br \/>\n}<br \/>\n}<\/p>\n<p>&nbsp;<\/p>\n<\/div>\n<p>Class ini dibuat dengan property sesuai dengan tabel guestbook yang telah dibuat sebelumnya.<\/p>\n<p>{<strong><em>Controllers<\/em><\/strong>}<\/p>\n<p>Setelah langkah di atas selesai, dengan membuat folder Controllers.\u00a0 Kemudian membuat class controller dengan isi sebagai berikut.<\/p>\n<div id=\"codeSnippetWrapper\" style=\"font-size: 8pt; overflow: auto; cursor: text; font-family: 'Courier New', courier, monospace; width: 97.5%; direction: ltr; text-align: left; margin: 20px 0px 10px; line-height: 12pt; max-height: 200px; background-color: #f4f4f4; border: silver 1px solid; padding: 4px;\">\n<pre style=\"font-size: 8pt; overflow: visible; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;\"><span style=\"color: #0000ff;\">using<\/span> System;\r\n<span style=\"color: #0000ff;\">using<\/span> System.Collections.Generic;\r\n<span style=\"color: #0000ff;\">using<\/span> Microsoft.AspNetCore.Mvc;\r\n<span style=\"color: #0000ff;\">using<\/span> ASPNETCoreMySQL.Models;<\/pre>\n<p><span style=\"color: #0000ff;\">using<\/span> MySql.Data.MySqlClient;<\/p>\n<p><span style=\"color: #0000ff;\">namespace<\/span> ASPNETCoreMySQL.Controllers<br \/>\n{<br \/>\n<span style=\"color: #0000ff;\">public<\/span> <span style=\"color: #0000ff;\">class<\/span> HomeController : Controller<br \/>\n{<br \/>\n[HttpGet]<br \/>\n<span style=\"color: #0000ff;\">public<\/span> IActionResult Index()<br \/>\n{<br \/>\nIList&lt;GuestBook&gt; items = <span style=\"color: #0000ff;\">new<\/span> List&lt;GuestBook&gt;();<\/p>\n<p><span style=\"color: #008000;\">\/\/ koneksi database<\/span><br \/>\nMySqlConnection conn = <span style=\"color: #0000ff;\">new<\/span> MySqlConnection{<br \/>\nConnectionString = Startup.ConnectionString<br \/>\n};<br \/>\nconn.Open();<\/p>\n<p><span style=\"color: #008000;\">\/\/ menyiapkan query<\/span><br \/>\nMySqlCommand cmd = <span style=\"color: #0000ff;\">new<\/span> MySqlCommand(<span style=\"color: #006080;\">&#8220;SELECT * FROM guestbook;&#8221;<\/span>, conn);<\/p>\n<p><span style=\"color: #008000;\">\/\/ membaca data<\/span><br \/>\nMySqlDataReader dataReader = cmd.ExecuteReader();<br \/>\n<span style=\"color: #0000ff;\">while<\/span> (dataReader.Read()){<br \/>\n<span style=\"color: #008000;\">\/\/ menyimpan record ke object model<\/span><br \/>\nGuestBook item = <span style=\"color: #0000ff;\">new<\/span> GuestBook();<br \/>\nitem.Email = Convert.ToString(dataReader[<span style=\"color: #006080;\">&#8220;guest_email&#8221;<\/span>]);<br \/>\nitem.Name = Convert.ToString(dataReader[<span style=\"color: #006080;\">&#8220;guest_name&#8221;<\/span>]);<br \/>\nitem.Message = Convert.ToString(dataReader[<span style=\"color: #006080;\">&#8220;message&#8221;<\/span>]);<\/p>\n<p><span style=\"color: #008000;\">\/\/ menyimpan object model ke collection <\/span><br \/>\nitems.Add(item);<br \/>\n}<br \/>\ndataReader.Close();<\/p>\n<p><span style=\"color: #0000ff;\">return<\/span> View(items);<br \/>\n}<\/p>\n<p>[HttpGet]<br \/>\n<span style=\"color: #0000ff;\">public<\/span> IActionResult Create(){<br \/>\n<span style=\"color: #0000ff;\">return<\/span> View();<br \/>\n}<\/p>\n<p>[HttpPost]<br \/>\n<span style=\"color: #0000ff;\">public<\/span> IActionResult Create(GuestBook item){<br \/>\n<span style=\"color: #0000ff;\">if<\/span>(ModelState.IsValid){<br \/>\nMySqlConnection conn = <span style=\"color: #0000ff;\">new<\/span> MySqlConnection{<br \/>\nConnectionString = Startup.ConnectionString<br \/>\n};<br \/>\nconn.Open();<\/p>\n<p>MySqlCommand command = conn.CreateCommand();<br \/>\ncommand.CommandText = <span style=\"color: #006080;\">&#8220;INSERT INTO guestbook (guest_name, guest_email, message) VALUES (?name, ?email, ?message)&#8221;<\/span>;<br \/>\ncommand.Parameters.AddWithValue(<span style=\"color: #006080;\">&#8220;?name&#8221;<\/span>, item.Name);<br \/>\ncommand.Parameters.AddWithValue(<span style=\"color: #006080;\">&#8220;?email&#8221;<\/span>, item.Email);<br \/>\ncommand.Parameters.AddWithValue(<span style=\"color: #006080;\">&#8220;?message&#8221;<\/span>, item.Message);<br \/>\ncommand.ExecuteNonQuery();<\/p>\n<p>conn.Close();<\/p>\n<p><span style=\"color: #0000ff;\">return<\/span> RedirectToAction(<span style=\"color: #006080;\">&#8220;Index&#8221;<\/span>);<br \/>\n}<br \/>\n<span style=\"color: #0000ff;\">return<\/span> View();<br \/>\n}<\/p>\n<p>[HttpGet]<br \/>\n<span style=\"color: #0000ff;\">public<\/span> IActionResult Error()<br \/>\n{<br \/>\n<span style=\"color: #0000ff;\">return<\/span> View();<br \/>\n}<br \/>\n}<br \/>\n}<\/p>\n<p>&nbsp;<\/p>\n<\/div>\n<p>Pada HomeController.cs dapat dilihat bagaimana melakukan operasi data ke database MySQL.\u00a0 Untuk menggunakan class dan method pada library MySQL.Data.Core maka perlu ditambahkan baris berikut.<\/p>\n<div id=\"codeSnippetWrapper\" style=\"font-size: 8pt; overflow: auto; cursor: text; font-family: 'Courier New', courier, monospace; width: 97.5%; direction: ltr; text-align: left; margin: 20px 0px 10px; line-height: 12pt; max-height: 200px; background-color: #f4f4f4; border: silver 1px solid; padding: 4px;\">\n<pre id=\"codeSnippet\" style=\"font-size: 8pt; overflow: visible; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;\"><span style=\"color: #0000ff;\">using<\/span> MySql.Data.MySqlClient;<\/pre>\n<p>&nbsp;<\/p>\n<\/div>\n<p>Selanjutnya untuk menggunakan object dari class model maka perlu ditambahkan baris berikut.<\/p>\n<div id=\"codeSnippetWrapper\" style=\"font-size: 8pt; overflow: auto; cursor: text; font-family: 'Courier New', courier, monospace; width: 97.5%; direction: ltr; text-align: left; margin: 20px 0px 10px; line-height: 12pt; max-height: 200px; background-color: #f4f4f4; border: silver 1px solid; padding: 4px;\">\n<pre id=\"codeSnippet\" style=\"font-size: 8pt; overflow: visible; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;\"><span style=\"color: #0000ff;\">using<\/span> ASPNETCoreMySQL.Models;<\/pre>\n<p>&nbsp;<\/p>\n<\/div>\n<p>Selanjutnya dapat dilihat bagaimana cara melakukan koneksi dan menampilkan data pada method action Index.\u00a0 Dan cara mengeksekusi query SQL untuk insert data pada method action Create.<\/p>\n<p>{<strong><em>Views<\/em><\/strong>}<\/p>\n<p>Berikutnya adalah membuat komponen view. Langkah pertama adalah membuat folder Views.\u00a0 Untuk membuat komponen view untuk controller HomeController maka perlu dibuat folder Home di folder Views.\u00a0 Kemudian akan ditambahkan file Index.cshtml yang akan digunakan oleh method action Index.\u00a0 Berikut isi dari file Index.cshtml.<\/p>\n<div id=\"codeSnippetWrapper\" style=\"font-size: 8pt; overflow: auto; cursor: text; font-family: 'Courier New', courier, monospace; width: 97.5%; direction: ltr; text-align: left; margin: 20px 0px 10px; line-height: 12pt; max-height: 200px; background-color: #f4f4f4; border: silver 1px solid; padding: 4px;\">\n<pre style=\"font-size: 8pt; overflow: visible; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;\">@{\r\n    Layout = null;\r\n}<\/pre>\n<p>@model IList<span style=\"color: #0000ff;\">&lt;<\/span><span style=\"color: #800000;\">ASPNETCoreMySQL.Models.GuestBook<\/span><span style=\"color: #0000ff;\">&gt;<\/span><\/p>\n<p><span style=\"color: #0000ff;\">&lt;<\/span><span style=\"color: #800000;\">html<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n<span style=\"color: #0000ff;\">&lt;<\/span><span style=\"color: #800000;\">head<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n<span style=\"color: #0000ff;\">&lt;<\/span><span style=\"color: #800000;\">title<\/span><span style=\"color: #0000ff;\">&gt;<\/span>ASP.NET Core MVC &#8211; MySQL: GuestBook<span style=\"color: #0000ff;\">&lt;\/<\/span><span style=\"color: #800000;\">title<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n<span style=\"color: #0000ff;\">&lt;\/<\/span><span style=\"color: #800000;\">head<\/span><span style=\"color: #0000ff;\">&gt;<\/span><\/p>\n<p><span style=\"color: #0000ff;\">&lt;<\/span><span style=\"color: #800000;\">body<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n<span style=\"color: #0000ff;\">&lt;<\/span><span style=\"color: #800000;\">h1<\/span><span style=\"color: #0000ff;\">&gt;<\/span>Daftar GuestBook<span style=\"color: #0000ff;\">&lt;\/<\/span><span style=\"color: #800000;\">h1<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n<span style=\"color: #0000ff;\">&lt;<\/span><span style=\"color: #800000;\">div<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n<span style=\"color: #0000ff;\">&lt;<\/span><span style=\"color: #800000;\">p<\/span><span style=\"color: #0000ff;\">&gt;<\/span>@Html.ActionLink(&#8220;Tambah data&#8221;, &#8220;Create&#8221;)<span style=\"color: #0000ff;\">&lt;\/<\/span><span style=\"color: #800000;\">p<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n<span style=\"color: #0000ff;\">&lt;<\/span><span style=\"color: #800000;\">table<\/span> <span style=\"color: #ff0000;\">style<\/span><span style=\"color: #0000ff;\">=&#8221;width:100%; border: solid 1px #000&#8243;<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n<span style=\"color: #0000ff;\">&lt;<\/span><span style=\"color: #800000;\">tr<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n<span style=\"color: #0000ff;\">&lt;<\/span><span style=\"color: #800000;\">td<\/span><span style=\"color: #0000ff;\">&gt;<\/span>Nama<span style=\"color: #0000ff;\">&lt;\/<\/span><span style=\"color: #800000;\">td<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n<span style=\"color: #0000ff;\">&lt;<\/span><span style=\"color: #800000;\">td<\/span><span style=\"color: #0000ff;\">&gt;<\/span>Email<span style=\"color: #0000ff;\">&lt;\/<\/span><span style=\"color: #800000;\">td<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n<span style=\"color: #0000ff;\">&lt;<\/span><span style=\"color: #800000;\">td<\/span><span style=\"color: #0000ff;\">&gt;<\/span>Message<span style=\"color: #0000ff;\">&lt;\/<\/span><span style=\"color: #800000;\">td<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n<span style=\"color: #0000ff;\">&lt;\/<\/span><span style=\"color: #800000;\">tr<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n@foreach (var item in Model)<br \/>\n{<br \/>\n<span style=\"color: #0000ff;\">&lt;<\/span><span style=\"color: #800000;\">tr<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n<span style=\"color: #0000ff;\">&lt;<\/span><span style=\"color: #800000;\">td<\/span><span style=\"color: #0000ff;\">&gt;<\/span>@Html.DisplayFor(modelItem =<span style=\"color: #0000ff;\">&gt;<\/span> item.Name)<span style=\"color: #0000ff;\">&lt;\/<\/span><span style=\"color: #800000;\">td<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n<span style=\"color: #0000ff;\">&lt;<\/span><span style=\"color: #800000;\">td<\/span><span style=\"color: #0000ff;\">&gt;<\/span>@Html.DisplayFor(modelItem =<span style=\"color: #0000ff;\">&gt;<\/span> item.Email)<span style=\"color: #0000ff;\">&lt;\/<\/span><span style=\"color: #800000;\">td<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n<span style=\"color: #0000ff;\">&lt;<\/span><span style=\"color: #800000;\">td<\/span><span style=\"color: #0000ff;\">&gt;<\/span>@Html.DisplayFor(modelItem =<span style=\"color: #0000ff;\">&gt;<\/span> item.Message)<span style=\"color: #0000ff;\">&lt;\/<\/span><span style=\"color: #800000;\">td<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n<span style=\"color: #0000ff;\">&lt;\/<\/span><span style=\"color: #800000;\">tr<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n}<br \/>\n<span style=\"color: #0000ff;\">&lt;\/<\/span><span style=\"color: #800000;\">div<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n<span style=\"color: #0000ff;\">&lt;\/<\/span><span style=\"color: #800000;\">body<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n<span style=\"color: #0000ff;\">&lt;\/<\/span><span style=\"color: #800000;\">html<\/span><span style=\"color: #0000ff;\">&gt;<\/span><\/p>\n<p>&nbsp;<\/p>\n<\/div>\n<p>Sedangkan untuk method action Create akan dibuat file Create.cshtml dengan isi sebagai berikut.<\/p>\n<div id=\"codeSnippetWrapper\" style=\"font-size: 8pt; overflow: auto; cursor: text; font-family: 'Courier New', courier, monospace; width: 97.5%; direction: ltr; text-align: left; margin: 20px 0px 10px; line-height: 12pt; max-height: 200px; background-color: #f4f4f4; border: silver 1px solid; padding: 4px;\">\n<pre style=\"font-size: 8pt; overflow: visible; font-family: 'Courier New', courier, monospace; width: 100%; color: black; direction: ltr; text-align: left; margin: 0em; line-height: 12pt; background-color: #f4f4f4; border-style: none; padding: 0px;\">@{\r\n    Layout = null;\r\n}<\/pre>\n<p>@model ASPNETCoreMySQL.Models.GuestBook<\/p>\n<p><span style=\"color: #0000ff;\">&lt;<\/span><span style=\"color: #800000;\">html<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n<span style=\"color: #0000ff;\">&lt;<\/span><span style=\"color: #800000;\">head<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n<span style=\"color: #0000ff;\">&lt;<\/span><span style=\"color: #800000;\">title<\/span><span style=\"color: #0000ff;\">&gt;<\/span>ASP.NET Core MVC &#8211; MySQL: GuestBook<span style=\"color: #0000ff;\">&lt;\/<\/span><span style=\"color: #800000;\">title<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n<span style=\"color: #0000ff;\">&lt;\/<\/span><span style=\"color: #800000;\">head<\/span><span style=\"color: #0000ff;\">&gt;<\/span><\/p>\n<p><span style=\"color: #0000ff;\">&lt;<\/span><span style=\"color: #800000;\">body<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n<span style=\"color: #0000ff;\">&lt;<\/span><span style=\"color: #800000;\">h1<\/span><span style=\"color: #0000ff;\">&gt;<\/span>Form GuestBook<span style=\"color: #0000ff;\">&lt;\/<\/span><span style=\"color: #800000;\">h1<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n<span style=\"color: #0000ff;\">&lt;<\/span><span style=\"color: #800000;\">div<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n@using (Html.BeginForm())<br \/>\n{<br \/>\n<span style=\"color: #0000ff;\">&lt;<\/span><span style=\"color: #800000;\">p<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n@Html.LabelFor(m=<span style=\"color: #0000ff;\">&gt;<\/span>m.Name)<br \/>\n@Html.TextBoxFor(m=<span style=\"color: #0000ff;\">&gt;<\/span>m.Name)<br \/>\n<span style=\"color: #0000ff;\">&lt;\/<\/span><span style=\"color: #800000;\">p<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n<span style=\"color: #0000ff;\">&lt;<\/span><span style=\"color: #800000;\">p<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n@Html.LabelFor(m=<span style=\"color: #0000ff;\">&gt;<\/span>m.Email)<br \/>\n@Html.TextBoxFor(m=<span style=\"color: #0000ff;\">&gt;<\/span>m.Email)<br \/>\n<span style=\"color: #0000ff;\">&lt;\/<\/span><span style=\"color: #800000;\">p<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n<span style=\"color: #0000ff;\">&lt;<\/span><span style=\"color: #800000;\">p<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n@Html.LabelFor(m=<span style=\"color: #0000ff;\">&gt;<\/span>m.Message)<br \/>\n@Html.TextBoxFor(m=<span style=\"color: #0000ff;\">&gt;<\/span>m.Message)<br \/>\n<span style=\"color: #0000ff;\">&lt;\/<\/span><span style=\"color: #800000;\">p<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n<span style=\"color: #0000ff;\">&lt;<\/span><span style=\"color: #800000;\">p<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n@ViewBag.GuestBookMessage<br \/>\n<span style=\"color: #0000ff;\">&lt;\/<\/span><span style=\"color: #800000;\">p<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n<span style=\"color: #0000ff;\">&lt;<\/span><span style=\"color: #800000;\">p<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n<span style=\"color: #0000ff;\">&lt;<\/span><span style=\"color: #800000;\">input<\/span> <span style=\"color: #ff0000;\">type<\/span><span style=\"color: #0000ff;\">=&#8221;submit&#8221;<\/span> <span style=\"color: #ff0000;\">value<\/span><span style=\"color: #0000ff;\">=&#8221;Send&#8221;<\/span> <span style=\"color: #0000ff;\">\/&gt;<\/span><br \/>\n<span style=\"color: #0000ff;\">&lt;\/<\/span><span style=\"color: #800000;\">p<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n}<br \/>\n<span style=\"color: #0000ff;\">&lt;\/<\/span><span style=\"color: #800000;\">div<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n<span style=\"color: #0000ff;\">&lt;\/<\/span><span style=\"color: #800000;\">body<\/span><span style=\"color: #0000ff;\">&gt;<\/span><br \/>\n<span style=\"color: #0000ff;\">&lt;\/<\/span><span style=\"color: #800000;\">html<\/span><span style=\"color: #0000ff;\">&gt;<\/span><\/p>\n<p>&nbsp;<\/p>\n<\/div>\n<p>{<strong><em>Menjalankan Project<\/em><\/strong>}<\/p>\n<p>Untuk menjalankan project ini pada Visual Studio Code, klik tombol terdapat method action Index yang akan menampilkan data dari tabel guestbook.<\/p>\n<p><a href=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2017\/02\/06-1.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"06\" src=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2017\/02\/06_thumb-1.jpg\" alt=\"06\" width=\"550\" height=\"325\" border=\"0\" \/><\/a><\/p>\n<p>Hasilnya dapat dilihat pada gambar di bawah ini.\u00a0 Gambar di bawah ini adalah view Index.cshtml.<\/p>\n<p><a href=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2017\/02\/07-1.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"07\" src=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2017\/02\/07_thumb-1.jpg\" alt=\"07\" width=\"550\" height=\"273\" border=\"0\" \/><\/a><\/p>\n<p>Kemudian gambar di bawah ini adalah view Create.cshtml.<\/p>\n<p><a href=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2017\/02\/08-1.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"08\" src=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2017\/02\/08_thumb-1.jpg\" alt=\"08\" width=\"550\" height=\"273\" border=\"0\" \/><\/a><\/p>\n<p>{<strong><em>Source Code<\/em><\/strong>}<\/p>\n<p>Source code lengkap dari posting ini dapat dilihat pada link berikut: <a title=\"https:\/\/github.com\/rezafaisal\/ASPNETCoreMySQL\" href=\"https:\/\/github.com\/rezafaisal\/ASPNETCoreMySQL\">https:\/\/github.com\/rezafaisal\/ASPNETCoreMySQL<\/a><\/p>\n<p>{<strong><em>Penutup<\/em><\/strong>}<\/p>\n<p>Posting di atas tidak menjelaskan detail tentang ASP.NET MVC dan Sintaks Razor yang digunakan. Jika ingin mengenal lebih jauh tentang ASP.NET MVC dan sintaks Razor dapat membaca ebook berikut ini: <a title=\"https:\/\/play.google.com\/store\/books\/details\/M_Reza_Faisal_Seri_Belajar_ASP_NET_ASP_NET_MVC_Unt?id=4vPzDQAAQBAJ\" href=\"https:\/\/play.google.com\/store\/books\/details\/M_Reza_Faisal_Seri_Belajar_ASP_NET_ASP_NET_MVC_Unt?id=4vPzDQAAQBAJ\">https:\/\/play.google.com\/store\/books\/details\/M_Reza_Faisal_Seri_Belajar_ASP_NET_ASP_NET_MVC_Unt?id=4vPzDQAAQBAJ<\/a>.<\/p>\n<p>Tetapi ebook tersebut bukan tentang ASP.NET Core MVC jadi ada perbedaan dengan bahasan pada posting ini. Untuk pembahasan khusus dan detail tentang ASP.NET Core MVC dan MySQL akan dibahas pada buku ini yang sedang dalam tahap penulisan.<\/p>\n<p><a href=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2017\/02\/09-1.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"09\" src=\"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2017\/02\/09_thumb-1.jpg\" alt=\"09\" width=\"550\" height=\"328\" border=\"0\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pada posting ini akan diberikan langkah-langkah pembuatan aplikasi web dengan framework ASP.NET Core MVC dengan menggunakan database MySQL.\u00a0 Sebelumnya telah dibuat beberapa posting tentang ASP.NET Core yang dapat dilihat pada website ini.\u00a0 Seperti posting sebelumnya, posting ini juga aka menggunakan&hellip;<\/p>\n","protected":false},"author":1,"featured_media":3186,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":true,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[6],"tags":[68,160,162,161],"class_list":["post-3187","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-softwaredev","tag-asp-net","tag-asp-net-core","tag-mysql","tag-visual-studio-code"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"http:\/\/www.rezafaisal.net\/wp-content\/uploads\/2017\/02\/09_thumb-1.jpg","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p1sNAL-Pp","_links":{"self":[{"href":"http:\/\/www.rezafaisal.net\/index.php?rest_route=\/wp\/v2\/posts\/3187","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.rezafaisal.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.rezafaisal.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.rezafaisal.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.rezafaisal.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3187"}],"version-history":[{"count":3,"href":"http:\/\/www.rezafaisal.net\/index.php?rest_route=\/wp\/v2\/posts\/3187\/revisions"}],"predecessor-version":[{"id":3197,"href":"http:\/\/www.rezafaisal.net\/index.php?rest_route=\/wp\/v2\/posts\/3187\/revisions\/3197"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.rezafaisal.net\/index.php?rest_route=\/wp\/v2\/media\/3186"}],"wp:attachment":[{"href":"http:\/\/www.rezafaisal.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3187"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.rezafaisal.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3187"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.rezafaisal.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3187"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}