DASAR PROGRAMER w

Download Game Stronghold3 Patch v1.10.27781 (Offline/Portable Updater)

Ini dia yang kita tunggu tunggu, patch/update Stronghold3. Dengan ini banyak sekali error yang di-fix dan tambahan fitur fitur baru, salah satunya seperti GAME SPEED, cukup dengan menekan ctrl + (1 kali = fast, 2 kali = very fast) dan crtl - untuk menurunkan speed nya. Untuk lebih jelasnya lihatlah detail Patch  v1.10.27781 dibawah ini :

Economic Systems Rebalanced
  • Peasants now move 66.66% faster.
  • Immigration rates have been increased.
  • In multiplayer the rate has been increased even higher.
  • All farms now produce 25% more food. Bread production been increased by 40%.
  • Vegetable gardeners produce and carry 50% more vegetables per delivery.
Range units (Archers, Crossbowmen, etc) now gain an attacking bonus based on terrain height
Troop Movement Changes
  • Macemen, Armed Peasants and Monks always run.
  • Men at Arms now always walk, instead of running into attack.
  • Pikemen walk a little faster.
  • Ranged troops can move and attack troops behind walls when within their line of sight.
Rally points for the Siege Camp have been added
New Market added with Autobuy/Autosell feature
  • Markets are no longer required to buy or sell goods. Goods can be traded via the Stockpile, Granary, Keep and Armoury.
  • The new Market is an advanced trading building which costs 200 wood and features a slider with controls for automatically trading goods, with individual settings per good type.
Multiplayer - Coronation Mode
  • In Coronation Mode players start off at the lowly rank of “Village Idiot” with limited access to buildings and military units. By generating honour players can move up the ranks, gaining new technology and weaponry along the way. The first King to achieve the rank of “Emperor” will win the game.
  • Coronation Mode features upgradable Keeps which have their own defences and provide additional housing for workers and troops.
  • New Coronation Mode map - Marshlands
Performance improvements
  • Simulation step has been tweaked so that scripts are now called 4 times less often.
  • Skinning of actors has been optimised - These include animations now do not blend from a distance, PoseDrivers are not recreated everytime there is a LOD change and the game now prioritises existing PoseDrivers, rather than always expanding the PoseDriver pool.
  • Pathfinding has been optimised - Buildings are now treated a one large obstacle rather than a number of small obstacles.
  • Sound has been optimised - combat vocalizations are no longer decompressed into memory, resulting in a memory savings of up to 100 Megabytes after a long game session.
Additional user interface options
  • Vsync matches your monitor’s refresh rate to the in-game frame rate to prevent screen tearing. Enabling Vsync will reduce performance so we have added an option to turn Vsync Off/On in the Options menu.
  • Full Screen/Windowed mode added to the Options menu.
Camera Changes
  • Previously when zooming out the camera would tilt until eventually the game would be viewed top down. This camera tilt has been removed. The game can still be viewed top down by pressing the Space Bar.
Health bars are now drawn for currently selected Lord units on their icons in the GUI.
Troop/Building Limits
  • Troop and building maximums have been added to Single Player, in order to prevent performance issues when the numbers get too high.
  • These limits can be overridden by changing the relevant settings in the Documents/Stronghold 3/Profiles/options.xml file.
Minimap
  • Flag icons have been added to the minimap for Capture the Flag mode.
  • Messages and map location notifications have been added when estates and flags are being captured.
  • Notifications have been added to show the map location of new reinforcements.
Miscellaneous
  • Game speed changes using the -/+ keys are now displayed onscreen.
  • Game speed can also now also be controlled using i/o keys (to help some laptop users that couldn’t use -/+ keys).
  • The in-game message log history has been increased to 50. The message scroll buttons can be held down to scroll through them.
  • Unwanted saved games can now be deleted in the “Load Game” screen.
  • The mouse cursor is locked to the game when in Full Screen or Windowed mode. Pressing ALT + TAB will unlock the cursor in Windowed mode.
