Menentukan Bilangan Prima dengan Bahasa C#

Beberapa waktu yang lalu, saya dapat pertanyaan: Bagaiaman membuat program (dengan bahasa pemograman apa saja) untuk menentukan suatu bilangan itu merupakan bilangan prima atau bukan? *garuk-garuk mata* Dengan susah payah mengingat macam mana membuat program tersebut? Corat-coret untuk mencoba menjawabnya dan seadanya lah itu jawaban.

Sesampainya di depan PC, langsung lah blusukan sana-sini akhirnya sudah dipastikan jawaban tadi itu sangat lah ngaco. Jumlah variable-nya pun beda apalagi code selanjutnya. Kemudian ketemu lah blog ini, yang ngebahas secara lengkap dan mudah dipahami. Berikut adalah penampakannya:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace BilanganPrima
{
class Program
{
static void Main(string[] args)
{
//Console.WriteLine("\n\n");
Console.WriteLine("Bilangan Prima");
Console.WriteLine("================");

int bilangan;
int x, y;
bool prima = true;
Console.WriteLine("Masukan batas bilangan : ");
bilangan = Convert.ToInt16(Console.ReadLine());
for (x = 2; x <= bilangan; x++)
{
for (y = 2; y < x; y++)
{
if (x % y == 0)
{
prima = false;
break;
}
}
if (prima)
Console.WriteLine(x + "merupakan bilangan prima");
prima = true;
}
Console.ReadLine();
}
}
}

Langsung saja saya jelaskan arti code di atas. Pertama kita deklarasikan dulu variabel bilangan untuk menyimpan bilangan yang akan diinputkan oleh user nanti, yang di mana variabel tersebut nantinya akan berperan sebagai batas bilangan. Ada juga variabel prima yang sudah kita set ke true. Pada line 20, itu berarti kita meminta inputan dari user. Inputan dari user itu bertipe string, oleh karena itulah kita perlu mengubahnya dulu ke dalam bentuk integer.

Nah dari line 21 sampai line 35 itulah code yang sangat penting pada program kita. Akan saya jelaskan satu persatu. Pada baris 21 kita tentukan dulu variabel x bernilai 2, kenapa ? Karena bilangan 1 tidak bisa dimasukkan sebagai bilangan prima (setidaknya begitulah yang saya lihat-lihat di blog-blog orang lain :p). Lalu ada yang namanya syarat agar code di atas dapat berulang terus, di mana x <= bilangan, yang di mana artinya selama x lebih kecil dan sama dengan bilangan. Lalu ada x++ yang berarti x akan ditambah 1. Di dalam for, kita tambahkan lagi for yang lain. Penjelasannya sama dengan sebelumnya.

Sampai sini kita bisa melihat bahwa x mempunyai nilai 2 dan y juga mempunyai nilai 2. Lalu kita akan masuk ke if, if ((x % y) == 0) yang artinya jika x modulus y sama dengan 0 (sisa bagi dari x dan y sama dengan 0), variabel prima yang tadi kita set true akan kita ubah false, kenapa? Misalkan di sini x = 4, y = 2, itu berarti x masih bisa dibagi dengan y (4%2=0 atau tidak ada sisa baginya), sedangkan syarat bilangan prima itu hanya bisa dibagi 1 dan dirinya sendiri, selain itu tidak bisa disebut bilangan prima. Maka kita set variabel prima tadi menjadi false. Break itu sendiri artinya berhenti/selesaikan alur coding-nya, artinya looping-nya kita hentikan. Jika dia tidak dihentikan/di-break, dia loncat lagi ke atas (ke for yang di dalam). Variabel y akan ditambah 1, lalu dicek apakah y < x, jika tidak dia akan langsung loncat ke for yang bagian luar. Variabel x akan ditambah 1, cek apakah x <= bilangan, jika iya masuk lagi ke for yang di dalam.

Nah di sini y kembali di-set menjadi 2. Lalu seterusnya sampai x tidak lebih kecil dan sama dengan bilangan. Pada line 31, itu berarti dia mengecek apakah variabel prima bernilai true, jika iya tampilkan pesan bahwa variabel x tadi merupakan bilangan prima. Lalu set lagi variabel prima menjadi true. Jadi intinya, coding di atas itu akan mengecek apakah selama looping for bagian dalam dia masuk ke dalam rumus if (x % y == 0) dan jika menghasilkan nilai true, itu berarti dia sudah bukan bilangan prima (prima = false). Berikut adalah penampakan program setelah dijalankan dan dimasukan angka 10.Hasil Bilangan Prima

Nah, mudah-mudahan dengan membaca dan memahami tulisan di atas kita semua bisa memahaminya.

Konfigurasi AspMap 4.6.2 pada Visual Studio 2010

