Before I delve into that answer, let me basically define what a base and an alkali, are.
A base is, very simply, a substance which reacts with an acid, to form a salt and water.
Acid + Base --> Salt + Water
An alkali would, very simply, mean a water-soluble base, something which gives OH-(hydroxyl) ions when it dissolves in water.
Cu(OH)2 --> Cu2+ + 2OH-
Clearly, all hydroxides like this one, Cu(OH)2 (Copper Hydroxide), is a alkali, and a base as well, because it reacts with an acid, to form salt and water.
Cu(OH)2 + 2HCl --> CuCl2 + 2H2O.
The thing is that bases which are oxides such as Copper(II) Oxide CuO, are not water soluble, and thus don't give hydroxyl ions when dissolving in water - they don't dissolve in water.
CuO + 2HCl --> CuCl2 + H2O.
CuO -->(No OH- ions).
THUS, in conclusion, all alkalis are bases, but all bases (except hydroxides) are NOT alkalis.
This can be simply understood with the help of sets. Consider the universal set U which contains all substances. Now this universal set contains 4 other sets : Acidic substances, basic substances, amphoteric substances and neutral substances.
Now the set Basic substances contains a subset Alkaline substances. A base is any substance that can neutralize acid molecules to form salt and water. Examples of bases are CuO, CaO and other metallic oxides. Upon their addition to acids, salt and water is formed.
An Alkali, however, is a special type of base - its speciality being its ability to dissolve in water. Only alkalis and not all bases dissolve in water to give OH- ions . Examples of alkali are NaOH, KOH, et cetera. Thus the set of alkalis is smaller than that of bases, simply because it is a subset of the set base.
Hence, all alkalis are bases, but all bases are not alkalies.