Bug Fixes
  • The CTRL groups (CTRL+1/2/3) are now saved in a save game and available when the save game is loaded.
  • Fixed the Keep’s Enable/Disable all industries buttons from breaking when an ox post was present.
  • Fixed the green directional cursor appearing when right-click dragging, even when only enemies or buildings were selected.
  • Fixed the first mouse click on a newly loaded map not being able to create a selection marquee.
  • Fixed units becoming deselected when dragging the mouse to operate GUI controls and releasing it over the game view.
  • Placing a storage building will no longer open the storage building’s GUI panel, which was making it difficult to continue placing buildings.
  • The chat key (Enter) is now disabled in single player mode.
  • Troop health bars are now draw correctly when max health is above 100% due to Good Lord buildings
  • Fixed some issues with troop speech when Lord units were part of the selection
  • Added minor GUI feedback sounds to some controls
  • Tooltips for troops and building costs have been reformatted to be more readable. Tooltips have been added for placing rally points and increasing buy/sell amounts.
  • Fixed the stop command not functioning for Trebuchets, Battering Rams and Burning Carts.
  • Fixed honour gains not being tracked correctly for in-game statistics
  • Changed maximum building limit in Multiplayer and Singleplayer to only track the player’s primary estate
  • Reformatted the siege camp panel to look better in Single Player.
  • Fixed the cutscene replay button appearing too soon for the final campaign mission cutscenes.
  • Icon added for the Haybale / Harpoon launcher.
  • Fixed issues with troops not being able to properly navigate the square bastion in certain circumstances.
  • Fixed the shortcut key “L” not selecting non-standard lords in multiplayer.
  • Visual damage from troops attacking walls better reflects number of hit points left.
  • Some French Keyboard and German Keyboard fixes.
  • Map Editor - Deleting the Engineer’s guild and saving was causing a crash.
  • Added some more audio easter eggs...the scribe may say a bit more here and there, and certain units have a bit more to say.
Other things to be aware of in Stronghold 3
Line of Sight Changes
  • Troops on towers/gatehouses/platforms are now less restricted by Line Of Sight. This change was made primarily in order to avoid frustrating situations where troops standing at one side of a tower couldn't fire directly down at enemies on the ground on the other side of the tower.
  • The side effect of this change is that sometimes you will see troops shoot through structures when it may look like they shouldn't be able to. Whilst this is obviously not ideal we decided the gameplay benefits of this change outweighed the visual inaccuracies caused as a result of this change.
Graphic Settings Recommendations
  • If you are using a graphics card with 256mb video memory, we recommend playing on Low settings. If you are using a graphic card with 512mb video memory, we recommend playing on Medium settings. Using High settings or at least High Texture High detail may lead to crashes with 256mb/512mb onboard memory on the video card.
4 Player Multiplayer Recommendations
  • 4 Player multiplayer can be demanding for lower spec computers, particularly lower spec CPUs. For the best 4 player multiplayer experience we recommend playing on a high spec computer such as an Intel i5 or i7 based computer with at least 4GB RAM.
Map Editor
  • Loading 2 maps into the Map Editor consecutively will cause problems when saving the next map. Please open one map, edit it and save. Then exit the editor and re-load to edit the next map.