Seperti yang kita ketahui ada beberapa software yang dapat mendukung pembuatan webgis, salah satunya AspMap. Walaupun saya tergolong pemula dalam dunia geographic information system dan pemograman, saya akan mencoba mendokumentasikan hal-hal yang saya anggap penting demi proses pembelajaran bersama.
Berikut adalah langkah-langkah yang harus dilakukan dalam mengkonfigurasi AspMap 4.6.2 dengan Visual Studio 2010:

  • Setelah AspMap terpasang pada PC/leptop, kemudian buka VS 2010 dan create project/website. Clcik kanan direktori project pada solution explorer. Pilih add reference dan pilih tab browser untuk memilih file AspMapNET.dll pada direktori dimana kita menginstal aspmap. (VDS Technologies/AspMap/Data/AspMapNet.dll).
  • Tambahkan aspmap pada toolbox. Click kanan pada area toolbox, pilih add tab, silakan kasih nama aspmap atau sesuka hati. Klik kanan pada toolbox aspmap (yang telah dikasih nama) kemudian pilih choose item untuk mengambil source .dll-nya. Pilih pada direktori dimana aspmap itu terisntal.
  • Double Klik pada web.config yang ada di solution explore. follow like the bellow:
</pre>
<?xml version="1.0"?>
<!--
 For more information on how to configure your ASP.NET application, please visit
 http://go.microsoft.com/fwlink/?LinkId=169433
 -->
<configuration>
 <connectionStrings>
 <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true"
 providerName="System.Data.SqlClient" />
 <add name="ATBMAPGISDBConnectionString1" connectionString="Data Source=WISAKA-72F7BE55\KIKIWISAKA;Initial Catalog=ATBMAPGISDB;Integrated Security=True"
 providerName="System.Data.SqlClient" />
 </connectionStrings>
 <system.web>

 <authorization>
 <allow roles="admin"/>
 </authorization>
 <compilation debug="true" strict="false" explicit="true" targetFramework="4.0">
 <assemblies>
 <add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
 <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
 <add assembly="Microsoft.VisualC, Version=8.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
 <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
 <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
 <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
 <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
 <add assembly="AjaxControltoolkit"/>
 </assemblies>
 </compilation>
 <pages>
 <namespaces>
 <clear/>
 <add namespace="System"/>
 <add namespace="System.Collections"/>
 <add namespace="System.Collections.Generic"/>
 <add namespace="System.Collections.Specialized"/>
 <add namespace="System.Configuration"/>
 <add namespace="System.Text"/>
 <add namespace="System.Text.RegularExpressions"/>
 <add namespace="System.Linq"/>
 <add namespace="System.Xml.Linq"/>
 <add namespace="System.Web"/>
 <add namespace="System.Web.Caching"/>
 <add namespace="System.Web.SessionState"/>
 <add namespace="System.Web.Security"/>
 <add namespace="System.Web.Profile"/>
 <add namespace="System.Web.UI"/>
 <add namespace="System.Web.UI.WebControls"/>
 <add namespace="System.Web.UI.WebControls.WebParts"/>
 <add namespace="System.Web.UI.HtmlControls"/>
 </namespaces>
 <controls>
 <add tagPrefix="AjaxToolkit" namespace="AjaxControlToolkit" assembly="AjaxControlToolkit"/>
 </controls>
 </pages>
 <authentication mode="Forms">
 <forms loginUrl="~/Account/Login.aspx" timeout="2880"/>
 </authentication>

<httpHandlers>
 <remove path="*.asmx" verb="*"/>
 <add path="*.asmx" verb="*" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
 <add path="*_AppService.axd" verb="*" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
 <add path="ScriptResource.axd" verb="GET,HEAD" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
 <add path="MapImageHandler.axd" verb="GET" type="AspMap.Web.ImageHandler, AspMapNET"/>
 <add path="MapImageHandler.axd" verb="*" type="AspMap.Web.ImageHandler, AspMapNET"/>
 </httpHandlers>
 <httpModules>
 <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
 </httpModules>

 <membership>
 <providers>
 <clear/>
 <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/"/>
 </providers>
 </membership>
 <profile>
 <providers>
 <clear/>
 <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/"/>
 </providers>
 </profile>
 <roleManager enabled="true">
 <providers>
 <clear/>
 <add connectionStringName="ApplicationServices" applicationName="/" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider"/>
 <add applicationName="/" name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider"/>
 </providers>
 </roleManager>
 </system.web>
 <system.webServer>
 <validation validateIntegratedModeConfiguration="false"/>
 <modules>
 <remove name="ScriptModule"/>
 <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
 </modules>
 <handlers>
 <remove name="ScriptHandlerFactory"/>
 <remove name="ScriptHandlerFactoryAppServices"/>
 <remove name="ScriptResource"/>
 <remove name="WebServiceHandlerFactory-Integrated"/>
 <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
 <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
 <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
 </handlers>
 </system.webServer>
</configuration>
<pre>

Jangan lupa selalu tambahkan tag prefix pada register masing2 halaman aspx

<%@ Register assembly=”AspMapNET” namespace=”AspMap.Web” tagprefix=”aspmap” %>

Setelah melakukan tahapan-tahapan di atas, kita sudah siap untuk develop webgis. CMIIW