You need to learn program with e.g. Leaflet or OpenLayers.
Furthermore you need to include a geocoder for address lookup. Nominatim is such a geocoder, depending on the usage of your application you might have to deploy your own server.
Of course you want a map to be displayed as well, therefore you need a tile server. Again depending on the usage of your website, you might have to deploy your own server, or use e.g. Mapbox which has payed options depending on your needs.
Maybe you should immediately take a look at Mapbox (or similar companies) and see whether they provide a service that fit your needs.