Keyboard shortcuts
A list of all the keyboard shortcuts are available in English, German and French :
    Stronghold 3 Keyboard Commands Print
    COMMAND QWERTY (EN) AZERTY  (FR) QWERTZ (DE)
    Pause Game / Pause Jeu / Spiel Anhalten P P P
    Menu Esc Echap Esc
    Scrolling around the map / Déplacement autour de la carte / Sich auf der Karte Bewegen W A S D Z Q S D W A S D
    Zoom in & out of map / Zoom avant ou arrière de la carte / Zur Karte Hinein/Heraus zoomen Mouse Wheel forwards/backwards or use R / F or + / - Molette souris Avant/Arrière ou utiliser R / F Mausrad Vor/Rückwärts bewegen oder R/F verwenden.
    Rotate map / Pivoter carte / Karte Drehen Hold down the middle mouse button and move the mouse or use Q / E Presser molette souris et déplacer la souris ou utiliser A / E Die Mittlere Maus Taste  drucken und  die Maus  bewegen oder  Q / E  verwenden..
    Rotate Building / Pivoter Bâtiment / Gebäude Drehen Select a building and mouse wheel forwards/backwards (Use + / - to zoom the map when a building is selected) Sélectionner le bâtiment et déplacer la molette de la souris en avant / en arrière Wählen Sie ein gebäude und bewegen Sie das Mausrad Vor/Rückwärts(Benützen Sie  +/-  zum re
    Rotate Buildings (Keyboard only) Hold Down Shift and use Q/E to Rotate buildings Maintenir pressé Shift et utiliser A / E pour pivoter les bâtiments Halten Sie die Umschalttaste gedrückt und Benützen Sie Q/E
    Rotate Building by 45° / Pivoter Bâtiment de 45° / Gebäude um 45° drehen Hold down CTRL when a building is selected and scroll the mouse wheel. Presser CTRL lorsque le bâtiment est selectionné et dérouler la molette de la souris Halten Sie die Strg taste gedrückt während Sie das Mausrad drehen bevor Sie das gebäude platzieren. 
    Rotate Building by 45° (Keyboard only) Hold Down CTRL and use Q/E to Rotate buildings Presser CTRL et utiliser A/E pour pivoter les bâtiments Halten Sie die STRG Taste gedrückt und Benützen Sie Q/E um Gebäube zu drehen.
    Top Down View / Vue du Haut Spacebar Espace Leertaste
    Freebuild Panel F1 F1 F1 - Drücken Sie auf  die Taste F1 um Das FreeBuild Panel zu öffnen.
    Interface - Panel On/OFF Tab Tab Tab
    Interface - Hides the top bar Comma , Virgule , Komma ,
    Interface - Hides the build panel Full stop . Point . Punkt .
    Screenshot / Capture d’écran / Bildschirmaufnahme Insert Inser Einfg
    Game Speed / Vitesse du jeu / Spiel Geschwindigkeit Press + to speed up the game (x2 or x3 normal speed) and - to slow the game down to normal speed (x1). Presser + pour augmenter la vitesse (x2 ou x3 vitesse normale) et - pour réduire la vitesse (x1). Drucken Sie + um das Spiel zu beschleunigen ( x2 - x3 Normaler Geschw.) und - um das Spiel  langsamer zu machen.
    Sell/Buy Increase Amounts You can now buy/sell in greater quantities by holding down SHIFT in the market.
    Shift - Sie können jetzt größere mengen vom Markt kaufen/verkaufen indem Sie die Umschalttaste gedrückt halten bevor Sie auf die entsprechende taste klicken.
    Keep / Donjon / Bergfried K (Opens the Keep panel)
    Double Tap K (Centre view on the Keep)
    K (ouvre l’interface du Donjon)
    Double clique K (vue centrée sur le Donjon)
    K (Öffnet die Bergfried anzeige)
     K doppelt tippen(Zentriert die ansicht auf den Bergfried) 
    Stockpile / Réserve / Vorratslager H (Opens the Stockpile panel)
    Double Tap H (Centre view on the Stockpile)
    H (ouvre l’interface de la Réserve)
    Double clique H (vue centrée sur la Réserve)
    H (Öffnet die Vorratslager anzeige)
    H doppelt tippen (Zentriert die ansicht  auf das Vorratslager)
    Granary / Grenier / Kornspeicher G (Opens the Granary panel)
    Double Tap G (Centre view on the Granary)
    G (ouvre l’interface du Grenier)
    Double clique G (vue centrée sur le Grenier)
    G (Öffnet die Kornspeicher anzeige)
    G doppelt tippen (Zentriert die ansicht  auf den Kornspiecher)
    Barracks / Caserne / Kasernen B (Opens the Barracks panel)
    Double Tap B (Centre view on the Barracks)
    B (ouvre l’interface de la Caserne)
    Double clique B (vue centrée sur le Caserne)
    B (Öffnet die Kasernen anzeige)
    B doppelt tippen (Zentriert die ansicht  auf den Kaserne) 
    Armoury / Armurerie / Waffenkammer J (Opens the Armoury panel)
    Double Tap J (Centre view on the Armoury)
    J (ouvre l’interface de l’Armurerie)
    Double clique J (vue centrée sur l’Armurerie)
    J (Öffnet die Waffenkammer anzeige)
    J doppelt tippen  (Zentriert die ansicht  auf den Waffankammer)
    Market / Marché / Markt M (Opens the Market panel)
    Double Tap M (Centre view on the Market)
    M (ouvre l’interface du Marché)
    Double clique M (vue centrée sur le Marché)
    M (Öffnet die Markt anzeige)
    M doppelt tippen (Zentriert die ansicht auf den Markt)
    Siege Camp / Campement de Siège / Belagerungscamp V (Opens the Siege Camp)
    Double Tap V (Centre view on the Armoury)
    V (ouvre l’interface du Campement de Siège)
    Double clique V (vue centrée sur le Campement de Siège)
    V (Öffnet die Belagerung Camp anzeige)
    V doppelt tippen (Zentriert die ansicht auf das Belagerung Camp)
    Jump to notifications (enemy attacks, etc) currently taking place / FR / Springt zu Erriegnissen (feindliche angriffe, usw.) die momentan statt finden N N N
    “Snap” wall placement / FR / Wand angliederung Hold down CTRL when adding a new section to an existing wall. Maintenir CTRL Lors de l’ajout d’une nouvelle section sur un mur existant. Halten Sie  Strg wenn Sie ein neues stuck wand zu der existirenden hinzufuegen wollen.
    Locate your lord / Localiser le Seigneur / Ihren Herrn finden L L L
    Cycle through all lords / FR / Durch Alle Herren wechseln SHIFT + L SHIFT + L SHIFT + L
    Attack Move Hold CTRL when selecting a destination and your troops will engage any enemy troops within their range along the way. FR Halten Sie Strg gedruckt wenn Sie eine Ziel Position auszahlen und Ihre Truppen werden Feinde auf dem weg angreifen.
    Grouping Troops / Grouper Troupes / Truppen Gruppieren Select a group of troops and press CTRL + 0 to 9 and then press 0 to 9 to locate them. Sélectionner un groupe de troupes et presser CTRL + 0 à 9 et ensuite presser 0 à 9 pour les déplacer. Wahlen Sie eine gruppe von Einheiten und drücken Sie Srtg. und 0 -9. Wenn Sie dann 0 - 9 drücken werden diese angezeigt.
    Bookmarking Locations / Positionner sur la Carte / Positionen auf der Karte Merken CTRL + ALT + 0 to 9: Pressing CTRL + ALT + 0 to 9 creates a bookmark of the current location on the map. Press ALT and the appropriate number to return to this location. CTRL + ALT + 0 à 9: Pressez CTRL + ALT + 0 à 9 pour créer un aperçu de votre position actuelle sur la carte. Presser ALT et le nombre approprié pour revenir à la position. Wenn Sie Strg +Alt+ 0 - 9 wird die entsprechende position gemerkt .Sei könne dann zu dieser position springen indem Sie 0 - 9 drücken.
    Unit selection / Sélection Unité / Einheiten auswahl Units can be added or removed from a selection by holding down the SHIFT key then left clicking on them.  Multiple units can be added to a selection by holding down the SHIFT key and dragging a box around
    them.  Double clicking on a unit will select all of that unit type visible on the screen.  
    Unités peuvent être ajoutées ou retirées d’une sélection en maintenant SHIFT et en faisant clique gauche sur ces troupes. Des unités multiples peuvent être ajoutées à une sélection en maintenant SHIFT et effectuant une boîte autour d’eux . Double-clique sur une unité pour sélectionner toutes les troupes du même type visible sur l’écran. Einheiten können  zu Gruppen hinzugefügt oder entfernt werden indem  Sie die Umschalt taste betätigen und die Einheit auswählen. Sie können mehrere Einheiten auswählen indem sie die Umschalt taste gedrückt halten und eine Kiste um die Einheiten die Sie wollen ziehen. Doppelklicken Sie auf eine bestimmte Einheit um alle Truppen dieser Art auf dem Bildschirm anzuzeigen. 
    Select Units of Same Type / Sélectionner Unités du même type / Einheiten der selben Art auswählen Double-click on a troop to select all units of the same type visible on screen. Double-clique sur une unité pour sélectionner toutes les troupes du même type visible sur l’écran. Doppelklicken Sie auf eine bestimmte Einheit um alle Truppen dieser art auf dem Bildschirm anzuzeigen.
    Select Stone Curtain Wall Z W Z
    Select Stone wall X X X
    Select Wooden wall C C C
    Multiplayer Commands
    Chat Enter Entrée Eingabetaste (Enter)

    Download Stronghold3 Patch v1.10.27781 (300 MB)
    Part1, Part2
    Password Rar/7zip : djiesoft.blogspot.com
    Cara penggunaannya adalah :
    1.Join/Extract dengan 7zip
    2.Copy Paste semua folder hasil extract (assets dan bin) ke folder Stronghold3 anda (replace)
    3.Selesai

    Tags:
    update stronghold3 terbaru, Patch v1.10.27781 notes, download stronghold3 updater patch, crack stronghold3, download stronghold3 full, update ofline stronghold3, stronghold3 full patch, game speed in stronghold3, dimana game speed stronghold3, missing game speed stronghold3, fix game speed stronghold3, add game speed stronghold3, error cannot find game speed stronghold3, download keyboard sortcut stronghold3

    Download Microsoft Visual Studio 2012 Ultimate Edition ISO (VBNET,C#,VC++,ASPX,F#,LightSwitch,Blend)

    Sebelumnya saya sudah pernah share "Visual Studio 2010 Professional Full", sekarang saya lanjutkan ke versi terbarunya yaitu "Visual Studio 2012 Ultimate Full". Terdapat beberapa versi dari Visual Studio 2012 ini yaitu : Ultimate, Premium, Professional, Test Professional, Team Foundation Server dan Express. Visual Studio 2012 ini memang di-launching bersamaan dengan Windows8 dan memang di fokuskan untuk menujang teknologi terbaru dari Windows8. Saya sudah instal dan test sendiri dan meemang work perfectly! banyak sekali fitur fitur baru yang tentunya akan semakin mempermudah kita sebagai developer/programmer.
    Adapun fitur fitur barunya sebagai berikut :
    • .Net Framework 4.5
    • A new look and feel (New IDE, Tool bars are simplified, tab clutter reduced)
    • Ready for Win8 (New technology and features)
    • Web dev upgraded (JavaScript, HTML5, CSS3 are Supported)
    • Cloud capable
    • Up for serious business
    • Visual Studio LightSwitch Included !
    • Microsoft Expression Blend Included !
    Dan berikut ini adalah System Requirements-nya :
    Supported operating systems
    Supported architectures
    • 32-bit (x86)
    • 64-bit (x64)
    Hardware requirements
    • 1.6 GHz or faster processor
    • 1 GB of RAM (1.5 GB if running on a virtual machine)
    • 10 GB of available hard disk space
    • 600 MB of available hard disk space (language pack)
    • 5400 RPM hard drive
    • DirectX 9-capable video card running at 1024 x 768 or higher display resolution

        Download Visual Studio 2012 Ultimate Edition ISO (1.50 GB)
    NEW UPDATE LINK (2013-05-03) :
        Part1, Part2, Part3, Part4, Part5,
    Updated Link Password (2013-12-26)   
    Download Password : Link Part11 + rar/7zip

    Microsoft Expression Blend yang include dalam setup Visual Studio 2012 ini adalah untuk windows8 (tidak kompatible untuk windows7), maka dari itu anda harus download dan instal untuk versi Windows7. Bagi anda yg belum tahu apa itu blend? saya sudah buatkan tutorialnya disini.

    Download Microsoft Expression Blend For Visual Studio 2012 (102 MB)

    Berikut ini adalah update untuk Extensions For Windows Library For Javascript 1.0.9200.20512
    Download WinLibJS_VSE.exe (3 MB)

    Seperti biasa tidak ada visual studio yang gratis alias trial, tetapi disini saya menyediakan Visual Studio 2012 yang sudah FULL VERSION, jadi anda tidak perlu serial number atau key. Tapi ingat ini hanya untuk bahan PEMBELAJARAN (for education only and not for commercial), jika nanti anda membuat software dari Visual Studio 2012 ini untuk tujuan komersil maka anda harus membeli lisensi yang asli.

    CATATAN :
    • Microsoft TIDAK mengikut sertakan Crystal Report lagi dalam setup installer di Sejak versi 2010. Kini sejak Januari 2013 pihak developer Crystal Report SUDAH membuat versi terbarunya (for visual studio 2012), anda dapat mendownload nya DISINI.
    • Microsoft menghilangkan fitur Setup And Deployment (*.vdproj)  dan menggantinya dengan InstallShield Limited Edition. Anda dapat download disini

    Cara/Metode/Logika/Teknik Pembuatan Struktur Table Database

    Contoh pembuatan struktur table yang umum dilakukan adalah seperti ini:
    Master_Barang
    Field Name Data Type PrimaryKey
    Kode_Barang Varchar(10) Yes
    Nama_Barang Varchar(50) No

    Transaksi_Beli_Detail
    Field Name Data Type PrimaryKey
    Kode_Beli Varchar(20) Yes
    Kode_Barang Varchar(10) Yes
    Qty Float No

    Dan biasanya jika anda ingin menampikan Report Detail Pembelian menggunakan query seperti ini :
    "SELECT A.*, B.Nama_Barang FROM Transaksi_Beli_Detail AS A JOIN Master_Barang AS B ON A.Kode_Barang=B.Kode_Barang"

    Memang tidak ada yang salah dengan struktur seperti itu dan ini sudah mengikuti aturan NORMALISASI. Tapi baru baru ini saya menemukan konsep baru yaitu dengan tujuan agar performance table/database dalam melakukan proses SELECT data menjadi lebih cepat dan stabil. Caranya adalah dengan menambahkan ID pada setiap table, apa itu ID ?
    ID dapat dikatakan No_Urut untuk setiap record/row pada table, anda bisa setting ID ini sebagai Auto-Increment maupun manual. jangan lupa ID ini harus anda setting menjadi PrimaryKey. Sehingga struktur tablenya menjadi sepeti ini :
    Master_Barang
    Field Name Data Type PrimaryKey
    ID_Barang BigInt Yes
    Kode_Barang Varchar(10) Yes
    Nama_Barang Varchar(50) No

    Transaksi_Beli_Detail
    Field Name Data Type PrimaryKey
    ID_Beli BigInt Yes
    ID_Barang BigInt Yes
    Qty Float No

    Dengan seperti ini maka query Report Detail Pembelian-nya berubah menjadi :
    "SELECT A.*, B.Nama_Barang FROM Transaksi_Beli_Detail AS A JOIN Master_Barang AS B ON A.ID_Barang=B.ID_Barang"

    Lalu apa bedanya? cuma memindahkan link field/column nya saja? nah, perbedaannya adalah performa/kecepatannya karena JOIN dengan antar data numeric lebih cepat dari pada sorted character maupun unsorted character. Lihatlah contoh data berikut ini :
    Transaksi_Beli_Detail
    ID_Beli ID_Barang QTY
    1 1 100
    1350
    21500
    3449

    Tetapi jika menggunakan model lama maka datanya akan seperti ini :
    Transaksi_Beli_Detail
    Kode_Trans ID_Barang QTY
    B120102-001 BJU-XL001 100
    B120102-001 KRU-M010 50
    B120102-002 BJU-2L015 500
    B120102-003 CLP-L048 49

    Nah disini kita bisa lihat, semakin simple data yang akan di JOIN maka akan semakin mudah dan cepat sql server engine dalam mem-proses-nya. Intinya perbedaan dari field ID dan KODE adalah :
    1. ID hanya kita gunakan untuk proses JOIN dan proses pemrogramman
    2. KODE hanya digunakan untuk simbolitas (untuk user)

    Memang jika yang belum terbiasa akan sedikit kaku/aneh, ini bukanlah sebuah keharusan maupun tehnik yang 100% benar, masing masing orang mempunyai gaya dan ciri khas dalam bekerja, semoga ilmu kita dapat lebih berambah luas lagi dengan saling berbagi. Terimakasih

    Tags:
    cara select data, contoh inner join di sql, perbedaan left outer join dan inner join biasa, cara membuat table yang baik, normalisasi pada table,cara agar loading select data cepat

    DELETE OR UPDATE (Cara/Metode/Logika/Teknik Hapus Data Dari Table/Database)

    Dari pengalaman saya, menghapus data itu TIDAK diperbolehkan baik itu data Master maupun data Transaksi, kenapa? alasannya? Baiklah saya beri contoh kasus seperti ini : Master data yang sudah digunakan di table lain (ber-relasi) tidak boleh dihapus karena akan berpengaruh pada data di table lain. Contoh :
    Master_Supplier
    Kode_SupplierName
    S01SupplierA
    S02SupplierB
    Nama_BarangVarchar(50)

    Transaksi_Head_Beli
    Kode_BeliKode_SupplierTanggal
    B120101-001S0101/01/2012
    B120101-002S0201/02/2012

    Jika ada menghapus data supplier (misalnya dari form master supplier), maka effect nya adalah :
    1.Report Transaksi Pembelian tidak akan muncul semua jika anda menggunakan query :
    "SELECT A.*, B.Name FROM Transaksi_Head_Beli    AS A JOIN Master_Supplier AS B ON A.Kode_Supplier = B.Kode_Supplier"
    dengan query diatas maka yang muncul hanya transaksi "B120101-002" saja
    2.Report Transaksi Pembelian Akan muncul semua tetapi sebagian data Supplier akan kosong (NULL), jika
    anda menggunakan query :
    "SELECT A.*, B.Name FROM Transaksi_Head_Beli    AS A LEFT JOIN Master_Supplier AS B ON A.Kode_Supplier = B.Kode_Supplier"

    Lalu bagaimana dengan "Tombol Hapus" pada form? terus bagaimana jika ada supplier yang sudah tidak
    dipakai? Jawabannya adalah dengan mengganti perintah "DELETE" dengan "UPDATE" dan menambahkan (1 field/column "rec_status") dengan (DataType = Bit) di setiap table, yang artinya jika (0 = deleted) dan (1 = active) jadi struktur table nya menjadi seperti ini :
    Master_Supplier
    Kode_SupplierNameRec_Status
    S01SupplierA0
    S02SupplierB1

    Transaksi_Head_Beli
    Kode_BeliKode_SupplierTanggalRec_Status
    B120101-001S0101/01/20121
    B120101-002S0201/02/20121

    Sehingga anda akan lebih leluasa lagi membuat Jenis Reportnya, contoh :
    1.Jika anda ingin menampilkan semua Report Transaksi Pembelian, baik itu data supplier/ data transaksi yang active dan terhapus:
    "SELECT A.*, B.Name FROM Transaksi_Head_Beli    AS A JOIN Master_Supplier AS B ON A.Kode_Supplier = B.Kode_Supplier"
    2.Jika anda hanya ingin menampilkan Report yang suppliernya active saja, maka hasilnya akan menampilkan "B120101-002" :
    "SELECT A.*, B.Name FROM Transaksi_Head_Beli    AS A JOIN Master_Supplier AS B ON A.Kode_Supplier = B.Kode_Supplier WHERE A.REC_STATUS=1"
    Ubah A.Rec_Status=0 jika anda ingin menampilkan Report sebaliknya

    Selain itu salah satu keuntungan menggunakan UPDATE+Rec_Status ini adalah memperkecil penurunan performance database, karena jika menghapus data (DELETE) itu akan mengubah susunan index recordset/row pada table, maka semakin lama susunan nya akan semakin rumit/acak dan harus di Shrink Database (jika di windows itu adalah Defragment Hardisk).

    Penjelasan tambahan untuk sintak pata tombol HAPUS di form anda dapat menggantinya seperti ini:
    "UPDATE Master_Supplier SET Rec_Status=0 WHERE Kode_Supplier='S01'"

    Penjelasan tambahan untuk sintak pencarian data supplier (pilih supplier) di form transaksi pembelian :
    "SELECT * FROM Master_Supplier  WHERE Rec_Status=1"

    Jadi intinya ubah paradigma DELETE menjadi UPDATE dan selalu ikut sertakan field Rec_Status pada setiap SELECT data. Apa yang saya tulis ini bukanlah sebuah kewajiban atau aturan yang harus dilakukan, semua orang mempunyai persepsi dan logika tersendiri dalam berkarya.

    Tags:
    cara hapus data yang benar, cara delete data yang baik, sintak untuk delete data, berapa lama tahun data perusahaan,

    Write/Read Setting .INI File Untuk Bahasa (Indonesia/English) Pada Aplikasi VBNET

    Berikut ini adalah contoh untuk melalukan write dan read (tulis dan baca) data pada .INI file. Bagi yang belum tahu apa itu .INI file? yaitu file yang biasa digunakan sebagai data setting (boleh dikatakan database kecil dan anda dapat membuatnya dengan Notepad). Struktur .INI file terdiri dari : Section, Key dan Value, saya sudah membuat contoh setting bahasa seperti disamping ini.
    Nah selajutnya pada aplikasi VBNET saya buat MENU untuk mengubah bahasa pada tombol tombol dan pesan (indonesia atau inggris), berikut ini screenshot-nya:
    Fungsi fungsi untuk memanipulasi .INI file ini sudah dijadikan Class, sehingga anda akan lebih mudah dalam menggunakannya. Dari contoh yang saya buat ini, anda dapat mengembangkannya lagi baik itu membuat fungsi baru untuk loop apply setting secara dinamis dan sebagainya, selamat mencoba !
    Download full source code

    Tag:
    IniFile Class using VB.NET, INI Reader / Writer Class for C#, VB.NET, and VBScript, Baca Tulis INI File Dari VB.Net,  Reading and Writing to .INI files, Read/Write to .ini files in vb.net, simpan hapus setting ini file vbnet, cara mengubah bahasa pada aplikasi vbnet

    Cara Membuat Folder Locker Dengan VBNET

    Banyak sekali software2 diluar sana yang berfungsi untuk mengunci folder (folder locker), tetapi anda pun bisa membuat folder locker sendiri dengan VBNET dan sintaknya pun sangat pendek dan mudah. Dengan seperti ini anda dapat mengunci folder2 rahasi anda (biasanya untuk file2 penting). Saya sudah buatkan contohnya :
    Maka jika nanti anda klik folder yang telah terkunci oleh program ini dari windows explorer, maka tidak akan bisa dibuka dan muncul pesan "Access is denied", seperti dibawah ini :
    Tetapi jujur saja saya buka sedikit rahasia, sebenarnya masih bisa dibuka dengan mengeset attribut : Special Permission pada user yang bersangkutan (login) dengan cara klik "remove" (special permission harus TIDAK checked).
    Untuk orang awam dan orang yang tidak membaca ini dan orang yang tidak suka "ngulik/oprek" maka folder tersebut akan aman aman saja (tetap terkunci). Mungkin anda dapat menambahkan lagi sintak khusus lain pada source code ini untuk membuat program ini menjadi lebih SECURE.
    Download full source project

    Tags:
    cara mengunci folder via vb, lock folder by vb, folder locker software, download folder locker terbaru, sintak/fungsi untuk mengunci folder dan file visual basic

    10 Hal Dasar Belajar Migrasi VB6 Ke VBNET

    Berdasarkan pengalman saya, berikut ini saya tulis beberapa hal (penting) tentang belajar migrasi vb6 ke vbnet :

    1.Index di VBNET selalu mulai dari 0, sedangkan VB6 ada yang dari 1 (contoh : listview.items), jadi jangan kaget klo nanti ada error :
    "InvalidArgument=Value of '1' is not valid for 'index'. Parameter name: index"
    maka dari itu anda harus mengubah sintak looping untuk additem listview, harus mulai dari 0

    2.Jika anda mengubah nama object (rename), maka di VB6 anda harus mengubah ke sintak-nya juga apa
    apa yang berkaitan dengan object itu, karena klo tidak anda akan mengalami error :
    "Run-time error '424', Object required"
    sedangkan di VBNET sekali anda me-rename object (termasuk form) pada jendela property, maka semua sintak yang berhubungan dengan object tersebut akan otomatis berubah/menyesuaikan.

    3.Semua object yang mempunyai property Item (contoh listivew,combobox, listvox, dll) di VBNET selalu menggunakan property Item.Add, sedangkan VB6 ada yang Combo1.AddItem, ListView1.ListItems.Add, List1.AddItem , jadi di VBNET sudah sangat seragam dan terstruktur (mudah diingat)

    4.Jika anda menggunakan Frame dan ingin menambahkan object2 lain kedalamnya, di VBNET tidak perlu Cut/Copy-Paste object ke frame itu seperti di VB6, cukup drag/seret saja object-nya ke dalam frame

    5.Jika di VB6 anda melakukan add form (existing) misalnya dari folder lain (tidak 1 folder dengan project), maka jika anda cut/copy folder project anda dan jalankan di komputer lain atau anda cut/rename folder form yang di-add itu (yang bukan dalam 1 folde project), maka akan error :
    "Path Not Found : '...\form_name.frm'--Continua Loading Project ?"
    sedangkan di VBNET dia akan mengcopy kedalam 1 folder yang sama, bukan url pathnya melainkan formnya akan dicopy otomatis oleh VBNET kedalam folder project

    6.Jika anda ingin me-remove form/module/class dll, di VB6 anda cukup remove saja, tetapi di VBNET ada tiga istilah : Exclude dan Include (bisa di remove dan add kembali dengan mudah) serta Delete (hapus ke Recycle Bin).

    7.Ini merupakan kelanjutan dari Nomor 6, Perhatikan sintak VB6 berikut :
    Private Sub Command1_Click()
    End Sub
    jika anda me-rename menjadi object menjadi Command2, maka sintak itu harus diubah menjadi :
    Private Sub Command2_Click()
    End Sub
    sedangkan di VBNET anda harus INGAT Handles, contoh :
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    End Sub
    jika anda me-rename menjadi object menjadi Command2, maka HANDLES akan berubah secara otomatis, tetapi TIDAK nama SUB-nya :
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    End Sub
    Jadi jangan sampai terkecoh ya,,,

    8.jika anda ingin memanggil fungsi (contoh) Command1_Click maka si VB6 anda cukup menulis seperti ini:
    Call Command1_Click
    tetapi di VBNET anda harus menulisnya seperti ini:
    Call Button1_Click(Button1, New System.EventArgs)

    9.Jika anda add object yang tidak terliat/visible-false seperti (timer,common dialog, menu, dll), di VB6 akan ikut masuk ke form, tetapi di VBNET akan terpisah dengan form sehingga kita tahu mana object yang visible dan tidak (lebih teratur)

    10.VBNET menyediakan property .ToString pada semua object/methode/property/variable dari object, sehingga anda akan dengan mudah mengconvert dan mengetahui isi lengkap/detail-nya. contoh:
    jika saya mengetik ListView1.ToString, maka hasilnya = "System.Windows.Forms.ListView, Items.Count: 1, Items[0]: ListViewItem: {ID}"
    jika saya deklarasi dim nilai As Integer, maka saya bisa kombinasikan dengan string lain dengan cara : "Nilai Ke " + nilai.ToString + " Dari Total" 

    11.Jika anda terbiasa dengan sintak SET di VB6, maka di VBNET tidak akan ada. Contoh  : "Set Con = New ADODB.Connection" atau "Set DataGrid1.DataSource = RecBarang" dan sebagainya, maka di VBNET anda tidak usah menggunakan SET, cukup dengan "con = New ADODB.Connection"

    12.Jika di VB6 anda meggunakan sintak dibawah ini untuk clear object/textbox, contoh :
    Dim iObject As Object
         For Each iObject In Me.Controls
                 If TypeOf iObject Is TextBox Then
                    iObject.Text = ""
                End If
       Next 
    Maka jika di jalakan di VBNET Tidak akan ada masalah JIKA anda tidak menggunakan frame/panel/group/tabcontrol dan container lainnya. Kalau anda menempatkan TextBox itu pada salah satu container, maka textbox itu tidak bersih/clear karena di VBNET tidak mengecek/loop semua object secara global, tapi hanya cek/loop sebatas container-nya saja, jadi contohnya jika anda menempatkan textbox1 di sebuah frame dan textbox2 di panel dan textbox3 di form (langsung) maka sintak clear object nya seperti ini (VBNET) :
            Dimv_container() As Object= {Frame1, Panel1, Me}
            For i As Integer = 0 To v_container.Length - 1
                ForEach obj As Object Inv_container(i).Controls
                    IfTypeOf obj IsTextBox Then
                        obj.Text = ""
                    EndIf
                Next
            Next

    13.hhmm apalagi ya? sebenarnya masih banyak sih, hal hal yang kecil tetapi penting untuk diketahui, bila ada teman2 yang mau menambahkan silahkan berikan comment dibawah, agar ilmu kita semakin bertambah.

    Tags:
    cara convert vb6 ke vbnet, belajar vbnet dari awal, belajar dasar dasar vbnet, cara mngataasi error di vbnet, dasar dasar vbnet, cara cepat belajar vbnet